From aa5d070143acc37cf26bca61733b1a08b54aa2d5 Mon Sep 17 00:00:00 2001 From: chrispruitt Date: Fri, 6 May 2022 12:35:00 -0400 Subject: [PATCH] support multi-channel live standup configurations --- .env-example | 5 + .gitignore | 6 +- .goreleaser.yml | 3 +- Dockerfile | 20 +- Makefile | 38 +- README.MD | 64 +- app-manifest.yaml | 53 + go.mod | 19 +- go.sum | 173 +- lib/config/main.go | 59 + lib/configs/configs.go | 61 - lib/plugins/log/log.go | 16 - lib/plugins/standup/standup.go | 264 - lib/plugins/status/status.go | 30 - lib/plugins/suicide/main.go | 26 - lib/slack/slack.go | 175 - lib/standup/brain.go | 118 + lib/standup/handlers.go | 135 + lib/standup/slack.go | 78 + lib/standup/standup.go | 179 + lib/types/standup-settings.go | 25 + lib/views/assets/settings-modal.json | 25 + lib/views/settings-modal.go | 85 + lib/views/util.go | 166 + main.go | 14 +- vendor/github.com/aws/aws-sdk-go/LICENSE.txt | 202 - vendor/github.com/aws/aws-sdk-go/NOTICE.txt | 3 - .../aws/aws-sdk-go/aws/awserr/error.go | 164 - .../aws/aws-sdk-go/aws/awserr/types.go | 221 - .../aws/aws-sdk-go/aws/awsutil/copy.go | 108 - .../aws/aws-sdk-go/aws/awsutil/equal.go | 27 - .../aws/aws-sdk-go/aws/awsutil/path_value.go | 221 - .../aws/aws-sdk-go/aws/awsutil/prettify.go | 113 - .../aws-sdk-go/aws/awsutil/string_value.go | 88 - .../aws/aws-sdk-go/aws/client/client.go | 93 - .../aws-sdk-go/aws/client/default_retryer.go | 177 - .../aws/aws-sdk-go/aws/client/logger.go | 202 - .../aws/client/metadata/client_info.go | 14 - .../aws-sdk-go/aws/client/no_op_retryer.go | 28 - .../github.com/aws/aws-sdk-go/aws/config.go | 605 - .../aws/aws-sdk-go/aws/context_1_5.go | 37 - .../aws/aws-sdk-go/aws/context_1_9.go | 11 - .../aws-sdk-go/aws/context_background_1_5.go | 22 - .../aws-sdk-go/aws/context_background_1_7.go | 20 - .../aws/aws-sdk-go/aws/context_sleep.go | 24 - .../aws/aws-sdk-go/aws/convert_types.go | 918 - .../aws-sdk-go/aws/corehandlers/handlers.go | 232 - .../aws/corehandlers/param_validator.go | 17 - .../aws-sdk-go/aws/corehandlers/user_agent.go | 37 - .../aws/credentials/chain_provider.go | 100 - .../credentials/context_background_go1.5.go | 22 - .../credentials/context_background_go1.7.go | 20 - .../aws/credentials/context_go1.5.go | 39 - .../aws/credentials/context_go1.9.go | 13 - .../aws-sdk-go/aws/credentials/credentials.go | 383 - .../ec2rolecreds/ec2_role_provider.go | 188 - .../aws/credentials/endpointcreds/provider.go | 210 - .../aws/credentials/env_provider.go | 74 - .../aws-sdk-go/aws/credentials/example.ini | 12 - .../aws/credentials/processcreds/provider.go | 426 - .../shared_credentials_provider.go | 151 - .../aws/credentials/ssocreds/doc.go | 60 - .../aws-sdk-go/aws/credentials/ssocreds/os.go | 9 - .../aws/credentials/ssocreds/os_windows.go | 7 - .../aws/credentials/ssocreds/provider.go | 180 - .../aws/credentials/static_provider.go | 57 - .../stscreds/assume_role_provider.go | 367 - .../stscreds/web_identity_provider.go | 154 - .../github.com/aws/aws-sdk-go/aws/csm/doc.go | 69 - .../aws/aws-sdk-go/aws/csm/enable.go | 89 - .../aws/aws-sdk-go/aws/csm/metric.go | 109 - .../aws/aws-sdk-go/aws/csm/metric_chan.go | 55 - .../aws-sdk-go/aws/csm/metric_exception.go | 26 - .../aws/aws-sdk-go/aws/csm/reporter.go | 264 - .../aws/aws-sdk-go/aws/defaults/defaults.go | 207 - .../aws-sdk-go/aws/defaults/shared_config.go | 27 - vendor/github.com/aws/aws-sdk-go/aws/doc.go | 56 - .../aws/aws-sdk-go/aws/ec2metadata/api.go | 250 - .../aws/aws-sdk-go/aws/ec2metadata/service.go | 245 - .../aws/ec2metadata/token_provider.go | 93 - .../aws/aws-sdk-go/aws/endpoints/decode.go | 216 - .../aws/aws-sdk-go/aws/endpoints/defaults.go | 10484 --- .../aws/endpoints/dep_service_ids.go | 141 - .../aws/aws-sdk-go/aws/endpoints/doc.go | 66 - .../aws/aws-sdk-go/aws/endpoints/endpoints.go | 564 - .../aws/endpoints/legacy_regions.go | 24 - .../aws/aws-sdk-go/aws/endpoints/v3model.go | 351 - .../aws/endpoints/v3model_codegen.go | 351 - .../github.com/aws/aws-sdk-go/aws/errors.go | 13 - .../aws/aws-sdk-go/aws/jsonvalue.go | 12 - .../github.com/aws/aws-sdk-go/aws/logger.go | 118 - .../aws/request/connection_reset_error.go | 19 - .../aws/aws-sdk-go/aws/request/handlers.go | 343 - .../aws-sdk-go/aws/request/http_request.go | 24 - .../aws-sdk-go/aws/request/offset_reader.go | 65 - .../aws/aws-sdk-go/aws/request/request.go | 698 - .../aws/aws-sdk-go/aws/request/request_1_7.go | 39 - .../aws/aws-sdk-go/aws/request/request_1_8.go | 36 - .../aws-sdk-go/aws/request/request_context.go | 14 - .../aws/request/request_context_1_6.go | 14 - .../aws/request/request_pagination.go | 266 - .../aws/aws-sdk-go/aws/request/retryer.go | 309 - .../aws/request/timeout_read_closer.go | 94 - .../aws/aws-sdk-go/aws/request/validation.go | 286 - .../aws/aws-sdk-go/aws/request/waiter.go | 295 - .../aws/aws-sdk-go/aws/session/credentials.go | 290 - .../aws/session/custom_transport.go | 27 - .../aws/session/custom_transport_go1.12.go | 26 - .../aws/session/custom_transport_go1.5.go | 22 - .../aws/session/custom_transport_go1.6.go | 23 - .../aws/aws-sdk-go/aws/session/doc.go | 289 - .../aws/aws-sdk-go/aws/session/env_config.go | 378 - .../aws/aws-sdk-go/aws/session/session.go | 912 - .../aws-sdk-go/aws/session/shared_config.go | 642 - .../aws-sdk-go/aws/signer/v4/header_rules.go | 81 - .../aws/aws-sdk-go/aws/signer/v4/options.go | 7 - .../aws/signer/v4/request_context_go1.5.go | 13 - .../aws/signer/v4/request_context_go1.7.go | 13 - .../aws/aws-sdk-go/aws/signer/v4/stream.go | 63 - .../aws/aws-sdk-go/aws/signer/v4/uri_path.go | 24 - .../aws/aws-sdk-go/aws/signer/v4/v4.go | 846 - vendor/github.com/aws/aws-sdk-go/aws/types.go | 264 - vendor/github.com/aws/aws-sdk-go/aws/url.go | 12 - .../github.com/aws/aws-sdk-go/aws/url_1_7.go | 29 - .../github.com/aws/aws-sdk-go/aws/version.go | 8 - .../internal/context/background_go1.5.go | 40 - .../aws/aws-sdk-go/internal/ini/ast.go | 120 - .../aws-sdk-go/internal/ini/comma_token.go | 11 - .../aws-sdk-go/internal/ini/comment_token.go | 35 - .../aws/aws-sdk-go/internal/ini/doc.go | 29 - .../aws-sdk-go/internal/ini/empty_token.go | 4 - .../aws/aws-sdk-go/internal/ini/expression.go | 24 - .../aws/aws-sdk-go/internal/ini/fuzz.go | 17 - .../aws/aws-sdk-go/internal/ini/ini.go | 51 - .../aws/aws-sdk-go/internal/ini/ini_lexer.go | 165 - .../aws/aws-sdk-go/internal/ini/ini_parser.go | 357 - .../aws-sdk-go/internal/ini/literal_tokens.go | 324 - .../aws-sdk-go/internal/ini/newline_token.go | 30 - .../aws-sdk-go/internal/ini/number_helper.go | 152 - .../aws/aws-sdk-go/internal/ini/op_tokens.go | 39 - .../aws-sdk-go/internal/ini/parse_error.go | 43 - .../aws-sdk-go/internal/ini/parse_stack.go | 60 - .../aws/aws-sdk-go/internal/ini/sep_tokens.go | 41 - .../aws/aws-sdk-go/internal/ini/skipper.go | 45 - .../aws/aws-sdk-go/internal/ini/statement.go | 35 - .../aws/aws-sdk-go/internal/ini/value_util.go | 284 - .../aws/aws-sdk-go/internal/ini/visitor.go | 166 - .../aws/aws-sdk-go/internal/ini/walker.go | 25 - .../aws/aws-sdk-go/internal/ini/ws_token.go | 24 - .../aws/aws-sdk-go/internal/sdkio/byte.go | 12 - .../aws/aws-sdk-go/internal/sdkio/io_go1.6.go | 10 - .../aws/aws-sdk-go/internal/sdkio/io_go1.7.go | 12 - .../aws/aws-sdk-go/internal/sdkmath/floor.go | 15 - .../internal/sdkmath/floor_go1.9.go | 56 - .../internal/sdkrand/locked_source.go | 29 - .../aws/aws-sdk-go/internal/sdkrand/read.go | 11 - .../aws-sdk-go/internal/sdkrand/read_1_5.go | 24 - .../aws/aws-sdk-go/internal/sdkuri/path.go | 23 - .../internal/shareddefaults/ecs_container.go | 12 - .../internal/shareddefaults/shared_config.go | 40 - .../aws-sdk-go/internal/strings/strings.go | 11 - .../internal/sync/singleflight/LICENSE | 27 - .../sync/singleflight/singleflight.go | 120 - .../aws/aws-sdk-go/private/protocol/host.go | 104 - .../private/protocol/host_prefix.go | 54 - .../private/protocol/idempotency.go | 75 - .../private/protocol/json/jsonutil/build.go | 296 - .../protocol/json/jsonutil/unmarshal.go | 304 - .../private/protocol/jsonrpc/jsonrpc.go | 88 - .../protocol/jsonrpc/unmarshal_error.go | 107 - .../aws-sdk-go/private/protocol/jsonvalue.go | 76 - .../aws-sdk-go/private/protocol/payload.go | 81 - .../aws-sdk-go/private/protocol/protocol.go | 49 - .../private/protocol/query/build.go | 36 - .../protocol/query/queryutil/queryutil.go | 246 - .../private/protocol/query/unmarshal.go | 39 - .../private/protocol/query/unmarshal_error.go | 69 - .../aws-sdk-go/private/protocol/rest/build.go | 310 - .../private/protocol/rest/payload.go | 45 - .../private/protocol/rest/unmarshal.go | 257 - .../private/protocol/restjson/restjson.go | 59 - .../protocol/restjson/unmarshal_error.go | 134 - .../aws-sdk-go/private/protocol/timestamp.go | 85 - .../aws-sdk-go/private/protocol/unmarshal.go | 27 - .../private/protocol/unmarshal_error.go | 65 - .../private/protocol/xml/xmlutil/build.go | 315 - .../private/protocol/xml/xmlutil/sort.go | 32 - .../private/protocol/xml/xmlutil/unmarshal.go | 299 - .../protocol/xml/xmlutil/xml_to_struct.go | 159 - .../aws/aws-sdk-go/service/ssm/api.go | 53400 ---------------- .../aws/aws-sdk-go/service/ssm/doc.go | 46 - .../aws/aws-sdk-go/service/ssm/errors.go | 969 - .../aws/aws-sdk-go/service/ssm/service.go | 103 - .../aws/aws-sdk-go/service/ssm/waiters.go | 91 - .../aws/aws-sdk-go/service/sso/api.go | 1210 - .../aws/aws-sdk-go/service/sso/doc.go | 44 - .../aws/aws-sdk-go/service/sso/errors.go | 44 - .../aws/aws-sdk-go/service/sso/service.go | 104 - .../service/sso/ssoiface/interface.go | 86 - .../aws/aws-sdk-go/service/sts/api.go | 3119 - .../aws-sdk-go/service/sts/customizations.go | 11 - .../aws/aws-sdk-go/service/sts/doc.go | 32 - .../aws/aws-sdk-go/service/sts/errors.go | 82 - .../aws/aws-sdk-go/service/sts/service.go | 98 - .../service/sts/stsiface/interface.go | 96 - .../github.com/dustin/go-humanize/.travis.yml | 21 - vendor/github.com/dustin/go-humanize/LICENSE | 21 - .../dustin/go-humanize/README.markdown | 124 - vendor/github.com/dustin/go-humanize/big.go | 31 - .../github.com/dustin/go-humanize/bigbytes.go | 173 - vendor/github.com/dustin/go-humanize/bytes.go | 143 - vendor/github.com/dustin/go-humanize/comma.go | 116 - .../github.com/dustin/go-humanize/commaf.go | 40 - vendor/github.com/dustin/go-humanize/ftoa.go | 46 - .../github.com/dustin/go-humanize/humanize.go | 8 - .../github.com/dustin/go-humanize/number.go | 192 - .../github.com/dustin/go-humanize/ordinals.go | 25 - vendor/github.com/dustin/go-humanize/si.go | 123 - vendor/github.com/dustin/go-humanize/times.go | 117 - vendor/github.com/go-chat-bot/bot/.gitignore | 41 - vendor/github.com/go-chat-bot/bot/LICENCE | 21 - vendor/github.com/go-chat-bot/bot/README.md | 237 - vendor/github.com/go-chat-bot/bot/bot.go | 275 - vendor/github.com/go-chat-bot/bot/cmd.go | 485 - vendor/github.com/go-chat-bot/bot/coverage.sh | 3 - vendor/github.com/go-chat-bot/bot/go.mod | 40 - vendor/github.com/go-chat-bot/bot/go.sum | 196 - vendor/github.com/go-chat-bot/bot/help.go | 65 - vendor/github.com/go-chat-bot/bot/parser.go | 64 - .../go-chat-bot/plugins/cmd/README.md | 6 - .../github.com/go-chat-bot/plugins/cmd/cmd.go | 72 - .../github.com/gorilla/websocket/.gitignore | 25 - vendor/github.com/gorilla/websocket/AUTHORS | 9 - vendor/github.com/gorilla/websocket/LICENSE | 22 - vendor/github.com/gorilla/websocket/README.md | 64 - vendor/github.com/gorilla/websocket/client.go | 395 - .../gorilla/websocket/client_clone.go | 16 - .../gorilla/websocket/client_clone_legacy.go | 38 - .../gorilla/websocket/compression.go | 148 - vendor/github.com/gorilla/websocket/conn.go | 1201 - .../gorilla/websocket/conn_write.go | 15 - .../gorilla/websocket/conn_write_legacy.go | 18 - vendor/github.com/gorilla/websocket/doc.go | 227 - vendor/github.com/gorilla/websocket/go.mod | 3 - vendor/github.com/gorilla/websocket/go.sum | 0 vendor/github.com/gorilla/websocket/join.go | 42 - vendor/github.com/gorilla/websocket/json.go | 60 - vendor/github.com/gorilla/websocket/mask.go | 54 - .../github.com/gorilla/websocket/mask_safe.go | 15 - .../github.com/gorilla/websocket/prepared.go | 102 - vendor/github.com/gorilla/websocket/proxy.go | 77 - vendor/github.com/gorilla/websocket/server.go | 363 - vendor/github.com/gorilla/websocket/trace.go | 19 - .../github.com/gorilla/websocket/trace_17.go | 12 - vendor/github.com/gorilla/websocket/util.go | 283 - .../gorilla/websocket/x_net_proxy.go | 473 - .../jmespath/go-jmespath/.gitignore | 4 - .../jmespath/go-jmespath/.travis.yml | 28 - .../github.com/jmespath/go-jmespath/LICENSE | 13 - .../github.com/jmespath/go-jmespath/Makefile | 51 - .../github.com/jmespath/go-jmespath/README.md | 87 - vendor/github.com/jmespath/go-jmespath/api.go | 49 - .../go-jmespath/astnodetype_string.go | 16 - .../jmespath/go-jmespath/functions.go | 842 - vendor/github.com/jmespath/go-jmespath/go.mod | 5 - vendor/github.com/jmespath/go-jmespath/go.sum | 11 - .../jmespath/go-jmespath/interpreter.go | 418 - .../github.com/jmespath/go-jmespath/lexer.go | 420 - .../github.com/jmespath/go-jmespath/parser.go | 603 - .../jmespath/go-jmespath/toktype_string.go | 16 - .../github.com/jmespath/go-jmespath/util.go | 185 - .../lucasb-eyer/go-colorful/.gitignore | 101 - .../lucasb-eyer/go-colorful/CHANGELOG.md | 42 - .../lucasb-eyer/go-colorful/LICENSE | 7 - .../lucasb-eyer/go-colorful/README.md | 482 - .../lucasb-eyer/go-colorful/colorgens.go | 55 - .../lucasb-eyer/go-colorful/colors.go | 979 - .../github.com/lucasb-eyer/go-colorful/go.mod | 3 - .../go-colorful/happy_palettegen.go | 25 - .../lucasb-eyer/go-colorful/hexcolor.go | 67 - .../go-colorful/hsluv-snapshot-rev4.json | 1 - .../lucasb-eyer/go-colorful/hsluv.go | 207 - .../go-colorful/soft_palettegen.go | 185 - .../go-colorful/warm_palettegen.go | 25 - .../mattn/go-shellwords/.travis.yml | 14 - vendor/github.com/mattn/go-shellwords/LICENSE | 21 - .../github.com/mattn/go-shellwords/README.md | 47 - vendor/github.com/mattn/go-shellwords/go.mod | 1 - .../github.com/mattn/go-shellwords/go.test.sh | 12 - .../mattn/go-shellwords/shellwords.go | 193 - .../mattn/go-shellwords/util_go15.go | 29 - .../mattn/go-shellwords/util_posix.go | 26 - .../mattn/go-shellwords/util_windows.go | 26 - .../mozillazg/go-unidecode/.gitignore | 27 - .../mozillazg/go-unidecode/.travis.yml | 27 - .../mozillazg/go-unidecode/CHANGELOG.md | 10 - .../github.com/mozillazg/go-unidecode/LICENSE | 22 - .../mozillazg/go-unidecode/Makefile | 14 - .../mozillazg/go-unidecode/README.md | 60 - .../github.com/mozillazg/go-unidecode/doc.go | 6 - .../github.com/mozillazg/go-unidecode/go.mod | 1 - .../mozillazg/go-unidecode/table/table.go | 195 - .../mozillazg/go-unidecode/table/x000.go | 150 - .../mozillazg/go-unidecode/table/x001.go | 260 - .../mozillazg/go-unidecode/table/x002.go | 259 - .../mozillazg/go-unidecode/table/x003.go | 259 - .../mozillazg/go-unidecode/table/x004.go | 259 - .../mozillazg/go-unidecode/table/x005.go | 259 - .../mozillazg/go-unidecode/table/x006.go | 259 - .../mozillazg/go-unidecode/table/x007.go | 259 - .../mozillazg/go-unidecode/table/x009.go | 259 - .../mozillazg/go-unidecode/table/x00a.go | 259 - .../mozillazg/go-unidecode/table/x00b.go | 259 - .../mozillazg/go-unidecode/table/x00c.go | 259 - .../mozillazg/go-unidecode/table/x00d.go | 259 - .../mozillazg/go-unidecode/table/x00e.go | 259 - .../mozillazg/go-unidecode/table/x00f.go | 259 - .../mozillazg/go-unidecode/table/x010.go | 259 - .../mozillazg/go-unidecode/table/x011.go | 259 - .../mozillazg/go-unidecode/table/x012.go | 260 - .../mozillazg/go-unidecode/table/x013.go | 259 - .../mozillazg/go-unidecode/table/x014.go | 260 - .../mozillazg/go-unidecode/table/x015.go | 260 - .../mozillazg/go-unidecode/table/x016.go | 259 - .../mozillazg/go-unidecode/table/x017.go | 259 - .../mozillazg/go-unidecode/table/x018.go | 259 - .../mozillazg/go-unidecode/table/x01d.go | 259 - .../mozillazg/go-unidecode/table/x01e.go | 259 - .../mozillazg/go-unidecode/table/x01f.go | 259 - .../mozillazg/go-unidecode/table/x020.go | 258 - .../mozillazg/go-unidecode/table/x021.go | 259 - .../mozillazg/go-unidecode/table/x022.go | 259 - .../mozillazg/go-unidecode/table/x023.go | 259 - .../mozillazg/go-unidecode/table/x024.go | 260 - .../mozillazg/go-unidecode/table/x025.go | 259 - .../mozillazg/go-unidecode/table/x026.go | 259 - .../mozillazg/go-unidecode/table/x027.go | 259 - .../mozillazg/go-unidecode/table/x028.go | 260 - .../mozillazg/go-unidecode/table/x029.go | 259 - .../mozillazg/go-unidecode/table/x02a.go | 259 - .../mozillazg/go-unidecode/table/x02c.go | 259 - .../mozillazg/go-unidecode/table/x02e.go | 259 - .../mozillazg/go-unidecode/table/x02f.go | 259 - .../mozillazg/go-unidecode/table/x030.go | 259 - .../mozillazg/go-unidecode/table/x031.go | 259 - .../mozillazg/go-unidecode/table/x032.go | 259 - .../mozillazg/go-unidecode/table/x033.go | 259 - .../mozillazg/go-unidecode/table/x04d.go | 259 - .../mozillazg/go-unidecode/table/x04e.go | 260 - .../mozillazg/go-unidecode/table/x04f.go | 260 - .../mozillazg/go-unidecode/table/x050.go | 260 - .../mozillazg/go-unidecode/table/x051.go | 260 - .../mozillazg/go-unidecode/table/x052.go | 260 - .../mozillazg/go-unidecode/table/x053.go | 260 - .../mozillazg/go-unidecode/table/x054.go | 260 - .../mozillazg/go-unidecode/table/x055.go | 260 - .../mozillazg/go-unidecode/table/x056.go | 260 - .../mozillazg/go-unidecode/table/x057.go | 260 - .../mozillazg/go-unidecode/table/x058.go | 260 - .../mozillazg/go-unidecode/table/x059.go | 260 - .../mozillazg/go-unidecode/table/x05a.go | 260 - .../mozillazg/go-unidecode/table/x05b.go | 260 - .../mozillazg/go-unidecode/table/x05c.go | 260 - .../mozillazg/go-unidecode/table/x05d.go | 260 - .../mozillazg/go-unidecode/table/x05e.go | 260 - .../mozillazg/go-unidecode/table/x05f.go | 260 - .../mozillazg/go-unidecode/table/x060.go | 260 - .../mozillazg/go-unidecode/table/x061.go | 260 - .../mozillazg/go-unidecode/table/x062.go | 260 - .../mozillazg/go-unidecode/table/x063.go | 260 - .../mozillazg/go-unidecode/table/x064.go | 260 - .../mozillazg/go-unidecode/table/x065.go | 260 - .../mozillazg/go-unidecode/table/x066.go | 260 - .../mozillazg/go-unidecode/table/x067.go | 260 - .../mozillazg/go-unidecode/table/x068.go | 260 - .../mozillazg/go-unidecode/table/x069.go | 260 - .../mozillazg/go-unidecode/table/x06a.go | 260 - .../mozillazg/go-unidecode/table/x06b.go | 260 - .../mozillazg/go-unidecode/table/x06c.go | 260 - .../mozillazg/go-unidecode/table/x06d.go | 260 - .../mozillazg/go-unidecode/table/x06e.go | 260 - .../mozillazg/go-unidecode/table/x06f.go | 260 - .../mozillazg/go-unidecode/table/x070.go | 260 - .../mozillazg/go-unidecode/table/x071.go | 260 - .../mozillazg/go-unidecode/table/x072.go | 260 - .../mozillazg/go-unidecode/table/x073.go | 260 - .../mozillazg/go-unidecode/table/x074.go | 260 - .../mozillazg/go-unidecode/table/x075.go | 260 - .../mozillazg/go-unidecode/table/x076.go | 260 - .../mozillazg/go-unidecode/table/x077.go | 260 - .../mozillazg/go-unidecode/table/x078.go | 260 - .../mozillazg/go-unidecode/table/x079.go | 260 - .../mozillazg/go-unidecode/table/x07a.go | 260 - .../mozillazg/go-unidecode/table/x07b.go | 260 - .../mozillazg/go-unidecode/table/x07c.go | 260 - .../mozillazg/go-unidecode/table/x07d.go | 260 - .../mozillazg/go-unidecode/table/x07e.go | 260 - .../mozillazg/go-unidecode/table/x07f.go | 260 - .../mozillazg/go-unidecode/table/x080.go | 260 - .../mozillazg/go-unidecode/table/x081.go | 260 - .../mozillazg/go-unidecode/table/x082.go | 260 - .../mozillazg/go-unidecode/table/x083.go | 260 - .../mozillazg/go-unidecode/table/x084.go | 260 - .../mozillazg/go-unidecode/table/x085.go | 260 - .../mozillazg/go-unidecode/table/x086.go | 260 - .../mozillazg/go-unidecode/table/x087.go | 260 - .../mozillazg/go-unidecode/table/x088.go | 260 - .../mozillazg/go-unidecode/table/x089.go | 260 - .../mozillazg/go-unidecode/table/x08a.go | 260 - .../mozillazg/go-unidecode/table/x08b.go | 260 - .../mozillazg/go-unidecode/table/x08c.go | 260 - .../mozillazg/go-unidecode/table/x08d.go | 260 - .../mozillazg/go-unidecode/table/x08e.go | 260 - .../mozillazg/go-unidecode/table/x08f.go | 260 - .../mozillazg/go-unidecode/table/x090.go | 260 - .../mozillazg/go-unidecode/table/x091.go | 260 - .../mozillazg/go-unidecode/table/x092.go | 260 - .../mozillazg/go-unidecode/table/x093.go | 260 - .../mozillazg/go-unidecode/table/x094.go | 260 - .../mozillazg/go-unidecode/table/x095.go | 260 - .../mozillazg/go-unidecode/table/x096.go | 260 - .../mozillazg/go-unidecode/table/x097.go | 260 - .../mozillazg/go-unidecode/table/x098.go | 260 - .../mozillazg/go-unidecode/table/x099.go | 260 - .../mozillazg/go-unidecode/table/x09a.go | 260 - .../mozillazg/go-unidecode/table/x09b.go | 260 - .../mozillazg/go-unidecode/table/x09c.go | 260 - .../mozillazg/go-unidecode/table/x09d.go | 260 - .../mozillazg/go-unidecode/table/x09e.go | 260 - .../mozillazg/go-unidecode/table/x09f.go | 259 - .../mozillazg/go-unidecode/table/x0a0.go | 260 - .../mozillazg/go-unidecode/table/x0a1.go | 260 - .../mozillazg/go-unidecode/table/x0a2.go | 260 - .../mozillazg/go-unidecode/table/x0a3.go | 260 - .../mozillazg/go-unidecode/table/x0a4.go | 259 - .../mozillazg/go-unidecode/table/x0ac.go | 260 - .../mozillazg/go-unidecode/table/x0ad.go | 260 - .../mozillazg/go-unidecode/table/x0ae.go | 260 - .../mozillazg/go-unidecode/table/x0af.go | 260 - .../mozillazg/go-unidecode/table/x0b0.go | 260 - .../mozillazg/go-unidecode/table/x0b1.go | 260 - .../mozillazg/go-unidecode/table/x0b2.go | 260 - .../mozillazg/go-unidecode/table/x0b3.go | 260 - .../mozillazg/go-unidecode/table/x0b4.go | 260 - .../mozillazg/go-unidecode/table/x0b5.go | 260 - .../mozillazg/go-unidecode/table/x0b6.go | 260 - .../mozillazg/go-unidecode/table/x0b7.go | 260 - .../mozillazg/go-unidecode/table/x0b8.go | 260 - .../mozillazg/go-unidecode/table/x0b9.go | 260 - .../mozillazg/go-unidecode/table/x0ba.go | 260 - .../mozillazg/go-unidecode/table/x0bb.go | 260 - .../mozillazg/go-unidecode/table/x0bc.go | 260 - .../mozillazg/go-unidecode/table/x0bd.go | 260 - .../mozillazg/go-unidecode/table/x0be.go | 260 - .../mozillazg/go-unidecode/table/x0bf.go | 260 - .../mozillazg/go-unidecode/table/x0c0.go | 260 - .../mozillazg/go-unidecode/table/x0c1.go | 260 - .../mozillazg/go-unidecode/table/x0c2.go | 260 - .../mozillazg/go-unidecode/table/x0c3.go | 260 - .../mozillazg/go-unidecode/table/x0c4.go | 260 - .../mozillazg/go-unidecode/table/x0c5.go | 260 - .../mozillazg/go-unidecode/table/x0c6.go | 260 - .../mozillazg/go-unidecode/table/x0c7.go | 260 - .../mozillazg/go-unidecode/table/x0c8.go | 260 - .../mozillazg/go-unidecode/table/x0c9.go | 260 - .../mozillazg/go-unidecode/table/x0ca.go | 260 - .../mozillazg/go-unidecode/table/x0cb.go | 260 - .../mozillazg/go-unidecode/table/x0cc.go | 260 - .../mozillazg/go-unidecode/table/x0cd.go | 260 - .../mozillazg/go-unidecode/table/x0ce.go | 260 - .../mozillazg/go-unidecode/table/x0cf.go | 260 - .../mozillazg/go-unidecode/table/x0d0.go | 260 - .../mozillazg/go-unidecode/table/x0d1.go | 260 - .../mozillazg/go-unidecode/table/x0d2.go | 260 - .../mozillazg/go-unidecode/table/x0d3.go | 260 - .../mozillazg/go-unidecode/table/x0d4.go | 260 - .../mozillazg/go-unidecode/table/x0d5.go | 260 - .../mozillazg/go-unidecode/table/x0d6.go | 260 - .../mozillazg/go-unidecode/table/x0d7.go | 259 - .../mozillazg/go-unidecode/table/x0f9.go | 260 - .../mozillazg/go-unidecode/table/x0fa.go | 259 - .../mozillazg/go-unidecode/table/x0fb.go | 260 - .../mozillazg/go-unidecode/table/x0fc.go | 260 - .../mozillazg/go-unidecode/table/x0fd.go | 259 - .../mozillazg/go-unidecode/table/x0fe.go | 260 - .../mozillazg/go-unidecode/table/x0ff.go | 260 - .../mozillazg/go-unidecode/table/x1d4.go | 260 - .../mozillazg/go-unidecode/table/x1d5.go | 260 - .../mozillazg/go-unidecode/table/x1d6.go | 260 - .../mozillazg/go-unidecode/table/x1d7.go | 260 - .../mozillazg/go-unidecode/unidecode.go | 42 - vendor/github.com/pkg/errors/.gitignore | 24 - vendor/github.com/pkg/errors/.travis.yml | 10 - vendor/github.com/pkg/errors/LICENSE | 23 - vendor/github.com/pkg/errors/Makefile | 44 - vendor/github.com/pkg/errors/README.md | 59 - vendor/github.com/pkg/errors/appveyor.yml | 32 - vendor/github.com/pkg/errors/errors.go | 288 - vendor/github.com/pkg/errors/go113.go | 38 - vendor/github.com/pkg/errors/stack.go | 177 - vendor/github.com/robfig/cron/v3/.gitignore | 22 - vendor/github.com/robfig/cron/v3/.travis.yml | 1 - vendor/github.com/robfig/cron/v3/LICENSE | 21 - vendor/github.com/robfig/cron/v3/README.md | 125 - vendor/github.com/robfig/cron/v3/chain.go | 92 - .../robfig/cron/v3/constantdelay.go | 27 - vendor/github.com/robfig/cron/v3/cron.go | 350 - vendor/github.com/robfig/cron/v3/doc.go | 212 - vendor/github.com/robfig/cron/v3/go.mod | 3 - vendor/github.com/robfig/cron/v3/logger.go | 86 - vendor/github.com/robfig/cron/v3/option.go | 45 - vendor/github.com/robfig/cron/v3/parser.go | 434 - vendor/github.com/robfig/cron/v3/spec.go | 188 - vendor/github.com/slack-go/slack/.gitignore | 3 - .../github.com/slack-go/slack/.golangci.yml | 14 - vendor/github.com/slack-go/slack/CHANGELOG.md | 103 - vendor/github.com/slack-go/slack/LICENSE | 23 - vendor/github.com/slack-go/slack/Makefile | 36 - vendor/github.com/slack-go/slack/README.md | 97 - vendor/github.com/slack-go/slack/TODO.txt | 3 - vendor/github.com/slack-go/slack/admin.go | 207 - vendor/github.com/slack-go/slack/apps.go | 61 - .../github.com/slack-go/slack/attachments.go | 93 - vendor/github.com/slack-go/slack/auth.go | 40 - vendor/github.com/slack-go/slack/block.go | 80 - .../github.com/slack-go/slack/block_action.go | 26 - .../slack-go/slack/block_context.go | 32 - .../github.com/slack-go/slack/block_conv.go | 417 - .../slack-go/slack/block_divider.go | 22 - .../slack-go/slack/block_element.go | 466 - .../github.com/slack-go/slack/block_file.go | 26 - .../github.com/slack-go/slack/block_header.go | 38 - .../github.com/slack-go/slack/block_image.go | 28 - .../github.com/slack-go/slack/block_input.go | 29 - .../github.com/slack-go/slack/block_object.go | 243 - .../slack-go/slack/block_section.go | 42 - .../slack-go/slack/block_unknown.go | 13 - vendor/github.com/slack-go/slack/bots.go | 58 - vendor/github.com/slack-go/slack/channels.go | 714 - vendor/github.com/slack-go/slack/chat.go | 840 - vendor/github.com/slack-go/slack/comment.go | 10 - .../github.com/slack-go/slack/conversation.go | 645 - vendor/github.com/slack-go/slack/dialog.go | 120 - .../slack-go/slack/dialog_select.go | 101 - .../github.com/slack-go/slack/dialog_text.go | 59 - vendor/github.com/slack-go/slack/dnd.go | 151 - vendor/github.com/slack-go/slack/emoji.go | 35 - vendor/github.com/slack-go/slack/errors.go | 21 - vendor/github.com/slack-go/slack/files.go | 410 - vendor/github.com/slack-go/slack/go.mod | 12 - vendor/github.com/slack-go/slack/go.sum | 12 - vendor/github.com/slack-go/slack/groups.go | 574 - vendor/github.com/slack-go/slack/history.go | 37 - vendor/github.com/slack-go/slack/im.go | 220 - vendor/github.com/slack-go/slack/info.go | 468 - .../github.com/slack-go/slack/interactions.go | 221 - .../slack/internal/backoff/backoff.go | 62 - .../slack/internal/errorsx/errorsx.go | 17 - .../slack-go/slack/internal/misc/misc.go | 28 - .../slack-go/slack/internal/timex/timex.go | 18 - vendor/github.com/slack-go/slack/item.go | 75 - vendor/github.com/slack-go/slack/logger.go | 60 - vendor/github.com/slack-go/slack/logo.png | Bin 52440 -> 0 bytes vendor/github.com/slack-go/slack/messageID.go | 30 - vendor/github.com/slack-go/slack/messages.go | 220 - vendor/github.com/slack-go/slack/misc.go | 341 - vendor/github.com/slack-go/slack/oauth.go | 134 - .../github.com/slack-go/slack/pagination.go | 20 - vendor/github.com/slack-go/slack/pins.go | 94 - vendor/github.com/slack-go/slack/reactions.go | 270 - vendor/github.com/slack-go/slack/reminders.go | 104 - vendor/github.com/slack-go/slack/rtm.go | 131 - vendor/github.com/slack-go/slack/search.go | 156 - vendor/github.com/slack-go/slack/security.go | 108 - vendor/github.com/slack-go/slack/slack.go | 162 - .../slack-go/slack/slackutilsx/slackutilsx.go | 62 - vendor/github.com/slack-go/slack/slash.go | 55 - .../github.com/slack-go/slack/socket_mode.go | 34 - vendor/github.com/slack-go/slack/stars.go | 263 - vendor/github.com/slack-go/slack/team.go | 167 - .../github.com/slack-go/slack/usergroups.go | 258 - vendor/github.com/slack-go/slack/users.go | 663 - vendor/github.com/slack-go/slack/views.go | 297 - vendor/github.com/slack-go/slack/webhooks.go | 30 - .../slack-go/slack/webhooks_go112.go | 34 - .../slack-go/slack/webhooks_go113.go | 33 - vendor/github.com/slack-go/slack/websocket.go | 103 - .../slack-go/slack/websocket_channels.go | 72 - .../slack/websocket_desktop_notification.go | 19 - .../github.com/slack-go/slack/websocket_dm.go | 23 - .../slack-go/slack/websocket_dnd.go | 8 - .../slack-go/slack/websocket_files.go | 49 - .../slack-go/slack/websocket_groups.go | 49 - .../slack-go/slack/websocket_internals.go | 101 - .../slack-go/slack/websocket_managed_conn.go | 586 - .../slack-go/slack/websocket_misc.go | 141 - .../websocket_mobile_in_app_notification.go | 20 - .../slack-go/slack/websocket_pins.go | 16 - .../slack-go/slack/websocket_reactions.go | 25 - .../slack-go/slack/websocket_stars.go | 14 - .../slack-go/slack/websocket_subteam.go | 35 - .../slack-go/slack/websocket_teams.go | 33 - vendor/modules.txt | 80 - 603 files changed, 1037 insertions(+), 167868 deletions(-) create mode 100644 .env-example create mode 100644 app-manifest.yaml create mode 100644 lib/config/main.go delete mode 100644 lib/configs/configs.go delete mode 100644 lib/plugins/log/log.go delete mode 100644 lib/plugins/standup/standup.go delete mode 100644 lib/plugins/status/status.go delete mode 100644 lib/plugins/suicide/main.go delete mode 100644 lib/slack/slack.go create mode 100644 lib/standup/brain.go create mode 100644 lib/standup/handlers.go create mode 100644 lib/standup/slack.go create mode 100644 lib/standup/standup.go create mode 100644 lib/types/standup-settings.go create mode 100644 lib/views/assets/settings-modal.json create mode 100644 lib/views/settings-modal.go create mode 100644 lib/views/util.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/LICENSE.txt delete mode 100644 vendor/github.com/aws/aws-sdk-go/NOTICE.txt delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/awserr/error.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/awserr/types.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/awsutil/copy.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/awsutil/equal.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/awsutil/path_value.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/awsutil/prettify.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/client/client.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/client/default_retryer.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/client/logger.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/client/metadata/client_info.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/client/no_op_retryer.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/config.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/context_1_5.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/context_1_9.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/context_background_1_7.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/context_sleep.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/convert_types.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/corehandlers/param_validator.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.5.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.7.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.5.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.9.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/example.ini delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/provider.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/doc.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os_windows.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/provider.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/web_identity_provider.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/csm/doc.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/csm/enable.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/csm/metric_chan.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/csm/metric_exception.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/defaults/shared_config.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/doc.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/endpoints/doc.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/endpoints/legacy_regions.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/errors.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/jsonvalue.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/logger.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/http_request.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/offset_reader.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/request.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/request_1_7.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/request_1_8.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/request_context.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/request_context_1_6.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/request_pagination.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/timeout_read_closer.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/validation.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/waiter.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.12.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.5.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.6.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/session/doc.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/session/session.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/signer/v4/header_rules.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/signer/v4/options.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.5.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.7.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/signer/v4/stream.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/signer/v4/uri_path.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/types.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/url.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/url_1_7.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/version.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/context/background_go1.5.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/ast.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/comma_token.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/comment_token.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/doc.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/empty_token.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/expression.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/ini.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/ini_lexer.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/literal_tokens.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/newline_token.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/number_helper.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/op_tokens.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/parse_error.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/parse_stack.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/sep_tokens.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/skipper.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/statement.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/value_util.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/walker.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/ini/ws_token.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/sdkio/byte.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.6.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.7.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor_go1.9.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/sdkrand/locked_source.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read_1_5.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/sdkuri/path.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/ecs_container.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/strings/strings.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/LICENSE delete mode 100644 vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/singleflight.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/host.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/host_prefix.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/idempotency.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/build.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/unmarshal.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/jsonrpc.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/unmarshal_error.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/jsonvalue.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/payload.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/protocol.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/rest/payload.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/restjson.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/unmarshal_error.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal_error.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/sort.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/xml_to_struct.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/ssm/api.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/ssm/doc.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/ssm/service.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/ssm/waiters.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/sso/api.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/sso/doc.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/sso/errors.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/sso/service.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/sso/ssoiface/interface.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/sts/api.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/sts/customizations.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/sts/doc.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/sts/errors.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/sts/service.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/service/sts/stsiface/interface.go delete mode 100644 vendor/github.com/dustin/go-humanize/.travis.yml delete mode 100644 vendor/github.com/dustin/go-humanize/LICENSE delete mode 100644 vendor/github.com/dustin/go-humanize/README.markdown delete mode 100644 vendor/github.com/dustin/go-humanize/big.go delete mode 100644 vendor/github.com/dustin/go-humanize/bigbytes.go delete mode 100644 vendor/github.com/dustin/go-humanize/bytes.go delete mode 100644 vendor/github.com/dustin/go-humanize/comma.go delete mode 100644 vendor/github.com/dustin/go-humanize/commaf.go delete mode 100644 vendor/github.com/dustin/go-humanize/ftoa.go delete mode 100644 vendor/github.com/dustin/go-humanize/humanize.go delete mode 100644 vendor/github.com/dustin/go-humanize/number.go delete mode 100644 vendor/github.com/dustin/go-humanize/ordinals.go delete mode 100644 vendor/github.com/dustin/go-humanize/si.go delete mode 100644 vendor/github.com/dustin/go-humanize/times.go delete mode 100644 vendor/github.com/go-chat-bot/bot/.gitignore delete mode 100644 vendor/github.com/go-chat-bot/bot/LICENCE delete mode 100644 vendor/github.com/go-chat-bot/bot/README.md delete mode 100644 vendor/github.com/go-chat-bot/bot/bot.go delete mode 100644 vendor/github.com/go-chat-bot/bot/cmd.go delete mode 100644 vendor/github.com/go-chat-bot/bot/coverage.sh delete mode 100644 vendor/github.com/go-chat-bot/bot/go.mod delete mode 100644 vendor/github.com/go-chat-bot/bot/go.sum delete mode 100644 vendor/github.com/go-chat-bot/bot/help.go delete mode 100644 vendor/github.com/go-chat-bot/bot/parser.go delete mode 100644 vendor/github.com/go-chat-bot/plugins/cmd/README.md delete mode 100644 vendor/github.com/go-chat-bot/plugins/cmd/cmd.go delete mode 100644 vendor/github.com/gorilla/websocket/.gitignore delete mode 100644 vendor/github.com/gorilla/websocket/AUTHORS delete mode 100644 vendor/github.com/gorilla/websocket/LICENSE delete mode 100644 vendor/github.com/gorilla/websocket/README.md delete mode 100644 vendor/github.com/gorilla/websocket/client.go delete mode 100644 vendor/github.com/gorilla/websocket/client_clone.go delete mode 100644 vendor/github.com/gorilla/websocket/client_clone_legacy.go delete mode 100644 vendor/github.com/gorilla/websocket/compression.go delete mode 100644 vendor/github.com/gorilla/websocket/conn.go delete mode 100644 vendor/github.com/gorilla/websocket/conn_write.go delete mode 100644 vendor/github.com/gorilla/websocket/conn_write_legacy.go delete mode 100644 vendor/github.com/gorilla/websocket/doc.go delete mode 100644 vendor/github.com/gorilla/websocket/go.mod delete mode 100644 vendor/github.com/gorilla/websocket/go.sum delete mode 100644 vendor/github.com/gorilla/websocket/join.go delete mode 100644 vendor/github.com/gorilla/websocket/json.go delete mode 100644 vendor/github.com/gorilla/websocket/mask.go delete mode 100644 vendor/github.com/gorilla/websocket/mask_safe.go delete mode 100644 vendor/github.com/gorilla/websocket/prepared.go delete mode 100644 vendor/github.com/gorilla/websocket/proxy.go delete mode 100644 vendor/github.com/gorilla/websocket/server.go delete mode 100644 vendor/github.com/gorilla/websocket/trace.go delete mode 100644 vendor/github.com/gorilla/websocket/trace_17.go delete mode 100644 vendor/github.com/gorilla/websocket/util.go delete mode 100644 vendor/github.com/gorilla/websocket/x_net_proxy.go delete mode 100644 vendor/github.com/jmespath/go-jmespath/.gitignore delete mode 100644 vendor/github.com/jmespath/go-jmespath/.travis.yml delete mode 100644 vendor/github.com/jmespath/go-jmespath/LICENSE delete mode 100644 vendor/github.com/jmespath/go-jmespath/Makefile delete mode 100644 vendor/github.com/jmespath/go-jmespath/README.md delete mode 100644 vendor/github.com/jmespath/go-jmespath/api.go delete mode 100644 vendor/github.com/jmespath/go-jmespath/astnodetype_string.go delete mode 100644 vendor/github.com/jmespath/go-jmespath/functions.go delete mode 100644 vendor/github.com/jmespath/go-jmespath/go.mod delete mode 100644 vendor/github.com/jmespath/go-jmespath/go.sum delete mode 100644 vendor/github.com/jmespath/go-jmespath/interpreter.go delete mode 100644 vendor/github.com/jmespath/go-jmespath/lexer.go delete mode 100644 vendor/github.com/jmespath/go-jmespath/parser.go delete mode 100644 vendor/github.com/jmespath/go-jmespath/toktype_string.go delete mode 100644 vendor/github.com/jmespath/go-jmespath/util.go delete mode 100644 vendor/github.com/lucasb-eyer/go-colorful/.gitignore delete mode 100644 vendor/github.com/lucasb-eyer/go-colorful/CHANGELOG.md delete mode 100644 vendor/github.com/lucasb-eyer/go-colorful/LICENSE delete mode 100644 vendor/github.com/lucasb-eyer/go-colorful/README.md delete mode 100644 vendor/github.com/lucasb-eyer/go-colorful/colorgens.go delete mode 100644 vendor/github.com/lucasb-eyer/go-colorful/colors.go delete mode 100644 vendor/github.com/lucasb-eyer/go-colorful/go.mod delete mode 100644 vendor/github.com/lucasb-eyer/go-colorful/happy_palettegen.go delete mode 100644 vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go delete mode 100644 vendor/github.com/lucasb-eyer/go-colorful/hsluv-snapshot-rev4.json delete mode 100644 vendor/github.com/lucasb-eyer/go-colorful/hsluv.go delete mode 100644 vendor/github.com/lucasb-eyer/go-colorful/soft_palettegen.go delete mode 100644 vendor/github.com/lucasb-eyer/go-colorful/warm_palettegen.go delete mode 100644 vendor/github.com/mattn/go-shellwords/.travis.yml delete mode 100644 vendor/github.com/mattn/go-shellwords/LICENSE delete mode 100644 vendor/github.com/mattn/go-shellwords/README.md delete mode 100644 vendor/github.com/mattn/go-shellwords/go.mod delete mode 100644 vendor/github.com/mattn/go-shellwords/go.test.sh delete mode 100644 vendor/github.com/mattn/go-shellwords/shellwords.go delete mode 100644 vendor/github.com/mattn/go-shellwords/util_go15.go delete mode 100644 vendor/github.com/mattn/go-shellwords/util_posix.go delete mode 100644 vendor/github.com/mattn/go-shellwords/util_windows.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/.gitignore delete mode 100644 vendor/github.com/mozillazg/go-unidecode/.travis.yml delete mode 100644 vendor/github.com/mozillazg/go-unidecode/CHANGELOG.md delete mode 100644 vendor/github.com/mozillazg/go-unidecode/LICENSE delete mode 100644 vendor/github.com/mozillazg/go-unidecode/Makefile delete mode 100644 vendor/github.com/mozillazg/go-unidecode/README.md delete mode 100644 vendor/github.com/mozillazg/go-unidecode/doc.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/go.mod delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/table.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x000.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x001.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x002.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x003.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x004.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x005.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x006.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x007.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x009.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x00a.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x00b.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x00c.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x00d.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x00e.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x00f.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x010.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x011.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x012.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x013.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x014.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x015.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x016.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x017.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x018.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x01d.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x01e.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x01f.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x020.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x021.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x022.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x023.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x024.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x025.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x026.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x027.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x028.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x029.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x02a.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x02c.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x02e.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x02f.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x030.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x031.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x032.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x033.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x04d.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x04e.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x04f.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x050.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x051.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x052.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x053.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x054.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x055.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x056.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x057.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x058.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x059.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x05a.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x05b.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x05c.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x05d.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x05e.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x05f.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x060.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x061.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x062.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x063.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x064.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x065.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x066.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x067.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x068.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x069.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x06a.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x06b.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x06c.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x06d.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x06e.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x06f.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x070.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x071.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x072.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x073.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x074.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x075.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x076.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x077.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x078.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x079.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x07a.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x07b.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x07c.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x07d.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x07e.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x07f.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x080.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x081.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x082.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x083.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x084.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x085.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x086.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x087.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x088.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x089.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x08a.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x08b.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x08c.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x08d.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x08e.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x08f.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x090.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x091.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x092.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x093.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x094.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x095.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x096.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x097.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x098.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x099.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x09a.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x09b.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x09c.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x09d.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x09e.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x09f.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0a0.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0a1.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0a2.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0a3.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0a4.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0ac.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0ad.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0ae.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0af.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0b0.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0b1.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0b2.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0b3.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0b4.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0b5.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0b6.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0b7.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0b8.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0b9.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0ba.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0bb.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0bc.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0bd.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0be.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0bf.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0c0.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0c1.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0c2.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0c3.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0c4.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0c5.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0c6.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0c7.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0c8.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0c9.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0ca.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0cb.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0cc.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0cd.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0ce.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0cf.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0d0.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0d1.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0d2.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0d3.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0d4.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0d5.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0d6.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0d7.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0f9.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0fa.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0fb.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0fc.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0fd.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0fe.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x0ff.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x1d4.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x1d5.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x1d6.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/table/x1d7.go delete mode 100644 vendor/github.com/mozillazg/go-unidecode/unidecode.go delete mode 100644 vendor/github.com/pkg/errors/.gitignore delete mode 100644 vendor/github.com/pkg/errors/.travis.yml delete mode 100644 vendor/github.com/pkg/errors/LICENSE delete mode 100644 vendor/github.com/pkg/errors/Makefile delete mode 100644 vendor/github.com/pkg/errors/README.md delete mode 100644 vendor/github.com/pkg/errors/appveyor.yml delete mode 100644 vendor/github.com/pkg/errors/errors.go delete mode 100644 vendor/github.com/pkg/errors/go113.go delete mode 100644 vendor/github.com/pkg/errors/stack.go delete mode 100644 vendor/github.com/robfig/cron/v3/.gitignore delete mode 100644 vendor/github.com/robfig/cron/v3/.travis.yml delete mode 100644 vendor/github.com/robfig/cron/v3/LICENSE delete mode 100644 vendor/github.com/robfig/cron/v3/README.md delete mode 100644 vendor/github.com/robfig/cron/v3/chain.go delete mode 100644 vendor/github.com/robfig/cron/v3/constantdelay.go delete mode 100644 vendor/github.com/robfig/cron/v3/cron.go delete mode 100644 vendor/github.com/robfig/cron/v3/doc.go delete mode 100644 vendor/github.com/robfig/cron/v3/go.mod delete mode 100644 vendor/github.com/robfig/cron/v3/logger.go delete mode 100644 vendor/github.com/robfig/cron/v3/option.go delete mode 100644 vendor/github.com/robfig/cron/v3/parser.go delete mode 100644 vendor/github.com/robfig/cron/v3/spec.go delete mode 100644 vendor/github.com/slack-go/slack/.gitignore delete mode 100644 vendor/github.com/slack-go/slack/.golangci.yml delete mode 100644 vendor/github.com/slack-go/slack/CHANGELOG.md delete mode 100644 vendor/github.com/slack-go/slack/LICENSE delete mode 100644 vendor/github.com/slack-go/slack/Makefile delete mode 100644 vendor/github.com/slack-go/slack/README.md delete mode 100644 vendor/github.com/slack-go/slack/TODO.txt delete mode 100644 vendor/github.com/slack-go/slack/admin.go delete mode 100644 vendor/github.com/slack-go/slack/apps.go delete mode 100644 vendor/github.com/slack-go/slack/attachments.go delete mode 100644 vendor/github.com/slack-go/slack/auth.go delete mode 100644 vendor/github.com/slack-go/slack/block.go delete mode 100644 vendor/github.com/slack-go/slack/block_action.go delete mode 100644 vendor/github.com/slack-go/slack/block_context.go delete mode 100644 vendor/github.com/slack-go/slack/block_conv.go delete mode 100644 vendor/github.com/slack-go/slack/block_divider.go delete mode 100644 vendor/github.com/slack-go/slack/block_element.go delete mode 100644 vendor/github.com/slack-go/slack/block_file.go delete mode 100644 vendor/github.com/slack-go/slack/block_header.go delete mode 100644 vendor/github.com/slack-go/slack/block_image.go delete mode 100644 vendor/github.com/slack-go/slack/block_input.go delete mode 100644 vendor/github.com/slack-go/slack/block_object.go delete mode 100644 vendor/github.com/slack-go/slack/block_section.go delete mode 100644 vendor/github.com/slack-go/slack/block_unknown.go delete mode 100644 vendor/github.com/slack-go/slack/bots.go delete mode 100644 vendor/github.com/slack-go/slack/channels.go delete mode 100644 vendor/github.com/slack-go/slack/chat.go delete mode 100644 vendor/github.com/slack-go/slack/comment.go delete mode 100644 vendor/github.com/slack-go/slack/conversation.go delete mode 100644 vendor/github.com/slack-go/slack/dialog.go delete mode 100644 vendor/github.com/slack-go/slack/dialog_select.go delete mode 100644 vendor/github.com/slack-go/slack/dialog_text.go delete mode 100644 vendor/github.com/slack-go/slack/dnd.go delete mode 100644 vendor/github.com/slack-go/slack/emoji.go delete mode 100644 vendor/github.com/slack-go/slack/errors.go delete mode 100644 vendor/github.com/slack-go/slack/files.go delete mode 100644 vendor/github.com/slack-go/slack/go.mod delete mode 100644 vendor/github.com/slack-go/slack/go.sum delete mode 100644 vendor/github.com/slack-go/slack/groups.go delete mode 100644 vendor/github.com/slack-go/slack/history.go delete mode 100644 vendor/github.com/slack-go/slack/im.go delete mode 100644 vendor/github.com/slack-go/slack/info.go delete mode 100644 vendor/github.com/slack-go/slack/interactions.go delete mode 100644 vendor/github.com/slack-go/slack/internal/backoff/backoff.go delete mode 100644 vendor/github.com/slack-go/slack/internal/errorsx/errorsx.go delete mode 100644 vendor/github.com/slack-go/slack/internal/misc/misc.go delete mode 100644 vendor/github.com/slack-go/slack/internal/timex/timex.go delete mode 100644 vendor/github.com/slack-go/slack/item.go delete mode 100644 vendor/github.com/slack-go/slack/logger.go delete mode 100644 vendor/github.com/slack-go/slack/logo.png delete mode 100644 vendor/github.com/slack-go/slack/messageID.go delete mode 100644 vendor/github.com/slack-go/slack/messages.go delete mode 100644 vendor/github.com/slack-go/slack/misc.go delete mode 100644 vendor/github.com/slack-go/slack/oauth.go delete mode 100644 vendor/github.com/slack-go/slack/pagination.go delete mode 100644 vendor/github.com/slack-go/slack/pins.go delete mode 100644 vendor/github.com/slack-go/slack/reactions.go delete mode 100644 vendor/github.com/slack-go/slack/reminders.go delete mode 100644 vendor/github.com/slack-go/slack/rtm.go delete mode 100644 vendor/github.com/slack-go/slack/search.go delete mode 100644 vendor/github.com/slack-go/slack/security.go delete mode 100644 vendor/github.com/slack-go/slack/slack.go delete mode 100644 vendor/github.com/slack-go/slack/slackutilsx/slackutilsx.go delete mode 100644 vendor/github.com/slack-go/slack/slash.go delete mode 100644 vendor/github.com/slack-go/slack/socket_mode.go delete mode 100644 vendor/github.com/slack-go/slack/stars.go delete mode 100644 vendor/github.com/slack-go/slack/team.go delete mode 100644 vendor/github.com/slack-go/slack/usergroups.go delete mode 100644 vendor/github.com/slack-go/slack/users.go delete mode 100644 vendor/github.com/slack-go/slack/views.go delete mode 100644 vendor/github.com/slack-go/slack/webhooks.go delete mode 100644 vendor/github.com/slack-go/slack/webhooks_go112.go delete mode 100644 vendor/github.com/slack-go/slack/webhooks_go113.go delete mode 100644 vendor/github.com/slack-go/slack/websocket.go delete mode 100644 vendor/github.com/slack-go/slack/websocket_channels.go delete mode 100644 vendor/github.com/slack-go/slack/websocket_desktop_notification.go delete mode 100644 vendor/github.com/slack-go/slack/websocket_dm.go delete mode 100644 vendor/github.com/slack-go/slack/websocket_dnd.go delete mode 100644 vendor/github.com/slack-go/slack/websocket_files.go delete mode 100644 vendor/github.com/slack-go/slack/websocket_groups.go delete mode 100644 vendor/github.com/slack-go/slack/websocket_internals.go delete mode 100644 vendor/github.com/slack-go/slack/websocket_managed_conn.go delete mode 100644 vendor/github.com/slack-go/slack/websocket_misc.go delete mode 100644 vendor/github.com/slack-go/slack/websocket_mobile_in_app_notification.go delete mode 100644 vendor/github.com/slack-go/slack/websocket_pins.go delete mode 100644 vendor/github.com/slack-go/slack/websocket_reactions.go delete mode 100644 vendor/github.com/slack-go/slack/websocket_stars.go delete mode 100644 vendor/github.com/slack-go/slack/websocket_subteam.go delete mode 100644 vendor/github.com/slack-go/slack/websocket_teams.go delete mode 100644 vendor/modules.txt diff --git a/.env-example b/.env-example new file mode 100644 index 0000000..b722dea --- /dev/null +++ b/.env-example @@ -0,0 +1,5 @@ +DEBUG=true +SLACK_BOT_TOKEN= +SLACK_APP_TOKEN= +S3_BRAIN_BUCKET= +S3_BRAIN_KEY=brain.json \ No newline at end of file diff --git a/.gitignore b/.gitignore index 04d47c7..8c5bcf6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,2 @@ -standup-bot -.vscode -.env.sh -dist +.env +dist \ No newline at end of file diff --git a/.goreleaser.yml b/.goreleaser.yml index c3871e6..cfd4b50 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -21,14 +21,13 @@ dockers: - "justmiles/standup-bot:v{{ .Major }}" skip_push: false - use_buildx: false + use: buildx extra_files: - go.mod - go.sum - LICENSE - main.go - lib - - vendor archives: - replacements: diff --git a/Dockerfile b/Dockerfile index 3cd2625..19c6a7b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,15 @@ -FROM golang:1.12-stretch as builder +FROM golang:1.16-alpine -COPY . /app WORKDIR /app -RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo . -RUN md5sum standup-bot -# Create image from scratch -FROM scratch +COPY lib lib +COPY go.mod go.mod +COPY go.sum go.sum +COPY main.go main.go +COPY LICENSE LICENSE -COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt -COPY --from=builder /app/standup-bot /standup-bot -COPY --from=builder /tmp /tmp +RUN go mod download -ENV AWS_DEFAULT_REGION us-east-1 +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o /standup-bot -ENTRYPOINT ["/standup-bot"] +CMD [ "/standup-bot" ] diff --git a/Makefile b/Makefile index 15d5894..4bc0c5b 100644 --- a/Makefile +++ b/Makefile @@ -1,28 +1,18 @@ -VERSION=$$(git describe --tags $$(git rev-list --tags --max-count=1)) - -build: - docker build . -t standup-bot - run: - docker run -it -e SSH_AUTH -e SLACK_TOKEN standup-bot + go run main.go -gen: - go get github.com/abice/go-enum - go-enum --file plugins/terraform/types.go - -dev: - # install justrun with - # go get github.com/jmhodges/justrun - - # Grab env configs - # eval "$(get-ssm-params -path /ops/standup-bot -output shell)" - justrun -c 'go run main.go' -delay 10000ms main.go lib/plugins/** lib/slack/* +build: + docker build -t standup-bot . -push: - # Push latest - docker tag standup-bot:latest 965579072529.dkr.ecr.us-east-1.amazonaws.com/standup-bot:latest - docker push 965579072529.dkr.ecr.us-east-1.amazonaws.com/standup-bot:latest +docker-run: + docker run \ + -it \ + --env-file .env \ + -e AWS_REGION \ + -e AWS_ACCESS_KEY_ID \ + -e AWS_SECRET_ACCESS_KEY \ + -e AWS_SESSION_TOKEN \ + -t standup-bot - # Push version - docker tag standup-bot:latest 965579072529.dkr.ecr.us-east-1.amazonaws.com/standup-bot:$(VERSION) - docker push 965579072529.dkr.ecr.us-east-1.amazonaws.com/standup-bot:$(VERSION) \ No newline at end of file +release: + goreleaser --rm-dist \ No newline at end of file diff --git a/README.MD b/README.MD index a414959..c514679 100644 --- a/README.MD +++ b/README.MD @@ -1,26 +1,52 @@ -# standup-bot +**Description** -## Getting started +This is a simple standup bot for slack. -- [install go](https://golang.org/doc/install) -- export any required environment variables -- run with `make dev` +**Setup** -## Environment Configs +1. Create standup bot with `app-manifest.yaml` file provided in the root of this directory +1. Get bot and bot user tokens and set environment variables defined in `lib/config/main.go` +1. Set up s3 bucket and provide AWS Creds if you would like standup settings to persists between restarts -If you set `SSM_PATH` config values are pull from SSM. Values in SSM are the same as below. +**Docker** -- `SSM_PATH` - Pull configs from SSM using this SSM path -- `SLACK_TOKEN` - API token used to auth against Slack as a bot user -- `OAUTH_SLACK_TOKEN` - API token used to auth against Slack using oauth. Required for non-bot API scope -- `SLACK_GROUP` - Name of Slack group containing participating users -- `SLACK_CHANNEL` - Channel ID to post standup notes in -- `CRON_SOLICIT_STANDUP` - cron expression in UTC to solicit for standup notes. example, "0 0 13 * * mon-fri", // 8AM central -- `CRON_SHARE_STANDUP` - cron expression in UTC to share standup notes to the main channel. example, "0 0 13 * * mon-fri", // 8AM central -- `STANDUP_MESSAGE` - optionally customize the message sent to users when soliciting for standup notes -- `SHAME_PARTICIPANTS` - if set to "true" post a message when user doesn't particiapte in the standup +```bash +# quickstart +docker run \ + -e SLACK_BOT_TOKEN=xoxb-blahblah \ + -e SLACK_APP_TOKEN=xapp-blahblah \ + -t justmiles/standup-bot -## Roadmap +# with persistant brain +docker run \ + -e SLACK_BOT_TOKEN=xoxb-blahblah \ + -e SLACK_APP_TOKEN=xapp-blahblah \ + -e S3_BRAIN_BUCKET=some_s3_bucket \ + -e S3_BRAIN_KEY=brain.json \ + -e AWS_REGION \ + -e AWS_ACCESS_KEY_ID \ + -e AWS_SECRET_ACCESS_KEY \ + -e AWS_SESSION_TOKEN \ + -t justmiles/standup-bot +``` -- [x] instead of sourcing partificpans by Slack Group, just message everyone in the `SLACK_CHANNEL` -- [x] add property `STANDUP_MESSAGE` to customize the message sent to users when solociting standup notes +**Configure your bot** + +In slack just type `/standup` + +**Test your bot** + +In a channel type the below commands - this will create a mock standup with you as the sole participant. +`/standup solicit` +`/standup share` + +**Users in multiple standups Scenarios** + +If User recieves a standup solicitation from multiple channel configurations at the same time, then: +- If User replies as normal, then both standups will receive the same notes. +- If user replies in thread, then only the thread response will be used for the standup notes. + +**Roadmap** + +- Provide terraform module for quick setup in fargate +- Update readme with a "how to" diff --git a/app-manifest.yaml b/app-manifest.yaml new file mode 100644 index 0000000..4f91fb2 --- /dev/null +++ b/app-manifest.yaml @@ -0,0 +1,53 @@ +_metadata: + major_version: 1 + minor_version: 1 +display_information: + name: standup-bot + description: An attempt at async standups, + background_color: "#2e2e2e" +features: + app_home: + home_tab_enabled: false + messages_tab_enabled: true + messages_tab_read_only_enabled: false + bot_user: + display_name: Standup Bot + always_online: true + slash_commands: + - command: /standup + description: Set standup settings for a given channel. + should_escape: false +oauth_config: + scopes: + user: + - links:write + bot: + - app_mentions:read + - channels:history + - im:history + - users:read + - incoming-webhook + - channels:read + - im:read + - team:read + - usergroups:read + - users.profile:read + - chat:write + - chat:write.public + - groups:write + - groups:read + - im:write + - groups:history + - commands +settings: + event_subscriptions: + bot_events: + - app_mention + - message.im + - message.channels + - message.groups + interactivity: + is_enabled: true + org_deploy_enabled: false + socket_mode_enabled: true + token_rotation_enabled: false diff --git a/go.mod b/go.mod index 0d4ea5e..e7d81b6 100644 --- a/go.mod +++ b/go.mod @@ -1,20 +1,13 @@ module github.com/justmiles/standup-bot -replace github.com/justmiles/standup-bot/lib/plugins => ./lib/plugins +go 1.16 -replace github.com/justmiles/standup-bot/lib/slack => ./lib/slack - -replace github.com/justmiles/standup-bot/lib/configs => ./lib/configs - -replace github.com/justmiles/standup-bot/lib/standup => ./lib/standup - -go 1.15 +replace github.com/justmiles/standup-bot/lib/standup => ./standup require ( - github.com/aws/aws-sdk-go v1.37.21 - github.com/dustin/go-humanize v1.0.0 - github.com/go-chat-bot/bot v0.0.0-20201004141219-763f9eeac7d5 - github.com/go-chat-bot/plugins v0.0.0-20201024114236-00ff43fcf77f + github.com/aws/aws-sdk-go v1.41.4 + github.com/chrispruitt/go-slackbot v0.3.2 github.com/lucasb-eyer/go-colorful v1.2.0 - github.com/slack-go/slack v0.8.1 + github.com/sirupsen/logrus v1.8.1 + github.com/slack-go/slack v0.9.4 ) diff --git a/go.sum b/go.sum index 664aecd..be3eda2 100644 --- a/go.sum +++ b/go.sum @@ -1,167 +1,54 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/Jeffail/gabs v1.4.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= -github.com/andygrunwald/go-jira v1.5.0/go.mod h1:yNYQrX3nGSrVdcVsM2mWz2pm7tTeDtYfRyVEkc3VUiY= -github.com/aws/aws-sdk-go v1.37.21 h1:h3DUhpeOT0TQIwaSzXsBl+jwppfNR/Pc2T5k3SHVKPA= -github.com/aws/aws-sdk-go v1.37.21/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= -github.com/beevik/guid v0.0.0-20170504223318-d0ea8faecee0/go.mod h1:XzXWuOd1wJ63MtICHh5+PnvCuxsB/d58T8TswEhI/9I= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudfoundry/gosigar v1.1.0/go.mod h1:3qLfc2GlfmwOx2+ZDaRGH3Y9fwQ0sQeaAleo2GV5pH0= +github.com/aws/aws-sdk-go v1.41.4 h1:5xRzZp8LfBFfowMPxmoNsxLBZOY/NTH4EeI7q2F5eWE= +github.com/aws/aws-sdk-go v1.41.4/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= +github.com/chrispruitt/go-slackbot v0.3.2 h1:gEgpzfMDwgs8RddS91RcVX/D+hFjPuhHGaJxS1F2org= +github.com/chrispruitt/go-slackbot v0.3.2/go.mod h1:orWEJxHVzkd7j5bC/GIh8SPXLlYFH58O7OTP5rrFnw8= +github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be h1:J5BL2kskAlV9ckgEsNQXscjIaLiOYiZ75d4e94E6dcQ= +github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be/go.mod h1:mk5IQ+Y0ZeO87b858TlA645sVcEcbiX6YqP98kt+7+w= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/detached/gorocket v0.0.0-20170629192631-d44bbd3f26d2/go.mod h1:w5eKhlAkZwY6VBm2Sa1Evdte2+Fqhc+dnSk7/KTN5FM= -github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/go-chat-bot/bot v0.0.0-20201004141219-763f9eeac7d5 h1:VZFX5GZaOjuprEvsNmYMCTMobA8tYOxMJ0jdqneRNLc= -github.com/go-chat-bot/bot v0.0.0-20201004141219-763f9eeac7d5/go.mod h1:FE2F44LS6MDYyTPljYoAzzJ3yzsy4xg3Qfvc08UrJBE= -github.com/go-chat-bot/plugins v0.0.0-20181006134258-491b3f9878d6/go.mod h1:Ga63x4EC4NFYr/KGzhn8D8fLj89sfJA/dpBsuowiHOQ= -github.com/go-chat-bot/plugins v0.0.0-20201024114236-00ff43fcf77f h1:To58XdIp+Sw9QoyhJE3oh2KMZKoj4Ta8W/ltrA+cL68= -github.com/go-chat-bot/plugins v0.0.0-20201024114236-00ff43fcf77f/go.mod h1:Ga63x4EC4NFYr/KGzhn8D8fLj89sfJA/dpBsuowiHOQ= -github.com/go-chat-bot/plugins-br v0.0.0-20200917130500-b69d8e0f9584/go.mod h1:KU0Ieo/D/HBwPY6n3tLWanM5GemW6iWXdbgm96qRW2Q= -github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible/go.mod h1:qf9acutJ8cwBUhm1bqgz6Bei9/C/c93FPDljKWwsOgM= github.com/go-test/deep v1.0.4 h1:u2CU3YKy9I2pmu9pX0eq50wCgjfGIt539SqR7FbHiho= github.com/go-test/deep v1.0.4/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gopackage/ddp v0.0.0-20170117053602-652027933df4/go.mod h1:lEO7XoHJ/xNRBCxrn4h/CEB67h0kW1B0t4ooP2yrjUA= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/hako/durafmt v0.0.0-20210608085754-5c1018a4e16b h1:wDUNC2eKiL35DbLvsDhiblTUXHxcOPwQSCzi7xpQUN4= +github.com/hako/durafmt v0.0.0-20210608085754-5c1018a4e16b/go.mod h1:VzxiSdG6j1pi7rwGm/xYI5RbtpBgM8sARDXlvEvxlu0= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/martinusso/go-docs v0.0.0-20161215163720-81905d575a58/go.mod h1:QymHbiLXXhrSGV5xTWYfEBt9mau3hHwVOT9Y7tpolJU= -github.com/mattn/go-shellwords v1.0.6 h1:9Jok5pILi5S1MnDirGVTufYGtksUs/V2BWUP3ZkeUUI= -github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= -github.com/mozillazg/go-unidecode v0.1.1 h1:uiRy1s4TUqLbcROUrnCN/V85Jlli2AmDF6EeAXOeMHE= -github.com/mozillazg/go-unidecode v0.1.1/go.mod h1:fYMdhyjni9ZeEmS6OE/GJHDLsF8TQvIVDwYR/drR26Q= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/mattes/go-asciibot v0.0.0-20190603170252-3fa6d766c482 h1:Is74U2kXPdMV6wu/Z1QYiFB8SrNvhFx9EK7ZS/4i5kM= +github.com/mattes/go-asciibot v0.0.0-20190603170252-3fa6d766c482/go.mod h1:akTvhl4803od3DOIWgnTKgOJx3Pevvt7BU9pRrKdRVA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pyinx/gorocket v0.0.0-20170810024322-78ae1353729f/go.mod h1:nh/AiOs8vRCaqnSOHVzyta23ZLm5ck/st4brrxtQJEo= -github.com/robfig/cron/v3 v3.0.0 h1:kQ6Cb7aHOHTSzNVNEhmp8EcWKLb4CbiMW9h9VyIhO4E= -github.com/robfig/cron/v3 v3.0.0/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= -github.com/slack-go/slack v0.6.4/go.mod h1:sGRjv3w+ERAUMMMbldHObQPBcNSyVB7KLKYfnwUFBfw= -github.com/slack-go/slack v0.8.1 h1:NqGXuzni8Is3EJWmsuMuBiCCPbWOlBgTKPvdlwS3Huk= -github.com/slack-go/slack v0.8.1/go.mod h1:FGqNzJBmxIsZURAxh2a8D21AnOVvvXZvGligs4npPUM= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= +github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= +github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/slack-go/slack v0.9.4 h1:C+FC3zLxLxUTQjDy2RZeMHYon005zsCROiZNWVo+opQ= +github.com/slack-go/slack v0.9.4/go.mod h1:wWL//kk0ho+FcQXcBTmEafUI5dz4qz5f4mMk8oIkioQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/technoweenie/multipartstreamer v1.0.1/go.mod h1:jNVxdtShOxzAsukZwTSw6MDx5eUJoiEBsSvzDU9uzog= -github.com/thoj/go-ircevent v0.0.0-20180816043103-14f3614f28c3/go.mod h1:QYOctLs5qEsaIrA/PKEc4YqAv2SozbxNEX0vMPs84p4= -github.com/trivago/tgo v1.0.5/go.mod h1:w4dpD+3tzNIIiIfkWWa85w5/B77tlvdZckQ+6PkFnhc= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190912141932-bc967efca4b8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q= +golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/telegram-bot-api.v3 v3.0.0/go.mod h1:WxP4rAHcQNrXhQLGIK9aVLkpygV4Qq8YS3yjjJ/0VLA= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/lib/config/main.go b/lib/config/main.go new file mode 100644 index 0000000..cbf28d5 --- /dev/null +++ b/lib/config/main.go @@ -0,0 +1,59 @@ +package config + +import ( + "fmt" + "os" + "strconv" +) + +var ( + SlackBotToken string + SlackAppToken string + Debug bool + S3BrainBucket string + S3BrainKey string +) + +func init() { + SlackBotToken = getenv("SLACK_BOT_TOKEN", "", true).(string) + SlackAppToken = getenv("SLACK_APP_TOKEN", "", true).(string) + S3BrainBucket = getenv("S3_BRAIN_BUCKET", "", false).(string) + S3BrainKey = getenv("S3_BRAIN_KEY", "", false).(string) + Debug = getenv("DEBUG", false, false).(bool) +} + +func getenv(key string, fallback interface{}, required bool) interface{} { + value := os.Getenv(key) + if len(value) == 0 { + if required { + panic(fmt.Sprintf("Missing required environment variable: '%s'", key)) + } + return fallback + } + + switch fallback.(type) { + case string: + v := os.Getenv(key) + if len(value) == 0 { + return fallback + } + return v + case int: + s := os.Getenv(key) + v, err := strconv.Atoi(s) + if err != nil { + return fallback + } + return v + + case bool: + s := os.Getenv(key) + v, err := strconv.ParseBool(s) + if err != nil { + return fallback + } + return v + default: + return value + } +} diff --git a/lib/configs/configs.go b/lib/configs/configs.go deleted file mode 100644 index 9bc7e5e..0000000 --- a/lib/configs/configs.go +++ /dev/null @@ -1,61 +0,0 @@ -package configs - -import ( - "fmt" - "log" - "os" - "path/filepath" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/session" - "github.com/aws/aws-sdk-go/service/ssm" -) - -var sess = session.Must(session.NewSession()) - -// Get returns the value of a config key -func Get(configKey, defaultConfigValue string, required bool) (configValue string) { - - ssmPath := filepath.Join("/", EnvOr("SSM_PATH", ""), configKey) - - if os.Getenv("SSM_PATH") != "" { - // Check for path in SSM - svc := ssm.New(sess, &aws.Config{ - Region: aws.String(EnvOr("AWS_DEFAULT_REGION", "us-east-1")), - }) - o, err := svc.GetParameter(&ssm.GetParameterInput{ - Name: &ssmPath, - WithDecryption: aws.Bool(true), - }) - - if err != nil { - fmt.Printf("Config %s is not in SSM\n", ssmPath) - } - - if o.Parameter != nil { - configValue = *o.Parameter.Value - } - } - - // Override with environment variable if it is set - configValue = EnvOr(configKey, configValue) - - if configValue == "" { - configValue = defaultConfigValue - } - - if configValue == "" && required { - log.Fatalf("Configuration value \"%s\" required but not set", configKey) - } - - return configValue -} - -// EnvOr returns the OS environment variable's value or a default value -func EnvOr(s, e string) string { - envVar := os.Getenv(s) - if envVar != "" { - return envVar - } - return e -} diff --git a/lib/plugins/log/log.go b/lib/plugins/log/log.go deleted file mode 100644 index 7522a56..0000000 --- a/lib/plugins/log/log.go +++ /dev/null @@ -1,16 +0,0 @@ -package deploy - -import ( - "fmt" - - "github.com/go-chat-bot/bot" -) - -func log(command *bot.PassiveCmd) (msg string, err error) { - fmt.Printf("[LOG] #%s (%s)\t%s (%s)\t%s\n", command.ChannelData.HumanName, command.Channel, command.User.Nick, command.User.ID, command.Raw) - return -} - -func init() { - bot.RegisterPassiveCommand("log", log) -} diff --git a/lib/plugins/standup/standup.go b/lib/plugins/standup/standup.go deleted file mode 100644 index 567ffe2..0000000 --- a/lib/plugins/standup/standup.go +++ /dev/null @@ -1,264 +0,0 @@ -package standup - -import ( - "fmt" - "log" - "math/rand" - "strings" - "time" - - c "github.com/justmiles/standup-bot/lib/configs" - - "github.com/go-chat-bot/bot" - "github.com/lucasb-eyer/go-colorful" - "github.com/slack-go/slack" -) - -var api = slack.New(c.Get("SLACK_TOKEN", "", true)) // Bot User OAuth Access Token -var oauthAPI = slack.New(c.Get("OAUTH_SLACK_TOKEN", "", true)) // OAuth Access Token -var standupChannel = c.Get("SLACK_CHANNEL", "", true) -var cronSolicitStandup = c.Get("CRON_SOLICIT_STANDUP", "", true) // example, "0 0 13 * * mon-fri", // 8AM central -var cronShareStandup = c.Get("CRON_SHARE_STANDUP", "", true) // example, "0 0 15 * * mon-fri", // 10AM central -var shameParticipants = c.Get("SHAME_PARTICIPANTS", "true", false) // example, "0 0 15 * * mon-fri", // 10AM central -var solicitStandupMessage = c.Get("STANDUP_MESSAGE", `Hello! Could you share your standup notes with me? I'll post them in the #standup channel at 10:00AM. Just post them here anytime before then. Consider the following questions: -:point_left: What happened yesterday? -:bell: Is there anything others should be aware of? -:fire: What you're hoping to accomplish today? -:construction: Any blockers? -`, true) - -var header = "Asynchronous Standups! Less time in meetings means more time getting things done. Keep the channel clean by using threads! If you would like to be removed from this list, just leave this channel" - -func init() { - userIDs, err := getUserIDsInSlackChannel(standupChannel) - if err != nil { - log.Fatal(err) - } - - // Reach out to each user to gather feedback info - bot.RegisterPeriodicCommand("solicit_standup", bot.PeriodicConfig{ - CronSpec: cronSolicitStandup, - Channels: userIDs, - CmdFunc: solicitStandupNotes, - }) - - // Share the team member standup notes in the main slack channel - bot.RegisterPeriodicCommand("start_standup", bot.PeriodicConfig{ - CronSpec: cronShareStandup, - Channels: []string{standupChannel}, - CmdFunc: shareStandupNotes, - }) - - // bot.RegisterPassiveCommand("standup", log) - bot.RegisterCommand( - "standup", - "Write the standup results into this channel", - "", - shareStandupNotesRequest, - ) - // bot.RegisterPassiveCommand("standup", log) - bot.RegisterCommand( - "solicit", - "Solicit participants for their standup notes", - "", - solicitStandupNotesRequest, - ) - -} - -func solicitStandupNotes(channel string) (string, error) { - return solicitStandupMessage, nil -} - -func solicitStandupNotesRequest(command *bot.Cmd) (msg string, err error) { - return solicitStandupNotes(command.Channel) -} - -func shareStandupNotesRequest(command *bot.Cmd) (msg string, err error) { - return shareStandupNotes(command.Channel) -} - -func shareStandupNotes(standupChannel string) (string, error) { - - _, _, err := api.PostMessage( - standupChannel, - slack.MsgOptionText("", false), - slack.MsgOptionAttachments(slack.Attachment{Pretext: header})) - - if err != nil { - fmt.Printf("Error posting standup header: %s\n", err) - } - - conversations, err := getConversations() - if err != nil { - fmt.Println("Error getting conversations: ", err) - } - - users, err := getUsersInSlackChannel(standupChannel) - if err != nil { - fmt.Println("Error getting users: ", err) - } - - // seed our random colors - rand.Seed(time.Now().UTC().UnixNano()) - - for userID, user := range users { - if channel, ok := conversations[userID]; ok { - fmt.Println(channel.ID, user.Name) - notes, err := getStandupNote(channel.ID) - if err != nil { - fmt.Println(err) - continue - } - - // Shame people in the channel that aren't participating - if len(notes) == 0 { - if shameParticipants == "true" { - notes = append(notes, fmt.Sprintf(":poop: %s has no standup notes", user.Name)) - } else { - continue - } - } - - attachments := []slack.Attachment{ - slack.Attachment{ - Title: fmt.Sprintf("%s standup notes:", user.RealName), - Text: fmt.Sprintf(strings.Join(reverse(notes), "\n")), - Color: colorful.FastHappyColor().Hex(), - }} - - _, _, err = api.PostMessage( - standupChannel, - slack.MsgOptionText("", false), - slack.MsgOptionEnableLinkUnfurl(), - slack.MsgOptionAttachments(attachments...)) - - if err != nil { - fmt.Printf("Error posting standup report: %s\n", err) - } - - } else { - fmt.Printf("channel %s is orphaned", channel.ID) - } - } - return "", nil -} - -func getConversations() (map[string]slack.Channel, error) { - conversations := make(map[string]slack.Channel) - r, _, err := api.GetConversations(&slack.GetConversationsParameters{ - ExcludeArchived: "true", - Types: []string{"im"}, - }) - if err != nil { - return nil, err - } - for _, channel := range r { - conversations[channel.User] = channel - } - return conversations, nil -} - -func getUserIDsInSlackChannel(channelID string) ([]string, error) { - members, _, err := api.GetUsersInConversation(&slack.GetUsersInConversationParameters{ChannelID: channelID}) - - if err != nil { - fmt.Println(err) - return nil, err - } - - if len(members) == 0 { - return nil, fmt.Errorf("there are no users in channel %s", channelID) - } - - return members, err -} - -func getUsersInSlackChannel(channelID string) (map[string]*slack.User, error) { - userIDs, err := getUserIDsInSlackChannel(standupChannel) - if err != nil { - return nil, err - } - - return getUsersByID(userIDs) -} - -func getUserIDsByGroupName(groupName string) ([]string, error) { - groupID, err := getGroupIDByGroupName(groupName) - if err != nil { - return nil, err - } - - userIDs, err := oauthAPI.GetUserGroupMembers(groupID) - if err != nil { - return userIDs, fmt.Errorf("error getting users: %s", err) - } - return userIDs, err -} - -func getUsersByID(userIDs []string) (map[string]*slack.User, error) { - var err error - users := make(map[string]*slack.User) - - for _, userID := range userIDs { - users[userID], err = api.GetUserInfo(userID) - if users[userID].IsBot { - delete(users, userID) - } - } - - return users, err -} - -func getUsersByGroupName(groupName string) (map[string]*slack.User, error) { - userIDs, err := getUserIDsByGroupName(groupName) - if err != nil { - return nil, err - } - - return getUsersByID(userIDs) -} - -func getGroupIDByGroupName(groupName string) (groupID string, err error) { - ug, err := oauthAPI.GetUserGroups() - if err != nil { - return "", err - } - for _, group := range ug { - if groupName == group.Name { - groupID = group.ID - return groupID, nil - } - } - return "", fmt.Errorf("group %s does not exist", groupName) -} - -func getStandupNote(channelID string) ([]string, error) { - conversationHistory, err := api.GetConversationHistory(&slack.GetConversationHistoryParameters{ - ChannelID: channelID, - // Oldest: fmt.Sprintf("%d.000001", (now.Add(time.Hour * time.Duration(-1))).Unix()), - }) - if err != nil { - return nil, fmt.Errorf("error getting standup info from channel %s: %s", channelID, err) - } - - var txt []string - - for _, m := range conversationHistory.Messages { - - if m.Text == solicitStandupMessage { - break - } - txt = append(txt, m.Text) - } - - return txt, nil -} - -func reverse(ss []string) []string { - last := len(ss) - 1 - for i := 0; i < len(ss)/2; i++ { - ss[i], ss[last-i] = ss[last-i], ss[i] - } - return ss -} diff --git a/lib/plugins/status/status.go b/lib/plugins/status/status.go deleted file mode 100644 index d99af29..0000000 --- a/lib/plugins/status/status.go +++ /dev/null @@ -1,30 +0,0 @@ -package status - -import ( - "fmt" - "os" - "time" - - "github.com/dustin/go-humanize" - "github.com/go-chat-bot/bot" -) - -var startTime time.Time - -func status(command *bot.Cmd) (msg string, err error) { - hostname, err := os.Hostname() - if err != nil { - hostname = "unknown" - } - msg = fmt.Sprintf("booted up %s on host `%s`\n", humanize.Time(startTime), hostname) - return -} - -func init() { - startTime = time.Now() - bot.RegisterCommand( - "status", - "returns uptime information", - "", - status) -} diff --git a/lib/plugins/suicide/main.go b/lib/plugins/suicide/main.go deleted file mode 100644 index 3a0e2df..0000000 --- a/lib/plugins/suicide/main.go +++ /dev/null @@ -1,26 +0,0 @@ -package status - -import ( - "os" - "time" - - "github.com/go-chat-bot/bot" -) - -func suicide(command *bot.Cmd) (msg string, err error) { - - go func() { - time.Sleep(3 * time.Second) - os.Exit(33) - }() - - return "shutting down", nil -} - -func init() { - bot.RegisterCommand( - "suicide", - "kills the bot", - "", - suicide) -} diff --git a/lib/slack/slack.go b/lib/slack/slack.go deleted file mode 100644 index 0679cd7..0000000 --- a/lib/slack/slack.go +++ /dev/null @@ -1,175 +0,0 @@ -// Package slack implements Slack handlers for github.com/go-chat-bot/bot -// This is a fork of github.com/go-chat-bot/bot/slack -package slack - -import ( - "fmt" - - "github.com/go-chat-bot/bot" - "github.com/slack-go/slack" -) - -// MessageFilter allows implementing a filter function to transform the messages -// before sending to the channel, it is run before the bot sends the message to slack -type MessageFilter func(string, *bot.User) []slack.MsgOption - -var ( - rtm *slack.RTM - api *slack.Client - teaminfo *slack.TeamInfo - - channelList = map[string]slack.Channel{} - params = []slack.MsgOption{slack.MsgOptionAsUser(true)} - messageFilter MessageFilter = defaultMessageFilter - botUserID = "" -) - -func defaultMessageFilter(message string, _ *bot.User) []slack.MsgOption { - return append(params, slack.MsgOptionText(message, false)) -} - -func responseHandler(target string, message string, sender *bot.User) { - msgOptions := messageFilter(message, sender) - api.PostMessage(target, msgOptions...) -} - -// FindUserBySlackID converts a slack.User into a bot.User struct -func FindUserBySlackID(userID string) *bot.User { - slackUser, err := api.GetUserInfo(userID) - if err != nil { - fmt.Printf("Error retrieving slack user: %s\n", err) - return &bot.User{ - ID: userID, - IsBot: false} - } - return &bot.User{ - ID: userID, - Nick: slackUser.Name, - RealName: slackUser.Profile.RealName, - IsBot: slackUser.IsBot} -} - -// Extracts user information from slack API -func extractUser(event *slack.MessageEvent) *bot.User { - var isBot bool - var userID string - if len(event.User) == 0 { - userID = event.BotID - isBot = true - } else { - userID = event.User - isBot = false - } - user := FindUserBySlackID(userID) - if len(user.Nick) == 0 { - user.IsBot = isBot - } - - return user -} - -func extractText(event *slack.MessageEvent) *bot.Message { - msg := &bot.Message{} - if len(event.Text) != 0 { - msg.Text = event.Text - if event.SubType == "me_message" { - msg.IsAction = true - } - } else { - attachments := event.Attachments - if len(attachments) > 0 { - msg.Text = attachments[0].Fallback - } - } - return msg -} - -func readBotInfo(api *slack.Client) { - info, err := api.AuthTest() - if err != nil { - fmt.Printf("Error calling AuthTest: %s\n", err) - return - } - botUserID = info.UserID -} - -func readChannelData(api *slack.Client) { - channels, err := api.GetChannels(true) - if err != nil { - fmt.Printf("Error getting Channels: %s\n", err) - return - } - for _, channel := range channels { - channelList[channel.ID] = channel - } -} - -func ownMessage(UserID string) bool { - return botUserID == UserID -} - -// RunWithFilter executes the bot and sets up a message filter which will -// receive all the messages before they are sent to slack -func RunWithFilter(token string, customMessageFilter MessageFilter) { - if customMessageFilter == nil { - panic("A valid message filter must be provided.") - } - messageFilter = customMessageFilter - Run(token) -} - -// Run connects to slack RTM API using the provided token -func Run(token string) { - api = slack.New(token) - rtm = api.NewRTM() - - teaminfo, _ := api.GetTeamInfo() - - b := bot.New( - &bot.Handlers{Response: responseHandler}, - &bot.Config{Protocol: "slack", Server: teaminfo.Domain}) - - b.Disable([]string{"url"}) - - go rtm.ManageConnection() - -Loop: - for { - select { - case msg := <-rtm.IncomingEvents: - switch ev := msg.Data.(type) { - case *slack.HelloEvent: - readBotInfo(api) - readChannelData(api) - case *slack.ChannelCreatedEvent: - readChannelData(api) - case *slack.ChannelRenameEvent: - readChannelData(api) - - case *slack.MessageEvent: - if !ev.Hidden && !ownMessage(ev.User) { - C := channelList[ev.Channel] - var channel = ev.Channel - go b.MessageReceived( - &bot.ChannelData{ - Protocol: "slack", - Server: teaminfo.Domain, - Channel: channel, - HumanName: C.Name, - IsPrivate: !C.IsChannel, - }, - extractText(ev), - extractUser(ev), - ) - } - - case *slack.RTMError: - fmt.Printf("Slack RTMError: %s\n", ev.Error()) - - case *slack.InvalidAuthEvent: - fmt.Printf("Unable to connect to Slack: Invalid credentials") - break Loop - } - } - } -} diff --git a/lib/standup/brain.go b/lib/standup/brain.go new file mode 100644 index 0000000..896ab91 --- /dev/null +++ b/lib/standup/brain.go @@ -0,0 +1,118 @@ +package standup + +import ( + "bytes" + "encoding/json" + "fmt" + "io/ioutil" + "strings" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/s3" + "github.com/justmiles/standup-bot/lib/config" + "github.com/justmiles/standup-bot/lib/types" + + logger "github.com/sirupsen/logrus" +) + +var ( + brain = Brain{Standups: make(map[string]types.StandupSettings)} + sess = session.Must(session.NewSessionWithOptions(session.Options{ + SharedConfigState: session.SharedConfigEnable, + })) + s3Client = s3.New(sess) + saveBrainEnabled = false +) + +func init() { + saveBrainEnabled = (len(config.S3BrainBucket) > 0 && len(config.S3BrainKey) > 0) + + if saveBrainEnabled { + err := brain.readFromS3(config.S3BrainBucket, config.S3BrainKey) + if err != nil { + logger.Infof("Unable to read brain from s3. Starting bot with fresh brain: %v", err) + } else { + logger.Infof("Brain will persist at s3://%s/%s", config.S3BrainBucket, config.S3BrainKey) + } + + for _, standup := range brain.Standups { + err := RegisterStandup(standup) + if err != nil { + logger.Errorf("Error registering standup for channel '%s' : %v", standup.ChannelID, err) + } + } + } else { + logger.Warnf("Brain not configured. Settings will not persist between restarts.") + } +} + +type Brain struct { + Standups map[string]types.StandupSettings `json:"standups"` +} + +func getStandupSettings(channelID string, channelName string) types.StandupSettings { + + channelInfo, _ := webApi.GetConversationInfo(channelID, false) + + settings := types.StandupSettings{} + + if channelInfo != nil { + settings = *types.NewStandupSettings(channelID, channelName) + if value, ok := brain.Standups[channelID]; ok { + settings = value + } + } + + return settings +} + +func (b *Brain) writeToS3() error { + + // Convert struct to json formated byte array + p, err := json.Marshal(b) + if err != nil { + return err + } + + // Push to s3 + putObjectInput := &s3.PutObjectInput{ + Body: aws.ReadSeekCloser(bytes.NewReader(p)), + Bucket: aws.String(config.S3BrainBucket), + Key: aws.String(config.S3BrainKey), + } + + _, err = s3Client.PutObject(putObjectInput) + + if err != nil { + return err + } + + logger.Infof("Brain saved to s3://%s/%s", config.S3BrainBucket, config.S3BrainKey) + + return nil +} + +func (b *Brain) readFromS3(bucket string, key string) error { + result, err := s3Client.GetObject(&s3.GetObjectInput{ + Bucket: aws.String(bucket), + Key: aws.String(key), + }) + if err != nil { + return err + } + defer result.Body.Close() + body1, err := ioutil.ReadAll(result.Body) + if err != nil { + return err + } + bodyString1 := fmt.Sprintf("%s", body1) + + decoder := json.NewDecoder(strings.NewReader(bodyString1)) + err = decoder.Decode(&b) + if err != nil { + return err + } + + return nil +} diff --git a/lib/standup/handlers.go b/lib/standup/handlers.go new file mode 100644 index 0000000..0ed8b45 --- /dev/null +++ b/lib/standup/handlers.go @@ -0,0 +1,135 @@ +package standup + +import ( + "fmt" + "log" + "strconv" + "strings" + + "github.com/justmiles/standup-bot/lib/types" + "github.com/justmiles/standup-bot/lib/views" + logger "github.com/sirupsen/logrus" + "github.com/slack-go/slack" +) + +func handleSlashCommand(cmd slack.SlashCommand) { + switch cmd.Text { + case "": + openSettingsModal(cmd) + case "solicit": + // mock standup settings if none exist with user issuing the command else use the channels settings + settings := getStandupSettings(cmd.ChannelID, cmd.ChannelName) + if len(settings.Participants) == 0 { + settings.Participants = []string{cmd.UserID} + settings.Shame = true + } + getSolicitStandupFunc(settings)() + case "share": + // mock standup settings if none exist with user issuing the command else use the channels settings + settings := getStandupSettings(cmd.ChannelID, cmd.ChannelName) + if len(settings.Participants) == 0 { + settings.Participants = []string{cmd.UserID} + settings.Shame = true + } + getShareStandupFunc(settings)() + default: + socketMode.Debugf("Ignored: %v", cmd) + } +} + +func handleSettingsModalActions(payload slack.InteractionCallback) { + + for _, action := range payload.ActionCallback.BlockActions { + switch action.ActionID { + case views.ModalStandupChannelActionId: + handleSettingsModalSelectChannelAction(payload) + default: + socketMode.Debugf("Ignored: settings modal action with ActionID: %v", payload) + } + } +} + +func openSettingsModal(cmd slack.SlashCommand) { + + settings := getStandupSettings(cmd.ChannelID, cmd.ChannelName) + + resp, err := webApi.OpenView(cmd.TriggerID, views.GetSettingsModal(settings)) + if err != nil { + log.Printf("Failed to opemn a modal: %v", err) + } + socketMode.Debugf("views.open response: %v", resp) +} + +func submitSettingsModal(payload slack.InteractionCallback) { + socketMode.Debugf("submit settings modal payload.View.State.Values: %v", payload.View.State.Values) + + channelID := payload.View.State.Values[views.ModalStandupChannelBlockId][views.ModalStandupChannelActionId].SelectedChannel + participants := payload.View.State.Values[views.ModalParticipantsBlockId][views.ModalParticipantsActionId].SelectedUsers + solicitTime := strings.Split(payload.View.State.Values[views.ModalSolicitTimeBlockId][views.ModalSolicitTimeActionId].SelectedTime, ":") + shareTime := strings.Split(payload.View.State.Values[views.ModalShareTimeBlockId][views.ModalShareTimeActionId].SelectedTime, ":") + meetingDays := payload.View.State.Values[views.ModalMeetingDaysBlockId][views.ModalMeetingDaysActionId].SelectedOptions + shame, _ := strconv.ParseBool(payload.View.State.Values[views.ModalShameBlockId][views.ModalShameActionId].SelectedOption.Value) + solicitMsg := payload.View.State.Values[views.ModalSolicitMessgaeBlockId][views.ModalSolicitMessageActionId].Value + + settings := types.StandupSettings{ + ChannelID: channelID, + SolicitCronSpec: fmt.Sprintf("%s %s * * %s", solicitTime[1], solicitTime[0], meetingDaysToCron(meetingDays)), + ShareCronSpec: fmt.Sprintf("%s %s * * %s", shareTime[1], shareTime[0], meetingDaysToCron(meetingDays)), + SolicitMsg: solicitMsg, + Shame: shame, + Participants: participants, + } + + socketMode.Debugf("standup submission settings: %v", settings) + + err := RegisterStandup(settings) + if err != nil { + logger.Errorf("Error Registering Standup: %v", err) + return + } + + // Save brain after successful submission + err = brain.writeToS3() + if err != nil { + logger.Errorf("Error to writing to s3: %v", err) + } +} + +func handleSettingsModalSelectChannelAction(payload slack.InteractionCallback) { + socketMode.Debugf("select channel: %v", payload) + + channelID := payload.View.State.Values[views.ModalStandupChannelBlockId][views.ModalStandupChannelActionId].SelectedChannel + channelInfo, _ := webApi.GetConversationInfo(channelID, false) + + socketMode.Debugf("select channel action ID: %v", channelID) + socketMode.Debugf("selected name: %v", channelInfo.Name) + + settings := getStandupSettings(channelID, channelInfo.Name) + + // Only way to dynamically update view form values + // 1. Update the view without no blocks + // 2. Update the view with new blocks using the 'initial_value' config + + // Update view by removing blocks - no other way to dynamically change view values. + resp, err := webApi.UpdateView(views.GetSettingsModal(types.StandupSettings{}), payload.View.ExternalID, payload.View.Hash, payload.View.ID) + if err != nil { + log.Printf("Failed to update a modal: %v", err) + } + socketMode.Debugf("views.update response: %v", resp) + + // Update view with new initial values + resp, err = webApi.UpdateView(views.GetSettingsModal(settings), resp.ExternalID, resp.Hash, resp.ID) + if err != nil { + log.Printf("Failed to opemn a modal: %v", err) + } + socketMode.Debugf("views.update response: %v", resp) + +} + +func meetingDaysToCron(meetingDays []slack.OptionBlockObject) string { + values := []string{} + for _, day := range meetingDays { + values = append(values, day.Value) + } + return strings.Join(values, ",") +} diff --git a/lib/standup/slack.go b/lib/standup/slack.go new file mode 100644 index 0000000..4f12d2f --- /dev/null +++ b/lib/standup/slack.go @@ -0,0 +1,78 @@ +package standup + +import ( + "fmt" + "log" + "os" + + "github.com/justmiles/standup-bot/lib/config" + "github.com/justmiles/standup-bot/lib/views" + "github.com/slack-go/slack" + "github.com/slack-go/slack/socketmode" +) + +var ( + webApi *slack.Client + socketMode *socketmode.Client +) + +func Start() { + listner() +} + +func listner() { + webApi = slack.New( + config.SlackBotToken, + slack.OptionAppLevelToken(config.SlackAppToken), + slack.OptionDebug(config.Debug), + slack.OptionLog(log.New(os.Stdout, "api: ", log.Lshortfile|log.LstdFlags)), + ) + socketMode = socketmode.New( + webApi, + socketmode.OptionDebug(config.Debug), + socketmode.OptionLog(log.New(os.Stdout, "sm: ", log.Lshortfile|log.LstdFlags)), + ) + _, authTestErr := webApi.AuthTest() + if authTestErr != nil { + fmt.Fprintf(os.Stderr, "SLACK_BOT_TOKEN is invalid: %v\n", authTestErr) + os.Exit(1) + } + go func() { + for envelope := range socketMode.Events { + switch envelope.Type { + case socketmode.EventTypeSlashCommand: + socketMode.Ack(*envelope.Request) + cmd, _ := envelope.Data.(slack.SlashCommand) + socketMode.Debugf("Slash command received: %+v", cmd) + + handleSlashCommand(cmd) + case socketmode.EventTypeInteractive: + socketMode.Ack(*envelope.Request) + payload, _ := envelope.Data.(slack.InteractionCallback) + + switch payload.Type { + case slack.InteractionTypeBlockActions: + switch payload.View.CallbackID { + case views.SettingsModalCallBackId: + handleSettingsModalActions(payload) + default: + socketMode.Debugf("Ignore Submission with CallbackID: %v", payload.View.CallbackID) + } + case slack.InteractionTypeViewSubmission: + switch payload.View.CallbackID { + case views.SettingsModalCallBackId: + submitSettingsModal(payload) + default: + socketMode.Debugf("Ignore Submission with CallbackID: %v", payload.View.CallbackID) + } + default: + socketMode.Debugf("Ignore Payload Type: %v", payload.Type) + } + default: + socketMode.Debugf("Skipped: %v", envelope.Type) + } + } + }() + + socketMode.Run() +} diff --git a/lib/standup/standup.go b/lib/standup/standup.go new file mode 100644 index 0000000..de8d0bc --- /dev/null +++ b/lib/standup/standup.go @@ -0,0 +1,179 @@ +package standup + +import ( + "fmt" + "math/rand" + "strings" + "time" + + "github.com/chrispruitt/go-slackbot/lib/bot" + "github.com/justmiles/standup-bot/lib/types" + "github.com/lucasb-eyer/go-colorful" + logger "github.com/sirupsen/logrus" + "github.com/slack-go/slack" +) + +var header = "Asynchronous Standups! Less time in meetings means more time getting things done. Keep the channel clean by using threads! To manage times, participants, etc, just type the `/standup` command." + +func RegisterStandup(settings types.StandupSettings) error { + + logger.Infof("\n\nRegistering Standup \n %v\n\n", settings) + + err := bot.RegisterPeriodicScript(bot.PeriodicScript{ + Name: fmt.Sprintf("standup-solicit-%s", settings.ChannelID), + CronSpec: settings.SolicitCronSpec, + Function: getSolicitStandupFunc(settings), + }) + + if err != nil { + return err + } + + bot.RegisterPeriodicScript(bot.PeriodicScript{ + Name: fmt.Sprintf("standup-share-%s", settings.ChannelID), + CronSpec: settings.ShareCronSpec, + Function: getShareStandupFunc(settings), + }) + + brain.Standups[settings.ChannelID] = settings + + return nil +} + +func getSolicitStandupFunc(settings types.StandupSettings) func() { + return func() { + // declare settings within function scope + settings := settings + for _, userId := range settings.Participants { + bot.PostMessage(userId, settings.SolicitMsg) + } + } +} + +func getShareStandupFunc(settings types.StandupSettings) func() { + return func() { + // declare settings within function scope + settings := settings + + bot.PostMessage(settings.ChannelID, header) + + users, err := bot.SlackClient.GetUsersInfo(settings.Participants...) + if err != nil { + logger.Error("Error getting users: ", err) + } + + conversations, err := getConversations() + if err != nil { + logger.Error("Error getting conversations: ", err) + } + + // seed our random colors and randomize share order + rand.Seed(time.Now().UTC().UnixNano()) + rand.Shuffle(len(*users), func(i, j int) { (*users)[i], (*users)[j] = (*users)[j], (*users)[i] }) + + for _, user := range *users { + + if channel, ok := conversations[user.ID]; ok { + notes, err := getStandupNote(channel.ID, settings.SolicitMsg, user.ID) + if err != nil { + logger.Error(err) + continue + } + + if len(notes) == 0 { + if settings.Shame { + notes = append(notes, fmt.Sprintf(":poop: %s has no standup notes", strings.Split(user.RealName, " ")[0])) + } else { + continue + } + } + + attachments := []slack.Attachment{ + { + Title: fmt.Sprintf("%s standup notes:", user.RealName), + Text: fmt.Sprintf(strings.Join(reverse(notes), "\n")), + Color: colorful.FastHappyColor().Hex(), + }, + } + + _, _, err = bot.SlackClient.PostMessage( + settings.ChannelID, + slack.MsgOptionText("", false), + slack.MsgOptionEnableLinkUnfurl(), + slack.MsgOptionAttachments(attachments...)) + + if err != nil { + logger.Errorf("Error posting standup report: %s\n", err) + } + + } else { + logger.Errorf("channel %s is orphaned", channel.ID) + } + } + } +} + +func getConversations() (map[string]slack.Channel, error) { + conversations := make(map[string]slack.Channel) + r, _, err := bot.SlackClient.GetConversations(&slack.GetConversationsParameters{ + ExcludeArchived: true, + Types: []string{"im"}, + }) + if err != nil { + return nil, err + } + for _, channel := range r { + conversations[channel.User] = channel + } + return conversations, nil +} + +func getStandupNote(channelID string, solicitStandupMessage string, userID string) ([]string, error) { + conversationHistory, err := bot.SlackClient.GetConversationHistory(&slack.GetConversationHistoryParameters{ + ChannelID: channelID, + // Oldest: fmt.Sprintf("%d.000001", (now.Add(time.Hour * time.Duration(-1))).Unix()), + }) + if err != nil { + return nil, fmt.Errorf("error getting standup info from channel %s: %s", channelID, err) + } + + var txt []string + + for _, m := range conversationHistory.Messages { + if m.Text == solicitStandupMessage { + + threadReplies, _, _, _ := bot.SlackClient.GetConversationReplies(&slack.GetConversationRepliesParameters{ + ChannelID: channelID, + Timestamp: m.ThreadTimestamp, + }) + + userThreadReplies := []string{} + for _, t := range threadReplies { + if t.User == userID { + txt = append(userThreadReplies, t.Text) + } + } + + // If user replied in thread, then use only thread message for standup notes + if len(userThreadReplies) > 0 { + txt = userThreadReplies + } + break + } + + // filter out any other standup solicitations for users in multiple standups + if m.User == userID { + txt = append(txt, m.Text) + } + } + + return txt, nil +} + +func reverse(ss []string) []string { + last := len(ss) - 1 + for i := 0; i < len(ss)/2; i++ { + ss[i], ss[last-i] = ss[last-i], ss[i] + } + return ss +} diff --git a/lib/types/standup-settings.go b/lib/types/standup-settings.go new file mode 100644 index 0000000..e0b2a3e --- /dev/null +++ b/lib/types/standup-settings.go @@ -0,0 +1,25 @@ +package types + +import "fmt" + +type StandupSettings struct { + ChannelID string `json:"channelID"` + SolicitCronSpec string `json:"solicitCronSpec"` + ShareCronSpec string `json:"shareCronSpec"` + SolicitMsg string `json:"solicitMsg"` + Shame bool `json:"shame"` + Participants []string `json:"participants"` // List of slack user ids +} + +func NewStandupSettings(channelID string, channelName string) *StandupSettings { + return &StandupSettings{ + ChannelID: channelID, + SolicitCronSpec: "00 13 * * MON,TUE,WED,THU,FRI", + ShareCronSpec: "00 14 * * MON,TUE,WED,THU,FRI", + SolicitMsg: fmt.Sprintf(`Hello! Could you share your standup notes with me? I'll post them in the #%s channel at the configured time. Just post them here anytime before then. Use a thread if you attend multiple standups and want to send specific notes to them. Consider the following questions: +:point_left: What happened yesterday? +:bell: Is there anything others should be aware of? +:fire: What you're hoping to accomplish today? +:construction: Any blockers?`, channelName), + } +} diff --git a/lib/views/assets/settings-modal.json b/lib/views/assets/settings-modal.json new file mode 100644 index 0000000..a9264b4 --- /dev/null +++ b/lib/views/assets/settings-modal.json @@ -0,0 +1,25 @@ +{ + "title": { + "type": "plain_text", + "text": "Standup Settings", + "emoji": true + }, + "submit": { + "type": "plain_text", + "text": "Save", + "emoji": true + }, + "type": "modal", + "callback_id": "modal_standup_settings", + "blocks": [ + { + "type": "header", + "block_id": "standup_channel_header", + "text": { + "type": "plain_text", + "text": "Select a Channel to Configure", + "emoji": true + } + } + ] +} \ No newline at end of file diff --git a/lib/views/settings-modal.go b/lib/views/settings-modal.go new file mode 100644 index 0000000..812250c --- /dev/null +++ b/lib/views/settings-modal.go @@ -0,0 +1,85 @@ +package views + +import ( + "embed" + "fmt" + "log" + "strconv" + "strings" + + "encoding/json" + + "github.com/justmiles/standup-bot/lib/types" + "github.com/slack-go/slack" +) + +const ( + // Define Action_id as constant so we can refer to them in the controller + SettingsModalCallBackId = "modal_standup_settings" + ModalMeetingDaysBlockId = "meeting_days" + ModalMeetingDaysActionId = "meeting_days" + ModalShameBlockId = "shame" + ModalShameActionId = "shame" + ModalSolicitTimeBlockId = "input_solicit_time" + ModalSolicitTimeActionId = "input_solicit_time" + ModalShareTimeBlockId = "input_share_time" + ModalShareTimeActionId = "input_share_time" + ModalSolicitMessgaeBlockId = "input_solicit_message" + ModalSolicitMessageActionId = "input_solicit_message" + ModalStandupChannelBlockId = "standup_channel_select" + ModalStandupChannelActionId = "standup_channel_select" + ModalParticipantsBlockId = "participants_select" + ModalParticipantsActionId = "participants_select" +) + +//go:embed assets/* +var assets embed.FS + +func GetSettingsModal(settings types.StandupSettings) slack.ModalViewRequest { + + // Any static blocks can be declared in the json file built using the slack block kit builder. + str, err := assets.ReadFile("assets/settings-modal.json") + if err != nil { + log.Printf("Unable to read view `SettingsModal`: %v", err) + } + view := slack.ModalViewRequest{} + json.Unmarshal([]byte(str), &view) + + checkBoxMeetingDaysOptions := map[string]string{ + "Monday": "MON", + "Tuesday": "TUE", + "Wednesday": "WED", + "Thursday": "THU", + "Friday": "FRI", + } + + initialDays := []string{} + solicitTimeValue := "" + if solicitCronSpec := strings.Split(settings.SolicitCronSpec, " "); len(solicitCronSpec) >= 4 { + initialDays = strings.Split(solicitCronSpec[4], ",") + solicitTimeValue = fmt.Sprintf("%s:%s", solicitCronSpec[1], solicitCronSpec[0]) + } + shareTimeValue := "" + if shareCronSpec := strings.Split(settings.ShareCronSpec, " "); len(shareCronSpec) >= 4 { + shareTimeValue = fmt.Sprintf("%s:%s", shareCronSpec[1], shareCronSpec[0]) + } + + dynamicBlocks := []slack.Block{ + buildChannelSelect("Standup Channel", ModalStandupChannelBlockId, ModalStandupChannelActionId, settings.ChannelID), + } + + if settings.ChannelID != "" { + dynamicBlocks = append(dynamicBlocks, []slack.Block{ + buildUserMultiSelect("Participants", ModalParticipantsBlockId, ModalParticipantsActionId, settings.Participants), + buildCheckboxGroup("Meeting Days", ModalMeetingDaysBlockId, ModalMeetingDaysActionId, checkBoxMeetingDaysOptions, initialDays), + buildRadioGroup("Shame", ModalShameBlockId, ModalShameActionId, map[string]string{"Yes": "true", "No": "false"}, strconv.FormatBool(settings.Shame)), + buildTimePicker("Solicit (UTC)", ModalSolicitTimeBlockId, ModalSolicitTimeActionId, solicitTimeValue), + buildTimePicker("Share (UTC)", ModalShareTimeBlockId, ModalShareTimeActionId, shareTimeValue), + buildTextInput("Solicit Message", ModalSolicitMessgaeBlockId, ModalSolicitMessageActionId, true, "Message to prompt user to report their standup notes.", settings.SolicitMsg), + }...) + } + + view.Blocks.BlockSet = append(view.Blocks.BlockSet, dynamicBlocks...) + + return view +} diff --git a/lib/views/util.go b/lib/views/util.go new file mode 100644 index 0000000..71a4ee1 --- /dev/null +++ b/lib/views/util.go @@ -0,0 +1,166 @@ +package views + +import "github.com/slack-go/slack" + +func buildChannelSelect(label string, blockID string, actionID string, initialChannelId string) *slack.ActionBlock { + element := slack.NewOptionsGroupSelectBlockElement( + slack.OptTypeChannels, + slack.NewTextBlockObject( + "plain_text", + label, + false, + false, + ), + actionID, + ) + + element.InitialChannel = initialChannelId + + return slack.NewActionBlock( + blockID, + element, + ) +} + +func buildUserMultiSelect(label string, blockID, actionID string, initialParticipants []string) *slack.InputBlock { + element := slack.NewOptionsGroupMultiSelectBlockElement( + slack.MultiOptTypeUser, + slack.NewTextBlockObject( + "plain_text", + label, + false, + false, + ), + actionID, + ) + + element.InitialUsers = initialParticipants + + return slack.NewInputBlock( + blockID, + slack.NewTextBlockObject( + "plain_text", + label, + false, + false, + ), + element, + ) +} + +func buildCheckboxGroup(label string, blockID, actionID string, options map[string]string, initialOptions []string) *slack.InputBlock { + element := slack.NewCheckboxGroupsBlockElement(actionID) + + for key, val := range options { + option := slack.NewOptionBlockObject( + val, + slack.NewTextBlockObject( + "plain_text", + key, + false, + false, + ), + nil, + ) + element.Options = append(element.Options, option) + if contains(initialOptions, val) { + element.InitialOptions = append(element.InitialOptions, option) + } + } + + return slack.NewInputBlock( + blockID, + slack.NewTextBlockObject( + "plain_text", + label, + false, + false, + ), + element, + ) +} + +func buildRadioGroup(label string, blockID, actionID string, options map[string]string, initialOption string) *slack.InputBlock { + element := slack.NewRadioButtonsBlockElement(actionID) + + for key, val := range options { + option := slack.NewOptionBlockObject( + val, + slack.NewTextBlockObject( + "plain_text", + key, + false, + false, + ), + nil, + ) + element.Options = append(element.Options, option) + + if initialOption == val { + element.InitialOption = option + } + } + + return slack.NewInputBlock( + blockID, + slack.NewTextBlockObject( + "plain_text", + label, + false, + false, + ), + element, + ) +} + +func buildTimePicker(label string, blockID, actionID string, initialValue string) *slack.InputBlock { + element := slack.NewTimePickerBlockElement(actionID) + + element.InitialTime = initialValue + + return slack.NewInputBlock( + blockID, + slack.NewTextBlockObject( + "plain_text", + label, + false, + false, + ), + element, + ) +} + +func buildTextInput(label string, blockID, actionID string, multiline bool, placeholder string, initialValue string) *slack.InputBlock { + element := slack.NewPlainTextInputBlockElement( + slack.NewTextBlockObject( + "plain_text", + placeholder, + false, + false, + ), + actionID, + ) + + element.InitialValue = initialValue + element.Multiline = multiline + + return slack.NewInputBlock( + blockID, + slack.NewTextBlockObject( + "plain_text", + label, + false, + false, + ), + element, + ) +} + +func contains(list []string, item string) bool { + for _, v := range list { + if v == item { + return true + } + } + return false +} diff --git a/main.go b/main.go index c29846d..e68ec1d 100644 --- a/main.go +++ b/main.go @@ -1,19 +1,9 @@ package main import ( - - // community plugins - _ "github.com/go-chat-bot/plugins/cmd" - - // internal plugins - c "github.com/justmiles/standup-bot/lib/configs" - _ "github.com/justmiles/standup-bot/lib/plugins/log" - _ "github.com/justmiles/standup-bot/lib/plugins/standup" - _ "github.com/justmiles/standup-bot/lib/plugins/status" - _ "github.com/justmiles/standup-bot/lib/plugins/suicide" - "github.com/justmiles/standup-bot/lib/slack" + "github.com/justmiles/standup-bot/lib/standup" ) func main() { - slack.Run(c.Get("SLACK_TOKEN", "", true)) + standup.Start() } diff --git a/vendor/github.com/aws/aws-sdk-go/LICENSE.txt b/vendor/github.com/aws/aws-sdk-go/LICENSE.txt deleted file mode 100644 index d645695..0000000 --- a/vendor/github.com/aws/aws-sdk-go/LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/vendor/github.com/aws/aws-sdk-go/NOTICE.txt b/vendor/github.com/aws/aws-sdk-go/NOTICE.txt deleted file mode 100644 index 899129e..0000000 --- a/vendor/github.com/aws/aws-sdk-go/NOTICE.txt +++ /dev/null @@ -1,3 +0,0 @@ -AWS SDK for Go -Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. -Copyright 2014-2015 Stripe, Inc. diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awserr/error.go b/vendor/github.com/aws/aws-sdk-go/aws/awserr/error.go deleted file mode 100644 index 99849c0..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/awserr/error.go +++ /dev/null @@ -1,164 +0,0 @@ -// Package awserr represents API error interface accessors for the SDK. -package awserr - -// An Error wraps lower level errors with code, message and an original error. -// The underlying concrete error type may also satisfy other interfaces which -// can be to used to obtain more specific information about the error. -// -// Calling Error() or String() will always include the full information about -// an error based on its underlying type. -// -// Example: -// -// output, err := s3manage.Upload(svc, input, opts) -// if err != nil { -// if awsErr, ok := err.(awserr.Error); ok { -// // Get error details -// log.Println("Error:", awsErr.Code(), awsErr.Message()) -// -// // Prints out full error message, including original error if there was one. -// log.Println("Error:", awsErr.Error()) -// -// // Get original error -// if origErr := awsErr.OrigErr(); origErr != nil { -// // operate on original error. -// } -// } else { -// fmt.Println(err.Error()) -// } -// } -// -type Error interface { - // Satisfy the generic error interface. - error - - // Returns the short phrase depicting the classification of the error. - Code() string - - // Returns the error details message. - Message() string - - // Returns the original error if one was set. Nil is returned if not set. - OrigErr() error -} - -// BatchError is a batch of errors which also wraps lower level errors with -// code, message, and original errors. Calling Error() will include all errors -// that occurred in the batch. -// -// Deprecated: Replaced with BatchedErrors. Only defined for backwards -// compatibility. -type BatchError interface { - // Satisfy the generic error interface. - error - - // Returns the short phrase depicting the classification of the error. - Code() string - - // Returns the error details message. - Message() string - - // Returns the original error if one was set. Nil is returned if not set. - OrigErrs() []error -} - -// BatchedErrors is a batch of errors which also wraps lower level errors with -// code, message, and original errors. Calling Error() will include all errors -// that occurred in the batch. -// -// Replaces BatchError -type BatchedErrors interface { - // Satisfy the base Error interface. - Error - - // Returns the original error if one was set. Nil is returned if not set. - OrigErrs() []error -} - -// New returns an Error object described by the code, message, and origErr. -// -// If origErr satisfies the Error interface it will not be wrapped within a new -// Error object and will instead be returned. -func New(code, message string, origErr error) Error { - var errs []error - if origErr != nil { - errs = append(errs, origErr) - } - return newBaseError(code, message, errs) -} - -// NewBatchError returns an BatchedErrors with a collection of errors as an -// array of errors. -func NewBatchError(code, message string, errs []error) BatchedErrors { - return newBaseError(code, message, errs) -} - -// A RequestFailure is an interface to extract request failure information from -// an Error such as the request ID of the failed request returned by a service. -// RequestFailures may not always have a requestID value if the request failed -// prior to reaching the service such as a connection error. -// -// Example: -// -// output, err := s3manage.Upload(svc, input, opts) -// if err != nil { -// if reqerr, ok := err.(RequestFailure); ok { -// log.Println("Request failed", reqerr.Code(), reqerr.Message(), reqerr.RequestID()) -// } else { -// log.Println("Error:", err.Error()) -// } -// } -// -// Combined with awserr.Error: -// -// output, err := s3manage.Upload(svc, input, opts) -// if err != nil { -// if awsErr, ok := err.(awserr.Error); ok { -// // Generic AWS Error with Code, Message, and original error (if any) -// fmt.Println(awsErr.Code(), awsErr.Message(), awsErr.OrigErr()) -// -// if reqErr, ok := err.(awserr.RequestFailure); ok { -// // A service error occurred -// fmt.Println(reqErr.StatusCode(), reqErr.RequestID()) -// } -// } else { -// fmt.Println(err.Error()) -// } -// } -// -type RequestFailure interface { - Error - - // The status code of the HTTP response. - StatusCode() int - - // The request ID returned by the service for a request failure. This will - // be empty if no request ID is available such as the request failed due - // to a connection error. - RequestID() string -} - -// NewRequestFailure returns a wrapped error with additional information for -// request status code, and service requestID. -// -// Should be used to wrap all request which involve service requests. Even if -// the request failed without a service response, but had an HTTP status code -// that may be meaningful. -func NewRequestFailure(err Error, statusCode int, reqID string) RequestFailure { - return newRequestError(err, statusCode, reqID) -} - -// UnmarshalError provides the interface for the SDK failing to unmarshal data. -type UnmarshalError interface { - awsError - Bytes() []byte -} - -// NewUnmarshalError returns an initialized UnmarshalError error wrapper adding -// the bytes that fail to unmarshal to the error. -func NewUnmarshalError(err error, msg string, bytes []byte) UnmarshalError { - return &unmarshalError{ - awsError: New("UnmarshalError", msg, err), - bytes: bytes, - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awserr/types.go b/vendor/github.com/aws/aws-sdk-go/aws/awserr/types.go deleted file mode 100644 index 9cf7eaf..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/awserr/types.go +++ /dev/null @@ -1,221 +0,0 @@ -package awserr - -import ( - "encoding/hex" - "fmt" -) - -// SprintError returns a string of the formatted error code. -// -// Both extra and origErr are optional. If they are included their lines -// will be added, but if they are not included their lines will be ignored. -func SprintError(code, message, extra string, origErr error) string { - msg := fmt.Sprintf("%s: %s", code, message) - if extra != "" { - msg = fmt.Sprintf("%s\n\t%s", msg, extra) - } - if origErr != nil { - msg = fmt.Sprintf("%s\ncaused by: %s", msg, origErr.Error()) - } - return msg -} - -// A baseError wraps the code and message which defines an error. It also -// can be used to wrap an original error object. -// -// Should be used as the root for errors satisfying the awserr.Error. Also -// for any error which does not fit into a specific error wrapper type. -type baseError struct { - // Classification of error - code string - - // Detailed information about error - message string - - // Optional original error this error is based off of. Allows building - // chained errors. - errs []error -} - -// newBaseError returns an error object for the code, message, and errors. -// -// code is a short no whitespace phrase depicting the classification of -// the error that is being created. -// -// message is the free flow string containing detailed information about the -// error. -// -// origErrs is the error objects which will be nested under the new errors to -// be returned. -func newBaseError(code, message string, origErrs []error) *baseError { - b := &baseError{ - code: code, - message: message, - errs: origErrs, - } - - return b -} - -// Error returns the string representation of the error. -// -// See ErrorWithExtra for formatting. -// -// Satisfies the error interface. -func (b baseError) Error() string { - size := len(b.errs) - if size > 0 { - return SprintError(b.code, b.message, "", errorList(b.errs)) - } - - return SprintError(b.code, b.message, "", nil) -} - -// String returns the string representation of the error. -// Alias for Error to satisfy the stringer interface. -func (b baseError) String() string { - return b.Error() -} - -// Code returns the short phrase depicting the classification of the error. -func (b baseError) Code() string { - return b.code -} - -// Message returns the error details message. -func (b baseError) Message() string { - return b.message -} - -// OrigErr returns the original error if one was set. Nil is returned if no -// error was set. This only returns the first element in the list. If the full -// list is needed, use BatchedErrors. -func (b baseError) OrigErr() error { - switch len(b.errs) { - case 0: - return nil - case 1: - return b.errs[0] - default: - if err, ok := b.errs[0].(Error); ok { - return NewBatchError(err.Code(), err.Message(), b.errs[1:]) - } - return NewBatchError("BatchedErrors", - "multiple errors occurred", b.errs) - } -} - -// OrigErrs returns the original errors if one was set. An empty slice is -// returned if no error was set. -func (b baseError) OrigErrs() []error { - return b.errs -} - -// So that the Error interface type can be included as an anonymous field -// in the requestError struct and not conflict with the error.Error() method. -type awsError Error - -// A requestError wraps a request or service error. -// -// Composed of baseError for code, message, and original error. -type requestError struct { - awsError - statusCode int - requestID string - bytes []byte -} - -// newRequestError returns a wrapped error with additional information for -// request status code, and service requestID. -// -// Should be used to wrap all request which involve service requests. Even if -// the request failed without a service response, but had an HTTP status code -// that may be meaningful. -// -// Also wraps original errors via the baseError. -func newRequestError(err Error, statusCode int, requestID string) *requestError { - return &requestError{ - awsError: err, - statusCode: statusCode, - requestID: requestID, - } -} - -// Error returns the string representation of the error. -// Satisfies the error interface. -func (r requestError) Error() string { - extra := fmt.Sprintf("status code: %d, request id: %s", - r.statusCode, r.requestID) - return SprintError(r.Code(), r.Message(), extra, r.OrigErr()) -} - -// String returns the string representation of the error. -// Alias for Error to satisfy the stringer interface. -func (r requestError) String() string { - return r.Error() -} - -// StatusCode returns the wrapped status code for the error -func (r requestError) StatusCode() int { - return r.statusCode -} - -// RequestID returns the wrapped requestID -func (r requestError) RequestID() string { - return r.requestID -} - -// OrigErrs returns the original errors if one was set. An empty slice is -// returned if no error was set. -func (r requestError) OrigErrs() []error { - if b, ok := r.awsError.(BatchedErrors); ok { - return b.OrigErrs() - } - return []error{r.OrigErr()} -} - -type unmarshalError struct { - awsError - bytes []byte -} - -// Error returns the string representation of the error. -// Satisfies the error interface. -func (e unmarshalError) Error() string { - extra := hex.Dump(e.bytes) - return SprintError(e.Code(), e.Message(), extra, e.OrigErr()) -} - -// String returns the string representation of the error. -// Alias for Error to satisfy the stringer interface. -func (e unmarshalError) String() string { - return e.Error() -} - -// Bytes returns the bytes that failed to unmarshal. -func (e unmarshalError) Bytes() []byte { - return e.bytes -} - -// An error list that satisfies the golang interface -type errorList []error - -// Error returns the string representation of the error. -// -// Satisfies the error interface. -func (e errorList) Error() string { - msg := "" - // How do we want to handle the array size being zero - if size := len(e); size > 0 { - for i := 0; i < size; i++ { - msg += e[i].Error() - // We check the next index to see if it is within the slice. - // If it is, then we append a newline. We do this, because unit tests - // could be broken with the additional '\n' - if i+1 < size { - msg += "\n" - } - } - } - return msg -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/copy.go b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/copy.go deleted file mode 100644 index 1a3d106..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/copy.go +++ /dev/null @@ -1,108 +0,0 @@ -package awsutil - -import ( - "io" - "reflect" - "time" -) - -// Copy deeply copies a src structure to dst. Useful for copying request and -// response structures. -// -// Can copy between structs of different type, but will only copy fields which -// are assignable, and exist in both structs. Fields which are not assignable, -// or do not exist in both structs are ignored. -func Copy(dst, src interface{}) { - dstval := reflect.ValueOf(dst) - if !dstval.IsValid() { - panic("Copy dst cannot be nil") - } - - rcopy(dstval, reflect.ValueOf(src), true) -} - -// CopyOf returns a copy of src while also allocating the memory for dst. -// src must be a pointer type or this operation will fail. -func CopyOf(src interface{}) (dst interface{}) { - dsti := reflect.New(reflect.TypeOf(src).Elem()) - dst = dsti.Interface() - rcopy(dsti, reflect.ValueOf(src), true) - return -} - -// rcopy performs a recursive copy of values from the source to destination. -// -// root is used to skip certain aspects of the copy which are not valid -// for the root node of a object. -func rcopy(dst, src reflect.Value, root bool) { - if !src.IsValid() { - return - } - - switch src.Kind() { - case reflect.Ptr: - if _, ok := src.Interface().(io.Reader); ok { - if dst.Kind() == reflect.Ptr && dst.Elem().CanSet() { - dst.Elem().Set(src) - } else if dst.CanSet() { - dst.Set(src) - } - } else { - e := src.Type().Elem() - if dst.CanSet() && !src.IsNil() { - if _, ok := src.Interface().(*time.Time); !ok { - dst.Set(reflect.New(e)) - } else { - tempValue := reflect.New(e) - tempValue.Elem().Set(src.Elem()) - // Sets time.Time's unexported values - dst.Set(tempValue) - } - } - if src.Elem().IsValid() { - // Keep the current root state since the depth hasn't changed - rcopy(dst.Elem(), src.Elem(), root) - } - } - case reflect.Struct: - t := dst.Type() - for i := 0; i < t.NumField(); i++ { - name := t.Field(i).Name - srcVal := src.FieldByName(name) - dstVal := dst.FieldByName(name) - if srcVal.IsValid() && dstVal.CanSet() { - rcopy(dstVal, srcVal, false) - } - } - case reflect.Slice: - if src.IsNil() { - break - } - - s := reflect.MakeSlice(src.Type(), src.Len(), src.Cap()) - dst.Set(s) - for i := 0; i < src.Len(); i++ { - rcopy(dst.Index(i), src.Index(i), false) - } - case reflect.Map: - if src.IsNil() { - break - } - - s := reflect.MakeMap(src.Type()) - dst.Set(s) - for _, k := range src.MapKeys() { - v := src.MapIndex(k) - v2 := reflect.New(v.Type()).Elem() - rcopy(v2, v, false) - dst.SetMapIndex(k, v2) - } - default: - // Assign the value if possible. If its not assignable, the value would - // need to be converted and the impact of that may be unexpected, or is - // not compatible with the dst type. - if src.Type().AssignableTo(dst.Type()) { - dst.Set(src) - } - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/equal.go b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/equal.go deleted file mode 100644 index 142a7a0..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/equal.go +++ /dev/null @@ -1,27 +0,0 @@ -package awsutil - -import ( - "reflect" -) - -// DeepEqual returns if the two values are deeply equal like reflect.DeepEqual. -// In addition to this, this method will also dereference the input values if -// possible so the DeepEqual performed will not fail if one parameter is a -// pointer and the other is not. -// -// DeepEqual will not perform indirection of nested values of the input parameters. -func DeepEqual(a, b interface{}) bool { - ra := reflect.Indirect(reflect.ValueOf(a)) - rb := reflect.Indirect(reflect.ValueOf(b)) - - if raValid, rbValid := ra.IsValid(), rb.IsValid(); !raValid && !rbValid { - // If the elements are both nil, and of the same type they are equal - // If they are of different types they are not equal - return reflect.TypeOf(a) == reflect.TypeOf(b) - } else if raValid != rbValid { - // Both values must be valid to be equal - return false - } - - return reflect.DeepEqual(ra.Interface(), rb.Interface()) -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/path_value.go b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/path_value.go deleted file mode 100644 index a4eb6a7..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/path_value.go +++ /dev/null @@ -1,221 +0,0 @@ -package awsutil - -import ( - "reflect" - "regexp" - "strconv" - "strings" - - "github.com/jmespath/go-jmespath" -) - -var indexRe = regexp.MustCompile(`(.+)\[(-?\d+)?\]$`) - -// rValuesAtPath returns a slice of values found in value v. The values -// in v are explored recursively so all nested values are collected. -func rValuesAtPath(v interface{}, path string, createPath, caseSensitive, nilTerm bool) []reflect.Value { - pathparts := strings.Split(path, "||") - if len(pathparts) > 1 { - for _, pathpart := range pathparts { - vals := rValuesAtPath(v, pathpart, createPath, caseSensitive, nilTerm) - if len(vals) > 0 { - return vals - } - } - return nil - } - - values := []reflect.Value{reflect.Indirect(reflect.ValueOf(v))} - components := strings.Split(path, ".") - for len(values) > 0 && len(components) > 0 { - var index *int64 - var indexStar bool - c := strings.TrimSpace(components[0]) - if c == "" { // no actual component, illegal syntax - return nil - } else if caseSensitive && c != "*" && strings.ToLower(c[0:1]) == c[0:1] { - // TODO normalize case for user - return nil // don't support unexported fields - } - - // parse this component - if m := indexRe.FindStringSubmatch(c); m != nil { - c = m[1] - if m[2] == "" { - index = nil - indexStar = true - } else { - i, _ := strconv.ParseInt(m[2], 10, 32) - index = &i - indexStar = false - } - } - - nextvals := []reflect.Value{} - for _, value := range values { - // pull component name out of struct member - if value.Kind() != reflect.Struct { - continue - } - - if c == "*" { // pull all members - for i := 0; i < value.NumField(); i++ { - if f := reflect.Indirect(value.Field(i)); f.IsValid() { - nextvals = append(nextvals, f) - } - } - continue - } - - value = value.FieldByNameFunc(func(name string) bool { - if c == name { - return true - } else if !caseSensitive && strings.EqualFold(name, c) { - return true - } - return false - }) - - if nilTerm && value.Kind() == reflect.Ptr && len(components[1:]) == 0 { - if !value.IsNil() { - value.Set(reflect.Zero(value.Type())) - } - return []reflect.Value{value} - } - - if createPath && value.Kind() == reflect.Ptr && value.IsNil() { - // TODO if the value is the terminus it should not be created - // if the value to be set to its position is nil. - value.Set(reflect.New(value.Type().Elem())) - value = value.Elem() - } else { - value = reflect.Indirect(value) - } - - if value.Kind() == reflect.Slice || value.Kind() == reflect.Map { - if !createPath && value.IsNil() { - value = reflect.ValueOf(nil) - } - } - - if value.IsValid() { - nextvals = append(nextvals, value) - } - } - values = nextvals - - if indexStar || index != nil { - nextvals = []reflect.Value{} - for _, valItem := range values { - value := reflect.Indirect(valItem) - if value.Kind() != reflect.Slice { - continue - } - - if indexStar { // grab all indices - for i := 0; i < value.Len(); i++ { - idx := reflect.Indirect(value.Index(i)) - if idx.IsValid() { - nextvals = append(nextvals, idx) - } - } - continue - } - - // pull out index - i := int(*index) - if i >= value.Len() { // check out of bounds - if createPath { - // TODO resize slice - } else { - continue - } - } else if i < 0 { // support negative indexing - i = value.Len() + i - } - value = reflect.Indirect(value.Index(i)) - - if value.Kind() == reflect.Slice || value.Kind() == reflect.Map { - if !createPath && value.IsNil() { - value = reflect.ValueOf(nil) - } - } - - if value.IsValid() { - nextvals = append(nextvals, value) - } - } - values = nextvals - } - - components = components[1:] - } - return values -} - -// ValuesAtPath returns a list of values at the case insensitive lexical -// path inside of a structure. -func ValuesAtPath(i interface{}, path string) ([]interface{}, error) { - result, err := jmespath.Search(path, i) - if err != nil { - return nil, err - } - - v := reflect.ValueOf(result) - if !v.IsValid() || (v.Kind() == reflect.Ptr && v.IsNil()) { - return nil, nil - } - if s, ok := result.([]interface{}); ok { - return s, err - } - if v.Kind() == reflect.Map && v.Len() == 0 { - return nil, nil - } - if v.Kind() == reflect.Slice { - out := make([]interface{}, v.Len()) - for i := 0; i < v.Len(); i++ { - out[i] = v.Index(i).Interface() - } - return out, nil - } - - return []interface{}{result}, nil -} - -// SetValueAtPath sets a value at the case insensitive lexical path inside -// of a structure. -func SetValueAtPath(i interface{}, path string, v interface{}) { - rvals := rValuesAtPath(i, path, true, false, v == nil) - for _, rval := range rvals { - if rval.Kind() == reflect.Ptr && rval.IsNil() { - continue - } - setValue(rval, v) - } -} - -func setValue(dstVal reflect.Value, src interface{}) { - if dstVal.Kind() == reflect.Ptr { - dstVal = reflect.Indirect(dstVal) - } - srcVal := reflect.ValueOf(src) - - if !srcVal.IsValid() { // src is literal nil - if dstVal.CanAddr() { - // Convert to pointer so that pointer's value can be nil'ed - // dstVal = dstVal.Addr() - } - dstVal.Set(reflect.Zero(dstVal.Type())) - - } else if srcVal.Kind() == reflect.Ptr { - if srcVal.IsNil() { - srcVal = reflect.Zero(dstVal.Type()) - } else { - srcVal = reflect.ValueOf(src).Elem() - } - dstVal.Set(srcVal) - } else { - dstVal.Set(srcVal) - } - -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/prettify.go b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/prettify.go deleted file mode 100644 index 710eb43..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/prettify.go +++ /dev/null @@ -1,113 +0,0 @@ -package awsutil - -import ( - "bytes" - "fmt" - "io" - "reflect" - "strings" -) - -// Prettify returns the string representation of a value. -func Prettify(i interface{}) string { - var buf bytes.Buffer - prettify(reflect.ValueOf(i), 0, &buf) - return buf.String() -} - -// prettify will recursively walk value v to build a textual -// representation of the value. -func prettify(v reflect.Value, indent int, buf *bytes.Buffer) { - for v.Kind() == reflect.Ptr { - v = v.Elem() - } - - switch v.Kind() { - case reflect.Struct: - strtype := v.Type().String() - if strtype == "time.Time" { - fmt.Fprintf(buf, "%s", v.Interface()) - break - } else if strings.HasPrefix(strtype, "io.") { - buf.WriteString("") - break - } - - buf.WriteString("{\n") - - names := []string{} - for i := 0; i < v.Type().NumField(); i++ { - name := v.Type().Field(i).Name - f := v.Field(i) - if name[0:1] == strings.ToLower(name[0:1]) { - continue // ignore unexported fields - } - if (f.Kind() == reflect.Ptr || f.Kind() == reflect.Slice || f.Kind() == reflect.Map) && f.IsNil() { - continue // ignore unset fields - } - names = append(names, name) - } - - for i, n := range names { - val := v.FieldByName(n) - buf.WriteString(strings.Repeat(" ", indent+2)) - buf.WriteString(n + ": ") - prettify(val, indent+2, buf) - - if i < len(names)-1 { - buf.WriteString(",\n") - } - } - - buf.WriteString("\n" + strings.Repeat(" ", indent) + "}") - case reflect.Slice: - strtype := v.Type().String() - if strtype == "[]uint8" { - fmt.Fprintf(buf, " len %d", v.Len()) - break - } - - nl, id, id2 := "", "", "" - if v.Len() > 3 { - nl, id, id2 = "\n", strings.Repeat(" ", indent), strings.Repeat(" ", indent+2) - } - buf.WriteString("[" + nl) - for i := 0; i < v.Len(); i++ { - buf.WriteString(id2) - prettify(v.Index(i), indent+2, buf) - - if i < v.Len()-1 { - buf.WriteString("," + nl) - } - } - - buf.WriteString(nl + id + "]") - case reflect.Map: - buf.WriteString("{\n") - - for i, k := range v.MapKeys() { - buf.WriteString(strings.Repeat(" ", indent+2)) - buf.WriteString(k.String() + ": ") - prettify(v.MapIndex(k), indent+2, buf) - - if i < v.Len()-1 { - buf.WriteString(",\n") - } - } - - buf.WriteString("\n" + strings.Repeat(" ", indent) + "}") - default: - if !v.IsValid() { - fmt.Fprint(buf, "") - return - } - format := "%v" - switch v.Interface().(type) { - case string: - format = "%q" - case io.ReadSeeker, io.Reader: - format = "buffer(%p)" - } - fmt.Fprintf(buf, format, v.Interface()) - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go deleted file mode 100644 index 645df24..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go +++ /dev/null @@ -1,88 +0,0 @@ -package awsutil - -import ( - "bytes" - "fmt" - "reflect" - "strings" -) - -// StringValue returns the string representation of a value. -func StringValue(i interface{}) string { - var buf bytes.Buffer - stringValue(reflect.ValueOf(i), 0, &buf) - return buf.String() -} - -func stringValue(v reflect.Value, indent int, buf *bytes.Buffer) { - for v.Kind() == reflect.Ptr { - v = v.Elem() - } - - switch v.Kind() { - case reflect.Struct: - buf.WriteString("{\n") - - for i := 0; i < v.Type().NumField(); i++ { - ft := v.Type().Field(i) - fv := v.Field(i) - - if ft.Name[0:1] == strings.ToLower(ft.Name[0:1]) { - continue // ignore unexported fields - } - if (fv.Kind() == reflect.Ptr || fv.Kind() == reflect.Slice) && fv.IsNil() { - continue // ignore unset fields - } - - buf.WriteString(strings.Repeat(" ", indent+2)) - buf.WriteString(ft.Name + ": ") - - if tag := ft.Tag.Get("sensitive"); tag == "true" { - buf.WriteString("") - } else { - stringValue(fv, indent+2, buf) - } - - buf.WriteString(",\n") - } - - buf.WriteString("\n" + strings.Repeat(" ", indent) + "}") - case reflect.Slice: - nl, id, id2 := "", "", "" - if v.Len() > 3 { - nl, id, id2 = "\n", strings.Repeat(" ", indent), strings.Repeat(" ", indent+2) - } - buf.WriteString("[" + nl) - for i := 0; i < v.Len(); i++ { - buf.WriteString(id2) - stringValue(v.Index(i), indent+2, buf) - - if i < v.Len()-1 { - buf.WriteString("," + nl) - } - } - - buf.WriteString(nl + id + "]") - case reflect.Map: - buf.WriteString("{\n") - - for i, k := range v.MapKeys() { - buf.WriteString(strings.Repeat(" ", indent+2)) - buf.WriteString(k.String() + ": ") - stringValue(v.MapIndex(k), indent+2, buf) - - if i < v.Len()-1 { - buf.WriteString(",\n") - } - } - - buf.WriteString("\n" + strings.Repeat(" ", indent) + "}") - default: - format := "%v" - switch v.Interface().(type) { - case string: - format = "%q" - } - fmt.Fprintf(buf, format, v.Interface()) - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/client/client.go b/vendor/github.com/aws/aws-sdk-go/aws/client/client.go deleted file mode 100644 index 74f35cc..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/client/client.go +++ /dev/null @@ -1,93 +0,0 @@ -package client - -import ( - "fmt" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/client/metadata" - "github.com/aws/aws-sdk-go/aws/request" -) - -// A Config provides configuration to a service client instance. -type Config struct { - Config *aws.Config - Handlers request.Handlers - PartitionID string - Endpoint string - SigningRegion string - SigningName string - - // States that the signing name did not come from a modeled source but - // was derived based on other data. Used by service client constructors - // to determine if the signin name can be overridden based on metadata the - // service has. - SigningNameDerived bool -} - -// ConfigProvider provides a generic way for a service client to receive -// the ClientConfig without circular dependencies. -type ConfigProvider interface { - ClientConfig(serviceName string, cfgs ...*aws.Config) Config -} - -// ConfigNoResolveEndpointProvider same as ConfigProvider except it will not -// resolve the endpoint automatically. The service client's endpoint must be -// provided via the aws.Config.Endpoint field. -type ConfigNoResolveEndpointProvider interface { - ClientConfigNoResolveEndpoint(cfgs ...*aws.Config) Config -} - -// A Client implements the base client request and response handling -// used by all service clients. -type Client struct { - request.Retryer - metadata.ClientInfo - - Config aws.Config - Handlers request.Handlers -} - -// New will return a pointer to a new initialized service client. -func New(cfg aws.Config, info metadata.ClientInfo, handlers request.Handlers, options ...func(*Client)) *Client { - svc := &Client{ - Config: cfg, - ClientInfo: info, - Handlers: handlers.Copy(), - } - - switch retryer, ok := cfg.Retryer.(request.Retryer); { - case ok: - svc.Retryer = retryer - case cfg.Retryer != nil && cfg.Logger != nil: - s := fmt.Sprintf("WARNING: %T does not implement request.Retryer; using DefaultRetryer instead", cfg.Retryer) - cfg.Logger.Log(s) - fallthrough - default: - maxRetries := aws.IntValue(cfg.MaxRetries) - if cfg.MaxRetries == nil || maxRetries == aws.UseServiceDefaultRetries { - maxRetries = DefaultRetryerMaxNumRetries - } - svc.Retryer = DefaultRetryer{NumMaxRetries: maxRetries} - } - - svc.AddDebugHandlers() - - for _, option := range options { - option(svc) - } - - return svc -} - -// NewRequest returns a new Request pointer for the service API -// operation and parameters. -func (c *Client) NewRequest(operation *request.Operation, params interface{}, data interface{}) *request.Request { - return request.New(c.Config, c.ClientInfo, c.Handlers, c.Retryer, operation, params, data) -} - -// AddDebugHandlers injects debug logging handlers into the service to log request -// debug information. -func (c *Client) AddDebugHandlers() { - c.Handlers.Send.PushFrontNamed(LogHTTPRequestHandler) - c.Handlers.Send.PushBackNamed(LogHTTPResponseHandler) -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/client/default_retryer.go b/vendor/github.com/aws/aws-sdk-go/aws/client/default_retryer.go deleted file mode 100644 index 9f6af19..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/client/default_retryer.go +++ /dev/null @@ -1,177 +0,0 @@ -package client - -import ( - "math" - "strconv" - "time" - - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/internal/sdkrand" -) - -// DefaultRetryer implements basic retry logic using exponential backoff for -// most services. If you want to implement custom retry logic, you can implement the -// request.Retryer interface. -// -type DefaultRetryer struct { - // Num max Retries is the number of max retries that will be performed. - // By default, this is zero. - NumMaxRetries int - - // MinRetryDelay is the minimum retry delay after which retry will be performed. - // If not set, the value is 0ns. - MinRetryDelay time.Duration - - // MinThrottleRetryDelay is the minimum retry delay when throttled. - // If not set, the value is 0ns. - MinThrottleDelay time.Duration - - // MaxRetryDelay is the maximum retry delay before which retry must be performed. - // If not set, the value is 0ns. - MaxRetryDelay time.Duration - - // MaxThrottleDelay is the maximum retry delay when throttled. - // If not set, the value is 0ns. - MaxThrottleDelay time.Duration -} - -const ( - // DefaultRetryerMaxNumRetries sets maximum number of retries - DefaultRetryerMaxNumRetries = 3 - - // DefaultRetryerMinRetryDelay sets minimum retry delay - DefaultRetryerMinRetryDelay = 30 * time.Millisecond - - // DefaultRetryerMinThrottleDelay sets minimum delay when throttled - DefaultRetryerMinThrottleDelay = 500 * time.Millisecond - - // DefaultRetryerMaxRetryDelay sets maximum retry delay - DefaultRetryerMaxRetryDelay = 300 * time.Second - - // DefaultRetryerMaxThrottleDelay sets maximum delay when throttled - DefaultRetryerMaxThrottleDelay = 300 * time.Second -) - -// MaxRetries returns the number of maximum returns the service will use to make -// an individual API request. -func (d DefaultRetryer) MaxRetries() int { - return d.NumMaxRetries -} - -// setRetryerDefaults sets the default values of the retryer if not set -func (d *DefaultRetryer) setRetryerDefaults() { - if d.MinRetryDelay == 0 { - d.MinRetryDelay = DefaultRetryerMinRetryDelay - } - if d.MaxRetryDelay == 0 { - d.MaxRetryDelay = DefaultRetryerMaxRetryDelay - } - if d.MinThrottleDelay == 0 { - d.MinThrottleDelay = DefaultRetryerMinThrottleDelay - } - if d.MaxThrottleDelay == 0 { - d.MaxThrottleDelay = DefaultRetryerMaxThrottleDelay - } -} - -// RetryRules returns the delay duration before retrying this request again -func (d DefaultRetryer) RetryRules(r *request.Request) time.Duration { - - // if number of max retries is zero, no retries will be performed. - if d.NumMaxRetries == 0 { - return 0 - } - - // Sets default value for retryer members - d.setRetryerDefaults() - - // minDelay is the minimum retryer delay - minDelay := d.MinRetryDelay - - var initialDelay time.Duration - - isThrottle := r.IsErrorThrottle() - if isThrottle { - if delay, ok := getRetryAfterDelay(r); ok { - initialDelay = delay - } - minDelay = d.MinThrottleDelay - } - - retryCount := r.RetryCount - - // maxDelay the maximum retryer delay - maxDelay := d.MaxRetryDelay - - if isThrottle { - maxDelay = d.MaxThrottleDelay - } - - var delay time.Duration - - // Logic to cap the retry count based on the minDelay provided - actualRetryCount := int(math.Log2(float64(minDelay))) + 1 - if actualRetryCount < 63-retryCount { - delay = time.Duration(1< maxDelay { - delay = getJitterDelay(maxDelay / 2) - } - } else { - delay = getJitterDelay(maxDelay / 2) - } - return delay + initialDelay -} - -// getJitterDelay returns a jittered delay for retry -func getJitterDelay(duration time.Duration) time.Duration { - return time.Duration(sdkrand.SeededRand.Int63n(int64(duration)) + int64(duration)) -} - -// ShouldRetry returns true if the request should be retried. -func (d DefaultRetryer) ShouldRetry(r *request.Request) bool { - - // ShouldRetry returns false if number of max retries is 0. - if d.NumMaxRetries == 0 { - return false - } - - // If one of the other handlers already set the retry state - // we don't want to override it based on the service's state - if r.Retryable != nil { - return *r.Retryable - } - return r.IsErrorRetryable() || r.IsErrorThrottle() -} - -// This will look in the Retry-After header, RFC 7231, for how long -// it will wait before attempting another request -func getRetryAfterDelay(r *request.Request) (time.Duration, bool) { - if !canUseRetryAfterHeader(r) { - return 0, false - } - - delayStr := r.HTTPResponse.Header.Get("Retry-After") - if len(delayStr) == 0 { - return 0, false - } - - delay, err := strconv.Atoi(delayStr) - if err != nil { - return 0, false - } - - return time.Duration(delay) * time.Second, true -} - -// Will look at the status code to see if the retry header pertains to -// the status code. -func canUseRetryAfterHeader(r *request.Request) bool { - switch r.HTTPResponse.StatusCode { - case 429: - case 503: - default: - return false - } - - return true -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/client/logger.go b/vendor/github.com/aws/aws-sdk-go/aws/client/logger.go deleted file mode 100644 index 1d774cf..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/client/logger.go +++ /dev/null @@ -1,202 +0,0 @@ -package client - -import ( - "bytes" - "fmt" - "io" - "io/ioutil" - "net/http/httputil" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/request" -) - -const logReqMsg = `DEBUG: Request %s/%s Details: ----[ REQUEST POST-SIGN ]----------------------------- -%s ------------------------------------------------------` - -const logReqErrMsg = `DEBUG ERROR: Request %s/%s: ----[ REQUEST DUMP ERROR ]----------------------------- -%s -------------------------------------------------------` - -type logWriter struct { - // Logger is what we will use to log the payload of a response. - Logger aws.Logger - // buf stores the contents of what has been read - buf *bytes.Buffer -} - -func (logger *logWriter) Write(b []byte) (int, error) { - return logger.buf.Write(b) -} - -type teeReaderCloser struct { - // io.Reader will be a tee reader that is used during logging. - // This structure will read from a body and write the contents to a logger. - io.Reader - // Source is used just to close when we are done reading. - Source io.ReadCloser -} - -func (reader *teeReaderCloser) Close() error { - return reader.Source.Close() -} - -// LogHTTPRequestHandler is a SDK request handler to log the HTTP request sent -// to a service. Will include the HTTP request body if the LogLevel of the -// request matches LogDebugWithHTTPBody. -var LogHTTPRequestHandler = request.NamedHandler{ - Name: "awssdk.client.LogRequest", - Fn: logRequest, -} - -func logRequest(r *request.Request) { - if !r.Config.LogLevel.AtLeast(aws.LogDebug) { - return - } - - logBody := r.Config.LogLevel.Matches(aws.LogDebugWithHTTPBody) - bodySeekable := aws.IsReaderSeekable(r.Body) - - b, err := httputil.DumpRequestOut(r.HTTPRequest, logBody) - if err != nil { - r.Config.Logger.Log(fmt.Sprintf(logReqErrMsg, - r.ClientInfo.ServiceName, r.Operation.Name, err)) - return - } - - if logBody { - if !bodySeekable { - r.SetReaderBody(aws.ReadSeekCloser(r.HTTPRequest.Body)) - } - // Reset the request body because dumpRequest will re-wrap the - // r.HTTPRequest's Body as a NoOpCloser and will not be reset after - // read by the HTTP client reader. - if err := r.Error; err != nil { - r.Config.Logger.Log(fmt.Sprintf(logReqErrMsg, - r.ClientInfo.ServiceName, r.Operation.Name, err)) - return - } - } - - r.Config.Logger.Log(fmt.Sprintf(logReqMsg, - r.ClientInfo.ServiceName, r.Operation.Name, string(b))) -} - -// LogHTTPRequestHeaderHandler is a SDK request handler to log the HTTP request sent -// to a service. Will only log the HTTP request's headers. The request payload -// will not be read. -var LogHTTPRequestHeaderHandler = request.NamedHandler{ - Name: "awssdk.client.LogRequestHeader", - Fn: logRequestHeader, -} - -func logRequestHeader(r *request.Request) { - b, err := httputil.DumpRequestOut(r.HTTPRequest, false) - if err != nil { - r.Config.Logger.Log(fmt.Sprintf(logReqErrMsg, - r.ClientInfo.ServiceName, r.Operation.Name, err)) - return - } - - r.Config.Logger.Log(fmt.Sprintf(logReqMsg, - r.ClientInfo.ServiceName, r.Operation.Name, string(b))) -} - -const logRespMsg = `DEBUG: Response %s/%s Details: ----[ RESPONSE ]-------------------------------------- -%s ------------------------------------------------------` - -const logRespErrMsg = `DEBUG ERROR: Response %s/%s: ----[ RESPONSE DUMP ERROR ]----------------------------- -%s ------------------------------------------------------` - -// LogHTTPResponseHandler is a SDK request handler to log the HTTP response -// received from a service. Will include the HTTP response body if the LogLevel -// of the request matches LogDebugWithHTTPBody. -var LogHTTPResponseHandler = request.NamedHandler{ - Name: "awssdk.client.LogResponse", - Fn: logResponse, -} - -func logResponse(r *request.Request) { - if !r.Config.LogLevel.AtLeast(aws.LogDebug) { - return - } - - lw := &logWriter{r.Config.Logger, bytes.NewBuffer(nil)} - - if r.HTTPResponse == nil { - lw.Logger.Log(fmt.Sprintf(logRespErrMsg, - r.ClientInfo.ServiceName, r.Operation.Name, "request's HTTPResponse is nil")) - return - } - - logBody := r.Config.LogLevel.Matches(aws.LogDebugWithHTTPBody) - if logBody { - r.HTTPResponse.Body = &teeReaderCloser{ - Reader: io.TeeReader(r.HTTPResponse.Body, lw), - Source: r.HTTPResponse.Body, - } - } - - handlerFn := func(req *request.Request) { - b, err := httputil.DumpResponse(req.HTTPResponse, false) - if err != nil { - lw.Logger.Log(fmt.Sprintf(logRespErrMsg, - req.ClientInfo.ServiceName, req.Operation.Name, err)) - return - } - - lw.Logger.Log(fmt.Sprintf(logRespMsg, - req.ClientInfo.ServiceName, req.Operation.Name, string(b))) - - if logBody { - b, err := ioutil.ReadAll(lw.buf) - if err != nil { - lw.Logger.Log(fmt.Sprintf(logRespErrMsg, - req.ClientInfo.ServiceName, req.Operation.Name, err)) - return - } - - lw.Logger.Log(string(b)) - } - } - - const handlerName = "awsdk.client.LogResponse.ResponseBody" - - r.Handlers.Unmarshal.SetBackNamed(request.NamedHandler{ - Name: handlerName, Fn: handlerFn, - }) - r.Handlers.UnmarshalError.SetBackNamed(request.NamedHandler{ - Name: handlerName, Fn: handlerFn, - }) -} - -// LogHTTPResponseHeaderHandler is a SDK request handler to log the HTTP -// response received from a service. Will only log the HTTP response's headers. -// The response payload will not be read. -var LogHTTPResponseHeaderHandler = request.NamedHandler{ - Name: "awssdk.client.LogResponseHeader", - Fn: logResponseHeader, -} - -func logResponseHeader(r *request.Request) { - if r.Config.Logger == nil { - return - } - - b, err := httputil.DumpResponse(r.HTTPResponse, false) - if err != nil { - r.Config.Logger.Log(fmt.Sprintf(logRespErrMsg, - r.ClientInfo.ServiceName, r.Operation.Name, err)) - return - } - - r.Config.Logger.Log(fmt.Sprintf(logRespMsg, - r.ClientInfo.ServiceName, r.Operation.Name, string(b))) -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/client/metadata/client_info.go b/vendor/github.com/aws/aws-sdk-go/aws/client/metadata/client_info.go deleted file mode 100644 index 0c48f72..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/client/metadata/client_info.go +++ /dev/null @@ -1,14 +0,0 @@ -package metadata - -// ClientInfo wraps immutable data from the client.Client structure. -type ClientInfo struct { - ServiceName string - ServiceID string - APIVersion string - PartitionID string - Endpoint string - SigningName string - SigningRegion string - JSONVersion string - TargetPrefix string -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/client/no_op_retryer.go b/vendor/github.com/aws/aws-sdk-go/aws/client/no_op_retryer.go deleted file mode 100644 index 881d575..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/client/no_op_retryer.go +++ /dev/null @@ -1,28 +0,0 @@ -package client - -import ( - "time" - - "github.com/aws/aws-sdk-go/aws/request" -) - -// NoOpRetryer provides a retryer that performs no retries. -// It should be used when we do not want retries to be performed. -type NoOpRetryer struct{} - -// MaxRetries returns the number of maximum returns the service will use to make -// an individual API; For NoOpRetryer the MaxRetries will always be zero. -func (d NoOpRetryer) MaxRetries() int { - return 0 -} - -// ShouldRetry will always return false for NoOpRetryer, as it should never retry. -func (d NoOpRetryer) ShouldRetry(_ *request.Request) bool { - return false -} - -// RetryRules returns the delay duration before retrying this request again; -// since NoOpRetryer does not retry, RetryRules always returns 0. -func (d NoOpRetryer) RetryRules(_ *request.Request) time.Duration { - return 0 -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/config.go b/vendor/github.com/aws/aws-sdk-go/aws/config.go deleted file mode 100644 index 39fa6d5..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/config.go +++ /dev/null @@ -1,605 +0,0 @@ -package aws - -import ( - "net/http" - "time" - - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/endpoints" -) - -// UseServiceDefaultRetries instructs the config to use the service's own -// default number of retries. This will be the default action if -// Config.MaxRetries is nil also. -const UseServiceDefaultRetries = -1 - -// RequestRetryer is an alias for a type that implements the request.Retryer -// interface. -type RequestRetryer interface{} - -// A Config provides service configuration for service clients. By default, -// all clients will use the defaults.DefaultConfig structure. -// -// // Create Session with MaxRetries configuration to be shared by multiple -// // service clients. -// sess := session.Must(session.NewSession(&aws.Config{ -// MaxRetries: aws.Int(3), -// })) -// -// // Create S3 service client with a specific Region. -// svc := s3.New(sess, &aws.Config{ -// Region: aws.String("us-west-2"), -// }) -type Config struct { - // Enables verbose error printing of all credential chain errors. - // Should be used when wanting to see all errors while attempting to - // retrieve credentials. - CredentialsChainVerboseErrors *bool - - // The credentials object to use when signing requests. Defaults to a - // chain of credential providers to search for credentials in environment - // variables, shared credential file, and EC2 Instance Roles. - Credentials *credentials.Credentials - - // An optional endpoint URL (hostname only or fully qualified URI) - // that overrides the default generated endpoint for a client. Set this - // to `nil` or the value to `""` to use the default generated endpoint. - // - // Note: You must still provide a `Region` value when specifying an - // endpoint for a client. - Endpoint *string - - // The resolver to use for looking up endpoints for AWS service clients - // to use based on region. - EndpointResolver endpoints.Resolver - - // EnforceShouldRetryCheck is used in the AfterRetryHandler to always call - // ShouldRetry regardless of whether or not if request.Retryable is set. - // This will utilize ShouldRetry method of custom retryers. If EnforceShouldRetryCheck - // is not set, then ShouldRetry will only be called if request.Retryable is nil. - // Proper handling of the request.Retryable field is important when setting this field. - EnforceShouldRetryCheck *bool - - // The region to send requests to. This parameter is required and must - // be configured globally or on a per-client basis unless otherwise - // noted. A full list of regions is found in the "Regions and Endpoints" - // document. - // - // See http://docs.aws.amazon.com/general/latest/gr/rande.html for AWS - // Regions and Endpoints. - Region *string - - // Set this to `true` to disable SSL when sending requests. Defaults - // to `false`. - DisableSSL *bool - - // The HTTP client to use when sending requests. Defaults to - // `http.DefaultClient`. - HTTPClient *http.Client - - // An integer value representing the logging level. The default log level - // is zero (LogOff), which represents no logging. To enable logging set - // to a LogLevel Value. - LogLevel *LogLevelType - - // The logger writer interface to write logging messages to. Defaults to - // standard out. - Logger Logger - - // The maximum number of times that a request will be retried for failures. - // Defaults to -1, which defers the max retry setting to the service - // specific configuration. - MaxRetries *int - - // Retryer guides how HTTP requests should be retried in case of - // recoverable failures. - // - // When nil or the value does not implement the request.Retryer interface, - // the client.DefaultRetryer will be used. - // - // When both Retryer and MaxRetries are non-nil, the former is used and - // the latter ignored. - // - // To set the Retryer field in a type-safe manner and with chaining, use - // the request.WithRetryer helper function: - // - // cfg := request.WithRetryer(aws.NewConfig(), myRetryer) - // - Retryer RequestRetryer - - // Disables semantic parameter validation, which validates input for - // missing required fields and/or other semantic request input errors. - DisableParamValidation *bool - - // Disables the computation of request and response checksums, e.g., - // CRC32 checksums in Amazon DynamoDB. - DisableComputeChecksums *bool - - // Set this to `true` to force the request to use path-style addressing, - // i.e., `http://s3.amazonaws.com/BUCKET/KEY`. By default, the S3 client - // will use virtual hosted bucket addressing when possible - // (`http://BUCKET.s3.amazonaws.com/KEY`). - // - // Note: This configuration option is specific to the Amazon S3 service. - // - // See http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html - // for Amazon S3: Virtual Hosting of Buckets - S3ForcePathStyle *bool - - // Set this to `true` to disable the SDK adding the `Expect: 100-Continue` - // header to PUT requests over 2MB of content. 100-Continue instructs the - // HTTP client not to send the body until the service responds with a - // `continue` status. This is useful to prevent sending the request body - // until after the request is authenticated, and validated. - // - // http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html - // - // 100-Continue is only enabled for Go 1.6 and above. See `http.Transport`'s - // `ExpectContinueTimeout` for information on adjusting the continue wait - // timeout. https://golang.org/pkg/net/http/#Transport - // - // You should use this flag to disable 100-Continue if you experience issues - // with proxies or third party S3 compatible services. - S3Disable100Continue *bool - - // Set this to `true` to enable S3 Accelerate feature. For all operations - // compatible with S3 Accelerate will use the accelerate endpoint for - // requests. Requests not compatible will fall back to normal S3 requests. - // - // The bucket must be enable for accelerate to be used with S3 client with - // accelerate enabled. If the bucket is not enabled for accelerate an error - // will be returned. The bucket name must be DNS compatible to also work - // with accelerate. - S3UseAccelerate *bool - - // S3DisableContentMD5Validation config option is temporarily disabled, - // For S3 GetObject API calls, #1837. - // - // Set this to `true` to disable the S3 service client from automatically - // adding the ContentMD5 to S3 Object Put and Upload API calls. This option - // will also disable the SDK from performing object ContentMD5 validation - // on GetObject API calls. - S3DisableContentMD5Validation *bool - - // Set this to `true` to have the S3 service client to use the region specified - // in the ARN, when an ARN is provided as an argument to a bucket parameter. - S3UseARNRegion *bool - - // Set this to `true` to enable the SDK to unmarshal API response header maps to - // normalized lower case map keys. - // - // For example S3's X-Amz-Meta prefixed header will be unmarshaled to lower case - // Metadata member's map keys. The value of the header in the map is unaffected. - LowerCaseHeaderMaps *bool - - // Set this to `true` to disable the EC2Metadata client from overriding the - // default http.Client's Timeout. This is helpful if you do not want the - // EC2Metadata client to create a new http.Client. This options is only - // meaningful if you're not already using a custom HTTP client with the - // SDK. Enabled by default. - // - // Must be set and provided to the session.NewSession() in order to disable - // the EC2Metadata overriding the timeout for default credentials chain. - // - // Example: - // sess := session.Must(session.NewSession(aws.NewConfig() - // .WithEC2MetadataDisableTimeoutOverride(true))) - // - // svc := s3.New(sess) - // - EC2MetadataDisableTimeoutOverride *bool - - // Instructs the endpoint to be generated for a service client to - // be the dual stack endpoint. The dual stack endpoint will support - // both IPv4 and IPv6 addressing. - // - // Setting this for a service which does not support dual stack will fail - // to make requests. It is not recommended to set this value on the session - // as it will apply to all service clients created with the session. Even - // services which don't support dual stack endpoints. - // - // If the Endpoint config value is also provided the UseDualStack flag - // will be ignored. - // - // Only supported with. - // - // sess := session.Must(session.NewSession()) - // - // svc := s3.New(sess, &aws.Config{ - // UseDualStack: aws.Bool(true), - // }) - UseDualStack *bool - - // SleepDelay is an override for the func the SDK will call when sleeping - // during the lifecycle of a request. Specifically this will be used for - // request delays. This value should only be used for testing. To adjust - // the delay of a request see the aws/client.DefaultRetryer and - // aws/request.Retryer. - // - // SleepDelay will prevent any Context from being used for canceling retry - // delay of an API operation. It is recommended to not use SleepDelay at all - // and specify a Retryer instead. - SleepDelay func(time.Duration) - - // DisableRestProtocolURICleaning will not clean the URL path when making rest protocol requests. - // Will default to false. This would only be used for empty directory names in s3 requests. - // - // Example: - // sess := session.Must(session.NewSession(&aws.Config{ - // DisableRestProtocolURICleaning: aws.Bool(true), - // })) - // - // svc := s3.New(sess) - // out, err := svc.GetObject(&s3.GetObjectInput { - // Bucket: aws.String("bucketname"), - // Key: aws.String("//foo//bar//moo"), - // }) - DisableRestProtocolURICleaning *bool - - // EnableEndpointDiscovery will allow for endpoint discovery on operations that - // have the definition in its model. By default, endpoint discovery is off. - // To use EndpointDiscovery, Endpoint should be unset or set to an empty string. - // - // Example: - // sess := session.Must(session.NewSession(&aws.Config{ - // EnableEndpointDiscovery: aws.Bool(true), - // })) - // - // svc := s3.New(sess) - // out, err := svc.GetObject(&s3.GetObjectInput { - // Bucket: aws.String("bucketname"), - // Key: aws.String("/foo/bar/moo"), - // }) - EnableEndpointDiscovery *bool - - // DisableEndpointHostPrefix will disable the SDK's behavior of prefixing - // request endpoint hosts with modeled information. - // - // Disabling this feature is useful when you want to use local endpoints - // for testing that do not support the modeled host prefix pattern. - DisableEndpointHostPrefix *bool - - // STSRegionalEndpoint will enable regional or legacy endpoint resolving - STSRegionalEndpoint endpoints.STSRegionalEndpoint - - // S3UsEast1RegionalEndpoint will enable regional or legacy endpoint resolving - S3UsEast1RegionalEndpoint endpoints.S3UsEast1RegionalEndpoint -} - -// NewConfig returns a new Config pointer that can be chained with builder -// methods to set multiple configuration values inline without using pointers. -// -// // Create Session with MaxRetries configuration to be shared by multiple -// // service clients. -// sess := session.Must(session.NewSession(aws.NewConfig(). -// WithMaxRetries(3), -// )) -// -// // Create S3 service client with a specific Region. -// svc := s3.New(sess, aws.NewConfig(). -// WithRegion("us-west-2"), -// ) -func NewConfig() *Config { - return &Config{} -} - -// WithCredentialsChainVerboseErrors sets a config verbose errors boolean and returning -// a Config pointer. -func (c *Config) WithCredentialsChainVerboseErrors(verboseErrs bool) *Config { - c.CredentialsChainVerboseErrors = &verboseErrs - return c -} - -// WithCredentials sets a config Credentials value returning a Config pointer -// for chaining. -func (c *Config) WithCredentials(creds *credentials.Credentials) *Config { - c.Credentials = creds - return c -} - -// WithEndpoint sets a config Endpoint value returning a Config pointer for -// chaining. -func (c *Config) WithEndpoint(endpoint string) *Config { - c.Endpoint = &endpoint - return c -} - -// WithEndpointResolver sets a config EndpointResolver value returning a -// Config pointer for chaining. -func (c *Config) WithEndpointResolver(resolver endpoints.Resolver) *Config { - c.EndpointResolver = resolver - return c -} - -// WithRegion sets a config Region value returning a Config pointer for -// chaining. -func (c *Config) WithRegion(region string) *Config { - c.Region = ®ion - return c -} - -// WithDisableSSL sets a config DisableSSL value returning a Config pointer -// for chaining. -func (c *Config) WithDisableSSL(disable bool) *Config { - c.DisableSSL = &disable - return c -} - -// WithHTTPClient sets a config HTTPClient value returning a Config pointer -// for chaining. -func (c *Config) WithHTTPClient(client *http.Client) *Config { - c.HTTPClient = client - return c -} - -// WithMaxRetries sets a config MaxRetries value returning a Config pointer -// for chaining. -func (c *Config) WithMaxRetries(max int) *Config { - c.MaxRetries = &max - return c -} - -// WithDisableParamValidation sets a config DisableParamValidation value -// returning a Config pointer for chaining. -func (c *Config) WithDisableParamValidation(disable bool) *Config { - c.DisableParamValidation = &disable - return c -} - -// WithDisableComputeChecksums sets a config DisableComputeChecksums value -// returning a Config pointer for chaining. -func (c *Config) WithDisableComputeChecksums(disable bool) *Config { - c.DisableComputeChecksums = &disable - return c -} - -// WithLogLevel sets a config LogLevel value returning a Config pointer for -// chaining. -func (c *Config) WithLogLevel(level LogLevelType) *Config { - c.LogLevel = &level - return c -} - -// WithLogger sets a config Logger value returning a Config pointer for -// chaining. -func (c *Config) WithLogger(logger Logger) *Config { - c.Logger = logger - return c -} - -// WithS3ForcePathStyle sets a config S3ForcePathStyle value returning a Config -// pointer for chaining. -func (c *Config) WithS3ForcePathStyle(force bool) *Config { - c.S3ForcePathStyle = &force - return c -} - -// WithS3Disable100Continue sets a config S3Disable100Continue value returning -// a Config pointer for chaining. -func (c *Config) WithS3Disable100Continue(disable bool) *Config { - c.S3Disable100Continue = &disable - return c -} - -// WithS3UseAccelerate sets a config S3UseAccelerate value returning a Config -// pointer for chaining. -func (c *Config) WithS3UseAccelerate(enable bool) *Config { - c.S3UseAccelerate = &enable - return c - -} - -// WithS3DisableContentMD5Validation sets a config -// S3DisableContentMD5Validation value returning a Config pointer for chaining. -func (c *Config) WithS3DisableContentMD5Validation(enable bool) *Config { - c.S3DisableContentMD5Validation = &enable - return c - -} - -// WithS3UseARNRegion sets a config S3UseARNRegion value and -// returning a Config pointer for chaining -func (c *Config) WithS3UseARNRegion(enable bool) *Config { - c.S3UseARNRegion = &enable - return c -} - -// WithUseDualStack sets a config UseDualStack value returning a Config -// pointer for chaining. -func (c *Config) WithUseDualStack(enable bool) *Config { - c.UseDualStack = &enable - return c -} - -// WithEC2MetadataDisableTimeoutOverride sets a config EC2MetadataDisableTimeoutOverride value -// returning a Config pointer for chaining. -func (c *Config) WithEC2MetadataDisableTimeoutOverride(enable bool) *Config { - c.EC2MetadataDisableTimeoutOverride = &enable - return c -} - -// WithSleepDelay overrides the function used to sleep while waiting for the -// next retry. Defaults to time.Sleep. -func (c *Config) WithSleepDelay(fn func(time.Duration)) *Config { - c.SleepDelay = fn - return c -} - -// WithEndpointDiscovery will set whether or not to use endpoint discovery. -func (c *Config) WithEndpointDiscovery(t bool) *Config { - c.EnableEndpointDiscovery = &t - return c -} - -// WithDisableEndpointHostPrefix will set whether or not to use modeled host prefix -// when making requests. -func (c *Config) WithDisableEndpointHostPrefix(t bool) *Config { - c.DisableEndpointHostPrefix = &t - return c -} - -// WithSTSRegionalEndpoint will set whether or not to use regional endpoint flag -// when resolving the endpoint for a service -func (c *Config) WithSTSRegionalEndpoint(sre endpoints.STSRegionalEndpoint) *Config { - c.STSRegionalEndpoint = sre - return c -} - -// WithS3UsEast1RegionalEndpoint will set whether or not to use regional endpoint flag -// when resolving the endpoint for a service -func (c *Config) WithS3UsEast1RegionalEndpoint(sre endpoints.S3UsEast1RegionalEndpoint) *Config { - c.S3UsEast1RegionalEndpoint = sre - return c -} - -// WithLowerCaseHeaderMaps sets a config LowerCaseHeaderMaps value -// returning a Config pointer for chaining. -func (c *Config) WithLowerCaseHeaderMaps(t bool) *Config { - c.LowerCaseHeaderMaps = &t - return c -} - -// WithDisableRestProtocolURICleaning sets a config DisableRestProtocolURICleaning value -// returning a Config pointer for chaining. -func (c *Config) WithDisableRestProtocolURICleaning(t bool) *Config { - c.DisableRestProtocolURICleaning = &t - return c -} - -// MergeIn merges the passed in configs into the existing config object. -func (c *Config) MergeIn(cfgs ...*Config) { - for _, other := range cfgs { - mergeInConfig(c, other) - } -} - -func mergeInConfig(dst *Config, other *Config) { - if other == nil { - return - } - - if other.CredentialsChainVerboseErrors != nil { - dst.CredentialsChainVerboseErrors = other.CredentialsChainVerboseErrors - } - - if other.Credentials != nil { - dst.Credentials = other.Credentials - } - - if other.Endpoint != nil { - dst.Endpoint = other.Endpoint - } - - if other.EndpointResolver != nil { - dst.EndpointResolver = other.EndpointResolver - } - - if other.Region != nil { - dst.Region = other.Region - } - - if other.DisableSSL != nil { - dst.DisableSSL = other.DisableSSL - } - - if other.HTTPClient != nil { - dst.HTTPClient = other.HTTPClient - } - - if other.LogLevel != nil { - dst.LogLevel = other.LogLevel - } - - if other.Logger != nil { - dst.Logger = other.Logger - } - - if other.MaxRetries != nil { - dst.MaxRetries = other.MaxRetries - } - - if other.Retryer != nil { - dst.Retryer = other.Retryer - } - - if other.DisableParamValidation != nil { - dst.DisableParamValidation = other.DisableParamValidation - } - - if other.DisableComputeChecksums != nil { - dst.DisableComputeChecksums = other.DisableComputeChecksums - } - - if other.S3ForcePathStyle != nil { - dst.S3ForcePathStyle = other.S3ForcePathStyle - } - - if other.S3Disable100Continue != nil { - dst.S3Disable100Continue = other.S3Disable100Continue - } - - if other.S3UseAccelerate != nil { - dst.S3UseAccelerate = other.S3UseAccelerate - } - - if other.S3DisableContentMD5Validation != nil { - dst.S3DisableContentMD5Validation = other.S3DisableContentMD5Validation - } - - if other.S3UseARNRegion != nil { - dst.S3UseARNRegion = other.S3UseARNRegion - } - - if other.UseDualStack != nil { - dst.UseDualStack = other.UseDualStack - } - - if other.EC2MetadataDisableTimeoutOverride != nil { - dst.EC2MetadataDisableTimeoutOverride = other.EC2MetadataDisableTimeoutOverride - } - - if other.SleepDelay != nil { - dst.SleepDelay = other.SleepDelay - } - - if other.DisableRestProtocolURICleaning != nil { - dst.DisableRestProtocolURICleaning = other.DisableRestProtocolURICleaning - } - - if other.EnforceShouldRetryCheck != nil { - dst.EnforceShouldRetryCheck = other.EnforceShouldRetryCheck - } - - if other.EnableEndpointDiscovery != nil { - dst.EnableEndpointDiscovery = other.EnableEndpointDiscovery - } - - if other.DisableEndpointHostPrefix != nil { - dst.DisableEndpointHostPrefix = other.DisableEndpointHostPrefix - } - - if other.STSRegionalEndpoint != endpoints.UnsetSTSEndpoint { - dst.STSRegionalEndpoint = other.STSRegionalEndpoint - } - - if other.S3UsEast1RegionalEndpoint != endpoints.UnsetS3UsEast1Endpoint { - dst.S3UsEast1RegionalEndpoint = other.S3UsEast1RegionalEndpoint - } - - if other.LowerCaseHeaderMaps != nil { - dst.LowerCaseHeaderMaps = other.LowerCaseHeaderMaps - } -} - -// Copy will return a shallow copy of the Config object. If any additional -// configurations are provided they will be merged into the new config returned. -func (c *Config) Copy(cfgs ...*Config) *Config { - dst := &Config{} - dst.MergeIn(c) - - for _, cfg := range cfgs { - dst.MergeIn(cfg) - } - - return dst -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/context_1_5.go b/vendor/github.com/aws/aws-sdk-go/aws/context_1_5.go deleted file mode 100644 index 2866f9a..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/context_1_5.go +++ /dev/null @@ -1,37 +0,0 @@ -// +build !go1.9 - -package aws - -import "time" - -// Context is an copy of the Go v1.7 stdlib's context.Context interface. -// It is represented as a SDK interface to enable you to use the "WithContext" -// API methods with Go v1.6 and a Context type such as golang.org/x/net/context. -// -// See https://golang.org/pkg/context on how to use contexts. -type Context interface { - // Deadline returns the time when work done on behalf of this context - // should be canceled. Deadline returns ok==false when no deadline is - // set. Successive calls to Deadline return the same results. - Deadline() (deadline time.Time, ok bool) - - // Done returns a channel that's closed when work done on behalf of this - // context should be canceled. Done may return nil if this context can - // never be canceled. Successive calls to Done return the same value. - Done() <-chan struct{} - - // Err returns a non-nil error value after Done is closed. Err returns - // Canceled if the context was canceled or DeadlineExceeded if the - // context's deadline passed. No other values for Err are defined. - // After Done is closed, successive calls to Err return the same value. - Err() error - - // Value returns the value associated with this context for key, or nil - // if no value is associated with key. Successive calls to Value with - // the same key returns the same result. - // - // Use context values only for request-scoped data that transits - // processes and API boundaries, not for passing optional parameters to - // functions. - Value(key interface{}) interface{} -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/context_1_9.go b/vendor/github.com/aws/aws-sdk-go/aws/context_1_9.go deleted file mode 100644 index 3718b26..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/context_1_9.go +++ /dev/null @@ -1,11 +0,0 @@ -// +build go1.9 - -package aws - -import "context" - -// Context is an alias of the Go stdlib's context.Context interface. -// It can be used within the SDK's API operation "WithContext" methods. -// -// See https://golang.org/pkg/context on how to use contexts. -type Context = context.Context diff --git a/vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.go b/vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.go deleted file mode 100644 index 2f94463..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/context_background_1_5.go +++ /dev/null @@ -1,22 +0,0 @@ -// +build !go1.7 - -package aws - -import ( - "github.com/aws/aws-sdk-go/internal/context" -) - -// BackgroundContext returns a context that will never be canceled, has no -// values, and no deadline. This context is used by the SDK to provide -// backwards compatibility with non-context API operations and functionality. -// -// Go 1.6 and before: -// This context function is equivalent to context.Background in the Go stdlib. -// -// Go 1.7 and later: -// The context returned will be the value returned by context.Background() -// -// See https://golang.org/pkg/context for more information on Contexts. -func BackgroundContext() Context { - return context.BackgroundCtx -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/context_background_1_7.go b/vendor/github.com/aws/aws-sdk-go/aws/context_background_1_7.go deleted file mode 100644 index 9c29f29..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/context_background_1_7.go +++ /dev/null @@ -1,20 +0,0 @@ -// +build go1.7 - -package aws - -import "context" - -// BackgroundContext returns a context that will never be canceled, has no -// values, and no deadline. This context is used by the SDK to provide -// backwards compatibility with non-context API operations and functionality. -// -// Go 1.6 and before: -// This context function is equivalent to context.Background in the Go stdlib. -// -// Go 1.7 and later: -// The context returned will be the value returned by context.Background() -// -// See https://golang.org/pkg/context for more information on Contexts. -func BackgroundContext() Context { - return context.Background() -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/context_sleep.go b/vendor/github.com/aws/aws-sdk-go/aws/context_sleep.go deleted file mode 100644 index 304fd15..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/context_sleep.go +++ /dev/null @@ -1,24 +0,0 @@ -package aws - -import ( - "time" -) - -// SleepWithContext will wait for the timer duration to expire, or the context -// is canceled. Which ever happens first. If the context is canceled the Context's -// error will be returned. -// -// Expects Context to always return a non-nil error if the Done channel is closed. -func SleepWithContext(ctx Context, dur time.Duration) error { - t := time.NewTimer(dur) - defer t.Stop() - - select { - case <-t.C: - break - case <-ctx.Done(): - return ctx.Err() - } - - return nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/convert_types.go b/vendor/github.com/aws/aws-sdk-go/aws/convert_types.go deleted file mode 100644 index 4e076c1..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/convert_types.go +++ /dev/null @@ -1,918 +0,0 @@ -package aws - -import "time" - -// String returns a pointer to the string value passed in. -func String(v string) *string { - return &v -} - -// StringValue returns the value of the string pointer passed in or -// "" if the pointer is nil. -func StringValue(v *string) string { - if v != nil { - return *v - } - return "" -} - -// StringSlice converts a slice of string values into a slice of -// string pointers -func StringSlice(src []string) []*string { - dst := make([]*string, len(src)) - for i := 0; i < len(src); i++ { - dst[i] = &(src[i]) - } - return dst -} - -// StringValueSlice converts a slice of string pointers into a slice of -// string values -func StringValueSlice(src []*string) []string { - dst := make([]string, len(src)) - for i := 0; i < len(src); i++ { - if src[i] != nil { - dst[i] = *(src[i]) - } - } - return dst -} - -// StringMap converts a string map of string values into a string -// map of string pointers -func StringMap(src map[string]string) map[string]*string { - dst := make(map[string]*string) - for k, val := range src { - v := val - dst[k] = &v - } - return dst -} - -// StringValueMap converts a string map of string pointers into a string -// map of string values -func StringValueMap(src map[string]*string) map[string]string { - dst := make(map[string]string) - for k, val := range src { - if val != nil { - dst[k] = *val - } - } - return dst -} - -// Bool returns a pointer to the bool value passed in. -func Bool(v bool) *bool { - return &v -} - -// BoolValue returns the value of the bool pointer passed in or -// false if the pointer is nil. -func BoolValue(v *bool) bool { - if v != nil { - return *v - } - return false -} - -// BoolSlice converts a slice of bool values into a slice of -// bool pointers -func BoolSlice(src []bool) []*bool { - dst := make([]*bool, len(src)) - for i := 0; i < len(src); i++ { - dst[i] = &(src[i]) - } - return dst -} - -// BoolValueSlice converts a slice of bool pointers into a slice of -// bool values -func BoolValueSlice(src []*bool) []bool { - dst := make([]bool, len(src)) - for i := 0; i < len(src); i++ { - if src[i] != nil { - dst[i] = *(src[i]) - } - } - return dst -} - -// BoolMap converts a string map of bool values into a string -// map of bool pointers -func BoolMap(src map[string]bool) map[string]*bool { - dst := make(map[string]*bool) - for k, val := range src { - v := val - dst[k] = &v - } - return dst -} - -// BoolValueMap converts a string map of bool pointers into a string -// map of bool values -func BoolValueMap(src map[string]*bool) map[string]bool { - dst := make(map[string]bool) - for k, val := range src { - if val != nil { - dst[k] = *val - } - } - return dst -} - -// Int returns a pointer to the int value passed in. -func Int(v int) *int { - return &v -} - -// IntValue returns the value of the int pointer passed in or -// 0 if the pointer is nil. -func IntValue(v *int) int { - if v != nil { - return *v - } - return 0 -} - -// IntSlice converts a slice of int values into a slice of -// int pointers -func IntSlice(src []int) []*int { - dst := make([]*int, len(src)) - for i := 0; i < len(src); i++ { - dst[i] = &(src[i]) - } - return dst -} - -// IntValueSlice converts a slice of int pointers into a slice of -// int values -func IntValueSlice(src []*int) []int { - dst := make([]int, len(src)) - for i := 0; i < len(src); i++ { - if src[i] != nil { - dst[i] = *(src[i]) - } - } - return dst -} - -// IntMap converts a string map of int values into a string -// map of int pointers -func IntMap(src map[string]int) map[string]*int { - dst := make(map[string]*int) - for k, val := range src { - v := val - dst[k] = &v - } - return dst -} - -// IntValueMap converts a string map of int pointers into a string -// map of int values -func IntValueMap(src map[string]*int) map[string]int { - dst := make(map[string]int) - for k, val := range src { - if val != nil { - dst[k] = *val - } - } - return dst -} - -// Uint returns a pointer to the uint value passed in. -func Uint(v uint) *uint { - return &v -} - -// UintValue returns the value of the uint pointer passed in or -// 0 if the pointer is nil. -func UintValue(v *uint) uint { - if v != nil { - return *v - } - return 0 -} - -// UintSlice converts a slice of uint values uinto a slice of -// uint pointers -func UintSlice(src []uint) []*uint { - dst := make([]*uint, len(src)) - for i := 0; i < len(src); i++ { - dst[i] = &(src[i]) - } - return dst -} - -// UintValueSlice converts a slice of uint pointers uinto a slice of -// uint values -func UintValueSlice(src []*uint) []uint { - dst := make([]uint, len(src)) - for i := 0; i < len(src); i++ { - if src[i] != nil { - dst[i] = *(src[i]) - } - } - return dst -} - -// UintMap converts a string map of uint values uinto a string -// map of uint pointers -func UintMap(src map[string]uint) map[string]*uint { - dst := make(map[string]*uint) - for k, val := range src { - v := val - dst[k] = &v - } - return dst -} - -// UintValueMap converts a string map of uint pointers uinto a string -// map of uint values -func UintValueMap(src map[string]*uint) map[string]uint { - dst := make(map[string]uint) - for k, val := range src { - if val != nil { - dst[k] = *val - } - } - return dst -} - -// Int8 returns a pointer to the int8 value passed in. -func Int8(v int8) *int8 { - return &v -} - -// Int8Value returns the value of the int8 pointer passed in or -// 0 if the pointer is nil. -func Int8Value(v *int8) int8 { - if v != nil { - return *v - } - return 0 -} - -// Int8Slice converts a slice of int8 values into a slice of -// int8 pointers -func Int8Slice(src []int8) []*int8 { - dst := make([]*int8, len(src)) - for i := 0; i < len(src); i++ { - dst[i] = &(src[i]) - } - return dst -} - -// Int8ValueSlice converts a slice of int8 pointers into a slice of -// int8 values -func Int8ValueSlice(src []*int8) []int8 { - dst := make([]int8, len(src)) - for i := 0; i < len(src); i++ { - if src[i] != nil { - dst[i] = *(src[i]) - } - } - return dst -} - -// Int8Map converts a string map of int8 values into a string -// map of int8 pointers -func Int8Map(src map[string]int8) map[string]*int8 { - dst := make(map[string]*int8) - for k, val := range src { - v := val - dst[k] = &v - } - return dst -} - -// Int8ValueMap converts a string map of int8 pointers into a string -// map of int8 values -func Int8ValueMap(src map[string]*int8) map[string]int8 { - dst := make(map[string]int8) - for k, val := range src { - if val != nil { - dst[k] = *val - } - } - return dst -} - -// Int16 returns a pointer to the int16 value passed in. -func Int16(v int16) *int16 { - return &v -} - -// Int16Value returns the value of the int16 pointer passed in or -// 0 if the pointer is nil. -func Int16Value(v *int16) int16 { - if v != nil { - return *v - } - return 0 -} - -// Int16Slice converts a slice of int16 values into a slice of -// int16 pointers -func Int16Slice(src []int16) []*int16 { - dst := make([]*int16, len(src)) - for i := 0; i < len(src); i++ { - dst[i] = &(src[i]) - } - return dst -} - -// Int16ValueSlice converts a slice of int16 pointers into a slice of -// int16 values -func Int16ValueSlice(src []*int16) []int16 { - dst := make([]int16, len(src)) - for i := 0; i < len(src); i++ { - if src[i] != nil { - dst[i] = *(src[i]) - } - } - return dst -} - -// Int16Map converts a string map of int16 values into a string -// map of int16 pointers -func Int16Map(src map[string]int16) map[string]*int16 { - dst := make(map[string]*int16) - for k, val := range src { - v := val - dst[k] = &v - } - return dst -} - -// Int16ValueMap converts a string map of int16 pointers into a string -// map of int16 values -func Int16ValueMap(src map[string]*int16) map[string]int16 { - dst := make(map[string]int16) - for k, val := range src { - if val != nil { - dst[k] = *val - } - } - return dst -} - -// Int32 returns a pointer to the int32 value passed in. -func Int32(v int32) *int32 { - return &v -} - -// Int32Value returns the value of the int32 pointer passed in or -// 0 if the pointer is nil. -func Int32Value(v *int32) int32 { - if v != nil { - return *v - } - return 0 -} - -// Int32Slice converts a slice of int32 values into a slice of -// int32 pointers -func Int32Slice(src []int32) []*int32 { - dst := make([]*int32, len(src)) - for i := 0; i < len(src); i++ { - dst[i] = &(src[i]) - } - return dst -} - -// Int32ValueSlice converts a slice of int32 pointers into a slice of -// int32 values -func Int32ValueSlice(src []*int32) []int32 { - dst := make([]int32, len(src)) - for i := 0; i < len(src); i++ { - if src[i] != nil { - dst[i] = *(src[i]) - } - } - return dst -} - -// Int32Map converts a string map of int32 values into a string -// map of int32 pointers -func Int32Map(src map[string]int32) map[string]*int32 { - dst := make(map[string]*int32) - for k, val := range src { - v := val - dst[k] = &v - } - return dst -} - -// Int32ValueMap converts a string map of int32 pointers into a string -// map of int32 values -func Int32ValueMap(src map[string]*int32) map[string]int32 { - dst := make(map[string]int32) - for k, val := range src { - if val != nil { - dst[k] = *val - } - } - return dst -} - -// Int64 returns a pointer to the int64 value passed in. -func Int64(v int64) *int64 { - return &v -} - -// Int64Value returns the value of the int64 pointer passed in or -// 0 if the pointer is nil. -func Int64Value(v *int64) int64 { - if v != nil { - return *v - } - return 0 -} - -// Int64Slice converts a slice of int64 values into a slice of -// int64 pointers -func Int64Slice(src []int64) []*int64 { - dst := make([]*int64, len(src)) - for i := 0; i < len(src); i++ { - dst[i] = &(src[i]) - } - return dst -} - -// Int64ValueSlice converts a slice of int64 pointers into a slice of -// int64 values -func Int64ValueSlice(src []*int64) []int64 { - dst := make([]int64, len(src)) - for i := 0; i < len(src); i++ { - if src[i] != nil { - dst[i] = *(src[i]) - } - } - return dst -} - -// Int64Map converts a string map of int64 values into a string -// map of int64 pointers -func Int64Map(src map[string]int64) map[string]*int64 { - dst := make(map[string]*int64) - for k, val := range src { - v := val - dst[k] = &v - } - return dst -} - -// Int64ValueMap converts a string map of int64 pointers into a string -// map of int64 values -func Int64ValueMap(src map[string]*int64) map[string]int64 { - dst := make(map[string]int64) - for k, val := range src { - if val != nil { - dst[k] = *val - } - } - return dst -} - -// Uint8 returns a pointer to the uint8 value passed in. -func Uint8(v uint8) *uint8 { - return &v -} - -// Uint8Value returns the value of the uint8 pointer passed in or -// 0 if the pointer is nil. -func Uint8Value(v *uint8) uint8 { - if v != nil { - return *v - } - return 0 -} - -// Uint8Slice converts a slice of uint8 values into a slice of -// uint8 pointers -func Uint8Slice(src []uint8) []*uint8 { - dst := make([]*uint8, len(src)) - for i := 0; i < len(src); i++ { - dst[i] = &(src[i]) - } - return dst -} - -// Uint8ValueSlice converts a slice of uint8 pointers into a slice of -// uint8 values -func Uint8ValueSlice(src []*uint8) []uint8 { - dst := make([]uint8, len(src)) - for i := 0; i < len(src); i++ { - if src[i] != nil { - dst[i] = *(src[i]) - } - } - return dst -} - -// Uint8Map converts a string map of uint8 values into a string -// map of uint8 pointers -func Uint8Map(src map[string]uint8) map[string]*uint8 { - dst := make(map[string]*uint8) - for k, val := range src { - v := val - dst[k] = &v - } - return dst -} - -// Uint8ValueMap converts a string map of uint8 pointers into a string -// map of uint8 values -func Uint8ValueMap(src map[string]*uint8) map[string]uint8 { - dst := make(map[string]uint8) - for k, val := range src { - if val != nil { - dst[k] = *val - } - } - return dst -} - -// Uint16 returns a pointer to the uint16 value passed in. -func Uint16(v uint16) *uint16 { - return &v -} - -// Uint16Value returns the value of the uint16 pointer passed in or -// 0 if the pointer is nil. -func Uint16Value(v *uint16) uint16 { - if v != nil { - return *v - } - return 0 -} - -// Uint16Slice converts a slice of uint16 values into a slice of -// uint16 pointers -func Uint16Slice(src []uint16) []*uint16 { - dst := make([]*uint16, len(src)) - for i := 0; i < len(src); i++ { - dst[i] = &(src[i]) - } - return dst -} - -// Uint16ValueSlice converts a slice of uint16 pointers into a slice of -// uint16 values -func Uint16ValueSlice(src []*uint16) []uint16 { - dst := make([]uint16, len(src)) - for i := 0; i < len(src); i++ { - if src[i] != nil { - dst[i] = *(src[i]) - } - } - return dst -} - -// Uint16Map converts a string map of uint16 values into a string -// map of uint16 pointers -func Uint16Map(src map[string]uint16) map[string]*uint16 { - dst := make(map[string]*uint16) - for k, val := range src { - v := val - dst[k] = &v - } - return dst -} - -// Uint16ValueMap converts a string map of uint16 pointers into a string -// map of uint16 values -func Uint16ValueMap(src map[string]*uint16) map[string]uint16 { - dst := make(map[string]uint16) - for k, val := range src { - if val != nil { - dst[k] = *val - } - } - return dst -} - -// Uint32 returns a pointer to the uint32 value passed in. -func Uint32(v uint32) *uint32 { - return &v -} - -// Uint32Value returns the value of the uint32 pointer passed in or -// 0 if the pointer is nil. -func Uint32Value(v *uint32) uint32 { - if v != nil { - return *v - } - return 0 -} - -// Uint32Slice converts a slice of uint32 values into a slice of -// uint32 pointers -func Uint32Slice(src []uint32) []*uint32 { - dst := make([]*uint32, len(src)) - for i := 0; i < len(src); i++ { - dst[i] = &(src[i]) - } - return dst -} - -// Uint32ValueSlice converts a slice of uint32 pointers into a slice of -// uint32 values -func Uint32ValueSlice(src []*uint32) []uint32 { - dst := make([]uint32, len(src)) - for i := 0; i < len(src); i++ { - if src[i] != nil { - dst[i] = *(src[i]) - } - } - return dst -} - -// Uint32Map converts a string map of uint32 values into a string -// map of uint32 pointers -func Uint32Map(src map[string]uint32) map[string]*uint32 { - dst := make(map[string]*uint32) - for k, val := range src { - v := val - dst[k] = &v - } - return dst -} - -// Uint32ValueMap converts a string map of uint32 pointers into a string -// map of uint32 values -func Uint32ValueMap(src map[string]*uint32) map[string]uint32 { - dst := make(map[string]uint32) - for k, val := range src { - if val != nil { - dst[k] = *val - } - } - return dst -} - -// Uint64 returns a pointer to the uint64 value passed in. -func Uint64(v uint64) *uint64 { - return &v -} - -// Uint64Value returns the value of the uint64 pointer passed in or -// 0 if the pointer is nil. -func Uint64Value(v *uint64) uint64 { - if v != nil { - return *v - } - return 0 -} - -// Uint64Slice converts a slice of uint64 values into a slice of -// uint64 pointers -func Uint64Slice(src []uint64) []*uint64 { - dst := make([]*uint64, len(src)) - for i := 0; i < len(src); i++ { - dst[i] = &(src[i]) - } - return dst -} - -// Uint64ValueSlice converts a slice of uint64 pointers into a slice of -// uint64 values -func Uint64ValueSlice(src []*uint64) []uint64 { - dst := make([]uint64, len(src)) - for i := 0; i < len(src); i++ { - if src[i] != nil { - dst[i] = *(src[i]) - } - } - return dst -} - -// Uint64Map converts a string map of uint64 values into a string -// map of uint64 pointers -func Uint64Map(src map[string]uint64) map[string]*uint64 { - dst := make(map[string]*uint64) - for k, val := range src { - v := val - dst[k] = &v - } - return dst -} - -// Uint64ValueMap converts a string map of uint64 pointers into a string -// map of uint64 values -func Uint64ValueMap(src map[string]*uint64) map[string]uint64 { - dst := make(map[string]uint64) - for k, val := range src { - if val != nil { - dst[k] = *val - } - } - return dst -} - -// Float32 returns a pointer to the float32 value passed in. -func Float32(v float32) *float32 { - return &v -} - -// Float32Value returns the value of the float32 pointer passed in or -// 0 if the pointer is nil. -func Float32Value(v *float32) float32 { - if v != nil { - return *v - } - return 0 -} - -// Float32Slice converts a slice of float32 values into a slice of -// float32 pointers -func Float32Slice(src []float32) []*float32 { - dst := make([]*float32, len(src)) - for i := 0; i < len(src); i++ { - dst[i] = &(src[i]) - } - return dst -} - -// Float32ValueSlice converts a slice of float32 pointers into a slice of -// float32 values -func Float32ValueSlice(src []*float32) []float32 { - dst := make([]float32, len(src)) - for i := 0; i < len(src); i++ { - if src[i] != nil { - dst[i] = *(src[i]) - } - } - return dst -} - -// Float32Map converts a string map of float32 values into a string -// map of float32 pointers -func Float32Map(src map[string]float32) map[string]*float32 { - dst := make(map[string]*float32) - for k, val := range src { - v := val - dst[k] = &v - } - return dst -} - -// Float32ValueMap converts a string map of float32 pointers into a string -// map of float32 values -func Float32ValueMap(src map[string]*float32) map[string]float32 { - dst := make(map[string]float32) - for k, val := range src { - if val != nil { - dst[k] = *val - } - } - return dst -} - -// Float64 returns a pointer to the float64 value passed in. -func Float64(v float64) *float64 { - return &v -} - -// Float64Value returns the value of the float64 pointer passed in or -// 0 if the pointer is nil. -func Float64Value(v *float64) float64 { - if v != nil { - return *v - } - return 0 -} - -// Float64Slice converts a slice of float64 values into a slice of -// float64 pointers -func Float64Slice(src []float64) []*float64 { - dst := make([]*float64, len(src)) - for i := 0; i < len(src); i++ { - dst[i] = &(src[i]) - } - return dst -} - -// Float64ValueSlice converts a slice of float64 pointers into a slice of -// float64 values -func Float64ValueSlice(src []*float64) []float64 { - dst := make([]float64, len(src)) - for i := 0; i < len(src); i++ { - if src[i] != nil { - dst[i] = *(src[i]) - } - } - return dst -} - -// Float64Map converts a string map of float64 values into a string -// map of float64 pointers -func Float64Map(src map[string]float64) map[string]*float64 { - dst := make(map[string]*float64) - for k, val := range src { - v := val - dst[k] = &v - } - return dst -} - -// Float64ValueMap converts a string map of float64 pointers into a string -// map of float64 values -func Float64ValueMap(src map[string]*float64) map[string]float64 { - dst := make(map[string]float64) - for k, val := range src { - if val != nil { - dst[k] = *val - } - } - return dst -} - -// Time returns a pointer to the time.Time value passed in. -func Time(v time.Time) *time.Time { - return &v -} - -// TimeValue returns the value of the time.Time pointer passed in or -// time.Time{} if the pointer is nil. -func TimeValue(v *time.Time) time.Time { - if v != nil { - return *v - } - return time.Time{} -} - -// SecondsTimeValue converts an int64 pointer to a time.Time value -// representing seconds since Epoch or time.Time{} if the pointer is nil. -func SecondsTimeValue(v *int64) time.Time { - if v != nil { - return time.Unix((*v / 1000), 0) - } - return time.Time{} -} - -// MillisecondsTimeValue converts an int64 pointer to a time.Time value -// representing milliseconds sinch Epoch or time.Time{} if the pointer is nil. -func MillisecondsTimeValue(v *int64) time.Time { - if v != nil { - return time.Unix(0, (*v * 1000000)) - } - return time.Time{} -} - -// TimeUnixMilli returns a Unix timestamp in milliseconds from "January 1, 1970 UTC". -// The result is undefined if the Unix time cannot be represented by an int64. -// Which includes calling TimeUnixMilli on a zero Time is undefined. -// -// This utility is useful for service API's such as CloudWatch Logs which require -// their unix time values to be in milliseconds. -// -// See Go stdlib https://golang.org/pkg/time/#Time.UnixNano for more information. -func TimeUnixMilli(t time.Time) int64 { - return t.UnixNano() / int64(time.Millisecond/time.Nanosecond) -} - -// TimeSlice converts a slice of time.Time values into a slice of -// time.Time pointers -func TimeSlice(src []time.Time) []*time.Time { - dst := make([]*time.Time, len(src)) - for i := 0; i < len(src); i++ { - dst[i] = &(src[i]) - } - return dst -} - -// TimeValueSlice converts a slice of time.Time pointers into a slice of -// time.Time values -func TimeValueSlice(src []*time.Time) []time.Time { - dst := make([]time.Time, len(src)) - for i := 0; i < len(src); i++ { - if src[i] != nil { - dst[i] = *(src[i]) - } - } - return dst -} - -// TimeMap converts a string map of time.Time values into a string -// map of time.Time pointers -func TimeMap(src map[string]time.Time) map[string]*time.Time { - dst := make(map[string]*time.Time) - for k, val := range src { - v := val - dst[k] = &v - } - return dst -} - -// TimeValueMap converts a string map of time.Time pointers into a string -// map of time.Time values -func TimeValueMap(src map[string]*time.Time) map[string]time.Time { - dst := make(map[string]time.Time) - for k, val := range src { - if val != nil { - dst[k] = *val - } - } - return dst -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go deleted file mode 100644 index d95a5eb..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go +++ /dev/null @@ -1,232 +0,0 @@ -package corehandlers - -import ( - "bytes" - "fmt" - "io/ioutil" - "net/http" - "net/url" - "regexp" - "strconv" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/request" -) - -// Interface for matching types which also have a Len method. -type lener interface { - Len() int -} - -// BuildContentLengthHandler builds the content length of a request based on the body, -// or will use the HTTPRequest.Header's "Content-Length" if defined. If unable -// to determine request body length and no "Content-Length" was specified it will panic. -// -// The Content-Length will only be added to the request if the length of the body -// is greater than 0. If the body is empty or the current `Content-Length` -// header is <= 0, the header will also be stripped. -var BuildContentLengthHandler = request.NamedHandler{Name: "core.BuildContentLengthHandler", Fn: func(r *request.Request) { - var length int64 - - if slength := r.HTTPRequest.Header.Get("Content-Length"); slength != "" { - length, _ = strconv.ParseInt(slength, 10, 64) - } else { - if r.Body != nil { - var err error - length, err = aws.SeekerLen(r.Body) - if err != nil { - r.Error = awserr.New(request.ErrCodeSerialization, "failed to get request body's length", err) - return - } - } - } - - if length > 0 { - r.HTTPRequest.ContentLength = length - r.HTTPRequest.Header.Set("Content-Length", fmt.Sprintf("%d", length)) - } else { - r.HTTPRequest.ContentLength = 0 - r.HTTPRequest.Header.Del("Content-Length") - } -}} - -var reStatusCode = regexp.MustCompile(`^(\d{3})`) - -// ValidateReqSigHandler is a request handler to ensure that the request's -// signature doesn't expire before it is sent. This can happen when a request -// is built and signed significantly before it is sent. Or significant delays -// occur when retrying requests that would cause the signature to expire. -var ValidateReqSigHandler = request.NamedHandler{ - Name: "core.ValidateReqSigHandler", - Fn: func(r *request.Request) { - // Unsigned requests are not signed - if r.Config.Credentials == credentials.AnonymousCredentials { - return - } - - signedTime := r.Time - if !r.LastSignedAt.IsZero() { - signedTime = r.LastSignedAt - } - - // 5 minutes to allow for some clock skew/delays in transmission. - // Would be improved with aws/aws-sdk-go#423 - if signedTime.Add(5 * time.Minute).After(time.Now()) { - return - } - - fmt.Println("request expired, resigning") - r.Sign() - }, -} - -// SendHandler is a request handler to send service request using HTTP client. -var SendHandler = request.NamedHandler{ - Name: "core.SendHandler", - Fn: func(r *request.Request) { - sender := sendFollowRedirects - if r.DisableFollowRedirects { - sender = sendWithoutFollowRedirects - } - - if request.NoBody == r.HTTPRequest.Body { - // Strip off the request body if the NoBody reader was used as a - // place holder for a request body. This prevents the SDK from - // making requests with a request body when it would be invalid - // to do so. - // - // Use a shallow copy of the http.Request to ensure the race condition - // of transport on Body will not trigger - reqOrig, reqCopy := r.HTTPRequest, *r.HTTPRequest - reqCopy.Body = nil - r.HTTPRequest = &reqCopy - defer func() { - r.HTTPRequest = reqOrig - }() - } - - var err error - r.HTTPResponse, err = sender(r) - if err != nil { - handleSendError(r, err) - } - }, -} - -func sendFollowRedirects(r *request.Request) (*http.Response, error) { - return r.Config.HTTPClient.Do(r.HTTPRequest) -} - -func sendWithoutFollowRedirects(r *request.Request) (*http.Response, error) { - transport := r.Config.HTTPClient.Transport - if transport == nil { - transport = http.DefaultTransport - } - - return transport.RoundTrip(r.HTTPRequest) -} - -func handleSendError(r *request.Request, err error) { - // Prevent leaking if an HTTPResponse was returned. Clean up - // the body. - if r.HTTPResponse != nil { - r.HTTPResponse.Body.Close() - } - // Capture the case where url.Error is returned for error processing - // response. e.g. 301 without location header comes back as string - // error and r.HTTPResponse is nil. Other URL redirect errors will - // comeback in a similar method. - if e, ok := err.(*url.Error); ok && e.Err != nil { - if s := reStatusCode.FindStringSubmatch(e.Err.Error()); s != nil { - code, _ := strconv.ParseInt(s[1], 10, 64) - r.HTTPResponse = &http.Response{ - StatusCode: int(code), - Status: http.StatusText(int(code)), - Body: ioutil.NopCloser(bytes.NewReader([]byte{})), - } - return - } - } - if r.HTTPResponse == nil { - // Add a dummy request response object to ensure the HTTPResponse - // value is consistent. - r.HTTPResponse = &http.Response{ - StatusCode: int(0), - Status: http.StatusText(int(0)), - Body: ioutil.NopCloser(bytes.NewReader([]byte{})), - } - } - // Catch all request errors, and let the default retrier determine - // if the error is retryable. - r.Error = awserr.New(request.ErrCodeRequestError, "send request failed", err) - - // Override the error with a context canceled error, if that was canceled. - ctx := r.Context() - select { - case <-ctx.Done(): - r.Error = awserr.New(request.CanceledErrorCode, - "request context canceled", ctx.Err()) - r.Retryable = aws.Bool(false) - default: - } -} - -// ValidateResponseHandler is a request handler to validate service response. -var ValidateResponseHandler = request.NamedHandler{Name: "core.ValidateResponseHandler", Fn: func(r *request.Request) { - if r.HTTPResponse.StatusCode == 0 || r.HTTPResponse.StatusCode >= 300 { - // this may be replaced by an UnmarshalError handler - r.Error = awserr.New("UnknownError", "unknown error", nil) - } -}} - -// AfterRetryHandler performs final checks to determine if the request should -// be retried and how long to delay. -var AfterRetryHandler = request.NamedHandler{ - Name: "core.AfterRetryHandler", - Fn: func(r *request.Request) { - // If one of the other handlers already set the retry state - // we don't want to override it based on the service's state - if r.Retryable == nil || aws.BoolValue(r.Config.EnforceShouldRetryCheck) { - r.Retryable = aws.Bool(r.ShouldRetry(r)) - } - - if r.WillRetry() { - r.RetryDelay = r.RetryRules(r) - - if sleepFn := r.Config.SleepDelay; sleepFn != nil { - // Support SleepDelay for backwards compatibility and testing - sleepFn(r.RetryDelay) - } else if err := aws.SleepWithContext(r.Context(), r.RetryDelay); err != nil { - r.Error = awserr.New(request.CanceledErrorCode, - "request context canceled", err) - r.Retryable = aws.Bool(false) - return - } - - // when the expired token exception occurs the credentials - // need to be expired locally so that the next request to - // get credentials will trigger a credentials refresh. - if r.IsErrorExpired() { - r.Config.Credentials.Expire() - } - - r.RetryCount++ - r.Error = nil - } - }} - -// ValidateEndpointHandler is a request handler to validate a request had the -// appropriate Region and Endpoint set. Will set r.Error if the endpoint or -// region is not valid. -var ValidateEndpointHandler = request.NamedHandler{Name: "core.ValidateEndpointHandler", Fn: func(r *request.Request) { - if r.ClientInfo.SigningRegion == "" && aws.StringValue(r.Config.Region) == "" { - r.Error = aws.ErrMissingRegion - } else if r.ClientInfo.Endpoint == "" { - // Was any endpoint provided by the user, or one was derived by the - // SDK's endpoint resolver? - r.Error = aws.ErrMissingEndpoint - } -}} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/param_validator.go b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/param_validator.go deleted file mode 100644 index 7d50b15..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/param_validator.go +++ /dev/null @@ -1,17 +0,0 @@ -package corehandlers - -import "github.com/aws/aws-sdk-go/aws/request" - -// ValidateParametersHandler is a request handler to validate the input parameters. -// Validating parameters only has meaning if done prior to the request being sent. -var ValidateParametersHandler = request.NamedHandler{Name: "core.ValidateParametersHandler", Fn: func(r *request.Request) { - if !r.ParamsFilled() { - return - } - - if v, ok := r.Params.(request.Validator); ok { - if err := v.Validate(); err != nil { - r.Error = err - } - } -}} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go deleted file mode 100644 index ab69c7a..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go +++ /dev/null @@ -1,37 +0,0 @@ -package corehandlers - -import ( - "os" - "runtime" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/request" -) - -// SDKVersionUserAgentHandler is a request handler for adding the SDK Version -// to the user agent. -var SDKVersionUserAgentHandler = request.NamedHandler{ - Name: "core.SDKVersionUserAgentHandler", - Fn: request.MakeAddToUserAgentHandler(aws.SDKName, aws.SDKVersion, - runtime.Version(), runtime.GOOS, runtime.GOARCH), -} - -const execEnvVar = `AWS_EXECUTION_ENV` -const execEnvUAKey = `exec-env` - -// AddHostExecEnvUserAgentHander is a request handler appending the SDK's -// execution environment to the user agent. -// -// If the environment variable AWS_EXECUTION_ENV is set, its value will be -// appended to the user agent string. -var AddHostExecEnvUserAgentHander = request.NamedHandler{ - Name: "core.AddHostExecEnvUserAgentHander", - Fn: func(r *request.Request) { - v := os.Getenv(execEnvVar) - if len(v) == 0 { - return - } - - request.AddToUserAgent(r, execEnvUAKey+"/"+v) - }, -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go deleted file mode 100644 index 3ad1e79..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go +++ /dev/null @@ -1,100 +0,0 @@ -package credentials - -import ( - "github.com/aws/aws-sdk-go/aws/awserr" -) - -var ( - // ErrNoValidProvidersFoundInChain Is returned when there are no valid - // providers in the ChainProvider. - // - // This has been deprecated. For verbose error messaging set - // aws.Config.CredentialsChainVerboseErrors to true. - ErrNoValidProvidersFoundInChain = awserr.New("NoCredentialProviders", - `no valid providers in chain. Deprecated. - For verbose messaging see aws.Config.CredentialsChainVerboseErrors`, - nil) -) - -// A ChainProvider will search for a provider which returns credentials -// and cache that provider until Retrieve is called again. -// -// The ChainProvider provides a way of chaining multiple providers together -// which will pick the first available using priority order of the Providers -// in the list. -// -// If none of the Providers retrieve valid credentials Value, ChainProvider's -// Retrieve() will return the error ErrNoValidProvidersFoundInChain. -// -// If a Provider is found which returns valid credentials Value ChainProvider -// will cache that Provider for all calls to IsExpired(), until Retrieve is -// called again. -// -// Example of ChainProvider to be used with an EnvProvider and EC2RoleProvider. -// In this example EnvProvider will first check if any credentials are available -// via the environment variables. If there are none ChainProvider will check -// the next Provider in the list, EC2RoleProvider in this case. If EC2RoleProvider -// does not return any credentials ChainProvider will return the error -// ErrNoValidProvidersFoundInChain -// -// creds := credentials.NewChainCredentials( -// []credentials.Provider{ -// &credentials.EnvProvider{}, -// &ec2rolecreds.EC2RoleProvider{ -// Client: ec2metadata.New(sess), -// }, -// }) -// -// // Usage of ChainCredentials with aws.Config -// svc := ec2.New(session.Must(session.NewSession(&aws.Config{ -// Credentials: creds, -// }))) -// -type ChainProvider struct { - Providers []Provider - curr Provider - VerboseErrors bool -} - -// NewChainCredentials returns a pointer to a new Credentials object -// wrapping a chain of providers. -func NewChainCredentials(providers []Provider) *Credentials { - return NewCredentials(&ChainProvider{ - Providers: append([]Provider{}, providers...), - }) -} - -// Retrieve returns the credentials value or error if no provider returned -// without error. -// -// If a provider is found it will be cached and any calls to IsExpired() -// will return the expired state of the cached provider. -func (c *ChainProvider) Retrieve() (Value, error) { - var errs []error - for _, p := range c.Providers { - creds, err := p.Retrieve() - if err == nil { - c.curr = p - return creds, nil - } - errs = append(errs, err) - } - c.curr = nil - - var err error - err = ErrNoValidProvidersFoundInChain - if c.VerboseErrors { - err = awserr.NewBatchError("NoCredentialProviders", "no valid providers in chain", errs) - } - return Value{}, err -} - -// IsExpired will returned the expired state of the currently cached provider -// if there is one. If there is no current provider, true will be returned. -func (c *ChainProvider) IsExpired() bool { - if c.curr != nil { - return c.curr.IsExpired() - } - - return true -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.5.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.5.go deleted file mode 100644 index 5852b26..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.5.go +++ /dev/null @@ -1,22 +0,0 @@ -// +build !go1.7 - -package credentials - -import ( - "github.com/aws/aws-sdk-go/internal/context" -) - -// backgroundContext returns a context that will never be canceled, has no -// values, and no deadline. This context is used by the SDK to provide -// backwards compatibility with non-context API operations and functionality. -// -// Go 1.6 and before: -// This context function is equivalent to context.Background in the Go stdlib. -// -// Go 1.7 and later: -// The context returned will be the value returned by context.Background() -// -// See https://golang.org/pkg/context for more information on Contexts. -func backgroundContext() Context { - return context.BackgroundCtx -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.7.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.7.go deleted file mode 100644 index 388b215..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_background_go1.7.go +++ /dev/null @@ -1,20 +0,0 @@ -// +build go1.7 - -package credentials - -import "context" - -// backgroundContext returns a context that will never be canceled, has no -// values, and no deadline. This context is used by the SDK to provide -// backwards compatibility with non-context API operations and functionality. -// -// Go 1.6 and before: -// This context function is equivalent to context.Background in the Go stdlib. -// -// Go 1.7 and later: -// The context returned will be the value returned by context.Background() -// -// See https://golang.org/pkg/context for more information on Contexts. -func backgroundContext() Context { - return context.Background() -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.5.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.5.go deleted file mode 100644 index 8152a86..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.5.go +++ /dev/null @@ -1,39 +0,0 @@ -// +build !go1.9 - -package credentials - -import "time" - -// Context is an copy of the Go v1.7 stdlib's context.Context interface. -// It is represented as a SDK interface to enable you to use the "WithContext" -// API methods with Go v1.6 and a Context type such as golang.org/x/net/context. -// -// This type, aws.Context, and context.Context are equivalent. -// -// See https://golang.org/pkg/context on how to use contexts. -type Context interface { - // Deadline returns the time when work done on behalf of this context - // should be canceled. Deadline returns ok==false when no deadline is - // set. Successive calls to Deadline return the same results. - Deadline() (deadline time.Time, ok bool) - - // Done returns a channel that's closed when work done on behalf of this - // context should be canceled. Done may return nil if this context can - // never be canceled. Successive calls to Done return the same value. - Done() <-chan struct{} - - // Err returns a non-nil error value after Done is closed. Err returns - // Canceled if the context was canceled or DeadlineExceeded if the - // context's deadline passed. No other values for Err are defined. - // After Done is closed, successive calls to Err return the same value. - Err() error - - // Value returns the value associated with this context for key, or nil - // if no value is associated with key. Successive calls to Value with - // the same key returns the same result. - // - // Use context values only for request-scoped data that transits - // processes and API boundaries, not for passing optional parameters to - // functions. - Value(key interface{}) interface{} -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.9.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.9.go deleted file mode 100644 index 4356edb..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/context_go1.9.go +++ /dev/null @@ -1,13 +0,0 @@ -// +build go1.9 - -package credentials - -import "context" - -// Context is an alias of the Go stdlib's context.Context interface. -// It can be used within the SDK's API operation "WithContext" methods. -// -// This type, aws.Context, and context.Context are equivalent. -// -// See https://golang.org/pkg/context on how to use contexts. -type Context = context.Context diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go deleted file mode 100644 index a880a3d..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go +++ /dev/null @@ -1,383 +0,0 @@ -// Package credentials provides credential retrieval and management -// -// The Credentials is the primary method of getting access to and managing -// credentials Values. Using dependency injection retrieval of the credential -// values is handled by a object which satisfies the Provider interface. -// -// By default the Credentials.Get() will cache the successful result of a -// Provider's Retrieve() until Provider.IsExpired() returns true. At which -// point Credentials will call Provider's Retrieve() to get new credential Value. -// -// The Provider is responsible for determining when credentials Value have expired. -// It is also important to note that Credentials will always call Retrieve the -// first time Credentials.Get() is called. -// -// Example of using the environment variable credentials. -// -// creds := credentials.NewEnvCredentials() -// -// // Retrieve the credentials value -// credValue, err := creds.Get() -// if err != nil { -// // handle error -// } -// -// Example of forcing credentials to expire and be refreshed on the next Get(). -// This may be helpful to proactively expire credentials and refresh them sooner -// than they would naturally expire on their own. -// -// creds := credentials.NewCredentials(&ec2rolecreds.EC2RoleProvider{}) -// creds.Expire() -// credsValue, err := creds.Get() -// // New credentials will be retrieved instead of from cache. -// -// -// Custom Provider -// -// Each Provider built into this package also provides a helper method to generate -// a Credentials pointer setup with the provider. To use a custom Provider just -// create a type which satisfies the Provider interface and pass it to the -// NewCredentials method. -// -// type MyProvider struct{} -// func (m *MyProvider) Retrieve() (Value, error) {...} -// func (m *MyProvider) IsExpired() bool {...} -// -// creds := credentials.NewCredentials(&MyProvider{}) -// credValue, err := creds.Get() -// -package credentials - -import ( - "fmt" - "sync" - "time" - - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/internal/sync/singleflight" -) - -// AnonymousCredentials is an empty Credential object that can be used as -// dummy placeholder credentials for requests that do not need signed. -// -// This Credentials can be used to configure a service to not sign requests -// when making service API calls. For example, when accessing public -// s3 buckets. -// -// svc := s3.New(session.Must(session.NewSession(&aws.Config{ -// Credentials: credentials.AnonymousCredentials, -// }))) -// // Access public S3 buckets. -var AnonymousCredentials = NewStaticCredentials("", "", "") - -// A Value is the AWS credentials value for individual credential fields. -type Value struct { - // AWS Access key ID - AccessKeyID string - - // AWS Secret Access Key - SecretAccessKey string - - // AWS Session Token - SessionToken string - - // Provider used to get credentials - ProviderName string -} - -// HasKeys returns if the credentials Value has both AccessKeyID and -// SecretAccessKey value set. -func (v Value) HasKeys() bool { - return len(v.AccessKeyID) != 0 && len(v.SecretAccessKey) != 0 -} - -// A Provider is the interface for any component which will provide credentials -// Value. A provider is required to manage its own Expired state, and what to -// be expired means. -// -// The Provider should not need to implement its own mutexes, because -// that will be managed by Credentials. -type Provider interface { - // Retrieve returns nil if it successfully retrieved the value. - // Error is returned if the value were not obtainable, or empty. - Retrieve() (Value, error) - - // IsExpired returns if the credentials are no longer valid, and need - // to be retrieved. - IsExpired() bool -} - -// ProviderWithContext is a Provider that can retrieve credentials with a Context -type ProviderWithContext interface { - Provider - - RetrieveWithContext(Context) (Value, error) -} - -// An Expirer is an interface that Providers can implement to expose the expiration -// time, if known. If the Provider cannot accurately provide this info, -// it should not implement this interface. -type Expirer interface { - // The time at which the credentials are no longer valid - ExpiresAt() time.Time -} - -// An ErrorProvider is a stub credentials provider that always returns an error -// this is used by the SDK when construction a known provider is not possible -// due to an error. -type ErrorProvider struct { - // The error to be returned from Retrieve - Err error - - // The provider name to set on the Retrieved returned Value - ProviderName string -} - -// Retrieve will always return the error that the ErrorProvider was created with. -func (p ErrorProvider) Retrieve() (Value, error) { - return Value{ProviderName: p.ProviderName}, p.Err -} - -// IsExpired will always return not expired. -func (p ErrorProvider) IsExpired() bool { - return false -} - -// A Expiry provides shared expiration logic to be used by credentials -// providers to implement expiry functionality. -// -// The best method to use this struct is as an anonymous field within the -// provider's struct. -// -// Example: -// type EC2RoleProvider struct { -// Expiry -// ... -// } -type Expiry struct { - // The date/time when to expire on - expiration time.Time - - // If set will be used by IsExpired to determine the current time. - // Defaults to time.Now if CurrentTime is not set. Available for testing - // to be able to mock out the current time. - CurrentTime func() time.Time -} - -// SetExpiration sets the expiration IsExpired will check when called. -// -// If window is greater than 0 the expiration time will be reduced by the -// window value. -// -// Using a window is helpful to trigger credentials to expire sooner than -// the expiration time given to ensure no requests are made with expired -// tokens. -func (e *Expiry) SetExpiration(expiration time.Time, window time.Duration) { - // Passed in expirations should have the monotonic clock values stripped. - // This ensures time comparisons will be based on wall-time. - e.expiration = expiration.Round(0) - if window > 0 { - e.expiration = e.expiration.Add(-window) - } -} - -// IsExpired returns if the credentials are expired. -func (e *Expiry) IsExpired() bool { - curTime := e.CurrentTime - if curTime == nil { - curTime = time.Now - } - return e.expiration.Before(curTime()) -} - -// ExpiresAt returns the expiration time of the credential -func (e *Expiry) ExpiresAt() time.Time { - return e.expiration -} - -// A Credentials provides concurrency safe retrieval of AWS credentials Value. -// Credentials will cache the credentials value until they expire. Once the value -// expires the next Get will attempt to retrieve valid credentials. -// -// Credentials is safe to use across multiple goroutines and will manage the -// synchronous state so the Providers do not need to implement their own -// synchronization. -// -// The first Credentials.Get() will always call Provider.Retrieve() to get the -// first instance of the credentials Value. All calls to Get() after that -// will return the cached credentials Value until IsExpired() returns true. -type Credentials struct { - sf singleflight.Group - - m sync.RWMutex - creds Value - provider Provider -} - -// NewCredentials returns a pointer to a new Credentials with the provider set. -func NewCredentials(provider Provider) *Credentials { - c := &Credentials{ - provider: provider, - } - return c -} - -// GetWithContext returns the credentials value, or error if the credentials -// Value failed to be retrieved. Will return early if the passed in context is -// canceled. -// -// Will return the cached credentials Value if it has not expired. If the -// credentials Value has expired the Provider's Retrieve() will be called -// to refresh the credentials. -// -// If Credentials.Expire() was called the credentials Value will be force -// expired, and the next call to Get() will cause them to be refreshed. -// -// Passed in Context is equivalent to aws.Context, and context.Context. -func (c *Credentials) GetWithContext(ctx Context) (Value, error) { - // Check if credentials are cached, and not expired. - select { - case curCreds, ok := <-c.asyncIsExpired(): - // ok will only be true, of the credentials were not expired. ok will - // be false and have no value if the credentials are expired. - if ok { - return curCreds, nil - } - case <-ctx.Done(): - return Value{}, awserr.New("RequestCanceled", - "request context canceled", ctx.Err()) - } - - // Cannot pass context down to the actual retrieve, because the first - // context would cancel the whole group when there is not direct - // association of items in the group. - resCh := c.sf.DoChan("", func() (interface{}, error) { - return c.singleRetrieve(&suppressedContext{ctx}) - }) - select { - case res := <-resCh: - return res.Val.(Value), res.Err - case <-ctx.Done(): - return Value{}, awserr.New("RequestCanceled", - "request context canceled", ctx.Err()) - } -} - -func (c *Credentials) singleRetrieve(ctx Context) (interface{}, error) { - c.m.Lock() - defer c.m.Unlock() - - if curCreds := c.creds; !c.isExpiredLocked(curCreds) { - return curCreds, nil - } - - var creds Value - var err error - if p, ok := c.provider.(ProviderWithContext); ok { - creds, err = p.RetrieveWithContext(ctx) - } else { - creds, err = c.provider.Retrieve() - } - if err == nil { - c.creds = creds - } - - return creds, err -} - -// Get returns the credentials value, or error if the credentials Value failed -// to be retrieved. -// -// Will return the cached credentials Value if it has not expired. If the -// credentials Value has expired the Provider's Retrieve() will be called -// to refresh the credentials. -// -// If Credentials.Expire() was called the credentials Value will be force -// expired, and the next call to Get() will cause them to be refreshed. -func (c *Credentials) Get() (Value, error) { - return c.GetWithContext(backgroundContext()) -} - -// Expire expires the credentials and forces them to be retrieved on the -// next call to Get(). -// -// This will override the Provider's expired state, and force Credentials -// to call the Provider's Retrieve(). -func (c *Credentials) Expire() { - c.m.Lock() - defer c.m.Unlock() - - c.creds = Value{} -} - -// IsExpired returns if the credentials are no longer valid, and need -// to be retrieved. -// -// If the Credentials were forced to be expired with Expire() this will -// reflect that override. -func (c *Credentials) IsExpired() bool { - c.m.RLock() - defer c.m.RUnlock() - - return c.isExpiredLocked(c.creds) -} - -// asyncIsExpired returns a channel of credentials Value. If the channel is -// closed the credentials are expired and credentials value are not empty. -func (c *Credentials) asyncIsExpired() <-chan Value { - ch := make(chan Value, 1) - go func() { - c.m.RLock() - defer c.m.RUnlock() - - if curCreds := c.creds; !c.isExpiredLocked(curCreds) { - ch <- curCreds - } - - close(ch) - }() - - return ch -} - -// isExpiredLocked helper method wrapping the definition of expired credentials. -func (c *Credentials) isExpiredLocked(creds interface{}) bool { - return creds == nil || creds.(Value) == Value{} || c.provider.IsExpired() -} - -// ExpiresAt provides access to the functionality of the Expirer interface of -// the underlying Provider, if it supports that interface. Otherwise, it returns -// an error. -func (c *Credentials) ExpiresAt() (time.Time, error) { - c.m.RLock() - defer c.m.RUnlock() - - expirer, ok := c.provider.(Expirer) - if !ok { - return time.Time{}, awserr.New("ProviderNotExpirer", - fmt.Sprintf("provider %s does not support ExpiresAt()", - c.creds.ProviderName), - nil) - } - if c.creds == (Value{}) { - // set expiration time to the distant past - return time.Time{}, nil - } - return expirer.ExpiresAt(), nil -} - -type suppressedContext struct { - Context -} - -func (s *suppressedContext) Deadline() (deadline time.Time, ok bool) { - return time.Time{}, false -} - -func (s *suppressedContext) Done() <-chan struct{} { - return nil -} - -func (s *suppressedContext) Err() error { - return nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go deleted file mode 100644 index 92af5b7..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go +++ /dev/null @@ -1,188 +0,0 @@ -package ec2rolecreds - -import ( - "bufio" - "encoding/json" - "fmt" - "strings" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/client" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/ec2metadata" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/internal/sdkuri" -) - -// ProviderName provides a name of EC2Role provider -const ProviderName = "EC2RoleProvider" - -// A EC2RoleProvider retrieves credentials from the EC2 service, and keeps track if -// those credentials are expired. -// -// Example how to configure the EC2RoleProvider with custom http Client, Endpoint -// or ExpiryWindow -// -// p := &ec2rolecreds.EC2RoleProvider{ -// // Pass in a custom timeout to be used when requesting -// // IAM EC2 Role credentials. -// Client: ec2metadata.New(sess, aws.Config{ -// HTTPClient: &http.Client{Timeout: 10 * time.Second}, -// }), -// -// // Do not use early expiry of credentials. If a non zero value is -// // specified the credentials will be expired early -// ExpiryWindow: 0, -// } -type EC2RoleProvider struct { - credentials.Expiry - - // Required EC2Metadata client to use when connecting to EC2 metadata service. - Client *ec2metadata.EC2Metadata - - // ExpiryWindow will allow the credentials to trigger refreshing prior to - // the credentials actually expiring. This is beneficial so race conditions - // with expiring credentials do not cause request to fail unexpectedly - // due to ExpiredTokenException exceptions. - // - // So a ExpiryWindow of 10s would cause calls to IsExpired() to return true - // 10 seconds before the credentials are actually expired. - // - // If ExpiryWindow is 0 or less it will be ignored. - ExpiryWindow time.Duration -} - -// NewCredentials returns a pointer to a new Credentials object wrapping -// the EC2RoleProvider. Takes a ConfigProvider to create a EC2Metadata client. -// The ConfigProvider is satisfied by the session.Session type. -func NewCredentials(c client.ConfigProvider, options ...func(*EC2RoleProvider)) *credentials.Credentials { - p := &EC2RoleProvider{ - Client: ec2metadata.New(c), - } - - for _, option := range options { - option(p) - } - - return credentials.NewCredentials(p) -} - -// NewCredentialsWithClient returns a pointer to a new Credentials object wrapping -// the EC2RoleProvider. Takes a EC2Metadata client to use when connecting to EC2 -// metadata service. -func NewCredentialsWithClient(client *ec2metadata.EC2Metadata, options ...func(*EC2RoleProvider)) *credentials.Credentials { - p := &EC2RoleProvider{ - Client: client, - } - - for _, option := range options { - option(p) - } - - return credentials.NewCredentials(p) -} - -// Retrieve retrieves credentials from the EC2 service. -// Error will be returned if the request fails, or unable to extract -// the desired credentials. -func (m *EC2RoleProvider) Retrieve() (credentials.Value, error) { - return m.RetrieveWithContext(aws.BackgroundContext()) -} - -// RetrieveWithContext retrieves credentials from the EC2 service. -// Error will be returned if the request fails, or unable to extract -// the desired credentials. -func (m *EC2RoleProvider) RetrieveWithContext(ctx credentials.Context) (credentials.Value, error) { - credsList, err := requestCredList(ctx, m.Client) - if err != nil { - return credentials.Value{ProviderName: ProviderName}, err - } - - if len(credsList) == 0 { - return credentials.Value{ProviderName: ProviderName}, awserr.New("EmptyEC2RoleList", "empty EC2 Role list", nil) - } - credsName := credsList[0] - - roleCreds, err := requestCred(ctx, m.Client, credsName) - if err != nil { - return credentials.Value{ProviderName: ProviderName}, err - } - - m.SetExpiration(roleCreds.Expiration, m.ExpiryWindow) - - return credentials.Value{ - AccessKeyID: roleCreds.AccessKeyID, - SecretAccessKey: roleCreds.SecretAccessKey, - SessionToken: roleCreds.Token, - ProviderName: ProviderName, - }, nil -} - -// A ec2RoleCredRespBody provides the shape for unmarshaling credential -// request responses. -type ec2RoleCredRespBody struct { - // Success State - Expiration time.Time - AccessKeyID string - SecretAccessKey string - Token string - - // Error state - Code string - Message string -} - -const iamSecurityCredsPath = "iam/security-credentials/" - -// requestCredList requests a list of credentials from the EC2 service. -// If there are no credentials, or there is an error making or receiving the request -func requestCredList(ctx aws.Context, client *ec2metadata.EC2Metadata) ([]string, error) { - resp, err := client.GetMetadataWithContext(ctx, iamSecurityCredsPath) - if err != nil { - return nil, awserr.New("EC2RoleRequestError", "no EC2 instance role found", err) - } - - credsList := []string{} - s := bufio.NewScanner(strings.NewReader(resp)) - for s.Scan() { - credsList = append(credsList, s.Text()) - } - - if err := s.Err(); err != nil { - return nil, awserr.New(request.ErrCodeSerialization, - "failed to read EC2 instance role from metadata service", err) - } - - return credsList, nil -} - -// requestCred requests the credentials for a specific credentials from the EC2 service. -// -// If the credentials cannot be found, or there is an error reading the response -// and error will be returned. -func requestCred(ctx aws.Context, client *ec2metadata.EC2Metadata, credsName string) (ec2RoleCredRespBody, error) { - resp, err := client.GetMetadataWithContext(ctx, sdkuri.PathJoin(iamSecurityCredsPath, credsName)) - if err != nil { - return ec2RoleCredRespBody{}, - awserr.New("EC2RoleRequestError", - fmt.Sprintf("failed to get %s EC2 instance role credentials", credsName), - err) - } - - respCreds := ec2RoleCredRespBody{} - if err := json.NewDecoder(strings.NewReader(resp)).Decode(&respCreds); err != nil { - return ec2RoleCredRespBody{}, - awserr.New(request.ErrCodeSerialization, - fmt.Sprintf("failed to decode %s EC2 instance role credentials", credsName), - err) - } - - if respCreds.Code != "Success" { - // If an error code was returned something failed requesting the role. - return ec2RoleCredRespBody{}, awserr.New(respCreds.Code, respCreds.Message, nil) - } - - return respCreds, nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go deleted file mode 100644 index 785f30d..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go +++ /dev/null @@ -1,210 +0,0 @@ -// Package endpointcreds provides support for retrieving credentials from an -// arbitrary HTTP endpoint. -// -// The credentials endpoint Provider can receive both static and refreshable -// credentials that will expire. Credentials are static when an "Expiration" -// value is not provided in the endpoint's response. -// -// Static credentials will never expire once they have been retrieved. The format -// of the static credentials response: -// { -// "AccessKeyId" : "MUA...", -// "SecretAccessKey" : "/7PC5om....", -// } -// -// Refreshable credentials will expire within the "ExpiryWindow" of the Expiration -// value in the response. The format of the refreshable credentials response: -// { -// "AccessKeyId" : "MUA...", -// "SecretAccessKey" : "/7PC5om....", -// "Token" : "AQoDY....=", -// "Expiration" : "2016-02-25T06:03:31Z" -// } -// -// Errors should be returned in the following format and only returned with 400 -// or 500 HTTP status codes. -// { -// "code": "ErrorCode", -// "message": "Helpful error message." -// } -package endpointcreds - -import ( - "encoding/json" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/client" - "github.com/aws/aws-sdk-go/aws/client/metadata" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil" -) - -// ProviderName is the name of the credentials provider. -const ProviderName = `CredentialsEndpointProvider` - -// Provider satisfies the credentials.Provider interface, and is a client to -// retrieve credentials from an arbitrary endpoint. -type Provider struct { - staticCreds bool - credentials.Expiry - - // Requires a AWS Client to make HTTP requests to the endpoint with. - // the Endpoint the request will be made to is provided by the aws.Config's - // Endpoint value. - Client *client.Client - - // ExpiryWindow will allow the credentials to trigger refreshing prior to - // the credentials actually expiring. This is beneficial so race conditions - // with expiring credentials do not cause request to fail unexpectedly - // due to ExpiredTokenException exceptions. - // - // So a ExpiryWindow of 10s would cause calls to IsExpired() to return true - // 10 seconds before the credentials are actually expired. - // - // If ExpiryWindow is 0 or less it will be ignored. - ExpiryWindow time.Duration - - // Optional authorization token value if set will be used as the value of - // the Authorization header of the endpoint credential request. - AuthorizationToken string -} - -// NewProviderClient returns a credentials Provider for retrieving AWS credentials -// from arbitrary endpoint. -func NewProviderClient(cfg aws.Config, handlers request.Handlers, endpoint string, options ...func(*Provider)) credentials.Provider { - p := &Provider{ - Client: client.New( - cfg, - metadata.ClientInfo{ - ServiceName: "CredentialsEndpoint", - Endpoint: endpoint, - }, - handlers, - ), - } - - p.Client.Handlers.Unmarshal.PushBack(unmarshalHandler) - p.Client.Handlers.UnmarshalError.PushBack(unmarshalError) - p.Client.Handlers.Validate.Clear() - p.Client.Handlers.Validate.PushBack(validateEndpointHandler) - - for _, option := range options { - option(p) - } - - return p -} - -// NewCredentialsClient returns a pointer to a new Credentials object -// wrapping the endpoint credentials Provider. -func NewCredentialsClient(cfg aws.Config, handlers request.Handlers, endpoint string, options ...func(*Provider)) *credentials.Credentials { - return credentials.NewCredentials(NewProviderClient(cfg, handlers, endpoint, options...)) -} - -// IsExpired returns true if the credentials retrieved are expired, or not yet -// retrieved. -func (p *Provider) IsExpired() bool { - if p.staticCreds { - return false - } - return p.Expiry.IsExpired() -} - -// Retrieve will attempt to request the credentials from the endpoint the Provider -// was configured for. And error will be returned if the retrieval fails. -func (p *Provider) Retrieve() (credentials.Value, error) { - return p.RetrieveWithContext(aws.BackgroundContext()) -} - -// RetrieveWithContext will attempt to request the credentials from the endpoint the Provider -// was configured for. And error will be returned if the retrieval fails. -func (p *Provider) RetrieveWithContext(ctx credentials.Context) (credentials.Value, error) { - resp, err := p.getCredentials(ctx) - if err != nil { - return credentials.Value{ProviderName: ProviderName}, - awserr.New("CredentialsEndpointError", "failed to load credentials", err) - } - - if resp.Expiration != nil { - p.SetExpiration(*resp.Expiration, p.ExpiryWindow) - } else { - p.staticCreds = true - } - - return credentials.Value{ - AccessKeyID: resp.AccessKeyID, - SecretAccessKey: resp.SecretAccessKey, - SessionToken: resp.Token, - ProviderName: ProviderName, - }, nil -} - -type getCredentialsOutput struct { - Expiration *time.Time - AccessKeyID string - SecretAccessKey string - Token string -} - -type errorOutput struct { - Code string `json:"code"` - Message string `json:"message"` -} - -func (p *Provider) getCredentials(ctx aws.Context) (*getCredentialsOutput, error) { - op := &request.Operation{ - Name: "GetCredentials", - HTTPMethod: "GET", - } - - out := &getCredentialsOutput{} - req := p.Client.NewRequest(op, nil, out) - req.SetContext(ctx) - req.HTTPRequest.Header.Set("Accept", "application/json") - if authToken := p.AuthorizationToken; len(authToken) != 0 { - req.HTTPRequest.Header.Set("Authorization", authToken) - } - - return out, req.Send() -} - -func validateEndpointHandler(r *request.Request) { - if len(r.ClientInfo.Endpoint) == 0 { - r.Error = aws.ErrMissingEndpoint - } -} - -func unmarshalHandler(r *request.Request) { - defer r.HTTPResponse.Body.Close() - - out := r.Data.(*getCredentialsOutput) - if err := json.NewDecoder(r.HTTPResponse.Body).Decode(&out); err != nil { - r.Error = awserr.New(request.ErrCodeSerialization, - "failed to decode endpoint credentials", - err, - ) - } -} - -func unmarshalError(r *request.Request) { - defer r.HTTPResponse.Body.Close() - - var errOut errorOutput - err := jsonutil.UnmarshalJSONError(&errOut, r.HTTPResponse.Body) - if err != nil { - r.Error = awserr.NewRequestFailure( - awserr.New(request.ErrCodeSerialization, - "failed to decode error message", err), - r.HTTPResponse.StatusCode, - r.RequestID, - ) - return - } - - // Response body format is not consistent between metadata endpoints. - // Grab the error message as a string and include that as the source error - r.Error = awserr.New(errOut.Code, errOut.Message, nil) -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go deleted file mode 100644 index 54c5cf7..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go +++ /dev/null @@ -1,74 +0,0 @@ -package credentials - -import ( - "os" - - "github.com/aws/aws-sdk-go/aws/awserr" -) - -// EnvProviderName provides a name of Env provider -const EnvProviderName = "EnvProvider" - -var ( - // ErrAccessKeyIDNotFound is returned when the AWS Access Key ID can't be - // found in the process's environment. - ErrAccessKeyIDNotFound = awserr.New("EnvAccessKeyNotFound", "AWS_ACCESS_KEY_ID or AWS_ACCESS_KEY not found in environment", nil) - - // ErrSecretAccessKeyNotFound is returned when the AWS Secret Access Key - // can't be found in the process's environment. - ErrSecretAccessKeyNotFound = awserr.New("EnvSecretNotFound", "AWS_SECRET_ACCESS_KEY or AWS_SECRET_KEY not found in environment", nil) -) - -// A EnvProvider retrieves credentials from the environment variables of the -// running process. Environment credentials never expire. -// -// Environment variables used: -// -// * Access Key ID: AWS_ACCESS_KEY_ID or AWS_ACCESS_KEY -// -// * Secret Access Key: AWS_SECRET_ACCESS_KEY or AWS_SECRET_KEY -type EnvProvider struct { - retrieved bool -} - -// NewEnvCredentials returns a pointer to a new Credentials object -// wrapping the environment variable provider. -func NewEnvCredentials() *Credentials { - return NewCredentials(&EnvProvider{}) -} - -// Retrieve retrieves the keys from the environment. -func (e *EnvProvider) Retrieve() (Value, error) { - e.retrieved = false - - id := os.Getenv("AWS_ACCESS_KEY_ID") - if id == "" { - id = os.Getenv("AWS_ACCESS_KEY") - } - - secret := os.Getenv("AWS_SECRET_ACCESS_KEY") - if secret == "" { - secret = os.Getenv("AWS_SECRET_KEY") - } - - if id == "" { - return Value{ProviderName: EnvProviderName}, ErrAccessKeyIDNotFound - } - - if secret == "" { - return Value{ProviderName: EnvProviderName}, ErrSecretAccessKeyNotFound - } - - e.retrieved = true - return Value{ - AccessKeyID: id, - SecretAccessKey: secret, - SessionToken: os.Getenv("AWS_SESSION_TOKEN"), - ProviderName: EnvProviderName, - }, nil -} - -// IsExpired returns if the credentials have been retrieved. -func (e *EnvProvider) IsExpired() bool { - return !e.retrieved -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/example.ini b/vendor/github.com/aws/aws-sdk-go/aws/credentials/example.ini deleted file mode 100644 index 7fc91d9..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/example.ini +++ /dev/null @@ -1,12 +0,0 @@ -[default] -aws_access_key_id = accessKey -aws_secret_access_key = secret -aws_session_token = token - -[no_token] -aws_access_key_id = accessKey -aws_secret_access_key = secret - -[with_colon] -aws_access_key_id: accessKey -aws_secret_access_key: secret diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/provider.go deleted file mode 100644 index e624836..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/provider.go +++ /dev/null @@ -1,426 +0,0 @@ -/* -Package processcreds is a credential Provider to retrieve `credential_process` -credentials. - -WARNING: The following describes a method of sourcing credentials from an external -process. This can potentially be dangerous, so proceed with caution. Other -credential providers should be preferred if at all possible. If using this -option, you should make sure that the config file is as locked down as possible -using security best practices for your operating system. - -You can use credentials from a `credential_process` in a variety of ways. - -One way is to setup your shared config file, located in the default -location, with the `credential_process` key and the command you want to be -called. You also need to set the AWS_SDK_LOAD_CONFIG environment variable -(e.g., `export AWS_SDK_LOAD_CONFIG=1`) to use the shared config file. - - [default] - credential_process = /command/to/call - -Creating a new session will use the credential process to retrieve credentials. -NOTE: If there are credentials in the profile you are using, the credential -process will not be used. - - // Initialize a session to load credentials. - sess, _ := session.NewSession(&aws.Config{ - Region: aws.String("us-east-1")}, - ) - - // Create S3 service client to use the credentials. - svc := s3.New(sess) - -Another way to use the `credential_process` method is by using -`credentials.NewCredentials()` and providing a command to be executed to -retrieve credentials: - - // Create credentials using the ProcessProvider. - creds := processcreds.NewCredentials("/path/to/command") - - // Create service client value configured for credentials. - svc := s3.New(sess, &aws.Config{Credentials: creds}) - -You can set a non-default timeout for the `credential_process` with another -constructor, `credentials.NewCredentialsTimeout()`, providing the timeout. To -set a one minute timeout: - - // Create credentials using the ProcessProvider. - creds := processcreds.NewCredentialsTimeout( - "/path/to/command", - time.Duration(500) * time.Millisecond) - -If you need more control, you can set any configurable options in the -credentials using one or more option functions. For example, you can set a two -minute timeout, a credential duration of 60 minutes, and a maximum stdout -buffer size of 2k. - - creds := processcreds.NewCredentials( - "/path/to/command", - func(opt *ProcessProvider) { - opt.Timeout = time.Duration(2) * time.Minute - opt.Duration = time.Duration(60) * time.Minute - opt.MaxBufSize = 2048 - }) - -You can also use your own `exec.Cmd`: - - // Create an exec.Cmd - myCommand := exec.Command("/path/to/command") - - // Create credentials using your exec.Cmd and custom timeout - creds := processcreds.NewCredentialsCommand( - myCommand, - func(opt *processcreds.ProcessProvider) { - opt.Timeout = time.Duration(1) * time.Second - }) -*/ -package processcreds - -import ( - "bytes" - "encoding/json" - "fmt" - "io" - "io/ioutil" - "os" - "os/exec" - "runtime" - "strings" - "time" - - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/internal/sdkio" -) - -const ( - // ProviderName is the name this credentials provider will label any - // returned credentials Value with. - ProviderName = `ProcessProvider` - - // ErrCodeProcessProviderParse error parsing process output - ErrCodeProcessProviderParse = "ProcessProviderParseError" - - // ErrCodeProcessProviderVersion version error in output - ErrCodeProcessProviderVersion = "ProcessProviderVersionError" - - // ErrCodeProcessProviderRequired required attribute missing in output - ErrCodeProcessProviderRequired = "ProcessProviderRequiredError" - - // ErrCodeProcessProviderExecution execution of command failed - ErrCodeProcessProviderExecution = "ProcessProviderExecutionError" - - // errMsgProcessProviderTimeout process took longer than allowed - errMsgProcessProviderTimeout = "credential process timed out" - - // errMsgProcessProviderProcess process error - errMsgProcessProviderProcess = "error in credential_process" - - // errMsgProcessProviderParse problem parsing output - errMsgProcessProviderParse = "parse failed of credential_process output" - - // errMsgProcessProviderVersion version error in output - errMsgProcessProviderVersion = "wrong version in process output (not 1)" - - // errMsgProcessProviderMissKey missing access key id in output - errMsgProcessProviderMissKey = "missing AccessKeyId in process output" - - // errMsgProcessProviderMissSecret missing secret acess key in output - errMsgProcessProviderMissSecret = "missing SecretAccessKey in process output" - - // errMsgProcessProviderPrepareCmd prepare of command failed - errMsgProcessProviderPrepareCmd = "failed to prepare command" - - // errMsgProcessProviderEmptyCmd command must not be empty - errMsgProcessProviderEmptyCmd = "command must not be empty" - - // errMsgProcessProviderPipe failed to initialize pipe - errMsgProcessProviderPipe = "failed to initialize pipe" - - // DefaultDuration is the default amount of time in minutes that the - // credentials will be valid for. - DefaultDuration = time.Duration(15) * time.Minute - - // DefaultBufSize limits buffer size from growing to an enormous - // amount due to a faulty process. - DefaultBufSize = int(8 * sdkio.KibiByte) - - // DefaultTimeout default limit on time a process can run. - DefaultTimeout = time.Duration(1) * time.Minute -) - -// ProcessProvider satisfies the credentials.Provider interface, and is a -// client to retrieve credentials from a process. -type ProcessProvider struct { - staticCreds bool - credentials.Expiry - originalCommand []string - - // Expiry duration of the credentials. Defaults to 15 minutes if not set. - Duration time.Duration - - // ExpiryWindow will allow the credentials to trigger refreshing prior to - // the credentials actually expiring. This is beneficial so race conditions - // with expiring credentials do not cause request to fail unexpectedly - // due to ExpiredTokenException exceptions. - // - // So a ExpiryWindow of 10s would cause calls to IsExpired() to return true - // 10 seconds before the credentials are actually expired. - // - // If ExpiryWindow is 0 or less it will be ignored. - ExpiryWindow time.Duration - - // A string representing an os command that should return a JSON with - // credential information. - command *exec.Cmd - - // MaxBufSize limits memory usage from growing to an enormous - // amount due to a faulty process. - MaxBufSize int - - // Timeout limits the time a process can run. - Timeout time.Duration -} - -// NewCredentials returns a pointer to a new Credentials object wrapping the -// ProcessProvider. The credentials will expire every 15 minutes by default. -func NewCredentials(command string, options ...func(*ProcessProvider)) *credentials.Credentials { - p := &ProcessProvider{ - command: exec.Command(command), - Duration: DefaultDuration, - Timeout: DefaultTimeout, - MaxBufSize: DefaultBufSize, - } - - for _, option := range options { - option(p) - } - - return credentials.NewCredentials(p) -} - -// NewCredentialsTimeout returns a pointer to a new Credentials object with -// the specified command and timeout, and default duration and max buffer size. -func NewCredentialsTimeout(command string, timeout time.Duration) *credentials.Credentials { - p := NewCredentials(command, func(opt *ProcessProvider) { - opt.Timeout = timeout - }) - - return p -} - -// NewCredentialsCommand returns a pointer to a new Credentials object with -// the specified command, and default timeout, duration and max buffer size. -func NewCredentialsCommand(command *exec.Cmd, options ...func(*ProcessProvider)) *credentials.Credentials { - p := &ProcessProvider{ - command: command, - Duration: DefaultDuration, - Timeout: DefaultTimeout, - MaxBufSize: DefaultBufSize, - } - - for _, option := range options { - option(p) - } - - return credentials.NewCredentials(p) -} - -type credentialProcessResponse struct { - Version int - AccessKeyID string `json:"AccessKeyId"` - SecretAccessKey string - SessionToken string - Expiration *time.Time -} - -// Retrieve executes the 'credential_process' and returns the credentials. -func (p *ProcessProvider) Retrieve() (credentials.Value, error) { - out, err := p.executeCredentialProcess() - if err != nil { - return credentials.Value{ProviderName: ProviderName}, err - } - - // Serialize and validate response - resp := &credentialProcessResponse{} - if err = json.Unmarshal(out, resp); err != nil { - return credentials.Value{ProviderName: ProviderName}, awserr.New( - ErrCodeProcessProviderParse, - fmt.Sprintf("%s: %s", errMsgProcessProviderParse, string(out)), - err) - } - - if resp.Version != 1 { - return credentials.Value{ProviderName: ProviderName}, awserr.New( - ErrCodeProcessProviderVersion, - errMsgProcessProviderVersion, - nil) - } - - if len(resp.AccessKeyID) == 0 { - return credentials.Value{ProviderName: ProviderName}, awserr.New( - ErrCodeProcessProviderRequired, - errMsgProcessProviderMissKey, - nil) - } - - if len(resp.SecretAccessKey) == 0 { - return credentials.Value{ProviderName: ProviderName}, awserr.New( - ErrCodeProcessProviderRequired, - errMsgProcessProviderMissSecret, - nil) - } - - // Handle expiration - p.staticCreds = resp.Expiration == nil - if resp.Expiration != nil { - p.SetExpiration(*resp.Expiration, p.ExpiryWindow) - } - - return credentials.Value{ - ProviderName: ProviderName, - AccessKeyID: resp.AccessKeyID, - SecretAccessKey: resp.SecretAccessKey, - SessionToken: resp.SessionToken, - }, nil -} - -// IsExpired returns true if the credentials retrieved are expired, or not yet -// retrieved. -func (p *ProcessProvider) IsExpired() bool { - if p.staticCreds { - return false - } - return p.Expiry.IsExpired() -} - -// prepareCommand prepares the command to be executed. -func (p *ProcessProvider) prepareCommand() error { - - var cmdArgs []string - if runtime.GOOS == "windows" { - cmdArgs = []string{"cmd.exe", "/C"} - } else { - cmdArgs = []string{"sh", "-c"} - } - - if len(p.originalCommand) == 0 { - p.originalCommand = make([]string, len(p.command.Args)) - copy(p.originalCommand, p.command.Args) - - // check for empty command because it succeeds - if len(strings.TrimSpace(p.originalCommand[0])) < 1 { - return awserr.New( - ErrCodeProcessProviderExecution, - fmt.Sprintf( - "%s: %s", - errMsgProcessProviderPrepareCmd, - errMsgProcessProviderEmptyCmd), - nil) - } - } - - cmdArgs = append(cmdArgs, p.originalCommand...) - p.command = exec.Command(cmdArgs[0], cmdArgs[1:]...) - p.command.Env = os.Environ() - - return nil -} - -// executeCredentialProcess starts the credential process on the OS and -// returns the results or an error. -func (p *ProcessProvider) executeCredentialProcess() ([]byte, error) { - - if err := p.prepareCommand(); err != nil { - return nil, err - } - - // Setup the pipes - outReadPipe, outWritePipe, err := os.Pipe() - if err != nil { - return nil, awserr.New( - ErrCodeProcessProviderExecution, - errMsgProcessProviderPipe, - err) - } - - p.command.Stderr = os.Stderr // display stderr on console for MFA - p.command.Stdout = outWritePipe // get creds json on process's stdout - p.command.Stdin = os.Stdin // enable stdin for MFA - - output := bytes.NewBuffer(make([]byte, 0, p.MaxBufSize)) - - stdoutCh := make(chan error, 1) - go readInput( - io.LimitReader(outReadPipe, int64(p.MaxBufSize)), - output, - stdoutCh) - - execCh := make(chan error, 1) - go executeCommand(*p.command, execCh) - - finished := false - var errors []error - for !finished { - select { - case readError := <-stdoutCh: - errors = appendError(errors, readError) - finished = true - case execError := <-execCh: - err := outWritePipe.Close() - errors = appendError(errors, err) - errors = appendError(errors, execError) - if errors != nil { - return output.Bytes(), awserr.NewBatchError( - ErrCodeProcessProviderExecution, - errMsgProcessProviderProcess, - errors) - } - case <-time.After(p.Timeout): - finished = true - return output.Bytes(), awserr.NewBatchError( - ErrCodeProcessProviderExecution, - errMsgProcessProviderTimeout, - errors) // errors can be nil - } - } - - out := output.Bytes() - - if runtime.GOOS == "windows" { - // windows adds slashes to quotes - out = []byte(strings.Replace(string(out), `\"`, `"`, -1)) - } - - return out, nil -} - -// appendError conveniently checks for nil before appending slice -func appendError(errors []error, err error) []error { - if err != nil { - return append(errors, err) - } - return errors -} - -func executeCommand(cmd exec.Cmd, exec chan error) { - // Start the command - err := cmd.Start() - if err == nil { - err = cmd.Wait() - } - - exec <- err -} - -func readInput(r io.Reader, w io.Writer, read chan error) { - tee := io.TeeReader(r, w) - - _, err := ioutil.ReadAll(tee) - - if err == io.EOF { - err = nil - } - - read <- err // will only arrive here when write end of pipe is closed -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go deleted file mode 100644 index 22b5c5d..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go +++ /dev/null @@ -1,151 +0,0 @@ -package credentials - -import ( - "fmt" - "os" - - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/internal/ini" - "github.com/aws/aws-sdk-go/internal/shareddefaults" -) - -// SharedCredsProviderName provides a name of SharedCreds provider -const SharedCredsProviderName = "SharedCredentialsProvider" - -var ( - // ErrSharedCredentialsHomeNotFound is emitted when the user directory cannot be found. - ErrSharedCredentialsHomeNotFound = awserr.New("UserHomeNotFound", "user home directory not found.", nil) -) - -// A SharedCredentialsProvider retrieves access key pair (access key ID, -// secret access key, and session token if present) credentials from the current -// user's home directory, and keeps track if those credentials are expired. -// -// Profile ini file example: $HOME/.aws/credentials -type SharedCredentialsProvider struct { - // Path to the shared credentials file. - // - // If empty will look for "AWS_SHARED_CREDENTIALS_FILE" env variable. If the - // env value is empty will default to current user's home directory. - // Linux/OSX: "$HOME/.aws/credentials" - // Windows: "%USERPROFILE%\.aws\credentials" - Filename string - - // AWS Profile to extract credentials from the shared credentials file. If empty - // will default to environment variable "AWS_PROFILE" or "default" if - // environment variable is also not set. - Profile string - - // retrieved states if the credentials have been successfully retrieved. - retrieved bool -} - -// NewSharedCredentials returns a pointer to a new Credentials object -// wrapping the Profile file provider. -func NewSharedCredentials(filename, profile string) *Credentials { - return NewCredentials(&SharedCredentialsProvider{ - Filename: filename, - Profile: profile, - }) -} - -// Retrieve reads and extracts the shared credentials from the current -// users home directory. -func (p *SharedCredentialsProvider) Retrieve() (Value, error) { - p.retrieved = false - - filename, err := p.filename() - if err != nil { - return Value{ProviderName: SharedCredsProviderName}, err - } - - creds, err := loadProfile(filename, p.profile()) - if err != nil { - return Value{ProviderName: SharedCredsProviderName}, err - } - - p.retrieved = true - return creds, nil -} - -// IsExpired returns if the shared credentials have expired. -func (p *SharedCredentialsProvider) IsExpired() bool { - return !p.retrieved -} - -// loadProfiles loads from the file pointed to by shared credentials filename for profile. -// The credentials retrieved from the profile will be returned or error. Error will be -// returned if it fails to read from the file, or the data is invalid. -func loadProfile(filename, profile string) (Value, error) { - config, err := ini.OpenFile(filename) - if err != nil { - return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsLoad", "failed to load shared credentials file", err) - } - - iniProfile, ok := config.GetSection(profile) - if !ok { - return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsLoad", "failed to get profile", nil) - } - - id := iniProfile.String("aws_access_key_id") - if len(id) == 0 { - return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsAccessKey", - fmt.Sprintf("shared credentials %s in %s did not contain aws_access_key_id", profile, filename), - nil) - } - - secret := iniProfile.String("aws_secret_access_key") - if len(secret) == 0 { - return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsSecret", - fmt.Sprintf("shared credentials %s in %s did not contain aws_secret_access_key", profile, filename), - nil) - } - - // Default to empty string if not found - token := iniProfile.String("aws_session_token") - - return Value{ - AccessKeyID: id, - SecretAccessKey: secret, - SessionToken: token, - ProviderName: SharedCredsProviderName, - }, nil -} - -// filename returns the filename to use to read AWS shared credentials. -// -// Will return an error if the user's home directory path cannot be found. -func (p *SharedCredentialsProvider) filename() (string, error) { - if len(p.Filename) != 0 { - return p.Filename, nil - } - - if p.Filename = os.Getenv("AWS_SHARED_CREDENTIALS_FILE"); len(p.Filename) != 0 { - return p.Filename, nil - } - - if home := shareddefaults.UserHomeDir(); len(home) == 0 { - // Backwards compatibility of home directly not found error being returned. - // This error is too verbose, failure when opening the file would of been - // a better error to return. - return "", ErrSharedCredentialsHomeNotFound - } - - p.Filename = shareddefaults.SharedCredentialsFilename() - - return p.Filename, nil -} - -// profile returns the AWS shared credentials profile. If empty will read -// environment variable "AWS_PROFILE". If that is not set profile will -// return "default". -func (p *SharedCredentialsProvider) profile() string { - if p.Profile == "" { - p.Profile = os.Getenv("AWS_PROFILE") - } - if p.Profile == "" { - p.Profile = "default" - } - - return p.Profile -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/doc.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/doc.go deleted file mode 100644 index 18c940a..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/doc.go +++ /dev/null @@ -1,60 +0,0 @@ -// Package ssocreds provides a credential provider for retrieving temporary AWS credentials using an SSO access token. -// -// IMPORTANT: The provider in this package does not initiate or perform the AWS SSO login flow. The SDK provider -// expects that you have already performed the SSO login flow using AWS CLI using the "aws sso login" command, or by -// some other mechanism. The provider must find a valid non-expired access token for the AWS SSO user portal URL in -// ~/.aws/sso/cache. If a cached token is not found, it is expired, or the file is malformed an error will be returned. -// -// Loading AWS SSO credentials with the AWS shared configuration file -// -// You can use configure AWS SSO credentials from the AWS shared configuration file by -// providing the specifying the required keys in the profile: -// -// sso_account_id -// sso_region -// sso_role_name -// sso_start_url -// -// For example, the following defines a profile "devsso" and specifies the AWS SSO parameters that defines the target -// account, role, sign-on portal, and the region where the user portal is located. Note: all SSO arguments must be -// provided, or an error will be returned. -// -// [profile devsso] -// sso_start_url = https://my-sso-portal.awsapps.com/start -// sso_role_name = SSOReadOnlyRole -// sso_region = us-east-1 -// sso_account_id = 123456789012 -// -// Using the config module, you can load the AWS SDK shared configuration, and specify that this profile be used to -// retrieve credentials. For example: -// -// sess, err := session.NewSessionWithOptions(session.Options{ -// SharedConfigState: session.SharedConfigEnable, -// Profile: "devsso", -// }) -// if err != nil { -// return err -// } -// -// Programmatically loading AWS SSO credentials directly -// -// You can programmatically construct the AWS SSO Provider in your application, and provide the necessary information -// to load and retrieve temporary credentials using an access token from ~/.aws/sso/cache. -// -// svc := sso.New(sess, &aws.Config{ -// Region: aws.String("us-west-2"), // Client Region must correspond to the AWS SSO user portal region -// }) -// -// provider := ssocreds.NewCredentialsWithClient(svc, "123456789012", "SSOReadOnlyRole", "https://my-sso-portal.awsapps.com/start") -// -// credentials, err := provider.Get() -// if err != nil { -// return err -// } -// -// Additional Resources -// -// Configuring the AWS CLI to use AWS Single Sign-On: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html -// -// AWS Single Sign-On User Guide: https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html -package ssocreds diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os.go deleted file mode 100644 index ceca7dc..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os.go +++ /dev/null @@ -1,9 +0,0 @@ -// +build !windows - -package ssocreds - -import "os" - -func getHomeDirectory() string { - return os.Getenv("HOME") -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os_windows.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os_windows.go deleted file mode 100644 index eb48f61..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/os_windows.go +++ /dev/null @@ -1,7 +0,0 @@ -package ssocreds - -import "os" - -func getHomeDirectory() string { - return os.Getenv("USERPROFILE") -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/provider.go deleted file mode 100644 index 6eda2a5..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/provider.go +++ /dev/null @@ -1,180 +0,0 @@ -package ssocreds - -import ( - "crypto/sha1" - "encoding/hex" - "encoding/json" - "fmt" - "io/ioutil" - "path/filepath" - "strings" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/client" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/service/sso" - "github.com/aws/aws-sdk-go/service/sso/ssoiface" -) - -// ErrCodeSSOProviderInvalidToken is the code type that is returned if loaded token has expired or is otherwise invalid. -// To refresh the SSO session run aws sso login with the corresponding profile. -const ErrCodeSSOProviderInvalidToken = "SSOProviderInvalidToken" - -const invalidTokenMessage = "the SSO session has expired or is invalid" - -func init() { - nowTime = time.Now - defaultCacheLocation = defaultCacheLocationImpl -} - -var nowTime func() time.Time - -// ProviderName is the name of the provider used to specify the source of credentials. -const ProviderName = "SSOProvider" - -var defaultCacheLocation func() string - -func defaultCacheLocationImpl() string { - return filepath.Join(getHomeDirectory(), ".aws", "sso", "cache") -} - -// Provider is an AWS credential provider that retrieves temporary AWS credentials by exchanging an SSO login token. -type Provider struct { - credentials.Expiry - - // The Client which is configured for the AWS Region where the AWS SSO user portal is located. - Client ssoiface.SSOAPI - - // The AWS account that is assigned to the user. - AccountID string - - // The role name that is assigned to the user. - RoleName string - - // The URL that points to the organization's AWS Single Sign-On (AWS SSO) user portal. - StartURL string -} - -// NewCredentials returns a new AWS Single Sign-On (AWS SSO) credential provider. The ConfigProvider is expected to be configured -// for the AWS Region where the AWS SSO user portal is located. -func NewCredentials(configProvider client.ConfigProvider, accountID, roleName, startURL string, optFns ...func(provider *Provider)) *credentials.Credentials { - return NewCredentialsWithClient(sso.New(configProvider), accountID, roleName, startURL, optFns...) -} - -// NewCredentialsWithClient returns a new AWS Single Sign-On (AWS SSO) credential provider. The provided client is expected to be configured -// for the AWS Region where the AWS SSO user portal is located. -func NewCredentialsWithClient(client ssoiface.SSOAPI, accountID, roleName, startURL string, optFns ...func(provider *Provider)) *credentials.Credentials { - p := &Provider{ - Client: client, - AccountID: accountID, - RoleName: roleName, - StartURL: startURL, - } - - for _, fn := range optFns { - fn(p) - } - - return credentials.NewCredentials(p) -} - -// Retrieve retrieves temporary AWS credentials from the configured Amazon Single Sign-On (AWS SSO) user portal -// by exchanging the accessToken present in ~/.aws/sso/cache. -func (p *Provider) Retrieve() (credentials.Value, error) { - return p.RetrieveWithContext(aws.BackgroundContext()) -} - -// RetrieveWithContext retrieves temporary AWS credentials from the configured Amazon Single Sign-On (AWS SSO) user portal -// by exchanging the accessToken present in ~/.aws/sso/cache. -func (p *Provider) RetrieveWithContext(ctx credentials.Context) (credentials.Value, error) { - tokenFile, err := loadTokenFile(p.StartURL) - if err != nil { - return credentials.Value{}, err - } - - output, err := p.Client.GetRoleCredentialsWithContext(ctx, &sso.GetRoleCredentialsInput{ - AccessToken: &tokenFile.AccessToken, - AccountId: &p.AccountID, - RoleName: &p.RoleName, - }) - if err != nil { - return credentials.Value{}, err - } - - expireTime := time.Unix(0, aws.Int64Value(output.RoleCredentials.Expiration)*int64(time.Millisecond)).UTC() - p.SetExpiration(expireTime, 0) - - return credentials.Value{ - AccessKeyID: aws.StringValue(output.RoleCredentials.AccessKeyId), - SecretAccessKey: aws.StringValue(output.RoleCredentials.SecretAccessKey), - SessionToken: aws.StringValue(output.RoleCredentials.SessionToken), - ProviderName: ProviderName, - }, nil -} - -func getCacheFileName(url string) (string, error) { - hash := sha1.New() - _, err := hash.Write([]byte(url)) - if err != nil { - return "", err - } - return strings.ToLower(hex.EncodeToString(hash.Sum(nil))) + ".json", nil -} - -type rfc3339 time.Time - -func (r *rfc3339) UnmarshalJSON(bytes []byte) error { - var value string - - if err := json.Unmarshal(bytes, &value); err != nil { - return err - } - - parse, err := time.Parse(time.RFC3339, value) - if err != nil { - return fmt.Errorf("expected RFC3339 timestamp: %v", err) - } - - *r = rfc3339(parse) - - return nil -} - -type token struct { - AccessToken string `json:"accessToken"` - ExpiresAt rfc3339 `json:"expiresAt"` - Region string `json:"region,omitempty"` - StartURL string `json:"startUrl,omitempty"` -} - -func (t token) Expired() bool { - return nowTime().Round(0).After(time.Time(t.ExpiresAt)) -} - -func loadTokenFile(startURL string) (t token, err error) { - key, err := getCacheFileName(startURL) - if err != nil { - return token{}, awserr.New(ErrCodeSSOProviderInvalidToken, invalidTokenMessage, err) - } - - fileBytes, err := ioutil.ReadFile(filepath.Join(defaultCacheLocation(), key)) - if err != nil { - return token{}, awserr.New(ErrCodeSSOProviderInvalidToken, invalidTokenMessage, err) - } - - if err := json.Unmarshal(fileBytes, &t); err != nil { - return token{}, awserr.New(ErrCodeSSOProviderInvalidToken, invalidTokenMessage, err) - } - - if len(t.AccessToken) == 0 { - return token{}, awserr.New(ErrCodeSSOProviderInvalidToken, invalidTokenMessage, nil) - } - - if t.Expired() { - return token{}, awserr.New(ErrCodeSSOProviderInvalidToken, invalidTokenMessage, nil) - } - - return t, nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go deleted file mode 100644 index cbba1e3..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go +++ /dev/null @@ -1,57 +0,0 @@ -package credentials - -import ( - "github.com/aws/aws-sdk-go/aws/awserr" -) - -// StaticProviderName provides a name of Static provider -const StaticProviderName = "StaticProvider" - -var ( - // ErrStaticCredentialsEmpty is emitted when static credentials are empty. - ErrStaticCredentialsEmpty = awserr.New("EmptyStaticCreds", "static credentials are empty", nil) -) - -// A StaticProvider is a set of credentials which are set programmatically, -// and will never expire. -type StaticProvider struct { - Value -} - -// NewStaticCredentials returns a pointer to a new Credentials object -// wrapping a static credentials value provider. Token is only required -// for temporary security credentials retrieved via STS, otherwise an empty -// string can be passed for this parameter. -func NewStaticCredentials(id, secret, token string) *Credentials { - return NewCredentials(&StaticProvider{Value: Value{ - AccessKeyID: id, - SecretAccessKey: secret, - SessionToken: token, - }}) -} - -// NewStaticCredentialsFromCreds returns a pointer to a new Credentials object -// wrapping the static credentials value provide. Same as NewStaticCredentials -// but takes the creds Value instead of individual fields -func NewStaticCredentialsFromCreds(creds Value) *Credentials { - return NewCredentials(&StaticProvider{Value: creds}) -} - -// Retrieve returns the credentials or error if the credentials are invalid. -func (s *StaticProvider) Retrieve() (Value, error) { - if s.AccessKeyID == "" || s.SecretAccessKey == "" { - return Value{ProviderName: StaticProviderName}, ErrStaticCredentialsEmpty - } - - if len(s.Value.ProviderName) == 0 { - s.Value.ProviderName = StaticProviderName - } - return s.Value, nil -} - -// IsExpired returns if the credentials are expired. -// -// For StaticProvider, the credentials never expired. -func (s *StaticProvider) IsExpired() bool { - return false -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go deleted file mode 100644 index 260a37c..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go +++ /dev/null @@ -1,367 +0,0 @@ -/* -Package stscreds are credential Providers to retrieve STS AWS credentials. - -STS provides multiple ways to retrieve credentials which can be used when making -future AWS service API operation calls. - -The SDK will ensure that per instance of credentials.Credentials all requests -to refresh the credentials will be synchronized. But, the SDK is unable to -ensure synchronous usage of the AssumeRoleProvider if the value is shared -between multiple Credentials, Sessions or service clients. - -Assume Role - -To assume an IAM role using STS with the SDK you can create a new Credentials -with the SDKs's stscreds package. - - // Initial credentials loaded from SDK's default credential chain. Such as - // the environment, shared credentials (~/.aws/credentials), or EC2 Instance - // Role. These credentials will be used to to make the STS Assume Role API. - sess := session.Must(session.NewSession()) - - // Create the credentials from AssumeRoleProvider to assume the role - // referenced by the "myRoleARN" ARN. - creds := stscreds.NewCredentials(sess, "myRoleArn") - - // Create service client value configured for credentials - // from assumed role. - svc := s3.New(sess, &aws.Config{Credentials: creds}) - -Assume Role with static MFA Token - -To assume an IAM role with a MFA token you can either specify a MFA token code -directly or provide a function to prompt the user each time the credentials -need to refresh the role's credentials. Specifying the TokenCode should be used -for short lived operations that will not need to be refreshed, and when you do -not want to have direct control over the user provides their MFA token. - -With TokenCode the AssumeRoleProvider will be not be able to refresh the role's -credentials. - - // Create the credentials from AssumeRoleProvider to assume the role - // referenced by the "myRoleARN" ARN using the MFA token code provided. - creds := stscreds.NewCredentials(sess, "myRoleArn", func(p *stscreds.AssumeRoleProvider) { - p.SerialNumber = aws.String("myTokenSerialNumber") - p.TokenCode = aws.String("00000000") - }) - - // Create service client value configured for credentials - // from assumed role. - svc := s3.New(sess, &aws.Config{Credentials: creds}) - -Assume Role with MFA Token Provider - -To assume an IAM role with MFA for longer running tasks where the credentials -may need to be refreshed setting the TokenProvider field of AssumeRoleProvider -will allow the credential provider to prompt for new MFA token code when the -role's credentials need to be refreshed. - -The StdinTokenProvider function is available to prompt on stdin to retrieve -the MFA token code from the user. You can also implement custom prompts by -satisfing the TokenProvider function signature. - -Using StdinTokenProvider with multiple AssumeRoleProviders, or Credentials will -have undesirable results as the StdinTokenProvider will not be synchronized. A -single Credentials with an AssumeRoleProvider can be shared safely. - - // Create the credentials from AssumeRoleProvider to assume the role - // referenced by the "myRoleARN" ARN. Prompting for MFA token from stdin. - creds := stscreds.NewCredentials(sess, "myRoleArn", func(p *stscreds.AssumeRoleProvider) { - p.SerialNumber = aws.String("myTokenSerialNumber") - p.TokenProvider = stscreds.StdinTokenProvider - }) - - // Create service client value configured for credentials - // from assumed role. - svc := s3.New(sess, &aws.Config{Credentials: creds}) - -*/ -package stscreds - -import ( - "fmt" - "os" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/client" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/internal/sdkrand" - "github.com/aws/aws-sdk-go/service/sts" -) - -// StdinTokenProvider will prompt on stderr and read from stdin for a string value. -// An error is returned if reading from stdin fails. -// -// Use this function to read MFA tokens from stdin. The function makes no attempt -// to make atomic prompts from stdin across multiple gorouties. -// -// Using StdinTokenProvider with multiple AssumeRoleProviders, or Credentials will -// have undesirable results as the StdinTokenProvider will not be synchronized. A -// single Credentials with an AssumeRoleProvider can be shared safely -// -// Will wait forever until something is provided on the stdin. -func StdinTokenProvider() (string, error) { - var v string - fmt.Fprintf(os.Stderr, "Assume Role MFA token code: ") - _, err := fmt.Scanln(&v) - - return v, err -} - -// ProviderName provides a name of AssumeRole provider -const ProviderName = "AssumeRoleProvider" - -// AssumeRoler represents the minimal subset of the STS client API used by this provider. -type AssumeRoler interface { - AssumeRole(input *sts.AssumeRoleInput) (*sts.AssumeRoleOutput, error) -} - -type assumeRolerWithContext interface { - AssumeRoleWithContext(aws.Context, *sts.AssumeRoleInput, ...request.Option) (*sts.AssumeRoleOutput, error) -} - -// DefaultDuration is the default amount of time in minutes that the credentials -// will be valid for. -var DefaultDuration = time.Duration(15) * time.Minute - -// AssumeRoleProvider retrieves temporary credentials from the STS service, and -// keeps track of their expiration time. -// -// This credential provider will be used by the SDKs default credential change -// when shared configuration is enabled, and the shared config or shared credentials -// file configure assume role. See Session docs for how to do this. -// -// AssumeRoleProvider does not provide any synchronization and it is not safe -// to share this value across multiple Credentials, Sessions, or service clients -// without also sharing the same Credentials instance. -type AssumeRoleProvider struct { - credentials.Expiry - - // STS client to make assume role request with. - Client AssumeRoler - - // Role to be assumed. - RoleARN string - - // Session name, if you wish to reuse the credentials elsewhere. - RoleSessionName string - - // Optional, you can pass tag key-value pairs to your session. These tags are called session tags. - Tags []*sts.Tag - - // A list of keys for session tags that you want to set as transitive. - // If you set a tag key as transitive, the corresponding key and value passes to subsequent sessions in a role chain. - TransitiveTagKeys []*string - - // Expiry duration of the STS credentials. Defaults to 15 minutes if not set. - Duration time.Duration - - // Optional ExternalID to pass along, defaults to nil if not set. - ExternalID *string - - // The policy plain text must be 2048 bytes or shorter. However, an internal - // conversion compresses it into a packed binary format with a separate limit. - // The PackedPolicySize response element indicates by percentage how close to - // the upper size limit the policy is, with 100% equaling the maximum allowed - // size. - Policy *string - - // The ARNs of IAM managed policies you want to use as managed session policies. - // The policies must exist in the same account as the role. - // - // This parameter is optional. You can provide up to 10 managed policy ARNs. - // However, the plain text that you use for both inline and managed session - // policies can't exceed 2,048 characters. - // - // An AWS conversion compresses the passed session policies and session tags - // into a packed binary format that has a separate limit. Your request can fail - // for this limit even if your plain text meets the other requirements. The - // PackedPolicySize response element indicates by percentage how close the policies - // and tags for your request are to the upper size limit. - // - // Passing policies to this operation returns new temporary credentials. The - // resulting session's permissions are the intersection of the role's identity-based - // policy and the session policies. You can use the role's temporary credentials - // in subsequent AWS API calls to access resources in the account that owns - // the role. You cannot use session policies to grant more permissions than - // those allowed by the identity-based policy of the role that is being assumed. - // For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. - PolicyArns []*sts.PolicyDescriptorType - - // The identification number of the MFA device that is associated with the user - // who is making the AssumeRole call. Specify this value if the trust policy - // of the role being assumed includes a condition that requires MFA authentication. - // The value is either the serial number for a hardware device (such as GAHT12345678) - // or an Amazon Resource Name (ARN) for a virtual device (such as arn:aws:iam::123456789012:mfa/user). - SerialNumber *string - - // The value provided by the MFA device, if the trust policy of the role being - // assumed requires MFA (that is, if the policy includes a condition that tests - // for MFA). If the role being assumed requires MFA and if the TokenCode value - // is missing or expired, the AssumeRole call returns an "access denied" error. - // - // If SerialNumber is set and neither TokenCode nor TokenProvider are also - // set an error will be returned. - TokenCode *string - - // Async method of providing MFA token code for assuming an IAM role with MFA. - // The value returned by the function will be used as the TokenCode in the Retrieve - // call. See StdinTokenProvider for a provider that prompts and reads from stdin. - // - // This token provider will be called when ever the assumed role's - // credentials need to be refreshed when SerialNumber is also set and - // TokenCode is not set. - // - // If both TokenCode and TokenProvider is set, TokenProvider will be used and - // TokenCode is ignored. - TokenProvider func() (string, error) - - // ExpiryWindow will allow the credentials to trigger refreshing prior to - // the credentials actually expiring. This is beneficial so race conditions - // with expiring credentials do not cause request to fail unexpectedly - // due to ExpiredTokenException exceptions. - // - // So a ExpiryWindow of 10s would cause calls to IsExpired() to return true - // 10 seconds before the credentials are actually expired. - // - // If ExpiryWindow is 0 or less it will be ignored. - ExpiryWindow time.Duration - - // MaxJitterFrac reduces the effective Duration of each credential requested - // by a random percentage between 0 and MaxJitterFraction. MaxJitterFrac must - // have a value between 0 and 1. Any other value may lead to expected behavior. - // With a MaxJitterFrac value of 0, default) will no jitter will be used. - // - // For example, with a Duration of 30m and a MaxJitterFrac of 0.1, the - // AssumeRole call will be made with an arbitrary Duration between 27m and - // 30m. - // - // MaxJitterFrac should not be negative. - MaxJitterFrac float64 -} - -// NewCredentials returns a pointer to a new Credentials value wrapping the -// AssumeRoleProvider. The credentials will expire every 15 minutes and the -// role will be named after a nanosecond timestamp of this operation. The -// Credentials value will attempt to refresh the credentials using the provider -// when Credentials.Get is called, if the cached credentials are expiring. -// -// Takes a Config provider to create the STS client. The ConfigProvider is -// satisfied by the session.Session type. -// -// It is safe to share the returned Credentials with multiple Sessions and -// service clients. All access to the credentials and refreshing them -// will be synchronized. -func NewCredentials(c client.ConfigProvider, roleARN string, options ...func(*AssumeRoleProvider)) *credentials.Credentials { - p := &AssumeRoleProvider{ - Client: sts.New(c), - RoleARN: roleARN, - Duration: DefaultDuration, - } - - for _, option := range options { - option(p) - } - - return credentials.NewCredentials(p) -} - -// NewCredentialsWithClient returns a pointer to a new Credentials value wrapping the -// AssumeRoleProvider. The credentials will expire every 15 minutes and the -// role will be named after a nanosecond timestamp of this operation. The -// Credentials value will attempt to refresh the credentials using the provider -// when Credentials.Get is called, if the cached credentials are expiring. -// -// Takes an AssumeRoler which can be satisfied by the STS client. -// -// It is safe to share the returned Credentials with multiple Sessions and -// service clients. All access to the credentials and refreshing them -// will be synchronized. -func NewCredentialsWithClient(svc AssumeRoler, roleARN string, options ...func(*AssumeRoleProvider)) *credentials.Credentials { - p := &AssumeRoleProvider{ - Client: svc, - RoleARN: roleARN, - Duration: DefaultDuration, - } - - for _, option := range options { - option(p) - } - - return credentials.NewCredentials(p) -} - -// Retrieve generates a new set of temporary credentials using STS. -func (p *AssumeRoleProvider) Retrieve() (credentials.Value, error) { - return p.RetrieveWithContext(aws.BackgroundContext()) -} - -// RetrieveWithContext generates a new set of temporary credentials using STS. -func (p *AssumeRoleProvider) RetrieveWithContext(ctx credentials.Context) (credentials.Value, error) { - // Apply defaults where parameters are not set. - if p.RoleSessionName == "" { - // Try to work out a role name that will hopefully end up unique. - p.RoleSessionName = fmt.Sprintf("%d", time.Now().UTC().UnixNano()) - } - if p.Duration == 0 { - // Expire as often as AWS permits. - p.Duration = DefaultDuration - } - jitter := time.Duration(sdkrand.SeededRand.Float64() * p.MaxJitterFrac * float64(p.Duration)) - input := &sts.AssumeRoleInput{ - DurationSeconds: aws.Int64(int64((p.Duration - jitter) / time.Second)), - RoleArn: aws.String(p.RoleARN), - RoleSessionName: aws.String(p.RoleSessionName), - ExternalId: p.ExternalID, - Tags: p.Tags, - PolicyArns: p.PolicyArns, - TransitiveTagKeys: p.TransitiveTagKeys, - } - if p.Policy != nil { - input.Policy = p.Policy - } - if p.SerialNumber != nil { - if p.TokenCode != nil { - input.SerialNumber = p.SerialNumber - input.TokenCode = p.TokenCode - } else if p.TokenProvider != nil { - input.SerialNumber = p.SerialNumber - code, err := p.TokenProvider() - if err != nil { - return credentials.Value{ProviderName: ProviderName}, err - } - input.TokenCode = aws.String(code) - } else { - return credentials.Value{ProviderName: ProviderName}, - awserr.New("AssumeRoleTokenNotAvailable", - "assume role with MFA enabled, but neither TokenCode nor TokenProvider are set", nil) - } - } - - var roleOutput *sts.AssumeRoleOutput - var err error - - if c, ok := p.Client.(assumeRolerWithContext); ok { - roleOutput, err = c.AssumeRoleWithContext(ctx, input) - } else { - roleOutput, err = p.Client.AssumeRole(input) - } - - if err != nil { - return credentials.Value{ProviderName: ProviderName}, err - } - - // We will proactively generate new credentials before they expire. - p.SetExpiration(*roleOutput.Credentials.Expiration, p.ExpiryWindow) - - return credentials.Value{ - AccessKeyID: *roleOutput.Credentials.AccessKeyId, - SecretAccessKey: *roleOutput.Credentials.SecretAccessKey, - SessionToken: *roleOutput.Credentials.SessionToken, - ProviderName: ProviderName, - }, nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/web_identity_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/web_identity_provider.go deleted file mode 100644 index cefe2a7..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/web_identity_provider.go +++ /dev/null @@ -1,154 +0,0 @@ -package stscreds - -import ( - "fmt" - "io/ioutil" - "strconv" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/client" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/service/sts" - "github.com/aws/aws-sdk-go/service/sts/stsiface" -) - -const ( - // ErrCodeWebIdentity will be used as an error code when constructing - // a new error to be returned during session creation or retrieval. - ErrCodeWebIdentity = "WebIdentityErr" - - // WebIdentityProviderName is the web identity provider name - WebIdentityProviderName = "WebIdentityCredentials" -) - -// now is used to return a time.Time object representing -// the current time. This can be used to easily test and -// compare test values. -var now = time.Now - -// TokenFetcher shuold return WebIdentity token bytes or an error -type TokenFetcher interface { - FetchToken(credentials.Context) ([]byte, error) -} - -// FetchTokenPath is a path to a WebIdentity token file -type FetchTokenPath string - -// FetchToken returns a token by reading from the filesystem -func (f FetchTokenPath) FetchToken(ctx credentials.Context) ([]byte, error) { - data, err := ioutil.ReadFile(string(f)) - if err != nil { - errMsg := fmt.Sprintf("unable to read file at %s", f) - return nil, awserr.New(ErrCodeWebIdentity, errMsg, err) - } - return data, nil -} - -// WebIdentityRoleProvider is used to retrieve credentials using -// an OIDC token. -type WebIdentityRoleProvider struct { - credentials.Expiry - PolicyArns []*sts.PolicyDescriptorType - - // Duration the STS credentials will be valid for. Truncated to seconds. - // If unset, the assumed role will use AssumeRoleWithWebIdentity's default - // expiry duration. See - // https://docs.aws.amazon.com/sdk-for-go/api/service/sts/#STS.AssumeRoleWithWebIdentity - // for more information. - Duration time.Duration - - // The amount of time the credentials will be refreshed before they expire. - // This is useful refresh credentials before they expire to reduce risk of - // using credentials as they expire. If unset, will default to no expiry - // window. - ExpiryWindow time.Duration - - client stsiface.STSAPI - - tokenFetcher TokenFetcher - roleARN string - roleSessionName string -} - -// NewWebIdentityCredentials will return a new set of credentials with a given -// configuration, role arn, and token file path. -func NewWebIdentityCredentials(c client.ConfigProvider, roleARN, roleSessionName, path string) *credentials.Credentials { - svc := sts.New(c) - p := NewWebIdentityRoleProvider(svc, roleARN, roleSessionName, path) - return credentials.NewCredentials(p) -} - -// NewWebIdentityRoleProvider will return a new WebIdentityRoleProvider with the -// provided stsiface.STSAPI -func NewWebIdentityRoleProvider(svc stsiface.STSAPI, roleARN, roleSessionName, path string) *WebIdentityRoleProvider { - return NewWebIdentityRoleProviderWithToken(svc, roleARN, roleSessionName, FetchTokenPath(path)) -} - -// NewWebIdentityRoleProviderWithToken will return a new WebIdentityRoleProvider with the -// provided stsiface.STSAPI and a TokenFetcher -func NewWebIdentityRoleProviderWithToken(svc stsiface.STSAPI, roleARN, roleSessionName string, tokenFetcher TokenFetcher) *WebIdentityRoleProvider { - return &WebIdentityRoleProvider{ - client: svc, - tokenFetcher: tokenFetcher, - roleARN: roleARN, - roleSessionName: roleSessionName, - } -} - -// Retrieve will attempt to assume a role from a token which is located at -// 'WebIdentityTokenFilePath' specified destination and if that is empty an -// error will be returned. -func (p *WebIdentityRoleProvider) Retrieve() (credentials.Value, error) { - return p.RetrieveWithContext(aws.BackgroundContext()) -} - -// RetrieveWithContext will attempt to assume a role from a token which is located at -// 'WebIdentityTokenFilePath' specified destination and if that is empty an -// error will be returned. -func (p *WebIdentityRoleProvider) RetrieveWithContext(ctx credentials.Context) (credentials.Value, error) { - b, err := p.tokenFetcher.FetchToken(ctx) - if err != nil { - return credentials.Value{}, awserr.New(ErrCodeWebIdentity, "failed fetching WebIdentity token: ", err) - } - - sessionName := p.roleSessionName - if len(sessionName) == 0 { - // session name is used to uniquely identify a session. This simply - // uses unix time in nanoseconds to uniquely identify sessions. - sessionName = strconv.FormatInt(now().UnixNano(), 10) - } - - var duration *int64 - if p.Duration != 0 { - duration = aws.Int64(int64(p.Duration / time.Second)) - } - - req, resp := p.client.AssumeRoleWithWebIdentityRequest(&sts.AssumeRoleWithWebIdentityInput{ - PolicyArns: p.PolicyArns, - RoleArn: &p.roleARN, - RoleSessionName: &sessionName, - WebIdentityToken: aws.String(string(b)), - DurationSeconds: duration, - }) - - req.SetContext(ctx) - - // InvalidIdentityToken error is a temporary error that can occur - // when assuming an Role with a JWT web identity token. - req.RetryErrorCodes = append(req.RetryErrorCodes, sts.ErrCodeInvalidIdentityTokenException) - if err := req.Send(); err != nil { - return credentials.Value{}, awserr.New(ErrCodeWebIdentity, "failed to retrieve credentials", err) - } - - p.SetExpiration(aws.TimeValue(resp.Credentials.Expiration), p.ExpiryWindow) - - value := credentials.Value{ - AccessKeyID: aws.StringValue(resp.Credentials.AccessKeyId), - SecretAccessKey: aws.StringValue(resp.Credentials.SecretAccessKey), - SessionToken: aws.StringValue(resp.Credentials.SessionToken), - ProviderName: WebIdentityProviderName, - } - return value, nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/csm/doc.go b/vendor/github.com/aws/aws-sdk-go/aws/csm/doc.go deleted file mode 100644 index 25a66d1..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/csm/doc.go +++ /dev/null @@ -1,69 +0,0 @@ -// Package csm provides the Client Side Monitoring (CSM) client which enables -// sending metrics via UDP connection to the CSM agent. This package provides -// control options, and configuration for the CSM client. The client can be -// controlled manually, or automatically via the SDK's Session configuration. -// -// Enabling CSM client via SDK's Session configuration -// -// The CSM client can be enabled automatically via SDK's Session configuration. -// The SDK's session configuration enables the CSM client if the AWS_CSM_PORT -// environment variable is set to a non-empty value. -// -// The configuration options for the CSM client via the SDK's session -// configuration are: -// -// * AWS_CSM_PORT= -// The port number the CSM agent will receive metrics on. -// -// * AWS_CSM_HOST= -// The hostname, or IP address the CSM agent will receive metrics on. -// Without port number. -// -// Manually enabling the CSM client -// -// The CSM client can be started, paused, and resumed manually. The Start -// function will enable the CSM client to publish metrics to the CSM agent. It -// is safe to call Start concurrently, but if Start is called additional times -// with different ClientID or address it will panic. -// -// r, err := csm.Start("clientID", ":31000") -// if err != nil { -// panic(fmt.Errorf("failed starting CSM: %v", err)) -// } -// -// When controlling the CSM client manually, you must also inject its request -// handlers into the SDK's Session configuration for the SDK's API clients to -// publish metrics. -// -// sess, err := session.NewSession(&aws.Config{}) -// if err != nil { -// panic(fmt.Errorf("failed loading session: %v", err)) -// } -// -// // Add CSM client's metric publishing request handlers to the SDK's -// // Session Configuration. -// r.InjectHandlers(&sess.Handlers) -// -// Controlling CSM client -// -// Once the CSM client has been enabled the Get function will return a Reporter -// value that you can use to pause and resume the metrics published to the CSM -// agent. If Get function is called before the reporter is enabled with the -// Start function or via SDK's Session configuration nil will be returned. -// -// The Pause method can be called to stop the CSM client publishing metrics to -// the CSM agent. The Continue method will resume metric publishing. -// -// // Get the CSM client Reporter. -// r := csm.Get() -// -// // Will pause monitoring -// r.Pause() -// resp, err = client.GetObject(&s3.GetObjectInput{ -// Bucket: aws.String("bucket"), -// Key: aws.String("key"), -// }) -// -// // Resume monitoring -// r.Continue() -package csm diff --git a/vendor/github.com/aws/aws-sdk-go/aws/csm/enable.go b/vendor/github.com/aws/aws-sdk-go/aws/csm/enable.go deleted file mode 100644 index 4b19e28..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/csm/enable.go +++ /dev/null @@ -1,89 +0,0 @@ -package csm - -import ( - "fmt" - "strings" - "sync" -) - -var ( - lock sync.Mutex -) - -const ( - // DefaultPort is used when no port is specified. - DefaultPort = "31000" - - // DefaultHost is the host that will be used when none is specified. - DefaultHost = "127.0.0.1" -) - -// AddressWithDefaults returns a CSM address built from the host and port -// values. If the host or port is not set, default values will be used -// instead. If host is "localhost" it will be replaced with "127.0.0.1". -func AddressWithDefaults(host, port string) string { - if len(host) == 0 || strings.EqualFold(host, "localhost") { - host = DefaultHost - } - - if len(port) == 0 { - port = DefaultPort - } - - // Only IP6 host can contain a colon - if strings.Contains(host, ":") { - return "[" + host + "]:" + port - } - - return host + ":" + port -} - -// Start will start a long running go routine to capture -// client side metrics. Calling start multiple time will only -// start the metric listener once and will panic if a different -// client ID or port is passed in. -// -// r, err := csm.Start("clientID", "127.0.0.1:31000") -// if err != nil { -// panic(fmt.Errorf("expected no error, but received %v", err)) -// } -// sess := session.NewSession() -// r.InjectHandlers(sess.Handlers) -// -// svc := s3.New(sess) -// out, err := svc.GetObject(&s3.GetObjectInput{ -// Bucket: aws.String("bucket"), -// Key: aws.String("key"), -// }) -func Start(clientID string, url string) (*Reporter, error) { - lock.Lock() - defer lock.Unlock() - - if sender == nil { - sender = newReporter(clientID, url) - } else { - if sender.clientID != clientID { - panic(fmt.Errorf("inconsistent client IDs. %q was expected, but received %q", sender.clientID, clientID)) - } - - if sender.url != url { - panic(fmt.Errorf("inconsistent URLs. %q was expected, but received %q", sender.url, url)) - } - } - - if err := connect(url); err != nil { - sender = nil - return nil, err - } - - return sender, nil -} - -// Get will return a reporter if one exists, if one does not exist, nil will -// be returned. -func Get() *Reporter { - lock.Lock() - defer lock.Unlock() - - return sender -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go b/vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go deleted file mode 100644 index 5bacc79..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go +++ /dev/null @@ -1,109 +0,0 @@ -package csm - -import ( - "strconv" - "time" - - "github.com/aws/aws-sdk-go/aws" -) - -type metricTime time.Time - -func (t metricTime) MarshalJSON() ([]byte, error) { - ns := time.Duration(time.Time(t).UnixNano()) - return []byte(strconv.FormatInt(int64(ns/time.Millisecond), 10)), nil -} - -type metric struct { - ClientID *string `json:"ClientId,omitempty"` - API *string `json:"Api,omitempty"` - Service *string `json:"Service,omitempty"` - Timestamp *metricTime `json:"Timestamp,omitempty"` - Type *string `json:"Type,omitempty"` - Version *int `json:"Version,omitempty"` - - AttemptCount *int `json:"AttemptCount,omitempty"` - Latency *int `json:"Latency,omitempty"` - - Fqdn *string `json:"Fqdn,omitempty"` - UserAgent *string `json:"UserAgent,omitempty"` - AttemptLatency *int `json:"AttemptLatency,omitempty"` - - SessionToken *string `json:"SessionToken,omitempty"` - Region *string `json:"Region,omitempty"` - AccessKey *string `json:"AccessKey,omitempty"` - HTTPStatusCode *int `json:"HttpStatusCode,omitempty"` - XAmzID2 *string `json:"XAmzId2,omitempty"` - XAmzRequestID *string `json:"XAmznRequestId,omitempty"` - - AWSException *string `json:"AwsException,omitempty"` - AWSExceptionMessage *string `json:"AwsExceptionMessage,omitempty"` - SDKException *string `json:"SdkException,omitempty"` - SDKExceptionMessage *string `json:"SdkExceptionMessage,omitempty"` - - FinalHTTPStatusCode *int `json:"FinalHttpStatusCode,omitempty"` - FinalAWSException *string `json:"FinalAwsException,omitempty"` - FinalAWSExceptionMessage *string `json:"FinalAwsExceptionMessage,omitempty"` - FinalSDKException *string `json:"FinalSdkException,omitempty"` - FinalSDKExceptionMessage *string `json:"FinalSdkExceptionMessage,omitempty"` - - DestinationIP *string `json:"DestinationIp,omitempty"` - ConnectionReused *int `json:"ConnectionReused,omitempty"` - - AcquireConnectionLatency *int `json:"AcquireConnectionLatency,omitempty"` - ConnectLatency *int `json:"ConnectLatency,omitempty"` - RequestLatency *int `json:"RequestLatency,omitempty"` - DNSLatency *int `json:"DnsLatency,omitempty"` - TCPLatency *int `json:"TcpLatency,omitempty"` - SSLLatency *int `json:"SslLatency,omitempty"` - - MaxRetriesExceeded *int `json:"MaxRetriesExceeded,omitempty"` -} - -func (m *metric) TruncateFields() { - m.ClientID = truncateString(m.ClientID, 255) - m.UserAgent = truncateString(m.UserAgent, 256) - - m.AWSException = truncateString(m.AWSException, 128) - m.AWSExceptionMessage = truncateString(m.AWSExceptionMessage, 512) - - m.SDKException = truncateString(m.SDKException, 128) - m.SDKExceptionMessage = truncateString(m.SDKExceptionMessage, 512) - - m.FinalAWSException = truncateString(m.FinalAWSException, 128) - m.FinalAWSExceptionMessage = truncateString(m.FinalAWSExceptionMessage, 512) - - m.FinalSDKException = truncateString(m.FinalSDKException, 128) - m.FinalSDKExceptionMessage = truncateString(m.FinalSDKExceptionMessage, 512) -} - -func truncateString(v *string, l int) *string { - if v != nil && len(*v) > l { - nv := (*v)[:l] - return &nv - } - - return v -} - -func (m *metric) SetException(e metricException) { - switch te := e.(type) { - case awsException: - m.AWSException = aws.String(te.exception) - m.AWSExceptionMessage = aws.String(te.message) - case sdkException: - m.SDKException = aws.String(te.exception) - m.SDKExceptionMessage = aws.String(te.message) - } -} - -func (m *metric) SetFinalException(e metricException) { - switch te := e.(type) { - case awsException: - m.FinalAWSException = aws.String(te.exception) - m.FinalAWSExceptionMessage = aws.String(te.message) - case sdkException: - m.FinalSDKException = aws.String(te.exception) - m.FinalSDKExceptionMessage = aws.String(te.message) - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_chan.go b/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_chan.go deleted file mode 100644 index 82a3e34..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_chan.go +++ /dev/null @@ -1,55 +0,0 @@ -package csm - -import ( - "sync/atomic" -) - -const ( - runningEnum = iota - pausedEnum -) - -var ( - // MetricsChannelSize of metrics to hold in the channel - MetricsChannelSize = 100 -) - -type metricChan struct { - ch chan metric - paused *int64 -} - -func newMetricChan(size int) metricChan { - return metricChan{ - ch: make(chan metric, size), - paused: new(int64), - } -} - -func (ch *metricChan) Pause() { - atomic.StoreInt64(ch.paused, pausedEnum) -} - -func (ch *metricChan) Continue() { - atomic.StoreInt64(ch.paused, runningEnum) -} - -func (ch *metricChan) IsPaused() bool { - v := atomic.LoadInt64(ch.paused) - return v == pausedEnum -} - -// Push will push metrics to the metric channel if the channel -// is not paused -func (ch *metricChan) Push(m metric) bool { - if ch.IsPaused() { - return false - } - - select { - case ch.ch <- m: - return true - default: - return false - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_exception.go b/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_exception.go deleted file mode 100644 index 54a9928..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_exception.go +++ /dev/null @@ -1,26 +0,0 @@ -package csm - -type metricException interface { - Exception() string - Message() string -} - -type requestException struct { - exception string - message string -} - -func (e requestException) Exception() string { - return e.exception -} -func (e requestException) Message() string { - return e.message -} - -type awsException struct { - requestException -} - -type sdkException struct { - requestException -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go b/vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go deleted file mode 100644 index 835bcd4..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go +++ /dev/null @@ -1,264 +0,0 @@ -package csm - -import ( - "encoding/json" - "net" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/request" -) - -// Reporter will gather metrics of API requests made and -// send those metrics to the CSM endpoint. -type Reporter struct { - clientID string - url string - conn net.Conn - metricsCh metricChan - done chan struct{} -} - -var ( - sender *Reporter -) - -func connect(url string) error { - const network = "udp" - if err := sender.connect(network, url); err != nil { - return err - } - - if sender.done == nil { - sender.done = make(chan struct{}) - go sender.start() - } - - return nil -} - -func newReporter(clientID, url string) *Reporter { - return &Reporter{ - clientID: clientID, - url: url, - metricsCh: newMetricChan(MetricsChannelSize), - } -} - -func (rep *Reporter) sendAPICallAttemptMetric(r *request.Request) { - if rep == nil { - return - } - - now := time.Now() - creds, _ := r.Config.Credentials.Get() - - m := metric{ - ClientID: aws.String(rep.clientID), - API: aws.String(r.Operation.Name), - Service: aws.String(r.ClientInfo.ServiceID), - Timestamp: (*metricTime)(&now), - UserAgent: aws.String(r.HTTPRequest.Header.Get("User-Agent")), - Region: r.Config.Region, - Type: aws.String("ApiCallAttempt"), - Version: aws.Int(1), - - XAmzRequestID: aws.String(r.RequestID), - - AttemptLatency: aws.Int(int(now.Sub(r.AttemptTime).Nanoseconds() / int64(time.Millisecond))), - AccessKey: aws.String(creds.AccessKeyID), - } - - if r.HTTPResponse != nil { - m.HTTPStatusCode = aws.Int(r.HTTPResponse.StatusCode) - } - - if r.Error != nil { - if awserr, ok := r.Error.(awserr.Error); ok { - m.SetException(getMetricException(awserr)) - } - } - - m.TruncateFields() - rep.metricsCh.Push(m) -} - -func getMetricException(err awserr.Error) metricException { - msg := err.Error() - code := err.Code() - - switch code { - case request.ErrCodeRequestError, - request.ErrCodeSerialization, - request.CanceledErrorCode: - return sdkException{ - requestException{exception: code, message: msg}, - } - default: - return awsException{ - requestException{exception: code, message: msg}, - } - } -} - -func (rep *Reporter) sendAPICallMetric(r *request.Request) { - if rep == nil { - return - } - - now := time.Now() - m := metric{ - ClientID: aws.String(rep.clientID), - API: aws.String(r.Operation.Name), - Service: aws.String(r.ClientInfo.ServiceID), - Timestamp: (*metricTime)(&now), - UserAgent: aws.String(r.HTTPRequest.Header.Get("User-Agent")), - Type: aws.String("ApiCall"), - AttemptCount: aws.Int(r.RetryCount + 1), - Region: r.Config.Region, - Latency: aws.Int(int(time.Since(r.Time) / time.Millisecond)), - XAmzRequestID: aws.String(r.RequestID), - MaxRetriesExceeded: aws.Int(boolIntValue(r.RetryCount >= r.MaxRetries())), - } - - if r.HTTPResponse != nil { - m.FinalHTTPStatusCode = aws.Int(r.HTTPResponse.StatusCode) - } - - if r.Error != nil { - if awserr, ok := r.Error.(awserr.Error); ok { - m.SetFinalException(getMetricException(awserr)) - } - } - - m.TruncateFields() - - // TODO: Probably want to figure something out for logging dropped - // metrics - rep.metricsCh.Push(m) -} - -func (rep *Reporter) connect(network, url string) error { - if rep.conn != nil { - rep.conn.Close() - } - - conn, err := net.Dial(network, url) - if err != nil { - return awserr.New("UDPError", "Could not connect", err) - } - - rep.conn = conn - - return nil -} - -func (rep *Reporter) close() { - if rep.done != nil { - close(rep.done) - } - - rep.metricsCh.Pause() -} - -func (rep *Reporter) start() { - defer func() { - rep.metricsCh.Pause() - }() - - for { - select { - case <-rep.done: - rep.done = nil - return - case m := <-rep.metricsCh.ch: - // TODO: What to do with this error? Probably should just log - b, err := json.Marshal(m) - if err != nil { - continue - } - - rep.conn.Write(b) - } - } -} - -// Pause will pause the metric channel preventing any new metrics from being -// added. It is safe to call concurrently with other calls to Pause, but if -// called concurently with Continue can lead to unexpected state. -func (rep *Reporter) Pause() { - lock.Lock() - defer lock.Unlock() - - if rep == nil { - return - } - - rep.close() -} - -// Continue will reopen the metric channel and allow for monitoring to be -// resumed. It is safe to call concurrently with other calls to Continue, but -// if called concurently with Pause can lead to unexpected state. -func (rep *Reporter) Continue() { - lock.Lock() - defer lock.Unlock() - if rep == nil { - return - } - - if !rep.metricsCh.IsPaused() { - return - } - - rep.metricsCh.Continue() -} - -// Client side metric handler names -const ( - APICallMetricHandlerName = "awscsm.SendAPICallMetric" - APICallAttemptMetricHandlerName = "awscsm.SendAPICallAttemptMetric" -) - -// InjectHandlers will will enable client side metrics and inject the proper -// handlers to handle how metrics are sent. -// -// InjectHandlers is NOT safe to call concurrently. Calling InjectHandlers -// multiple times may lead to unexpected behavior, (e.g. duplicate metrics). -// -// // Start must be called in order to inject the correct handlers -// r, err := csm.Start("clientID", "127.0.0.1:8094") -// if err != nil { -// panic(fmt.Errorf("expected no error, but received %v", err)) -// } -// -// sess := session.NewSession() -// r.InjectHandlers(&sess.Handlers) -// -// // create a new service client with our client side metric session -// svc := s3.New(sess) -func (rep *Reporter) InjectHandlers(handlers *request.Handlers) { - if rep == nil { - return - } - - handlers.Complete.PushFrontNamed(request.NamedHandler{ - Name: APICallMetricHandlerName, - Fn: rep.sendAPICallMetric, - }) - - handlers.CompleteAttempt.PushFrontNamed(request.NamedHandler{ - Name: APICallAttemptMetricHandlerName, - Fn: rep.sendAPICallAttemptMetric, - }) -} - -// boolIntValue return 1 for true and 0 for false. -func boolIntValue(b bool) int { - if b { - return 1 - } - - return 0 -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go deleted file mode 100644 index 23bb639..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go +++ /dev/null @@ -1,207 +0,0 @@ -// Package defaults is a collection of helpers to retrieve the SDK's default -// configuration and handlers. -// -// Generally this package shouldn't be used directly, but session.Session -// instead. This package is useful when you need to reset the defaults -// of a session or service client to the SDK defaults before setting -// additional parameters. -package defaults - -import ( - "fmt" - "net" - "net/http" - "net/url" - "os" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/corehandlers" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds" - "github.com/aws/aws-sdk-go/aws/credentials/endpointcreds" - "github.com/aws/aws-sdk-go/aws/ec2metadata" - "github.com/aws/aws-sdk-go/aws/endpoints" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/internal/shareddefaults" -) - -// A Defaults provides a collection of default values for SDK clients. -type Defaults struct { - Config *aws.Config - Handlers request.Handlers -} - -// Get returns the SDK's default values with Config and handlers pre-configured. -func Get() Defaults { - cfg := Config() - handlers := Handlers() - cfg.Credentials = CredChain(cfg, handlers) - - return Defaults{ - Config: cfg, - Handlers: handlers, - } -} - -// Config returns the default configuration without credentials. -// To retrieve a config with credentials also included use -// `defaults.Get().Config` instead. -// -// Generally you shouldn't need to use this method directly, but -// is available if you need to reset the configuration of an -// existing service client or session. -func Config() *aws.Config { - return aws.NewConfig(). - WithCredentials(credentials.AnonymousCredentials). - WithRegion(os.Getenv("AWS_REGION")). - WithHTTPClient(http.DefaultClient). - WithMaxRetries(aws.UseServiceDefaultRetries). - WithLogger(aws.NewDefaultLogger()). - WithLogLevel(aws.LogOff). - WithEndpointResolver(endpoints.DefaultResolver()) -} - -// Handlers returns the default request handlers. -// -// Generally you shouldn't need to use this method directly, but -// is available if you need to reset the request handlers of an -// existing service client or session. -func Handlers() request.Handlers { - var handlers request.Handlers - - handlers.Validate.PushBackNamed(corehandlers.ValidateEndpointHandler) - handlers.Validate.AfterEachFn = request.HandlerListStopOnError - handlers.Build.PushBackNamed(corehandlers.SDKVersionUserAgentHandler) - handlers.Build.PushBackNamed(corehandlers.AddHostExecEnvUserAgentHander) - handlers.Build.AfterEachFn = request.HandlerListStopOnError - handlers.Sign.PushBackNamed(corehandlers.BuildContentLengthHandler) - handlers.Send.PushBackNamed(corehandlers.ValidateReqSigHandler) - handlers.Send.PushBackNamed(corehandlers.SendHandler) - handlers.AfterRetry.PushBackNamed(corehandlers.AfterRetryHandler) - handlers.ValidateResponse.PushBackNamed(corehandlers.ValidateResponseHandler) - - return handlers -} - -// CredChain returns the default credential chain. -// -// Generally you shouldn't need to use this method directly, but -// is available if you need to reset the credentials of an -// existing service client or session's Config. -func CredChain(cfg *aws.Config, handlers request.Handlers) *credentials.Credentials { - return credentials.NewCredentials(&credentials.ChainProvider{ - VerboseErrors: aws.BoolValue(cfg.CredentialsChainVerboseErrors), - Providers: CredProviders(cfg, handlers), - }) -} - -// CredProviders returns the slice of providers used in -// the default credential chain. -// -// For applications that need to use some other provider (for example use -// different environment variables for legacy reasons) but still fall back -// on the default chain of providers. This allows that default chaint to be -// automatically updated -func CredProviders(cfg *aws.Config, handlers request.Handlers) []credentials.Provider { - return []credentials.Provider{ - &credentials.EnvProvider{}, - &credentials.SharedCredentialsProvider{Filename: "", Profile: ""}, - RemoteCredProvider(*cfg, handlers), - } -} - -const ( - httpProviderAuthorizationEnvVar = "AWS_CONTAINER_AUTHORIZATION_TOKEN" - httpProviderEnvVar = "AWS_CONTAINER_CREDENTIALS_FULL_URI" -) - -// RemoteCredProvider returns a credentials provider for the default remote -// endpoints such as EC2 or ECS Roles. -func RemoteCredProvider(cfg aws.Config, handlers request.Handlers) credentials.Provider { - if u := os.Getenv(httpProviderEnvVar); len(u) > 0 { - return localHTTPCredProvider(cfg, handlers, u) - } - - if uri := os.Getenv(shareddefaults.ECSCredsProviderEnvVar); len(uri) > 0 { - u := fmt.Sprintf("%s%s", shareddefaults.ECSContainerCredentialsURI, uri) - return httpCredProvider(cfg, handlers, u) - } - - return ec2RoleProvider(cfg, handlers) -} - -var lookupHostFn = net.LookupHost - -func isLoopbackHost(host string) (bool, error) { - ip := net.ParseIP(host) - if ip != nil { - return ip.IsLoopback(), nil - } - - // Host is not an ip, perform lookup - addrs, err := lookupHostFn(host) - if err != nil { - return false, err - } - for _, addr := range addrs { - if !net.ParseIP(addr).IsLoopback() { - return false, nil - } - } - - return true, nil -} - -func localHTTPCredProvider(cfg aws.Config, handlers request.Handlers, u string) credentials.Provider { - var errMsg string - - parsed, err := url.Parse(u) - if err != nil { - errMsg = fmt.Sprintf("invalid URL, %v", err) - } else { - host := aws.URLHostname(parsed) - if len(host) == 0 { - errMsg = "unable to parse host from local HTTP cred provider URL" - } else if isLoopback, loopbackErr := isLoopbackHost(host); loopbackErr != nil { - errMsg = fmt.Sprintf("failed to resolve host %q, %v", host, loopbackErr) - } else if !isLoopback { - errMsg = fmt.Sprintf("invalid endpoint host, %q, only loopback hosts are allowed.", host) - } - } - - if len(errMsg) > 0 { - if cfg.Logger != nil { - cfg.Logger.Log("Ignoring, HTTP credential provider", errMsg, err) - } - return credentials.ErrorProvider{ - Err: awserr.New("CredentialsEndpointError", errMsg, err), - ProviderName: endpointcreds.ProviderName, - } - } - - return httpCredProvider(cfg, handlers, u) -} - -func httpCredProvider(cfg aws.Config, handlers request.Handlers, u string) credentials.Provider { - return endpointcreds.NewProviderClient(cfg, handlers, u, - func(p *endpointcreds.Provider) { - p.ExpiryWindow = 5 * time.Minute - p.AuthorizationToken = os.Getenv(httpProviderAuthorizationEnvVar) - }, - ) -} - -func ec2RoleProvider(cfg aws.Config, handlers request.Handlers) credentials.Provider { - resolver := cfg.EndpointResolver - if resolver == nil { - resolver = endpoints.DefaultResolver() - } - - e, _ := resolver.EndpointFor(endpoints.Ec2metadataServiceID, "") - return &ec2rolecreds.EC2RoleProvider{ - Client: ec2metadata.NewClient(cfg, handlers, e.URL, e.SigningRegion), - ExpiryWindow: 5 * time.Minute, - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/defaults/shared_config.go b/vendor/github.com/aws/aws-sdk-go/aws/defaults/shared_config.go deleted file mode 100644 index ca0ee1d..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/defaults/shared_config.go +++ /dev/null @@ -1,27 +0,0 @@ -package defaults - -import ( - "github.com/aws/aws-sdk-go/internal/shareddefaults" -) - -// SharedCredentialsFilename returns the SDK's default file path -// for the shared credentials file. -// -// Builds the shared config file path based on the OS's platform. -// -// - Linux/Unix: $HOME/.aws/credentials -// - Windows: %USERPROFILE%\.aws\credentials -func SharedCredentialsFilename() string { - return shareddefaults.SharedCredentialsFilename() -} - -// SharedConfigFilename returns the SDK's default file path for -// the shared config file. -// -// Builds the shared config file path based on the OS's platform. -// -// - Linux/Unix: $HOME/.aws/config -// - Windows: %USERPROFILE%\.aws\config -func SharedConfigFilename() string { - return shareddefaults.SharedConfigFilename() -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/doc.go b/vendor/github.com/aws/aws-sdk-go/aws/doc.go deleted file mode 100644 index 4fcb616..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/doc.go +++ /dev/null @@ -1,56 +0,0 @@ -// Package aws provides the core SDK's utilities and shared types. Use this package's -// utilities to simplify setting and reading API operations parameters. -// -// Value and Pointer Conversion Utilities -// -// This package includes a helper conversion utility for each scalar type the SDK's -// API use. These utilities make getting a pointer of the scalar, and dereferencing -// a pointer easier. -// -// Each conversion utility comes in two forms. Value to Pointer and Pointer to Value. -// The Pointer to value will safely dereference the pointer and return its value. -// If the pointer was nil, the scalar's zero value will be returned. -// -// The value to pointer functions will be named after the scalar type. So get a -// *string from a string value use the "String" function. This makes it easy to -// to get pointer of a literal string value, because getting the address of a -// literal requires assigning the value to a variable first. -// -// var strPtr *string -// -// // Without the SDK's conversion functions -// str := "my string" -// strPtr = &str -// -// // With the SDK's conversion functions -// strPtr = aws.String("my string") -// -// // Convert *string to string value -// str = aws.StringValue(strPtr) -// -// In addition to scalars the aws package also includes conversion utilities for -// map and slice for commonly types used in API parameters. The map and slice -// conversion functions use similar naming pattern as the scalar conversion -// functions. -// -// var strPtrs []*string -// var strs []string = []string{"Go", "Gophers", "Go"} -// -// // Convert []string to []*string -// strPtrs = aws.StringSlice(strs) -// -// // Convert []*string to []string -// strs = aws.StringValueSlice(strPtrs) -// -// SDK Default HTTP Client -// -// The SDK will use the http.DefaultClient if a HTTP client is not provided to -// the SDK's Session, or service client constructor. This means that if the -// http.DefaultClient is modified by other components of your application the -// modifications will be picked up by the SDK as well. -// -// In some cases this might be intended, but it is a better practice to create -// a custom HTTP Client to share explicitly through your application. You can -// configure the SDK to use the custom HTTP Client by setting the HTTPClient -// value of the SDK's Config type when creating a Session or service client. -package aws diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go deleted file mode 100644 index 69fa63d..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go +++ /dev/null @@ -1,250 +0,0 @@ -package ec2metadata - -import ( - "encoding/json" - "fmt" - "net/http" - "strconv" - "strings" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/internal/sdkuri" -) - -// getToken uses the duration to return a token for EC2 metadata service, -// or an error if the request failed. -func (c *EC2Metadata) getToken(ctx aws.Context, duration time.Duration) (tokenOutput, error) { - op := &request.Operation{ - Name: "GetToken", - HTTPMethod: "PUT", - HTTPPath: "/latest/api/token", - } - - var output tokenOutput - req := c.NewRequest(op, nil, &output) - req.SetContext(ctx) - - // remove the fetch token handler from the request handlers to avoid infinite recursion - req.Handlers.Sign.RemoveByName(fetchTokenHandlerName) - - // Swap the unmarshalMetadataHandler with unmarshalTokenHandler on this request. - req.Handlers.Unmarshal.Swap(unmarshalMetadataHandlerName, unmarshalTokenHandler) - - ttl := strconv.FormatInt(int64(duration/time.Second), 10) - req.HTTPRequest.Header.Set(ttlHeader, ttl) - - err := req.Send() - - // Errors with bad request status should be returned. - if err != nil { - err = awserr.NewRequestFailure( - awserr.New(req.HTTPResponse.Status, http.StatusText(req.HTTPResponse.StatusCode), err), - req.HTTPResponse.StatusCode, req.RequestID) - } - - return output, err -} - -// GetMetadata uses the path provided to request information from the EC2 -// instance metadata service. The content will be returned as a string, or -// error if the request failed. -func (c *EC2Metadata) GetMetadata(p string) (string, error) { - return c.GetMetadataWithContext(aws.BackgroundContext(), p) -} - -// GetMetadataWithContext uses the path provided to request information from the EC2 -// instance metadata service. The content will be returned as a string, or -// error if the request failed. -func (c *EC2Metadata) GetMetadataWithContext(ctx aws.Context, p string) (string, error) { - op := &request.Operation{ - Name: "GetMetadata", - HTTPMethod: "GET", - HTTPPath: sdkuri.PathJoin("/latest/meta-data", p), - } - output := &metadataOutput{} - - req := c.NewRequest(op, nil, output) - - req.SetContext(ctx) - - err := req.Send() - return output.Content, err -} - -// GetUserData returns the userdata that was configured for the service. If -// there is no user-data setup for the EC2 instance a "NotFoundError" error -// code will be returned. -func (c *EC2Metadata) GetUserData() (string, error) { - return c.GetUserDataWithContext(aws.BackgroundContext()) -} - -// GetUserDataWithContext returns the userdata that was configured for the service. If -// there is no user-data setup for the EC2 instance a "NotFoundError" error -// code will be returned. -func (c *EC2Metadata) GetUserDataWithContext(ctx aws.Context) (string, error) { - op := &request.Operation{ - Name: "GetUserData", - HTTPMethod: "GET", - HTTPPath: "/latest/user-data", - } - - output := &metadataOutput{} - req := c.NewRequest(op, nil, output) - req.SetContext(ctx) - - err := req.Send() - return output.Content, err -} - -// GetDynamicData uses the path provided to request information from the EC2 -// instance metadata service for dynamic data. The content will be returned -// as a string, or error if the request failed. -func (c *EC2Metadata) GetDynamicData(p string) (string, error) { - return c.GetDynamicDataWithContext(aws.BackgroundContext(), p) -} - -// GetDynamicDataWithContext uses the path provided to request information from the EC2 -// instance metadata service for dynamic data. The content will be returned -// as a string, or error if the request failed. -func (c *EC2Metadata) GetDynamicDataWithContext(ctx aws.Context, p string) (string, error) { - op := &request.Operation{ - Name: "GetDynamicData", - HTTPMethod: "GET", - HTTPPath: sdkuri.PathJoin("/latest/dynamic", p), - } - - output := &metadataOutput{} - req := c.NewRequest(op, nil, output) - req.SetContext(ctx) - - err := req.Send() - return output.Content, err -} - -// GetInstanceIdentityDocument retrieves an identity document describing an -// instance. Error is returned if the request fails or is unable to parse -// the response. -func (c *EC2Metadata) GetInstanceIdentityDocument() (EC2InstanceIdentityDocument, error) { - return c.GetInstanceIdentityDocumentWithContext(aws.BackgroundContext()) -} - -// GetInstanceIdentityDocumentWithContext retrieves an identity document describing an -// instance. Error is returned if the request fails or is unable to parse -// the response. -func (c *EC2Metadata) GetInstanceIdentityDocumentWithContext(ctx aws.Context) (EC2InstanceIdentityDocument, error) { - resp, err := c.GetDynamicDataWithContext(ctx, "instance-identity/document") - if err != nil { - return EC2InstanceIdentityDocument{}, - awserr.New("EC2MetadataRequestError", - "failed to get EC2 instance identity document", err) - } - - doc := EC2InstanceIdentityDocument{} - if err := json.NewDecoder(strings.NewReader(resp)).Decode(&doc); err != nil { - return EC2InstanceIdentityDocument{}, - awserr.New(request.ErrCodeSerialization, - "failed to decode EC2 instance identity document", err) - } - - return doc, nil -} - -// IAMInfo retrieves IAM info from the metadata API -func (c *EC2Metadata) IAMInfo() (EC2IAMInfo, error) { - return c.IAMInfoWithContext(aws.BackgroundContext()) -} - -// IAMInfoWithContext retrieves IAM info from the metadata API -func (c *EC2Metadata) IAMInfoWithContext(ctx aws.Context) (EC2IAMInfo, error) { - resp, err := c.GetMetadataWithContext(ctx, "iam/info") - if err != nil { - return EC2IAMInfo{}, - awserr.New("EC2MetadataRequestError", - "failed to get EC2 IAM info", err) - } - - info := EC2IAMInfo{} - if err := json.NewDecoder(strings.NewReader(resp)).Decode(&info); err != nil { - return EC2IAMInfo{}, - awserr.New(request.ErrCodeSerialization, - "failed to decode EC2 IAM info", err) - } - - if info.Code != "Success" { - errMsg := fmt.Sprintf("failed to get EC2 IAM Info (%s)", info.Code) - return EC2IAMInfo{}, - awserr.New("EC2MetadataError", errMsg, nil) - } - - return info, nil -} - -// Region returns the region the instance is running in. -func (c *EC2Metadata) Region() (string, error) { - return c.RegionWithContext(aws.BackgroundContext()) -} - -// RegionWithContext returns the region the instance is running in. -func (c *EC2Metadata) RegionWithContext(ctx aws.Context) (string, error) { - ec2InstanceIdentityDocument, err := c.GetInstanceIdentityDocumentWithContext(ctx) - if err != nil { - return "", err - } - // extract region from the ec2InstanceIdentityDocument - region := ec2InstanceIdentityDocument.Region - if len(region) == 0 { - return "", awserr.New("EC2MetadataError", "invalid region received for ec2metadata instance", nil) - } - // returns region - return region, nil -} - -// Available returns if the application has access to the EC2 Metadata service. -// Can be used to determine if application is running within an EC2 Instance and -// the metadata service is available. -func (c *EC2Metadata) Available() bool { - return c.AvailableWithContext(aws.BackgroundContext()) -} - -// AvailableWithContext returns if the application has access to the EC2 Metadata service. -// Can be used to determine if application is running within an EC2 Instance and -// the metadata service is available. -func (c *EC2Metadata) AvailableWithContext(ctx aws.Context) bool { - if _, err := c.GetMetadataWithContext(ctx, "instance-id"); err != nil { - return false - } - - return true -} - -// An EC2IAMInfo provides the shape for unmarshaling -// an IAM info from the metadata API -type EC2IAMInfo struct { - Code string - LastUpdated time.Time - InstanceProfileArn string - InstanceProfileID string -} - -// An EC2InstanceIdentityDocument provides the shape for unmarshaling -// an instance identity document -type EC2InstanceIdentityDocument struct { - DevpayProductCodes []string `json:"devpayProductCodes"` - MarketplaceProductCodes []string `json:"marketplaceProductCodes"` - AvailabilityZone string `json:"availabilityZone"` - PrivateIP string `json:"privateIp"` - Version string `json:"version"` - Region string `json:"region"` - InstanceID string `json:"instanceId"` - BillingProducts []string `json:"billingProducts"` - InstanceType string `json:"instanceType"` - AccountID string `json:"accountId"` - PendingTime time.Time `json:"pendingTime"` - ImageID string `json:"imageId"` - KernelID string `json:"kernelId"` - RamdiskID string `json:"ramdiskId"` - Architecture string `json:"architecture"` -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go deleted file mode 100644 index 8f35b34..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go +++ /dev/null @@ -1,245 +0,0 @@ -// Package ec2metadata provides the client for making API calls to the -// EC2 Metadata service. -// -// This package's client can be disabled completely by setting the environment -// variable "AWS_EC2_METADATA_DISABLED=true". This environment variable set to -// true instructs the SDK to disable the EC2 Metadata client. The client cannot -// be used while the environment variable is set to true, (case insensitive). -// -// The endpoint of the EC2 IMDS client can be configured via the environment -// variable, AWS_EC2_METADATA_SERVICE_ENDPOINT when creating the client with a -// Session. See aws/session#Options.EC2IMDSEndpoint for more details. -package ec2metadata - -import ( - "bytes" - "errors" - "io" - "net/http" - "net/url" - "os" - "strconv" - "strings" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/client" - "github.com/aws/aws-sdk-go/aws/client/metadata" - "github.com/aws/aws-sdk-go/aws/corehandlers" - "github.com/aws/aws-sdk-go/aws/request" -) - -const ( - // ServiceName is the name of the service. - ServiceName = "ec2metadata" - disableServiceEnvVar = "AWS_EC2_METADATA_DISABLED" - - // Headers for Token and TTL - ttlHeader = "x-aws-ec2-metadata-token-ttl-seconds" - tokenHeader = "x-aws-ec2-metadata-token" - - // Named Handler constants - fetchTokenHandlerName = "FetchTokenHandler" - unmarshalMetadataHandlerName = "unmarshalMetadataHandler" - unmarshalTokenHandlerName = "unmarshalTokenHandler" - enableTokenProviderHandlerName = "enableTokenProviderHandler" - - // TTL constants - defaultTTL = 21600 * time.Second - ttlExpirationWindow = 30 * time.Second -) - -// A EC2Metadata is an EC2 Metadata service Client. -type EC2Metadata struct { - *client.Client -} - -// New creates a new instance of the EC2Metadata client with a session. -// This client is safe to use across multiple goroutines. -// -// -// Example: -// // Create a EC2Metadata client from just a session. -// svc := ec2metadata.New(mySession) -// -// // Create a EC2Metadata client with additional configuration -// svc := ec2metadata.New(mySession, aws.NewConfig().WithLogLevel(aws.LogDebugHTTPBody)) -func New(p client.ConfigProvider, cfgs ...*aws.Config) *EC2Metadata { - c := p.ClientConfig(ServiceName, cfgs...) - return NewClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion) -} - -// NewClient returns a new EC2Metadata client. Should be used to create -// a client when not using a session. Generally using just New with a session -// is preferred. -// -// Will remove the URL path from the endpoint provided to ensure the EC2 IMDS -// client is able to communicate with the EC2 IMDS API. -// -// If an unmodified HTTP client is provided from the stdlib default, or no client -// the EC2RoleProvider's EC2Metadata HTTP client's timeout will be shortened. -// To disable this set Config.EC2MetadataDisableTimeoutOverride to false. Enabled by default. -func NewClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion string, opts ...func(*client.Client)) *EC2Metadata { - if !aws.BoolValue(cfg.EC2MetadataDisableTimeoutOverride) && httpClientZero(cfg.HTTPClient) { - // If the http client is unmodified and this feature is not disabled - // set custom timeouts for EC2Metadata requests. - cfg.HTTPClient = &http.Client{ - // use a shorter timeout than default because the metadata - // service is local if it is running, and to fail faster - // if not running on an ec2 instance. - Timeout: 1 * time.Second, - } - // max number of retries on the client operation - cfg.MaxRetries = aws.Int(2) - } - - if u, err := url.Parse(endpoint); err == nil { - // Remove path from the endpoint since it will be added by requests. - // This is an artifact of the SDK adding `/latest` to the endpoint for - // EC2 IMDS, but this is now moved to the operation definition. - u.Path = "" - u.RawPath = "" - endpoint = u.String() - } - - svc := &EC2Metadata{ - Client: client.New( - cfg, - metadata.ClientInfo{ - ServiceName: ServiceName, - ServiceID: ServiceName, - Endpoint: endpoint, - APIVersion: "latest", - }, - handlers, - ), - } - - // token provider instance - tp := newTokenProvider(svc, defaultTTL) - - // NamedHandler for fetching token - svc.Handlers.Sign.PushBackNamed(request.NamedHandler{ - Name: fetchTokenHandlerName, - Fn: tp.fetchTokenHandler, - }) - // NamedHandler for enabling token provider - svc.Handlers.Complete.PushBackNamed(request.NamedHandler{ - Name: enableTokenProviderHandlerName, - Fn: tp.enableTokenProviderHandler, - }) - - svc.Handlers.Unmarshal.PushBackNamed(unmarshalHandler) - svc.Handlers.UnmarshalError.PushBack(unmarshalError) - svc.Handlers.Validate.Clear() - svc.Handlers.Validate.PushBack(validateEndpointHandler) - - // Disable the EC2 Metadata service if the environment variable is set. - // This short-circuits the service's functionality to always fail to send - // requests. - if strings.ToLower(os.Getenv(disableServiceEnvVar)) == "true" { - svc.Handlers.Send.SwapNamed(request.NamedHandler{ - Name: corehandlers.SendHandler.Name, - Fn: func(r *request.Request) { - r.HTTPResponse = &http.Response{ - Header: http.Header{}, - } - r.Error = awserr.New( - request.CanceledErrorCode, - "EC2 IMDS access disabled via "+disableServiceEnvVar+" env var", - nil) - }, - }) - } - - // Add additional options to the service config - for _, option := range opts { - option(svc.Client) - } - return svc -} - -func httpClientZero(c *http.Client) bool { - return c == nil || (c.Transport == nil && c.CheckRedirect == nil && c.Jar == nil && c.Timeout == 0) -} - -type metadataOutput struct { - Content string -} - -type tokenOutput struct { - Token string - TTL time.Duration -} - -// unmarshal token handler is used to parse the response of a getToken operation -var unmarshalTokenHandler = request.NamedHandler{ - Name: unmarshalTokenHandlerName, - Fn: func(r *request.Request) { - defer r.HTTPResponse.Body.Close() - var b bytes.Buffer - if _, err := io.Copy(&b, r.HTTPResponse.Body); err != nil { - r.Error = awserr.NewRequestFailure(awserr.New(request.ErrCodeSerialization, - "unable to unmarshal EC2 metadata response", err), r.HTTPResponse.StatusCode, r.RequestID) - return - } - - v := r.HTTPResponse.Header.Get(ttlHeader) - data, ok := r.Data.(*tokenOutput) - if !ok { - return - } - - data.Token = b.String() - // TTL is in seconds - i, err := strconv.ParseInt(v, 10, 64) - if err != nil { - r.Error = awserr.NewRequestFailure(awserr.New(request.ParamFormatErrCode, - "unable to parse EC2 token TTL response", err), r.HTTPResponse.StatusCode, r.RequestID) - return - } - t := time.Duration(i) * time.Second - data.TTL = t - }, -} - -var unmarshalHandler = request.NamedHandler{ - Name: unmarshalMetadataHandlerName, - Fn: func(r *request.Request) { - defer r.HTTPResponse.Body.Close() - var b bytes.Buffer - if _, err := io.Copy(&b, r.HTTPResponse.Body); err != nil { - r.Error = awserr.NewRequestFailure(awserr.New(request.ErrCodeSerialization, - "unable to unmarshal EC2 metadata response", err), r.HTTPResponse.StatusCode, r.RequestID) - return - } - - if data, ok := r.Data.(*metadataOutput); ok { - data.Content = b.String() - } - }, -} - -func unmarshalError(r *request.Request) { - defer r.HTTPResponse.Body.Close() - var b bytes.Buffer - - if _, err := io.Copy(&b, r.HTTPResponse.Body); err != nil { - r.Error = awserr.NewRequestFailure( - awserr.New(request.ErrCodeSerialization, "unable to unmarshal EC2 metadata error response", err), - r.HTTPResponse.StatusCode, r.RequestID) - return - } - - // Response body format is not consistent between metadata endpoints. - // Grab the error message as a string and include that as the source error - r.Error = awserr.NewRequestFailure(awserr.New("EC2MetadataError", "failed to make EC2Metadata request", errors.New(b.String())), - r.HTTPResponse.StatusCode, r.RequestID) -} - -func validateEndpointHandler(r *request.Request) { - if r.ClientInfo.Endpoint == "" { - r.Error = aws.ErrMissingEndpoint - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.go deleted file mode 100644 index 4b29f19..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.go +++ /dev/null @@ -1,93 +0,0 @@ -package ec2metadata - -import ( - "net/http" - "sync/atomic" - "time" - - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/request" -) - -// A tokenProvider struct provides access to EC2Metadata client -// and atomic instance of a token, along with configuredTTL for it. -// tokenProvider also provides an atomic flag to disable the -// fetch token operation. -// The disabled member will use 0 as false, and 1 as true. -type tokenProvider struct { - client *EC2Metadata - token atomic.Value - configuredTTL time.Duration - disabled uint32 -} - -// A ec2Token struct helps use of token in EC2 Metadata service ops -type ec2Token struct { - token string - credentials.Expiry -} - -// newTokenProvider provides a pointer to a tokenProvider instance -func newTokenProvider(c *EC2Metadata, duration time.Duration) *tokenProvider { - return &tokenProvider{client: c, configuredTTL: duration} -} - -// fetchTokenHandler fetches token for EC2Metadata service client by default. -func (t *tokenProvider) fetchTokenHandler(r *request.Request) { - - // short-circuits to insecure data flow if tokenProvider is disabled. - if v := atomic.LoadUint32(&t.disabled); v == 1 { - return - } - - if ec2Token, ok := t.token.Load().(ec2Token); ok && !ec2Token.IsExpired() { - r.HTTPRequest.Header.Set(tokenHeader, ec2Token.token) - return - } - - output, err := t.client.getToken(r.Context(), t.configuredTTL) - - if err != nil { - - // change the disabled flag on token provider to true, - // when error is request timeout error. - if requestFailureError, ok := err.(awserr.RequestFailure); ok { - switch requestFailureError.StatusCode() { - case http.StatusForbidden, http.StatusNotFound, http.StatusMethodNotAllowed: - atomic.StoreUint32(&t.disabled, 1) - case http.StatusBadRequest: - r.Error = requestFailureError - } - - // Check if request timed out while waiting for response - if e, ok := requestFailureError.OrigErr().(awserr.Error); ok { - if e.Code() == request.ErrCodeRequestError { - atomic.StoreUint32(&t.disabled, 1) - } - } - } - return - } - - newToken := ec2Token{ - token: output.Token, - } - newToken.SetExpiration(time.Now().Add(output.TTL), ttlExpirationWindow) - t.token.Store(newToken) - - // Inject token header to the request. - if ec2Token, ok := t.token.Load().(ec2Token); ok { - r.HTTPRequest.Header.Set(tokenHeader, ec2Token.token) - } -} - -// enableTokenProviderHandler enables the token provider -func (t *tokenProvider) enableTokenProviderHandler(r *request.Request) { - // If the error code status is 401, we enable the token provider - if e, ok := r.Error.(awserr.RequestFailure); ok && e != nil && - e.StatusCode() == http.StatusUnauthorized { - t.token.Store(ec2Token{}) - atomic.StoreUint32(&t.disabled, 0) - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go deleted file mode 100644 index 654fb1a..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go +++ /dev/null @@ -1,216 +0,0 @@ -package endpoints - -import ( - "encoding/json" - "fmt" - "io" - - "github.com/aws/aws-sdk-go/aws/awserr" -) - -type modelDefinition map[string]json.RawMessage - -// A DecodeModelOptions are the options for how the endpoints model definition -// are decoded. -type DecodeModelOptions struct { - SkipCustomizations bool -} - -// Set combines all of the option functions together. -func (d *DecodeModelOptions) Set(optFns ...func(*DecodeModelOptions)) { - for _, fn := range optFns { - fn(d) - } -} - -// DecodeModel unmarshals a Regions and Endpoint model definition file into -// a endpoint Resolver. If the file format is not supported, or an error occurs -// when unmarshaling the model an error will be returned. -// -// Casting the return value of this func to a EnumPartitions will -// allow you to get a list of the partitions in the order the endpoints -// will be resolved in. -// -// resolver, err := endpoints.DecodeModel(reader) -// -// partitions := resolver.(endpoints.EnumPartitions).Partitions() -// for _, p := range partitions { -// // ... inspect partitions -// } -func DecodeModel(r io.Reader, optFns ...func(*DecodeModelOptions)) (Resolver, error) { - var opts DecodeModelOptions - opts.Set(optFns...) - - // Get the version of the partition file to determine what - // unmarshaling model to use. - modelDef := modelDefinition{} - if err := json.NewDecoder(r).Decode(&modelDef); err != nil { - return nil, newDecodeModelError("failed to decode endpoints model", err) - } - - var version string - if b, ok := modelDef["version"]; ok { - version = string(b) - } else { - return nil, newDecodeModelError("endpoints version not found in model", nil) - } - - if version == "3" { - return decodeV3Endpoints(modelDef, opts) - } - - return nil, newDecodeModelError( - fmt.Sprintf("endpoints version %s, not supported", version), nil) -} - -func decodeV3Endpoints(modelDef modelDefinition, opts DecodeModelOptions) (Resolver, error) { - b, ok := modelDef["partitions"] - if !ok { - return nil, newDecodeModelError("endpoints model missing partitions", nil) - } - - ps := partitions{} - if err := json.Unmarshal(b, &ps); err != nil { - return nil, newDecodeModelError("failed to decode endpoints model", err) - } - - if opts.SkipCustomizations { - return ps, nil - } - - // Customization - for i := 0; i < len(ps); i++ { - p := &ps[i] - custAddEC2Metadata(p) - custAddS3DualStack(p) - custRegionalS3(p) - custRmIotDataService(p) - custFixAppAutoscalingChina(p) - custFixAppAutoscalingUsGov(p) - } - - return ps, nil -} - -func custAddS3DualStack(p *partition) { - if !(p.ID == "aws" || p.ID == "aws-cn" || p.ID == "aws-us-gov") { - return - } - - custAddDualstack(p, "s3") - custAddDualstack(p, "s3-control") -} - -func custRegionalS3(p *partition) { - if p.ID != "aws" { - return - } - - service, ok := p.Services["s3"] - if !ok { - return - } - - // If global endpoint already exists no customization needed. - if _, ok := service.Endpoints["aws-global"]; ok { - return - } - - service.PartitionEndpoint = "aws-global" - service.Endpoints["us-east-1"] = endpoint{} - service.Endpoints["aws-global"] = endpoint{ - Hostname: "s3.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - } - - p.Services["s3"] = service -} - -func custAddDualstack(p *partition, svcName string) { - s, ok := p.Services[svcName] - if !ok { - return - } - - s.Defaults.HasDualStack = boxedTrue - s.Defaults.DualStackHostname = "{service}.dualstack.{region}.{dnsSuffix}" - - p.Services[svcName] = s -} - -func custAddEC2Metadata(p *partition) { - p.Services["ec2metadata"] = service{ - IsRegionalized: boxedFalse, - PartitionEndpoint: "aws-global", - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "169.254.169.254/latest", - Protocols: []string{"http"}, - }, - }, - } -} - -func custRmIotDataService(p *partition) { - delete(p.Services, "data.iot") -} - -func custFixAppAutoscalingChina(p *partition) { - if p.ID != "aws-cn" { - return - } - - const serviceName = "application-autoscaling" - s, ok := p.Services[serviceName] - if !ok { - return - } - - const expectHostname = `autoscaling.{region}.amazonaws.com` - if e, a := s.Defaults.Hostname, expectHostname; e != a { - fmt.Printf("custFixAppAutoscalingChina: ignoring customization, expected %s, got %s\n", e, a) - return - } - - s.Defaults.Hostname = expectHostname + ".cn" - p.Services[serviceName] = s -} - -func custFixAppAutoscalingUsGov(p *partition) { - if p.ID != "aws-us-gov" { - return - } - - const serviceName = "application-autoscaling" - s, ok := p.Services[serviceName] - if !ok { - return - } - - if a := s.Defaults.CredentialScope.Service; a != "" { - fmt.Printf("custFixAppAutoscalingUsGov: ignoring customization, expected empty credential scope service, got %s\n", a) - return - } - - if a := s.Defaults.Hostname; a != "" { - fmt.Printf("custFixAppAutoscalingUsGov: ignoring customization, expected empty hostname, got %s\n", a) - return - } - - s.Defaults.CredentialScope.Service = "application-autoscaling" - s.Defaults.Hostname = "autoscaling.{region}.amazonaws.com" - - p.Services[serviceName] = s -} - -type decodeModelError struct { - awsError -} - -func newDecodeModelError(msg string, err error) decodeModelError { - return decodeModelError{ - awsError: awserr.New("DecodeEndpointsModelError", msg, err), - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go deleted file mode 100644 index 0c6fcdb..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go +++ /dev/null @@ -1,10484 +0,0 @@ -// Code generated by aws/endpoints/v3model_codegen.go. DO NOT EDIT. - -package endpoints - -import ( - "regexp" -) - -// Partition identifiers -const ( - AwsPartitionID = "aws" // AWS Standard partition. - AwsCnPartitionID = "aws-cn" // AWS China partition. - AwsUsGovPartitionID = "aws-us-gov" // AWS GovCloud (US) partition. - AwsIsoPartitionID = "aws-iso" // AWS ISO (US) partition. - AwsIsoBPartitionID = "aws-iso-b" // AWS ISOB (US) partition. -) - -// AWS Standard partition's regions. -const ( - AfSouth1RegionID = "af-south-1" // Africa (Cape Town). - ApEast1RegionID = "ap-east-1" // Asia Pacific (Hong Kong). - ApNortheast1RegionID = "ap-northeast-1" // Asia Pacific (Tokyo). - ApNortheast2RegionID = "ap-northeast-2" // Asia Pacific (Seoul). - ApSouth1RegionID = "ap-south-1" // Asia Pacific (Mumbai). - ApSoutheast1RegionID = "ap-southeast-1" // Asia Pacific (Singapore). - ApSoutheast2RegionID = "ap-southeast-2" // Asia Pacific (Sydney). - CaCentral1RegionID = "ca-central-1" // Canada (Central). - EuCentral1RegionID = "eu-central-1" // Europe (Frankfurt). - EuNorth1RegionID = "eu-north-1" // Europe (Stockholm). - EuSouth1RegionID = "eu-south-1" // Europe (Milan). - EuWest1RegionID = "eu-west-1" // Europe (Ireland). - EuWest2RegionID = "eu-west-2" // Europe (London). - EuWest3RegionID = "eu-west-3" // Europe (Paris). - MeSouth1RegionID = "me-south-1" // Middle East (Bahrain). - SaEast1RegionID = "sa-east-1" // South America (Sao Paulo). - UsEast1RegionID = "us-east-1" // US East (N. Virginia). - UsEast2RegionID = "us-east-2" // US East (Ohio). - UsWest1RegionID = "us-west-1" // US West (N. California). - UsWest2RegionID = "us-west-2" // US West (Oregon). -) - -// AWS China partition's regions. -const ( - CnNorth1RegionID = "cn-north-1" // China (Beijing). - CnNorthwest1RegionID = "cn-northwest-1" // China (Ningxia). -) - -// AWS GovCloud (US) partition's regions. -const ( - UsGovEast1RegionID = "us-gov-east-1" // AWS GovCloud (US-East). - UsGovWest1RegionID = "us-gov-west-1" // AWS GovCloud (US-West). -) - -// AWS ISO (US) partition's regions. -const ( - UsIsoEast1RegionID = "us-iso-east-1" // US ISO East. -) - -// AWS ISOB (US) partition's regions. -const ( - UsIsobEast1RegionID = "us-isob-east-1" // US ISOB East (Ohio). -) - -// DefaultResolver returns an Endpoint resolver that will be able -// to resolve endpoints for: AWS Standard, AWS China, AWS GovCloud (US), AWS ISO (US), and AWS ISOB (US). -// -// Use DefaultPartitions() to get the list of the default partitions. -func DefaultResolver() Resolver { - return defaultPartitions -} - -// DefaultPartitions returns a list of the partitions the SDK is bundled -// with. The available partitions are: AWS Standard, AWS China, AWS GovCloud (US), AWS ISO (US), and AWS ISOB (US). -// -// partitions := endpoints.DefaultPartitions -// for _, p := range partitions { -// // ... inspect partitions -// } -func DefaultPartitions() []Partition { - return defaultPartitions.Partitions() -} - -var defaultPartitions = partitions{ - awsPartition, - awscnPartition, - awsusgovPartition, - awsisoPartition, - awsisobPartition, -} - -// AwsPartition returns the Resolver for AWS Standard. -func AwsPartition() Partition { - return awsPartition.Partition() -} - -var awsPartition = partition{ - ID: "aws", - Name: "AWS Standard", - DNSSuffix: "amazonaws.com", - RegionRegex: regionRegex{ - Regexp: func() *regexp.Regexp { - reg, _ := regexp.Compile("^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$") - return reg - }(), - }, - Defaults: endpoint{ - Hostname: "{service}.{region}.{dnsSuffix}", - Protocols: []string{"https"}, - SignatureVersions: []string{"v4"}, - }, - Regions: regions{ - "af-south-1": region{ - Description: "Africa (Cape Town)", - }, - "ap-east-1": region{ - Description: "Asia Pacific (Hong Kong)", - }, - "ap-northeast-1": region{ - Description: "Asia Pacific (Tokyo)", - }, - "ap-northeast-2": region{ - Description: "Asia Pacific (Seoul)", - }, - "ap-south-1": region{ - Description: "Asia Pacific (Mumbai)", - }, - "ap-southeast-1": region{ - Description: "Asia Pacific (Singapore)", - }, - "ap-southeast-2": region{ - Description: "Asia Pacific (Sydney)", - }, - "ca-central-1": region{ - Description: "Canada (Central)", - }, - "eu-central-1": region{ - Description: "Europe (Frankfurt)", - }, - "eu-north-1": region{ - Description: "Europe (Stockholm)", - }, - "eu-south-1": region{ - Description: "Europe (Milan)", - }, - "eu-west-1": region{ - Description: "Europe (Ireland)", - }, - "eu-west-2": region{ - Description: "Europe (London)", - }, - "eu-west-3": region{ - Description: "Europe (Paris)", - }, - "me-south-1": region{ - Description: "Middle East (Bahrain)", - }, - "sa-east-1": region{ - Description: "South America (Sao Paulo)", - }, - "us-east-1": region{ - Description: "US East (N. Virginia)", - }, - "us-east-2": region{ - Description: "US East (Ohio)", - }, - "us-west-1": region{ - Description: "US West (N. California)", - }, - "us-west-2": region{ - Description: "US West (Oregon)", - }, - }, - Services: services{ - "a4b": service{ - - Endpoints: endpoints{ - "us-east-1": endpoint{}, - }, - }, - "access-analyzer": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-ca-central-1": endpoint{ - Hostname: "access-analyzer-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "access-analyzer-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "access-analyzer-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "access-analyzer-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "access-analyzer-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "acm": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "ca-central-1-fips": endpoint{ - Hostname: "acm-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "acm-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "acm-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{}, - "us-west-1-fips": endpoint{ - Hostname: "acm-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "acm-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "acm-pca": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-ca-central-1": endpoint{ - Hostname: "acm-pca-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "acm-pca-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "acm-pca-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "acm-pca-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "acm-pca-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "airflow": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "amplifybackend": service{ - - Endpoints: endpoints{ - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "api.detective": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "api.detective-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "api.detective-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{}, - "us-west-1-fips": endpoint{ - Hostname: "api.detective-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "api.detective-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "api.ecr": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{ - Hostname: "api.ecr.af-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "af-south-1", - }, - }, - "ap-east-1": endpoint{ - Hostname: "api.ecr.ap-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-east-1", - }, - }, - "ap-northeast-1": endpoint{ - Hostname: "api.ecr.ap-northeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-1", - }, - }, - "ap-northeast-2": endpoint{ - Hostname: "api.ecr.ap-northeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-2", - }, - }, - "ap-south-1": endpoint{ - Hostname: "api.ecr.ap-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-south-1", - }, - }, - "ap-southeast-1": endpoint{ - Hostname: "api.ecr.ap-southeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-1", - }, - }, - "ap-southeast-2": endpoint{ - Hostname: "api.ecr.ap-southeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-2", - }, - }, - "ca-central-1": endpoint{ - Hostname: "api.ecr.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "eu-central-1": endpoint{ - Hostname: "api.ecr.eu-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-central-1", - }, - }, - "eu-north-1": endpoint{ - Hostname: "api.ecr.eu-north-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-north-1", - }, - }, - "eu-south-1": endpoint{ - Hostname: "api.ecr.eu-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-south-1", - }, - }, - "eu-west-1": endpoint{ - Hostname: "api.ecr.eu-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-1", - }, - }, - "eu-west-2": endpoint{ - Hostname: "api.ecr.eu-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-2", - }, - }, - "eu-west-3": endpoint{ - Hostname: "api.ecr.eu-west-3.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-3", - }, - }, - "fips-dkr-us-east-1": endpoint{ - Hostname: "ecr-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-dkr-us-east-2": endpoint{ - Hostname: "ecr-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-dkr-us-west-1": endpoint{ - Hostname: "ecr-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-dkr-us-west-2": endpoint{ - Hostname: "ecr-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "ecr-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "ecr-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "ecr-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "ecr-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{ - Hostname: "api.ecr.me-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "me-south-1", - }, - }, - "sa-east-1": endpoint{ - Hostname: "api.ecr.sa-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "sa-east-1", - }, - }, - "us-east-1": endpoint{ - Hostname: "api.ecr.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{ - Hostname: "api.ecr.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{ - Hostname: "api.ecr.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{ - Hostname: "api.ecr.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "api.elastic-inference": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{ - Hostname: "api.elastic-inference.ap-northeast-1.amazonaws.com", - }, - "ap-northeast-2": endpoint{ - Hostname: "api.elastic-inference.ap-northeast-2.amazonaws.com", - }, - "eu-west-1": endpoint{ - Hostname: "api.elastic-inference.eu-west-1.amazonaws.com", - }, - "us-east-1": endpoint{ - Hostname: "api.elastic-inference.us-east-1.amazonaws.com", - }, - "us-east-2": endpoint{ - Hostname: "api.elastic-inference.us-east-2.amazonaws.com", - }, - "us-west-2": endpoint{ - Hostname: "api.elastic-inference.us-west-2.amazonaws.com", - }, - }, - }, - "api.fleethub.iot": service{ - - Endpoints: endpoints{ - "us-east-1": endpoint{}, - }, - }, - "api.mediatailor": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "api.pricing": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "pricing", - }, - }, - Endpoints: endpoints{ - "ap-south-1": endpoint{}, - "us-east-1": endpoint{}, - }, - }, - "api.sagemaker": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "api-fips.sagemaker.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "api-fips.sagemaker.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{}, - "us-west-1-fips": endpoint{ - Hostname: "api-fips.sagemaker.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "api-fips.sagemaker.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "apigateway": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "app-integrations": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "appflow": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "application-autoscaling": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "appmesh": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "appstream2": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - CredentialScope: credentialScope{ - Service: "appstream", - }, - }, - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "fips": endpoint{ - Hostname: "appstream2-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "appsync": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "athena": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "athena-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "athena-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "athena-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "athena-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "autoscaling": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "autoscaling-plans": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "backup": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "batch": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "fips.batch.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "fips.batch.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "fips.batch.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "fips.batch.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "budgets": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "budgets.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - }, - }, - "ce": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "ce.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - }, - }, - "chime": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "chime.us-east-1.amazonaws.com", - Protocols: []string{"https"}, - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - }, - }, - "cloud9": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "clouddirectory": service{ - - Endpoints: endpoints{ - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "cloudformation": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "cloudformation-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "cloudformation-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{}, - "us-west-1-fips": endpoint{ - Hostname: "cloudformation-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "cloudformation-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "cloudfront": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "cloudfront.amazonaws.com", - Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - }, - }, - "cloudhsm": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "cloudhsmv2": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "cloudhsm", - }, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "cloudsearch": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "cloudtrail": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "cloudtrail-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "cloudtrail-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "cloudtrail-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "cloudtrail-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "codeartifact": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "codebuild": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "codebuild-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "codebuild-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{}, - "us-west-1-fips": endpoint{ - Hostname: "codebuild-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "codebuild-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "codecommit": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips": endpoint{ - Hostname: "codecommit-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "codedeploy": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "codedeploy-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "codedeploy-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{}, - "us-west-1-fips": endpoint{ - Hostname: "codedeploy-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "codedeploy-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "codeguru-reviewer": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "codepipeline": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-ca-central-1": endpoint{ - Hostname: "codepipeline-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "codepipeline-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "codepipeline-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "codepipeline-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "codepipeline-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "codestar": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "codestar-connections": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "cognito-identity": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "cognito-identity-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "cognito-identity-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "cognito-identity-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "cognito-idp": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "cognito-idp-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "cognito-idp-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "cognito-idp-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "cognito-idp-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "cognito-sync": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "comprehend": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "comprehend-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "comprehend-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "comprehend-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "comprehendmedical": service{ - - Endpoints: endpoints{ - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "comprehendmedical-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "comprehendmedical-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "comprehendmedical-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "config": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "config-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "config-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "config-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "config-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "connect": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "contact-lens": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "cur": service{ - - Endpoints: endpoints{ - "us-east-1": endpoint{}, - }, - }, - "data.mediastore": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "dataexchange": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "datapipeline": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "datasync": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-ca-central-1": endpoint{ - Hostname: "datasync-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "datasync-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "datasync-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "datasync-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "datasync-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "dax": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "devicefarm": service{ - - Endpoints: endpoints{ - "us-west-2": endpoint{}, - }, - }, - "directconnect": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "directconnect-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "directconnect-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "directconnect-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "directconnect-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "discovery": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "dms": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "dms-fips": endpoint{ - Hostname: "dms-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "docdb": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{ - Hostname: "rds.ap-northeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-1", - }, - }, - "ap-northeast-2": endpoint{ - Hostname: "rds.ap-northeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-2", - }, - }, - "ap-south-1": endpoint{ - Hostname: "rds.ap-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-south-1", - }, - }, - "ap-southeast-1": endpoint{ - Hostname: "rds.ap-southeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-1", - }, - }, - "ap-southeast-2": endpoint{ - Hostname: "rds.ap-southeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-2", - }, - }, - "ca-central-1": endpoint{ - Hostname: "rds.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "eu-central-1": endpoint{ - Hostname: "rds.eu-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-central-1", - }, - }, - "eu-west-1": endpoint{ - Hostname: "rds.eu-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-1", - }, - }, - "eu-west-2": endpoint{ - Hostname: "rds.eu-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-2", - }, - }, - "eu-west-3": endpoint{ - Hostname: "rds.eu-west-3.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-3", - }, - }, - "sa-east-1": endpoint{ - Hostname: "rds.sa-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "sa-east-1", - }, - }, - "us-east-1": endpoint{ - Hostname: "rds.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{ - Hostname: "rds.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-2": endpoint{ - Hostname: "rds.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "ds": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-ca-central-1": endpoint{ - Hostname: "ds-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "ds-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "ds-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "ds-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "ds-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "dynamodb": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "ca-central-1-fips": endpoint{ - Hostname: "dynamodb-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "local": endpoint{ - Hostname: "localhost:8000", - Protocols: []string{"http"}, - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "dynamodb-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "dynamodb-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{}, - "us-west-1-fips": endpoint{ - Hostname: "dynamodb-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "dynamodb-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "ebs": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-ca-central-1": endpoint{ - Hostname: "ebs-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "ebs-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "ebs-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "ebs-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "ebs-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "ec2": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-ca-central-1": endpoint{ - Hostname: "ec2-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "ec2-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "ec2-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "ec2-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "ec2-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "ec2metadata": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "169.254.169.254/latest", - Protocols: []string{"http"}, - }, - }, - }, - "ecs": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "ecs-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "ecs-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "ecs-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "ecs-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "eks": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "fips.eks.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "fips.eks.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "fips.eks.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "fips.eks.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "elasticache": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips": endpoint{ - Hostname: "elasticache-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "elasticbeanstalk": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "elasticbeanstalk-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "elasticbeanstalk-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "elasticbeanstalk-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "elasticbeanstalk-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "elasticfilesystem": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-af-south-1": endpoint{ - Hostname: "elasticfilesystem-fips.af-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "af-south-1", - }, - }, - "fips-ap-east-1": endpoint{ - Hostname: "elasticfilesystem-fips.ap-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-east-1", - }, - }, - "fips-ap-northeast-1": endpoint{ - Hostname: "elasticfilesystem-fips.ap-northeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-1", - }, - }, - "fips-ap-northeast-2": endpoint{ - Hostname: "elasticfilesystem-fips.ap-northeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-2", - }, - }, - "fips-ap-south-1": endpoint{ - Hostname: "elasticfilesystem-fips.ap-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-south-1", - }, - }, - "fips-ap-southeast-1": endpoint{ - Hostname: "elasticfilesystem-fips.ap-southeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-1", - }, - }, - "fips-ap-southeast-2": endpoint{ - Hostname: "elasticfilesystem-fips.ap-southeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-2", - }, - }, - "fips-ca-central-1": endpoint{ - Hostname: "elasticfilesystem-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-eu-central-1": endpoint{ - Hostname: "elasticfilesystem-fips.eu-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-central-1", - }, - }, - "fips-eu-north-1": endpoint{ - Hostname: "elasticfilesystem-fips.eu-north-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-north-1", - }, - }, - "fips-eu-south-1": endpoint{ - Hostname: "elasticfilesystem-fips.eu-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-south-1", - }, - }, - "fips-eu-west-1": endpoint{ - Hostname: "elasticfilesystem-fips.eu-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-1", - }, - }, - "fips-eu-west-2": endpoint{ - Hostname: "elasticfilesystem-fips.eu-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-2", - }, - }, - "fips-eu-west-3": endpoint{ - Hostname: "elasticfilesystem-fips.eu-west-3.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-3", - }, - }, - "fips-me-south-1": endpoint{ - Hostname: "elasticfilesystem-fips.me-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "me-south-1", - }, - }, - "fips-sa-east-1": endpoint{ - Hostname: "elasticfilesystem-fips.sa-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "sa-east-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "elasticfilesystem-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "elasticfilesystem-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "elasticfilesystem-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "elasticfilesystem-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "elasticloadbalancing": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "elasticloadbalancing-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "elasticloadbalancing-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "elasticloadbalancing-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "elasticloadbalancing-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "elasticmapreduce": service{ - Defaults: endpoint{ - SSLCommonName: "{region}.{service}.{dnsSuffix}", - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{ - SSLCommonName: "{service}.{region}.{dnsSuffix}", - }, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-ca-central-1": endpoint{ - Hostname: "elasticmapreduce-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "elasticmapreduce-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "elasticmapreduce-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "elasticmapreduce-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "elasticmapreduce-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{ - SSLCommonName: "{service}.{region}.{dnsSuffix}", - }, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "elastictranscoder": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "email": service{ - - Endpoints: endpoints{ - "ap-south-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "emr-containers": service{ - - Endpoints: endpoints{ - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "entitlement.marketplace": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "aws-marketplace", - }, - }, - Endpoints: endpoints{ - "us-east-1": endpoint{}, - }, - }, - "es": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips": endpoint{ - Hostname: "es-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "events": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "events-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "events-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "events-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "events-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "firehose": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "firehose-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "firehose-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "firehose-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "firehose-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "fms": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-af-south-1": endpoint{ - Hostname: "fms-fips.af-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "af-south-1", - }, - }, - "fips-ap-east-1": endpoint{ - Hostname: "fms-fips.ap-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-east-1", - }, - }, - "fips-ap-northeast-1": endpoint{ - Hostname: "fms-fips.ap-northeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-1", - }, - }, - "fips-ap-northeast-2": endpoint{ - Hostname: "fms-fips.ap-northeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-2", - }, - }, - "fips-ap-south-1": endpoint{ - Hostname: "fms-fips.ap-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-south-1", - }, - }, - "fips-ap-southeast-1": endpoint{ - Hostname: "fms-fips.ap-southeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-1", - }, - }, - "fips-ap-southeast-2": endpoint{ - Hostname: "fms-fips.ap-southeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-2", - }, - }, - "fips-ca-central-1": endpoint{ - Hostname: "fms-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-eu-central-1": endpoint{ - Hostname: "fms-fips.eu-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-central-1", - }, - }, - "fips-eu-south-1": endpoint{ - Hostname: "fms-fips.eu-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-south-1", - }, - }, - "fips-eu-west-1": endpoint{ - Hostname: "fms-fips.eu-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-1", - }, - }, - "fips-eu-west-2": endpoint{ - Hostname: "fms-fips.eu-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-2", - }, - }, - "fips-eu-west-3": endpoint{ - Hostname: "fms-fips.eu-west-3.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-3", - }, - }, - "fips-me-south-1": endpoint{ - Hostname: "fms-fips.me-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "me-south-1", - }, - }, - "fips-sa-east-1": endpoint{ - Hostname: "fms-fips.sa-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "sa-east-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "fms-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "fms-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "fms-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "fms-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "forecast": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "forecastquery": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "fsx": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-prod-ca-central-1": endpoint{ - Hostname: "fsx-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-prod-us-east-1": endpoint{ - Hostname: "fsx-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-prod-us-east-2": endpoint{ - Hostname: "fsx-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-prod-us-west-1": endpoint{ - Hostname: "fsx-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-prod-us-west-2": endpoint{ - Hostname: "fsx-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "gamelift": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "glacier": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-ca-central-1": endpoint{ - Hostname: "glacier-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "glacier-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "glacier-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "glacier-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "glacier-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "glue": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "glue-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "glue-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "glue-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "glue-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "greengrass": service{ - IsRegionalized: boxedTrue, - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "groundstation": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "fips-us-east-2": endpoint{ - Hostname: "groundstation-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "groundstation-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "guardduty": service{ - IsRegionalized: boxedTrue, - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "guardduty-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "guardduty-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{}, - "us-west-1-fips": endpoint{ - Hostname: "guardduty-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "guardduty-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "health": service{ - - Endpoints: endpoints{ - "fips-us-east-2": endpoint{ - Hostname: "health-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - }, - }, - "healthlake": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "us-east-1": endpoint{}, - }, - }, - "honeycode": service{ - - Endpoints: endpoints{ - "us-west-2": endpoint{}, - }, - }, - "iam": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "iam.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "iam-fips": endpoint{ - Hostname: "iam-fips.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - }, - }, - "identitystore": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "importexport": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "importexport.amazonaws.com", - SignatureVersions: []string{"v2", "v4"}, - CredentialScope: credentialScope{ - Region: "us-east-1", - Service: "IngestionService", - }, - }, - }, - }, - "inspector": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "inspector-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "inspector-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "inspector-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "inspector-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "iot": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "execute-api", - }, - }, - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "iotanalytics": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "iotevents": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "ioteventsdata": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{ - Hostname: "data.iotevents.ap-northeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-1", - }, - }, - "ap-northeast-2": endpoint{ - Hostname: "data.iotevents.ap-northeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-2", - }, - }, - "ap-southeast-1": endpoint{ - Hostname: "data.iotevents.ap-southeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-1", - }, - }, - "ap-southeast-2": endpoint{ - Hostname: "data.iotevents.ap-southeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-2", - }, - }, - "eu-central-1": endpoint{ - Hostname: "data.iotevents.eu-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-central-1", - }, - }, - "eu-west-1": endpoint{ - Hostname: "data.iotevents.eu-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-1", - }, - }, - "eu-west-2": endpoint{ - Hostname: "data.iotevents.eu-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-2", - }, - }, - "us-east-1": endpoint{ - Hostname: "data.iotevents.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{ - Hostname: "data.iotevents.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-2": endpoint{ - Hostname: "data.iotevents.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "iotsecuredtunneling": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "iotthingsgraph": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "iotthingsgraph", - }, - }, - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "iotwireless": service{ - - Endpoints: endpoints{ - "eu-west-1": endpoint{ - Hostname: "api.iotwireless.eu-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-1", - }, - }, - "us-east-1": endpoint{ - Hostname: "api.iotwireless.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - }, - }, - "kafka": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "kinesis": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "kinesis-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "kinesis-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "kinesis-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "kinesis-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "kinesisanalytics": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "kinesisvideo": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "kms": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "lakeformation": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "lakeformation-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "lakeformation-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "lakeformation-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "lakeformation-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "lambda": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "lambda-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "lambda-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "lambda-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "lambda-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "license-manager": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "license-manager-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "license-manager-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "license-manager-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "license-manager-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "lightsail": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "logs": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "logs-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "logs-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "logs-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "logs-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "lookoutvision": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "machinelearning": service{ - - Endpoints: endpoints{ - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - }, - }, - "macie": service{ - - Endpoints: endpoints{ - "fips-us-east-1": endpoint{ - Hostname: "macie-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "macie-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "macie2": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "macie2-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "macie2-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "macie2-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "macie2-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "managedblockchain": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-southeast-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - }, - }, - "marketplacecommerceanalytics": service{ - - Endpoints: endpoints{ - "us-east-1": endpoint{}, - }, - }, - "mediaconnect": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "mediaconvert": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-ca-central-1": endpoint{ - Hostname: "mediaconvert-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "mediaconvert-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "mediaconvert-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "mediaconvert-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "mediaconvert-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "medialive": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "medialive-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "medialive-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "medialive-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "mediapackage": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "mediastore": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "metering.marketplace": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "aws-marketplace", - }, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "mgh": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "mobileanalytics": service{ - - Endpoints: endpoints{ - "us-east-1": endpoint{}, - }, - }, - "models.lex": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "lex", - }, - }, - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "models-fips.lex.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "models-fips.lex.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "monitoring": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "monitoring-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "monitoring-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "monitoring-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "monitoring-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "mq": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "mq-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "mq-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "mq-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "mq-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "mturk-requester": service{ - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "sandbox": endpoint{ - Hostname: "mturk-requester-sandbox.us-east-1.amazonaws.com", - }, - "us-east-1": endpoint{}, - }, - }, - "neptune": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{ - Hostname: "rds.ap-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-east-1", - }, - }, - "ap-northeast-1": endpoint{ - Hostname: "rds.ap-northeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-1", - }, - }, - "ap-northeast-2": endpoint{ - Hostname: "rds.ap-northeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-2", - }, - }, - "ap-south-1": endpoint{ - Hostname: "rds.ap-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-south-1", - }, - }, - "ap-southeast-1": endpoint{ - Hostname: "rds.ap-southeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-1", - }, - }, - "ap-southeast-2": endpoint{ - Hostname: "rds.ap-southeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-2", - }, - }, - "ca-central-1": endpoint{ - Hostname: "rds.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "eu-central-1": endpoint{ - Hostname: "rds.eu-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-central-1", - }, - }, - "eu-north-1": endpoint{ - Hostname: "rds.eu-north-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-north-1", - }, - }, - "eu-west-1": endpoint{ - Hostname: "rds.eu-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-1", - }, - }, - "eu-west-2": endpoint{ - Hostname: "rds.eu-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-2", - }, - }, - "eu-west-3": endpoint{ - Hostname: "rds.eu-west-3.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-3", - }, - }, - "me-south-1": endpoint{ - Hostname: "rds.me-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "me-south-1", - }, - }, - "sa-east-1": endpoint{ - Hostname: "rds.sa-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "sa-east-1", - }, - }, - "us-east-1": endpoint{ - Hostname: "rds.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{ - Hostname: "rds.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{ - Hostname: "rds.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{ - Hostname: "rds.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "oidc": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{ - Hostname: "oidc.ap-northeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-1", - }, - }, - "ap-northeast-2": endpoint{ - Hostname: "oidc.ap-northeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-2", - }, - }, - "ap-south-1": endpoint{ - Hostname: "oidc.ap-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-south-1", - }, - }, - "ap-southeast-1": endpoint{ - Hostname: "oidc.ap-southeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-1", - }, - }, - "ap-southeast-2": endpoint{ - Hostname: "oidc.ap-southeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-2", - }, - }, - "ca-central-1": endpoint{ - Hostname: "oidc.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "eu-central-1": endpoint{ - Hostname: "oidc.eu-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-central-1", - }, - }, - "eu-north-1": endpoint{ - Hostname: "oidc.eu-north-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-north-1", - }, - }, - "eu-west-1": endpoint{ - Hostname: "oidc.eu-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-1", - }, - }, - "eu-west-2": endpoint{ - Hostname: "oidc.eu-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-2", - }, - }, - "us-east-1": endpoint{ - Hostname: "oidc.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{ - Hostname: "oidc.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-2": endpoint{ - Hostname: "oidc.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "opsworks": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "opsworks-cm": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "organizations": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "organizations.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-aws-global": endpoint{ - Hostname: "organizations-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - }, - }, - "outposts": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-ca-central-1": endpoint{ - Hostname: "outposts-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "outposts-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "outposts-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "outposts-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "outposts-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "pinpoint": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "mobiletargeting", - }, - }, - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "pinpoint-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "pinpoint-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "us-east-1": endpoint{ - Hostname: "pinpoint.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-west-2": endpoint{ - Hostname: "pinpoint.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "polly": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "polly-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "polly-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "polly-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "polly-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "portal.sso": service{ - - Endpoints: endpoints{ - "ap-southeast-1": endpoint{ - Hostname: "portal.sso.ap-southeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-1", - }, - }, - "ap-southeast-2": endpoint{ - Hostname: "portal.sso.ap-southeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-2", - }, - }, - "ca-central-1": endpoint{ - Hostname: "portal.sso.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "eu-central-1": endpoint{ - Hostname: "portal.sso.eu-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-central-1", - }, - }, - "eu-west-1": endpoint{ - Hostname: "portal.sso.eu-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-1", - }, - }, - "eu-west-2": endpoint{ - Hostname: "portal.sso.eu-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-2", - }, - }, - "us-east-1": endpoint{ - Hostname: "portal.sso.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{ - Hostname: "portal.sso.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-2": endpoint{ - Hostname: "portal.sso.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "profile": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "projects.iot1click": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "qldb": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "ram": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "rds": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "rds-fips.ca-central-1": endpoint{ - Hostname: "rds-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "rds-fips.us-east-1": endpoint{ - Hostname: "rds-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "rds-fips.us-east-2": endpoint{ - Hostname: "rds-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "rds-fips.us-west-1": endpoint{ - Hostname: "rds-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "rds-fips.us-west-2": endpoint{ - Hostname: "rds-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{ - SSLCommonName: "{service}.{dnsSuffix}", - }, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "redshift": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-ca-central-1": endpoint{ - Hostname: "redshift-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "redshift-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "redshift-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "redshift-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "redshift-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "rekognition": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "rekognition-fips.ca-central-1": endpoint{ - Hostname: "rekognition-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "rekognition-fips.us-east-1": endpoint{ - Hostname: "rekognition-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "rekognition-fips.us-east-2": endpoint{ - Hostname: "rekognition-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "rekognition-fips.us-west-1": endpoint{ - Hostname: "rekognition-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "rekognition-fips.us-west-2": endpoint{ - Hostname: "rekognition-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "resource-groups": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "resource-groups-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "resource-groups-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "resource-groups-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "resource-groups-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "robomaker": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "route53": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "route53.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-aws-global": endpoint{ - Hostname: "route53-fips.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - }, - }, - "route53domains": service{ - - Endpoints: endpoints{ - "us-east-1": endpoint{}, - }, - }, - "route53resolver": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "runtime.lex": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "lex", - }, - }, - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "runtime-fips.lex.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "runtime-fips.lex.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "runtime.sagemaker": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "runtime-fips.sagemaker.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "runtime-fips.sagemaker.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{}, - "us-west-1-fips": endpoint{ - Hostname: "runtime-fips.sagemaker.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "runtime-fips.sagemaker.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "s3": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedTrue, - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - SignatureVersions: []string{"s3v4"}, - - HasDualStack: boxedTrue, - DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}", - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{ - Hostname: "s3.ap-northeast-1.amazonaws.com", - SignatureVersions: []string{"s3", "s3v4"}, - }, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{ - Hostname: "s3.ap-southeast-1.amazonaws.com", - SignatureVersions: []string{"s3", "s3v4"}, - }, - "ap-southeast-2": endpoint{ - Hostname: "s3.ap-southeast-2.amazonaws.com", - SignatureVersions: []string{"s3", "s3v4"}, - }, - "aws-global": endpoint{ - Hostname: "s3.amazonaws.com", - SignatureVersions: []string{"s3", "s3v4"}, - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{ - Hostname: "s3.eu-west-1.amazonaws.com", - SignatureVersions: []string{"s3", "s3v4"}, - }, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "s3-external-1": endpoint{ - Hostname: "s3-external-1.amazonaws.com", - SignatureVersions: []string{"s3", "s3v4"}, - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "sa-east-1": endpoint{ - Hostname: "s3.sa-east-1.amazonaws.com", - SignatureVersions: []string{"s3", "s3v4"}, - }, - "us-east-1": endpoint{ - Hostname: "s3.us-east-1.amazonaws.com", - SignatureVersions: []string{"s3", "s3v4"}, - }, - "us-east-2": endpoint{}, - "us-west-1": endpoint{ - Hostname: "s3.us-west-1.amazonaws.com", - SignatureVersions: []string{"s3", "s3v4"}, - }, - "us-west-2": endpoint{ - Hostname: "s3.us-west-2.amazonaws.com", - SignatureVersions: []string{"s3", "s3v4"}, - }, - }, - }, - "s3-control": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - SignatureVersions: []string{"s3v4"}, - - HasDualStack: boxedTrue, - DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}", - }, - Endpoints: endpoints{ - "ap-northeast-1": endpoint{ - Hostname: "s3-control.ap-northeast-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "ap-northeast-1", - }, - }, - "ap-northeast-2": endpoint{ - Hostname: "s3-control.ap-northeast-2.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "ap-northeast-2", - }, - }, - "ap-south-1": endpoint{ - Hostname: "s3-control.ap-south-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "ap-south-1", - }, - }, - "ap-southeast-1": endpoint{ - Hostname: "s3-control.ap-southeast-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "ap-southeast-1", - }, - }, - "ap-southeast-2": endpoint{ - Hostname: "s3-control.ap-southeast-2.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "ap-southeast-2", - }, - }, - "ca-central-1": endpoint{ - Hostname: "s3-control.ca-central-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "ca-central-1-fips": endpoint{ - Hostname: "s3-control-fips.ca-central-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "eu-central-1": endpoint{ - Hostname: "s3-control.eu-central-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "eu-central-1", - }, - }, - "eu-north-1": endpoint{ - Hostname: "s3-control.eu-north-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "eu-north-1", - }, - }, - "eu-west-1": endpoint{ - Hostname: "s3-control.eu-west-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "eu-west-1", - }, - }, - "eu-west-2": endpoint{ - Hostname: "s3-control.eu-west-2.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "eu-west-2", - }, - }, - "eu-west-3": endpoint{ - Hostname: "s3-control.eu-west-3.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "eu-west-3", - }, - }, - "sa-east-1": endpoint{ - Hostname: "s3-control.sa-east-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "sa-east-1", - }, - }, - "us-east-1": endpoint{ - Hostname: "s3-control.us-east-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-1-fips": endpoint{ - Hostname: "s3-control-fips.us-east-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{ - Hostname: "s3-control.us-east-2.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-east-2-fips": endpoint{ - Hostname: "s3-control-fips.us-east-2.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{ - Hostname: "s3-control.us-west-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-1-fips": endpoint{ - Hostname: "s3-control-fips.us-west-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{ - Hostname: "s3-control.us-west-2.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "us-west-2-fips": endpoint{ - Hostname: "s3-control-fips.us-west-2.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "savingsplans": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "savingsplans.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - }, - }, - "schemas": service{ - - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "sdb": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - SignatureVersions: []string{"v2"}, - }, - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-west-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{ - Hostname: "sdb.amazonaws.com", - }, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "secretsmanager": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "secretsmanager-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "secretsmanager-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{}, - "us-west-1-fips": endpoint{ - Hostname: "secretsmanager-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "secretsmanager-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "securityhub": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "securityhub-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "securityhub-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "securityhub-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "securityhub-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "serverlessrepo": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "ap-east-1": endpoint{ - Protocols: []string{"https"}, - }, - "ap-northeast-1": endpoint{ - Protocols: []string{"https"}, - }, - "ap-northeast-2": endpoint{ - Protocols: []string{"https"}, - }, - "ap-south-1": endpoint{ - Protocols: []string{"https"}, - }, - "ap-southeast-1": endpoint{ - Protocols: []string{"https"}, - }, - "ap-southeast-2": endpoint{ - Protocols: []string{"https"}, - }, - "ca-central-1": endpoint{ - Protocols: []string{"https"}, - }, - "eu-central-1": endpoint{ - Protocols: []string{"https"}, - }, - "eu-north-1": endpoint{ - Protocols: []string{"https"}, - }, - "eu-west-1": endpoint{ - Protocols: []string{"https"}, - }, - "eu-west-2": endpoint{ - Protocols: []string{"https"}, - }, - "eu-west-3": endpoint{ - Protocols: []string{"https"}, - }, - "me-south-1": endpoint{ - Protocols: []string{"https"}, - }, - "sa-east-1": endpoint{ - Protocols: []string{"https"}, - }, - "us-east-1": endpoint{ - Protocols: []string{"https"}, - }, - "us-east-2": endpoint{ - Protocols: []string{"https"}, - }, - "us-west-1": endpoint{ - Protocols: []string{"https"}, - }, - "us-west-2": endpoint{ - Protocols: []string{"https"}, - }, - }, - }, - "servicecatalog": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "servicecatalog-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "servicecatalog-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{}, - "us-west-1-fips": endpoint{ - Hostname: "servicecatalog-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "servicecatalog-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "servicediscovery": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "servicediscovery-fips": endpoint{ - Hostname: "servicediscovery-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "servicequotas": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "session.qldb": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "shield": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - Defaults: endpoint{ - SSLCommonName: "shield.us-east-1.amazonaws.com", - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "shield.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-aws-global": endpoint{ - Hostname: "shield-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - }, - }, - "sms": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "sms-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "sms-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "sms-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "sms-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "snowball": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-ap-northeast-1": endpoint{ - Hostname: "snowball-fips.ap-northeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-1", - }, - }, - "fips-ap-northeast-2": endpoint{ - Hostname: "snowball-fips.ap-northeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-2", - }, - }, - "fips-ap-northeast-3": endpoint{ - Hostname: "snowball-fips.ap-northeast-3.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-3", - }, - }, - "fips-ap-south-1": endpoint{ - Hostname: "snowball-fips.ap-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-south-1", - }, - }, - "fips-ap-southeast-1": endpoint{ - Hostname: "snowball-fips.ap-southeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-1", - }, - }, - "fips-ap-southeast-2": endpoint{ - Hostname: "snowball-fips.ap-southeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-2", - }, - }, - "fips-ca-central-1": endpoint{ - Hostname: "snowball-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-eu-central-1": endpoint{ - Hostname: "snowball-fips.eu-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-central-1", - }, - }, - "fips-eu-west-1": endpoint{ - Hostname: "snowball-fips.eu-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-1", - }, - }, - "fips-eu-west-2": endpoint{ - Hostname: "snowball-fips.eu-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-2", - }, - }, - "fips-eu-west-3": endpoint{ - Hostname: "snowball-fips.eu-west-3.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-3", - }, - }, - "fips-sa-east-1": endpoint{ - Hostname: "snowball-fips.sa-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "sa-east-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "snowball-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "snowball-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "snowball-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "snowball-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "sns": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "sns-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "sns-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "sns-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "sns-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "sqs": service{ - Defaults: endpoint{ - SSLCommonName: "{region}.queue.{dnsSuffix}", - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "sqs-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "sqs-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "sqs-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "sqs-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{ - SSLCommonName: "queue.{dnsSuffix}", - }, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "ssm": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-ca-central-1": endpoint{ - Hostname: "ssm-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "ssm-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "ssm-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "ssm-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "ssm-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "states": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "states-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "states-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "states-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "states-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "storagegateway": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips": endpoint{ - Hostname: "storagegateway-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "streams.dynamodb": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Service: "dynamodb", - }, - }, - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "ca-central-1-fips": endpoint{ - Hostname: "dynamodb-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "local": endpoint{ - Hostname: "localhost:8000", - Protocols: []string{"http"}, - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "dynamodb-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "dynamodb-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{}, - "us-west-1-fips": endpoint{ - Hostname: "dynamodb-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "dynamodb-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "sts": service{ - PartitionEndpoint: "aws-global", - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "aws-global": endpoint{ - Hostname: "sts.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "sts-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "sts-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{}, - "us-west-1-fips": endpoint{ - Hostname: "sts-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "sts-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "support": service{ - PartitionEndpoint: "aws-global", - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "support.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - }, - }, - "swf": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "swf-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "swf-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "swf-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "swf-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "tagging": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "transcribe": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "fips.transcribe.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "fips.transcribe.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "fips.transcribe.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "fips.transcribe.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "transcribestreaming": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "transfer": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-ca-central-1": endpoint{ - Hostname: "transfer-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "transfer-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "transfer-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "transfer-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "transfer-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "translate": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "us-east-1": endpoint{}, - "us-east-1-fips": endpoint{ - Hostname: "translate-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{}, - "us-east-2-fips": endpoint{ - Hostname: "translate-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - "us-west-2-fips": endpoint{ - Hostname: "translate-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "waf": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-fips": endpoint{ - Hostname: "waf-fips.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "aws-global": endpoint{ - Hostname: "waf.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - }, - }, - "waf-regional": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{ - Hostname: "waf-regional.af-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "af-south-1", - }, - }, - "ap-east-1": endpoint{ - Hostname: "waf-regional.ap-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-east-1", - }, - }, - "ap-northeast-1": endpoint{ - Hostname: "waf-regional.ap-northeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-1", - }, - }, - "ap-northeast-2": endpoint{ - Hostname: "waf-regional.ap-northeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-2", - }, - }, - "ap-south-1": endpoint{ - Hostname: "waf-regional.ap-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-south-1", - }, - }, - "ap-southeast-1": endpoint{ - Hostname: "waf-regional.ap-southeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-1", - }, - }, - "ap-southeast-2": endpoint{ - Hostname: "waf-regional.ap-southeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-2", - }, - }, - "ca-central-1": endpoint{ - Hostname: "waf-regional.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "eu-central-1": endpoint{ - Hostname: "waf-regional.eu-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-central-1", - }, - }, - "eu-north-1": endpoint{ - Hostname: "waf-regional.eu-north-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-north-1", - }, - }, - "eu-south-1": endpoint{ - Hostname: "waf-regional.eu-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-south-1", - }, - }, - "eu-west-1": endpoint{ - Hostname: "waf-regional.eu-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-1", - }, - }, - "eu-west-2": endpoint{ - Hostname: "waf-regional.eu-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-2", - }, - }, - "eu-west-3": endpoint{ - Hostname: "waf-regional.eu-west-3.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-3", - }, - }, - "fips-af-south-1": endpoint{ - Hostname: "waf-regional-fips.af-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "af-south-1", - }, - }, - "fips-ap-east-1": endpoint{ - Hostname: "waf-regional-fips.ap-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-east-1", - }, - }, - "fips-ap-northeast-1": endpoint{ - Hostname: "waf-regional-fips.ap-northeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-1", - }, - }, - "fips-ap-northeast-2": endpoint{ - Hostname: "waf-regional-fips.ap-northeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-northeast-2", - }, - }, - "fips-ap-south-1": endpoint{ - Hostname: "waf-regional-fips.ap-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-south-1", - }, - }, - "fips-ap-southeast-1": endpoint{ - Hostname: "waf-regional-fips.ap-southeast-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-1", - }, - }, - "fips-ap-southeast-2": endpoint{ - Hostname: "waf-regional-fips.ap-southeast-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ap-southeast-2", - }, - }, - "fips-ca-central-1": endpoint{ - Hostname: "waf-regional-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, - "fips-eu-central-1": endpoint{ - Hostname: "waf-regional-fips.eu-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-central-1", - }, - }, - "fips-eu-north-1": endpoint{ - Hostname: "waf-regional-fips.eu-north-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-north-1", - }, - }, - "fips-eu-south-1": endpoint{ - Hostname: "waf-regional-fips.eu-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-south-1", - }, - }, - "fips-eu-west-1": endpoint{ - Hostname: "waf-regional-fips.eu-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-1", - }, - }, - "fips-eu-west-2": endpoint{ - Hostname: "waf-regional-fips.eu-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-2", - }, - }, - "fips-eu-west-3": endpoint{ - Hostname: "waf-regional-fips.eu-west-3.amazonaws.com", - CredentialScope: credentialScope{ - Region: "eu-west-3", - }, - }, - "fips-me-south-1": endpoint{ - Hostname: "waf-regional-fips.me-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "me-south-1", - }, - }, - "fips-sa-east-1": endpoint{ - Hostname: "waf-regional-fips.sa-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "sa-east-1", - }, - }, - "fips-us-east-1": endpoint{ - Hostname: "waf-regional-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "waf-regional-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "waf-regional-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "waf-regional-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{ - Hostname: "waf-regional.me-south-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "me-south-1", - }, - }, - "sa-east-1": endpoint{ - Hostname: "waf-regional.sa-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "sa-east-1", - }, - }, - "us-east-1": endpoint{ - Hostname: "waf-regional.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "us-east-2": endpoint{ - Hostname: "waf-regional.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "us-west-1": endpoint{ - Hostname: "waf-regional.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "us-west-2": endpoint{ - Hostname: "waf-regional.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "workdocs": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "eu-west-1": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "workdocs-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "workdocs-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "workmail": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "workspaces": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "workspaces-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "workspaces-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - "xray": service{ - - Endpoints: endpoints{ - "af-south-1": endpoint{}, - "ap-east-1": endpoint{}, - "ap-northeast-1": endpoint{}, - "ap-northeast-2": endpoint{}, - "ap-south-1": endpoint{}, - "ap-southeast-1": endpoint{}, - "ap-southeast-2": endpoint{}, - "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-south-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, - "fips-us-east-1": endpoint{ - Hostname: "xray-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "fips-us-east-2": endpoint{ - Hostname: "xray-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "fips-us-west-1": endpoint{ - Hostname: "xray-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "fips-us-west-2": endpoint{ - Hostname: "xray-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, - }, - }, - }, -} - -// AwsCnPartition returns the Resolver for AWS China. -func AwsCnPartition() Partition { - return awscnPartition.Partition() -} - -var awscnPartition = partition{ - ID: "aws-cn", - Name: "AWS China", - DNSSuffix: "amazonaws.com.cn", - RegionRegex: regionRegex{ - Regexp: func() *regexp.Regexp { - reg, _ := regexp.Compile("^cn\\-\\w+\\-\\d+$") - return reg - }(), - }, - Defaults: endpoint{ - Hostname: "{service}.{region}.{dnsSuffix}", - Protocols: []string{"https"}, - SignatureVersions: []string{"v4"}, - }, - Regions: regions{ - "cn-north-1": region{ - Description: "China (Beijing)", - }, - "cn-northwest-1": region{ - Description: "China (Ningxia)", - }, - }, - Services: services{ - "access-analyzer": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "acm": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "api.ecr": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{ - Hostname: "api.ecr.cn-north-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-north-1", - }, - }, - "cn-northwest-1": endpoint{ - Hostname: "api.ecr.cn-northwest-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-northwest-1", - }, - }, - }, - }, - "api.sagemaker": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "apigateway": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "application-autoscaling": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "appsync": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "athena": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "autoscaling": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "autoscaling-plans": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "backup": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "batch": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "budgets": service{ - PartitionEndpoint: "aws-cn-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-cn-global": endpoint{ - Hostname: "budgets.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-northwest-1", - }, - }, - }, - }, - "ce": service{ - PartitionEndpoint: "aws-cn-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-cn-global": endpoint{ - Hostname: "ce.cn-northwest-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-northwest-1", - }, - }, - }, - }, - "cloudformation": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "cloudfront": service{ - PartitionEndpoint: "aws-cn-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-cn-global": endpoint{ - Hostname: "cloudfront.cn-northwest-1.amazonaws.com.cn", - Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Region: "cn-northwest-1", - }, - }, - }, - }, - "cloudtrail": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "codebuild": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "codecommit": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "codedeploy": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "cognito-identity": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - }, - }, - "config": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "cur": service{ - - Endpoints: endpoints{ - "cn-northwest-1": endpoint{}, - }, - }, - "dax": service{ - - Endpoints: endpoints{ - "cn-northwest-1": endpoint{}, - }, - }, - "directconnect": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "dms": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "docdb": service{ - - Endpoints: endpoints{ - "cn-northwest-1": endpoint{ - Hostname: "rds.cn-northwest-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-northwest-1", - }, - }, - }, - }, - "ds": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "dynamodb": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "ebs": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "ec2": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "ec2metadata": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "169.254.169.254/latest", - Protocols: []string{"http"}, - }, - }, - }, - "ecs": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "eks": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "elasticache": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "elasticbeanstalk": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "elasticfilesystem": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - "fips-cn-north-1": endpoint{ - Hostname: "elasticfilesystem-fips.cn-north-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-north-1", - }, - }, - "fips-cn-northwest-1": endpoint{ - Hostname: "elasticfilesystem-fips.cn-northwest-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-northwest-1", - }, - }, - }, - }, - "elasticloadbalancing": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "elasticmapreduce": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "es": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "events": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "firehose": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "fsx": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "gamelift": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - }, - }, - "glacier": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "glue": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "greengrass": service{ - IsRegionalized: boxedTrue, - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - }, - }, - "guardduty": service{ - IsRegionalized: boxedTrue, - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "health": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "iam": service{ - PartitionEndpoint: "aws-cn-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-cn-global": endpoint{ - Hostname: "iam.cn-north-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-north-1", - }, - }, - }, - }, - "iot": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "execute-api", - }, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "iotanalytics": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - }, - }, - "iotevents": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - }, - }, - "ioteventsdata": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{ - Hostname: "data.iotevents.cn-north-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-north-1", - }, - }, - }, - }, - "iotsecuredtunneling": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "kafka": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "kinesis": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "kinesisanalytics": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "kms": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "lakeformation": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - }, - }, - "lambda": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "license-manager": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "logs": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "mediaconvert": service{ - - Endpoints: endpoints{ - "cn-northwest-1": endpoint{ - Hostname: "subscribe.mediaconvert.cn-northwest-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-northwest-1", - }, - }, - }, - }, - "monitoring": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "neptune": service{ - - Endpoints: endpoints{ - "cn-northwest-1": endpoint{ - Hostname: "rds.cn-northwest-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-northwest-1", - }, - }, - }, - }, - "organizations": service{ - PartitionEndpoint: "aws-cn-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-cn-global": endpoint{ - Hostname: "organizations.cn-northwest-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-northwest-1", - }, - }, - }, - }, - "polly": service{ - - Endpoints: endpoints{ - "cn-northwest-1": endpoint{}, - }, - }, - "ram": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "rds": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "redshift": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "resource-groups": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "route53": service{ - PartitionEndpoint: "aws-cn-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-cn-global": endpoint{ - Hostname: "route53.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-northwest-1", - }, - }, - }, - }, - "runtime.sagemaker": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "s3": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - SignatureVersions: []string{"s3v4"}, - - HasDualStack: boxedTrue, - DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}", - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "s3-control": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - SignatureVersions: []string{"s3v4"}, - - HasDualStack: boxedTrue, - DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}", - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{ - Hostname: "s3-control.cn-north-1.amazonaws.com.cn", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "cn-north-1", - }, - }, - "cn-northwest-1": endpoint{ - Hostname: "s3-control.cn-northwest-1.amazonaws.com.cn", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "cn-northwest-1", - }, - }, - }, - }, - "secretsmanager": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "securityhub": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "serverlessrepo": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{ - Protocols: []string{"https"}, - }, - "cn-northwest-1": endpoint{ - Protocols: []string{"https"}, - }, - }, - }, - "servicediscovery": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "sms": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "snowball": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - "fips-cn-north-1": endpoint{ - Hostname: "snowball-fips.cn-north-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-north-1", - }, - }, - "fips-cn-northwest-1": endpoint{ - Hostname: "snowball-fips.cn-northwest-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-northwest-1", - }, - }, - }, - }, - "sns": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "sqs": service{ - Defaults: endpoint{ - SSLCommonName: "{region}.queue.{dnsSuffix}", - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "ssm": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "states": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "storagegateway": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "streams.dynamodb": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Service: "dynamodb", - }, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "sts": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "support": service{ - PartitionEndpoint: "aws-cn-global", - - Endpoints: endpoints{ - "aws-cn-global": endpoint{ - Hostname: "support.cn-north-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-north-1", - }, - }, - }, - }, - "swf": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "tagging": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - "transcribe": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "cn-north-1": endpoint{ - Hostname: "cn.transcribe.cn-north-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-north-1", - }, - }, - "cn-northwest-1": endpoint{ - Hostname: "cn.transcribe.cn-northwest-1.amazonaws.com.cn", - CredentialScope: credentialScope{ - Region: "cn-northwest-1", - }, - }, - }, - }, - "workspaces": service{ - - Endpoints: endpoints{ - "cn-northwest-1": endpoint{}, - }, - }, - "xray": service{ - - Endpoints: endpoints{ - "cn-north-1": endpoint{}, - "cn-northwest-1": endpoint{}, - }, - }, - }, -} - -// AwsUsGovPartition returns the Resolver for AWS GovCloud (US). -func AwsUsGovPartition() Partition { - return awsusgovPartition.Partition() -} - -var awsusgovPartition = partition{ - ID: "aws-us-gov", - Name: "AWS GovCloud (US)", - DNSSuffix: "amazonaws.com", - RegionRegex: regionRegex{ - Regexp: func() *regexp.Regexp { - reg, _ := regexp.Compile("^us\\-gov\\-\\w+\\-\\d+$") - return reg - }(), - }, - Defaults: endpoint{ - Hostname: "{service}.{region}.{dnsSuffix}", - Protocols: []string{"https"}, - SignatureVersions: []string{"v4"}, - }, - Regions: regions{ - "us-gov-east-1": region{ - Description: "AWS GovCloud (US-East)", - }, - "us-gov-west-1": region{ - Description: "AWS GovCloud (US-West)", - }, - }, - Services: services{ - "access-analyzer": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "access-analyzer.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "access-analyzer.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "acm": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "acm.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "acm.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "acm-pca": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "acm-pca.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "acm-pca.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "api.ecr": service{ - - Endpoints: endpoints{ - "fips-dkr-us-gov-east-1": endpoint{ - Hostname: "ecr-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-dkr-us-gov-west-1": endpoint{ - Hostname: "ecr-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "fips-us-gov-east-1": endpoint{ - Hostname: "ecr-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "ecr-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{ - Hostname: "api.ecr.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "api.ecr.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "api.sagemaker": service{ - - Endpoints: endpoints{ - "us-gov-west-1": endpoint{}, - "us-gov-west-1-fips": endpoint{ - Hostname: "api-fips.sagemaker.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-west-1-fips-secondary": endpoint{ - Hostname: "api.sagemaker.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "apigateway": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "application-autoscaling": service{ - Defaults: endpoint{ - Hostname: "autoscaling.{region}.amazonaws.com", - Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Service: "application-autoscaling", - }, - }, - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - "us-gov-west-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "appstream2": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - CredentialScope: credentialScope{ - Service: "appstream", - }, - }, - Endpoints: endpoints{ - "fips": endpoint{ - Hostname: "appstream2-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-west-1": endpoint{}, - }, - }, - "athena": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "athena-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "athena-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "autoscaling": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - "us-gov-west-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "autoscaling-plans": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - "us-gov-west-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "backup": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "batch": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "batch.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "batch.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "clouddirectory": service{ - - Endpoints: endpoints{ - "us-gov-west-1": endpoint{}, - }, - }, - "cloudformation": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "cloudformation.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "cloudformation.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "cloudhsm": service{ - - Endpoints: endpoints{ - "us-gov-west-1": endpoint{}, - }, - }, - "cloudhsmv2": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "cloudhsm", - }, - }, - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "cloudtrail": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "cloudtrail.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "cloudtrail.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "codebuild": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-east-1-fips": endpoint{ - Hostname: "codebuild-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{}, - "us-gov-west-1-fips": endpoint{ - Hostname: "codebuild-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "codecommit": service{ - - Endpoints: endpoints{ - "fips": endpoint{ - Hostname: "codecommit-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "codedeploy": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-east-1-fips": endpoint{ - Hostname: "codedeploy-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{}, - "us-gov-west-1-fips": endpoint{ - Hostname: "codedeploy-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "codepipeline": service{ - - Endpoints: endpoints{ - "fips-us-gov-west-1": endpoint{ - Hostname: "codepipeline-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-west-1": endpoint{}, - }, - }, - "cognito-identity": service{ - - Endpoints: endpoints{ - "fips-us-gov-west-1": endpoint{ - Hostname: "cognito-identity-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-west-1": endpoint{}, - }, - }, - "cognito-idp": service{ - - Endpoints: endpoints{ - "fips-us-gov-west-1": endpoint{ - Hostname: "cognito-idp-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-west-1": endpoint{}, - }, - }, - "comprehend": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "fips-us-gov-west-1": endpoint{ - Hostname: "comprehend-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-west-1": endpoint{}, - }, - }, - "comprehendmedical": service{ - - Endpoints: endpoints{ - "fips-us-gov-west-1": endpoint{ - Hostname: "comprehendmedical-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-west-1": endpoint{}, - }, - }, - "config": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "config.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "config.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "connect": service{ - - Endpoints: endpoints{ - "us-gov-west-1": endpoint{}, - }, - }, - "datasync": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "datasync-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "datasync-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "directconnect": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "directconnect.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "directconnect.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "dms": service{ - - Endpoints: endpoints{ - "dms-fips": endpoint{ - Hostname: "dms.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "docdb": service{ - - Endpoints: endpoints{ - "us-gov-west-1": endpoint{ - Hostname: "rds.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "ds": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "ds-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "ds-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "dynamodb": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-east-1-fips": endpoint{ - Hostname: "dynamodb.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{}, - "us-gov-west-1-fips": endpoint{ - Hostname: "dynamodb.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "ebs": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "ec2": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "ec2.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "ec2.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "ec2metadata": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "169.254.169.254/latest", - Protocols: []string{"http"}, - }, - }, - }, - "ecs": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "ecs-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "ecs-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "eks": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "eks.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "eks.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "elasticache": service{ - - Endpoints: endpoints{ - "fips": endpoint{ - Hostname: "elasticache.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "elasticbeanstalk": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "elasticbeanstalk.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "elasticbeanstalk.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "elasticfilesystem": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "elasticfilesystem-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "elasticfilesystem-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "elasticloadbalancing": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "elasticloadbalancing.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "elasticloadbalancing.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "elasticmapreduce": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "elasticmapreduce.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "elasticmapreduce.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{ - Protocols: []string{"https"}, - }, - }, - }, - "email": service{ - - Endpoints: endpoints{ - "fips-us-gov-west-1": endpoint{ - Hostname: "email-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-west-1": endpoint{}, - }, - }, - "es": service{ - - Endpoints: endpoints{ - "fips": endpoint{ - Hostname: "es-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "events": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "events.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "events.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "firehose": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "firehose-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "firehose-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "fsx": service{ - - Endpoints: endpoints{ - "fips-prod-us-gov-east-1": endpoint{ - Hostname: "fsx-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-prod-us-gov-west-1": endpoint{ - Hostname: "fsx-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "glacier": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "glacier.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "glacier.us-gov-west-1.amazonaws.com", - Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "glue": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "glue-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "glue-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "greengrass": service{ - IsRegionalized: boxedTrue, - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "dataplane-us-gov-east-1": endpoint{ - Hostname: "greengrass-ats.iot.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "dataplane-us-gov-west-1": endpoint{ - Hostname: "greengrass-ats.iot.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "fips-us-gov-east-1": endpoint{ - Hostname: "greengrass-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-east-1": endpoint{ - Hostname: "greengrass.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "greengrass.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "guardduty": service{ - IsRegionalized: boxedTrue, - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-east-1-fips": endpoint{ - Hostname: "guardduty.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{}, - "us-gov-west-1-fips": endpoint{ - Hostname: "guardduty.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "health": service{ - - Endpoints: endpoints{ - "fips-us-gov-west-1": endpoint{ - Hostname: "health-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "iam": service{ - PartitionEndpoint: "aws-us-gov-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-us-gov-global": endpoint{ - Hostname: "iam.us-gov.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "iam-govcloud-fips": endpoint{ - Hostname: "iam.us-gov.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "inspector": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "inspector-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "inspector-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "iot": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "execute-api", - }, - }, - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "iotsecuredtunneling": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "kafka": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "kinesis": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "kinesis.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "kinesis.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "kinesisanalytics": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "kms": service{ - - Endpoints: endpoints{ - "ProdFips": endpoint{ - Hostname: "kms-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "lakeformation": service{ - - Endpoints: endpoints{ - "fips-us-gov-west-1": endpoint{ - Hostname: "lakeformation-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-west-1": endpoint{}, - }, - }, - "lambda": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "lambda-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "lambda-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "license-manager": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "license-manager-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "license-manager-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "logs": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "logs.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "logs.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "mediaconvert": service{ - - Endpoints: endpoints{ - "us-gov-west-1": endpoint{ - Hostname: "mediaconvert.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "metering.marketplace": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "aws-marketplace", - }, - }, - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "models.lex": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "lex", - }, - }, - Endpoints: endpoints{ - "us-gov-west-1": endpoint{}, - "us-gov-west-1-fips": endpoint{ - Hostname: "models-fips.lex.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "monitoring": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "monitoring.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "monitoring.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "neptune": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "rds.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "rds.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "organizations": service{ - PartitionEndpoint: "aws-us-gov-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-us-gov-global": endpoint{ - Hostname: "organizations.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "fips-aws-us-gov-global": endpoint{ - Hostname: "organizations.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "outposts": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "outposts.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "outposts.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "pinpoint": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "mobiletargeting", - }, - }, - Endpoints: endpoints{ - "fips-us-gov-west-1": endpoint{ - Hostname: "pinpoint-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "pinpoint.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "polly": service{ - - Endpoints: endpoints{ - "fips-us-gov-west-1": endpoint{ - Hostname: "polly-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-west-1": endpoint{}, - }, - }, - "ram": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "rds": service{ - - Endpoints: endpoints{ - "rds.us-gov-east-1": endpoint{ - Hostname: "rds.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "rds.us-gov-west-1": endpoint{ - Hostname: "rds.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "redshift": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "redshift.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "redshift.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "rekognition": service{ - - Endpoints: endpoints{ - "rekognition-fips.us-gov-west-1": endpoint{ - Hostname: "rekognition-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-west-1": endpoint{}, - }, - }, - "resource-groups": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "resource-groups.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "resource-groups.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "route53": service{ - PartitionEndpoint: "aws-us-gov-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-us-gov-global": endpoint{ - Hostname: "route53.us-gov.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "fips-aws-us-gov-global": endpoint{ - Hostname: "route53.us-gov.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "route53resolver": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "runtime.lex": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "lex", - }, - }, - Endpoints: endpoints{ - "us-gov-west-1": endpoint{}, - "us-gov-west-1-fips": endpoint{ - Hostname: "runtime-fips.lex.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "runtime.sagemaker": service{ - - Endpoints: endpoints{ - "us-gov-west-1": endpoint{}, - "us-gov-west-1-fips": endpoint{ - Hostname: "runtime.sagemaker.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "s3": service{ - Defaults: endpoint{ - SignatureVersions: []string{"s3", "s3v4"}, - - HasDualStack: boxedTrue, - DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}", - }, - Endpoints: endpoints{ - "fips-us-gov-west-1": endpoint{ - Hostname: "s3-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{ - Hostname: "s3.us-gov-east-1.amazonaws.com", - Protocols: []string{"http", "https"}, - }, - "us-gov-west-1": endpoint{ - Hostname: "s3.us-gov-west-1.amazonaws.com", - Protocols: []string{"http", "https"}, - }, - }, - }, - "s3-control": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - SignatureVersions: []string{"s3v4"}, - - HasDualStack: boxedTrue, - DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}", - }, - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "s3-control.us-gov-east-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-east-1-fips": endpoint{ - Hostname: "s3-control-fips.us-gov-east-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "s3-control.us-gov-west-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-west-1-fips": endpoint{ - Hostname: "s3-control-fips.us-gov-west-1.amazonaws.com", - SignatureVersions: []string{"s3v4"}, - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "secretsmanager": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-east-1-fips": endpoint{ - Hostname: "secretsmanager-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{}, - "us-gov-west-1-fips": endpoint{ - Hostname: "secretsmanager-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "securityhub": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "securityhub-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "securityhub-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "serverlessrepo": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "serverlessrepo.us-gov-east-1.amazonaws.com", - Protocols: []string{"https"}, - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "serverlessrepo.us-gov-west-1.amazonaws.com", - Protocols: []string{"https"}, - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "servicecatalog": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-east-1-fips": endpoint{ - Hostname: "servicecatalog-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{}, - "us-gov-west-1-fips": endpoint{ - Hostname: "servicecatalog-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "sms": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "sms-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "sms-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "snowball": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "snowball-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "snowball-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "sns": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "sns.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "sns.us-gov-west-1.amazonaws.com", - Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "sqs": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "sqs.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "sqs.us-gov-west-1.amazonaws.com", - SSLCommonName: "{region}.queue.{dnsSuffix}", - Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "ssm": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "ssm.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "ssm.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "states": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "states-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "states.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "storagegateway": service{ - - Endpoints: endpoints{ - "fips": endpoint{ - Hostname: "storagegateway-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "streams.dynamodb": service{ - Defaults: endpoint{ - CredentialScope: credentialScope{ - Service: "dynamodb", - }, - }, - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-east-1-fips": endpoint{ - Hostname: "dynamodb.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{}, - "us-gov-west-1-fips": endpoint{ - Hostname: "dynamodb.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "sts": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-east-1-fips": endpoint{ - Hostname: "sts.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{}, - "us-gov-west-1-fips": endpoint{ - Hostname: "sts.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "support": service{ - PartitionEndpoint: "aws-us-gov-global", - - Endpoints: endpoints{ - "aws-us-gov-global": endpoint{ - Hostname: "support.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "support.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "swf": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{ - Hostname: "swf.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "swf.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "tagging": service{ - - Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "transcribe": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "fips.transcribe.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "fips.transcribe.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "transfer": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "transfer-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "transfer-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - "translate": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "us-gov-west-1": endpoint{}, - "us-gov-west-1-fips": endpoint{ - Hostname: "translate-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "waf-regional": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "waf-regional-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "waf-regional-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{ - Hostname: "waf-regional.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "us-gov-west-1": endpoint{ - Hostname: "waf-regional.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - }, - }, - "workspaces": service{ - - Endpoints: endpoints{ - "fips-us-gov-west-1": endpoint{ - Hostname: "workspaces-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-west-1": endpoint{}, - }, - }, - "xray": service{ - - Endpoints: endpoints{ - "fips-us-gov-east-1": endpoint{ - Hostname: "xray-fips.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "fips-us-gov-west-1": endpoint{ - Hostname: "xray-fips.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, - }, - }, - }, -} - -// AwsIsoPartition returns the Resolver for AWS ISO (US). -func AwsIsoPartition() Partition { - return awsisoPartition.Partition() -} - -var awsisoPartition = partition{ - ID: "aws-iso", - Name: "AWS ISO (US)", - DNSSuffix: "c2s.ic.gov", - RegionRegex: regionRegex{ - Regexp: func() *regexp.Regexp { - reg, _ := regexp.Compile("^us\\-iso\\-\\w+\\-\\d+$") - return reg - }(), - }, - Defaults: endpoint{ - Hostname: "{service}.{region}.{dnsSuffix}", - Protocols: []string{"https"}, - SignatureVersions: []string{"v4"}, - }, - Regions: regions{ - "us-iso-east-1": region{ - Description: "US ISO East", - }, - }, - Services: services{ - "api.ecr": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Hostname: "api.ecr.us-iso-east-1.c2s.ic.gov", - CredentialScope: credentialScope{ - Region: "us-iso-east-1", - }, - }, - }, - }, - "api.sagemaker": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "apigateway": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "application-autoscaling": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "autoscaling": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "cloudformation": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "cloudtrail": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "codedeploy": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "comprehend": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "config": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "datapipeline": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "directconnect": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "dms": service{ - - Endpoints: endpoints{ - "dms-fips": endpoint{ - Hostname: "dms.us-iso-east-1.c2s.ic.gov", - CredentialScope: credentialScope{ - Region: "us-iso-east-1", - }, - }, - "us-iso-east-1": endpoint{}, - }, - }, - "ds": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "dynamodb": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "ec2": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "ec2metadata": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "169.254.169.254/latest", - Protocols: []string{"http"}, - }, - }, - }, - "ecs": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "elasticache": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "elasticloadbalancing": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "elasticmapreduce": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"https"}, - }, - }, - }, - "es": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "events": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "glacier": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "health": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "iam": service{ - PartitionEndpoint: "aws-iso-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-iso-global": endpoint{ - Hostname: "iam.us-iso-east-1.c2s.ic.gov", - CredentialScope: credentialScope{ - Region: "us-iso-east-1", - }, - }, - }, - }, - "kinesis": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "kms": service{ - - Endpoints: endpoints{ - "ProdFips": endpoint{ - Hostname: "kms-fips.us-iso-east-1.c2s.ic.gov", - CredentialScope: credentialScope{ - Region: "us-iso-east-1", - }, - }, - "us-iso-east-1": endpoint{}, - }, - }, - "lambda": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "logs": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "medialive": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "mediapackage": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "monitoring": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "outposts": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "rds": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "redshift": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "route53": service{ - PartitionEndpoint: "aws-iso-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-iso-global": endpoint{ - Hostname: "route53.c2s.ic.gov", - CredentialScope: credentialScope{ - Region: "us-iso-east-1", - }, - }, - }, - }, - "runtime.sagemaker": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "s3": service{ - Defaults: endpoint{ - SignatureVersions: []string{"s3v4"}, - }, - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - SignatureVersions: []string{"s3v4"}, - }, - }, - }, - "secretsmanager": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "snowball": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "sns": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "sqs": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "ssm": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "states": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "streams.dynamodb": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Service: "dynamodb", - }, - }, - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "sts": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "support": service{ - PartitionEndpoint: "aws-iso-global", - - Endpoints: endpoints{ - "aws-iso-global": endpoint{ - Hostname: "support.us-iso-east-1.c2s.ic.gov", - CredentialScope: credentialScope{ - Region: "us-iso-east-1", - }, - }, - }, - }, - "swf": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "transcribe": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "transcribestreaming": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "translate": service{ - Defaults: endpoint{ - Protocols: []string{"https"}, - }, - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "workspaces": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - }, -} - -// AwsIsoBPartition returns the Resolver for AWS ISOB (US). -func AwsIsoBPartition() Partition { - return awsisobPartition.Partition() -} - -var awsisobPartition = partition{ - ID: "aws-iso-b", - Name: "AWS ISOB (US)", - DNSSuffix: "sc2s.sgov.gov", - RegionRegex: regionRegex{ - Regexp: func() *regexp.Regexp { - reg, _ := regexp.Compile("^us\\-isob\\-\\w+\\-\\d+$") - return reg - }(), - }, - Defaults: endpoint{ - Hostname: "{service}.{region}.{dnsSuffix}", - Protocols: []string{"https"}, - SignatureVersions: []string{"v4"}, - }, - Regions: regions{ - "us-isob-east-1": region{ - Description: "US ISOB East (Ohio)", - }, - }, - Services: services{ - "api.ecr": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{ - Hostname: "api.ecr.us-isob-east-1.sc2s.sgov.gov", - CredentialScope: credentialScope{ - Region: "us-isob-east-1", - }, - }, - }, - }, - "application-autoscaling": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "autoscaling": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "cloudformation": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "cloudtrail": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "codedeploy": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "config": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "directconnect": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "dms": service{ - - Endpoints: endpoints{ - "dms-fips": endpoint{ - Hostname: "dms.us-isob-east-1.sc2s.sgov.gov", - CredentialScope: credentialScope{ - Region: "us-isob-east-1", - }, - }, - "us-isob-east-1": endpoint{}, - }, - }, - "dynamodb": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "ec2": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "ec2metadata": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "169.254.169.254/latest", - Protocols: []string{"http"}, - }, - }, - }, - "ecs": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "elasticache": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "elasticloadbalancing": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{ - Protocols: []string{"https"}, - }, - }, - }, - "elasticmapreduce": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "es": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "events": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "glacier": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "health": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "iam": service{ - PartitionEndpoint: "aws-iso-b-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-iso-b-global": endpoint{ - Hostname: "iam.us-isob-east-1.sc2s.sgov.gov", - CredentialScope: credentialScope{ - Region: "us-isob-east-1", - }, - }, - }, - }, - "kinesis": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "kms": service{ - - Endpoints: endpoints{ - "ProdFips": endpoint{ - Hostname: "kms-fips.us-isob-east-1.sc2s.sgov.gov", - CredentialScope: credentialScope{ - Region: "us-isob-east-1", - }, - }, - "us-isob-east-1": endpoint{}, - }, - }, - "lambda": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "license-manager": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "logs": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "monitoring": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "rds": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "redshift": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "route53": service{ - PartitionEndpoint: "aws-iso-b-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-iso-b-global": endpoint{ - Hostname: "route53.sc2s.sgov.gov", - CredentialScope: credentialScope{ - Region: "us-isob-east-1", - }, - }, - }, - }, - "s3": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - SignatureVersions: []string{"s3v4"}, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "snowball": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "sns": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "sqs": service{ - Defaults: endpoint{ - SSLCommonName: "{region}.queue.{dnsSuffix}", - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "ssm": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "states": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "streams.dynamodb": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Service: "dynamodb", - }, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "sts": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "support": service{ - PartitionEndpoint: "aws-iso-b-global", - - Endpoints: endpoints{ - "aws-iso-b-global": endpoint{ - Hostname: "support.us-isob-east-1.sc2s.sgov.gov", - CredentialScope: credentialScope{ - Region: "us-isob-east-1", - }, - }, - }, - }, - "swf": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - }, -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go deleted file mode 100644 index ca8fc82..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go +++ /dev/null @@ -1,141 +0,0 @@ -package endpoints - -// Service identifiers -// -// Deprecated: Use client package's EndpointsID value instead of these -// ServiceIDs. These IDs are not maintained, and are out of date. -const ( - A4bServiceID = "a4b" // A4b. - AcmServiceID = "acm" // Acm. - AcmPcaServiceID = "acm-pca" // AcmPca. - ApiMediatailorServiceID = "api.mediatailor" // ApiMediatailor. - ApiPricingServiceID = "api.pricing" // ApiPricing. - ApiSagemakerServiceID = "api.sagemaker" // ApiSagemaker. - ApigatewayServiceID = "apigateway" // Apigateway. - ApplicationAutoscalingServiceID = "application-autoscaling" // ApplicationAutoscaling. - Appstream2ServiceID = "appstream2" // Appstream2. - AppsyncServiceID = "appsync" // Appsync. - AthenaServiceID = "athena" // Athena. - AutoscalingServiceID = "autoscaling" // Autoscaling. - AutoscalingPlansServiceID = "autoscaling-plans" // AutoscalingPlans. - BatchServiceID = "batch" // Batch. - BudgetsServiceID = "budgets" // Budgets. - CeServiceID = "ce" // Ce. - ChimeServiceID = "chime" // Chime. - Cloud9ServiceID = "cloud9" // Cloud9. - ClouddirectoryServiceID = "clouddirectory" // Clouddirectory. - CloudformationServiceID = "cloudformation" // Cloudformation. - CloudfrontServiceID = "cloudfront" // Cloudfront. - CloudhsmServiceID = "cloudhsm" // Cloudhsm. - Cloudhsmv2ServiceID = "cloudhsmv2" // Cloudhsmv2. - CloudsearchServiceID = "cloudsearch" // Cloudsearch. - CloudtrailServiceID = "cloudtrail" // Cloudtrail. - CodebuildServiceID = "codebuild" // Codebuild. - CodecommitServiceID = "codecommit" // Codecommit. - CodedeployServiceID = "codedeploy" // Codedeploy. - CodepipelineServiceID = "codepipeline" // Codepipeline. - CodestarServiceID = "codestar" // Codestar. - CognitoIdentityServiceID = "cognito-identity" // CognitoIdentity. - CognitoIdpServiceID = "cognito-idp" // CognitoIdp. - CognitoSyncServiceID = "cognito-sync" // CognitoSync. - ComprehendServiceID = "comprehend" // Comprehend. - ConfigServiceID = "config" // Config. - CurServiceID = "cur" // Cur. - DatapipelineServiceID = "datapipeline" // Datapipeline. - DaxServiceID = "dax" // Dax. - DevicefarmServiceID = "devicefarm" // Devicefarm. - DirectconnectServiceID = "directconnect" // Directconnect. - DiscoveryServiceID = "discovery" // Discovery. - DmsServiceID = "dms" // Dms. - DsServiceID = "ds" // Ds. - DynamodbServiceID = "dynamodb" // Dynamodb. - Ec2ServiceID = "ec2" // Ec2. - Ec2metadataServiceID = "ec2metadata" // Ec2metadata. - EcrServiceID = "ecr" // Ecr. - EcsServiceID = "ecs" // Ecs. - ElasticacheServiceID = "elasticache" // Elasticache. - ElasticbeanstalkServiceID = "elasticbeanstalk" // Elasticbeanstalk. - ElasticfilesystemServiceID = "elasticfilesystem" // Elasticfilesystem. - ElasticloadbalancingServiceID = "elasticloadbalancing" // Elasticloadbalancing. - ElasticmapreduceServiceID = "elasticmapreduce" // Elasticmapreduce. - ElastictranscoderServiceID = "elastictranscoder" // Elastictranscoder. - EmailServiceID = "email" // Email. - EntitlementMarketplaceServiceID = "entitlement.marketplace" // EntitlementMarketplace. - EsServiceID = "es" // Es. - EventsServiceID = "events" // Events. - FirehoseServiceID = "firehose" // Firehose. - FmsServiceID = "fms" // Fms. - GameliftServiceID = "gamelift" // Gamelift. - GlacierServiceID = "glacier" // Glacier. - GlueServiceID = "glue" // Glue. - GreengrassServiceID = "greengrass" // Greengrass. - GuarddutyServiceID = "guardduty" // Guardduty. - HealthServiceID = "health" // Health. - IamServiceID = "iam" // Iam. - ImportexportServiceID = "importexport" // Importexport. - InspectorServiceID = "inspector" // Inspector. - IotServiceID = "iot" // Iot. - IotanalyticsServiceID = "iotanalytics" // Iotanalytics. - KinesisServiceID = "kinesis" // Kinesis. - KinesisanalyticsServiceID = "kinesisanalytics" // Kinesisanalytics. - KinesisvideoServiceID = "kinesisvideo" // Kinesisvideo. - KmsServiceID = "kms" // Kms. - LambdaServiceID = "lambda" // Lambda. - LightsailServiceID = "lightsail" // Lightsail. - LogsServiceID = "logs" // Logs. - MachinelearningServiceID = "machinelearning" // Machinelearning. - MarketplacecommerceanalyticsServiceID = "marketplacecommerceanalytics" // Marketplacecommerceanalytics. - MediaconvertServiceID = "mediaconvert" // Mediaconvert. - MedialiveServiceID = "medialive" // Medialive. - MediapackageServiceID = "mediapackage" // Mediapackage. - MediastoreServiceID = "mediastore" // Mediastore. - MeteringMarketplaceServiceID = "metering.marketplace" // MeteringMarketplace. - MghServiceID = "mgh" // Mgh. - MobileanalyticsServiceID = "mobileanalytics" // Mobileanalytics. - ModelsLexServiceID = "models.lex" // ModelsLex. - MonitoringServiceID = "monitoring" // Monitoring. - MturkRequesterServiceID = "mturk-requester" // MturkRequester. - NeptuneServiceID = "neptune" // Neptune. - OpsworksServiceID = "opsworks" // Opsworks. - OpsworksCmServiceID = "opsworks-cm" // OpsworksCm. - OrganizationsServiceID = "organizations" // Organizations. - PinpointServiceID = "pinpoint" // Pinpoint. - PollyServiceID = "polly" // Polly. - RdsServiceID = "rds" // Rds. - RedshiftServiceID = "redshift" // Redshift. - RekognitionServiceID = "rekognition" // Rekognition. - ResourceGroupsServiceID = "resource-groups" // ResourceGroups. - Route53ServiceID = "route53" // Route53. - Route53domainsServiceID = "route53domains" // Route53domains. - RuntimeLexServiceID = "runtime.lex" // RuntimeLex. - RuntimeSagemakerServiceID = "runtime.sagemaker" // RuntimeSagemaker. - S3ServiceID = "s3" // S3. - S3ControlServiceID = "s3-control" // S3Control. - SagemakerServiceID = "api.sagemaker" // Sagemaker. - SdbServiceID = "sdb" // Sdb. - SecretsmanagerServiceID = "secretsmanager" // Secretsmanager. - ServerlessrepoServiceID = "serverlessrepo" // Serverlessrepo. - ServicecatalogServiceID = "servicecatalog" // Servicecatalog. - ServicediscoveryServiceID = "servicediscovery" // Servicediscovery. - ShieldServiceID = "shield" // Shield. - SmsServiceID = "sms" // Sms. - SnowballServiceID = "snowball" // Snowball. - SnsServiceID = "sns" // Sns. - SqsServiceID = "sqs" // Sqs. - SsmServiceID = "ssm" // Ssm. - StatesServiceID = "states" // States. - StoragegatewayServiceID = "storagegateway" // Storagegateway. - StreamsDynamodbServiceID = "streams.dynamodb" // StreamsDynamodb. - StsServiceID = "sts" // Sts. - SupportServiceID = "support" // Support. - SwfServiceID = "swf" // Swf. - TaggingServiceID = "tagging" // Tagging. - TransferServiceID = "transfer" // Transfer. - TranslateServiceID = "translate" // Translate. - WafServiceID = "waf" // Waf. - WafRegionalServiceID = "waf-regional" // WafRegional. - WorkdocsServiceID = "workdocs" // Workdocs. - WorkmailServiceID = "workmail" // Workmail. - WorkspacesServiceID = "workspaces" // Workspaces. - XrayServiceID = "xray" // Xray. -) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/doc.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/doc.go deleted file mode 100644 index 84316b9..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/doc.go +++ /dev/null @@ -1,66 +0,0 @@ -// Package endpoints provides the types and functionality for defining regions -// and endpoints, as well as querying those definitions. -// -// The SDK's Regions and Endpoints metadata is code generated into the endpoints -// package, and is accessible via the DefaultResolver function. This function -// returns a endpoint Resolver will search the metadata and build an associated -// endpoint if one is found. The default resolver will search all partitions -// known by the SDK. e.g AWS Standard (aws), AWS China (aws-cn), and -// AWS GovCloud (US) (aws-us-gov). -// . -// -// Enumerating Regions and Endpoint Metadata -// -// Casting the Resolver returned by DefaultResolver to a EnumPartitions interface -// will allow you to get access to the list of underlying Partitions with the -// Partitions method. This is helpful if you want to limit the SDK's endpoint -// resolving to a single partition, or enumerate regions, services, and endpoints -// in the partition. -// -// resolver := endpoints.DefaultResolver() -// partitions := resolver.(endpoints.EnumPartitions).Partitions() -// -// for _, p := range partitions { -// fmt.Println("Regions for", p.ID()) -// for id, _ := range p.Regions() { -// fmt.Println("*", id) -// } -// -// fmt.Println("Services for", p.ID()) -// for id, _ := range p.Services() { -// fmt.Println("*", id) -// } -// } -// -// Using Custom Endpoints -// -// The endpoints package also gives you the ability to use your own logic how -// endpoints are resolved. This is a great way to define a custom endpoint -// for select services, without passing that logic down through your code. -// -// If a type implements the Resolver interface it can be used to resolve -// endpoints. To use this with the SDK's Session and Config set the value -// of the type to the EndpointsResolver field of aws.Config when initializing -// the session, or service client. -// -// In addition the ResolverFunc is a wrapper for a func matching the signature -// of Resolver.EndpointFor, converting it to a type that satisfies the -// Resolver interface. -// -// -// myCustomResolver := func(service, region string, optFns ...func(*endpoints.Options)) (endpoints.ResolvedEndpoint, error) { -// if service == endpoints.S3ServiceID { -// return endpoints.ResolvedEndpoint{ -// URL: "s3.custom.endpoint.com", -// SigningRegion: "custom-signing-region", -// }, nil -// } -// -// return endpoints.DefaultResolver().EndpointFor(service, region, optFns...) -// } -// -// sess := session.Must(session.NewSession(&aws.Config{ -// Region: aws.String("us-west-2"), -// EndpointResolver: endpoints.ResolverFunc(myCustomResolver), -// })) -package endpoints diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go deleted file mode 100644 index ca956e5..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go +++ /dev/null @@ -1,564 +0,0 @@ -package endpoints - -import ( - "fmt" - "regexp" - "strings" - - "github.com/aws/aws-sdk-go/aws/awserr" -) - -// Options provide the configuration needed to direct how the -// endpoints will be resolved. -type Options struct { - // DisableSSL forces the endpoint to be resolved as HTTP. - // instead of HTTPS if the service supports it. - DisableSSL bool - - // Sets the resolver to resolve the endpoint as a dualstack endpoint - // for the service. If dualstack support for a service is not known and - // StrictMatching is not enabled a dualstack endpoint for the service will - // be returned. This endpoint may not be valid. If StrictMatching is - // enabled only services that are known to support dualstack will return - // dualstack endpoints. - UseDualStack bool - - // Enables strict matching of services and regions resolved endpoints. - // If the partition doesn't enumerate the exact service and region an - // error will be returned. This option will prevent returning endpoints - // that look valid, but may not resolve to any real endpoint. - StrictMatching bool - - // Enables resolving a service endpoint based on the region provided if the - // service does not exist. The service endpoint ID will be used as the service - // domain name prefix. By default the endpoint resolver requires the service - // to be known when resolving endpoints. - // - // If resolving an endpoint on the partition list the provided region will - // be used to determine which partition's domain name pattern to the service - // endpoint ID with. If both the service and region are unknown and resolving - // the endpoint on partition list an UnknownEndpointError error will be returned. - // - // If resolving and endpoint on a partition specific resolver that partition's - // domain name pattern will be used with the service endpoint ID. If both - // region and service do not exist when resolving an endpoint on a specific - // partition the partition's domain pattern will be used to combine the - // endpoint and region together. - // - // This option is ignored if StrictMatching is enabled. - ResolveUnknownService bool - - // STS Regional Endpoint flag helps with resolving the STS endpoint - STSRegionalEndpoint STSRegionalEndpoint - - // S3 Regional Endpoint flag helps with resolving the S3 endpoint - S3UsEast1RegionalEndpoint S3UsEast1RegionalEndpoint -} - -// STSRegionalEndpoint is an enum for the states of the STS Regional Endpoint -// options. -type STSRegionalEndpoint int - -func (e STSRegionalEndpoint) String() string { - switch e { - case LegacySTSEndpoint: - return "legacy" - case RegionalSTSEndpoint: - return "regional" - case UnsetSTSEndpoint: - return "" - default: - return "unknown" - } -} - -const ( - - // UnsetSTSEndpoint represents that STS Regional Endpoint flag is not specified. - UnsetSTSEndpoint STSRegionalEndpoint = iota - - // LegacySTSEndpoint represents when STS Regional Endpoint flag is specified - // to use legacy endpoints. - LegacySTSEndpoint - - // RegionalSTSEndpoint represents when STS Regional Endpoint flag is specified - // to use regional endpoints. - RegionalSTSEndpoint -) - -// GetSTSRegionalEndpoint function returns the STSRegionalEndpointFlag based -// on the input string provided in env config or shared config by the user. -// -// `legacy`, `regional` are the only case-insensitive valid strings for -// resolving the STS regional Endpoint flag. -func GetSTSRegionalEndpoint(s string) (STSRegionalEndpoint, error) { - switch { - case strings.EqualFold(s, "legacy"): - return LegacySTSEndpoint, nil - case strings.EqualFold(s, "regional"): - return RegionalSTSEndpoint, nil - default: - return UnsetSTSEndpoint, fmt.Errorf("unable to resolve the value of STSRegionalEndpoint for %v", s) - } -} - -// S3UsEast1RegionalEndpoint is an enum for the states of the S3 us-east-1 -// Regional Endpoint options. -type S3UsEast1RegionalEndpoint int - -func (e S3UsEast1RegionalEndpoint) String() string { - switch e { - case LegacyS3UsEast1Endpoint: - return "legacy" - case RegionalS3UsEast1Endpoint: - return "regional" - case UnsetS3UsEast1Endpoint: - return "" - default: - return "unknown" - } -} - -const ( - - // UnsetS3UsEast1Endpoint represents that S3 Regional Endpoint flag is not - // specified. - UnsetS3UsEast1Endpoint S3UsEast1RegionalEndpoint = iota - - // LegacyS3UsEast1Endpoint represents when S3 Regional Endpoint flag is - // specified to use legacy endpoints. - LegacyS3UsEast1Endpoint - - // RegionalS3UsEast1Endpoint represents when S3 Regional Endpoint flag is - // specified to use regional endpoints. - RegionalS3UsEast1Endpoint -) - -// GetS3UsEast1RegionalEndpoint function returns the S3UsEast1RegionalEndpointFlag based -// on the input string provided in env config or shared config by the user. -// -// `legacy`, `regional` are the only case-insensitive valid strings for -// resolving the S3 regional Endpoint flag. -func GetS3UsEast1RegionalEndpoint(s string) (S3UsEast1RegionalEndpoint, error) { - switch { - case strings.EqualFold(s, "legacy"): - return LegacyS3UsEast1Endpoint, nil - case strings.EqualFold(s, "regional"): - return RegionalS3UsEast1Endpoint, nil - default: - return UnsetS3UsEast1Endpoint, - fmt.Errorf("unable to resolve the value of S3UsEast1RegionalEndpoint for %v", s) - } -} - -// Set combines all of the option functions together. -func (o *Options) Set(optFns ...func(*Options)) { - for _, fn := range optFns { - fn(o) - } -} - -// DisableSSLOption sets the DisableSSL options. Can be used as a functional -// option when resolving endpoints. -func DisableSSLOption(o *Options) { - o.DisableSSL = true -} - -// UseDualStackOption sets the UseDualStack option. Can be used as a functional -// option when resolving endpoints. -func UseDualStackOption(o *Options) { - o.UseDualStack = true -} - -// StrictMatchingOption sets the StrictMatching option. Can be used as a functional -// option when resolving endpoints. -func StrictMatchingOption(o *Options) { - o.StrictMatching = true -} - -// ResolveUnknownServiceOption sets the ResolveUnknownService option. Can be used -// as a functional option when resolving endpoints. -func ResolveUnknownServiceOption(o *Options) { - o.ResolveUnknownService = true -} - -// STSRegionalEndpointOption enables the STS endpoint resolver behavior to resolve -// STS endpoint to their regional endpoint, instead of the global endpoint. -func STSRegionalEndpointOption(o *Options) { - o.STSRegionalEndpoint = RegionalSTSEndpoint -} - -// A Resolver provides the interface for functionality to resolve endpoints. -// The build in Partition and DefaultResolver return value satisfy this interface. -type Resolver interface { - EndpointFor(service, region string, opts ...func(*Options)) (ResolvedEndpoint, error) -} - -// ResolverFunc is a helper utility that wraps a function so it satisfies the -// Resolver interface. This is useful when you want to add additional endpoint -// resolving logic, or stub out specific endpoints with custom values. -type ResolverFunc func(service, region string, opts ...func(*Options)) (ResolvedEndpoint, error) - -// EndpointFor wraps the ResolverFunc function to satisfy the Resolver interface. -func (fn ResolverFunc) EndpointFor(service, region string, opts ...func(*Options)) (ResolvedEndpoint, error) { - return fn(service, region, opts...) -} - -var schemeRE = regexp.MustCompile("^([^:]+)://") - -// AddScheme adds the HTTP or HTTPS schemes to a endpoint URL if there is no -// scheme. If disableSSL is true HTTP will set HTTP instead of the default HTTPS. -// -// If disableSSL is set, it will only set the URL's scheme if the URL does not -// contain a scheme. -func AddScheme(endpoint string, disableSSL bool) string { - if !schemeRE.MatchString(endpoint) { - scheme := "https" - if disableSSL { - scheme = "http" - } - endpoint = fmt.Sprintf("%s://%s", scheme, endpoint) - } - - return endpoint -} - -// EnumPartitions a provides a way to retrieve the underlying partitions that -// make up the SDK's default Resolver, or any resolver decoded from a model -// file. -// -// Use this interface with DefaultResolver and DecodeModels to get the list of -// Partitions. -type EnumPartitions interface { - Partitions() []Partition -} - -// RegionsForService returns a map of regions for the partition and service. -// If either the partition or service does not exist false will be returned -// as the second parameter. -// -// This example shows how to get the regions for DynamoDB in the AWS partition. -// rs, exists := endpoints.RegionsForService(endpoints.DefaultPartitions(), endpoints.AwsPartitionID, endpoints.DynamodbServiceID) -// -// This is equivalent to using the partition directly. -// rs := endpoints.AwsPartition().Services()[endpoints.DynamodbServiceID].Regions() -func RegionsForService(ps []Partition, partitionID, serviceID string) (map[string]Region, bool) { - for _, p := range ps { - if p.ID() != partitionID { - continue - } - if _, ok := p.p.Services[serviceID]; !ok { - break - } - - s := Service{ - id: serviceID, - p: p.p, - } - return s.Regions(), true - } - - return map[string]Region{}, false -} - -// PartitionForRegion returns the first partition which includes the region -// passed in. This includes both known regions and regions which match -// a pattern supported by the partition which may include regions that are -// not explicitly known by the partition. Use the Regions method of the -// returned Partition if explicit support is needed. -func PartitionForRegion(ps []Partition, regionID string) (Partition, bool) { - for _, p := range ps { - if _, ok := p.p.Regions[regionID]; ok || p.p.RegionRegex.MatchString(regionID) { - return p, true - } - } - - return Partition{}, false -} - -// A Partition provides the ability to enumerate the partition's regions -// and services. -type Partition struct { - id, dnsSuffix string - p *partition -} - -// DNSSuffix returns the base domain name of the partition. -func (p Partition) DNSSuffix() string { return p.dnsSuffix } - -// ID returns the identifier of the partition. -func (p Partition) ID() string { return p.id } - -// EndpointFor attempts to resolve the endpoint based on service and region. -// See Options for information on configuring how the endpoint is resolved. -// -// If the service cannot be found in the metadata the UnknownServiceError -// error will be returned. This validation will occur regardless if -// StrictMatching is enabled. To enable resolving unknown services set the -// "ResolveUnknownService" option to true. When StrictMatching is disabled -// this option allows the partition resolver to resolve a endpoint based on -// the service endpoint ID provided. -// -// When resolving endpoints you can choose to enable StrictMatching. This will -// require the provided service and region to be known by the partition. -// If the endpoint cannot be strictly resolved an error will be returned. This -// mode is useful to ensure the endpoint resolved is valid. Without -// StrictMatching enabled the endpoint returned may look valid but may not work. -// StrictMatching requires the SDK to be updated if you want to take advantage -// of new regions and services expansions. -// -// Errors that can be returned. -// * UnknownServiceError -// * UnknownEndpointError -func (p Partition) EndpointFor(service, region string, opts ...func(*Options)) (ResolvedEndpoint, error) { - return p.p.EndpointFor(service, region, opts...) -} - -// Regions returns a map of Regions indexed by their ID. This is useful for -// enumerating over the regions in a partition. -func (p Partition) Regions() map[string]Region { - rs := make(map[string]Region, len(p.p.Regions)) - for id, r := range p.p.Regions { - rs[id] = Region{ - id: id, - desc: r.Description, - p: p.p, - } - } - - return rs -} - -// Services returns a map of Service indexed by their ID. This is useful for -// enumerating over the services in a partition. -func (p Partition) Services() map[string]Service { - ss := make(map[string]Service, len(p.p.Services)) - for id := range p.p.Services { - ss[id] = Service{ - id: id, - p: p.p, - } - } - - return ss -} - -// A Region provides information about a region, and ability to resolve an -// endpoint from the context of a region, given a service. -type Region struct { - id, desc string - p *partition -} - -// ID returns the region's identifier. -func (r Region) ID() string { return r.id } - -// Description returns the region's description. The region description -// is free text, it can be empty, and it may change between SDK releases. -func (r Region) Description() string { return r.desc } - -// ResolveEndpoint resolves an endpoint from the context of the region given -// a service. See Partition.EndpointFor for usage and errors that can be returned. -func (r Region) ResolveEndpoint(service string, opts ...func(*Options)) (ResolvedEndpoint, error) { - return r.p.EndpointFor(service, r.id, opts...) -} - -// Services returns a list of all services that are known to be in this region. -func (r Region) Services() map[string]Service { - ss := map[string]Service{} - for id, s := range r.p.Services { - if _, ok := s.Endpoints[r.id]; ok { - ss[id] = Service{ - id: id, - p: r.p, - } - } - } - - return ss -} - -// A Service provides information about a service, and ability to resolve an -// endpoint from the context of a service, given a region. -type Service struct { - id string - p *partition -} - -// ID returns the identifier for the service. -func (s Service) ID() string { return s.id } - -// ResolveEndpoint resolves an endpoint from the context of a service given -// a region. See Partition.EndpointFor for usage and errors that can be returned. -func (s Service) ResolveEndpoint(region string, opts ...func(*Options)) (ResolvedEndpoint, error) { - return s.p.EndpointFor(s.id, region, opts...) -} - -// Regions returns a map of Regions that the service is present in. -// -// A region is the AWS region the service exists in. Whereas a Endpoint is -// an URL that can be resolved to a instance of a service. -func (s Service) Regions() map[string]Region { - rs := map[string]Region{} - for id := range s.p.Services[s.id].Endpoints { - if r, ok := s.p.Regions[id]; ok { - rs[id] = Region{ - id: id, - desc: r.Description, - p: s.p, - } - } - } - - return rs -} - -// Endpoints returns a map of Endpoints indexed by their ID for all known -// endpoints for a service. -// -// A region is the AWS region the service exists in. Whereas a Endpoint is -// an URL that can be resolved to a instance of a service. -func (s Service) Endpoints() map[string]Endpoint { - es := make(map[string]Endpoint, len(s.p.Services[s.id].Endpoints)) - for id := range s.p.Services[s.id].Endpoints { - es[id] = Endpoint{ - id: id, - serviceID: s.id, - p: s.p, - } - } - - return es -} - -// A Endpoint provides information about endpoints, and provides the ability -// to resolve that endpoint for the service, and the region the endpoint -// represents. -type Endpoint struct { - id string - serviceID string - p *partition -} - -// ID returns the identifier for an endpoint. -func (e Endpoint) ID() string { return e.id } - -// ServiceID returns the identifier the endpoint belongs to. -func (e Endpoint) ServiceID() string { return e.serviceID } - -// ResolveEndpoint resolves an endpoint from the context of a service and -// region the endpoint represents. See Partition.EndpointFor for usage and -// errors that can be returned. -func (e Endpoint) ResolveEndpoint(opts ...func(*Options)) (ResolvedEndpoint, error) { - return e.p.EndpointFor(e.serviceID, e.id, opts...) -} - -// A ResolvedEndpoint is an endpoint that has been resolved based on a partition -// service, and region. -type ResolvedEndpoint struct { - // The endpoint URL - URL string - - // The endpoint partition - PartitionID string - - // The region that should be used for signing requests. - SigningRegion string - - // The service name that should be used for signing requests. - SigningName string - - // States that the signing name for this endpoint was derived from metadata - // passed in, but was not explicitly modeled. - SigningNameDerived bool - - // The signing method that should be used for signing requests. - SigningMethod string -} - -// So that the Error interface type can be included as an anonymous field -// in the requestError struct and not conflict with the error.Error() method. -type awsError awserr.Error - -// A EndpointNotFoundError is returned when in StrictMatching mode, and the -// endpoint for the service and region cannot be found in any of the partitions. -type EndpointNotFoundError struct { - awsError - Partition string - Service string - Region string -} - -// A UnknownServiceError is returned when the service does not resolve to an -// endpoint. Includes a list of all known services for the partition. Returned -// when a partition does not support the service. -type UnknownServiceError struct { - awsError - Partition string - Service string - Known []string -} - -// NewUnknownServiceError builds and returns UnknownServiceError. -func NewUnknownServiceError(p, s string, known []string) UnknownServiceError { - return UnknownServiceError{ - awsError: awserr.New("UnknownServiceError", - "could not resolve endpoint for unknown service", nil), - Partition: p, - Service: s, - Known: known, - } -} - -// String returns the string representation of the error. -func (e UnknownServiceError) Error() string { - extra := fmt.Sprintf("partition: %q, service: %q", - e.Partition, e.Service) - if len(e.Known) > 0 { - extra += fmt.Sprintf(", known: %v", e.Known) - } - return awserr.SprintError(e.Code(), e.Message(), extra, e.OrigErr()) -} - -// String returns the string representation of the error. -func (e UnknownServiceError) String() string { - return e.Error() -} - -// A UnknownEndpointError is returned when in StrictMatching mode and the -// service is valid, but the region does not resolve to an endpoint. Includes -// a list of all known endpoints for the service. -type UnknownEndpointError struct { - awsError - Partition string - Service string - Region string - Known []string -} - -// NewUnknownEndpointError builds and returns UnknownEndpointError. -func NewUnknownEndpointError(p, s, r string, known []string) UnknownEndpointError { - return UnknownEndpointError{ - awsError: awserr.New("UnknownEndpointError", - "could not resolve endpoint", nil), - Partition: p, - Service: s, - Region: r, - Known: known, - } -} - -// String returns the string representation of the error. -func (e UnknownEndpointError) Error() string { - extra := fmt.Sprintf("partition: %q, service: %q, region: %q", - e.Partition, e.Service, e.Region) - if len(e.Known) > 0 { - extra += fmt.Sprintf(", known: %v", e.Known) - } - return awserr.SprintError(e.Code(), e.Message(), extra, e.OrigErr()) -} - -// String returns the string representation of the error. -func (e UnknownEndpointError) String() string { - return e.Error() -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/legacy_regions.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/legacy_regions.go deleted file mode 100644 index df75e89..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/legacy_regions.go +++ /dev/null @@ -1,24 +0,0 @@ -package endpoints - -var legacyGlobalRegions = map[string]map[string]struct{}{ - "sts": { - "ap-northeast-1": {}, - "ap-south-1": {}, - "ap-southeast-1": {}, - "ap-southeast-2": {}, - "ca-central-1": {}, - "eu-central-1": {}, - "eu-north-1": {}, - "eu-west-1": {}, - "eu-west-2": {}, - "eu-west-3": {}, - "sa-east-1": {}, - "us-east-1": {}, - "us-east-2": {}, - "us-west-1": {}, - "us-west-2": {}, - }, - "s3": { - "us-east-1": {}, - }, -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model.go deleted file mode 100644 index 7736137..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model.go +++ /dev/null @@ -1,351 +0,0 @@ -package endpoints - -import ( - "fmt" - "regexp" - "strconv" - "strings" -) - -var regionValidationRegex = regexp.MustCompile(`^[[:alnum:]]([[:alnum:]\-]*[[:alnum:]])?$`) - -type partitions []partition - -func (ps partitions) EndpointFor(service, region string, opts ...func(*Options)) (ResolvedEndpoint, error) { - var opt Options - opt.Set(opts...) - - for i := 0; i < len(ps); i++ { - if !ps[i].canResolveEndpoint(service, region, opt.StrictMatching) { - continue - } - - return ps[i].EndpointFor(service, region, opts...) - } - - // If loose matching fallback to first partition format to use - // when resolving the endpoint. - if !opt.StrictMatching && len(ps) > 0 { - return ps[0].EndpointFor(service, region, opts...) - } - - return ResolvedEndpoint{}, NewUnknownEndpointError("all partitions", service, region, []string{}) -} - -// Partitions satisfies the EnumPartitions interface and returns a list -// of Partitions representing each partition represented in the SDK's -// endpoints model. -func (ps partitions) Partitions() []Partition { - parts := make([]Partition, 0, len(ps)) - for i := 0; i < len(ps); i++ { - parts = append(parts, ps[i].Partition()) - } - - return parts -} - -type partition struct { - ID string `json:"partition"` - Name string `json:"partitionName"` - DNSSuffix string `json:"dnsSuffix"` - RegionRegex regionRegex `json:"regionRegex"` - Defaults endpoint `json:"defaults"` - Regions regions `json:"regions"` - Services services `json:"services"` -} - -func (p partition) Partition() Partition { - return Partition{ - dnsSuffix: p.DNSSuffix, - id: p.ID, - p: &p, - } -} - -func (p partition) canResolveEndpoint(service, region string, strictMatch bool) bool { - s, hasService := p.Services[service] - _, hasEndpoint := s.Endpoints[region] - - if hasEndpoint && hasService { - return true - } - - if strictMatch { - return false - } - - return p.RegionRegex.MatchString(region) -} - -func allowLegacyEmptyRegion(service string) bool { - legacy := map[string]struct{}{ - "budgets": {}, - "ce": {}, - "chime": {}, - "cloudfront": {}, - "ec2metadata": {}, - "iam": {}, - "importexport": {}, - "organizations": {}, - "route53": {}, - "sts": {}, - "support": {}, - "waf": {}, - } - - _, allowed := legacy[service] - return allowed -} - -func (p partition) EndpointFor(service, region string, opts ...func(*Options)) (resolved ResolvedEndpoint, err error) { - var opt Options - opt.Set(opts...) - - s, hasService := p.Services[service] - if len(service) == 0 || !(hasService || opt.ResolveUnknownService) { - // Only return error if the resolver will not fallback to creating - // endpoint based on service endpoint ID passed in. - return resolved, NewUnknownServiceError(p.ID, service, serviceList(p.Services)) - } - - if len(region) == 0 && allowLegacyEmptyRegion(service) && len(s.PartitionEndpoint) != 0 { - region = s.PartitionEndpoint - } - - if (service == "sts" && opt.STSRegionalEndpoint != RegionalSTSEndpoint) || - (service == "s3" && opt.S3UsEast1RegionalEndpoint != RegionalS3UsEast1Endpoint) { - if _, ok := legacyGlobalRegions[service][region]; ok { - region = "aws-global" - } - } - - e, hasEndpoint := s.endpointForRegion(region) - if len(region) == 0 || (!hasEndpoint && opt.StrictMatching) { - return resolved, NewUnknownEndpointError(p.ID, service, region, endpointList(s.Endpoints)) - } - - defs := []endpoint{p.Defaults, s.Defaults} - - return e.resolve(service, p.ID, region, p.DNSSuffix, defs, opt) -} - -func serviceList(ss services) []string { - list := make([]string, 0, len(ss)) - for k := range ss { - list = append(list, k) - } - return list -} -func endpointList(es endpoints) []string { - list := make([]string, 0, len(es)) - for k := range es { - list = append(list, k) - } - return list -} - -type regionRegex struct { - *regexp.Regexp -} - -func (rr *regionRegex) UnmarshalJSON(b []byte) (err error) { - // Strip leading and trailing quotes - regex, err := strconv.Unquote(string(b)) - if err != nil { - return fmt.Errorf("unable to strip quotes from regex, %v", err) - } - - rr.Regexp, err = regexp.Compile(regex) - if err != nil { - return fmt.Errorf("unable to unmarshal region regex, %v", err) - } - return nil -} - -type regions map[string]region - -type region struct { - Description string `json:"description"` -} - -type services map[string]service - -type service struct { - PartitionEndpoint string `json:"partitionEndpoint"` - IsRegionalized boxedBool `json:"isRegionalized,omitempty"` - Defaults endpoint `json:"defaults"` - Endpoints endpoints `json:"endpoints"` -} - -func (s *service) endpointForRegion(region string) (endpoint, bool) { - if s.IsRegionalized == boxedFalse { - return s.Endpoints[s.PartitionEndpoint], region == s.PartitionEndpoint - } - - if e, ok := s.Endpoints[region]; ok { - return e, true - } - - // Unable to find any matching endpoint, return - // blank that will be used for generic endpoint creation. - return endpoint{}, false -} - -type endpoints map[string]endpoint - -type endpoint struct { - Hostname string `json:"hostname"` - Protocols []string `json:"protocols"` - CredentialScope credentialScope `json:"credentialScope"` - - // Custom fields not modeled - HasDualStack boxedBool `json:"-"` - DualStackHostname string `json:"-"` - - // Signature Version not used - SignatureVersions []string `json:"signatureVersions"` - - // SSLCommonName not used. - SSLCommonName string `json:"sslCommonName"` -} - -const ( - defaultProtocol = "https" - defaultSigner = "v4" -) - -var ( - protocolPriority = []string{"https", "http"} - signerPriority = []string{"v4", "v2"} -) - -func getByPriority(s []string, p []string, def string) string { - if len(s) == 0 { - return def - } - - for i := 0; i < len(p); i++ { - for j := 0; j < len(s); j++ { - if s[j] == p[i] { - return s[j] - } - } - } - - return s[0] -} - -func (e endpoint) resolve(service, partitionID, region, dnsSuffix string, defs []endpoint, opts Options) (ResolvedEndpoint, error) { - var merged endpoint - for _, def := range defs { - merged.mergeIn(def) - } - merged.mergeIn(e) - e = merged - - signingRegion := e.CredentialScope.Region - if len(signingRegion) == 0 { - signingRegion = region - } - - signingName := e.CredentialScope.Service - var signingNameDerived bool - if len(signingName) == 0 { - signingName = service - signingNameDerived = true - } - - hostname := e.Hostname - // Offset the hostname for dualstack if enabled - if opts.UseDualStack && e.HasDualStack == boxedTrue { - hostname = e.DualStackHostname - region = signingRegion - } - - if !validateInputRegion(region) { - return ResolvedEndpoint{}, fmt.Errorf("invalid region identifier format provided") - } - - u := strings.Replace(hostname, "{service}", service, 1) - u = strings.Replace(u, "{region}", region, 1) - u = strings.Replace(u, "{dnsSuffix}", dnsSuffix, 1) - - scheme := getEndpointScheme(e.Protocols, opts.DisableSSL) - u = fmt.Sprintf("%s://%s", scheme, u) - - return ResolvedEndpoint{ - URL: u, - PartitionID: partitionID, - SigningRegion: signingRegion, - SigningName: signingName, - SigningNameDerived: signingNameDerived, - SigningMethod: getByPriority(e.SignatureVersions, signerPriority, defaultSigner), - }, nil -} - -func getEndpointScheme(protocols []string, disableSSL bool) string { - if disableSSL { - return "http" - } - - return getByPriority(protocols, protocolPriority, defaultProtocol) -} - -func (e *endpoint) mergeIn(other endpoint) { - if len(other.Hostname) > 0 { - e.Hostname = other.Hostname - } - if len(other.Protocols) > 0 { - e.Protocols = other.Protocols - } - if len(other.SignatureVersions) > 0 { - e.SignatureVersions = other.SignatureVersions - } - if len(other.CredentialScope.Region) > 0 { - e.CredentialScope.Region = other.CredentialScope.Region - } - if len(other.CredentialScope.Service) > 0 { - e.CredentialScope.Service = other.CredentialScope.Service - } - if len(other.SSLCommonName) > 0 { - e.SSLCommonName = other.SSLCommonName - } - if other.HasDualStack != boxedBoolUnset { - e.HasDualStack = other.HasDualStack - } - if len(other.DualStackHostname) > 0 { - e.DualStackHostname = other.DualStackHostname - } -} - -type credentialScope struct { - Region string `json:"region"` - Service string `json:"service"` -} - -type boxedBool int - -func (b *boxedBool) UnmarshalJSON(buf []byte) error { - v, err := strconv.ParseBool(string(buf)) - if err != nil { - return err - } - - if v { - *b = boxedTrue - } else { - *b = boxedFalse - } - - return nil -} - -const ( - boxedBoolUnset boxedBool = iota - boxedFalse - boxedTrue -) - -func validateInputRegion(region string) bool { - return regionValidationRegex.MatchString(region) -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go deleted file mode 100644 index 0fdfcc5..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go +++ /dev/null @@ -1,351 +0,0 @@ -// +build codegen - -package endpoints - -import ( - "fmt" - "io" - "reflect" - "strings" - "text/template" - "unicode" -) - -// A CodeGenOptions are the options for code generating the endpoints into -// Go code from the endpoints model definition. -type CodeGenOptions struct { - // Options for how the model will be decoded. - DecodeModelOptions DecodeModelOptions - - // Disables code generation of the service endpoint prefix IDs defined in - // the model. - DisableGenerateServiceIDs bool -} - -// Set combines all of the option functions together -func (d *CodeGenOptions) Set(optFns ...func(*CodeGenOptions)) { - for _, fn := range optFns { - fn(d) - } -} - -// CodeGenModel given a endpoints model file will decode it and attempt to -// generate Go code from the model definition. Error will be returned if -// the code is unable to be generated, or decoded. -func CodeGenModel(modelFile io.Reader, outFile io.Writer, optFns ...func(*CodeGenOptions)) error { - var opts CodeGenOptions - opts.Set(optFns...) - - resolver, err := DecodeModel(modelFile, func(d *DecodeModelOptions) { - *d = opts.DecodeModelOptions - }) - if err != nil { - return err - } - - v := struct { - Resolver - CodeGenOptions - }{ - Resolver: resolver, - CodeGenOptions: opts, - } - - tmpl := template.Must(template.New("tmpl").Funcs(funcMap).Parse(v3Tmpl)) - if err := tmpl.ExecuteTemplate(outFile, "defaults", v); err != nil { - return fmt.Errorf("failed to execute template, %v", err) - } - - return nil -} - -func toSymbol(v string) string { - out := []rune{} - for _, c := range strings.Title(v) { - if !(unicode.IsNumber(c) || unicode.IsLetter(c)) { - continue - } - - out = append(out, c) - } - - return string(out) -} - -func quoteString(v string) string { - return fmt.Sprintf("%q", v) -} - -func regionConstName(p, r string) string { - return toSymbol(p) + toSymbol(r) -} - -func partitionGetter(id string) string { - return fmt.Sprintf("%sPartition", toSymbol(id)) -} - -func partitionVarName(id string) string { - return fmt.Sprintf("%sPartition", strings.ToLower(toSymbol(id))) -} - -func listPartitionNames(ps partitions) string { - names := []string{} - switch len(ps) { - case 1: - return ps[0].Name - case 2: - return fmt.Sprintf("%s and %s", ps[0].Name, ps[1].Name) - default: - for i, p := range ps { - if i == len(ps)-1 { - names = append(names, "and "+p.Name) - } else { - names = append(names, p.Name) - } - } - return strings.Join(names, ", ") - } -} - -func boxedBoolIfSet(msg string, v boxedBool) string { - switch v { - case boxedTrue: - return fmt.Sprintf(msg, "boxedTrue") - case boxedFalse: - return fmt.Sprintf(msg, "boxedFalse") - default: - return "" - } -} - -func stringIfSet(msg, v string) string { - if len(v) == 0 { - return "" - } - - return fmt.Sprintf(msg, v) -} - -func stringSliceIfSet(msg string, vs []string) string { - if len(vs) == 0 { - return "" - } - - names := []string{} - for _, v := range vs { - names = append(names, `"`+v+`"`) - } - - return fmt.Sprintf(msg, strings.Join(names, ",")) -} - -func endpointIsSet(v endpoint) bool { - return !reflect.DeepEqual(v, endpoint{}) -} - -func serviceSet(ps partitions) map[string]struct{} { - set := map[string]struct{}{} - for _, p := range ps { - for id := range p.Services { - set[id] = struct{}{} - } - } - - return set -} - -var funcMap = template.FuncMap{ - "ToSymbol": toSymbol, - "QuoteString": quoteString, - "RegionConst": regionConstName, - "PartitionGetter": partitionGetter, - "PartitionVarName": partitionVarName, - "ListPartitionNames": listPartitionNames, - "BoxedBoolIfSet": boxedBoolIfSet, - "StringIfSet": stringIfSet, - "StringSliceIfSet": stringSliceIfSet, - "EndpointIsSet": endpointIsSet, - "ServicesSet": serviceSet, -} - -const v3Tmpl = ` -{{ define "defaults" -}} -// Code generated by aws/endpoints/v3model_codegen.go. DO NOT EDIT. - -package endpoints - -import ( - "regexp" -) - - {{ template "partition consts" $.Resolver }} - - {{ range $_, $partition := $.Resolver }} - {{ template "partition region consts" $partition }} - {{ end }} - - {{ if not $.DisableGenerateServiceIDs -}} - {{ template "service consts" $.Resolver }} - {{- end }} - - {{ template "endpoint resolvers" $.Resolver }} -{{- end }} - -{{ define "partition consts" }} - // Partition identifiers - const ( - {{ range $_, $p := . -}} - {{ ToSymbol $p.ID }}PartitionID = {{ QuoteString $p.ID }} // {{ $p.Name }} partition. - {{ end -}} - ) -{{- end }} - -{{ define "partition region consts" }} - // {{ .Name }} partition's regions. - const ( - {{ range $id, $region := .Regions -}} - {{ ToSymbol $id }}RegionID = {{ QuoteString $id }} // {{ $region.Description }}. - {{ end -}} - ) -{{- end }} - -{{ define "service consts" }} - // Service identifiers - const ( - {{ $serviceSet := ServicesSet . -}} - {{ range $id, $_ := $serviceSet -}} - {{ ToSymbol $id }}ServiceID = {{ QuoteString $id }} // {{ ToSymbol $id }}. - {{ end -}} - ) -{{- end }} - -{{ define "endpoint resolvers" }} - // DefaultResolver returns an Endpoint resolver that will be able - // to resolve endpoints for: {{ ListPartitionNames . }}. - // - // Use DefaultPartitions() to get the list of the default partitions. - func DefaultResolver() Resolver { - return defaultPartitions - } - - // DefaultPartitions returns a list of the partitions the SDK is bundled - // with. The available partitions are: {{ ListPartitionNames . }}. - // - // partitions := endpoints.DefaultPartitions - // for _, p := range partitions { - // // ... inspect partitions - // } - func DefaultPartitions() []Partition { - return defaultPartitions.Partitions() - } - - var defaultPartitions = partitions{ - {{ range $_, $partition := . -}} - {{ PartitionVarName $partition.ID }}, - {{ end }} - } - - {{ range $_, $partition := . -}} - {{ $name := PartitionGetter $partition.ID -}} - // {{ $name }} returns the Resolver for {{ $partition.Name }}. - func {{ $name }}() Partition { - return {{ PartitionVarName $partition.ID }}.Partition() - } - var {{ PartitionVarName $partition.ID }} = {{ template "gocode Partition" $partition }} - {{ end }} -{{ end }} - -{{ define "default partitions" }} - func DefaultPartitions() []Partition { - return []partition{ - {{ range $_, $partition := . -}} - // {{ ToSymbol $partition.ID}}Partition(), - {{ end }} - } - } -{{ end }} - -{{ define "gocode Partition" -}} -partition{ - {{ StringIfSet "ID: %q,\n" .ID -}} - {{ StringIfSet "Name: %q,\n" .Name -}} - {{ StringIfSet "DNSSuffix: %q,\n" .DNSSuffix -}} - RegionRegex: {{ template "gocode RegionRegex" .RegionRegex }}, - {{ if EndpointIsSet .Defaults -}} - Defaults: {{ template "gocode Endpoint" .Defaults }}, - {{- end }} - Regions: {{ template "gocode Regions" .Regions }}, - Services: {{ template "gocode Services" .Services }}, -} -{{- end }} - -{{ define "gocode RegionRegex" -}} -regionRegex{ - Regexp: func() *regexp.Regexp{ - reg, _ := regexp.Compile({{ QuoteString .Regexp.String }}) - return reg - }(), -} -{{- end }} - -{{ define "gocode Regions" -}} -regions{ - {{ range $id, $region := . -}} - "{{ $id }}": {{ template "gocode Region" $region }}, - {{ end -}} -} -{{- end }} - -{{ define "gocode Region" -}} -region{ - {{ StringIfSet "Description: %q,\n" .Description -}} -} -{{- end }} - -{{ define "gocode Services" -}} -services{ - {{ range $id, $service := . -}} - "{{ $id }}": {{ template "gocode Service" $service }}, - {{ end }} -} -{{- end }} - -{{ define "gocode Service" -}} -service{ - {{ StringIfSet "PartitionEndpoint: %q,\n" .PartitionEndpoint -}} - {{ BoxedBoolIfSet "IsRegionalized: %s,\n" .IsRegionalized -}} - {{ if EndpointIsSet .Defaults -}} - Defaults: {{ template "gocode Endpoint" .Defaults -}}, - {{- end }} - {{ if .Endpoints -}} - Endpoints: {{ template "gocode Endpoints" .Endpoints }}, - {{- end }} -} -{{- end }} - -{{ define "gocode Endpoints" -}} -endpoints{ - {{ range $id, $endpoint := . -}} - "{{ $id }}": {{ template "gocode Endpoint" $endpoint }}, - {{ end }} -} -{{- end }} - -{{ define "gocode Endpoint" -}} -endpoint{ - {{ StringIfSet "Hostname: %q,\n" .Hostname -}} - {{ StringIfSet "SSLCommonName: %q,\n" .SSLCommonName -}} - {{ StringSliceIfSet "Protocols: []string{%s},\n" .Protocols -}} - {{ StringSliceIfSet "SignatureVersions: []string{%s},\n" .SignatureVersions -}} - {{ if or .CredentialScope.Region .CredentialScope.Service -}} - CredentialScope: credentialScope{ - {{ StringIfSet "Region: %q,\n" .CredentialScope.Region -}} - {{ StringIfSet "Service: %q,\n" .CredentialScope.Service -}} - }, - {{- end }} - {{ BoxedBoolIfSet "HasDualStack: %s,\n" .HasDualStack -}} - {{ StringIfSet "DualStackHostname: %q,\n" .DualStackHostname -}} - -} -{{- end }} -` diff --git a/vendor/github.com/aws/aws-sdk-go/aws/errors.go b/vendor/github.com/aws/aws-sdk-go/aws/errors.go deleted file mode 100644 index fa06f7a..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/errors.go +++ /dev/null @@ -1,13 +0,0 @@ -package aws - -import "github.com/aws/aws-sdk-go/aws/awserr" - -var ( - // ErrMissingRegion is an error that is returned if region configuration is - // not found. - ErrMissingRegion = awserr.New("MissingRegion", "could not find region configuration", nil) - - // ErrMissingEndpoint is an error that is returned if an endpoint cannot be - // resolved for a service. - ErrMissingEndpoint = awserr.New("MissingEndpoint", "'Endpoint' configuration is required for this service", nil) -) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/jsonvalue.go b/vendor/github.com/aws/aws-sdk-go/aws/jsonvalue.go deleted file mode 100644 index 91a6f27..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/jsonvalue.go +++ /dev/null @@ -1,12 +0,0 @@ -package aws - -// JSONValue is a representation of a grab bag type that will be marshaled -// into a json string. This type can be used just like any other map. -// -// Example: -// -// values := aws.JSONValue{ -// "Foo": "Bar", -// } -// values["Baz"] = "Qux" -type JSONValue map[string]interface{} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/logger.go b/vendor/github.com/aws/aws-sdk-go/aws/logger.go deleted file mode 100644 index 6ed15b2..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/logger.go +++ /dev/null @@ -1,118 +0,0 @@ -package aws - -import ( - "log" - "os" -) - -// A LogLevelType defines the level logging should be performed at. Used to instruct -// the SDK which statements should be logged. -type LogLevelType uint - -// LogLevel returns the pointer to a LogLevel. Should be used to workaround -// not being able to take the address of a non-composite literal. -func LogLevel(l LogLevelType) *LogLevelType { - return &l -} - -// Value returns the LogLevel value or the default value LogOff if the LogLevel -// is nil. Safe to use on nil value LogLevelTypes. -func (l *LogLevelType) Value() LogLevelType { - if l != nil { - return *l - } - return LogOff -} - -// Matches returns true if the v LogLevel is enabled by this LogLevel. Should be -// used with logging sub levels. Is safe to use on nil value LogLevelTypes. If -// LogLevel is nil, will default to LogOff comparison. -func (l *LogLevelType) Matches(v LogLevelType) bool { - c := l.Value() - return c&v == v -} - -// AtLeast returns true if this LogLevel is at least high enough to satisfies v. -// Is safe to use on nil value LogLevelTypes. If LogLevel is nil, will default -// to LogOff comparison. -func (l *LogLevelType) AtLeast(v LogLevelType) bool { - c := l.Value() - return c >= v -} - -const ( - // LogOff states that no logging should be performed by the SDK. This is the - // default state of the SDK, and should be use to disable all logging. - LogOff LogLevelType = iota * 0x1000 - - // LogDebug state that debug output should be logged by the SDK. This should - // be used to inspect request made and responses received. - LogDebug -) - -// Debug Logging Sub Levels -const ( - // LogDebugWithSigning states that the SDK should log request signing and - // presigning events. This should be used to log the signing details of - // requests for debugging. Will also enable LogDebug. - LogDebugWithSigning LogLevelType = LogDebug | (1 << iota) - - // LogDebugWithHTTPBody states the SDK should log HTTP request and response - // HTTP bodys in addition to the headers and path. This should be used to - // see the body content of requests and responses made while using the SDK - // Will also enable LogDebug. - LogDebugWithHTTPBody - - // LogDebugWithRequestRetries states the SDK should log when service requests will - // be retried. This should be used to log when you want to log when service - // requests are being retried. Will also enable LogDebug. - LogDebugWithRequestRetries - - // LogDebugWithRequestErrors states the SDK should log when service requests fail - // to build, send, validate, or unmarshal. - LogDebugWithRequestErrors - - // LogDebugWithEventStreamBody states the SDK should log EventStream - // request and response bodys. This should be used to log the EventStream - // wire unmarshaled message content of requests and responses made while - // using the SDK Will also enable LogDebug. - LogDebugWithEventStreamBody -) - -// A Logger is a minimalistic interface for the SDK to log messages to. Should -// be used to provide custom logging writers for the SDK to use. -type Logger interface { - Log(...interface{}) -} - -// A LoggerFunc is a convenience type to convert a function taking a variadic -// list of arguments and wrap it so the Logger interface can be used. -// -// Example: -// s3.New(sess, &aws.Config{Logger: aws.LoggerFunc(func(args ...interface{}) { -// fmt.Fprintln(os.Stdout, args...) -// })}) -type LoggerFunc func(...interface{}) - -// Log calls the wrapped function with the arguments provided -func (f LoggerFunc) Log(args ...interface{}) { - f(args...) -} - -// NewDefaultLogger returns a Logger which will write log messages to stdout, and -// use same formatting runes as the stdlib log.Logger -func NewDefaultLogger() Logger { - return &defaultLogger{ - logger: log.New(os.Stdout, "", log.LstdFlags), - } -} - -// A defaultLogger provides a minimalistic logger satisfying the Logger interface. -type defaultLogger struct { - logger *log.Logger -} - -// Log logs the parameters to the stdlib logger. See log.Println. -func (l defaultLogger) Log(args ...interface{}) { - l.logger.Println(args...) -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error.go b/vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error.go deleted file mode 100644 index 2ba3c56..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error.go +++ /dev/null @@ -1,19 +0,0 @@ -package request - -import ( - "strings" -) - -func isErrConnectionReset(err error) bool { - if strings.Contains(err.Error(), "read: connection reset") { - return false - } - - if strings.Contains(err.Error(), "use of closed network connection") || - strings.Contains(err.Error(), "connection reset") || - strings.Contains(err.Error(), "broken pipe") { - return true - } - - return false -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go b/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go deleted file mode 100644 index e819ab6..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go +++ /dev/null @@ -1,343 +0,0 @@ -package request - -import ( - "fmt" - "strings" -) - -// A Handlers provides a collection of request handlers for various -// stages of handling requests. -type Handlers struct { - Validate HandlerList - Build HandlerList - BuildStream HandlerList - Sign HandlerList - Send HandlerList - ValidateResponse HandlerList - Unmarshal HandlerList - UnmarshalStream HandlerList - UnmarshalMeta HandlerList - UnmarshalError HandlerList - Retry HandlerList - AfterRetry HandlerList - CompleteAttempt HandlerList - Complete HandlerList -} - -// Copy returns a copy of this handler's lists. -func (h *Handlers) Copy() Handlers { - return Handlers{ - Validate: h.Validate.copy(), - Build: h.Build.copy(), - BuildStream: h.BuildStream.copy(), - Sign: h.Sign.copy(), - Send: h.Send.copy(), - ValidateResponse: h.ValidateResponse.copy(), - Unmarshal: h.Unmarshal.copy(), - UnmarshalStream: h.UnmarshalStream.copy(), - UnmarshalError: h.UnmarshalError.copy(), - UnmarshalMeta: h.UnmarshalMeta.copy(), - Retry: h.Retry.copy(), - AfterRetry: h.AfterRetry.copy(), - CompleteAttempt: h.CompleteAttempt.copy(), - Complete: h.Complete.copy(), - } -} - -// Clear removes callback functions for all handlers. -func (h *Handlers) Clear() { - h.Validate.Clear() - h.Build.Clear() - h.BuildStream.Clear() - h.Send.Clear() - h.Sign.Clear() - h.Unmarshal.Clear() - h.UnmarshalStream.Clear() - h.UnmarshalMeta.Clear() - h.UnmarshalError.Clear() - h.ValidateResponse.Clear() - h.Retry.Clear() - h.AfterRetry.Clear() - h.CompleteAttempt.Clear() - h.Complete.Clear() -} - -// IsEmpty returns if there are no handlers in any of the handlerlists. -func (h *Handlers) IsEmpty() bool { - if h.Validate.Len() != 0 { - return false - } - if h.Build.Len() != 0 { - return false - } - if h.BuildStream.Len() != 0 { - return false - } - if h.Send.Len() != 0 { - return false - } - if h.Sign.Len() != 0 { - return false - } - if h.Unmarshal.Len() != 0 { - return false - } - if h.UnmarshalStream.Len() != 0 { - return false - } - if h.UnmarshalMeta.Len() != 0 { - return false - } - if h.UnmarshalError.Len() != 0 { - return false - } - if h.ValidateResponse.Len() != 0 { - return false - } - if h.Retry.Len() != 0 { - return false - } - if h.AfterRetry.Len() != 0 { - return false - } - if h.CompleteAttempt.Len() != 0 { - return false - } - if h.Complete.Len() != 0 { - return false - } - - return true -} - -// A HandlerListRunItem represents an entry in the HandlerList which -// is being run. -type HandlerListRunItem struct { - Index int - Handler NamedHandler - Request *Request -} - -// A HandlerList manages zero or more handlers in a list. -type HandlerList struct { - list []NamedHandler - - // Called after each request handler in the list is called. If set - // and the func returns true the HandlerList will continue to iterate - // over the request handlers. If false is returned the HandlerList - // will stop iterating. - // - // Should be used if extra logic to be performed between each handler - // in the list. This can be used to terminate a list's iteration - // based on a condition such as error like, HandlerListStopOnError. - // Or for logging like HandlerListLogItem. - AfterEachFn func(item HandlerListRunItem) bool -} - -// A NamedHandler is a struct that contains a name and function callback. -type NamedHandler struct { - Name string - Fn func(*Request) -} - -// copy creates a copy of the handler list. -func (l *HandlerList) copy() HandlerList { - n := HandlerList{ - AfterEachFn: l.AfterEachFn, - } - if len(l.list) == 0 { - return n - } - - n.list = append(make([]NamedHandler, 0, len(l.list)), l.list...) - return n -} - -// Clear clears the handler list. -func (l *HandlerList) Clear() { - l.list = l.list[0:0] -} - -// Len returns the number of handlers in the list. -func (l *HandlerList) Len() int { - return len(l.list) -} - -// PushBack pushes handler f to the back of the handler list. -func (l *HandlerList) PushBack(f func(*Request)) { - l.PushBackNamed(NamedHandler{"__anonymous", f}) -} - -// PushBackNamed pushes named handler f to the back of the handler list. -func (l *HandlerList) PushBackNamed(n NamedHandler) { - if cap(l.list) == 0 { - l.list = make([]NamedHandler, 0, 5) - } - l.list = append(l.list, n) -} - -// PushFront pushes handler f to the front of the handler list. -func (l *HandlerList) PushFront(f func(*Request)) { - l.PushFrontNamed(NamedHandler{"__anonymous", f}) -} - -// PushFrontNamed pushes named handler f to the front of the handler list. -func (l *HandlerList) PushFrontNamed(n NamedHandler) { - if cap(l.list) == len(l.list) { - // Allocating new list required - l.list = append([]NamedHandler{n}, l.list...) - } else { - // Enough room to prepend into list. - l.list = append(l.list, NamedHandler{}) - copy(l.list[1:], l.list) - l.list[0] = n - } -} - -// Remove removes a NamedHandler n -func (l *HandlerList) Remove(n NamedHandler) { - l.RemoveByName(n.Name) -} - -// RemoveByName removes a NamedHandler by name. -func (l *HandlerList) RemoveByName(name string) { - for i := 0; i < len(l.list); i++ { - m := l.list[i] - if m.Name == name { - // Shift array preventing creating new arrays - copy(l.list[i:], l.list[i+1:]) - l.list[len(l.list)-1] = NamedHandler{} - l.list = l.list[:len(l.list)-1] - - // decrement list so next check to length is correct - i-- - } - } -} - -// SwapNamed will swap out any existing handlers with the same name as the -// passed in NamedHandler returning true if handlers were swapped. False is -// returned otherwise. -func (l *HandlerList) SwapNamed(n NamedHandler) (swapped bool) { - for i := 0; i < len(l.list); i++ { - if l.list[i].Name == n.Name { - l.list[i].Fn = n.Fn - swapped = true - } - } - - return swapped -} - -// Swap will swap out all handlers matching the name passed in. The matched -// handlers will be swapped in. True is returned if the handlers were swapped. -func (l *HandlerList) Swap(name string, replace NamedHandler) bool { - var swapped bool - - for i := 0; i < len(l.list); i++ { - if l.list[i].Name == name { - l.list[i] = replace - swapped = true - } - } - - return swapped -} - -// SetBackNamed will replace the named handler if it exists in the handler list. -// If the handler does not exist the handler will be added to the end of the list. -func (l *HandlerList) SetBackNamed(n NamedHandler) { - if !l.SwapNamed(n) { - l.PushBackNamed(n) - } -} - -// SetFrontNamed will replace the named handler if it exists in the handler list. -// If the handler does not exist the handler will be added to the beginning of -// the list. -func (l *HandlerList) SetFrontNamed(n NamedHandler) { - if !l.SwapNamed(n) { - l.PushFrontNamed(n) - } -} - -// Run executes all handlers in the list with a given request object. -func (l *HandlerList) Run(r *Request) { - for i, h := range l.list { - h.Fn(r) - item := HandlerListRunItem{ - Index: i, Handler: h, Request: r, - } - if l.AfterEachFn != nil && !l.AfterEachFn(item) { - return - } - } -} - -// HandlerListLogItem logs the request handler and the state of the -// request's Error value. Always returns true to continue iterating -// request handlers in a HandlerList. -func HandlerListLogItem(item HandlerListRunItem) bool { - if item.Request.Config.Logger == nil { - return true - } - item.Request.Config.Logger.Log("DEBUG: RequestHandler", - item.Index, item.Handler.Name, item.Request.Error) - - return true -} - -// HandlerListStopOnError returns false to stop the HandlerList iterating -// over request handlers if Request.Error is not nil. True otherwise -// to continue iterating. -func HandlerListStopOnError(item HandlerListRunItem) bool { - return item.Request.Error == nil -} - -// WithAppendUserAgent will add a string to the user agent prefixed with a -// single white space. -func WithAppendUserAgent(s string) Option { - return func(r *Request) { - r.Handlers.Build.PushBack(func(r2 *Request) { - AddToUserAgent(r, s) - }) - } -} - -// MakeAddToUserAgentHandler will add the name/version pair to the User-Agent request -// header. If the extra parameters are provided they will be added as metadata to the -// name/version pair resulting in the following format. -// "name/version (extra0; extra1; ...)" -// The user agent part will be concatenated with this current request's user agent string. -func MakeAddToUserAgentHandler(name, version string, extra ...string) func(*Request) { - ua := fmt.Sprintf("%s/%s", name, version) - if len(extra) > 0 { - ua += fmt.Sprintf(" (%s)", strings.Join(extra, "; ")) - } - return func(r *Request) { - AddToUserAgent(r, ua) - } -} - -// MakeAddToUserAgentFreeFormHandler adds the input to the User-Agent request header. -// The input string will be concatenated with the current request's user agent string. -func MakeAddToUserAgentFreeFormHandler(s string) func(*Request) { - return func(r *Request) { - AddToUserAgent(r, s) - } -} - -// WithSetRequestHeaders updates the operation request's HTTP header to contain -// the header key value pairs provided. If the header key already exists in the -// request's HTTP header set, the existing value(s) will be replaced. -func WithSetRequestHeaders(h map[string]string) Option { - return withRequestHeader(h).SetRequestHeaders -} - -type withRequestHeader map[string]string - -func (h withRequestHeader) SetRequestHeaders(r *Request) { - for k, v := range h { - r.HTTPRequest.Header[k] = []string{v} - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/http_request.go b/vendor/github.com/aws/aws-sdk-go/aws/request/http_request.go deleted file mode 100644 index 79f7960..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/http_request.go +++ /dev/null @@ -1,24 +0,0 @@ -package request - -import ( - "io" - "net/http" - "net/url" -) - -func copyHTTPRequest(r *http.Request, body io.ReadCloser) *http.Request { - req := new(http.Request) - *req = *r - req.URL = &url.URL{} - *req.URL = *r.URL - req.Body = body - - req.Header = http.Header{} - for k, v := range r.Header { - for _, vv := range v { - req.Header.Add(k, vv) - } - } - - return req -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/offset_reader.go b/vendor/github.com/aws/aws-sdk-go/aws/request/offset_reader.go deleted file mode 100644 index 9370fa5..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/offset_reader.go +++ /dev/null @@ -1,65 +0,0 @@ -package request - -import ( - "io" - "sync" - - "github.com/aws/aws-sdk-go/internal/sdkio" -) - -// offsetReader is a thread-safe io.ReadCloser to prevent racing -// with retrying requests -type offsetReader struct { - buf io.ReadSeeker - lock sync.Mutex - closed bool -} - -func newOffsetReader(buf io.ReadSeeker, offset int64) (*offsetReader, error) { - reader := &offsetReader{} - _, err := buf.Seek(offset, sdkio.SeekStart) - if err != nil { - return nil, err - } - - reader.buf = buf - return reader, nil -} - -// Close will close the instance of the offset reader's access to -// the underlying io.ReadSeeker. -func (o *offsetReader) Close() error { - o.lock.Lock() - defer o.lock.Unlock() - o.closed = true - return nil -} - -// Read is a thread-safe read of the underlying io.ReadSeeker -func (o *offsetReader) Read(p []byte) (int, error) { - o.lock.Lock() - defer o.lock.Unlock() - - if o.closed { - return 0, io.EOF - } - - return o.buf.Read(p) -} - -// Seek is a thread-safe seeking operation. -func (o *offsetReader) Seek(offset int64, whence int) (int64, error) { - o.lock.Lock() - defer o.lock.Unlock() - - return o.buf.Seek(offset, whence) -} - -// CloseAndCopy will return a new offsetReader with a copy of the old buffer -// and close the old buffer. -func (o *offsetReader) CloseAndCopy(offset int64) (*offsetReader, error) { - if err := o.Close(); err != nil { - return nil, err - } - return newOffsetReader(o.buf, offset) -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/request.go b/vendor/github.com/aws/aws-sdk-go/aws/request/request.go deleted file mode 100644 index d597c6e..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/request.go +++ /dev/null @@ -1,698 +0,0 @@ -package request - -import ( - "bytes" - "fmt" - "io" - "net/http" - "net/url" - "reflect" - "strings" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/client/metadata" - "github.com/aws/aws-sdk-go/internal/sdkio" -) - -const ( - // ErrCodeSerialization is the serialization error code that is received - // during protocol unmarshaling. - ErrCodeSerialization = "SerializationError" - - // ErrCodeRead is an error that is returned during HTTP reads. - ErrCodeRead = "ReadError" - - // ErrCodeResponseTimeout is the connection timeout error that is received - // during body reads. - ErrCodeResponseTimeout = "ResponseTimeout" - - // ErrCodeInvalidPresignExpire is returned when the expire time provided to - // presign is invalid - ErrCodeInvalidPresignExpire = "InvalidPresignExpireError" - - // CanceledErrorCode is the error code that will be returned by an - // API request that was canceled. Requests given a aws.Context may - // return this error when canceled. - CanceledErrorCode = "RequestCanceled" - - // ErrCodeRequestError is an error preventing the SDK from continuing to - // process the request. - ErrCodeRequestError = "RequestError" -) - -// A Request is the service request to be made. -type Request struct { - Config aws.Config - ClientInfo metadata.ClientInfo - Handlers Handlers - - Retryer - AttemptTime time.Time - Time time.Time - Operation *Operation - HTTPRequest *http.Request - HTTPResponse *http.Response - Body io.ReadSeeker - streamingBody io.ReadCloser - BodyStart int64 // offset from beginning of Body that the request body starts - Params interface{} - Error error - Data interface{} - RequestID string - RetryCount int - Retryable *bool - RetryDelay time.Duration - NotHoist bool - SignedHeaderVals http.Header - LastSignedAt time.Time - DisableFollowRedirects bool - - // Additional API error codes that should be retried. IsErrorRetryable - // will consider these codes in addition to its built in cases. - RetryErrorCodes []string - - // Additional API error codes that should be retried with throttle backoff - // delay. IsErrorThrottle will consider these codes in addition to its - // built in cases. - ThrottleErrorCodes []string - - // A value greater than 0 instructs the request to be signed as Presigned URL - // You should not set this field directly. Instead use Request's - // Presign or PresignRequest methods. - ExpireTime time.Duration - - context aws.Context - - built bool - - // Need to persist an intermediate body between the input Body and HTTP - // request body because the HTTP Client's transport can maintain a reference - // to the HTTP request's body after the client has returned. This value is - // safe to use concurrently and wrap the input Body for each HTTP request. - safeBody *offsetReader -} - -// An Operation is the service API operation to be made. -type Operation struct { - Name string - HTTPMethod string - HTTPPath string - *Paginator - - BeforePresignFn func(r *Request) error -} - -// New returns a new Request pointer for the service API operation and -// parameters. -// -// A Retryer should be provided to direct how the request is retried. If -// Retryer is nil, a default no retry value will be used. You can use -// NoOpRetryer in the Client package to disable retry behavior directly. -// -// Params is any value of input parameters to be the request payload. -// Data is pointer value to an object which the request's response -// payload will be deserialized to. -func New(cfg aws.Config, clientInfo metadata.ClientInfo, handlers Handlers, - retryer Retryer, operation *Operation, params interface{}, data interface{}) *Request { - - if retryer == nil { - retryer = noOpRetryer{} - } - - method := operation.HTTPMethod - if method == "" { - method = "POST" - } - - httpReq, _ := http.NewRequest(method, "", nil) - - var err error - httpReq.URL, err = url.Parse(clientInfo.Endpoint + operation.HTTPPath) - if err != nil { - httpReq.URL = &url.URL{} - err = awserr.New("InvalidEndpointURL", "invalid endpoint uri", err) - } - - r := &Request{ - Config: cfg, - ClientInfo: clientInfo, - Handlers: handlers.Copy(), - - Retryer: retryer, - Time: time.Now(), - ExpireTime: 0, - Operation: operation, - HTTPRequest: httpReq, - Body: nil, - Params: params, - Error: err, - Data: data, - } - r.SetBufferBody([]byte{}) - - return r -} - -// A Option is a functional option that can augment or modify a request when -// using a WithContext API operation method. -type Option func(*Request) - -// WithGetResponseHeader builds a request Option which will retrieve a single -// header value from the HTTP Response. If there are multiple values for the -// header key use WithGetResponseHeaders instead to access the http.Header -// map directly. The passed in val pointer must be non-nil. -// -// This Option can be used multiple times with a single API operation. -// -// var id2, versionID string -// svc.PutObjectWithContext(ctx, params, -// request.WithGetResponseHeader("x-amz-id-2", &id2), -// request.WithGetResponseHeader("x-amz-version-id", &versionID), -// ) -func WithGetResponseHeader(key string, val *string) Option { - return func(r *Request) { - r.Handlers.Complete.PushBack(func(req *Request) { - *val = req.HTTPResponse.Header.Get(key) - }) - } -} - -// WithGetResponseHeaders builds a request Option which will retrieve the -// headers from the HTTP response and assign them to the passed in headers -// variable. The passed in headers pointer must be non-nil. -// -// var headers http.Header -// svc.PutObjectWithContext(ctx, params, request.WithGetResponseHeaders(&headers)) -func WithGetResponseHeaders(headers *http.Header) Option { - return func(r *Request) { - r.Handlers.Complete.PushBack(func(req *Request) { - *headers = req.HTTPResponse.Header - }) - } -} - -// WithLogLevel is a request option that will set the request to use a specific -// log level when the request is made. -// -// svc.PutObjectWithContext(ctx, params, request.WithLogLevel(aws.LogDebugWithHTTPBody) -func WithLogLevel(l aws.LogLevelType) Option { - return func(r *Request) { - r.Config.LogLevel = aws.LogLevel(l) - } -} - -// ApplyOptions will apply each option to the request calling them in the order -// the were provided. -func (r *Request) ApplyOptions(opts ...Option) { - for _, opt := range opts { - opt(r) - } -} - -// Context will always returns a non-nil context. If Request does not have a -// context aws.BackgroundContext will be returned. -func (r *Request) Context() aws.Context { - if r.context != nil { - return r.context - } - return aws.BackgroundContext() -} - -// SetContext adds a Context to the current request that can be used to cancel -// a in-flight request. The Context value must not be nil, or this method will -// panic. -// -// Unlike http.Request.WithContext, SetContext does not return a copy of the -// Request. It is not safe to use use a single Request value for multiple -// requests. A new Request should be created for each API operation request. -// -// Go 1.6 and below: -// The http.Request's Cancel field will be set to the Done() value of -// the context. This will overwrite the Cancel field's value. -// -// Go 1.7 and above: -// The http.Request.WithContext will be used to set the context on the underlying -// http.Request. This will create a shallow copy of the http.Request. The SDK -// may create sub contexts in the future for nested requests such as retries. -func (r *Request) SetContext(ctx aws.Context) { - if ctx == nil { - panic("context cannot be nil") - } - setRequestContext(r, ctx) -} - -// WillRetry returns if the request's can be retried. -func (r *Request) WillRetry() bool { - if !aws.IsReaderSeekable(r.Body) && r.HTTPRequest.Body != NoBody { - return false - } - return r.Error != nil && aws.BoolValue(r.Retryable) && r.RetryCount < r.MaxRetries() -} - -func fmtAttemptCount(retryCount, maxRetries int) string { - return fmt.Sprintf("attempt %v/%v", retryCount, maxRetries) -} - -// ParamsFilled returns if the request's parameters have been populated -// and the parameters are valid. False is returned if no parameters are -// provided or invalid. -func (r *Request) ParamsFilled() bool { - return r.Params != nil && reflect.ValueOf(r.Params).Elem().IsValid() -} - -// DataFilled returns true if the request's data for response deserialization -// target has been set and is a valid. False is returned if data is not -// set, or is invalid. -func (r *Request) DataFilled() bool { - return r.Data != nil && reflect.ValueOf(r.Data).Elem().IsValid() -} - -// SetBufferBody will set the request's body bytes that will be sent to -// the service API. -func (r *Request) SetBufferBody(buf []byte) { - r.SetReaderBody(bytes.NewReader(buf)) -} - -// SetStringBody sets the body of the request to be backed by a string. -func (r *Request) SetStringBody(s string) { - r.SetReaderBody(strings.NewReader(s)) -} - -// SetReaderBody will set the request's body reader. -func (r *Request) SetReaderBody(reader io.ReadSeeker) { - r.Body = reader - - if aws.IsReaderSeekable(reader) { - var err error - // Get the Bodies current offset so retries will start from the same - // initial position. - r.BodyStart, err = reader.Seek(0, sdkio.SeekCurrent) - if err != nil { - r.Error = awserr.New(ErrCodeSerialization, - "failed to determine start of request body", err) - return - } - } - r.ResetBody() -} - -// SetStreamingBody set the reader to be used for the request that will stream -// bytes to the server. Request's Body must not be set to any reader. -func (r *Request) SetStreamingBody(reader io.ReadCloser) { - r.streamingBody = reader - r.SetReaderBody(aws.ReadSeekCloser(reader)) -} - -// Presign returns the request's signed URL. Error will be returned -// if the signing fails. The expire parameter is only used for presigned Amazon -// S3 API requests. All other AWS services will use a fixed expiration -// time of 15 minutes. -// -// It is invalid to create a presigned URL with a expire duration 0 or less. An -// error is returned if expire duration is 0 or less. -func (r *Request) Presign(expire time.Duration) (string, error) { - r = r.copy() - - // Presign requires all headers be hoisted. There is no way to retrieve - // the signed headers not hoisted without this. Making the presigned URL - // useless. - r.NotHoist = false - - u, _, err := getPresignedURL(r, expire) - return u, err -} - -// PresignRequest behaves just like presign, with the addition of returning a -// set of headers that were signed. The expire parameter is only used for -// presigned Amazon S3 API requests. All other AWS services will use a fixed -// expiration time of 15 minutes. -// -// It is invalid to create a presigned URL with a expire duration 0 or less. An -// error is returned if expire duration is 0 or less. -// -// Returns the URL string for the API operation with signature in the query string, -// and the HTTP headers that were included in the signature. These headers must -// be included in any HTTP request made with the presigned URL. -// -// To prevent hoisting any headers to the query string set NotHoist to true on -// this Request value prior to calling PresignRequest. -func (r *Request) PresignRequest(expire time.Duration) (string, http.Header, error) { - r = r.copy() - return getPresignedURL(r, expire) -} - -// IsPresigned returns true if the request represents a presigned API url. -func (r *Request) IsPresigned() bool { - return r.ExpireTime != 0 -} - -func getPresignedURL(r *Request, expire time.Duration) (string, http.Header, error) { - if expire <= 0 { - return "", nil, awserr.New( - ErrCodeInvalidPresignExpire, - "presigned URL requires an expire duration greater than 0", - nil, - ) - } - - r.ExpireTime = expire - - if r.Operation.BeforePresignFn != nil { - if err := r.Operation.BeforePresignFn(r); err != nil { - return "", nil, err - } - } - - if err := r.Sign(); err != nil { - return "", nil, err - } - - return r.HTTPRequest.URL.String(), r.SignedHeaderVals, nil -} - -const ( - notRetrying = "not retrying" -) - -func debugLogReqError(r *Request, stage, retryStr string, err error) { - if !r.Config.LogLevel.Matches(aws.LogDebugWithRequestErrors) { - return - } - - r.Config.Logger.Log(fmt.Sprintf("DEBUG: %s %s/%s failed, %s, error %v", - stage, r.ClientInfo.ServiceName, r.Operation.Name, retryStr, err)) -} - -// Build will build the request's object so it can be signed and sent -// to the service. Build will also validate all the request's parameters. -// Any additional build Handlers set on this request will be run -// in the order they were set. -// -// The request will only be built once. Multiple calls to build will have -// no effect. -// -// If any Validate or Build errors occur the build will stop and the error -// which occurred will be returned. -func (r *Request) Build() error { - if !r.built { - r.Handlers.Validate.Run(r) - if r.Error != nil { - debugLogReqError(r, "Validate Request", notRetrying, r.Error) - return r.Error - } - r.Handlers.Build.Run(r) - if r.Error != nil { - debugLogReqError(r, "Build Request", notRetrying, r.Error) - return r.Error - } - r.built = true - } - - return r.Error -} - -// Sign will sign the request, returning error if errors are encountered. -// -// Sign will build the request prior to signing. All Sign Handlers will -// be executed in the order they were set. -func (r *Request) Sign() error { - r.Build() - if r.Error != nil { - debugLogReqError(r, "Build Request", notRetrying, r.Error) - return r.Error - } - - SanitizeHostForHeader(r.HTTPRequest) - - r.Handlers.Sign.Run(r) - return r.Error -} - -func (r *Request) getNextRequestBody() (body io.ReadCloser, err error) { - if r.streamingBody != nil { - return r.streamingBody, nil - } - - if r.safeBody != nil { - r.safeBody.Close() - } - - r.safeBody, err = newOffsetReader(r.Body, r.BodyStart) - if err != nil { - return nil, awserr.New(ErrCodeSerialization, - "failed to get next request body reader", err) - } - - // Go 1.8 tightened and clarified the rules code needs to use when building - // requests with the http package. Go 1.8 removed the automatic detection - // of if the Request.Body was empty, or actually had bytes in it. The SDK - // always sets the Request.Body even if it is empty and should not actually - // be sent. This is incorrect. - // - // Go 1.8 did add a http.NoBody value that the SDK can use to tell the http - // client that the request really should be sent without a body. The - // Request.Body cannot be set to nil, which is preferable, because the - // field is exported and could introduce nil pointer dereferences for users - // of the SDK if they used that field. - // - // Related golang/go#18257 - l, err := aws.SeekerLen(r.Body) - if err != nil { - return nil, awserr.New(ErrCodeSerialization, - "failed to compute request body size", err) - } - - if l == 0 { - body = NoBody - } else if l > 0 { - body = r.safeBody - } else { - // Hack to prevent sending bodies for methods where the body - // should be ignored by the server. Sending bodies on these - // methods without an associated ContentLength will cause the - // request to socket timeout because the server does not handle - // Transfer-Encoding: chunked bodies for these methods. - // - // This would only happen if a aws.ReaderSeekerCloser was used with - // a io.Reader that was not also an io.Seeker, or did not implement - // Len() method. - switch r.Operation.HTTPMethod { - case "GET", "HEAD", "DELETE": - body = NoBody - default: - body = r.safeBody - } - } - - return body, nil -} - -// GetBody will return an io.ReadSeeker of the Request's underlying -// input body with a concurrency safe wrapper. -func (r *Request) GetBody() io.ReadSeeker { - return r.safeBody -} - -// Send will send the request, returning error if errors are encountered. -// -// Send will sign the request prior to sending. All Send Handlers will -// be executed in the order they were set. -// -// Canceling a request is non-deterministic. If a request has been canceled, -// then the transport will choose, randomly, one of the state channels during -// reads or getting the connection. -// -// readLoop() and getConn(req *Request, cm connectMethod) -// https://github.com/golang/go/blob/master/src/net/http/transport.go -// -// Send will not close the request.Request's body. -func (r *Request) Send() error { - defer func() { - // Regardless of success or failure of the request trigger the Complete - // request handlers. - r.Handlers.Complete.Run(r) - }() - - if err := r.Error; err != nil { - return err - } - - for { - r.Error = nil - r.AttemptTime = time.Now() - - if err := r.Sign(); err != nil { - debugLogReqError(r, "Sign Request", notRetrying, err) - return err - } - - if err := r.sendRequest(); err == nil { - return nil - } - r.Handlers.Retry.Run(r) - r.Handlers.AfterRetry.Run(r) - - if r.Error != nil || !aws.BoolValue(r.Retryable) { - return r.Error - } - - if err := r.prepareRetry(); err != nil { - r.Error = err - return err - } - } -} - -func (r *Request) prepareRetry() error { - if r.Config.LogLevel.Matches(aws.LogDebugWithRequestRetries) { - r.Config.Logger.Log(fmt.Sprintf("DEBUG: Retrying Request %s/%s, attempt %d", - r.ClientInfo.ServiceName, r.Operation.Name, r.RetryCount)) - } - - // The previous http.Request will have a reference to the r.Body - // and the HTTP Client's Transport may still be reading from - // the request's body even though the Client's Do returned. - r.HTTPRequest = copyHTTPRequest(r.HTTPRequest, nil) - r.ResetBody() - if err := r.Error; err != nil { - return awserr.New(ErrCodeSerialization, - "failed to prepare body for retry", err) - - } - - // Closing response body to ensure that no response body is leaked - // between retry attempts. - if r.HTTPResponse != nil && r.HTTPResponse.Body != nil { - r.HTTPResponse.Body.Close() - } - - return nil -} - -func (r *Request) sendRequest() (sendErr error) { - defer r.Handlers.CompleteAttempt.Run(r) - - r.Retryable = nil - r.Handlers.Send.Run(r) - if r.Error != nil { - debugLogReqError(r, "Send Request", - fmtAttemptCount(r.RetryCount, r.MaxRetries()), - r.Error) - return r.Error - } - - r.Handlers.UnmarshalMeta.Run(r) - r.Handlers.ValidateResponse.Run(r) - if r.Error != nil { - r.Handlers.UnmarshalError.Run(r) - debugLogReqError(r, "Validate Response", - fmtAttemptCount(r.RetryCount, r.MaxRetries()), - r.Error) - return r.Error - } - - r.Handlers.Unmarshal.Run(r) - if r.Error != nil { - debugLogReqError(r, "Unmarshal Response", - fmtAttemptCount(r.RetryCount, r.MaxRetries()), - r.Error) - return r.Error - } - - return nil -} - -// copy will copy a request which will allow for local manipulation of the -// request. -func (r *Request) copy() *Request { - req := &Request{} - *req = *r - req.Handlers = r.Handlers.Copy() - op := *r.Operation - req.Operation = &op - return req -} - -// AddToUserAgent adds the string to the end of the request's current user agent. -func AddToUserAgent(r *Request, s string) { - curUA := r.HTTPRequest.Header.Get("User-Agent") - if len(curUA) > 0 { - s = curUA + " " + s - } - r.HTTPRequest.Header.Set("User-Agent", s) -} - -// SanitizeHostForHeader removes default port from host and updates request.Host -func SanitizeHostForHeader(r *http.Request) { - host := getHost(r) - port := portOnly(host) - if port != "" && isDefaultPort(r.URL.Scheme, port) { - r.Host = stripPort(host) - } -} - -// Returns host from request -func getHost(r *http.Request) string { - if r.Host != "" { - return r.Host - } - - if r.URL == nil { - return "" - } - - return r.URL.Host -} - -// Hostname returns u.Host, without any port number. -// -// If Host is an IPv6 literal with a port number, Hostname returns the -// IPv6 literal without the square brackets. IPv6 literals may include -// a zone identifier. -// -// Copied from the Go 1.8 standard library (net/url) -func stripPort(hostport string) string { - colon := strings.IndexByte(hostport, ':') - if colon == -1 { - return hostport - } - if i := strings.IndexByte(hostport, ']'); i != -1 { - return strings.TrimPrefix(hostport[:i], "[") - } - return hostport[:colon] -} - -// Port returns the port part of u.Host, without the leading colon. -// If u.Host doesn't contain a port, Port returns an empty string. -// -// Copied from the Go 1.8 standard library (net/url) -func portOnly(hostport string) string { - colon := strings.IndexByte(hostport, ':') - if colon == -1 { - return "" - } - if i := strings.Index(hostport, "]:"); i != -1 { - return hostport[i+len("]:"):] - } - if strings.Contains(hostport, "]") { - return "" - } - return hostport[colon+len(":"):] -} - -// Returns true if the specified URI is using the standard port -// (i.e. port 80 for HTTP URIs or 443 for HTTPS URIs) -func isDefaultPort(scheme, port string) bool { - if port == "" { - return true - } - - lowerCaseScheme := strings.ToLower(scheme) - if (lowerCaseScheme == "http" && port == "80") || (lowerCaseScheme == "https" && port == "443") { - return true - } - - return false -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/request_1_7.go b/vendor/github.com/aws/aws-sdk-go/aws/request/request_1_7.go deleted file mode 100644 index e36e468..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/request_1_7.go +++ /dev/null @@ -1,39 +0,0 @@ -// +build !go1.8 - -package request - -import "io" - -// NoBody is an io.ReadCloser with no bytes. Read always returns EOF -// and Close always returns nil. It can be used in an outgoing client -// request to explicitly signal that a request has zero bytes. -// An alternative, however, is to simply set Request.Body to nil. -// -// Copy of Go 1.8 NoBody type from net/http/http.go -type noBody struct{} - -func (noBody) Read([]byte) (int, error) { return 0, io.EOF } -func (noBody) Close() error { return nil } -func (noBody) WriteTo(io.Writer) (int64, error) { return 0, nil } - -// NoBody is an empty reader that will trigger the Go HTTP client to not include -// and body in the HTTP request. -var NoBody = noBody{} - -// ResetBody rewinds the request body back to its starting position, and -// sets the HTTP Request body reference. When the body is read prior -// to being sent in the HTTP request it will need to be rewound. -// -// ResetBody will automatically be called by the SDK's build handler, but if -// the request is being used directly ResetBody must be called before the request -// is Sent. SetStringBody, SetBufferBody, and SetReaderBody will automatically -// call ResetBody. -func (r *Request) ResetBody() { - body, err := r.getNextRequestBody() - if err != nil { - r.Error = err - return - } - - r.HTTPRequest.Body = body -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/request_1_8.go b/vendor/github.com/aws/aws-sdk-go/aws/request/request_1_8.go deleted file mode 100644 index de1292f..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/request_1_8.go +++ /dev/null @@ -1,36 +0,0 @@ -// +build go1.8 - -package request - -import ( - "net/http" - - "github.com/aws/aws-sdk-go/aws/awserr" -) - -// NoBody is a http.NoBody reader instructing Go HTTP client to not include -// and body in the HTTP request. -var NoBody = http.NoBody - -// ResetBody rewinds the request body back to its starting position, and -// sets the HTTP Request body reference. When the body is read prior -// to being sent in the HTTP request it will need to be rewound. -// -// ResetBody will automatically be called by the SDK's build handler, but if -// the request is being used directly ResetBody must be called before the request -// is Sent. SetStringBody, SetBufferBody, and SetReaderBody will automatically -// call ResetBody. -// -// Will also set the Go 1.8's http.Request.GetBody member to allow retrying -// PUT/POST redirects. -func (r *Request) ResetBody() { - body, err := r.getNextRequestBody() - if err != nil { - r.Error = awserr.New(ErrCodeSerialization, - "failed to reset request body", err) - return - } - - r.HTTPRequest.Body = body - r.HTTPRequest.GetBody = r.getNextRequestBody -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/request_context.go b/vendor/github.com/aws/aws-sdk-go/aws/request/request_context.go deleted file mode 100644 index a7365cd..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/request_context.go +++ /dev/null @@ -1,14 +0,0 @@ -// +build go1.7 - -package request - -import "github.com/aws/aws-sdk-go/aws" - -// setContext updates the Request to use the passed in context for cancellation. -// Context will also be used for request retry delay. -// -// Creates shallow copy of the http.Request with the WithContext method. -func setRequestContext(r *Request, ctx aws.Context) { - r.context = ctx - r.HTTPRequest = r.HTTPRequest.WithContext(ctx) -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/request_context_1_6.go b/vendor/github.com/aws/aws-sdk-go/aws/request/request_context_1_6.go deleted file mode 100644 index 307fa07..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/request_context_1_6.go +++ /dev/null @@ -1,14 +0,0 @@ -// +build !go1.7 - -package request - -import "github.com/aws/aws-sdk-go/aws" - -// setContext updates the Request to use the passed in context for cancellation. -// Context will also be used for request retry delay. -// -// Creates shallow copy of the http.Request with the WithContext method. -func setRequestContext(r *Request, ctx aws.Context) { - r.context = ctx - r.HTTPRequest.Cancel = ctx.Done() -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/request_pagination.go b/vendor/github.com/aws/aws-sdk-go/aws/request/request_pagination.go deleted file mode 100644 index 64784e1..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/request_pagination.go +++ /dev/null @@ -1,266 +0,0 @@ -package request - -import ( - "reflect" - "sync/atomic" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awsutil" -) - -// A Pagination provides paginating of SDK API operations which are paginatable. -// Generally you should not use this type directly, but use the "Pages" API -// operations method to automatically perform pagination for you. Such as, -// "S3.ListObjectsPages", and "S3.ListObjectsPagesWithContext" methods. -// -// Pagination differs from a Paginator type in that pagination is the type that -// does the pagination between API operations, and Paginator defines the -// configuration that will be used per page request. -// -// for p.Next() { -// data := p.Page().(*s3.ListObjectsOutput) -// // process the page's data -// // ... -// // break out of loop to stop fetching additional pages -// } -// -// return p.Err() -// -// See service client API operation Pages methods for examples how the SDK will -// use the Pagination type. -type Pagination struct { - // Function to return a Request value for each pagination request. - // Any configuration or handlers that need to be applied to the request - // prior to getting the next page should be done here before the request - // returned. - // - // NewRequest should always be built from the same API operations. It is - // undefined if different API operations are returned on subsequent calls. - NewRequest func() (*Request, error) - // EndPageOnSameToken, when enabled, will allow the paginator to stop on - // token that are the same as its previous tokens. - EndPageOnSameToken bool - - started bool - prevTokens []interface{} - nextTokens []interface{} - - err error - curPage interface{} -} - -// HasNextPage will return true if Pagination is able to determine that the API -// operation has additional pages. False will be returned if there are no more -// pages remaining. -// -// Will always return true if Next has not been called yet. -func (p *Pagination) HasNextPage() bool { - if !p.started { - return true - } - - hasNextPage := len(p.nextTokens) != 0 - if p.EndPageOnSameToken { - return hasNextPage && !awsutil.DeepEqual(p.nextTokens, p.prevTokens) - } - return hasNextPage -} - -// Err returns the error Pagination encountered when retrieving the next page. -func (p *Pagination) Err() error { - return p.err -} - -// Page returns the current page. Page should only be called after a successful -// call to Next. It is undefined what Page will return if Page is called after -// Next returns false. -func (p *Pagination) Page() interface{} { - return p.curPage -} - -// Next will attempt to retrieve the next page for the API operation. When a page -// is retrieved true will be returned. If the page cannot be retrieved, or there -// are no more pages false will be returned. -// -// Use the Page method to retrieve the current page data. The data will need -// to be cast to the API operation's output type. -// -// Use the Err method to determine if an error occurred if Page returns false. -func (p *Pagination) Next() bool { - if !p.HasNextPage() { - return false - } - - req, err := p.NewRequest() - if err != nil { - p.err = err - return false - } - - if p.started { - for i, intok := range req.Operation.InputTokens { - awsutil.SetValueAtPath(req.Params, intok, p.nextTokens[i]) - } - } - p.started = true - - err = req.Send() - if err != nil { - p.err = err - return false - } - - p.prevTokens = p.nextTokens - p.nextTokens = req.nextPageTokens() - p.curPage = req.Data - - return true -} - -// A Paginator is the configuration data that defines how an API operation -// should be paginated. This type is used by the API service models to define -// the generated pagination config for service APIs. -// -// The Pagination type is what provides iterating between pages of an API. It -// is only used to store the token metadata the SDK should use for performing -// pagination. -type Paginator struct { - InputTokens []string - OutputTokens []string - LimitToken string - TruncationToken string -} - -// nextPageTokens returns the tokens to use when asking for the next page of data. -func (r *Request) nextPageTokens() []interface{} { - if r.Operation.Paginator == nil { - return nil - } - if r.Operation.TruncationToken != "" { - tr, _ := awsutil.ValuesAtPath(r.Data, r.Operation.TruncationToken) - if len(tr) == 0 { - return nil - } - - switch v := tr[0].(type) { - case *bool: - if !aws.BoolValue(v) { - return nil - } - case bool: - if !v { - return nil - } - } - } - - tokens := []interface{}{} - tokenAdded := false - for _, outToken := range r.Operation.OutputTokens { - vs, _ := awsutil.ValuesAtPath(r.Data, outToken) - if len(vs) == 0 { - tokens = append(tokens, nil) - continue - } - v := vs[0] - - switch tv := v.(type) { - case *string: - if len(aws.StringValue(tv)) == 0 { - tokens = append(tokens, nil) - continue - } - case string: - if len(tv) == 0 { - tokens = append(tokens, nil) - continue - } - } - - tokenAdded = true - tokens = append(tokens, v) - } - if !tokenAdded { - return nil - } - - return tokens -} - -// Ensure a deprecated item is only logged once instead of each time its used. -func logDeprecatedf(logger aws.Logger, flag *int32, msg string) { - if logger == nil { - return - } - if atomic.CompareAndSwapInt32(flag, 0, 1) { - logger.Log(msg) - } -} - -var ( - logDeprecatedHasNextPage int32 - logDeprecatedNextPage int32 - logDeprecatedEachPage int32 -) - -// HasNextPage returns true if this request has more pages of data available. -// -// Deprecated Use Pagination type for configurable pagination of API operations -func (r *Request) HasNextPage() bool { - logDeprecatedf(r.Config.Logger, &logDeprecatedHasNextPage, - "Request.HasNextPage deprecated. Use Pagination type for configurable pagination of API operations") - - return len(r.nextPageTokens()) > 0 -} - -// NextPage returns a new Request that can be executed to return the next -// page of result data. Call .Send() on this request to execute it. -// -// Deprecated Use Pagination type for configurable pagination of API operations -func (r *Request) NextPage() *Request { - logDeprecatedf(r.Config.Logger, &logDeprecatedNextPage, - "Request.NextPage deprecated. Use Pagination type for configurable pagination of API operations") - - tokens := r.nextPageTokens() - if len(tokens) == 0 { - return nil - } - - data := reflect.New(reflect.TypeOf(r.Data).Elem()).Interface() - nr := New(r.Config, r.ClientInfo, r.Handlers, r.Retryer, r.Operation, awsutil.CopyOf(r.Params), data) - for i, intok := range nr.Operation.InputTokens { - awsutil.SetValueAtPath(nr.Params, intok, tokens[i]) - } - return nr -} - -// EachPage iterates over each page of a paginated request object. The fn -// parameter should be a function with the following sample signature: -// -// func(page *T, lastPage bool) bool { -// return true // return false to stop iterating -// } -// -// Where "T" is the structure type matching the output structure of the given -// operation. For example, a request object generated by -// DynamoDB.ListTablesRequest() would expect to see dynamodb.ListTablesOutput -// as the structure "T". The lastPage value represents whether the page is -// the last page of data or not. The return value of this function should -// return true to keep iterating or false to stop. -// -// Deprecated Use Pagination type for configurable pagination of API operations -func (r *Request) EachPage(fn func(data interface{}, isLastPage bool) (shouldContinue bool)) error { - logDeprecatedf(r.Config.Logger, &logDeprecatedEachPage, - "Request.EachPage deprecated. Use Pagination type for configurable pagination of API operations") - - for page := r; page != nil; page = page.NextPage() { - if err := page.Send(); err != nil { - return err - } - if getNextPage := fn(page.Data, !page.HasNextPage()); !getNextPage { - return page.Error - } - } - - return nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go b/vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go deleted file mode 100644 index 752ae47..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go +++ /dev/null @@ -1,309 +0,0 @@ -package request - -import ( - "net" - "net/url" - "strings" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" -) - -// Retryer provides the interface drive the SDK's request retry behavior. The -// Retryer implementation is responsible for implementing exponential backoff, -// and determine if a request API error should be retried. -// -// client.DefaultRetryer is the SDK's default implementation of the Retryer. It -// uses the which uses the Request.IsErrorRetryable and Request.IsErrorThrottle -// methods to determine if the request is retried. -type Retryer interface { - // RetryRules return the retry delay that should be used by the SDK before - // making another request attempt for the failed request. - RetryRules(*Request) time.Duration - - // ShouldRetry returns if the failed request is retryable. - // - // Implementations may consider request attempt count when determining if a - // request is retryable, but the SDK will use MaxRetries to limit the - // number of attempts a request are made. - ShouldRetry(*Request) bool - - // MaxRetries is the number of times a request may be retried before - // failing. - MaxRetries() int -} - -// WithRetryer sets a Retryer value to the given Config returning the Config -// value for chaining. The value must not be nil. -func WithRetryer(cfg *aws.Config, retryer Retryer) *aws.Config { - if retryer == nil { - if cfg.Logger != nil { - cfg.Logger.Log("ERROR: Request.WithRetryer called with nil retryer. Replacing with retry disabled Retryer.") - } - retryer = noOpRetryer{} - } - cfg.Retryer = retryer - return cfg - -} - -// noOpRetryer is a internal no op retryer used when a request is created -// without a retryer. -// -// Provides a retryer that performs no retries. -// It should be used when we do not want retries to be performed. -type noOpRetryer struct{} - -// MaxRetries returns the number of maximum returns the service will use to make -// an individual API; For NoOpRetryer the MaxRetries will always be zero. -func (d noOpRetryer) MaxRetries() int { - return 0 -} - -// ShouldRetry will always return false for NoOpRetryer, as it should never retry. -func (d noOpRetryer) ShouldRetry(_ *Request) bool { - return false -} - -// RetryRules returns the delay duration before retrying this request again; -// since NoOpRetryer does not retry, RetryRules always returns 0. -func (d noOpRetryer) RetryRules(_ *Request) time.Duration { - return 0 -} - -// retryableCodes is a collection of service response codes which are retry-able -// without any further action. -var retryableCodes = map[string]struct{}{ - ErrCodeRequestError: {}, - "RequestTimeout": {}, - ErrCodeResponseTimeout: {}, - "RequestTimeoutException": {}, // Glacier's flavor of RequestTimeout -} - -var throttleCodes = map[string]struct{}{ - "ProvisionedThroughputExceededException": {}, - "ThrottledException": {}, // SNS, XRay, ResourceGroupsTagging API - "Throttling": {}, - "ThrottlingException": {}, - "RequestLimitExceeded": {}, - "RequestThrottled": {}, - "RequestThrottledException": {}, - "TooManyRequestsException": {}, // Lambda functions - "PriorRequestNotComplete": {}, // Route53 - "TransactionInProgressException": {}, - "EC2ThrottledException": {}, // EC2 -} - -// credsExpiredCodes is a collection of error codes which signify the credentials -// need to be refreshed. Expired tokens require refreshing of credentials, and -// resigning before the request can be retried. -var credsExpiredCodes = map[string]struct{}{ - "ExpiredToken": {}, - "ExpiredTokenException": {}, - "RequestExpired": {}, // EC2 Only -} - -func isCodeThrottle(code string) bool { - _, ok := throttleCodes[code] - return ok -} - -func isCodeRetryable(code string) bool { - if _, ok := retryableCodes[code]; ok { - return true - } - - return isCodeExpiredCreds(code) -} - -func isCodeExpiredCreds(code string) bool { - _, ok := credsExpiredCodes[code] - return ok -} - -var validParentCodes = map[string]struct{}{ - ErrCodeSerialization: {}, - ErrCodeRead: {}, -} - -func isNestedErrorRetryable(parentErr awserr.Error) bool { - if parentErr == nil { - return false - } - - if _, ok := validParentCodes[parentErr.Code()]; !ok { - return false - } - - err := parentErr.OrigErr() - if err == nil { - return false - } - - if aerr, ok := err.(awserr.Error); ok { - return isCodeRetryable(aerr.Code()) - } - - if t, ok := err.(temporary); ok { - return t.Temporary() || isErrConnectionReset(err) - } - - return isErrConnectionReset(err) -} - -// IsErrorRetryable returns whether the error is retryable, based on its Code. -// Returns false if error is nil. -func IsErrorRetryable(err error) bool { - if err == nil { - return false - } - return shouldRetryError(err) -} - -type temporary interface { - Temporary() bool -} - -func shouldRetryError(origErr error) bool { - switch err := origErr.(type) { - case awserr.Error: - if err.Code() == CanceledErrorCode { - return false - } - if isNestedErrorRetryable(err) { - return true - } - - origErr := err.OrigErr() - var shouldRetry bool - if origErr != nil { - shouldRetry = shouldRetryError(origErr) - if err.Code() == ErrCodeRequestError && !shouldRetry { - return false - } - } - if isCodeRetryable(err.Code()) { - return true - } - return shouldRetry - - case *url.Error: - if strings.Contains(err.Error(), "connection refused") { - // Refused connections should be retried as the service may not yet - // be running on the port. Go TCP dial considers refused - // connections as not temporary. - return true - } - // *url.Error only implements Temporary after golang 1.6 but since - // url.Error only wraps the error: - return shouldRetryError(err.Err) - - case temporary: - if netErr, ok := err.(*net.OpError); ok && netErr.Op == "dial" { - return true - } - // If the error is temporary, we want to allow continuation of the - // retry process - return err.Temporary() || isErrConnectionReset(origErr) - - case nil: - // `awserr.Error.OrigErr()` can be nil, meaning there was an error but - // because we don't know the cause, it is marked as retryable. See - // TestRequest4xxUnretryable for an example. - return true - - default: - switch err.Error() { - case "net/http: request canceled", - "net/http: request canceled while waiting for connection": - // known 1.5 error case when an http request is cancelled - return false - } - // here we don't know the error; so we allow a retry. - return true - } -} - -// IsErrorThrottle returns whether the error is to be throttled based on its code. -// Returns false if error is nil. -func IsErrorThrottle(err error) bool { - if aerr, ok := err.(awserr.Error); ok && aerr != nil { - return isCodeThrottle(aerr.Code()) - } - return false -} - -// IsErrorExpiredCreds returns whether the error code is a credential expiry -// error. Returns false if error is nil. -func IsErrorExpiredCreds(err error) bool { - if aerr, ok := err.(awserr.Error); ok && aerr != nil { - return isCodeExpiredCreds(aerr.Code()) - } - return false -} - -// IsErrorRetryable returns whether the error is retryable, based on its Code. -// Returns false if the request has no Error set. -// -// Alias for the utility function IsErrorRetryable -func (r *Request) IsErrorRetryable() bool { - if isErrCode(r.Error, r.RetryErrorCodes) { - return true - } - - // HTTP response status code 501 should not be retried. - // 501 represents Not Implemented which means the request method is not - // supported by the server and cannot be handled. - if r.HTTPResponse != nil { - // HTTP response status code 500 represents internal server error and - // should be retried without any throttle. - if r.HTTPResponse.StatusCode == 500 { - return true - } - } - return IsErrorRetryable(r.Error) -} - -// IsErrorThrottle returns whether the error is to be throttled based on its -// code. Returns false if the request has no Error set. -// -// Alias for the utility function IsErrorThrottle -func (r *Request) IsErrorThrottle() bool { - if isErrCode(r.Error, r.ThrottleErrorCodes) { - return true - } - - if r.HTTPResponse != nil { - switch r.HTTPResponse.StatusCode { - case - 429, // error caused due to too many requests - 502, // Bad Gateway error should be throttled - 503, // caused when service is unavailable - 504: // error occurred due to gateway timeout - return true - } - } - - return IsErrorThrottle(r.Error) -} - -func isErrCode(err error, codes []string) bool { - if aerr, ok := err.(awserr.Error); ok && aerr != nil { - for _, code := range codes { - if code == aerr.Code() { - return true - } - } - } - - return false -} - -// IsErrorExpired returns whether the error code is a credential expiry error. -// Returns false if the request has no Error set. -// -// Alias for the utility function IsErrorExpiredCreds -func (r *Request) IsErrorExpired() bool { - return IsErrorExpiredCreds(r.Error) -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/timeout_read_closer.go b/vendor/github.com/aws/aws-sdk-go/aws/request/timeout_read_closer.go deleted file mode 100644 index 09a44eb..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/timeout_read_closer.go +++ /dev/null @@ -1,94 +0,0 @@ -package request - -import ( - "io" - "time" - - "github.com/aws/aws-sdk-go/aws/awserr" -) - -var timeoutErr = awserr.New( - ErrCodeResponseTimeout, - "read on body has reached the timeout limit", - nil, -) - -type readResult struct { - n int - err error -} - -// timeoutReadCloser will handle body reads that take too long. -// We will return a ErrReadTimeout error if a timeout occurs. -type timeoutReadCloser struct { - reader io.ReadCloser - duration time.Duration -} - -// Read will spin off a goroutine to call the reader's Read method. We will -// select on the timer's channel or the read's channel. Whoever completes first -// will be returned. -func (r *timeoutReadCloser) Read(b []byte) (int, error) { - timer := time.NewTimer(r.duration) - c := make(chan readResult, 1) - - go func() { - n, err := r.reader.Read(b) - timer.Stop() - c <- readResult{n: n, err: err} - }() - - select { - case data := <-c: - return data.n, data.err - case <-timer.C: - return 0, timeoutErr - } -} - -func (r *timeoutReadCloser) Close() error { - return r.reader.Close() -} - -const ( - // HandlerResponseTimeout is what we use to signify the name of the - // response timeout handler. - HandlerResponseTimeout = "ResponseTimeoutHandler" -) - -// adaptToResponseTimeoutError is a handler that will replace any top level error -// to a ErrCodeResponseTimeout, if its child is that. -func adaptToResponseTimeoutError(req *Request) { - if err, ok := req.Error.(awserr.Error); ok { - aerr, ok := err.OrigErr().(awserr.Error) - if ok && aerr.Code() == ErrCodeResponseTimeout { - req.Error = aerr - } - } -} - -// WithResponseReadTimeout is a request option that will wrap the body in a timeout read closer. -// This will allow for per read timeouts. If a timeout occurred, we will return the -// ErrCodeResponseTimeout. -// -// svc.PutObjectWithContext(ctx, params, request.WithTimeoutReadCloser(30 * time.Second) -func WithResponseReadTimeout(duration time.Duration) Option { - return func(r *Request) { - - var timeoutHandler = NamedHandler{ - HandlerResponseTimeout, - func(req *Request) { - req.HTTPResponse.Body = &timeoutReadCloser{ - reader: req.HTTPResponse.Body, - duration: duration, - } - }} - - // remove the handler so we are not stomping over any new durations. - r.Handlers.Send.RemoveByName(HandlerResponseTimeout) - r.Handlers.Send.PushBackNamed(timeoutHandler) - - r.Handlers.Unmarshal.PushBack(adaptToResponseTimeoutError) - r.Handlers.UnmarshalError.PushBack(adaptToResponseTimeoutError) - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/validation.go b/vendor/github.com/aws/aws-sdk-go/aws/request/validation.go deleted file mode 100644 index 8630683..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/validation.go +++ /dev/null @@ -1,286 +0,0 @@ -package request - -import ( - "bytes" - "fmt" - - "github.com/aws/aws-sdk-go/aws/awserr" -) - -const ( - // InvalidParameterErrCode is the error code for invalid parameters errors - InvalidParameterErrCode = "InvalidParameter" - // ParamRequiredErrCode is the error code for required parameter errors - ParamRequiredErrCode = "ParamRequiredError" - // ParamMinValueErrCode is the error code for fields with too low of a - // number value. - ParamMinValueErrCode = "ParamMinValueError" - // ParamMinLenErrCode is the error code for fields without enough elements. - ParamMinLenErrCode = "ParamMinLenError" - // ParamMaxLenErrCode is the error code for value being too long. - ParamMaxLenErrCode = "ParamMaxLenError" - - // ParamFormatErrCode is the error code for a field with invalid - // format or characters. - ParamFormatErrCode = "ParamFormatInvalidError" -) - -// Validator provides a way for types to perform validation logic on their -// input values that external code can use to determine if a type's values -// are valid. -type Validator interface { - Validate() error -} - -// An ErrInvalidParams provides wrapping of invalid parameter errors found when -// validating API operation input parameters. -type ErrInvalidParams struct { - // Context is the base context of the invalid parameter group. - Context string - errs []ErrInvalidParam -} - -// Add adds a new invalid parameter error to the collection of invalid -// parameters. The context of the invalid parameter will be updated to reflect -// this collection. -func (e *ErrInvalidParams) Add(err ErrInvalidParam) { - err.SetContext(e.Context) - e.errs = append(e.errs, err) -} - -// AddNested adds the invalid parameter errors from another ErrInvalidParams -// value into this collection. The nested errors will have their nested context -// updated and base context to reflect the merging. -// -// Use for nested validations errors. -func (e *ErrInvalidParams) AddNested(nestedCtx string, nested ErrInvalidParams) { - for _, err := range nested.errs { - err.SetContext(e.Context) - err.AddNestedContext(nestedCtx) - e.errs = append(e.errs, err) - } -} - -// Len returns the number of invalid parameter errors -func (e ErrInvalidParams) Len() int { - return len(e.errs) -} - -// Code returns the code of the error -func (e ErrInvalidParams) Code() string { - return InvalidParameterErrCode -} - -// Message returns the message of the error -func (e ErrInvalidParams) Message() string { - return fmt.Sprintf("%d validation error(s) found.", len(e.errs)) -} - -// Error returns the string formatted form of the invalid parameters. -func (e ErrInvalidParams) Error() string { - w := &bytes.Buffer{} - fmt.Fprintf(w, "%s: %s\n", e.Code(), e.Message()) - - for _, err := range e.errs { - fmt.Fprintf(w, "- %s\n", err.Message()) - } - - return w.String() -} - -// OrigErr returns the invalid parameters as a awserr.BatchedErrors value -func (e ErrInvalidParams) OrigErr() error { - return awserr.NewBatchError( - InvalidParameterErrCode, e.Message(), e.OrigErrs()) -} - -// OrigErrs returns a slice of the invalid parameters -func (e ErrInvalidParams) OrigErrs() []error { - errs := make([]error, len(e.errs)) - for i := 0; i < len(errs); i++ { - errs[i] = e.errs[i] - } - - return errs -} - -// An ErrInvalidParam represents an invalid parameter error type. -type ErrInvalidParam interface { - awserr.Error - - // Field name the error occurred on. - Field() string - - // SetContext updates the context of the error. - SetContext(string) - - // AddNestedContext updates the error's context to include a nested level. - AddNestedContext(string) -} - -type errInvalidParam struct { - context string - nestedContext string - field string - code string - msg string -} - -// Code returns the error code for the type of invalid parameter. -func (e *errInvalidParam) Code() string { - return e.code -} - -// Message returns the reason the parameter was invalid, and its context. -func (e *errInvalidParam) Message() string { - return fmt.Sprintf("%s, %s.", e.msg, e.Field()) -} - -// Error returns the string version of the invalid parameter error. -func (e *errInvalidParam) Error() string { - return fmt.Sprintf("%s: %s", e.code, e.Message()) -} - -// OrigErr returns nil, Implemented for awserr.Error interface. -func (e *errInvalidParam) OrigErr() error { - return nil -} - -// Field Returns the field and context the error occurred. -func (e *errInvalidParam) Field() string { - field := e.context - if len(field) > 0 { - field += "." - } - if len(e.nestedContext) > 0 { - field += fmt.Sprintf("%s.", e.nestedContext) - } - field += e.field - - return field -} - -// SetContext updates the base context of the error. -func (e *errInvalidParam) SetContext(ctx string) { - e.context = ctx -} - -// AddNestedContext prepends a context to the field's path. -func (e *errInvalidParam) AddNestedContext(ctx string) { - if len(e.nestedContext) == 0 { - e.nestedContext = ctx - } else { - e.nestedContext = fmt.Sprintf("%s.%s", ctx, e.nestedContext) - } - -} - -// An ErrParamRequired represents an required parameter error. -type ErrParamRequired struct { - errInvalidParam -} - -// NewErrParamRequired creates a new required parameter error. -func NewErrParamRequired(field string) *ErrParamRequired { - return &ErrParamRequired{ - errInvalidParam{ - code: ParamRequiredErrCode, - field: field, - msg: fmt.Sprintf("missing required field"), - }, - } -} - -// An ErrParamMinValue represents a minimum value parameter error. -type ErrParamMinValue struct { - errInvalidParam - min float64 -} - -// NewErrParamMinValue creates a new minimum value parameter error. -func NewErrParamMinValue(field string, min float64) *ErrParamMinValue { - return &ErrParamMinValue{ - errInvalidParam: errInvalidParam{ - code: ParamMinValueErrCode, - field: field, - msg: fmt.Sprintf("minimum field value of %v", min), - }, - min: min, - } -} - -// MinValue returns the field's require minimum value. -// -// float64 is returned for both int and float min values. -func (e *ErrParamMinValue) MinValue() float64 { - return e.min -} - -// An ErrParamMinLen represents a minimum length parameter error. -type ErrParamMinLen struct { - errInvalidParam - min int -} - -// NewErrParamMinLen creates a new minimum length parameter error. -func NewErrParamMinLen(field string, min int) *ErrParamMinLen { - return &ErrParamMinLen{ - errInvalidParam: errInvalidParam{ - code: ParamMinLenErrCode, - field: field, - msg: fmt.Sprintf("minimum field size of %v", min), - }, - min: min, - } -} - -// MinLen returns the field's required minimum length. -func (e *ErrParamMinLen) MinLen() int { - return e.min -} - -// An ErrParamMaxLen represents a maximum length parameter error. -type ErrParamMaxLen struct { - errInvalidParam - max int -} - -// NewErrParamMaxLen creates a new maximum length parameter error. -func NewErrParamMaxLen(field string, max int, value string) *ErrParamMaxLen { - return &ErrParamMaxLen{ - errInvalidParam: errInvalidParam{ - code: ParamMaxLenErrCode, - field: field, - msg: fmt.Sprintf("maximum size of %v, %v", max, value), - }, - max: max, - } -} - -// MaxLen returns the field's required minimum length. -func (e *ErrParamMaxLen) MaxLen() int { - return e.max -} - -// An ErrParamFormat represents a invalid format parameter error. -type ErrParamFormat struct { - errInvalidParam - format string -} - -// NewErrParamFormat creates a new invalid format parameter error. -func NewErrParamFormat(field string, format, value string) *ErrParamFormat { - return &ErrParamFormat{ - errInvalidParam: errInvalidParam{ - code: ParamFormatErrCode, - field: field, - msg: fmt.Sprintf("format %v, %v", format, value), - }, - format: format, - } -} - -// Format returns the field's required format. -func (e *ErrParamFormat) Format() string { - return e.format -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/waiter.go b/vendor/github.com/aws/aws-sdk-go/aws/request/waiter.go deleted file mode 100644 index 4601f88..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/waiter.go +++ /dev/null @@ -1,295 +0,0 @@ -package request - -import ( - "fmt" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/awsutil" -) - -// WaiterResourceNotReadyErrorCode is the error code returned by a waiter when -// the waiter's max attempts have been exhausted. -const WaiterResourceNotReadyErrorCode = "ResourceNotReady" - -// A WaiterOption is a function that will update the Waiter value's fields to -// configure the waiter. -type WaiterOption func(*Waiter) - -// WithWaiterMaxAttempts returns the maximum number of times the waiter should -// attempt to check the resource for the target state. -func WithWaiterMaxAttempts(max int) WaiterOption { - return func(w *Waiter) { - w.MaxAttempts = max - } -} - -// WaiterDelay will return a delay the waiter should pause between attempts to -// check the resource state. The passed in attempt is the number of times the -// Waiter has checked the resource state. -// -// Attempt is the number of attempts the Waiter has made checking the resource -// state. -type WaiterDelay func(attempt int) time.Duration - -// ConstantWaiterDelay returns a WaiterDelay that will always return a constant -// delay the waiter should use between attempts. It ignores the number of -// attempts made. -func ConstantWaiterDelay(delay time.Duration) WaiterDelay { - return func(attempt int) time.Duration { - return delay - } -} - -// WithWaiterDelay will set the Waiter to use the WaiterDelay passed in. -func WithWaiterDelay(delayer WaiterDelay) WaiterOption { - return func(w *Waiter) { - w.Delay = delayer - } -} - -// WithWaiterLogger returns a waiter option to set the logger a waiter -// should use to log warnings and errors to. -func WithWaiterLogger(logger aws.Logger) WaiterOption { - return func(w *Waiter) { - w.Logger = logger - } -} - -// WithWaiterRequestOptions returns a waiter option setting the request -// options for each request the waiter makes. Appends to waiter's request -// options already set. -func WithWaiterRequestOptions(opts ...Option) WaiterOption { - return func(w *Waiter) { - w.RequestOptions = append(w.RequestOptions, opts...) - } -} - -// A Waiter provides the functionality to perform a blocking call which will -// wait for a resource state to be satisfied by a service. -// -// This type should not be used directly. The API operations provided in the -// service packages prefixed with "WaitUntil" should be used instead. -type Waiter struct { - Name string - Acceptors []WaiterAcceptor - Logger aws.Logger - - MaxAttempts int - Delay WaiterDelay - - RequestOptions []Option - NewRequest func([]Option) (*Request, error) - SleepWithContext func(aws.Context, time.Duration) error -} - -// ApplyOptions updates the waiter with the list of waiter options provided. -func (w *Waiter) ApplyOptions(opts ...WaiterOption) { - for _, fn := range opts { - fn(w) - } -} - -// WaiterState are states the waiter uses based on WaiterAcceptor definitions -// to identify if the resource state the waiter is waiting on has occurred. -type WaiterState int - -// String returns the string representation of the waiter state. -func (s WaiterState) String() string { - switch s { - case SuccessWaiterState: - return "success" - case FailureWaiterState: - return "failure" - case RetryWaiterState: - return "retry" - default: - return "unknown waiter state" - } -} - -// States the waiter acceptors will use to identify target resource states. -const ( - SuccessWaiterState WaiterState = iota // waiter successful - FailureWaiterState // waiter failed - RetryWaiterState // waiter needs to be retried -) - -// WaiterMatchMode is the mode that the waiter will use to match the WaiterAcceptor -// definition's Expected attribute. -type WaiterMatchMode int - -// Modes the waiter will use when inspecting API response to identify target -// resource states. -const ( - PathAllWaiterMatch WaiterMatchMode = iota // match on all paths - PathWaiterMatch // match on specific path - PathAnyWaiterMatch // match on any path - PathListWaiterMatch // match on list of paths - StatusWaiterMatch // match on status code - ErrorWaiterMatch // match on error -) - -// String returns the string representation of the waiter match mode. -func (m WaiterMatchMode) String() string { - switch m { - case PathAllWaiterMatch: - return "pathAll" - case PathWaiterMatch: - return "path" - case PathAnyWaiterMatch: - return "pathAny" - case PathListWaiterMatch: - return "pathList" - case StatusWaiterMatch: - return "status" - case ErrorWaiterMatch: - return "error" - default: - return "unknown waiter match mode" - } -} - -// WaitWithContext will make requests for the API operation using NewRequest to -// build API requests. The request's response will be compared against the -// Waiter's Acceptors to determine the successful state of the resource the -// waiter is inspecting. -// -// The passed in context must not be nil. If it is nil a panic will occur. The -// Context will be used to cancel the waiter's pending requests and retry delays. -// Use aws.BackgroundContext if no context is available. -// -// The waiter will continue until the target state defined by the Acceptors, -// or the max attempts expires. -// -// Will return the WaiterResourceNotReadyErrorCode error code if the waiter's -// retryer ShouldRetry returns false. This normally will happen when the max -// wait attempts expires. -func (w Waiter) WaitWithContext(ctx aws.Context) error { - - for attempt := 1; ; attempt++ { - req, err := w.NewRequest(w.RequestOptions) - if err != nil { - waiterLogf(w.Logger, "unable to create request %v", err) - return err - } - req.Handlers.Build.PushBack(MakeAddToUserAgentFreeFormHandler("Waiter")) - err = req.Send() - - // See if any of the acceptors match the request's response, or error - for _, a := range w.Acceptors { - if matched, matchErr := a.match(w.Name, w.Logger, req, err); matched { - return matchErr - } - } - - // The Waiter should only check the resource state MaxAttempts times - // This is here instead of in the for loop above to prevent delaying - // unnecessary when the waiter will not retry. - if attempt == w.MaxAttempts { - break - } - - // Delay to wait before inspecting the resource again - delay := w.Delay(attempt) - if sleepFn := req.Config.SleepDelay; sleepFn != nil { - // Support SleepDelay for backwards compatibility and testing - sleepFn(delay) - } else { - sleepCtxFn := w.SleepWithContext - if sleepCtxFn == nil { - sleepCtxFn = aws.SleepWithContext - } - - if err := sleepCtxFn(ctx, delay); err != nil { - return awserr.New(CanceledErrorCode, "waiter context canceled", err) - } - } - } - - return awserr.New(WaiterResourceNotReadyErrorCode, "exceeded wait attempts", nil) -} - -// A WaiterAcceptor provides the information needed to wait for an API operation -// to complete. -type WaiterAcceptor struct { - State WaiterState - Matcher WaiterMatchMode - Argument string - Expected interface{} -} - -// match returns if the acceptor found a match with the passed in request -// or error. True is returned if the acceptor made a match, error is returned -// if there was an error attempting to perform the match. -func (a *WaiterAcceptor) match(name string, l aws.Logger, req *Request, err error) (bool, error) { - result := false - var vals []interface{} - - switch a.Matcher { - case PathAllWaiterMatch, PathWaiterMatch: - // Require all matches to be equal for result to match - vals, _ = awsutil.ValuesAtPath(req.Data, a.Argument) - if len(vals) == 0 { - break - } - result = true - for _, val := range vals { - if !awsutil.DeepEqual(val, a.Expected) { - result = false - break - } - } - case PathAnyWaiterMatch: - // Only a single match needs to equal for the result to match - vals, _ = awsutil.ValuesAtPath(req.Data, a.Argument) - for _, val := range vals { - if awsutil.DeepEqual(val, a.Expected) { - result = true - break - } - } - case PathListWaiterMatch: - // ignored matcher - case StatusWaiterMatch: - s := a.Expected.(int) - result = s == req.HTTPResponse.StatusCode - case ErrorWaiterMatch: - if aerr, ok := err.(awserr.Error); ok { - result = aerr.Code() == a.Expected.(string) - } - default: - waiterLogf(l, "WARNING: Waiter %s encountered unexpected matcher: %s", - name, a.Matcher) - } - - if !result { - // If there was no matching result found there is nothing more to do - // for this response, retry the request. - return false, nil - } - - switch a.State { - case SuccessWaiterState: - // waiter completed - return true, nil - case FailureWaiterState: - // Waiter failure state triggered - return true, awserr.New(WaiterResourceNotReadyErrorCode, - "failed waiting for successful resource state", err) - case RetryWaiterState: - // clear the error and retry the operation - return false, nil - default: - waiterLogf(l, "WARNING: Waiter %s encountered unexpected state: %s", - name, a.State) - return false, nil - } -} - -func waiterLogf(logger aws.Logger, msg string, args ...interface{}) { - if logger != nil { - logger.Log(fmt.Sprintf(msg, args...)) - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go b/vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go deleted file mode 100644 index 3ddd4e5..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go +++ /dev/null @@ -1,290 +0,0 @@ -package session - -import ( - "fmt" - "os" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/credentials/processcreds" - "github.com/aws/aws-sdk-go/aws/credentials/ssocreds" - "github.com/aws/aws-sdk-go/aws/credentials/stscreds" - "github.com/aws/aws-sdk-go/aws/defaults" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/internal/shareddefaults" -) - -func resolveCredentials(cfg *aws.Config, - envCfg envConfig, sharedCfg sharedConfig, - handlers request.Handlers, - sessOpts Options, -) (*credentials.Credentials, error) { - - switch { - case len(sessOpts.Profile) != 0: - // User explicitly provided an Profile in the session's configuration - // so load that profile from shared config first. - // Github(aws/aws-sdk-go#2727) - return resolveCredsFromProfile(cfg, envCfg, sharedCfg, handlers, sessOpts) - - case envCfg.Creds.HasKeys(): - // Environment credentials - return credentials.NewStaticCredentialsFromCreds(envCfg.Creds), nil - - case len(envCfg.WebIdentityTokenFilePath) != 0: - // Web identity token from environment, RoleARN required to also be - // set. - return assumeWebIdentity(cfg, handlers, - envCfg.WebIdentityTokenFilePath, - envCfg.RoleARN, - envCfg.RoleSessionName, - ) - - default: - // Fallback to the "default" credential resolution chain. - return resolveCredsFromProfile(cfg, envCfg, sharedCfg, handlers, sessOpts) - } -} - -// WebIdentityEmptyRoleARNErr will occur if 'AWS_WEB_IDENTITY_TOKEN_FILE' was set but -// 'AWS_ROLE_ARN' was not set. -var WebIdentityEmptyRoleARNErr = awserr.New(stscreds.ErrCodeWebIdentity, "role ARN is not set", nil) - -// WebIdentityEmptyTokenFilePathErr will occur if 'AWS_ROLE_ARN' was set but -// 'AWS_WEB_IDENTITY_TOKEN_FILE' was not set. -var WebIdentityEmptyTokenFilePathErr = awserr.New(stscreds.ErrCodeWebIdentity, "token file path is not set", nil) - -func assumeWebIdentity(cfg *aws.Config, handlers request.Handlers, - filepath string, - roleARN, sessionName string, -) (*credentials.Credentials, error) { - - if len(filepath) == 0 { - return nil, WebIdentityEmptyTokenFilePathErr - } - - if len(roleARN) == 0 { - return nil, WebIdentityEmptyRoleARNErr - } - - creds := stscreds.NewWebIdentityCredentials( - &Session{ - Config: cfg, - Handlers: handlers.Copy(), - }, - roleARN, - sessionName, - filepath, - ) - - return creds, nil -} - -func resolveCredsFromProfile(cfg *aws.Config, - envCfg envConfig, sharedCfg sharedConfig, - handlers request.Handlers, - sessOpts Options, -) (creds *credentials.Credentials, err error) { - - switch { - case sharedCfg.SourceProfile != nil: - // Assume IAM role with credentials source from a different profile. - creds, err = resolveCredsFromProfile(cfg, envCfg, - *sharedCfg.SourceProfile, handlers, sessOpts, - ) - - case sharedCfg.Creds.HasKeys(): - // Static Credentials from Shared Config/Credentials file. - creds = credentials.NewStaticCredentialsFromCreds( - sharedCfg.Creds, - ) - - case sharedCfg.hasSSOConfiguration(): - creds, err = resolveSSOCredentials(cfg, sharedCfg, handlers) - - case len(sharedCfg.CredentialProcess) != 0: - // Get credentials from CredentialProcess - creds = processcreds.NewCredentials(sharedCfg.CredentialProcess) - - case len(sharedCfg.CredentialSource) != 0: - creds, err = resolveCredsFromSource(cfg, envCfg, - sharedCfg, handlers, sessOpts, - ) - - case len(sharedCfg.WebIdentityTokenFile) != 0: - // Credentials from Assume Web Identity token require an IAM Role, and - // that roll will be assumed. May be wrapped with another assume role - // via SourceProfile. - return assumeWebIdentity(cfg, handlers, - sharedCfg.WebIdentityTokenFile, - sharedCfg.RoleARN, - sharedCfg.RoleSessionName, - ) - - default: - // Fallback to default credentials provider, include mock errors for - // the credential chain so user can identify why credentials failed to - // be retrieved. - creds = credentials.NewCredentials(&credentials.ChainProvider{ - VerboseErrors: aws.BoolValue(cfg.CredentialsChainVerboseErrors), - Providers: []credentials.Provider{ - &credProviderError{ - Err: awserr.New("EnvAccessKeyNotFound", - "failed to find credentials in the environment.", nil), - }, - &credProviderError{ - Err: awserr.New("SharedCredsLoad", - fmt.Sprintf("failed to load profile, %s.", envCfg.Profile), nil), - }, - defaults.RemoteCredProvider(*cfg, handlers), - }, - }) - } - if err != nil { - return nil, err - } - - if len(sharedCfg.RoleARN) > 0 { - cfgCp := *cfg - cfgCp.Credentials = creds - return credsFromAssumeRole(cfgCp, handlers, sharedCfg, sessOpts) - } - - return creds, nil -} - -func resolveSSOCredentials(cfg *aws.Config, sharedCfg sharedConfig, handlers request.Handlers) (*credentials.Credentials, error) { - if err := sharedCfg.validateSSOConfiguration(); err != nil { - return nil, err - } - - cfgCopy := cfg.Copy() - cfgCopy.Region = &sharedCfg.SSORegion - - return ssocreds.NewCredentials( - &Session{ - Config: cfgCopy, - Handlers: handlers.Copy(), - }, - sharedCfg.SSOAccountID, - sharedCfg.SSORoleName, - sharedCfg.SSOStartURL, - ), nil -} - -// valid credential source values -const ( - credSourceEc2Metadata = "Ec2InstanceMetadata" - credSourceEnvironment = "Environment" - credSourceECSContainer = "EcsContainer" -) - -func resolveCredsFromSource(cfg *aws.Config, - envCfg envConfig, sharedCfg sharedConfig, - handlers request.Handlers, - sessOpts Options, -) (creds *credentials.Credentials, err error) { - - switch sharedCfg.CredentialSource { - case credSourceEc2Metadata: - p := defaults.RemoteCredProvider(*cfg, handlers) - creds = credentials.NewCredentials(p) - - case credSourceEnvironment: - creds = credentials.NewStaticCredentialsFromCreds(envCfg.Creds) - - case credSourceECSContainer: - if len(os.Getenv(shareddefaults.ECSCredsProviderEnvVar)) == 0 { - return nil, ErrSharedConfigECSContainerEnvVarEmpty - } - - p := defaults.RemoteCredProvider(*cfg, handlers) - creds = credentials.NewCredentials(p) - - default: - return nil, ErrSharedConfigInvalidCredSource - } - - return creds, nil -} - -func credsFromAssumeRole(cfg aws.Config, - handlers request.Handlers, - sharedCfg sharedConfig, - sessOpts Options, -) (*credentials.Credentials, error) { - - if len(sharedCfg.MFASerial) != 0 && sessOpts.AssumeRoleTokenProvider == nil { - // AssumeRole Token provider is required if doing Assume Role - // with MFA. - return nil, AssumeRoleTokenProviderNotSetError{} - } - - return stscreds.NewCredentials( - &Session{ - Config: &cfg, - Handlers: handlers.Copy(), - }, - sharedCfg.RoleARN, - func(opt *stscreds.AssumeRoleProvider) { - opt.RoleSessionName = sharedCfg.RoleSessionName - - if sessOpts.AssumeRoleDuration == 0 && - sharedCfg.AssumeRoleDuration != nil && - *sharedCfg.AssumeRoleDuration/time.Minute > 15 { - opt.Duration = *sharedCfg.AssumeRoleDuration - } else if sessOpts.AssumeRoleDuration != 0 { - opt.Duration = sessOpts.AssumeRoleDuration - } - - // Assume role with external ID - if len(sharedCfg.ExternalID) > 0 { - opt.ExternalID = aws.String(sharedCfg.ExternalID) - } - - // Assume role with MFA - if len(sharedCfg.MFASerial) > 0 { - opt.SerialNumber = aws.String(sharedCfg.MFASerial) - opt.TokenProvider = sessOpts.AssumeRoleTokenProvider - } - }, - ), nil -} - -// AssumeRoleTokenProviderNotSetError is an error returned when creating a -// session when the MFAToken option is not set when shared config is configured -// load assume a role with an MFA token. -type AssumeRoleTokenProviderNotSetError struct{} - -// Code is the short id of the error. -func (e AssumeRoleTokenProviderNotSetError) Code() string { - return "AssumeRoleTokenProviderNotSetError" -} - -// Message is the description of the error -func (e AssumeRoleTokenProviderNotSetError) Message() string { - return fmt.Sprintf("assume role with MFA enabled, but AssumeRoleTokenProvider session option not set.") -} - -// OrigErr is the underlying error that caused the failure. -func (e AssumeRoleTokenProviderNotSetError) OrigErr() error { - return nil -} - -// Error satisfies the error interface. -func (e AssumeRoleTokenProviderNotSetError) Error() string { - return awserr.SprintError(e.Code(), e.Message(), "", nil) -} - -type credProviderError struct { - Err error -} - -func (c credProviderError) Retrieve() (credentials.Value, error) { - return credentials.Value{}, c.Err -} -func (c credProviderError) IsExpired() bool { - return true -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport.go b/vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport.go deleted file mode 100644 index 593aedc..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport.go +++ /dev/null @@ -1,27 +0,0 @@ -// +build go1.13 - -package session - -import ( - "net" - "net/http" - "time" -) - -// Transport that should be used when a custom CA bundle is specified with the -// SDK. -func getCustomTransport() *http.Transport { - return &http.Transport{ - Proxy: http.ProxyFromEnvironment, - DialContext: (&net.Dialer{ - Timeout: 30 * time.Second, - KeepAlive: 30 * time.Second, - DualStack: true, - }).DialContext, - ForceAttemptHTTP2: true, - MaxIdleConns: 100, - IdleConnTimeout: 90 * time.Second, - TLSHandshakeTimeout: 10 * time.Second, - ExpectContinueTimeout: 1 * time.Second, - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.12.go b/vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.12.go deleted file mode 100644 index 1bf31cf..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.12.go +++ /dev/null @@ -1,26 +0,0 @@ -// +build !go1.13,go1.7 - -package session - -import ( - "net" - "net/http" - "time" -) - -// Transport that should be used when a custom CA bundle is specified with the -// SDK. -func getCustomTransport() *http.Transport { - return &http.Transport{ - Proxy: http.ProxyFromEnvironment, - DialContext: (&net.Dialer{ - Timeout: 30 * time.Second, - KeepAlive: 30 * time.Second, - DualStack: true, - }).DialContext, - MaxIdleConns: 100, - IdleConnTimeout: 90 * time.Second, - TLSHandshakeTimeout: 10 * time.Second, - ExpectContinueTimeout: 1 * time.Second, - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.5.go b/vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.5.go deleted file mode 100644 index 253d7bc..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.5.go +++ /dev/null @@ -1,22 +0,0 @@ -// +build !go1.6,go1.5 - -package session - -import ( - "net" - "net/http" - "time" -) - -// Transport that should be used when a custom CA bundle is specified with the -// SDK. -func getCustomTransport() *http.Transport { - return &http.Transport{ - Proxy: http.ProxyFromEnvironment, - Dial: (&net.Dialer{ - Timeout: 30 * time.Second, - KeepAlive: 30 * time.Second, - }).Dial, - TLSHandshakeTimeout: 10 * time.Second, - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.6.go b/vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.6.go deleted file mode 100644 index db24060..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/custom_transport_go1.6.go +++ /dev/null @@ -1,23 +0,0 @@ -// +build !go1.7,go1.6 - -package session - -import ( - "net" - "net/http" - "time" -) - -// Transport that should be used when a custom CA bundle is specified with the -// SDK. -func getCustomTransport() *http.Transport { - return &http.Transport{ - Proxy: http.ProxyFromEnvironment, - Dial: (&net.Dialer{ - Timeout: 30 * time.Second, - KeepAlive: 30 * time.Second, - }).Dial, - TLSHandshakeTimeout: 10 * time.Second, - ExpectContinueTimeout: 1 * time.Second, - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/doc.go b/vendor/github.com/aws/aws-sdk-go/aws/session/doc.go deleted file mode 100644 index 9419b51..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/doc.go +++ /dev/null @@ -1,289 +0,0 @@ -/* -Package session provides configuration for the SDK's service clients. Sessions -can be shared across service clients that share the same base configuration. - -Sessions are safe to use concurrently as long as the Session is not being -modified. Sessions should be cached when possible, because creating a new -Session will load all configuration values from the environment, and config -files each time the Session is created. Sharing the Session value across all of -your service clients will ensure the configuration is loaded the fewest number -of times possible. - -Sessions options from Shared Config - -By default NewSession will only load credentials from the shared credentials -file (~/.aws/credentials). If the AWS_SDK_LOAD_CONFIG environment variable is -set to a truthy value the Session will be created from the configuration -values from the shared config (~/.aws/config) and shared credentials -(~/.aws/credentials) files. Using the NewSessionWithOptions with -SharedConfigState set to SharedConfigEnable will create the session as if the -AWS_SDK_LOAD_CONFIG environment variable was set. - -Credential and config loading order - -The Session will attempt to load configuration and credentials from the -environment, configuration files, and other credential sources. The order -configuration is loaded in is: - - * Environment Variables - * Shared Credentials file - * Shared Configuration file (if SharedConfig is enabled) - * EC2 Instance Metadata (credentials only) - -The Environment variables for credentials will have precedence over shared -config even if SharedConfig is enabled. To override this behavior, and use -shared config credentials instead specify the session.Options.Profile, (e.g. -when using credential_source=Environment to assume a role). - - sess, err := session.NewSessionWithOptions(session.Options{ - Profile: "myProfile", - }) - -Creating Sessions - -Creating a Session without additional options will load credentials region, and -profile loaded from the environment and shared config automatically. See, -"Environment Variables" section for information on environment variables used -by Session. - - // Create Session - sess, err := session.NewSession() - - -When creating Sessions optional aws.Config values can be passed in that will -override the default, or loaded, config values the Session is being created -with. This allows you to provide additional, or case based, configuration -as needed. - - // Create a Session with a custom region - sess, err := session.NewSession(&aws.Config{ - Region: aws.String("us-west-2"), - }) - -Use NewSessionWithOptions to provide additional configuration driving how the -Session's configuration will be loaded. Such as, specifying shared config -profile, or override the shared config state, (AWS_SDK_LOAD_CONFIG). - - // Equivalent to session.NewSession() - sess, err := session.NewSessionWithOptions(session.Options{ - // Options - }) - - sess, err := session.NewSessionWithOptions(session.Options{ - // Specify profile to load for the session's config - Profile: "profile_name", - - // Provide SDK Config options, such as Region. - Config: aws.Config{ - Region: aws.String("us-west-2"), - }, - - // Force enable Shared Config support - SharedConfigState: session.SharedConfigEnable, - }) - -Adding Handlers - -You can add handlers to a session to decorate API operation, (e.g. adding HTTP -headers). All clients that use the Session receive a copy of the Session's -handlers. For example, the following request handler added to the Session logs -every requests made. - - // Create a session, and add additional handlers for all service - // clients created with the Session to inherit. Adds logging handler. - sess := session.Must(session.NewSession()) - - sess.Handlers.Send.PushFront(func(r *request.Request) { - // Log every request made and its payload - logger.Printf("Request: %s/%s, Params: %s", - r.ClientInfo.ServiceName, r.Operation, r.Params) - }) - -Shared Config Fields - -By default the SDK will only load the shared credentials file's -(~/.aws/credentials) credentials values, and all other config is provided by -the environment variables, SDK defaults, and user provided aws.Config values. - -If the AWS_SDK_LOAD_CONFIG environment variable is set, or SharedConfigEnable -option is used to create the Session the full shared config values will be -loaded. This includes credentials, region, and support for assume role. In -addition the Session will load its configuration from both the shared config -file (~/.aws/config) and shared credentials file (~/.aws/credentials). Both -files have the same format. - -If both config files are present the configuration from both files will be -read. The Session will be created from configuration values from the shared -credentials file (~/.aws/credentials) over those in the shared config file -(~/.aws/config). - -Credentials are the values the SDK uses to authenticating requests with AWS -Services. When specified in a file, both aws_access_key_id and -aws_secret_access_key must be provided together in the same file to be -considered valid. They will be ignored if both are not present. -aws_session_token is an optional field that can be provided in addition to the -other two fields. - - aws_access_key_id = AKID - aws_secret_access_key = SECRET - aws_session_token = TOKEN - - ; region only supported if SharedConfigEnabled. - region = us-east-1 - -Assume Role configuration - -The role_arn field allows you to configure the SDK to assume an IAM role using -a set of credentials from another source. Such as when paired with static -credentials, "profile_source", "credential_process", or "credential_source" -fields. If "role_arn" is provided, a source of credentials must also be -specified, such as "source_profile", "credential_source", or -"credential_process". - - role_arn = arn:aws:iam:::role/ - source_profile = profile_with_creds - external_id = 1234 - mfa_serial = - role_session_name = session_name - - -The SDK supports assuming a role with MFA token. If "mfa_serial" is set, you -must also set the Session Option.AssumeRoleTokenProvider. The Session will fail -to load if the AssumeRoleTokenProvider is not specified. - - sess := session.Must(session.NewSessionWithOptions(session.Options{ - AssumeRoleTokenProvider: stscreds.StdinTokenProvider, - })) - -To setup Assume Role outside of a session see the stscreds.AssumeRoleProvider -documentation. - -Environment Variables - -When a Session is created several environment variables can be set to adjust -how the SDK functions, and what configuration data it loads when creating -Sessions. All environment values are optional, but some values like credentials -require multiple of the values to set or the partial values will be ignored. -All environment variable values are strings unless otherwise noted. - -Environment configuration values. If set both Access Key ID and Secret Access -Key must be provided. Session Token and optionally also be provided, but is -not required. - - # Access Key ID - AWS_ACCESS_KEY_ID=AKID - AWS_ACCESS_KEY=AKID # only read if AWS_ACCESS_KEY_ID is not set. - - # Secret Access Key - AWS_SECRET_ACCESS_KEY=SECRET - AWS_SECRET_KEY=SECRET=SECRET # only read if AWS_SECRET_ACCESS_KEY is not set. - - # Session Token - AWS_SESSION_TOKEN=TOKEN - -Region value will instruct the SDK where to make service API requests to. If is -not provided in the environment the region must be provided before a service -client request is made. - - AWS_REGION=us-east-1 - - # AWS_DEFAULT_REGION is only read if AWS_SDK_LOAD_CONFIG is also set, - # and AWS_REGION is not also set. - AWS_DEFAULT_REGION=us-east-1 - -Profile name the SDK should load use when loading shared config from the -configuration files. If not provided "default" will be used as the profile name. - - AWS_PROFILE=my_profile - - # AWS_DEFAULT_PROFILE is only read if AWS_SDK_LOAD_CONFIG is also set, - # and AWS_PROFILE is not also set. - AWS_DEFAULT_PROFILE=my_profile - -SDK load config instructs the SDK to load the shared config in addition to -shared credentials. This also expands the configuration loaded so the shared -credentials will have parity with the shared config file. This also enables -Region and Profile support for the AWS_DEFAULT_REGION and AWS_DEFAULT_PROFILE -env values as well. - - AWS_SDK_LOAD_CONFIG=1 - -Custom Shared Config and Credential Files - -Shared credentials file path can be set to instruct the SDK to use an alternative -file for the shared credentials. If not set the file will be loaded from -$HOME/.aws/credentials on Linux/Unix based systems, and -%USERPROFILE%\.aws\credentials on Windows. - - AWS_SHARED_CREDENTIALS_FILE=$HOME/my_shared_credentials - -Shared config file path can be set to instruct the SDK to use an alternative -file for the shared config. If not set the file will be loaded from -$HOME/.aws/config on Linux/Unix based systems, and -%USERPROFILE%\.aws\config on Windows. - - AWS_CONFIG_FILE=$HOME/my_shared_config - -Custom CA Bundle - -Path to a custom Credentials Authority (CA) bundle PEM file that the SDK -will use instead of the default system's root CA bundle. Use this only -if you want to replace the CA bundle the SDK uses for TLS requests. - - AWS_CA_BUNDLE=$HOME/my_custom_ca_bundle - -Enabling this option will attempt to merge the Transport into the SDK's HTTP -client. If the client's Transport is not a http.Transport an error will be -returned. If the Transport's TLS config is set this option will cause the SDK -to overwrite the Transport's TLS config's RootCAs value. If the CA bundle file -contains multiple certificates all of them will be loaded. - -The Session option CustomCABundle is also available when creating sessions -to also enable this feature. CustomCABundle session option field has priority -over the AWS_CA_BUNDLE environment variable, and will be used if both are set. - -Setting a custom HTTPClient in the aws.Config options will override this setting. -To use this option and custom HTTP client, the HTTP client needs to be provided -when creating the session. Not the service client. - -Custom Client TLS Certificate - -The SDK supports the environment and session option being configured with -Client TLS certificates that are sent as a part of the client's TLS handshake -for client authentication. If used, both Cert and Key values are required. If -one is missing, or either fail to load the contents of the file an error will -be returned. - -HTTP Client's Transport concrete implementation must be a http.Transport -or creating the session will fail. - - AWS_SDK_GO_CLIENT_TLS_KEY=$HOME/my_client_key - AWS_SDK_GO_CLIENT_TLS_CERT=$HOME/my_client_cert - -This can also be configured via the session.Options ClientTLSCert and ClientTLSKey. - - sess, err := session.NewSessionWithOptions(session.Options{ - ClientTLSCert: myCertFile, - ClientTLSKey: myKeyFile, - }) - -Custom EC2 IMDS Endpoint - -The endpoint of the EC2 IMDS client can be configured via the environment -variable, AWS_EC2_METADATA_SERVICE_ENDPOINT when creating the client with a -Session. See Options.EC2IMDSEndpoint for more details. - - AWS_EC2_METADATA_SERVICE_ENDPOINT=http://169.254.169.254 - -If using an URL with an IPv6 address literal, the IPv6 address -component must be enclosed in square brackets. - - AWS_EC2_METADATA_SERVICE_ENDPOINT=http://[::1] - -The custom EC2 IMDS endpoint can also be specified via the Session options. - - sess, err := session.NewSessionWithOptions(session.Options{ - EC2IMDSEndpoint: "http://[::1]", - }) -*/ -package session diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go b/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go deleted file mode 100644 index 3cd5d4b..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go +++ /dev/null @@ -1,378 +0,0 @@ -package session - -import ( - "fmt" - "os" - "strconv" - "strings" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/defaults" - "github.com/aws/aws-sdk-go/aws/endpoints" -) - -// EnvProviderName provides a name of the provider when config is loaded from environment. -const EnvProviderName = "EnvConfigCredentials" - -// envConfig is a collection of environment values the SDK will read -// setup config from. All environment values are optional. But some values -// such as credentials require multiple values to be complete or the values -// will be ignored. -type envConfig struct { - // Environment configuration values. If set both Access Key ID and Secret Access - // Key must be provided. Session Token and optionally also be provided, but is - // not required. - // - // # Access Key ID - // AWS_ACCESS_KEY_ID=AKID - // AWS_ACCESS_KEY=AKID # only read if AWS_ACCESS_KEY_ID is not set. - // - // # Secret Access Key - // AWS_SECRET_ACCESS_KEY=SECRET - // AWS_SECRET_KEY=SECRET=SECRET # only read if AWS_SECRET_ACCESS_KEY is not set. - // - // # Session Token - // AWS_SESSION_TOKEN=TOKEN - Creds credentials.Value - - // Region value will instruct the SDK where to make service API requests to. If is - // not provided in the environment the region must be provided before a service - // client request is made. - // - // AWS_REGION=us-east-1 - // - // # AWS_DEFAULT_REGION is only read if AWS_SDK_LOAD_CONFIG is also set, - // # and AWS_REGION is not also set. - // AWS_DEFAULT_REGION=us-east-1 - Region string - - // Profile name the SDK should load use when loading shared configuration from the - // shared configuration files. If not provided "default" will be used as the - // profile name. - // - // AWS_PROFILE=my_profile - // - // # AWS_DEFAULT_PROFILE is only read if AWS_SDK_LOAD_CONFIG is also set, - // # and AWS_PROFILE is not also set. - // AWS_DEFAULT_PROFILE=my_profile - Profile string - - // SDK load config instructs the SDK to load the shared config in addition to - // shared credentials. This also expands the configuration loaded from the shared - // credentials to have parity with the shared config file. This also enables - // Region and Profile support for the AWS_DEFAULT_REGION and AWS_DEFAULT_PROFILE - // env values as well. - // - // AWS_SDK_LOAD_CONFIG=1 - EnableSharedConfig bool - - // Shared credentials file path can be set to instruct the SDK to use an alternate - // file for the shared credentials. If not set the file will be loaded from - // $HOME/.aws/credentials on Linux/Unix based systems, and - // %USERPROFILE%\.aws\credentials on Windows. - // - // AWS_SHARED_CREDENTIALS_FILE=$HOME/my_shared_credentials - SharedCredentialsFile string - - // Shared config file path can be set to instruct the SDK to use an alternate - // file for the shared config. If not set the file will be loaded from - // $HOME/.aws/config on Linux/Unix based systems, and - // %USERPROFILE%\.aws\config on Windows. - // - // AWS_CONFIG_FILE=$HOME/my_shared_config - SharedConfigFile string - - // Sets the path to a custom Credentials Authority (CA) Bundle PEM file - // that the SDK will use instead of the system's root CA bundle. - // Only use this if you want to configure the SDK to use a custom set - // of CAs. - // - // Enabling this option will attempt to merge the Transport - // into the SDK's HTTP client. If the client's Transport is - // not a http.Transport an error will be returned. If the - // Transport's TLS config is set this option will cause the - // SDK to overwrite the Transport's TLS config's RootCAs value. - // - // Setting a custom HTTPClient in the aws.Config options will override this setting. - // To use this option and custom HTTP client, the HTTP client needs to be provided - // when creating the session. Not the service client. - // - // AWS_CA_BUNDLE=$HOME/my_custom_ca_bundle - CustomCABundle string - - // Sets the TLC client certificate that should be used by the SDK's HTTP transport - // when making requests. The certificate must be paired with a TLS client key file. - // - // AWS_SDK_GO_CLIENT_TLS_CERT=$HOME/my_client_cert - ClientTLSCert string - - // Sets the TLC client key that should be used by the SDK's HTTP transport - // when making requests. The key must be paired with a TLS client certificate file. - // - // AWS_SDK_GO_CLIENT_TLS_KEY=$HOME/my_client_key - ClientTLSKey string - - csmEnabled string - CSMEnabled *bool - CSMPort string - CSMHost string - CSMClientID string - - // Enables endpoint discovery via environment variables. - // - // AWS_ENABLE_ENDPOINT_DISCOVERY=true - EnableEndpointDiscovery *bool - enableEndpointDiscovery string - - // Specifies the WebIdentity token the SDK should use to assume a role - // with. - // - // AWS_WEB_IDENTITY_TOKEN_FILE=file_path - WebIdentityTokenFilePath string - - // Specifies the IAM role arn to use when assuming an role. - // - // AWS_ROLE_ARN=role_arn - RoleARN string - - // Specifies the IAM role session name to use when assuming a role. - // - // AWS_ROLE_SESSION_NAME=session_name - RoleSessionName string - - // Specifies the STS Regional Endpoint flag for the SDK to resolve the endpoint - // for a service. - // - // AWS_STS_REGIONAL_ENDPOINTS=regional - // This can take value as `regional` or `legacy` - STSRegionalEndpoint endpoints.STSRegionalEndpoint - - // Specifies the S3 Regional Endpoint flag for the SDK to resolve the - // endpoint for a service. - // - // AWS_S3_US_EAST_1_REGIONAL_ENDPOINT=regional - // This can take value as `regional` or `legacy` - S3UsEast1RegionalEndpoint endpoints.S3UsEast1RegionalEndpoint - - // Specifies if the S3 service should allow ARNs to direct the region - // the client's requests are sent to. - // - // AWS_S3_USE_ARN_REGION=true - S3UseARNRegion bool - - // Specifies the alternative endpoint to use for EC2 IMDS. - // - // AWS_EC2_METADATA_SERVICE_ENDPOINT=http://[::1] - EC2IMDSEndpoint string -} - -var ( - csmEnabledEnvKey = []string{ - "AWS_CSM_ENABLED", - } - csmHostEnvKey = []string{ - "AWS_CSM_HOST", - } - csmPortEnvKey = []string{ - "AWS_CSM_PORT", - } - csmClientIDEnvKey = []string{ - "AWS_CSM_CLIENT_ID", - } - credAccessEnvKey = []string{ - "AWS_ACCESS_KEY_ID", - "AWS_ACCESS_KEY", - } - credSecretEnvKey = []string{ - "AWS_SECRET_ACCESS_KEY", - "AWS_SECRET_KEY", - } - credSessionEnvKey = []string{ - "AWS_SESSION_TOKEN", - } - - enableEndpointDiscoveryEnvKey = []string{ - "AWS_ENABLE_ENDPOINT_DISCOVERY", - } - - regionEnvKeys = []string{ - "AWS_REGION", - "AWS_DEFAULT_REGION", // Only read if AWS_SDK_LOAD_CONFIG is also set - } - profileEnvKeys = []string{ - "AWS_PROFILE", - "AWS_DEFAULT_PROFILE", // Only read if AWS_SDK_LOAD_CONFIG is also set - } - sharedCredsFileEnvKey = []string{ - "AWS_SHARED_CREDENTIALS_FILE", - } - sharedConfigFileEnvKey = []string{ - "AWS_CONFIG_FILE", - } - webIdentityTokenFilePathEnvKey = []string{ - "AWS_WEB_IDENTITY_TOKEN_FILE", - } - roleARNEnvKey = []string{ - "AWS_ROLE_ARN", - } - roleSessionNameEnvKey = []string{ - "AWS_ROLE_SESSION_NAME", - } - stsRegionalEndpointKey = []string{ - "AWS_STS_REGIONAL_ENDPOINTS", - } - s3UsEast1RegionalEndpoint = []string{ - "AWS_S3_US_EAST_1_REGIONAL_ENDPOINT", - } - s3UseARNRegionEnvKey = []string{ - "AWS_S3_USE_ARN_REGION", - } - ec2IMDSEndpointEnvKey = []string{ - "AWS_EC2_METADATA_SERVICE_ENDPOINT", - } - useCABundleKey = []string{ - "AWS_CA_BUNDLE", - } - useClientTLSCert = []string{ - "AWS_SDK_GO_CLIENT_TLS_CERT", - } - useClientTLSKey = []string{ - "AWS_SDK_GO_CLIENT_TLS_KEY", - } -) - -// loadEnvConfig retrieves the SDK's environment configuration. -// See `envConfig` for the values that will be retrieved. -// -// If the environment variable `AWS_SDK_LOAD_CONFIG` is set to a truthy value -// the shared SDK config will be loaded in addition to the SDK's specific -// configuration values. -func loadEnvConfig() (envConfig, error) { - enableSharedConfig, _ := strconv.ParseBool(os.Getenv("AWS_SDK_LOAD_CONFIG")) - return envConfigLoad(enableSharedConfig) -} - -// loadEnvSharedConfig retrieves the SDK's environment configuration, and the -// SDK shared config. See `envConfig` for the values that will be retrieved. -// -// Loads the shared configuration in addition to the SDK's specific configuration. -// This will load the same values as `loadEnvConfig` if the `AWS_SDK_LOAD_CONFIG` -// environment variable is set. -func loadSharedEnvConfig() (envConfig, error) { - return envConfigLoad(true) -} - -func envConfigLoad(enableSharedConfig bool) (envConfig, error) { - cfg := envConfig{} - - cfg.EnableSharedConfig = enableSharedConfig - - // Static environment credentials - var creds credentials.Value - setFromEnvVal(&creds.AccessKeyID, credAccessEnvKey) - setFromEnvVal(&creds.SecretAccessKey, credSecretEnvKey) - setFromEnvVal(&creds.SessionToken, credSessionEnvKey) - if creds.HasKeys() { - // Require logical grouping of credentials - creds.ProviderName = EnvProviderName - cfg.Creds = creds - } - - // Role Metadata - setFromEnvVal(&cfg.RoleARN, roleARNEnvKey) - setFromEnvVal(&cfg.RoleSessionName, roleSessionNameEnvKey) - - // Web identity environment variables - setFromEnvVal(&cfg.WebIdentityTokenFilePath, webIdentityTokenFilePathEnvKey) - - // CSM environment variables - setFromEnvVal(&cfg.csmEnabled, csmEnabledEnvKey) - setFromEnvVal(&cfg.CSMHost, csmHostEnvKey) - setFromEnvVal(&cfg.CSMPort, csmPortEnvKey) - setFromEnvVal(&cfg.CSMClientID, csmClientIDEnvKey) - - if len(cfg.csmEnabled) != 0 { - v, _ := strconv.ParseBool(cfg.csmEnabled) - cfg.CSMEnabled = &v - } - - regionKeys := regionEnvKeys - profileKeys := profileEnvKeys - if !cfg.EnableSharedConfig { - regionKeys = regionKeys[:1] - profileKeys = profileKeys[:1] - } - - setFromEnvVal(&cfg.Region, regionKeys) - setFromEnvVal(&cfg.Profile, profileKeys) - - // endpoint discovery is in reference to it being enabled. - setFromEnvVal(&cfg.enableEndpointDiscovery, enableEndpointDiscoveryEnvKey) - if len(cfg.enableEndpointDiscovery) > 0 { - cfg.EnableEndpointDiscovery = aws.Bool(cfg.enableEndpointDiscovery != "false") - } - - setFromEnvVal(&cfg.SharedCredentialsFile, sharedCredsFileEnvKey) - setFromEnvVal(&cfg.SharedConfigFile, sharedConfigFileEnvKey) - - if len(cfg.SharedCredentialsFile) == 0 { - cfg.SharedCredentialsFile = defaults.SharedCredentialsFilename() - } - if len(cfg.SharedConfigFile) == 0 { - cfg.SharedConfigFile = defaults.SharedConfigFilename() - } - - setFromEnvVal(&cfg.CustomCABundle, useCABundleKey) - setFromEnvVal(&cfg.ClientTLSCert, useClientTLSCert) - setFromEnvVal(&cfg.ClientTLSKey, useClientTLSKey) - - var err error - // STS Regional Endpoint variable - for _, k := range stsRegionalEndpointKey { - if v := os.Getenv(k); len(v) != 0 { - cfg.STSRegionalEndpoint, err = endpoints.GetSTSRegionalEndpoint(v) - if err != nil { - return cfg, fmt.Errorf("failed to load, %v from env config, %v", k, err) - } - } - } - - // S3 Regional Endpoint variable - for _, k := range s3UsEast1RegionalEndpoint { - if v := os.Getenv(k); len(v) != 0 { - cfg.S3UsEast1RegionalEndpoint, err = endpoints.GetS3UsEast1RegionalEndpoint(v) - if err != nil { - return cfg, fmt.Errorf("failed to load, %v from env config, %v", k, err) - } - } - } - - var s3UseARNRegion string - setFromEnvVal(&s3UseARNRegion, s3UseARNRegionEnvKey) - if len(s3UseARNRegion) != 0 { - switch { - case strings.EqualFold(s3UseARNRegion, "false"): - cfg.S3UseARNRegion = false - case strings.EqualFold(s3UseARNRegion, "true"): - cfg.S3UseARNRegion = true - default: - return envConfig{}, fmt.Errorf( - "invalid value for environment variable, %s=%s, need true or false", - s3UseARNRegionEnvKey[0], s3UseARNRegion) - } - } - - setFromEnvVal(&cfg.EC2IMDSEndpoint, ec2IMDSEndpointEnvKey) - - return cfg, nil -} - -func setFromEnvVal(dst *string, keys []string) { - for _, k := range keys { - if v := os.Getenv(k); len(v) != 0 { - *dst = v - break - } - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/session.go b/vendor/github.com/aws/aws-sdk-go/aws/session/session.go deleted file mode 100644 index 038ae22..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/session.go +++ /dev/null @@ -1,912 +0,0 @@ -package session - -import ( - "crypto/tls" - "crypto/x509" - "fmt" - "io" - "io/ioutil" - "net/http" - "os" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/client" - "github.com/aws/aws-sdk-go/aws/corehandlers" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/csm" - "github.com/aws/aws-sdk-go/aws/defaults" - "github.com/aws/aws-sdk-go/aws/endpoints" - "github.com/aws/aws-sdk-go/aws/request" -) - -const ( - // ErrCodeSharedConfig represents an error that occurs in the shared - // configuration logic - ErrCodeSharedConfig = "SharedConfigErr" - - // ErrCodeLoadCustomCABundle error code for unable to load custom CA bundle. - ErrCodeLoadCustomCABundle = "LoadCustomCABundleError" - - // ErrCodeLoadClientTLSCert error code for unable to load client TLS - // certificate or key - ErrCodeLoadClientTLSCert = "LoadClientTLSCertError" -) - -// ErrSharedConfigSourceCollision will be returned if a section contains both -// source_profile and credential_source -var ErrSharedConfigSourceCollision = awserr.New(ErrCodeSharedConfig, "only one credential type may be specified per profile: source profile, credential source, credential process, web identity token, or sso", nil) - -// ErrSharedConfigECSContainerEnvVarEmpty will be returned if the environment -// variables are empty and Environment was set as the credential source -var ErrSharedConfigECSContainerEnvVarEmpty = awserr.New(ErrCodeSharedConfig, "EcsContainer was specified as the credential_source, but 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI' was not set", nil) - -// ErrSharedConfigInvalidCredSource will be returned if an invalid credential source was provided -var ErrSharedConfigInvalidCredSource = awserr.New(ErrCodeSharedConfig, "credential source values must be EcsContainer, Ec2InstanceMetadata, or Environment", nil) - -// A Session provides a central location to create service clients from and -// store configurations and request handlers for those services. -// -// Sessions are safe to create service clients concurrently, but it is not safe -// to mutate the Session concurrently. -// -// The Session satisfies the service client's client.ConfigProvider. -type Session struct { - Config *aws.Config - Handlers request.Handlers - - options Options -} - -// New creates a new instance of the handlers merging in the provided configs -// on top of the SDK's default configurations. Once the Session is created it -// can be mutated to modify the Config or Handlers. The Session is safe to be -// read concurrently, but it should not be written to concurrently. -// -// If the AWS_SDK_LOAD_CONFIG environment is set to a truthy value, the New -// method could now encounter an error when loading the configuration. When -// The environment variable is set, and an error occurs, New will return a -// session that will fail all requests reporting the error that occurred while -// loading the session. Use NewSession to get the error when creating the -// session. -// -// If the AWS_SDK_LOAD_CONFIG environment variable is set to a truthy value -// the shared config file (~/.aws/config) will also be loaded, in addition to -// the shared credentials file (~/.aws/credentials). Values set in both the -// shared config, and shared credentials will be taken from the shared -// credentials file. -// -// Deprecated: Use NewSession functions to create sessions instead. NewSession -// has the same functionality as New except an error can be returned when the -// func is called instead of waiting to receive an error until a request is made. -func New(cfgs ...*aws.Config) *Session { - // load initial config from environment - envCfg, envErr := loadEnvConfig() - - if envCfg.EnableSharedConfig { - var cfg aws.Config - cfg.MergeIn(cfgs...) - s, err := NewSessionWithOptions(Options{ - Config: cfg, - SharedConfigState: SharedConfigEnable, - }) - if err != nil { - // Old session.New expected all errors to be discovered when - // a request is made, and would report the errors then. This - // needs to be replicated if an error occurs while creating - // the session. - msg := "failed to create session with AWS_SDK_LOAD_CONFIG enabled. " + - "Use session.NewSession to handle errors occurring during session creation." - - // Session creation failed, need to report the error and prevent - // any requests from succeeding. - s = &Session{Config: defaults.Config()} - s.logDeprecatedNewSessionError(msg, err, cfgs) - } - - return s - } - - s := deprecatedNewSession(envCfg, cfgs...) - if envErr != nil { - msg := "failed to load env config" - s.logDeprecatedNewSessionError(msg, envErr, cfgs) - } - - if csmCfg, err := loadCSMConfig(envCfg, []string{}); err != nil { - if l := s.Config.Logger; l != nil { - l.Log(fmt.Sprintf("ERROR: failed to load CSM configuration, %v", err)) - } - } else if csmCfg.Enabled { - err := enableCSM(&s.Handlers, csmCfg, s.Config.Logger) - if err != nil { - msg := "failed to enable CSM" - s.logDeprecatedNewSessionError(msg, err, cfgs) - } - } - - return s -} - -// NewSession returns a new Session created from SDK defaults, config files, -// environment, and user provided config files. Once the Session is created -// it can be mutated to modify the Config or Handlers. The Session is safe to -// be read concurrently, but it should not be written to concurrently. -// -// If the AWS_SDK_LOAD_CONFIG environment variable is set to a truthy value -// the shared config file (~/.aws/config) will also be loaded in addition to -// the shared credentials file (~/.aws/credentials). Values set in both the -// shared config, and shared credentials will be taken from the shared -// credentials file. Enabling the Shared Config will also allow the Session -// to be built with retrieving credentials with AssumeRole set in the config. -// -// See the NewSessionWithOptions func for information on how to override or -// control through code how the Session will be created, such as specifying the -// config profile, and controlling if shared config is enabled or not. -func NewSession(cfgs ...*aws.Config) (*Session, error) { - opts := Options{} - opts.Config.MergeIn(cfgs...) - - return NewSessionWithOptions(opts) -} - -// SharedConfigState provides the ability to optionally override the state -// of the session's creation based on the shared config being enabled or -// disabled. -type SharedConfigState int - -const ( - // SharedConfigStateFromEnv does not override any state of the - // AWS_SDK_LOAD_CONFIG env var. It is the default value of the - // SharedConfigState type. - SharedConfigStateFromEnv SharedConfigState = iota - - // SharedConfigDisable overrides the AWS_SDK_LOAD_CONFIG env var value - // and disables the shared config functionality. - SharedConfigDisable - - // SharedConfigEnable overrides the AWS_SDK_LOAD_CONFIG env var value - // and enables the shared config functionality. - SharedConfigEnable -) - -// Options provides the means to control how a Session is created and what -// configuration values will be loaded. -// -type Options struct { - // Provides config values for the SDK to use when creating service clients - // and making API requests to services. Any value set in with this field - // will override the associated value provided by the SDK defaults, - // environment or config files where relevant. - // - // If not set, configuration values from from SDK defaults, environment, - // config will be used. - Config aws.Config - - // Overrides the config profile the Session should be created from. If not - // set the value of the environment variable will be loaded (AWS_PROFILE, - // or AWS_DEFAULT_PROFILE if the Shared Config is enabled). - // - // If not set and environment variables are not set the "default" - // (DefaultSharedConfigProfile) will be used as the profile to load the - // session config from. - Profile string - - // Instructs how the Session will be created based on the AWS_SDK_LOAD_CONFIG - // environment variable. By default a Session will be created using the - // value provided by the AWS_SDK_LOAD_CONFIG environment variable. - // - // Setting this value to SharedConfigEnable or SharedConfigDisable - // will allow you to override the AWS_SDK_LOAD_CONFIG environment variable - // and enable or disable the shared config functionality. - SharedConfigState SharedConfigState - - // Ordered list of files the session will load configuration from. - // It will override environment variable AWS_SHARED_CREDENTIALS_FILE, AWS_CONFIG_FILE. - SharedConfigFiles []string - - // When the SDK's shared config is configured to assume a role with MFA - // this option is required in order to provide the mechanism that will - // retrieve the MFA token. There is no default value for this field. If - // it is not set an error will be returned when creating the session. - // - // This token provider will be called when ever the assumed role's - // credentials need to be refreshed. Within the context of service clients - // all sharing the same session the SDK will ensure calls to the token - // provider are atomic. When sharing a token provider across multiple - // sessions additional synchronization logic is needed to ensure the - // token providers do not introduce race conditions. It is recommend to - // share the session where possible. - // - // stscreds.StdinTokenProvider is a basic implementation that will prompt - // from stdin for the MFA token code. - // - // This field is only used if the shared configuration is enabled, and - // the config enables assume role wit MFA via the mfa_serial field. - AssumeRoleTokenProvider func() (string, error) - - // When the SDK's shared config is configured to assume a role this option - // may be provided to set the expiry duration of the STS credentials. - // Defaults to 15 minutes if not set as documented in the - // stscreds.AssumeRoleProvider. - AssumeRoleDuration time.Duration - - // Reader for a custom Credentials Authority (CA) bundle in PEM format that - // the SDK will use instead of the default system's root CA bundle. Use this - // only if you want to replace the CA bundle the SDK uses for TLS requests. - // - // HTTP Client's Transport concrete implementation must be a http.Transport - // or creating the session will fail. - // - // If the Transport's TLS config is set this option will cause the SDK - // to overwrite the Transport's TLS config's RootCAs value. If the CA - // bundle reader contains multiple certificates all of them will be loaded. - // - // Can also be specified via the environment variable: - // - // AWS_CA_BUNDLE=$HOME/ca_bundle - // - // Can also be specified via the shared config field: - // - // ca_bundle = $HOME/ca_bundle - CustomCABundle io.Reader - - // Reader for the TLC client certificate that should be used by the SDK's - // HTTP transport when making requests. The certificate must be paired with - // a TLS client key file. Will be ignored if both are not provided. - // - // HTTP Client's Transport concrete implementation must be a http.Transport - // or creating the session will fail. - // - // Can also be specified via the environment variable: - // - // AWS_SDK_GO_CLIENT_TLS_CERT=$HOME/my_client_cert - ClientTLSCert io.Reader - - // Reader for the TLC client key that should be used by the SDK's HTTP - // transport when making requests. The key must be paired with a TLS client - // certificate file. Will be ignored if both are not provided. - // - // HTTP Client's Transport concrete implementation must be a http.Transport - // or creating the session will fail. - // - // Can also be specified via the environment variable: - // - // AWS_SDK_GO_CLIENT_TLS_KEY=$HOME/my_client_key - ClientTLSKey io.Reader - - // The handlers that the session and all API clients will be created with. - // This must be a complete set of handlers. Use the defaults.Handlers() - // function to initialize this value before changing the handlers to be - // used by the SDK. - Handlers request.Handlers - - // Allows specifying a custom endpoint to be used by the EC2 IMDS client - // when making requests to the EC2 IMDS API. The must endpoint value must - // include protocol prefix. - // - // If unset, will the EC2 IMDS client will use its default endpoint. - // - // Can also be specified via the environment variable, - // AWS_EC2_METADATA_SERVICE_ENDPOINT. - // - // AWS_EC2_METADATA_SERVICE_ENDPOINT=http://169.254.169.254 - // - // If using an URL with an IPv6 address literal, the IPv6 address - // component must be enclosed in square brackets. - // - // AWS_EC2_METADATA_SERVICE_ENDPOINT=http://[::1] - EC2IMDSEndpoint string -} - -// NewSessionWithOptions returns a new Session created from SDK defaults, config files, -// environment, and user provided config files. This func uses the Options -// values to configure how the Session is created. -// -// If the AWS_SDK_LOAD_CONFIG environment variable is set to a truthy value -// the shared config file (~/.aws/config) will also be loaded in addition to -// the shared credentials file (~/.aws/credentials). Values set in both the -// shared config, and shared credentials will be taken from the shared -// credentials file. Enabling the Shared Config will also allow the Session -// to be built with retrieving credentials with AssumeRole set in the config. -// -// // Equivalent to session.New -// sess := session.Must(session.NewSessionWithOptions(session.Options{})) -// -// // Specify profile to load for the session's config -// sess := session.Must(session.NewSessionWithOptions(session.Options{ -// Profile: "profile_name", -// })) -// -// // Specify profile for config and region for requests -// sess := session.Must(session.NewSessionWithOptions(session.Options{ -// Config: aws.Config{Region: aws.String("us-east-1")}, -// Profile: "profile_name", -// })) -// -// // Force enable Shared Config support -// sess := session.Must(session.NewSessionWithOptions(session.Options{ -// SharedConfigState: session.SharedConfigEnable, -// })) -func NewSessionWithOptions(opts Options) (*Session, error) { - var envCfg envConfig - var err error - if opts.SharedConfigState == SharedConfigEnable { - envCfg, err = loadSharedEnvConfig() - if err != nil { - return nil, fmt.Errorf("failed to load shared config, %v", err) - } - } else { - envCfg, err = loadEnvConfig() - if err != nil { - return nil, fmt.Errorf("failed to load environment config, %v", err) - } - } - - if len(opts.Profile) != 0 { - envCfg.Profile = opts.Profile - } - - switch opts.SharedConfigState { - case SharedConfigDisable: - envCfg.EnableSharedConfig = false - case SharedConfigEnable: - envCfg.EnableSharedConfig = true - } - - return newSession(opts, envCfg, &opts.Config) -} - -// Must is a helper function to ensure the Session is valid and there was no -// error when calling a NewSession function. -// -// This helper is intended to be used in variable initialization to load the -// Session and configuration at startup. Such as: -// -// var sess = session.Must(session.NewSession()) -func Must(sess *Session, err error) *Session { - if err != nil { - panic(err) - } - - return sess -} - -// Wraps the endpoint resolver with a resolver that will return a custom -// endpoint for EC2 IMDS. -func wrapEC2IMDSEndpoint(resolver endpoints.Resolver, endpoint string) endpoints.Resolver { - return endpoints.ResolverFunc( - func(service, region string, opts ...func(*endpoints.Options)) ( - endpoints.ResolvedEndpoint, error, - ) { - if service == ec2MetadataServiceID { - return endpoints.ResolvedEndpoint{ - URL: endpoint, - SigningName: ec2MetadataServiceID, - SigningRegion: region, - }, nil - } - return resolver.EndpointFor(service, region) - }) -} - -func deprecatedNewSession(envCfg envConfig, cfgs ...*aws.Config) *Session { - cfg := defaults.Config() - handlers := defaults.Handlers() - - // Apply the passed in configs so the configuration can be applied to the - // default credential chain - cfg.MergeIn(cfgs...) - if cfg.EndpointResolver == nil { - // An endpoint resolver is required for a session to be able to provide - // endpoints for service client configurations. - cfg.EndpointResolver = endpoints.DefaultResolver() - } - - if len(envCfg.EC2IMDSEndpoint) != 0 { - cfg.EndpointResolver = wrapEC2IMDSEndpoint(cfg.EndpointResolver, envCfg.EC2IMDSEndpoint) - } - - cfg.Credentials = defaults.CredChain(cfg, handlers) - - // Reapply any passed in configs to override credentials if set - cfg.MergeIn(cfgs...) - - s := &Session{ - Config: cfg, - Handlers: handlers, - options: Options{ - EC2IMDSEndpoint: envCfg.EC2IMDSEndpoint, - }, - } - - initHandlers(s) - return s -} - -func enableCSM(handlers *request.Handlers, cfg csmConfig, logger aws.Logger) error { - if logger != nil { - logger.Log("Enabling CSM") - } - - r, err := csm.Start(cfg.ClientID, csm.AddressWithDefaults(cfg.Host, cfg.Port)) - if err != nil { - return err - } - r.InjectHandlers(handlers) - - return nil -} - -func newSession(opts Options, envCfg envConfig, cfgs ...*aws.Config) (*Session, error) { - cfg := defaults.Config() - - handlers := opts.Handlers - if handlers.IsEmpty() { - handlers = defaults.Handlers() - } - - // Get a merged version of the user provided config to determine if - // credentials were. - userCfg := &aws.Config{} - userCfg.MergeIn(cfgs...) - cfg.MergeIn(userCfg) - - // Ordered config files will be loaded in with later files overwriting - // previous config file values. - var cfgFiles []string - if opts.SharedConfigFiles != nil { - cfgFiles = opts.SharedConfigFiles - } else { - cfgFiles = []string{envCfg.SharedConfigFile, envCfg.SharedCredentialsFile} - if !envCfg.EnableSharedConfig { - // The shared config file (~/.aws/config) is only loaded if instructed - // to load via the envConfig.EnableSharedConfig (AWS_SDK_LOAD_CONFIG). - cfgFiles = cfgFiles[1:] - } - } - - // Load additional config from file(s) - sharedCfg, err := loadSharedConfig(envCfg.Profile, cfgFiles, envCfg.EnableSharedConfig) - if err != nil { - if len(envCfg.Profile) == 0 && !envCfg.EnableSharedConfig && (envCfg.Creds.HasKeys() || userCfg.Credentials != nil) { - // Special case where the user has not explicitly specified an AWS_PROFILE, - // or session.Options.profile, shared config is not enabled, and the - // environment has credentials, allow the shared config file to fail to - // load since the user has already provided credentials, and nothing else - // is required to be read file. Github(aws/aws-sdk-go#2455) - } else if _, ok := err.(SharedConfigProfileNotExistsError); !ok { - return nil, err - } - } - - if err := mergeConfigSrcs(cfg, userCfg, envCfg, sharedCfg, handlers, opts); err != nil { - return nil, err - } - - if err := setTLSOptions(&opts, cfg, envCfg, sharedCfg); err != nil { - return nil, err - } - - s := &Session{ - Config: cfg, - Handlers: handlers, - options: opts, - } - - initHandlers(s) - - if csmCfg, err := loadCSMConfig(envCfg, cfgFiles); err != nil { - if l := s.Config.Logger; l != nil { - l.Log(fmt.Sprintf("ERROR: failed to load CSM configuration, %v", err)) - } - } else if csmCfg.Enabled { - err = enableCSM(&s.Handlers, csmCfg, s.Config.Logger) - if err != nil { - return nil, err - } - } - - return s, nil -} - -type csmConfig struct { - Enabled bool - Host string - Port string - ClientID string -} - -var csmProfileName = "aws_csm" - -func loadCSMConfig(envCfg envConfig, cfgFiles []string) (csmConfig, error) { - if envCfg.CSMEnabled != nil { - if *envCfg.CSMEnabled { - return csmConfig{ - Enabled: true, - ClientID: envCfg.CSMClientID, - Host: envCfg.CSMHost, - Port: envCfg.CSMPort, - }, nil - } - return csmConfig{}, nil - } - - sharedCfg, err := loadSharedConfig(csmProfileName, cfgFiles, false) - if err != nil { - if _, ok := err.(SharedConfigProfileNotExistsError); !ok { - return csmConfig{}, err - } - } - if sharedCfg.CSMEnabled != nil && *sharedCfg.CSMEnabled == true { - return csmConfig{ - Enabled: true, - ClientID: sharedCfg.CSMClientID, - Host: sharedCfg.CSMHost, - Port: sharedCfg.CSMPort, - }, nil - } - - return csmConfig{}, nil -} - -func setTLSOptions(opts *Options, cfg *aws.Config, envCfg envConfig, sharedCfg sharedConfig) error { - // CA Bundle can be specified in both environment variable shared config file. - var caBundleFilename = envCfg.CustomCABundle - if len(caBundleFilename) == 0 { - caBundleFilename = sharedCfg.CustomCABundle - } - - // Only use environment value if session option is not provided. - customTLSOptions := map[string]struct { - filename string - field *io.Reader - errCode string - }{ - "custom CA bundle PEM": {filename: caBundleFilename, field: &opts.CustomCABundle, errCode: ErrCodeLoadCustomCABundle}, - "custom client TLS cert": {filename: envCfg.ClientTLSCert, field: &opts.ClientTLSCert, errCode: ErrCodeLoadClientTLSCert}, - "custom client TLS key": {filename: envCfg.ClientTLSKey, field: &opts.ClientTLSKey, errCode: ErrCodeLoadClientTLSCert}, - } - for name, v := range customTLSOptions { - if len(v.filename) != 0 && *v.field == nil { - f, err := os.Open(v.filename) - if err != nil { - return awserr.New(v.errCode, fmt.Sprintf("failed to open %s file", name), err) - } - defer f.Close() - *v.field = f - } - } - - // Setup HTTP client with custom cert bundle if enabled - if opts.CustomCABundle != nil { - if err := loadCustomCABundle(cfg.HTTPClient, opts.CustomCABundle); err != nil { - return err - } - } - - // Setup HTTP client TLS certificate and key for client TLS authentication. - if opts.ClientTLSCert != nil && opts.ClientTLSKey != nil { - if err := loadClientTLSCert(cfg.HTTPClient, opts.ClientTLSCert, opts.ClientTLSKey); err != nil { - return err - } - } else if opts.ClientTLSCert == nil && opts.ClientTLSKey == nil { - // Do nothing if neither values are available. - - } else { - return awserr.New(ErrCodeLoadClientTLSCert, - fmt.Sprintf("client TLS cert(%t) and key(%t) must both be provided", - opts.ClientTLSCert != nil, opts.ClientTLSKey != nil), nil) - } - - return nil -} - -func getHTTPTransport(client *http.Client) (*http.Transport, error) { - var t *http.Transport - switch v := client.Transport.(type) { - case *http.Transport: - t = v - default: - if client.Transport != nil { - return nil, fmt.Errorf("unsupported transport, %T", client.Transport) - } - } - if t == nil { - // Nil transport implies `http.DefaultTransport` should be used. Since - // the SDK cannot modify, nor copy the `DefaultTransport` specifying - // the values the next closest behavior. - t = getCustomTransport() - } - - return t, nil -} - -func loadCustomCABundle(client *http.Client, bundle io.Reader) error { - t, err := getHTTPTransport(client) - if err != nil { - return awserr.New(ErrCodeLoadCustomCABundle, - "unable to load custom CA bundle, HTTPClient's transport unsupported type", err) - } - - p, err := loadCertPool(bundle) - if err != nil { - return err - } - if t.TLSClientConfig == nil { - t.TLSClientConfig = &tls.Config{} - } - t.TLSClientConfig.RootCAs = p - - client.Transport = t - - return nil -} - -func loadCertPool(r io.Reader) (*x509.CertPool, error) { - b, err := ioutil.ReadAll(r) - if err != nil { - return nil, awserr.New(ErrCodeLoadCustomCABundle, - "failed to read custom CA bundle PEM file", err) - } - - p := x509.NewCertPool() - if !p.AppendCertsFromPEM(b) { - return nil, awserr.New(ErrCodeLoadCustomCABundle, - "failed to load custom CA bundle PEM file", err) - } - - return p, nil -} - -func loadClientTLSCert(client *http.Client, certFile, keyFile io.Reader) error { - t, err := getHTTPTransport(client) - if err != nil { - return awserr.New(ErrCodeLoadClientTLSCert, - "unable to get usable HTTP transport from client", err) - } - - cert, err := ioutil.ReadAll(certFile) - if err != nil { - return awserr.New(ErrCodeLoadClientTLSCert, - "unable to get read client TLS cert file", err) - } - - key, err := ioutil.ReadAll(keyFile) - if err != nil { - return awserr.New(ErrCodeLoadClientTLSCert, - "unable to get read client TLS key file", err) - } - - clientCert, err := tls.X509KeyPair(cert, key) - if err != nil { - return awserr.New(ErrCodeLoadClientTLSCert, - "unable to load x509 key pair from client cert", err) - } - - tlsCfg := t.TLSClientConfig - if tlsCfg == nil { - tlsCfg = &tls.Config{} - } - - tlsCfg.Certificates = append(tlsCfg.Certificates, clientCert) - - t.TLSClientConfig = tlsCfg - client.Transport = t - - return nil -} - -func mergeConfigSrcs(cfg, userCfg *aws.Config, - envCfg envConfig, sharedCfg sharedConfig, - handlers request.Handlers, - sessOpts Options, -) error { - - // Region if not already set by user - if len(aws.StringValue(cfg.Region)) == 0 { - if len(envCfg.Region) > 0 { - cfg.WithRegion(envCfg.Region) - } else if envCfg.EnableSharedConfig && len(sharedCfg.Region) > 0 { - cfg.WithRegion(sharedCfg.Region) - } - } - - if cfg.EnableEndpointDiscovery == nil { - if envCfg.EnableEndpointDiscovery != nil { - cfg.WithEndpointDiscovery(*envCfg.EnableEndpointDiscovery) - } else if envCfg.EnableSharedConfig && sharedCfg.EnableEndpointDiscovery != nil { - cfg.WithEndpointDiscovery(*sharedCfg.EnableEndpointDiscovery) - } - } - - // Regional Endpoint flag for STS endpoint resolving - mergeSTSRegionalEndpointConfig(cfg, []endpoints.STSRegionalEndpoint{ - userCfg.STSRegionalEndpoint, - envCfg.STSRegionalEndpoint, - sharedCfg.STSRegionalEndpoint, - endpoints.LegacySTSEndpoint, - }) - - // Regional Endpoint flag for S3 endpoint resolving - mergeS3UsEast1RegionalEndpointConfig(cfg, []endpoints.S3UsEast1RegionalEndpoint{ - userCfg.S3UsEast1RegionalEndpoint, - envCfg.S3UsEast1RegionalEndpoint, - sharedCfg.S3UsEast1RegionalEndpoint, - endpoints.LegacyS3UsEast1Endpoint, - }) - - ec2IMDSEndpoint := sessOpts.EC2IMDSEndpoint - if len(ec2IMDSEndpoint) == 0 { - ec2IMDSEndpoint = envCfg.EC2IMDSEndpoint - } - if len(ec2IMDSEndpoint) != 0 { - cfg.EndpointResolver = wrapEC2IMDSEndpoint(cfg.EndpointResolver, ec2IMDSEndpoint) - } - - // Configure credentials if not already set by the user when creating the - // Session. - if cfg.Credentials == credentials.AnonymousCredentials && userCfg.Credentials == nil { - creds, err := resolveCredentials(cfg, envCfg, sharedCfg, handlers, sessOpts) - if err != nil { - return err - } - cfg.Credentials = creds - } - - cfg.S3UseARNRegion = userCfg.S3UseARNRegion - if cfg.S3UseARNRegion == nil { - cfg.S3UseARNRegion = &envCfg.S3UseARNRegion - } - if cfg.S3UseARNRegion == nil { - cfg.S3UseARNRegion = &sharedCfg.S3UseARNRegion - } - - return nil -} - -func mergeSTSRegionalEndpointConfig(cfg *aws.Config, values []endpoints.STSRegionalEndpoint) { - for _, v := range values { - if v != endpoints.UnsetSTSEndpoint { - cfg.STSRegionalEndpoint = v - break - } - } -} - -func mergeS3UsEast1RegionalEndpointConfig(cfg *aws.Config, values []endpoints.S3UsEast1RegionalEndpoint) { - for _, v := range values { - if v != endpoints.UnsetS3UsEast1Endpoint { - cfg.S3UsEast1RegionalEndpoint = v - break - } - } -} - -func initHandlers(s *Session) { - // Add the Validate parameter handler if it is not disabled. - s.Handlers.Validate.Remove(corehandlers.ValidateParametersHandler) - if !aws.BoolValue(s.Config.DisableParamValidation) { - s.Handlers.Validate.PushBackNamed(corehandlers.ValidateParametersHandler) - } -} - -// Copy creates and returns a copy of the current Session, copying the config -// and handlers. If any additional configs are provided they will be merged -// on top of the Session's copied config. -// -// // Create a copy of the current Session, configured for the us-west-2 region. -// sess.Copy(&aws.Config{Region: aws.String("us-west-2")}) -func (s *Session) Copy(cfgs ...*aws.Config) *Session { - newSession := &Session{ - Config: s.Config.Copy(cfgs...), - Handlers: s.Handlers.Copy(), - options: s.options, - } - - initHandlers(newSession) - - return newSession -} - -// ClientConfig satisfies the client.ConfigProvider interface and is used to -// configure the service client instances. Passing the Session to the service -// client's constructor (New) will use this method to configure the client. -func (s *Session) ClientConfig(service string, cfgs ...*aws.Config) client.Config { - s = s.Copy(cfgs...) - - region := aws.StringValue(s.Config.Region) - resolved, err := s.resolveEndpoint(service, region, s.Config) - if err != nil { - s.Handlers.Validate.PushBack(func(r *request.Request) { - if len(r.ClientInfo.Endpoint) != 0 { - // Error occurred while resolving endpoint, but the request - // being invoked has had an endpoint specified after the client - // was created. - return - } - r.Error = err - }) - } - - return client.Config{ - Config: s.Config, - Handlers: s.Handlers, - PartitionID: resolved.PartitionID, - Endpoint: resolved.URL, - SigningRegion: resolved.SigningRegion, - SigningNameDerived: resolved.SigningNameDerived, - SigningName: resolved.SigningName, - } -} - -const ec2MetadataServiceID = "ec2metadata" - -func (s *Session) resolveEndpoint(service, region string, cfg *aws.Config) (endpoints.ResolvedEndpoint, error) { - - if ep := aws.StringValue(cfg.Endpoint); len(ep) != 0 { - return endpoints.ResolvedEndpoint{ - URL: endpoints.AddScheme(ep, aws.BoolValue(cfg.DisableSSL)), - SigningRegion: region, - }, nil - } - - resolved, err := cfg.EndpointResolver.EndpointFor(service, region, - func(opt *endpoints.Options) { - opt.DisableSSL = aws.BoolValue(cfg.DisableSSL) - opt.UseDualStack = aws.BoolValue(cfg.UseDualStack) - // Support for STSRegionalEndpoint where the STSRegionalEndpoint is - // provided in envConfig or sharedConfig with envConfig getting - // precedence. - opt.STSRegionalEndpoint = cfg.STSRegionalEndpoint - - // Support for S3UsEast1RegionalEndpoint where the S3UsEast1RegionalEndpoint is - // provided in envConfig or sharedConfig with envConfig getting - // precedence. - opt.S3UsEast1RegionalEndpoint = cfg.S3UsEast1RegionalEndpoint - - // Support the condition where the service is modeled but its - // endpoint metadata is not available. - opt.ResolveUnknownService = true - }, - ) - if err != nil { - return endpoints.ResolvedEndpoint{}, err - } - - return resolved, nil -} - -// ClientConfigNoResolveEndpoint is the same as ClientConfig with the exception -// that the EndpointResolver will not be used to resolve the endpoint. The only -// endpoint set must come from the aws.Config.Endpoint field. -func (s *Session) ClientConfigNoResolveEndpoint(cfgs ...*aws.Config) client.Config { - s = s.Copy(cfgs...) - - var resolved endpoints.ResolvedEndpoint - if ep := aws.StringValue(s.Config.Endpoint); len(ep) > 0 { - resolved.URL = endpoints.AddScheme(ep, aws.BoolValue(s.Config.DisableSSL)) - resolved.SigningRegion = aws.StringValue(s.Config.Region) - } - - return client.Config{ - Config: s.Config, - Handlers: s.Handlers, - Endpoint: resolved.URL, - SigningRegion: resolved.SigningRegion, - SigningNameDerived: resolved.SigningNameDerived, - SigningName: resolved.SigningName, - } -} - -// logDeprecatedNewSessionError function enables error handling for session -func (s *Session) logDeprecatedNewSessionError(msg string, err error, cfgs []*aws.Config) { - // Session creation failed, need to report the error and prevent - // any requests from succeeding. - s.Config.MergeIn(cfgs...) - s.Config.Logger.Log("ERROR:", msg, "Error:", err) - s.Handlers.Validate.PushBack(func(r *request.Request) { - r.Error = err - }) -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go b/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go deleted file mode 100644 index c3f38b6..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go +++ /dev/null @@ -1,642 +0,0 @@ -package session - -import ( - "fmt" - "strings" - "time" - - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/endpoints" - "github.com/aws/aws-sdk-go/internal/ini" -) - -const ( - // Static Credentials group - accessKeyIDKey = `aws_access_key_id` // group required - secretAccessKey = `aws_secret_access_key` // group required - sessionTokenKey = `aws_session_token` // optional - - // Assume Role Credentials group - roleArnKey = `role_arn` // group required - sourceProfileKey = `source_profile` // group required (or credential_source) - credentialSourceKey = `credential_source` // group required (or source_profile) - externalIDKey = `external_id` // optional - mfaSerialKey = `mfa_serial` // optional - roleSessionNameKey = `role_session_name` // optional - roleDurationSecondsKey = "duration_seconds" // optional - - // AWS Single Sign-On (AWS SSO) group - ssoAccountIDKey = "sso_account_id" - ssoRegionKey = "sso_region" - ssoRoleNameKey = "sso_role_name" - ssoStartURL = "sso_start_url" - - // CSM options - csmEnabledKey = `csm_enabled` - csmHostKey = `csm_host` - csmPortKey = `csm_port` - csmClientIDKey = `csm_client_id` - - // Additional Config fields - regionKey = `region` - - // custom CA Bundle filename - customCABundleKey = `ca_bundle` - - // endpoint discovery group - enableEndpointDiscoveryKey = `endpoint_discovery_enabled` // optional - - // External Credential Process - credentialProcessKey = `credential_process` // optional - - // Web Identity Token File - webIdentityTokenFileKey = `web_identity_token_file` // optional - - // Additional config fields for regional or legacy endpoints - stsRegionalEndpointSharedKey = `sts_regional_endpoints` - - // Additional config fields for regional or legacy endpoints - s3UsEast1RegionalSharedKey = `s3_us_east_1_regional_endpoint` - - // DefaultSharedConfigProfile is the default profile to be used when - // loading configuration from the config files if another profile name - // is not provided. - DefaultSharedConfigProfile = `default` - - // S3 ARN Region Usage - s3UseARNRegionKey = "s3_use_arn_region" -) - -// sharedConfig represents the configuration fields of the SDK config files. -type sharedConfig struct { - Profile string - - // Credentials values from the config file. Both aws_access_key_id and - // aws_secret_access_key must be provided together in the same file to be - // considered valid. The values will be ignored if not a complete group. - // aws_session_token is an optional field that can be provided if both of - // the other two fields are also provided. - // - // aws_access_key_id - // aws_secret_access_key - // aws_session_token - Creds credentials.Value - - CredentialSource string - CredentialProcess string - WebIdentityTokenFile string - - SSOAccountID string - SSORegion string - SSORoleName string - SSOStartURL string - - RoleARN string - RoleSessionName string - ExternalID string - MFASerial string - AssumeRoleDuration *time.Duration - - SourceProfileName string - SourceProfile *sharedConfig - - // Region is the region the SDK should use for looking up AWS service - // endpoints and signing requests. - // - // region - Region string - - // CustomCABundle is the file path to a PEM file the SDK will read and - // use to configure the HTTP transport with additional CA certs that are - // not present in the platforms default CA store. - // - // This value will be ignored if the file does not exist. - // - // ca_bundle - CustomCABundle string - - // EnableEndpointDiscovery can be enabled in the shared config by setting - // endpoint_discovery_enabled to true - // - // endpoint_discovery_enabled = true - EnableEndpointDiscovery *bool - - // CSM Options - CSMEnabled *bool - CSMHost string - CSMPort string - CSMClientID string - - // Specifies the Regional Endpoint flag for the SDK to resolve the endpoint for a service - // - // sts_regional_endpoints = regional - // This can take value as `LegacySTSEndpoint` or `RegionalSTSEndpoint` - STSRegionalEndpoint endpoints.STSRegionalEndpoint - - // Specifies the Regional Endpoint flag for the SDK to resolve the endpoint for a service - // - // s3_us_east_1_regional_endpoint = regional - // This can take value as `LegacyS3UsEast1Endpoint` or `RegionalS3UsEast1Endpoint` - S3UsEast1RegionalEndpoint endpoints.S3UsEast1RegionalEndpoint - - // Specifies if the S3 service should allow ARNs to direct the region - // the client's requests are sent to. - // - // s3_use_arn_region=true - S3UseARNRegion bool -} - -type sharedConfigFile struct { - Filename string - IniData ini.Sections -} - -// loadSharedConfig retrieves the configuration from the list of files using -// the profile provided. The order the files are listed will determine -// precedence. Values in subsequent files will overwrite values defined in -// earlier files. -// -// For example, given two files A and B. Both define credentials. If the order -// of the files are A then B, B's credential values will be used instead of -// A's. -// -// See sharedConfig.setFromFile for information how the config files -// will be loaded. -func loadSharedConfig(profile string, filenames []string, exOpts bool) (sharedConfig, error) { - if len(profile) == 0 { - profile = DefaultSharedConfigProfile - } - - files, err := loadSharedConfigIniFiles(filenames) - if err != nil { - return sharedConfig{}, err - } - - cfg := sharedConfig{} - profiles := map[string]struct{}{} - if err = cfg.setFromIniFiles(profiles, profile, files, exOpts); err != nil { - return sharedConfig{}, err - } - - return cfg, nil -} - -func loadSharedConfigIniFiles(filenames []string) ([]sharedConfigFile, error) { - files := make([]sharedConfigFile, 0, len(filenames)) - - for _, filename := range filenames { - sections, err := ini.OpenFile(filename) - if aerr, ok := err.(awserr.Error); ok && aerr.Code() == ini.ErrCodeUnableToReadFile { - // Skip files which can't be opened and read for whatever reason - continue - } else if err != nil { - return nil, SharedConfigLoadError{Filename: filename, Err: err} - } - - files = append(files, sharedConfigFile{ - Filename: filename, IniData: sections, - }) - } - - return files, nil -} - -func (cfg *sharedConfig) setFromIniFiles(profiles map[string]struct{}, profile string, files []sharedConfigFile, exOpts bool) error { - cfg.Profile = profile - - // Trim files from the list that don't exist. - var skippedFiles int - var profileNotFoundErr error - for _, f := range files { - if err := cfg.setFromIniFile(profile, f, exOpts); err != nil { - if _, ok := err.(SharedConfigProfileNotExistsError); ok { - // Ignore profiles not defined in individual files. - profileNotFoundErr = err - skippedFiles++ - continue - } - return err - } - } - if skippedFiles == len(files) { - // If all files were skipped because the profile is not found, return - // the original profile not found error. - return profileNotFoundErr - } - - if _, ok := profiles[profile]; ok { - // if this is the second instance of the profile the Assume Role - // options must be cleared because they are only valid for the - // first reference of a profile. The self linked instance of the - // profile only have credential provider options. - cfg.clearAssumeRoleOptions() - } else { - // First time a profile has been seen, It must either be a assume role - // credentials, or SSO. Assert if the credential type requires a role ARN, - // the ARN is also set, or validate that the SSO configuration is complete. - if err := cfg.validateCredentialsConfig(profile); err != nil { - return err - } - } - profiles[profile] = struct{}{} - - if err := cfg.validateCredentialType(); err != nil { - return err - } - - // Link source profiles for assume roles - if len(cfg.SourceProfileName) != 0 { - // Linked profile via source_profile ignore credential provider - // options, the source profile must provide the credentials. - cfg.clearCredentialOptions() - - srcCfg := &sharedConfig{} - err := srcCfg.setFromIniFiles(profiles, cfg.SourceProfileName, files, exOpts) - if err != nil { - // SourceProfile that doesn't exist is an error in configuration. - if _, ok := err.(SharedConfigProfileNotExistsError); ok { - err = SharedConfigAssumeRoleError{ - RoleARN: cfg.RoleARN, - SourceProfile: cfg.SourceProfileName, - } - } - return err - } - - if !srcCfg.hasCredentials() { - return SharedConfigAssumeRoleError{ - RoleARN: cfg.RoleARN, - SourceProfile: cfg.SourceProfileName, - } - } - - cfg.SourceProfile = srcCfg - } - - return nil -} - -// setFromFile loads the configuration from the file using the profile -// provided. A sharedConfig pointer type value is used so that multiple config -// file loadings can be chained. -// -// Only loads complete logically grouped values, and will not set fields in cfg -// for incomplete grouped values in the config. Such as credentials. For -// example if a config file only includes aws_access_key_id but no -// aws_secret_access_key the aws_access_key_id will be ignored. -func (cfg *sharedConfig) setFromIniFile(profile string, file sharedConfigFile, exOpts bool) error { - section, ok := file.IniData.GetSection(profile) - if !ok { - // Fallback to to alternate profile name: profile - section, ok = file.IniData.GetSection(fmt.Sprintf("profile %s", profile)) - if !ok { - return SharedConfigProfileNotExistsError{Profile: profile, Err: nil} - } - } - - if exOpts { - // Assume Role Parameters - updateString(&cfg.RoleARN, section, roleArnKey) - updateString(&cfg.ExternalID, section, externalIDKey) - updateString(&cfg.MFASerial, section, mfaSerialKey) - updateString(&cfg.RoleSessionName, section, roleSessionNameKey) - updateString(&cfg.SourceProfileName, section, sourceProfileKey) - updateString(&cfg.CredentialSource, section, credentialSourceKey) - updateString(&cfg.Region, section, regionKey) - updateString(&cfg.CustomCABundle, section, customCABundleKey) - - if section.Has(roleDurationSecondsKey) { - d := time.Duration(section.Int(roleDurationSecondsKey)) * time.Second - cfg.AssumeRoleDuration = &d - } - - if v := section.String(stsRegionalEndpointSharedKey); len(v) != 0 { - sre, err := endpoints.GetSTSRegionalEndpoint(v) - if err != nil { - return fmt.Errorf("failed to load %s from shared config, %s, %v", - stsRegionalEndpointSharedKey, file.Filename, err) - } - cfg.STSRegionalEndpoint = sre - } - - if v := section.String(s3UsEast1RegionalSharedKey); len(v) != 0 { - sre, err := endpoints.GetS3UsEast1RegionalEndpoint(v) - if err != nil { - return fmt.Errorf("failed to load %s from shared config, %s, %v", - s3UsEast1RegionalSharedKey, file.Filename, err) - } - cfg.S3UsEast1RegionalEndpoint = sre - } - - // AWS Single Sign-On (AWS SSO) - updateString(&cfg.SSOAccountID, section, ssoAccountIDKey) - updateString(&cfg.SSORegion, section, ssoRegionKey) - updateString(&cfg.SSORoleName, section, ssoRoleNameKey) - updateString(&cfg.SSOStartURL, section, ssoStartURL) - } - - updateString(&cfg.CredentialProcess, section, credentialProcessKey) - updateString(&cfg.WebIdentityTokenFile, section, webIdentityTokenFileKey) - - // Shared Credentials - creds := credentials.Value{ - AccessKeyID: section.String(accessKeyIDKey), - SecretAccessKey: section.String(secretAccessKey), - SessionToken: section.String(sessionTokenKey), - ProviderName: fmt.Sprintf("SharedConfigCredentials: %s", file.Filename), - } - if creds.HasKeys() { - cfg.Creds = creds - } - - // Endpoint discovery - updateBoolPtr(&cfg.EnableEndpointDiscovery, section, enableEndpointDiscoveryKey) - - // CSM options - updateBoolPtr(&cfg.CSMEnabled, section, csmEnabledKey) - updateString(&cfg.CSMHost, section, csmHostKey) - updateString(&cfg.CSMPort, section, csmPortKey) - updateString(&cfg.CSMClientID, section, csmClientIDKey) - - updateBool(&cfg.S3UseARNRegion, section, s3UseARNRegionKey) - - return nil -} - -func (cfg *sharedConfig) validateCredentialsConfig(profile string) error { - if err := cfg.validateCredentialsRequireARN(profile); err != nil { - return err - } - - return nil -} - -func (cfg *sharedConfig) validateCredentialsRequireARN(profile string) error { - var credSource string - - switch { - case len(cfg.SourceProfileName) != 0: - credSource = sourceProfileKey - case len(cfg.CredentialSource) != 0: - credSource = credentialSourceKey - case len(cfg.WebIdentityTokenFile) != 0: - credSource = webIdentityTokenFileKey - } - - if len(credSource) != 0 && len(cfg.RoleARN) == 0 { - return CredentialRequiresARNError{ - Type: credSource, - Profile: profile, - } - } - - return nil -} - -func (cfg *sharedConfig) validateCredentialType() error { - // Only one or no credential type can be defined. - if !oneOrNone( - len(cfg.SourceProfileName) != 0, - len(cfg.CredentialSource) != 0, - len(cfg.CredentialProcess) != 0, - len(cfg.WebIdentityTokenFile) != 0, - cfg.hasSSOConfiguration(), - ) { - return ErrSharedConfigSourceCollision - } - - return nil -} - -func (cfg *sharedConfig) validateSSOConfiguration() error { - if !cfg.hasSSOConfiguration() { - return nil - } - - var missing []string - if len(cfg.SSOAccountID) == 0 { - missing = append(missing, ssoAccountIDKey) - } - - if len(cfg.SSORegion) == 0 { - missing = append(missing, ssoRegionKey) - } - - if len(cfg.SSORoleName) == 0 { - missing = append(missing, ssoRoleNameKey) - } - - if len(cfg.SSOStartURL) == 0 { - missing = append(missing, ssoStartURL) - } - - if len(missing) > 0 { - return fmt.Errorf("profile %q is configured to use SSO but is missing required configuration: %s", - cfg.Profile, strings.Join(missing, ", ")) - } - - return nil -} - -func (cfg *sharedConfig) hasCredentials() bool { - switch { - case len(cfg.SourceProfileName) != 0: - case len(cfg.CredentialSource) != 0: - case len(cfg.CredentialProcess) != 0: - case len(cfg.WebIdentityTokenFile) != 0: - case cfg.hasSSOConfiguration(): - case cfg.Creds.HasKeys(): - default: - return false - } - - return true -} - -func (cfg *sharedConfig) clearCredentialOptions() { - cfg.CredentialSource = "" - cfg.CredentialProcess = "" - cfg.WebIdentityTokenFile = "" - cfg.Creds = credentials.Value{} -} - -func (cfg *sharedConfig) clearAssumeRoleOptions() { - cfg.RoleARN = "" - cfg.ExternalID = "" - cfg.MFASerial = "" - cfg.RoleSessionName = "" - cfg.SourceProfileName = "" -} - -func (cfg *sharedConfig) hasSSOConfiguration() bool { - switch { - case len(cfg.SSOAccountID) != 0: - case len(cfg.SSORegion) != 0: - case len(cfg.SSORoleName) != 0: - case len(cfg.SSOStartURL) != 0: - default: - return false - } - return true -} - -func oneOrNone(bs ...bool) bool { - var count int - - for _, b := range bs { - if b { - count++ - if count > 1 { - return false - } - } - } - - return true -} - -// updateString will only update the dst with the value in the section key, key -// is present in the section. -func updateString(dst *string, section ini.Section, key string) { - if !section.Has(key) { - return - } - *dst = section.String(key) -} - -// updateBool will only update the dst with the value in the section key, key -// is present in the section. -func updateBool(dst *bool, section ini.Section, key string) { - if !section.Has(key) { - return - } - *dst = section.Bool(key) -} - -// updateBoolPtr will only update the dst with the value in the section key, -// key is present in the section. -func updateBoolPtr(dst **bool, section ini.Section, key string) { - if !section.Has(key) { - return - } - *dst = new(bool) - **dst = section.Bool(key) -} - -// SharedConfigLoadError is an error for the shared config file failed to load. -type SharedConfigLoadError struct { - Filename string - Err error -} - -// Code is the short id of the error. -func (e SharedConfigLoadError) Code() string { - return "SharedConfigLoadError" -} - -// Message is the description of the error -func (e SharedConfigLoadError) Message() string { - return fmt.Sprintf("failed to load config file, %s", e.Filename) -} - -// OrigErr is the underlying error that caused the failure. -func (e SharedConfigLoadError) OrigErr() error { - return e.Err -} - -// Error satisfies the error interface. -func (e SharedConfigLoadError) Error() string { - return awserr.SprintError(e.Code(), e.Message(), "", e.Err) -} - -// SharedConfigProfileNotExistsError is an error for the shared config when -// the profile was not find in the config file. -type SharedConfigProfileNotExistsError struct { - Profile string - Err error -} - -// Code is the short id of the error. -func (e SharedConfigProfileNotExistsError) Code() string { - return "SharedConfigProfileNotExistsError" -} - -// Message is the description of the error -func (e SharedConfigProfileNotExistsError) Message() string { - return fmt.Sprintf("failed to get profile, %s", e.Profile) -} - -// OrigErr is the underlying error that caused the failure. -func (e SharedConfigProfileNotExistsError) OrigErr() error { - return e.Err -} - -// Error satisfies the error interface. -func (e SharedConfigProfileNotExistsError) Error() string { - return awserr.SprintError(e.Code(), e.Message(), "", e.Err) -} - -// SharedConfigAssumeRoleError is an error for the shared config when the -// profile contains assume role information, but that information is invalid -// or not complete. -type SharedConfigAssumeRoleError struct { - RoleARN string - SourceProfile string -} - -// Code is the short id of the error. -func (e SharedConfigAssumeRoleError) Code() string { - return "SharedConfigAssumeRoleError" -} - -// Message is the description of the error -func (e SharedConfigAssumeRoleError) Message() string { - return fmt.Sprintf( - "failed to load assume role for %s, source profile %s has no shared credentials", - e.RoleARN, e.SourceProfile, - ) -} - -// OrigErr is the underlying error that caused the failure. -func (e SharedConfigAssumeRoleError) OrigErr() error { - return nil -} - -// Error satisfies the error interface. -func (e SharedConfigAssumeRoleError) Error() string { - return awserr.SprintError(e.Code(), e.Message(), "", nil) -} - -// CredentialRequiresARNError provides the error for shared config credentials -// that are incorrectly configured in the shared config or credentials file. -type CredentialRequiresARNError struct { - // type of credentials that were configured. - Type string - - // Profile name the credentials were in. - Profile string -} - -// Code is the short id of the error. -func (e CredentialRequiresARNError) Code() string { - return "CredentialRequiresARNError" -} - -// Message is the description of the error -func (e CredentialRequiresARNError) Message() string { - return fmt.Sprintf( - "credential type %s requires role_arn, profile %s", - e.Type, e.Profile, - ) -} - -// OrigErr is the underlying error that caused the failure. -func (e CredentialRequiresARNError) OrigErr() error { - return nil -} - -// Error satisfies the error interface. -func (e CredentialRequiresARNError) Error() string { - return awserr.SprintError(e.Code(), e.Message(), "", nil) -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/header_rules.go b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/header_rules.go deleted file mode 100644 index 07ea799..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/header_rules.go +++ /dev/null @@ -1,81 +0,0 @@ -package v4 - -import ( - "github.com/aws/aws-sdk-go/internal/strings" -) - -// validator houses a set of rule needed for validation of a -// string value -type rules []rule - -// rule interface allows for more flexible rules and just simply -// checks whether or not a value adheres to that rule -type rule interface { - IsValid(value string) bool -} - -// IsValid will iterate through all rules and see if any rules -// apply to the value and supports nested rules -func (r rules) IsValid(value string) bool { - for _, rule := range r { - if rule.IsValid(value) { - return true - } - } - return false -} - -// mapRule generic rule for maps -type mapRule map[string]struct{} - -// IsValid for the map rule satisfies whether it exists in the map -func (m mapRule) IsValid(value string) bool { - _, ok := m[value] - return ok -} - -// whitelist is a generic rule for whitelisting -type whitelist struct { - rule -} - -// IsValid for whitelist checks if the value is within the whitelist -func (w whitelist) IsValid(value string) bool { - return w.rule.IsValid(value) -} - -// blacklist is a generic rule for blacklisting -type blacklist struct { - rule -} - -// IsValid for whitelist checks if the value is within the whitelist -func (b blacklist) IsValid(value string) bool { - return !b.rule.IsValid(value) -} - -type patterns []string - -// IsValid for patterns checks each pattern and returns if a match has -// been found -func (p patterns) IsValid(value string) bool { - for _, pattern := range p { - if strings.HasPrefixFold(value, pattern) { - return true - } - } - return false -} - -// inclusiveRules rules allow for rules to depend on one another -type inclusiveRules []rule - -// IsValid will return true if all rules are true -func (r inclusiveRules) IsValid(value string) bool { - for _, rule := range r { - if !rule.IsValid(value) { - return false - } - } - return true -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/options.go b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/options.go deleted file mode 100644 index 6aa2ed2..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/options.go +++ /dev/null @@ -1,7 +0,0 @@ -package v4 - -// WithUnsignedPayload will enable and set the UnsignedPayload field to -// true of the signer. -func WithUnsignedPayload(v4 *Signer) { - v4.UnsignedPayload = true -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.5.go b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.5.go deleted file mode 100644 index f35fc86..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.5.go +++ /dev/null @@ -1,13 +0,0 @@ -// +build !go1.7 - -package v4 - -import ( - "net/http" - - "github.com/aws/aws-sdk-go/aws" -) - -func requestContext(r *http.Request) aws.Context { - return aws.BackgroundContext() -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.7.go b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.7.go deleted file mode 100644 index fed5c85..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/request_context_go1.7.go +++ /dev/null @@ -1,13 +0,0 @@ -// +build go1.7 - -package v4 - -import ( - "net/http" - - "github.com/aws/aws-sdk-go/aws" -) - -func requestContext(r *http.Request) aws.Context { - return r.Context() -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/stream.go b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/stream.go deleted file mode 100644 index 02cbd97..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/stream.go +++ /dev/null @@ -1,63 +0,0 @@ -package v4 - -import ( - "encoding/hex" - "strings" - "time" - - "github.com/aws/aws-sdk-go/aws/credentials" -) - -type credentialValueProvider interface { - Get() (credentials.Value, error) -} - -// StreamSigner implements signing of event stream encoded payloads -type StreamSigner struct { - region string - service string - - credentials credentialValueProvider - - prevSig []byte -} - -// NewStreamSigner creates a SigV4 signer used to sign Event Stream encoded messages -func NewStreamSigner(region, service string, seedSignature []byte, credentials *credentials.Credentials) *StreamSigner { - return &StreamSigner{ - region: region, - service: service, - credentials: credentials, - prevSig: seedSignature, - } -} - -// GetSignature takes an event stream encoded headers and payload and returns a signature -func (s *StreamSigner) GetSignature(headers, payload []byte, date time.Time) ([]byte, error) { - credValue, err := s.credentials.Get() - if err != nil { - return nil, err - } - - sigKey := deriveSigningKey(s.region, s.service, credValue.SecretAccessKey, date) - - keyPath := buildSigningScope(s.region, s.service, date) - - stringToSign := buildEventStreamStringToSign(headers, payload, s.prevSig, keyPath, date) - - signature := hmacSHA256(sigKey, []byte(stringToSign)) - s.prevSig = signature - - return signature, nil -} - -func buildEventStreamStringToSign(headers, payload, prevSig []byte, scope string, date time.Time) string { - return strings.Join([]string{ - "AWS4-HMAC-SHA256-PAYLOAD", - formatTime(date), - scope, - hex.EncodeToString(prevSig), - hex.EncodeToString(hashSHA256(headers)), - hex.EncodeToString(hashSHA256(payload)), - }, "\n") -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/uri_path.go b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/uri_path.go deleted file mode 100644 index bd082e9..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/uri_path.go +++ /dev/null @@ -1,24 +0,0 @@ -// +build go1.5 - -package v4 - -import ( - "net/url" - "strings" -) - -func getURIPath(u *url.URL) string { - var uri string - - if len(u.Opaque) > 0 { - uri = "/" + strings.Join(strings.Split(u.Opaque, "/")[3:], "/") - } else { - uri = u.EscapedPath() - } - - if len(uri) == 0 { - uri = "/" - } - - return uri -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go deleted file mode 100644 index d71f7b3..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go +++ /dev/null @@ -1,846 +0,0 @@ -// Package v4 implements signing for AWS V4 signer -// -// Provides request signing for request that need to be signed with -// AWS V4 Signatures. -// -// Standalone Signer -// -// Generally using the signer outside of the SDK should not require any additional -// logic when using Go v1.5 or higher. The signer does this by taking advantage -// of the URL.EscapedPath method. If your request URI requires additional escaping -// you many need to use the URL.Opaque to define what the raw URI should be sent -// to the service as. -// -// The signer will first check the URL.Opaque field, and use its value if set. -// The signer does require the URL.Opaque field to be set in the form of: -// -// "///" -// -// // e.g. -// "//example.com/some/path" -// -// The leading "//" and hostname are required or the URL.Opaque escaping will -// not work correctly. -// -// If URL.Opaque is not set the signer will fallback to the URL.EscapedPath() -// method and using the returned value. If you're using Go v1.4 you must set -// URL.Opaque if the URI path needs escaping. If URL.Opaque is not set with -// Go v1.5 the signer will fallback to URL.Path. -// -// AWS v4 signature validation requires that the canonical string's URI path -// element must be the URI escaped form of the HTTP request's path. -// http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html -// -// The Go HTTP client will perform escaping automatically on the request. Some -// of these escaping may cause signature validation errors because the HTTP -// request differs from the URI path or query that the signature was generated. -// https://golang.org/pkg/net/url/#URL.EscapedPath -// -// Because of this, it is recommended that when using the signer outside of the -// SDK that explicitly escaping the request prior to being signed is preferable, -// and will help prevent signature validation errors. This can be done by setting -// the URL.Opaque or URL.RawPath. The SDK will use URL.Opaque first and then -// call URL.EscapedPath() if Opaque is not set. -// -// If signing a request intended for HTTP2 server, and you're using Go 1.6.2 -// through 1.7.4 you should use the URL.RawPath as the pre-escaped form of the -// request URL. https://github.com/golang/go/issues/16847 points to a bug in -// Go pre 1.8 that fails to make HTTP2 requests using absolute URL in the HTTP -// message. URL.Opaque generally will force Go to make requests with absolute URL. -// URL.RawPath does not do this, but RawPath must be a valid escaping of Path -// or url.EscapedPath will ignore the RawPath escaping. -// -// Test `TestStandaloneSign` provides a complete example of using the signer -// outside of the SDK and pre-escaping the URI path. -package v4 - -import ( - "crypto/hmac" - "crypto/sha256" - "encoding/hex" - "fmt" - "io" - "io/ioutil" - "net/http" - "net/url" - "sort" - "strconv" - "strings" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/internal/sdkio" - "github.com/aws/aws-sdk-go/private/protocol/rest" -) - -const ( - authorizationHeader = "Authorization" - authHeaderSignatureElem = "Signature=" - signatureQueryKey = "X-Amz-Signature" - - authHeaderPrefix = "AWS4-HMAC-SHA256" - timeFormat = "20060102T150405Z" - shortTimeFormat = "20060102" - awsV4Request = "aws4_request" - - // emptyStringSHA256 is a SHA256 of an empty string - emptyStringSHA256 = `e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855` -) - -var ignoredHeaders = rules{ - blacklist{ - mapRule{ - authorizationHeader: struct{}{}, - "User-Agent": struct{}{}, - "X-Amzn-Trace-Id": struct{}{}, - }, - }, -} - -// requiredSignedHeaders is a whitelist for build canonical headers. -var requiredSignedHeaders = rules{ - whitelist{ - mapRule{ - "Cache-Control": struct{}{}, - "Content-Disposition": struct{}{}, - "Content-Encoding": struct{}{}, - "Content-Language": struct{}{}, - "Content-Md5": struct{}{}, - "Content-Type": struct{}{}, - "Expires": struct{}{}, - "If-Match": struct{}{}, - "If-Modified-Since": struct{}{}, - "If-None-Match": struct{}{}, - "If-Unmodified-Since": struct{}{}, - "Range": struct{}{}, - "X-Amz-Acl": struct{}{}, - "X-Amz-Copy-Source": struct{}{}, - "X-Amz-Copy-Source-If-Match": struct{}{}, - "X-Amz-Copy-Source-If-Modified-Since": struct{}{}, - "X-Amz-Copy-Source-If-None-Match": struct{}{}, - "X-Amz-Copy-Source-If-Unmodified-Since": struct{}{}, - "X-Amz-Copy-Source-Range": struct{}{}, - "X-Amz-Copy-Source-Server-Side-Encryption-Customer-Algorithm": struct{}{}, - "X-Amz-Copy-Source-Server-Side-Encryption-Customer-Key": struct{}{}, - "X-Amz-Copy-Source-Server-Side-Encryption-Customer-Key-Md5": struct{}{}, - "X-Amz-Grant-Full-control": struct{}{}, - "X-Amz-Grant-Read": struct{}{}, - "X-Amz-Grant-Read-Acp": struct{}{}, - "X-Amz-Grant-Write": struct{}{}, - "X-Amz-Grant-Write-Acp": struct{}{}, - "X-Amz-Metadata-Directive": struct{}{}, - "X-Amz-Mfa": struct{}{}, - "X-Amz-Request-Payer": struct{}{}, - "X-Amz-Server-Side-Encryption": struct{}{}, - "X-Amz-Server-Side-Encryption-Aws-Kms-Key-Id": struct{}{}, - "X-Amz-Server-Side-Encryption-Customer-Algorithm": struct{}{}, - "X-Amz-Server-Side-Encryption-Customer-Key": struct{}{}, - "X-Amz-Server-Side-Encryption-Customer-Key-Md5": struct{}{}, - "X-Amz-Storage-Class": struct{}{}, - "X-Amz-Tagging": struct{}{}, - "X-Amz-Website-Redirect-Location": struct{}{}, - "X-Amz-Content-Sha256": struct{}{}, - }, - }, - patterns{"X-Amz-Meta-"}, -} - -// allowedHoisting is a whitelist for build query headers. The boolean value -// represents whether or not it is a pattern. -var allowedQueryHoisting = inclusiveRules{ - blacklist{requiredSignedHeaders}, - patterns{"X-Amz-"}, -} - -// Signer applies AWS v4 signing to given request. Use this to sign requests -// that need to be signed with AWS V4 Signatures. -type Signer struct { - // The authentication credentials the request will be signed against. - // This value must be set to sign requests. - Credentials *credentials.Credentials - - // Sets the log level the signer should use when reporting information to - // the logger. If the logger is nil nothing will be logged. See - // aws.LogLevelType for more information on available logging levels - // - // By default nothing will be logged. - Debug aws.LogLevelType - - // The logger loging information will be written to. If there the logger - // is nil, nothing will be logged. - Logger aws.Logger - - // Disables the Signer's moving HTTP header key/value pairs from the HTTP - // request header to the request's query string. This is most commonly used - // with pre-signed requests preventing headers from being added to the - // request's query string. - DisableHeaderHoisting bool - - // Disables the automatic escaping of the URI path of the request for the - // siganture's canonical string's path. For services that do not need additional - // escaping then use this to disable the signer escaping the path. - // - // S3 is an example of a service that does not need additional escaping. - // - // http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html - DisableURIPathEscaping bool - - // Disables the automatical setting of the HTTP request's Body field with the - // io.ReadSeeker passed in to the signer. This is useful if you're using a - // custom wrapper around the body for the io.ReadSeeker and want to preserve - // the Body value on the Request.Body. - // - // This does run the risk of signing a request with a body that will not be - // sent in the request. Need to ensure that the underlying data of the Body - // values are the same. - DisableRequestBodyOverwrite bool - - // currentTimeFn returns the time value which represents the current time. - // This value should only be used for testing. If it is nil the default - // time.Now will be used. - currentTimeFn func() time.Time - - // UnsignedPayload will prevent signing of the payload. This will only - // work for services that have support for this. - UnsignedPayload bool -} - -// NewSigner returns a Signer pointer configured with the credentials and optional -// option values provided. If not options are provided the Signer will use its -// default configuration. -func NewSigner(credentials *credentials.Credentials, options ...func(*Signer)) *Signer { - v4 := &Signer{ - Credentials: credentials, - } - - for _, option := range options { - option(v4) - } - - return v4 -} - -type signingCtx struct { - ServiceName string - Region string - Request *http.Request - Body io.ReadSeeker - Query url.Values - Time time.Time - ExpireTime time.Duration - SignedHeaderVals http.Header - - DisableURIPathEscaping bool - - credValues credentials.Value - isPresign bool - unsignedPayload bool - - bodyDigest string - signedHeaders string - canonicalHeaders string - canonicalString string - credentialString string - stringToSign string - signature string - authorization string -} - -// Sign signs AWS v4 requests with the provided body, service name, region the -// request is made to, and time the request is signed at. The signTime allows -// you to specify that a request is signed for the future, and cannot be -// used until then. -// -// Returns a list of HTTP headers that were included in the signature or an -// error if signing the request failed. Generally for signed requests this value -// is not needed as the full request context will be captured by the http.Request -// value. It is included for reference though. -// -// Sign will set the request's Body to be the `body` parameter passed in. If -// the body is not already an io.ReadCloser, it will be wrapped within one. If -// a `nil` body parameter passed to Sign, the request's Body field will be -// also set to nil. Its important to note that this functionality will not -// change the request's ContentLength of the request. -// -// Sign differs from Presign in that it will sign the request using HTTP -// header values. This type of signing is intended for http.Request values that -// will not be shared, or are shared in a way the header values on the request -// will not be lost. -// -// The requests body is an io.ReadSeeker so the SHA256 of the body can be -// generated. To bypass the signer computing the hash you can set the -// "X-Amz-Content-Sha256" header with a precomputed value. The signer will -// only compute the hash if the request header value is empty. -func (v4 Signer) Sign(r *http.Request, body io.ReadSeeker, service, region string, signTime time.Time) (http.Header, error) { - return v4.signWithBody(r, body, service, region, 0, false, signTime) -} - -// Presign signs AWS v4 requests with the provided body, service name, region -// the request is made to, and time the request is signed at. The signTime -// allows you to specify that a request is signed for the future, and cannot -// be used until then. -// -// Returns a list of HTTP headers that were included in the signature or an -// error if signing the request failed. For presigned requests these headers -// and their values must be included on the HTTP request when it is made. This -// is helpful to know what header values need to be shared with the party the -// presigned request will be distributed to. -// -// Presign differs from Sign in that it will sign the request using query string -// instead of header values. This allows you to share the Presigned Request's -// URL with third parties, or distribute it throughout your system with minimal -// dependencies. -// -// Presign also takes an exp value which is the duration the -// signed request will be valid after the signing time. This is allows you to -// set when the request will expire. -// -// The requests body is an io.ReadSeeker so the SHA256 of the body can be -// generated. To bypass the signer computing the hash you can set the -// "X-Amz-Content-Sha256" header with a precomputed value. The signer will -// only compute the hash if the request header value is empty. -// -// Presigning a S3 request will not compute the body's SHA256 hash by default. -// This is done due to the general use case for S3 presigned URLs is to share -// PUT/GET capabilities. If you would like to include the body's SHA256 in the -// presigned request's signature you can set the "X-Amz-Content-Sha256" -// HTTP header and that will be included in the request's signature. -func (v4 Signer) Presign(r *http.Request, body io.ReadSeeker, service, region string, exp time.Duration, signTime time.Time) (http.Header, error) { - return v4.signWithBody(r, body, service, region, exp, true, signTime) -} - -func (v4 Signer) signWithBody(r *http.Request, body io.ReadSeeker, service, region string, exp time.Duration, isPresign bool, signTime time.Time) (http.Header, error) { - currentTimeFn := v4.currentTimeFn - if currentTimeFn == nil { - currentTimeFn = time.Now - } - - ctx := &signingCtx{ - Request: r, - Body: body, - Query: r.URL.Query(), - Time: signTime, - ExpireTime: exp, - isPresign: isPresign, - ServiceName: service, - Region: region, - DisableURIPathEscaping: v4.DisableURIPathEscaping, - unsignedPayload: v4.UnsignedPayload, - } - - for key := range ctx.Query { - sort.Strings(ctx.Query[key]) - } - - if ctx.isRequestSigned() { - ctx.Time = currentTimeFn() - ctx.handlePresignRemoval() - } - - var err error - ctx.credValues, err = v4.Credentials.GetWithContext(requestContext(r)) - if err != nil { - return http.Header{}, err - } - - ctx.sanitizeHostForHeader() - ctx.assignAmzQueryValues() - if err := ctx.build(v4.DisableHeaderHoisting); err != nil { - return nil, err - } - - // If the request is not presigned the body should be attached to it. This - // prevents the confusion of wanting to send a signed request without - // the body the request was signed for attached. - if !(v4.DisableRequestBodyOverwrite || ctx.isPresign) { - var reader io.ReadCloser - if body != nil { - var ok bool - if reader, ok = body.(io.ReadCloser); !ok { - reader = ioutil.NopCloser(body) - } - } - r.Body = reader - } - - if v4.Debug.Matches(aws.LogDebugWithSigning) { - v4.logSigningInfo(ctx) - } - - return ctx.SignedHeaderVals, nil -} - -func (ctx *signingCtx) sanitizeHostForHeader() { - request.SanitizeHostForHeader(ctx.Request) -} - -func (ctx *signingCtx) handlePresignRemoval() { - if !ctx.isPresign { - return - } - - // The credentials have expired for this request. The current signing - // is invalid, and needs to be request because the request will fail. - ctx.removePresign() - - // Update the request's query string to ensure the values stays in - // sync in the case retrieving the new credentials fails. - ctx.Request.URL.RawQuery = ctx.Query.Encode() -} - -func (ctx *signingCtx) assignAmzQueryValues() { - if ctx.isPresign { - ctx.Query.Set("X-Amz-Algorithm", authHeaderPrefix) - if ctx.credValues.SessionToken != "" { - ctx.Query.Set("X-Amz-Security-Token", ctx.credValues.SessionToken) - } else { - ctx.Query.Del("X-Amz-Security-Token") - } - - return - } - - if ctx.credValues.SessionToken != "" { - ctx.Request.Header.Set("X-Amz-Security-Token", ctx.credValues.SessionToken) - } -} - -// SignRequestHandler is a named request handler the SDK will use to sign -// service client request with using the V4 signature. -var SignRequestHandler = request.NamedHandler{ - Name: "v4.SignRequestHandler", Fn: SignSDKRequest, -} - -// SignSDKRequest signs an AWS request with the V4 signature. This -// request handler should only be used with the SDK's built in service client's -// API operation requests. -// -// This function should not be used on its on its own, but in conjunction with -// an AWS service client's API operation call. To sign a standalone request -// not created by a service client's API operation method use the "Sign" or -// "Presign" functions of the "Signer" type. -// -// If the credentials of the request's config are set to -// credentials.AnonymousCredentials the request will not be signed. -func SignSDKRequest(req *request.Request) { - SignSDKRequestWithCurrentTime(req, time.Now) -} - -// BuildNamedHandler will build a generic handler for signing. -func BuildNamedHandler(name string, opts ...func(*Signer)) request.NamedHandler { - return request.NamedHandler{ - Name: name, - Fn: func(req *request.Request) { - SignSDKRequestWithCurrentTime(req, time.Now, opts...) - }, - } -} - -// SignSDKRequestWithCurrentTime will sign the SDK's request using the time -// function passed in. Behaves the same as SignSDKRequest with the exception -// the request is signed with the value returned by the current time function. -func SignSDKRequestWithCurrentTime(req *request.Request, curTimeFn func() time.Time, opts ...func(*Signer)) { - // If the request does not need to be signed ignore the signing of the - // request if the AnonymousCredentials object is used. - if req.Config.Credentials == credentials.AnonymousCredentials { - return - } - - region := req.ClientInfo.SigningRegion - if region == "" { - region = aws.StringValue(req.Config.Region) - } - - name := req.ClientInfo.SigningName - if name == "" { - name = req.ClientInfo.ServiceName - } - - v4 := NewSigner(req.Config.Credentials, func(v4 *Signer) { - v4.Debug = req.Config.LogLevel.Value() - v4.Logger = req.Config.Logger - v4.DisableHeaderHoisting = req.NotHoist - v4.currentTimeFn = curTimeFn - if name == "s3" { - // S3 service should not have any escaping applied - v4.DisableURIPathEscaping = true - } - // Prevents setting the HTTPRequest's Body. Since the Body could be - // wrapped in a custom io.Closer that we do not want to be stompped - // on top of by the signer. - v4.DisableRequestBodyOverwrite = true - }) - - for _, opt := range opts { - opt(v4) - } - - curTime := curTimeFn() - signedHeaders, err := v4.signWithBody(req.HTTPRequest, req.GetBody(), - name, region, req.ExpireTime, req.ExpireTime > 0, curTime, - ) - if err != nil { - req.Error = err - req.SignedHeaderVals = nil - return - } - - req.SignedHeaderVals = signedHeaders - req.LastSignedAt = curTime -} - -const logSignInfoMsg = `DEBUG: Request Signature: ----[ CANONICAL STRING ]----------------------------- -%s ----[ STRING TO SIGN ]-------------------------------- -%s%s ------------------------------------------------------` -const logSignedURLMsg = ` ----[ SIGNED URL ]------------------------------------ -%s` - -func (v4 *Signer) logSigningInfo(ctx *signingCtx) { - signedURLMsg := "" - if ctx.isPresign { - signedURLMsg = fmt.Sprintf(logSignedURLMsg, ctx.Request.URL.String()) - } - msg := fmt.Sprintf(logSignInfoMsg, ctx.canonicalString, ctx.stringToSign, signedURLMsg) - v4.Logger.Log(msg) -} - -func (ctx *signingCtx) build(disableHeaderHoisting bool) error { - ctx.buildTime() // no depends - ctx.buildCredentialString() // no depends - - if err := ctx.buildBodyDigest(); err != nil { - return err - } - - unsignedHeaders := ctx.Request.Header - if ctx.isPresign { - if !disableHeaderHoisting { - urlValues := url.Values{} - urlValues, unsignedHeaders = buildQuery(allowedQueryHoisting, unsignedHeaders) // no depends - for k := range urlValues { - ctx.Query[k] = urlValues[k] - } - } - } - - ctx.buildCanonicalHeaders(ignoredHeaders, unsignedHeaders) - ctx.buildCanonicalString() // depends on canon headers / signed headers - ctx.buildStringToSign() // depends on canon string - ctx.buildSignature() // depends on string to sign - - if ctx.isPresign { - ctx.Request.URL.RawQuery += "&" + signatureQueryKey + "=" + ctx.signature - } else { - parts := []string{ - authHeaderPrefix + " Credential=" + ctx.credValues.AccessKeyID + "/" + ctx.credentialString, - "SignedHeaders=" + ctx.signedHeaders, - authHeaderSignatureElem + ctx.signature, - } - ctx.Request.Header.Set(authorizationHeader, strings.Join(parts, ", ")) - } - - return nil -} - -// GetSignedRequestSignature attempts to extract the signature of the request. -// Returning an error if the request is unsigned, or unable to extract the -// signature. -func GetSignedRequestSignature(r *http.Request) ([]byte, error) { - - if auth := r.Header.Get(authorizationHeader); len(auth) != 0 { - ps := strings.Split(auth, ", ") - for _, p := range ps { - if idx := strings.Index(p, authHeaderSignatureElem); idx >= 0 { - sig := p[len(authHeaderSignatureElem):] - if len(sig) == 0 { - return nil, fmt.Errorf("invalid request signature authorization header") - } - return hex.DecodeString(sig) - } - } - } - - if sig := r.URL.Query().Get("X-Amz-Signature"); len(sig) != 0 { - return hex.DecodeString(sig) - } - - return nil, fmt.Errorf("request not signed") -} - -func (ctx *signingCtx) buildTime() { - if ctx.isPresign { - duration := int64(ctx.ExpireTime / time.Second) - ctx.Query.Set("X-Amz-Date", formatTime(ctx.Time)) - ctx.Query.Set("X-Amz-Expires", strconv.FormatInt(duration, 10)) - } else { - ctx.Request.Header.Set("X-Amz-Date", formatTime(ctx.Time)) - } -} - -func (ctx *signingCtx) buildCredentialString() { - ctx.credentialString = buildSigningScope(ctx.Region, ctx.ServiceName, ctx.Time) - - if ctx.isPresign { - ctx.Query.Set("X-Amz-Credential", ctx.credValues.AccessKeyID+"/"+ctx.credentialString) - } -} - -func buildQuery(r rule, header http.Header) (url.Values, http.Header) { - query := url.Values{} - unsignedHeaders := http.Header{} - for k, h := range header { - if r.IsValid(k) { - query[k] = h - } else { - unsignedHeaders[k] = h - } - } - - return query, unsignedHeaders -} -func (ctx *signingCtx) buildCanonicalHeaders(r rule, header http.Header) { - var headers []string - headers = append(headers, "host") - for k, v := range header { - if !r.IsValid(k) { - continue // ignored header - } - if ctx.SignedHeaderVals == nil { - ctx.SignedHeaderVals = make(http.Header) - } - - lowerCaseKey := strings.ToLower(k) - if _, ok := ctx.SignedHeaderVals[lowerCaseKey]; ok { - // include additional values - ctx.SignedHeaderVals[lowerCaseKey] = append(ctx.SignedHeaderVals[lowerCaseKey], v...) - continue - } - - headers = append(headers, lowerCaseKey) - ctx.SignedHeaderVals[lowerCaseKey] = v - } - sort.Strings(headers) - - ctx.signedHeaders = strings.Join(headers, ";") - - if ctx.isPresign { - ctx.Query.Set("X-Amz-SignedHeaders", ctx.signedHeaders) - } - - headerValues := make([]string, len(headers)) - for i, k := range headers { - if k == "host" { - if ctx.Request.Host != "" { - headerValues[i] = "host:" + ctx.Request.Host - } else { - headerValues[i] = "host:" + ctx.Request.URL.Host - } - } else { - headerValues[i] = k + ":" + - strings.Join(ctx.SignedHeaderVals[k], ",") - } - } - stripExcessSpaces(headerValues) - ctx.canonicalHeaders = strings.Join(headerValues, "\n") -} - -func (ctx *signingCtx) buildCanonicalString() { - ctx.Request.URL.RawQuery = strings.Replace(ctx.Query.Encode(), "+", "%20", -1) - - uri := getURIPath(ctx.Request.URL) - - if !ctx.DisableURIPathEscaping { - uri = rest.EscapePath(uri, false) - } - - ctx.canonicalString = strings.Join([]string{ - ctx.Request.Method, - uri, - ctx.Request.URL.RawQuery, - ctx.canonicalHeaders + "\n", - ctx.signedHeaders, - ctx.bodyDigest, - }, "\n") -} - -func (ctx *signingCtx) buildStringToSign() { - ctx.stringToSign = strings.Join([]string{ - authHeaderPrefix, - formatTime(ctx.Time), - ctx.credentialString, - hex.EncodeToString(hashSHA256([]byte(ctx.canonicalString))), - }, "\n") -} - -func (ctx *signingCtx) buildSignature() { - creds := deriveSigningKey(ctx.Region, ctx.ServiceName, ctx.credValues.SecretAccessKey, ctx.Time) - signature := hmacSHA256(creds, []byte(ctx.stringToSign)) - ctx.signature = hex.EncodeToString(signature) -} - -func (ctx *signingCtx) buildBodyDigest() error { - hash := ctx.Request.Header.Get("X-Amz-Content-Sha256") - if hash == "" { - includeSHA256Header := ctx.unsignedPayload || - ctx.ServiceName == "s3" || - ctx.ServiceName == "glacier" - - s3Presign := ctx.isPresign && ctx.ServiceName == "s3" - - if ctx.unsignedPayload || s3Presign { - hash = "UNSIGNED-PAYLOAD" - includeSHA256Header = !s3Presign - } else if ctx.Body == nil { - hash = emptyStringSHA256 - } else { - if !aws.IsReaderSeekable(ctx.Body) { - return fmt.Errorf("cannot use unseekable request body %T, for signed request with body", ctx.Body) - } - hashBytes, err := makeSha256Reader(ctx.Body) - if err != nil { - return err - } - hash = hex.EncodeToString(hashBytes) - } - - if includeSHA256Header { - ctx.Request.Header.Set("X-Amz-Content-Sha256", hash) - } - } - ctx.bodyDigest = hash - - return nil -} - -// isRequestSigned returns if the request is currently signed or presigned -func (ctx *signingCtx) isRequestSigned() bool { - if ctx.isPresign && ctx.Query.Get("X-Amz-Signature") != "" { - return true - } - if ctx.Request.Header.Get("Authorization") != "" { - return true - } - - return false -} - -// unsign removes signing flags for both signed and presigned requests. -func (ctx *signingCtx) removePresign() { - ctx.Query.Del("X-Amz-Algorithm") - ctx.Query.Del("X-Amz-Signature") - ctx.Query.Del("X-Amz-Security-Token") - ctx.Query.Del("X-Amz-Date") - ctx.Query.Del("X-Amz-Expires") - ctx.Query.Del("X-Amz-Credential") - ctx.Query.Del("X-Amz-SignedHeaders") -} - -func hmacSHA256(key []byte, data []byte) []byte { - hash := hmac.New(sha256.New, key) - hash.Write(data) - return hash.Sum(nil) -} - -func hashSHA256(data []byte) []byte { - hash := sha256.New() - hash.Write(data) - return hash.Sum(nil) -} - -func makeSha256Reader(reader io.ReadSeeker) (hashBytes []byte, err error) { - hash := sha256.New() - start, err := reader.Seek(0, sdkio.SeekCurrent) - if err != nil { - return nil, err - } - defer func() { - // ensure error is return if unable to seek back to start of payload. - _, err = reader.Seek(start, sdkio.SeekStart) - }() - - // Use CopyN to avoid allocating the 32KB buffer in io.Copy for bodies - // smaller than 32KB. Fall back to io.Copy if we fail to determine the size. - size, err := aws.SeekerLen(reader) - if err != nil { - io.Copy(hash, reader) - } else { - io.CopyN(hash, reader, size) - } - - return hash.Sum(nil), nil -} - -const doubleSpace = " " - -// stripExcessSpaces will rewrite the passed in slice's string values to not -// contain multiple side-by-side spaces. -func stripExcessSpaces(vals []string) { - var j, k, l, m, spaces int - for i, str := range vals { - // Trim trailing spaces - for j = len(str) - 1; j >= 0 && str[j] == ' '; j-- { - } - - // Trim leading spaces - for k = 0; k < j && str[k] == ' '; k++ { - } - str = str[k : j+1] - - // Strip multiple spaces. - j = strings.Index(str, doubleSpace) - if j < 0 { - vals[i] = str - continue - } - - buf := []byte(str) - for k, m, l = j, j, len(buf); k < l; k++ { - if buf[k] == ' ' { - if spaces == 0 { - // First space. - buf[m] = buf[k] - m++ - } - spaces++ - } else { - // End of multiple spaces. - spaces = 0 - buf[m] = buf[k] - m++ - } - } - - vals[i] = string(buf[:m]) - } -} - -func buildSigningScope(region, service string, dt time.Time) string { - return strings.Join([]string{ - formatShortTime(dt), - region, - service, - awsV4Request, - }, "/") -} - -func deriveSigningKey(region, service, secretKey string, dt time.Time) []byte { - kDate := hmacSHA256([]byte("AWS4"+secretKey), []byte(formatShortTime(dt))) - kRegion := hmacSHA256(kDate, []byte(region)) - kService := hmacSHA256(kRegion, []byte(service)) - signingKey := hmacSHA256(kService, []byte(awsV4Request)) - return signingKey -} - -func formatShortTime(dt time.Time) string { - return dt.UTC().Format(shortTimeFormat) -} - -func formatTime(dt time.Time) string { - return dt.UTC().Format(timeFormat) -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/types.go b/vendor/github.com/aws/aws-sdk-go/aws/types.go deleted file mode 100644 index 98751ee..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/types.go +++ /dev/null @@ -1,264 +0,0 @@ -package aws - -import ( - "io" - "strings" - "sync" - - "github.com/aws/aws-sdk-go/internal/sdkio" -) - -// ReadSeekCloser wraps a io.Reader returning a ReaderSeekerCloser. Allows the -// SDK to accept an io.Reader that is not also an io.Seeker for unsigned -// streaming payload API operations. -// -// A ReadSeekCloser wrapping an nonseekable io.Reader used in an API -// operation's input will prevent that operation being retried in the case of -// network errors, and cause operation requests to fail if the operation -// requires payload signing. -// -// Note: If using With S3 PutObject to stream an object upload The SDK's S3 -// Upload manager (s3manager.Uploader) provides support for streaming with the -// ability to retry network errors. -func ReadSeekCloser(r io.Reader) ReaderSeekerCloser { - return ReaderSeekerCloser{r} -} - -// ReaderSeekerCloser represents a reader that can also delegate io.Seeker and -// io.Closer interfaces to the underlying object if they are available. -type ReaderSeekerCloser struct { - r io.Reader -} - -// IsReaderSeekable returns if the underlying reader type can be seeked. A -// io.Reader might not actually be seekable if it is the ReaderSeekerCloser -// type. -func IsReaderSeekable(r io.Reader) bool { - switch v := r.(type) { - case ReaderSeekerCloser: - return v.IsSeeker() - case *ReaderSeekerCloser: - return v.IsSeeker() - case io.ReadSeeker: - return true - default: - return false - } -} - -// Read reads from the reader up to size of p. The number of bytes read, and -// error if it occurred will be returned. -// -// If the reader is not an io.Reader zero bytes read, and nil error will be -// returned. -// -// Performs the same functionality as io.Reader Read -func (r ReaderSeekerCloser) Read(p []byte) (int, error) { - switch t := r.r.(type) { - case io.Reader: - return t.Read(p) - } - return 0, nil -} - -// Seek sets the offset for the next Read to offset, interpreted according to -// whence: 0 means relative to the origin of the file, 1 means relative to the -// current offset, and 2 means relative to the end. Seek returns the new offset -// and an error, if any. -// -// If the ReaderSeekerCloser is not an io.Seeker nothing will be done. -func (r ReaderSeekerCloser) Seek(offset int64, whence int) (int64, error) { - switch t := r.r.(type) { - case io.Seeker: - return t.Seek(offset, whence) - } - return int64(0), nil -} - -// IsSeeker returns if the underlying reader is also a seeker. -func (r ReaderSeekerCloser) IsSeeker() bool { - _, ok := r.r.(io.Seeker) - return ok -} - -// HasLen returns the length of the underlying reader if the value implements -// the Len() int method. -func (r ReaderSeekerCloser) HasLen() (int, bool) { - type lenner interface { - Len() int - } - - if lr, ok := r.r.(lenner); ok { - return lr.Len(), true - } - - return 0, false -} - -// GetLen returns the length of the bytes remaining in the underlying reader. -// Checks first for Len(), then io.Seeker to determine the size of the -// underlying reader. -// -// Will return -1 if the length cannot be determined. -func (r ReaderSeekerCloser) GetLen() (int64, error) { - if l, ok := r.HasLen(); ok { - return int64(l), nil - } - - if s, ok := r.r.(io.Seeker); ok { - return seekerLen(s) - } - - return -1, nil -} - -// SeekerLen attempts to get the number of bytes remaining at the seeker's -// current position. Returns the number of bytes remaining or error. -func SeekerLen(s io.Seeker) (int64, error) { - // Determine if the seeker is actually seekable. ReaderSeekerCloser - // hides the fact that a io.Readers might not actually be seekable. - switch v := s.(type) { - case ReaderSeekerCloser: - return v.GetLen() - case *ReaderSeekerCloser: - return v.GetLen() - } - - return seekerLen(s) -} - -func seekerLen(s io.Seeker) (int64, error) { - curOffset, err := s.Seek(0, sdkio.SeekCurrent) - if err != nil { - return 0, err - } - - endOffset, err := s.Seek(0, sdkio.SeekEnd) - if err != nil { - return 0, err - } - - _, err = s.Seek(curOffset, sdkio.SeekStart) - if err != nil { - return 0, err - } - - return endOffset - curOffset, nil -} - -// Close closes the ReaderSeekerCloser. -// -// If the ReaderSeekerCloser is not an io.Closer nothing will be done. -func (r ReaderSeekerCloser) Close() error { - switch t := r.r.(type) { - case io.Closer: - return t.Close() - } - return nil -} - -// A WriteAtBuffer provides a in memory buffer supporting the io.WriterAt interface -// Can be used with the s3manager.Downloader to download content to a buffer -// in memory. Safe to use concurrently. -type WriteAtBuffer struct { - buf []byte - m sync.Mutex - - // GrowthCoeff defines the growth rate of the internal buffer. By - // default, the growth rate is 1, where expanding the internal - // buffer will allocate only enough capacity to fit the new expected - // length. - GrowthCoeff float64 -} - -// NewWriteAtBuffer creates a WriteAtBuffer with an internal buffer -// provided by buf. -func NewWriteAtBuffer(buf []byte) *WriteAtBuffer { - return &WriteAtBuffer{buf: buf} -} - -// WriteAt writes a slice of bytes to a buffer starting at the position provided -// The number of bytes written will be returned, or error. Can overwrite previous -// written slices if the write ats overlap. -func (b *WriteAtBuffer) WriteAt(p []byte, pos int64) (n int, err error) { - pLen := len(p) - expLen := pos + int64(pLen) - b.m.Lock() - defer b.m.Unlock() - if int64(len(b.buf)) < expLen { - if int64(cap(b.buf)) < expLen { - if b.GrowthCoeff < 1 { - b.GrowthCoeff = 1 - } - newBuf := make([]byte, expLen, int64(b.GrowthCoeff*float64(expLen))) - copy(newBuf, b.buf) - b.buf = newBuf - } - b.buf = b.buf[:expLen] - } - copy(b.buf[pos:], p) - return pLen, nil -} - -// Bytes returns a slice of bytes written to the buffer. -func (b *WriteAtBuffer) Bytes() []byte { - b.m.Lock() - defer b.m.Unlock() - return b.buf -} - -// MultiCloser is a utility to close multiple io.Closers within a single -// statement. -type MultiCloser []io.Closer - -// Close closes all of the io.Closers making up the MultiClosers. Any -// errors that occur while closing will be returned in the order they -// occur. -func (m MultiCloser) Close() error { - var errs errors - for _, c := range m { - err := c.Close() - if err != nil { - errs = append(errs, err) - } - } - if len(errs) != 0 { - return errs - } - - return nil -} - -type errors []error - -func (es errors) Error() string { - var parts []string - for _, e := range es { - parts = append(parts, e.Error()) - } - - return strings.Join(parts, "\n") -} - -// CopySeekableBody copies the seekable body to an io.Writer -func CopySeekableBody(dst io.Writer, src io.ReadSeeker) (int64, error) { - curPos, err := src.Seek(0, sdkio.SeekCurrent) - if err != nil { - return 0, err - } - - // copy errors may be assumed to be from the body. - n, err := io.Copy(dst, src) - if err != nil { - return n, err - } - - // seek back to the first position after reading to reset - // the body for transmission. - _, err = src.Seek(curPos, sdkio.SeekStart) - if err != nil { - return n, err - } - - return n, nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/url.go b/vendor/github.com/aws/aws-sdk-go/aws/url.go deleted file mode 100644 index 6192b24..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/url.go +++ /dev/null @@ -1,12 +0,0 @@ -// +build go1.8 - -package aws - -import "net/url" - -// URLHostname will extract the Hostname without port from the URL value. -// -// Wrapper of net/url#URL.Hostname for backwards Go version compatibility. -func URLHostname(url *url.URL) string { - return url.Hostname() -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/url_1_7.go b/vendor/github.com/aws/aws-sdk-go/aws/url_1_7.go deleted file mode 100644 index 0210d27..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/url_1_7.go +++ /dev/null @@ -1,29 +0,0 @@ -// +build !go1.8 - -package aws - -import ( - "net/url" - "strings" -) - -// URLHostname will extract the Hostname without port from the URL value. -// -// Copy of Go 1.8's net/url#URL.Hostname functionality. -func URLHostname(url *url.URL) string { - return stripPort(url.Host) - -} - -// stripPort is copy of Go 1.8 url#URL.Hostname functionality. -// https://golang.org/src/net/url/url.go -func stripPort(hostport string) string { - colon := strings.IndexByte(hostport, ':') - if colon == -1 { - return hostport - } - if i := strings.IndexByte(hostport, ']'); i != -1 { - return strings.TrimPrefix(hostport[:i], "[") - } - return hostport[:colon] -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go deleted file mode 100644 index 0056a98..0000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/version.go +++ /dev/null @@ -1,8 +0,0 @@ -// Package aws provides core functionality for making requests to AWS services. -package aws - -// SDKName is the name of this AWS SDK -const SDKName = "aws-sdk-go" - -// SDKVersion is the version of this SDK -const SDKVersion = "1.37.21" diff --git a/vendor/github.com/aws/aws-sdk-go/internal/context/background_go1.5.go b/vendor/github.com/aws/aws-sdk-go/internal/context/background_go1.5.go deleted file mode 100644 index 876dcb3..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/context/background_go1.5.go +++ /dev/null @@ -1,40 +0,0 @@ -// +build !go1.7 - -package context - -import "time" - -// An emptyCtx is a copy of the Go 1.7 context.emptyCtx type. This is copied to -// provide a 1.6 and 1.5 safe version of context that is compatible with Go -// 1.7's Context. -// -// An emptyCtx is never canceled, has no values, and has no deadline. It is not -// struct{}, since vars of this type must have distinct addresses. -type emptyCtx int - -func (*emptyCtx) Deadline() (deadline time.Time, ok bool) { - return -} - -func (*emptyCtx) Done() <-chan struct{} { - return nil -} - -func (*emptyCtx) Err() error { - return nil -} - -func (*emptyCtx) Value(key interface{}) interface{} { - return nil -} - -func (e *emptyCtx) String() string { - switch e { - case BackgroundCtx: - return "aws.BackgroundContext" - } - return "unknown empty Context" -} - -// BackgroundCtx is the common base context. -var BackgroundCtx = new(emptyCtx) diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ast.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ast.go deleted file mode 100644 index e83a998..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/ast.go +++ /dev/null @@ -1,120 +0,0 @@ -package ini - -// ASTKind represents different states in the parse table -// and the type of AST that is being constructed -type ASTKind int - -// ASTKind* is used in the parse table to transition between -// the different states -const ( - ASTKindNone = ASTKind(iota) - ASTKindStart - ASTKindExpr - ASTKindEqualExpr - ASTKindStatement - ASTKindSkipStatement - ASTKindExprStatement - ASTKindSectionStatement - ASTKindNestedSectionStatement - ASTKindCompletedNestedSectionStatement - ASTKindCommentStatement - ASTKindCompletedSectionStatement -) - -func (k ASTKind) String() string { - switch k { - case ASTKindNone: - return "none" - case ASTKindStart: - return "start" - case ASTKindExpr: - return "expr" - case ASTKindStatement: - return "stmt" - case ASTKindSectionStatement: - return "section_stmt" - case ASTKindExprStatement: - return "expr_stmt" - case ASTKindCommentStatement: - return "comment" - case ASTKindNestedSectionStatement: - return "nested_section_stmt" - case ASTKindCompletedSectionStatement: - return "completed_stmt" - case ASTKindSkipStatement: - return "skip" - default: - return "" - } -} - -// AST interface allows us to determine what kind of node we -// are on and casting may not need to be necessary. -// -// The root is always the first node in Children -type AST struct { - Kind ASTKind - Root Token - RootToken bool - Children []AST -} - -func newAST(kind ASTKind, root AST, children ...AST) AST { - return AST{ - Kind: kind, - Children: append([]AST{root}, children...), - } -} - -func newASTWithRootToken(kind ASTKind, root Token, children ...AST) AST { - return AST{ - Kind: kind, - Root: root, - RootToken: true, - Children: children, - } -} - -// AppendChild will append to the list of children an AST has. -func (a *AST) AppendChild(child AST) { - a.Children = append(a.Children, child) -} - -// GetRoot will return the root AST which can be the first entry -// in the children list or a token. -func (a *AST) GetRoot() AST { - if a.RootToken { - return *a - } - - if len(a.Children) == 0 { - return AST{} - } - - return a.Children[0] -} - -// GetChildren will return the current AST's list of children -func (a *AST) GetChildren() []AST { - if len(a.Children) == 0 { - return []AST{} - } - - if a.RootToken { - return a.Children - } - - return a.Children[1:] -} - -// SetChildren will set and override all children of the AST. -func (a *AST) SetChildren(children []AST) { - if a.RootToken { - a.Children = children - } else { - a.Children = append(a.Children[:1], children...) - } -} - -// Start is used to indicate the starting state of the parse table. -var Start = newAST(ASTKindStart, AST{}) diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/comma_token.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/comma_token.go deleted file mode 100644 index 0895d53..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/comma_token.go +++ /dev/null @@ -1,11 +0,0 @@ -package ini - -var commaRunes = []rune(",") - -func isComma(b rune) bool { - return b == ',' -} - -func newCommaToken() Token { - return newToken(TokenComma, commaRunes, NoneType) -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/comment_token.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/comment_token.go deleted file mode 100644 index 0b76999..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/comment_token.go +++ /dev/null @@ -1,35 +0,0 @@ -package ini - -// isComment will return whether or not the next byte(s) is a -// comment. -func isComment(b []rune) bool { - if len(b) == 0 { - return false - } - - switch b[0] { - case ';': - return true - case '#': - return true - } - - return false -} - -// newCommentToken will create a comment token and -// return how many bytes were read. -func newCommentToken(b []rune) (Token, int, error) { - i := 0 - for ; i < len(b); i++ { - if b[i] == '\n' { - break - } - - if len(b)-i > 2 && b[i] == '\r' && b[i+1] == '\n' { - break - } - } - - return newToken(TokenComment, b[:i], NoneType), i, nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/doc.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/doc.go deleted file mode 100644 index 25ce0fe..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/doc.go +++ /dev/null @@ -1,29 +0,0 @@ -// Package ini is an LL(1) parser for configuration files. -// -// Example: -// sections, err := ini.OpenFile("/path/to/file") -// if err != nil { -// panic(err) -// } -// -// profile := "foo" -// section, ok := sections.GetSection(profile) -// if !ok { -// fmt.Printf("section %q could not be found", profile) -// } -// -// Below is the BNF that describes this parser -// Grammar: -// stmt -> value stmt' -// stmt' -> epsilon | op stmt -// value -> number | string | boolean | quoted_string -// -// section -> [ section' -// section' -> value section_close -// section_close -> ] -// -// SkipState will skip (NL WS)+ -// -// comment -> # comment' | ; comment' -// comment' -> epsilon | value -package ini diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/empty_token.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/empty_token.go deleted file mode 100644 index 04345a5..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/empty_token.go +++ /dev/null @@ -1,4 +0,0 @@ -package ini - -// emptyToken is used to satisfy the Token interface -var emptyToken = newToken(TokenNone, []rune{}, NoneType) diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/expression.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/expression.go deleted file mode 100644 index 91ba2a5..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/expression.go +++ /dev/null @@ -1,24 +0,0 @@ -package ini - -// newExpression will return an expression AST. -// Expr represents an expression -// -// grammar: -// expr -> string | number -func newExpression(tok Token) AST { - return newASTWithRootToken(ASTKindExpr, tok) -} - -func newEqualExpr(left AST, tok Token) AST { - return newASTWithRootToken(ASTKindEqualExpr, tok, left) -} - -// EqualExprKey will return a LHS value in the equal expr -func EqualExprKey(ast AST) string { - children := ast.GetChildren() - if len(children) == 0 || ast.Kind != ASTKindEqualExpr { - return "" - } - - return string(children[0].Root.Raw()) -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.go deleted file mode 100644 index 8d462f7..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.go +++ /dev/null @@ -1,17 +0,0 @@ -// +build gofuzz - -package ini - -import ( - "bytes" -) - -func Fuzz(data []byte) int { - b := bytes.NewReader(data) - - if _, err := Parse(b); err != nil { - return 0 - } - - return 1 -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini.go deleted file mode 100644 index 3b0ca7a..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini.go +++ /dev/null @@ -1,51 +0,0 @@ -package ini - -import ( - "io" - "os" - - "github.com/aws/aws-sdk-go/aws/awserr" -) - -// OpenFile takes a path to a given file, and will open and parse -// that file. -func OpenFile(path string) (Sections, error) { - f, err := os.Open(path) - if err != nil { - return Sections{}, awserr.New(ErrCodeUnableToReadFile, "unable to open file", err) - } - defer f.Close() - - return Parse(f) -} - -// Parse will parse the given file using the shared config -// visitor. -func Parse(f io.Reader) (Sections, error) { - tree, err := ParseAST(f) - if err != nil { - return Sections{}, err - } - - v := NewDefaultVisitor() - if err = Walk(tree, v); err != nil { - return Sections{}, err - } - - return v.Sections, nil -} - -// ParseBytes will parse the given bytes and return the parsed sections. -func ParseBytes(b []byte) (Sections, error) { - tree, err := ParseASTBytes(b) - if err != nil { - return Sections{}, err - } - - v := NewDefaultVisitor() - if err = Walk(tree, v); err != nil { - return Sections{}, err - } - - return v.Sections, nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_lexer.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_lexer.go deleted file mode 100644 index 582c024..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_lexer.go +++ /dev/null @@ -1,165 +0,0 @@ -package ini - -import ( - "bytes" - "io" - "io/ioutil" - - "github.com/aws/aws-sdk-go/aws/awserr" -) - -const ( - // ErrCodeUnableToReadFile is used when a file is failed to be - // opened or read from. - ErrCodeUnableToReadFile = "FailedRead" -) - -// TokenType represents the various different tokens types -type TokenType int - -func (t TokenType) String() string { - switch t { - case TokenNone: - return "none" - case TokenLit: - return "literal" - case TokenSep: - return "sep" - case TokenOp: - return "op" - case TokenWS: - return "ws" - case TokenNL: - return "newline" - case TokenComment: - return "comment" - case TokenComma: - return "comma" - default: - return "" - } -} - -// TokenType enums -const ( - TokenNone = TokenType(iota) - TokenLit - TokenSep - TokenComma - TokenOp - TokenWS - TokenNL - TokenComment -) - -type iniLexer struct{} - -// Tokenize will return a list of tokens during lexical analysis of the -// io.Reader. -func (l *iniLexer) Tokenize(r io.Reader) ([]Token, error) { - b, err := ioutil.ReadAll(r) - if err != nil { - return nil, awserr.New(ErrCodeUnableToReadFile, "unable to read file", err) - } - - return l.tokenize(b) -} - -func (l *iniLexer) tokenize(b []byte) ([]Token, error) { - runes := bytes.Runes(b) - var err error - n := 0 - tokenAmount := countTokens(runes) - tokens := make([]Token, tokenAmount) - count := 0 - - for len(runes) > 0 && count < tokenAmount { - switch { - case isWhitespace(runes[0]): - tokens[count], n, err = newWSToken(runes) - case isComma(runes[0]): - tokens[count], n = newCommaToken(), 1 - case isComment(runes): - tokens[count], n, err = newCommentToken(runes) - case isNewline(runes): - tokens[count], n, err = newNewlineToken(runes) - case isSep(runes): - tokens[count], n, err = newSepToken(runes) - case isOp(runes): - tokens[count], n, err = newOpToken(runes) - default: - tokens[count], n, err = newLitToken(runes) - } - - if err != nil { - return nil, err - } - - count++ - - runes = runes[n:] - } - - return tokens[:count], nil -} - -func countTokens(runes []rune) int { - count, n := 0, 0 - var err error - - for len(runes) > 0 { - switch { - case isWhitespace(runes[0]): - _, n, err = newWSToken(runes) - case isComma(runes[0]): - _, n = newCommaToken(), 1 - case isComment(runes): - _, n, err = newCommentToken(runes) - case isNewline(runes): - _, n, err = newNewlineToken(runes) - case isSep(runes): - _, n, err = newSepToken(runes) - case isOp(runes): - _, n, err = newOpToken(runes) - default: - _, n, err = newLitToken(runes) - } - - if err != nil { - return 0 - } - - count++ - runes = runes[n:] - } - - return count + 1 -} - -// Token indicates a metadata about a given value. -type Token struct { - t TokenType - ValueType ValueType - base int - raw []rune -} - -var emptyValue = Value{} - -func newToken(t TokenType, raw []rune, v ValueType) Token { - return Token{ - t: t, - raw: raw, - ValueType: v, - } -} - -// Raw return the raw runes that were consumed -func (tok Token) Raw() []rune { - return tok.raw -} - -// Type returns the token type -func (tok Token) Type() TokenType { - return tok.t -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go deleted file mode 100644 index 55fa73e..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go +++ /dev/null @@ -1,357 +0,0 @@ -package ini - -import ( - "fmt" - "io" -) - -// State enums for the parse table -const ( - InvalidState = iota - // stmt -> value stmt' - StatementState - // stmt' -> MarkComplete | op stmt - StatementPrimeState - // value -> number | string | boolean | quoted_string - ValueState - // section -> [ section' - OpenScopeState - // section' -> value section_close - SectionState - // section_close -> ] - CloseScopeState - // SkipState will skip (NL WS)+ - SkipState - // SkipTokenState will skip any token and push the previous - // state onto the stack. - SkipTokenState - // comment -> # comment' | ; comment' - // comment' -> MarkComplete | value - CommentState - // MarkComplete state will complete statements and move that - // to the completed AST list - MarkCompleteState - // TerminalState signifies that the tokens have been fully parsed - TerminalState -) - -// parseTable is a state machine to dictate the grammar above. -var parseTable = map[ASTKind]map[TokenType]int{ - ASTKindStart: map[TokenType]int{ - TokenLit: StatementState, - TokenSep: OpenScopeState, - TokenWS: SkipTokenState, - TokenNL: SkipTokenState, - TokenComment: CommentState, - TokenNone: TerminalState, - }, - ASTKindCommentStatement: map[TokenType]int{ - TokenLit: StatementState, - TokenSep: OpenScopeState, - TokenWS: SkipTokenState, - TokenNL: SkipTokenState, - TokenComment: CommentState, - TokenNone: MarkCompleteState, - }, - ASTKindExpr: map[TokenType]int{ - TokenOp: StatementPrimeState, - TokenLit: ValueState, - TokenSep: OpenScopeState, - TokenWS: ValueState, - TokenNL: SkipState, - TokenComment: CommentState, - TokenNone: MarkCompleteState, - }, - ASTKindEqualExpr: map[TokenType]int{ - TokenLit: ValueState, - TokenWS: SkipTokenState, - TokenNL: SkipState, - TokenNone: SkipState, - }, - ASTKindStatement: map[TokenType]int{ - TokenLit: SectionState, - TokenSep: CloseScopeState, - TokenWS: SkipTokenState, - TokenNL: SkipTokenState, - TokenComment: CommentState, - TokenNone: MarkCompleteState, - }, - ASTKindExprStatement: map[TokenType]int{ - TokenLit: ValueState, - TokenSep: OpenScopeState, - TokenOp: ValueState, - TokenWS: ValueState, - TokenNL: MarkCompleteState, - TokenComment: CommentState, - TokenNone: TerminalState, - TokenComma: SkipState, - }, - ASTKindSectionStatement: map[TokenType]int{ - TokenLit: SectionState, - TokenOp: SectionState, - TokenSep: CloseScopeState, - TokenWS: SectionState, - TokenNL: SkipTokenState, - }, - ASTKindCompletedSectionStatement: map[TokenType]int{ - TokenWS: SkipTokenState, - TokenNL: SkipTokenState, - TokenLit: StatementState, - TokenSep: OpenScopeState, - TokenComment: CommentState, - TokenNone: MarkCompleteState, - }, - ASTKindSkipStatement: map[TokenType]int{ - TokenLit: StatementState, - TokenSep: OpenScopeState, - TokenWS: SkipTokenState, - TokenNL: SkipTokenState, - TokenComment: CommentState, - TokenNone: TerminalState, - }, -} - -// ParseAST will parse input from an io.Reader using -// an LL(1) parser. -func ParseAST(r io.Reader) ([]AST, error) { - lexer := iniLexer{} - tokens, err := lexer.Tokenize(r) - if err != nil { - return []AST{}, err - } - - return parse(tokens) -} - -// ParseASTBytes will parse input from a byte slice using -// an LL(1) parser. -func ParseASTBytes(b []byte) ([]AST, error) { - lexer := iniLexer{} - tokens, err := lexer.tokenize(b) - if err != nil { - return []AST{}, err - } - - return parse(tokens) -} - -func parse(tokens []Token) ([]AST, error) { - start := Start - stack := newParseStack(3, len(tokens)) - - stack.Push(start) - s := newSkipper() - -loop: - for stack.Len() > 0 { - k := stack.Pop() - - var tok Token - if len(tokens) == 0 { - // this occurs when all the tokens have been processed - // but reduction of what's left on the stack needs to - // occur. - tok = emptyToken - } else { - tok = tokens[0] - } - - step := parseTable[k.Kind][tok.Type()] - if s.ShouldSkip(tok) { - // being in a skip state with no tokens will break out of - // the parse loop since there is nothing left to process. - if len(tokens) == 0 { - break loop - } - // if should skip is true, we skip the tokens until should skip is set to false. - step = SkipTokenState - } - - switch step { - case TerminalState: - // Finished parsing. Push what should be the last - // statement to the stack. If there is anything left - // on the stack, an error in parsing has occurred. - if k.Kind != ASTKindStart { - stack.MarkComplete(k) - } - break loop - case SkipTokenState: - // When skipping a token, the previous state was popped off the stack. - // To maintain the correct state, the previous state will be pushed - // onto the stack. - stack.Push(k) - case StatementState: - if k.Kind != ASTKindStart { - stack.MarkComplete(k) - } - expr := newExpression(tok) - stack.Push(expr) - case StatementPrimeState: - if tok.Type() != TokenOp { - stack.MarkComplete(k) - continue - } - - if k.Kind != ASTKindExpr { - return nil, NewParseError( - fmt.Sprintf("invalid expression: expected Expr type, but found %T type", k), - ) - } - - k = trimSpaces(k) - expr := newEqualExpr(k, tok) - stack.Push(expr) - case ValueState: - // ValueState requires the previous state to either be an equal expression - // or an expression statement. - // - // This grammar occurs when the RHS is a number, word, or quoted string. - // equal_expr -> lit op equal_expr' - // equal_expr' -> number | string | quoted_string - // quoted_string -> " quoted_string' - // quoted_string' -> string quoted_string_end - // quoted_string_end -> " - // - // otherwise - // expr_stmt -> equal_expr (expr_stmt')* - // expr_stmt' -> ws S | op S | MarkComplete - // S -> equal_expr' expr_stmt' - switch k.Kind { - case ASTKindEqualExpr: - // assigning a value to some key - k.AppendChild(newExpression(tok)) - stack.Push(newExprStatement(k)) - case ASTKindExpr: - k.Root.raw = append(k.Root.raw, tok.Raw()...) - stack.Push(k) - case ASTKindExprStatement: - root := k.GetRoot() - children := root.GetChildren() - if len(children) == 0 { - return nil, NewParseError( - fmt.Sprintf("invalid expression: AST contains no children %s", k.Kind), - ) - } - - rhs := children[len(children)-1] - - if rhs.Root.ValueType != QuotedStringType { - rhs.Root.ValueType = StringType - rhs.Root.raw = append(rhs.Root.raw, tok.Raw()...) - - } - - children[len(children)-1] = rhs - k.SetChildren(children) - - stack.Push(k) - } - case OpenScopeState: - if !runeCompare(tok.Raw(), openBrace) { - return nil, NewParseError("expected '['") - } - // If OpenScopeState is not at the start, we must mark the previous ast as complete - // - // for example: if previous ast was a skip statement; - // we should mark it as complete before we create a new statement - if k.Kind != ASTKindStart { - stack.MarkComplete(k) - } - - stmt := newStatement() - stack.Push(stmt) - case CloseScopeState: - if !runeCompare(tok.Raw(), closeBrace) { - return nil, NewParseError("expected ']'") - } - - k = trimSpaces(k) - stack.Push(newCompletedSectionStatement(k)) - case SectionState: - var stmt AST - - switch k.Kind { - case ASTKindStatement: - // If there are multiple literals inside of a scope declaration, - // then the current token's raw value will be appended to the Name. - // - // This handles cases like [ profile default ] - // - // k will represent a SectionStatement with the children representing - // the label of the section - stmt = newSectionStatement(tok) - case ASTKindSectionStatement: - k.Root.raw = append(k.Root.raw, tok.Raw()...) - stmt = k - default: - return nil, NewParseError( - fmt.Sprintf("invalid statement: expected statement: %v", k.Kind), - ) - } - - stack.Push(stmt) - case MarkCompleteState: - if k.Kind != ASTKindStart { - stack.MarkComplete(k) - } - - if stack.Len() == 0 { - stack.Push(start) - } - case SkipState: - stack.Push(newSkipStatement(k)) - s.Skip() - case CommentState: - if k.Kind == ASTKindStart { - stack.Push(k) - } else { - stack.MarkComplete(k) - } - - stmt := newCommentStatement(tok) - stack.Push(stmt) - default: - return nil, NewParseError( - fmt.Sprintf("invalid state with ASTKind %v and TokenType %v", - k, tok.Type())) - } - - if len(tokens) > 0 { - tokens = tokens[1:] - } - } - - // this occurs when a statement has not been completed - if stack.top > 1 { - return nil, NewParseError(fmt.Sprintf("incomplete ini expression")) - } - - // returns a sublist which excludes the start symbol - return stack.List(), nil -} - -// trimSpaces will trim spaces on the left and right hand side of -// the literal. -func trimSpaces(k AST) AST { - // trim left hand side of spaces - for i := 0; i < len(k.Root.raw); i++ { - if !isWhitespace(k.Root.raw[i]) { - break - } - - k.Root.raw = k.Root.raw[1:] - i-- - } - - // trim right hand side of spaces - for i := len(k.Root.raw) - 1; i >= 0; i-- { - if !isWhitespace(k.Root.raw[i]) { - break - } - - k.Root.raw = k.Root.raw[:len(k.Root.raw)-1] - } - - return k -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/literal_tokens.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/literal_tokens.go deleted file mode 100644 index 24df543..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/literal_tokens.go +++ /dev/null @@ -1,324 +0,0 @@ -package ini - -import ( - "fmt" - "strconv" - "strings" -) - -var ( - runesTrue = []rune("true") - runesFalse = []rune("false") -) - -var literalValues = [][]rune{ - runesTrue, - runesFalse, -} - -func isBoolValue(b []rune) bool { - for _, lv := range literalValues { - if isLitValue(lv, b) { - return true - } - } - return false -} - -func isLitValue(want, have []rune) bool { - if len(have) < len(want) { - return false - } - - for i := 0; i < len(want); i++ { - if want[i] != have[i] { - return false - } - } - - return true -} - -// isNumberValue will return whether not the leading characters in -// a byte slice is a number. A number is delimited by whitespace or -// the newline token. -// -// A number is defined to be in a binary, octal, decimal (int | float), hex format, -// or in scientific notation. -func isNumberValue(b []rune) bool { - negativeIndex := 0 - helper := numberHelper{} - needDigit := false - - for i := 0; i < len(b); i++ { - negativeIndex++ - - switch b[i] { - case '-': - if helper.IsNegative() || negativeIndex != 1 { - return false - } - helper.Determine(b[i]) - needDigit = true - continue - case 'e', 'E': - if err := helper.Determine(b[i]); err != nil { - return false - } - negativeIndex = 0 - needDigit = true - continue - case 'b': - if helper.numberFormat == hex { - break - } - fallthrough - case 'o', 'x': - needDigit = true - if i == 0 { - return false - } - - fallthrough - case '.': - if err := helper.Determine(b[i]); err != nil { - return false - } - needDigit = true - continue - } - - if i > 0 && (isNewline(b[i:]) || isWhitespace(b[i])) { - return !needDigit - } - - if !helper.CorrectByte(b[i]) { - return false - } - needDigit = false - } - - return !needDigit -} - -func isValid(b []rune) (bool, int, error) { - if len(b) == 0 { - // TODO: should probably return an error - return false, 0, nil - } - - return isValidRune(b[0]), 1, nil -} - -func isValidRune(r rune) bool { - return r != ':' && r != '=' && r != '[' && r != ']' && r != ' ' && r != '\n' -} - -// ValueType is an enum that will signify what type -// the Value is -type ValueType int - -func (v ValueType) String() string { - switch v { - case NoneType: - return "NONE" - case DecimalType: - return "FLOAT" - case IntegerType: - return "INT" - case StringType: - return "STRING" - case BoolType: - return "BOOL" - } - - return "" -} - -// ValueType enums -const ( - NoneType = ValueType(iota) - DecimalType - IntegerType - StringType - QuotedStringType - BoolType -) - -// Value is a union container -type Value struct { - Type ValueType - raw []rune - - integer int64 - decimal float64 - boolean bool - str string -} - -func newValue(t ValueType, base int, raw []rune) (Value, error) { - v := Value{ - Type: t, - raw: raw, - } - var err error - - switch t { - case DecimalType: - v.decimal, err = strconv.ParseFloat(string(raw), 64) - case IntegerType: - if base != 10 { - raw = raw[2:] - } - - v.integer, err = strconv.ParseInt(string(raw), base, 64) - case StringType: - v.str = string(raw) - case QuotedStringType: - v.str = string(raw[1 : len(raw)-1]) - case BoolType: - v.boolean = runeCompare(v.raw, runesTrue) - } - - // issue 2253 - // - // if the value trying to be parsed is too large, then we will use - // the 'StringType' and raw value instead. - if nerr, ok := err.(*strconv.NumError); ok && nerr.Err == strconv.ErrRange { - v.Type = StringType - v.str = string(raw) - err = nil - } - - return v, err -} - -// Append will append values and change the type to a string -// type. -func (v *Value) Append(tok Token) { - r := tok.Raw() - if v.Type != QuotedStringType { - v.Type = StringType - r = tok.raw[1 : len(tok.raw)-1] - } - if tok.Type() != TokenLit { - v.raw = append(v.raw, tok.Raw()...) - } else { - v.raw = append(v.raw, r...) - } -} - -func (v Value) String() string { - switch v.Type { - case DecimalType: - return fmt.Sprintf("decimal: %f", v.decimal) - case IntegerType: - return fmt.Sprintf("integer: %d", v.integer) - case StringType: - return fmt.Sprintf("string: %s", string(v.raw)) - case QuotedStringType: - return fmt.Sprintf("quoted string: %s", string(v.raw)) - case BoolType: - return fmt.Sprintf("bool: %t", v.boolean) - default: - return "union not set" - } -} - -func newLitToken(b []rune) (Token, int, error) { - n := 0 - var err error - - token := Token{} - if b[0] == '"' { - n, err = getStringValue(b) - if err != nil { - return token, n, err - } - - token = newToken(TokenLit, b[:n], QuotedStringType) - } else if isNumberValue(b) { - var base int - base, n, err = getNumericalValue(b) - if err != nil { - return token, 0, err - } - - value := b[:n] - vType := IntegerType - if contains(value, '.') || hasExponent(value) { - vType = DecimalType - } - token = newToken(TokenLit, value, vType) - token.base = base - } else if isBoolValue(b) { - n, err = getBoolValue(b) - - token = newToken(TokenLit, b[:n], BoolType) - } else { - n, err = getValue(b) - token = newToken(TokenLit, b[:n], StringType) - } - - return token, n, err -} - -// IntValue returns an integer value -func (v Value) IntValue() int64 { - return v.integer -} - -// FloatValue returns a float value -func (v Value) FloatValue() float64 { - return v.decimal -} - -// BoolValue returns a bool value -func (v Value) BoolValue() bool { - return v.boolean -} - -func isTrimmable(r rune) bool { - switch r { - case '\n', ' ': - return true - } - return false -} - -// StringValue returns the string value -func (v Value) StringValue() string { - switch v.Type { - case StringType: - return strings.TrimFunc(string(v.raw), isTrimmable) - case QuotedStringType: - // preserve all characters in the quotes - return string(removeEscapedCharacters(v.raw[1 : len(v.raw)-1])) - default: - return strings.TrimFunc(string(v.raw), isTrimmable) - } -} - -func contains(runes []rune, c rune) bool { - for i := 0; i < len(runes); i++ { - if runes[i] == c { - return true - } - } - - return false -} - -func runeCompare(v1 []rune, v2 []rune) bool { - if len(v1) != len(v2) { - return false - } - - for i := 0; i < len(v1); i++ { - if v1[i] != v2[i] { - return false - } - } - - return true -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/newline_token.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/newline_token.go deleted file mode 100644 index e52ac39..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/newline_token.go +++ /dev/null @@ -1,30 +0,0 @@ -package ini - -func isNewline(b []rune) bool { - if len(b) == 0 { - return false - } - - if b[0] == '\n' { - return true - } - - if len(b) < 2 { - return false - } - - return b[0] == '\r' && b[1] == '\n' -} - -func newNewlineToken(b []rune) (Token, int, error) { - i := 1 - if b[0] == '\r' && isNewline(b[1:]) { - i++ - } - - if !isNewline([]rune(b[:i])) { - return emptyToken, 0, NewParseError("invalid new line token") - } - - return newToken(TokenNL, b[:i], NoneType), i, nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/number_helper.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/number_helper.go deleted file mode 100644 index a45c0bc..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/number_helper.go +++ /dev/null @@ -1,152 +0,0 @@ -package ini - -import ( - "bytes" - "fmt" - "strconv" -) - -const ( - none = numberFormat(iota) - binary - octal - decimal - hex - exponent -) - -type numberFormat int - -// numberHelper is used to dictate what format a number is in -// and what to do for negative values. Since -1e-4 is a valid -// number, we cannot just simply check for duplicate negatives. -type numberHelper struct { - numberFormat numberFormat - - negative bool - negativeExponent bool -} - -func (b numberHelper) Exists() bool { - return b.numberFormat != none -} - -func (b numberHelper) IsNegative() bool { - return b.negative || b.negativeExponent -} - -func (b *numberHelper) Determine(c rune) error { - if b.Exists() { - return NewParseError(fmt.Sprintf("multiple number formats: 0%v", string(c))) - } - - switch c { - case 'b': - b.numberFormat = binary - case 'o': - b.numberFormat = octal - case 'x': - b.numberFormat = hex - case 'e', 'E': - b.numberFormat = exponent - case '-': - if b.numberFormat != exponent { - b.negative = true - } else { - b.negativeExponent = true - } - case '.': - b.numberFormat = decimal - default: - return NewParseError(fmt.Sprintf("invalid number character: %v", string(c))) - } - - return nil -} - -func (b numberHelper) CorrectByte(c rune) bool { - switch { - case b.numberFormat == binary: - if !isBinaryByte(c) { - return false - } - case b.numberFormat == octal: - if !isOctalByte(c) { - return false - } - case b.numberFormat == hex: - if !isHexByte(c) { - return false - } - case b.numberFormat == decimal: - if !isDigit(c) { - return false - } - case b.numberFormat == exponent: - if !isDigit(c) { - return false - } - case b.negativeExponent: - if !isDigit(c) { - return false - } - case b.negative: - if !isDigit(c) { - return false - } - default: - if !isDigit(c) { - return false - } - } - - return true -} - -func (b numberHelper) Base() int { - switch b.numberFormat { - case binary: - return 2 - case octal: - return 8 - case hex: - return 16 - default: - return 10 - } -} - -func (b numberHelper) String() string { - buf := bytes.Buffer{} - i := 0 - - switch b.numberFormat { - case binary: - i++ - buf.WriteString(strconv.Itoa(i) + ": binary format\n") - case octal: - i++ - buf.WriteString(strconv.Itoa(i) + ": octal format\n") - case hex: - i++ - buf.WriteString(strconv.Itoa(i) + ": hex format\n") - case exponent: - i++ - buf.WriteString(strconv.Itoa(i) + ": exponent format\n") - default: - i++ - buf.WriteString(strconv.Itoa(i) + ": integer format\n") - } - - if b.negative { - i++ - buf.WriteString(strconv.Itoa(i) + ": negative format\n") - } - - if b.negativeExponent { - i++ - buf.WriteString(strconv.Itoa(i) + ": negative exponent format\n") - } - - return buf.String() -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/op_tokens.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/op_tokens.go deleted file mode 100644 index 8a84c7c..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/op_tokens.go +++ /dev/null @@ -1,39 +0,0 @@ -package ini - -import ( - "fmt" -) - -var ( - equalOp = []rune("=") - equalColonOp = []rune(":") -) - -func isOp(b []rune) bool { - if len(b) == 0 { - return false - } - - switch b[0] { - case '=': - return true - case ':': - return true - default: - return false - } -} - -func newOpToken(b []rune) (Token, int, error) { - tok := Token{} - - switch b[0] { - case '=': - tok = newToken(TokenOp, equalOp, NoneType) - case ':': - tok = newToken(TokenOp, equalColonOp, NoneType) - default: - return tok, 0, NewParseError(fmt.Sprintf("unexpected op type, %v", b[0])) - } - return tok, 1, nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_error.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_error.go deleted file mode 100644 index 4572870..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_error.go +++ /dev/null @@ -1,43 +0,0 @@ -package ini - -import "fmt" - -const ( - // ErrCodeParseError is returned when a parsing error - // has occurred. - ErrCodeParseError = "INIParseError" -) - -// ParseError is an error which is returned during any part of -// the parsing process. -type ParseError struct { - msg string -} - -// NewParseError will return a new ParseError where message -// is the description of the error. -func NewParseError(message string) *ParseError { - return &ParseError{ - msg: message, - } -} - -// Code will return the ErrCodeParseError -func (err *ParseError) Code() string { - return ErrCodeParseError -} - -// Message returns the error's message -func (err *ParseError) Message() string { - return err.msg -} - -// OrigError return nothing since there will never be any -// original error. -func (err *ParseError) OrigError() error { - return nil -} - -func (err *ParseError) Error() string { - return fmt.Sprintf("%s: %s", err.Code(), err.Message()) -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_stack.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_stack.go deleted file mode 100644 index 7f01cf7..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_stack.go +++ /dev/null @@ -1,60 +0,0 @@ -package ini - -import ( - "bytes" - "fmt" -) - -// ParseStack is a stack that contains a container, the stack portion, -// and the list which is the list of ASTs that have been successfully -// parsed. -type ParseStack struct { - top int - container []AST - list []AST - index int -} - -func newParseStack(sizeContainer, sizeList int) ParseStack { - return ParseStack{ - container: make([]AST, sizeContainer), - list: make([]AST, sizeList), - } -} - -// Pop will return and truncate the last container element. -func (s *ParseStack) Pop() AST { - s.top-- - return s.container[s.top] -} - -// Push will add the new AST to the container -func (s *ParseStack) Push(ast AST) { - s.container[s.top] = ast - s.top++ -} - -// MarkComplete will append the AST to the list of completed statements -func (s *ParseStack) MarkComplete(ast AST) { - s.list[s.index] = ast - s.index++ -} - -// List will return the completed statements -func (s ParseStack) List() []AST { - return s.list[:s.index] -} - -// Len will return the length of the container -func (s *ParseStack) Len() int { - return s.top -} - -func (s ParseStack) String() string { - buf := bytes.Buffer{} - for i, node := range s.list { - buf.WriteString(fmt.Sprintf("%d: %v\n", i+1, node)) - } - - return buf.String() -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/sep_tokens.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/sep_tokens.go deleted file mode 100644 index f82095b..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/sep_tokens.go +++ /dev/null @@ -1,41 +0,0 @@ -package ini - -import ( - "fmt" -) - -var ( - emptyRunes = []rune{} -) - -func isSep(b []rune) bool { - if len(b) == 0 { - return false - } - - switch b[0] { - case '[', ']': - return true - default: - return false - } -} - -var ( - openBrace = []rune("[") - closeBrace = []rune("]") -) - -func newSepToken(b []rune) (Token, int, error) { - tok := Token{} - - switch b[0] { - case '[': - tok = newToken(TokenSep, openBrace, NoneType) - case ']': - tok = newToken(TokenSep, closeBrace, NoneType) - default: - return tok, 0, NewParseError(fmt.Sprintf("unexpected sep type, %v", b[0])) - } - return tok, 1, nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/skipper.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/skipper.go deleted file mode 100644 index da7a404..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/skipper.go +++ /dev/null @@ -1,45 +0,0 @@ -package ini - -// skipper is used to skip certain blocks of an ini file. -// Currently skipper is used to skip nested blocks of ini -// files. See example below -// -// [ foo ] -// nested = ; this section will be skipped -// a=b -// c=d -// bar=baz ; this will be included -type skipper struct { - shouldSkip bool - TokenSet bool - prevTok Token -} - -func newSkipper() skipper { - return skipper{ - prevTok: emptyToken, - } -} - -func (s *skipper) ShouldSkip(tok Token) bool { - // should skip state will be modified only if previous token was new line (NL); - // and the current token is not WhiteSpace (WS). - if s.shouldSkip && - s.prevTok.Type() == TokenNL && - tok.Type() != TokenWS { - s.Continue() - return false - } - s.prevTok = tok - return s.shouldSkip -} - -func (s *skipper) Skip() { - s.shouldSkip = true -} - -func (s *skipper) Continue() { - s.shouldSkip = false - // empty token is assigned as we return to default state, when should skip is false - s.prevTok = emptyToken -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/statement.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/statement.go deleted file mode 100644 index 18f3fe8..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/statement.go +++ /dev/null @@ -1,35 +0,0 @@ -package ini - -// Statement is an empty AST mostly used for transitioning states. -func newStatement() AST { - return newAST(ASTKindStatement, AST{}) -} - -// SectionStatement represents a section AST -func newSectionStatement(tok Token) AST { - return newASTWithRootToken(ASTKindSectionStatement, tok) -} - -// ExprStatement represents a completed expression AST -func newExprStatement(ast AST) AST { - return newAST(ASTKindExprStatement, ast) -} - -// CommentStatement represents a comment in the ini definition. -// -// grammar: -// comment -> #comment' | ;comment' -// comment' -> epsilon | value -func newCommentStatement(tok Token) AST { - return newAST(ASTKindCommentStatement, newExpression(tok)) -} - -// CompletedSectionStatement represents a completed section -func newCompletedSectionStatement(ast AST) AST { - return newAST(ASTKindCompletedSectionStatement, ast) -} - -// SkipStatement is used to skip whole statements -func newSkipStatement(ast AST) AST { - return newAST(ASTKindSkipStatement, ast) -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/value_util.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/value_util.go deleted file mode 100644 index 305999d..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/value_util.go +++ /dev/null @@ -1,284 +0,0 @@ -package ini - -import ( - "fmt" -) - -// getStringValue will return a quoted string and the amount -// of bytes read -// -// an error will be returned if the string is not properly formatted -func getStringValue(b []rune) (int, error) { - if b[0] != '"' { - return 0, NewParseError("strings must start with '\"'") - } - - endQuote := false - i := 1 - - for ; i < len(b) && !endQuote; i++ { - if escaped := isEscaped(b[:i], b[i]); b[i] == '"' && !escaped { - endQuote = true - break - } else if escaped { - /*c, err := getEscapedByte(b[i]) - if err != nil { - return 0, err - } - - b[i-1] = c - b = append(b[:i], b[i+1:]...) - i--*/ - - continue - } - } - - if !endQuote { - return 0, NewParseError("missing '\"' in string value") - } - - return i + 1, nil -} - -// getBoolValue will return a boolean and the amount -// of bytes read -// -// an error will be returned if the boolean is not of a correct -// value -func getBoolValue(b []rune) (int, error) { - if len(b) < 4 { - return 0, NewParseError("invalid boolean value") - } - - n := 0 - for _, lv := range literalValues { - if len(lv) > len(b) { - continue - } - - if isLitValue(lv, b) { - n = len(lv) - } - } - - if n == 0 { - return 0, NewParseError("invalid boolean value") - } - - return n, nil -} - -// getNumericalValue will return a numerical string, the amount -// of bytes read, and the base of the number -// -// an error will be returned if the number is not of a correct -// value -func getNumericalValue(b []rune) (int, int, error) { - if !isDigit(b[0]) { - return 0, 0, NewParseError("invalid digit value") - } - - i := 0 - helper := numberHelper{} - -loop: - for negativeIndex := 0; i < len(b); i++ { - negativeIndex++ - - if !isDigit(b[i]) { - switch b[i] { - case '-': - if helper.IsNegative() || negativeIndex != 1 { - return 0, 0, NewParseError("parse error '-'") - } - - n := getNegativeNumber(b[i:]) - i += (n - 1) - helper.Determine(b[i]) - continue - case '.': - if err := helper.Determine(b[i]); err != nil { - return 0, 0, err - } - case 'e', 'E': - if err := helper.Determine(b[i]); err != nil { - return 0, 0, err - } - - negativeIndex = 0 - case 'b': - if helper.numberFormat == hex { - break - } - fallthrough - case 'o', 'x': - if i == 0 && b[i] != '0' { - return 0, 0, NewParseError("incorrect base format, expected leading '0'") - } - - if i != 1 { - return 0, 0, NewParseError(fmt.Sprintf("incorrect base format found %s at %d index", string(b[i]), i)) - } - - if err := helper.Determine(b[i]); err != nil { - return 0, 0, err - } - default: - if isWhitespace(b[i]) { - break loop - } - - if isNewline(b[i:]) { - break loop - } - - if !(helper.numberFormat == hex && isHexByte(b[i])) { - if i+2 < len(b) && !isNewline(b[i:i+2]) { - return 0, 0, NewParseError("invalid numerical character") - } else if !isNewline([]rune{b[i]}) { - return 0, 0, NewParseError("invalid numerical character") - } - - break loop - } - } - } - } - - return helper.Base(), i, nil -} - -// isDigit will return whether or not something is an integer -func isDigit(b rune) bool { - return b >= '0' && b <= '9' -} - -func hasExponent(v []rune) bool { - return contains(v, 'e') || contains(v, 'E') -} - -func isBinaryByte(b rune) bool { - switch b { - case '0', '1': - return true - default: - return false - } -} - -func isOctalByte(b rune) bool { - switch b { - case '0', '1', '2', '3', '4', '5', '6', '7': - return true - default: - return false - } -} - -func isHexByte(b rune) bool { - if isDigit(b) { - return true - } - return (b >= 'A' && b <= 'F') || - (b >= 'a' && b <= 'f') -} - -func getValue(b []rune) (int, error) { - i := 0 - - for i < len(b) { - if isNewline(b[i:]) { - break - } - - if isOp(b[i:]) { - break - } - - valid, n, err := isValid(b[i:]) - if err != nil { - return 0, err - } - - if !valid { - break - } - - i += n - } - - return i, nil -} - -// getNegativeNumber will return a negative number from a -// byte slice. This will iterate through all characters until -// a non-digit has been found. -func getNegativeNumber(b []rune) int { - if b[0] != '-' { - return 0 - } - - i := 1 - for ; i < len(b); i++ { - if !isDigit(b[i]) { - return i - } - } - - return i -} - -// isEscaped will return whether or not the character is an escaped -// character. -func isEscaped(value []rune, b rune) bool { - if len(value) == 0 { - return false - } - - switch b { - case '\'': // single quote - case '"': // quote - case 'n': // newline - case 't': // tab - case '\\': // backslash - default: - return false - } - - return value[len(value)-1] == '\\' -} - -func getEscapedByte(b rune) (rune, error) { - switch b { - case '\'': // single quote - return '\'', nil - case '"': // quote - return '"', nil - case 'n': // newline - return '\n', nil - case 't': // table - return '\t', nil - case '\\': // backslash - return '\\', nil - default: - return b, NewParseError(fmt.Sprintf("invalid escaped character %c", b)) - } -} - -func removeEscapedCharacters(b []rune) []rune { - for i := 0; i < len(b); i++ { - if isEscaped(b[:i], b[i]) { - c, err := getEscapedByte(b[i]) - if err != nil { - return b - } - - b[i-1] = c - b = append(b[:i], b[i+1:]...) - i-- - } - } - - return b -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.go deleted file mode 100644 index 94841c3..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.go +++ /dev/null @@ -1,166 +0,0 @@ -package ini - -import ( - "fmt" - "sort" -) - -// Visitor is an interface used by walkers that will -// traverse an array of ASTs. -type Visitor interface { - VisitExpr(AST) error - VisitStatement(AST) error -} - -// DefaultVisitor is used to visit statements and expressions -// and ensure that they are both of the correct format. -// In addition, upon visiting this will build sections and populate -// the Sections field which can be used to retrieve profile -// configuration. -type DefaultVisitor struct { - scope string - Sections Sections -} - -// NewDefaultVisitor return a DefaultVisitor -func NewDefaultVisitor() *DefaultVisitor { - return &DefaultVisitor{ - Sections: Sections{ - container: map[string]Section{}, - }, - } -} - -// VisitExpr visits expressions... -func (v *DefaultVisitor) VisitExpr(expr AST) error { - t := v.Sections.container[v.scope] - if t.values == nil { - t.values = values{} - } - - switch expr.Kind { - case ASTKindExprStatement: - opExpr := expr.GetRoot() - switch opExpr.Kind { - case ASTKindEqualExpr: - children := opExpr.GetChildren() - if len(children) <= 1 { - return NewParseError("unexpected token type") - } - - rhs := children[1] - - if rhs.Root.Type() != TokenLit { - return NewParseError("unexpected token type") - } - - key := EqualExprKey(opExpr) - v, err := newValue(rhs.Root.ValueType, rhs.Root.base, rhs.Root.Raw()) - if err != nil { - return err - } - - t.values[key] = v - default: - return NewParseError(fmt.Sprintf("unsupported expression %v", expr)) - } - default: - return NewParseError(fmt.Sprintf("unsupported expression %v", expr)) - } - - v.Sections.container[v.scope] = t - return nil -} - -// VisitStatement visits statements... -func (v *DefaultVisitor) VisitStatement(stmt AST) error { - switch stmt.Kind { - case ASTKindCompletedSectionStatement: - child := stmt.GetRoot() - if child.Kind != ASTKindSectionStatement { - return NewParseError(fmt.Sprintf("unsupported child statement: %T", child)) - } - - name := string(child.Root.Raw()) - v.Sections.container[name] = Section{} - v.scope = name - default: - return NewParseError(fmt.Sprintf("unsupported statement: %s", stmt.Kind)) - } - - return nil -} - -// Sections is a map of Section structures that represent -// a configuration. -type Sections struct { - container map[string]Section -} - -// GetSection will return section p. If section p does not exist, -// false will be returned in the second parameter. -func (t Sections) GetSection(p string) (Section, bool) { - v, ok := t.container[p] - return v, ok -} - -// values represents a map of union values. -type values map[string]Value - -// List will return a list of all sections that were successfully -// parsed. -func (t Sections) List() []string { - keys := make([]string, len(t.container)) - i := 0 - for k := range t.container { - keys[i] = k - i++ - } - - sort.Strings(keys) - return keys -} - -// Section contains a name and values. This represent -// a sectioned entry in a configuration file. -type Section struct { - Name string - values values -} - -// Has will return whether or not an entry exists in a given section -func (t Section) Has(k string) bool { - _, ok := t.values[k] - return ok -} - -// ValueType will returned what type the union is set to. If -// k was not found, the NoneType will be returned. -func (t Section) ValueType(k string) (ValueType, bool) { - v, ok := t.values[k] - return v.Type, ok -} - -// Bool returns a bool value at k -func (t Section) Bool(k string) bool { - return t.values[k].BoolValue() -} - -// Int returns an integer value at k -func (t Section) Int(k string) int64 { - return t.values[k].IntValue() -} - -// Float64 returns a float value at k -func (t Section) Float64(k string) float64 { - return t.values[k].FloatValue() -} - -// String returns the string value at k -func (t Section) String(k string) string { - _, ok := t.values[k] - if !ok { - return "" - } - return t.values[k].StringValue() -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/walker.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/walker.go deleted file mode 100644 index 99915f7..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/walker.go +++ /dev/null @@ -1,25 +0,0 @@ -package ini - -// Walk will traverse the AST using the v, the Visitor. -func Walk(tree []AST, v Visitor) error { - for _, node := range tree { - switch node.Kind { - case ASTKindExpr, - ASTKindExprStatement: - - if err := v.VisitExpr(node); err != nil { - return err - } - case ASTKindStatement, - ASTKindCompletedSectionStatement, - ASTKindNestedSectionStatement, - ASTKindCompletedNestedSectionStatement: - - if err := v.VisitStatement(node); err != nil { - return err - } - } - } - - return nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ws_token.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ws_token.go deleted file mode 100644 index 7ffb4ae..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/ws_token.go +++ /dev/null @@ -1,24 +0,0 @@ -package ini - -import ( - "unicode" -) - -// isWhitespace will return whether or not the character is -// a whitespace character. -// -// Whitespace is defined as a space or tab. -func isWhitespace(c rune) bool { - return unicode.IsSpace(c) && c != '\n' && c != '\r' -} - -func newWSToken(b []rune) (Token, int, error) { - i := 0 - for ; i < len(b); i++ { - if !isWhitespace(b[i]) { - break - } - } - - return newToken(TokenWS, b[:i], NoneType), i, nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sdkio/byte.go b/vendor/github.com/aws/aws-sdk-go/internal/sdkio/byte.go deleted file mode 100644 index 6c44398..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/sdkio/byte.go +++ /dev/null @@ -1,12 +0,0 @@ -package sdkio - -const ( - // Byte is 8 bits - Byte int64 = 1 - // KibiByte (KiB) is 1024 Bytes - KibiByte = Byte * 1024 - // MebiByte (MiB) is 1024 KiB - MebiByte = KibiByte * 1024 - // GibiByte (GiB) is 1024 MiB - GibiByte = MebiByte * 1024 -) diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.6.go b/vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.6.go deleted file mode 100644 index 5aa9137..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.6.go +++ /dev/null @@ -1,10 +0,0 @@ -// +build !go1.7 - -package sdkio - -// Copy of Go 1.7 io package's Seeker constants. -const ( - SeekStart = 0 // seek relative to the origin of the file - SeekCurrent = 1 // seek relative to the current offset - SeekEnd = 2 // seek relative to the end -) diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.7.go b/vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.7.go deleted file mode 100644 index e5f0056..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/sdkio/io_go1.7.go +++ /dev/null @@ -1,12 +0,0 @@ -// +build go1.7 - -package sdkio - -import "io" - -// Alias for Go 1.7 io package Seeker constants -const ( - SeekStart = io.SeekStart // seek relative to the origin of the file - SeekCurrent = io.SeekCurrent // seek relative to the current offset - SeekEnd = io.SeekEnd // seek relative to the end -) diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor.go b/vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor.go deleted file mode 100644 index 44898ee..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor.go +++ /dev/null @@ -1,15 +0,0 @@ -// +build go1.10 - -package sdkmath - -import "math" - -// Round returns the nearest integer, rounding half away from zero. -// -// Special cases are: -// Round(±0) = ±0 -// Round(±Inf) = ±Inf -// Round(NaN) = NaN -func Round(x float64) float64 { - return math.Round(x) -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor_go1.9.go b/vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor_go1.9.go deleted file mode 100644 index 810ec7f..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/sdkmath/floor_go1.9.go +++ /dev/null @@ -1,56 +0,0 @@ -// +build !go1.10 - -package sdkmath - -import "math" - -// Copied from the Go standard library's (Go 1.12) math/floor.go for use in -// Go version prior to Go 1.10. -const ( - uvone = 0x3FF0000000000000 - mask = 0x7FF - shift = 64 - 11 - 1 - bias = 1023 - signMask = 1 << 63 - fracMask = 1<= 0.5 { - // return t + Copysign(1, x) - // } - // return t - // } - bits := math.Float64bits(x) - e := uint(bits>>shift) & mask - if e < bias { - // Round abs(x) < 1 including denormals. - bits &= signMask // +-0 - if e == bias-1 { - bits |= uvone // +-1 - } - } else if e < bias+shift { - // Round any abs(x) >= 1 containing a fractional component [0,1). - // - // Numbers with larger exponents are returned unchanged since they - // must be either an integer, infinity, or NaN. - const half = 1 << (shift - 1) - e -= bias - bits += half >> e - bits &^= fracMask >> e - } - return math.Float64frombits(bits) -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sdkrand/locked_source.go b/vendor/github.com/aws/aws-sdk-go/internal/sdkrand/locked_source.go deleted file mode 100644 index 0c9802d..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/sdkrand/locked_source.go +++ /dev/null @@ -1,29 +0,0 @@ -package sdkrand - -import ( - "math/rand" - "sync" - "time" -) - -// lockedSource is a thread-safe implementation of rand.Source -type lockedSource struct { - lk sync.Mutex - src rand.Source -} - -func (r *lockedSource) Int63() (n int64) { - r.lk.Lock() - n = r.src.Int63() - r.lk.Unlock() - return -} - -func (r *lockedSource) Seed(seed int64) { - r.lk.Lock() - r.src.Seed(seed) - r.lk.Unlock() -} - -// SeededRand is a new RNG using a thread safe implementation of rand.Source -var SeededRand = rand.New(&lockedSource{src: rand.NewSource(time.Now().UnixNano())}) diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read.go b/vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read.go deleted file mode 100644 index f4651da..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read.go +++ /dev/null @@ -1,11 +0,0 @@ -// +build go1.6 - -package sdkrand - -import "math/rand" - -// Read provides the stub for math.Rand.Read method support for go version's -// 1.6 and greater. -func Read(r *rand.Rand, p []byte) (int, error) { - return r.Read(p) -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read_1_5.go b/vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read_1_5.go deleted file mode 100644 index b1d93a3..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/sdkrand/read_1_5.go +++ /dev/null @@ -1,24 +0,0 @@ -// +build !go1.6 - -package sdkrand - -import "math/rand" - -// Read backfills Go 1.6's math.Rand.Reader for Go 1.5 -func Read(r *rand.Rand, p []byte) (n int, err error) { - // Copy of Go standard libraries math package's read function not added to - // standard library until Go 1.6. - var pos int8 - var val int64 - for n = 0; n < len(p); n++ { - if pos == 0 { - val = r.Int63() - pos = 7 - } - p[n] = byte(val) - val >>= 8 - pos-- - } - - return n, err -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sdkuri/path.go b/vendor/github.com/aws/aws-sdk-go/internal/sdkuri/path.go deleted file mode 100644 index 38ea61a..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/sdkuri/path.go +++ /dev/null @@ -1,23 +0,0 @@ -package sdkuri - -import ( - "path" - "strings" -) - -// PathJoin will join the elements of the path delimited by the "/" -// character. Similar to path.Join with the exception the trailing "/" -// character is preserved if present. -func PathJoin(elems ...string) string { - if len(elems) == 0 { - return "" - } - - hasTrailing := strings.HasSuffix(elems[len(elems)-1], "/") - str := path.Join(elems...) - if hasTrailing && str != "/" { - str += "/" - } - - return str -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/ecs_container.go b/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/ecs_container.go deleted file mode 100644 index 7da8a49..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/ecs_container.go +++ /dev/null @@ -1,12 +0,0 @@ -package shareddefaults - -const ( - // ECSCredsProviderEnvVar is an environmental variable key used to - // determine which path needs to be hit. - ECSCredsProviderEnvVar = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" -) - -// ECSContainerCredentialsURI is the endpoint to retrieve container -// credentials. This can be overridden to test to ensure the credential process -// is behaving correctly. -var ECSContainerCredentialsURI = "http://169.254.170.2" diff --git a/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config.go b/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config.go deleted file mode 100644 index ebcbc2b..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/shared_config.go +++ /dev/null @@ -1,40 +0,0 @@ -package shareddefaults - -import ( - "os" - "path/filepath" - "runtime" -) - -// SharedCredentialsFilename returns the SDK's default file path -// for the shared credentials file. -// -// Builds the shared config file path based on the OS's platform. -// -// - Linux/Unix: $HOME/.aws/credentials -// - Windows: %USERPROFILE%\.aws\credentials -func SharedCredentialsFilename() string { - return filepath.Join(UserHomeDir(), ".aws", "credentials") -} - -// SharedConfigFilename returns the SDK's default file path for -// the shared config file. -// -// Builds the shared config file path based on the OS's platform. -// -// - Linux/Unix: $HOME/.aws/config -// - Windows: %USERPROFILE%\.aws\config -func SharedConfigFilename() string { - return filepath.Join(UserHomeDir(), ".aws", "config") -} - -// UserHomeDir returns the home directory for the user the process is -// running under. -func UserHomeDir() string { - if runtime.GOOS == "windows" { // Windows - return os.Getenv("USERPROFILE") - } - - // *nix - return os.Getenv("HOME") -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/strings/strings.go b/vendor/github.com/aws/aws-sdk-go/internal/strings/strings.go deleted file mode 100644 index d008ae2..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/strings/strings.go +++ /dev/null @@ -1,11 +0,0 @@ -package strings - -import ( - "strings" -) - -// HasPrefixFold tests whether the string s begins with prefix, interpreted as UTF-8 strings, -// under Unicode case-folding. -func HasPrefixFold(s, prefix string) bool { - return len(s) >= len(prefix) && strings.EqualFold(s[0:len(prefix)], prefix) -} diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/LICENSE b/vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/LICENSE deleted file mode 100644 index 6a66aea..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/singleflight.go b/vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/singleflight.go deleted file mode 100644 index 14ad0c5..0000000 --- a/vendor/github.com/aws/aws-sdk-go/internal/sync/singleflight/singleflight.go +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package singleflight provides a duplicate function call suppression -// mechanism. -package singleflight - -import "sync" - -// call is an in-flight or completed singleflight.Do call -type call struct { - wg sync.WaitGroup - - // These fields are written once before the WaitGroup is done - // and are only read after the WaitGroup is done. - val interface{} - err error - - // forgotten indicates whether Forget was called with this call's key - // while the call was still in flight. - forgotten bool - - // These fields are read and written with the singleflight - // mutex held before the WaitGroup is done, and are read but - // not written after the WaitGroup is done. - dups int - chans []chan<- Result -} - -// Group represents a class of work and forms a namespace in -// which units of work can be executed with duplicate suppression. -type Group struct { - mu sync.Mutex // protects m - m map[string]*call // lazily initialized -} - -// Result holds the results of Do, so they can be passed -// on a channel. -type Result struct { - Val interface{} - Err error - Shared bool -} - -// Do executes and returns the results of the given function, making -// sure that only one execution is in-flight for a given key at a -// time. If a duplicate comes in, the duplicate caller waits for the -// original to complete and receives the same results. -// The return value shared indicates whether v was given to multiple callers. -func (g *Group) Do(key string, fn func() (interface{}, error)) (v interface{}, err error, shared bool) { - g.mu.Lock() - if g.m == nil { - g.m = make(map[string]*call) - } - if c, ok := g.m[key]; ok { - c.dups++ - g.mu.Unlock() - c.wg.Wait() - return c.val, c.err, true - } - c := new(call) - c.wg.Add(1) - g.m[key] = c - g.mu.Unlock() - - g.doCall(c, key, fn) - return c.val, c.err, c.dups > 0 -} - -// DoChan is like Do but returns a channel that will receive the -// results when they are ready. -func (g *Group) DoChan(key string, fn func() (interface{}, error)) <-chan Result { - ch := make(chan Result, 1) - g.mu.Lock() - if g.m == nil { - g.m = make(map[string]*call) - } - if c, ok := g.m[key]; ok { - c.dups++ - c.chans = append(c.chans, ch) - g.mu.Unlock() - return ch - } - c := &call{chans: []chan<- Result{ch}} - c.wg.Add(1) - g.m[key] = c - g.mu.Unlock() - - go g.doCall(c, key, fn) - - return ch -} - -// doCall handles the single call for a key. -func (g *Group) doCall(c *call, key string, fn func() (interface{}, error)) { - c.val, c.err = fn() - c.wg.Done() - - g.mu.Lock() - if !c.forgotten { - delete(g.m, key) - } - for _, ch := range c.chans { - ch <- Result{c.val, c.err, c.dups > 0} - } - g.mu.Unlock() -} - -// Forget tells the singleflight to forget about a key. Future calls -// to Do for this key will call the function rather than waiting for -// an earlier call to complete. -func (g *Group) Forget(key string) { - g.mu.Lock() - if c, ok := g.m[key]; ok { - c.forgotten = true - } - delete(g.m, key) - g.mu.Unlock() -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/host.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/host.go deleted file mode 100644 index 1f1d27a..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/host.go +++ /dev/null @@ -1,104 +0,0 @@ -package protocol - -import ( - "github.com/aws/aws-sdk-go/aws/request" - "net" - "strconv" - "strings" -) - -// ValidateEndpointHostHandler is a request handler that will validate the -// request endpoint's hosts is a valid RFC 3986 host. -var ValidateEndpointHostHandler = request.NamedHandler{ - Name: "awssdk.protocol.ValidateEndpointHostHandler", - Fn: func(r *request.Request) { - err := ValidateEndpointHost(r.Operation.Name, r.HTTPRequest.URL.Host) - if err != nil { - r.Error = err - } - }, -} - -// ValidateEndpointHost validates that the host string passed in is a valid RFC -// 3986 host. Returns error if the host is not valid. -func ValidateEndpointHost(opName, host string) error { - paramErrs := request.ErrInvalidParams{Context: opName} - - var hostname string - var port string - var err error - - if strings.Contains(host, ":") { - hostname, port, err = net.SplitHostPort(host) - - if err != nil { - paramErrs.Add(request.NewErrParamFormat("endpoint", err.Error(), host)) - } - - if !ValidPortNumber(port) { - paramErrs.Add(request.NewErrParamFormat("endpoint port number", "[0-65535]", port)) - } - } else { - hostname = host - } - - labels := strings.Split(hostname, ".") - for i, label := range labels { - if i == len(labels)-1 && len(label) == 0 { - // Allow trailing dot for FQDN hosts. - continue - } - - if !ValidHostLabel(label) { - paramErrs.Add(request.NewErrParamFormat( - "endpoint host label", "[a-zA-Z0-9-]{1,63}", label)) - } - } - - if len(hostname) == 0 { - paramErrs.Add(request.NewErrParamMinLen("endpoint host", 1)) - } - - if len(hostname) > 255 { - paramErrs.Add(request.NewErrParamMaxLen( - "endpoint host", 255, host, - )) - } - - if paramErrs.Len() > 0 { - return paramErrs - } - return nil -} - -// ValidHostLabel returns if the label is a valid RFC 3986 host label. -func ValidHostLabel(label string) bool { - if l := len(label); l == 0 || l > 63 { - return false - } - for _, r := range label { - switch { - case r >= '0' && r <= '9': - case r >= 'A' && r <= 'Z': - case r >= 'a' && r <= 'z': - case r == '-': - default: - return false - } - } - - return true -} - -// ValidPortNumber return if the port is valid RFC 3986 port -func ValidPortNumber(port string) bool { - i, err := strconv.Atoi(port) - if err != nil { - return false - } - - if i < 0 || i > 65535 { - return false - } - return true -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/host_prefix.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/host_prefix.go deleted file mode 100644 index 915b0fc..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/host_prefix.go +++ /dev/null @@ -1,54 +0,0 @@ -package protocol - -import ( - "strings" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/request" -) - -// HostPrefixHandlerName is the handler name for the host prefix request -// handler. -const HostPrefixHandlerName = "awssdk.endpoint.HostPrefixHandler" - -// NewHostPrefixHandler constructs a build handler -func NewHostPrefixHandler(prefix string, labelsFn func() map[string]string) request.NamedHandler { - builder := HostPrefixBuilder{ - Prefix: prefix, - LabelsFn: labelsFn, - } - - return request.NamedHandler{ - Name: HostPrefixHandlerName, - Fn: builder.Build, - } -} - -// HostPrefixBuilder provides the request handler to expand and prepend -// the host prefix into the operation's request endpoint host. -type HostPrefixBuilder struct { - Prefix string - LabelsFn func() map[string]string -} - -// Build updates the passed in Request with the HostPrefix template expanded. -func (h HostPrefixBuilder) Build(r *request.Request) { - if aws.BoolValue(r.Config.DisableEndpointHostPrefix) { - return - } - - var labels map[string]string - if h.LabelsFn != nil { - labels = h.LabelsFn() - } - - prefix := h.Prefix - for name, value := range labels { - prefix = strings.Replace(prefix, "{"+name+"}", value, -1) - } - - r.HTTPRequest.URL.Host = prefix + r.HTTPRequest.URL.Host - if len(r.HTTPRequest.Host) > 0 { - r.HTTPRequest.Host = prefix + r.HTTPRequest.Host - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/idempotency.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/idempotency.go deleted file mode 100644 index 53831df..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/idempotency.go +++ /dev/null @@ -1,75 +0,0 @@ -package protocol - -import ( - "crypto/rand" - "fmt" - "reflect" -) - -// RandReader is the random reader the protocol package will use to read -// random bytes from. This is exported for testing, and should not be used. -var RandReader = rand.Reader - -const idempotencyTokenFillTag = `idempotencyToken` - -// CanSetIdempotencyToken returns true if the struct field should be -// automatically populated with a Idempotency token. -// -// Only *string and string type fields that are tagged with idempotencyToken -// which are not already set can be auto filled. -func CanSetIdempotencyToken(v reflect.Value, f reflect.StructField) bool { - switch u := v.Interface().(type) { - // To auto fill an Idempotency token the field must be a string, - // tagged for auto fill, and have a zero value. - case *string: - return u == nil && len(f.Tag.Get(idempotencyTokenFillTag)) != 0 - case string: - return len(u) == 0 && len(f.Tag.Get(idempotencyTokenFillTag)) != 0 - } - - return false -} - -// GetIdempotencyToken returns a randomly generated idempotency token. -func GetIdempotencyToken() string { - b := make([]byte, 16) - RandReader.Read(b) - - return UUIDVersion4(b) -} - -// SetIdempotencyToken will set the value provided with a Idempotency Token. -// Given that the value can be set. Will panic if value is not setable. -func SetIdempotencyToken(v reflect.Value) { - if v.Kind() == reflect.Ptr { - if v.IsNil() && v.CanSet() { - v.Set(reflect.New(v.Type().Elem())) - } - v = v.Elem() - } - v = reflect.Indirect(v) - - if !v.CanSet() { - panic(fmt.Sprintf("unable to set idempotnecy token %v", v)) - } - - b := make([]byte, 16) - _, err := rand.Read(b) - if err != nil { - // TODO handle error - return - } - - v.Set(reflect.ValueOf(UUIDVersion4(b))) -} - -// UUIDVersion4 returns a Version 4 random UUID from the byte slice provided -func UUIDVersion4(u []byte) string { - // https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_.28random.29 - // 13th character is "4" - u[6] = (u[6] | 0x40) & 0x4F - // 17th character is "8", "9", "a", or "b" - u[8] = (u[8] | 0x80) & 0xBF - - return fmt.Sprintf(`%X-%X-%X-%X-%X`, u[0:4], u[4:6], u[6:8], u[8:10], u[10:]) -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/build.go deleted file mode 100644 index 864fb67..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/build.go +++ /dev/null @@ -1,296 +0,0 @@ -// Package jsonutil provides JSON serialization of AWS requests and responses. -package jsonutil - -import ( - "bytes" - "encoding/base64" - "encoding/json" - "fmt" - "math" - "reflect" - "sort" - "strconv" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/private/protocol" -) - -var timeType = reflect.ValueOf(time.Time{}).Type() -var byteSliceType = reflect.ValueOf([]byte{}).Type() - -// BuildJSON builds a JSON string for a given object v. -func BuildJSON(v interface{}) ([]byte, error) { - var buf bytes.Buffer - - err := buildAny(reflect.ValueOf(v), &buf, "") - return buf.Bytes(), err -} - -func buildAny(value reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) error { - origVal := value - value = reflect.Indirect(value) - if !value.IsValid() { - return nil - } - - vtype := value.Type() - - t := tag.Get("type") - if t == "" { - switch vtype.Kind() { - case reflect.Struct: - // also it can't be a time object - if value.Type() != timeType { - t = "structure" - } - case reflect.Slice: - // also it can't be a byte slice - if _, ok := value.Interface().([]byte); !ok { - t = "list" - } - case reflect.Map: - // cannot be a JSONValue map - if _, ok := value.Interface().(aws.JSONValue); !ok { - t = "map" - } - } - } - - switch t { - case "structure": - if field, ok := vtype.FieldByName("_"); ok { - tag = field.Tag - } - return buildStruct(value, buf, tag) - case "list": - return buildList(value, buf, tag) - case "map": - return buildMap(value, buf, tag) - default: - return buildScalar(origVal, buf, tag) - } -} - -func buildStruct(value reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) error { - if !value.IsValid() { - return nil - } - - // unwrap payloads - if payload := tag.Get("payload"); payload != "" { - field, _ := value.Type().FieldByName(payload) - tag = field.Tag - value = elemOf(value.FieldByName(payload)) - - if !value.IsValid() { - return nil - } - } - - buf.WriteByte('{') - - t := value.Type() - first := true - for i := 0; i < t.NumField(); i++ { - member := value.Field(i) - - // This allocates the most memory. - // Additionally, we cannot skip nil fields due to - // idempotency auto filling. - field := t.Field(i) - - if field.PkgPath != "" { - continue // ignore unexported fields - } - if field.Tag.Get("json") == "-" { - continue - } - if field.Tag.Get("location") != "" { - continue // ignore non-body elements - } - if field.Tag.Get("ignore") != "" { - continue - } - - if protocol.CanSetIdempotencyToken(member, field) { - token := protocol.GetIdempotencyToken() - member = reflect.ValueOf(&token) - } - - if (member.Kind() == reflect.Ptr || member.Kind() == reflect.Slice || member.Kind() == reflect.Map) && member.IsNil() { - continue // ignore unset fields - } - - if first { - first = false - } else { - buf.WriteByte(',') - } - - // figure out what this field is called - name := field.Name - if locName := field.Tag.Get("locationName"); locName != "" { - name = locName - } - - writeString(name, buf) - buf.WriteString(`:`) - - err := buildAny(member, buf, field.Tag) - if err != nil { - return err - } - - } - - buf.WriteString("}") - - return nil -} - -func buildList(value reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) error { - buf.WriteString("[") - - for i := 0; i < value.Len(); i++ { - buildAny(value.Index(i), buf, "") - - if i < value.Len()-1 { - buf.WriteString(",") - } - } - - buf.WriteString("]") - - return nil -} - -type sortedValues []reflect.Value - -func (sv sortedValues) Len() int { return len(sv) } -func (sv sortedValues) Swap(i, j int) { sv[i], sv[j] = sv[j], sv[i] } -func (sv sortedValues) Less(i, j int) bool { return sv[i].String() < sv[j].String() } - -func buildMap(value reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) error { - buf.WriteString("{") - - sv := sortedValues(value.MapKeys()) - sort.Sort(sv) - - for i, k := range sv { - if i > 0 { - buf.WriteByte(',') - } - - writeString(k.String(), buf) - buf.WriteString(`:`) - - buildAny(value.MapIndex(k), buf, "") - } - - buf.WriteString("}") - - return nil -} - -func buildScalar(v reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) error { - // prevents allocation on the heap. - scratch := [64]byte{} - switch value := reflect.Indirect(v); value.Kind() { - case reflect.String: - writeString(value.String(), buf) - case reflect.Bool: - if value.Bool() { - buf.WriteString("true") - } else { - buf.WriteString("false") - } - case reflect.Int64: - buf.Write(strconv.AppendInt(scratch[:0], value.Int(), 10)) - case reflect.Float64: - f := value.Float() - if math.IsInf(f, 0) || math.IsNaN(f) { - return &json.UnsupportedValueError{Value: v, Str: strconv.FormatFloat(f, 'f', -1, 64)} - } - buf.Write(strconv.AppendFloat(scratch[:0], f, 'f', -1, 64)) - default: - switch converted := value.Interface().(type) { - case time.Time: - format := tag.Get("timestampFormat") - if len(format) == 0 { - format = protocol.UnixTimeFormatName - } - - ts := protocol.FormatTime(format, converted) - if format != protocol.UnixTimeFormatName { - ts = `"` + ts + `"` - } - - buf.WriteString(ts) - case []byte: - if !value.IsNil() { - buf.WriteByte('"') - if len(converted) < 1024 { - // for small buffers, using Encode directly is much faster. - dst := make([]byte, base64.StdEncoding.EncodedLen(len(converted))) - base64.StdEncoding.Encode(dst, converted) - buf.Write(dst) - } else { - // for large buffers, avoid unnecessary extra temporary - // buffer space. - enc := base64.NewEncoder(base64.StdEncoding, buf) - enc.Write(converted) - enc.Close() - } - buf.WriteByte('"') - } - case aws.JSONValue: - str, err := protocol.EncodeJSONValue(converted, protocol.QuotedEscape) - if err != nil { - return fmt.Errorf("unable to encode JSONValue, %v", err) - } - buf.WriteString(str) - default: - return fmt.Errorf("unsupported JSON value %v (%s)", value.Interface(), value.Type()) - } - } - return nil -} - -var hex = "0123456789abcdef" - -func writeString(s string, buf *bytes.Buffer) { - buf.WriteByte('"') - for i := 0; i < len(s); i++ { - if s[i] == '"' { - buf.WriteString(`\"`) - } else if s[i] == '\\' { - buf.WriteString(`\\`) - } else if s[i] == '\b' { - buf.WriteString(`\b`) - } else if s[i] == '\f' { - buf.WriteString(`\f`) - } else if s[i] == '\r' { - buf.WriteString(`\r`) - } else if s[i] == '\t' { - buf.WriteString(`\t`) - } else if s[i] == '\n' { - buf.WriteString(`\n`) - } else if s[i] < 32 { - buf.WriteString("\\u00") - buf.WriteByte(hex[s[i]>>4]) - buf.WriteByte(hex[s[i]&0xF]) - } else { - buf.WriteByte(s[i]) - } - } - buf.WriteByte('"') -} - -// Returns the reflection element of a value, if it is a pointer. -func elemOf(value reflect.Value) reflect.Value { - for value.Kind() == reflect.Ptr { - value = value.Elem() - } - return value -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/unmarshal.go deleted file mode 100644 index 8b2c9bb..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/unmarshal.go +++ /dev/null @@ -1,304 +0,0 @@ -package jsonutil - -import ( - "bytes" - "encoding/base64" - "encoding/json" - "fmt" - "io" - "math/big" - "reflect" - "strings" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/private/protocol" -) - -var millisecondsFloat = new(big.Float).SetInt64(1e3) - -// UnmarshalJSONError unmarshal's the reader's JSON document into the passed in -// type. The value to unmarshal the json document into must be a pointer to the -// type. -func UnmarshalJSONError(v interface{}, stream io.Reader) error { - var errBuf bytes.Buffer - body := io.TeeReader(stream, &errBuf) - - err := json.NewDecoder(body).Decode(v) - if err != nil { - msg := "failed decoding error message" - if err == io.EOF { - msg = "error message missing" - err = nil - } - return awserr.NewUnmarshalError(err, msg, errBuf.Bytes()) - } - - return nil -} - -// UnmarshalJSON reads a stream and unmarshals the results in object v. -func UnmarshalJSON(v interface{}, stream io.Reader) error { - var out interface{} - - decoder := json.NewDecoder(stream) - decoder.UseNumber() - err := decoder.Decode(&out) - if err == io.EOF { - return nil - } else if err != nil { - return err - } - - return unmarshaler{}.unmarshalAny(reflect.ValueOf(v), out, "") -} - -// UnmarshalJSONCaseInsensitive reads a stream and unmarshals the result into the -// object v. Ignores casing for structure members. -func UnmarshalJSONCaseInsensitive(v interface{}, stream io.Reader) error { - var out interface{} - - decoder := json.NewDecoder(stream) - decoder.UseNumber() - err := decoder.Decode(&out) - if err == io.EOF { - return nil - } else if err != nil { - return err - } - - return unmarshaler{ - caseInsensitive: true, - }.unmarshalAny(reflect.ValueOf(v), out, "") -} - -type unmarshaler struct { - caseInsensitive bool -} - -func (u unmarshaler) unmarshalAny(value reflect.Value, data interface{}, tag reflect.StructTag) error { - vtype := value.Type() - if vtype.Kind() == reflect.Ptr { - vtype = vtype.Elem() // check kind of actual element type - } - - t := tag.Get("type") - if t == "" { - switch vtype.Kind() { - case reflect.Struct: - // also it can't be a time object - if _, ok := value.Interface().(*time.Time); !ok { - t = "structure" - } - case reflect.Slice: - // also it can't be a byte slice - if _, ok := value.Interface().([]byte); !ok { - t = "list" - } - case reflect.Map: - // cannot be a JSONValue map - if _, ok := value.Interface().(aws.JSONValue); !ok { - t = "map" - } - } - } - - switch t { - case "structure": - if field, ok := vtype.FieldByName("_"); ok { - tag = field.Tag - } - return u.unmarshalStruct(value, data, tag) - case "list": - return u.unmarshalList(value, data, tag) - case "map": - return u.unmarshalMap(value, data, tag) - default: - return u.unmarshalScalar(value, data, tag) - } -} - -func (u unmarshaler) unmarshalStruct(value reflect.Value, data interface{}, tag reflect.StructTag) error { - if data == nil { - return nil - } - mapData, ok := data.(map[string]interface{}) - if !ok { - return fmt.Errorf("JSON value is not a structure (%#v)", data) - } - - t := value.Type() - if value.Kind() == reflect.Ptr { - if value.IsNil() { // create the structure if it's nil - s := reflect.New(value.Type().Elem()) - value.Set(s) - value = s - } - - value = value.Elem() - t = t.Elem() - } - - // unwrap any payloads - if payload := tag.Get("payload"); payload != "" { - field, _ := t.FieldByName(payload) - return u.unmarshalAny(value.FieldByName(payload), data, field.Tag) - } - - for i := 0; i < t.NumField(); i++ { - field := t.Field(i) - if field.PkgPath != "" { - continue // ignore unexported fields - } - - // figure out what this field is called - name := field.Name - if locName := field.Tag.Get("locationName"); locName != "" { - name = locName - } - if u.caseInsensitive { - if _, ok := mapData[name]; !ok { - // Fallback to uncased name search if the exact name didn't match. - for kn, v := range mapData { - if strings.EqualFold(kn, name) { - mapData[name] = v - } - } - } - } - - member := value.FieldByIndex(field.Index) - err := u.unmarshalAny(member, mapData[name], field.Tag) - if err != nil { - return err - } - } - return nil -} - -func (u unmarshaler) unmarshalList(value reflect.Value, data interface{}, tag reflect.StructTag) error { - if data == nil { - return nil - } - listData, ok := data.([]interface{}) - if !ok { - return fmt.Errorf("JSON value is not a list (%#v)", data) - } - - if value.IsNil() { - l := len(listData) - value.Set(reflect.MakeSlice(value.Type(), l, l)) - } - - for i, c := range listData { - err := u.unmarshalAny(value.Index(i), c, "") - if err != nil { - return err - } - } - - return nil -} - -func (u unmarshaler) unmarshalMap(value reflect.Value, data interface{}, tag reflect.StructTag) error { - if data == nil { - return nil - } - mapData, ok := data.(map[string]interface{}) - if !ok { - return fmt.Errorf("JSON value is not a map (%#v)", data) - } - - if value.IsNil() { - value.Set(reflect.MakeMap(value.Type())) - } - - for k, v := range mapData { - kvalue := reflect.ValueOf(k) - vvalue := reflect.New(value.Type().Elem()).Elem() - - u.unmarshalAny(vvalue, v, "") - value.SetMapIndex(kvalue, vvalue) - } - - return nil -} - -func (u unmarshaler) unmarshalScalar(value reflect.Value, data interface{}, tag reflect.StructTag) error { - - switch d := data.(type) { - case nil: - return nil // nothing to do here - case string: - switch value.Interface().(type) { - case *string: - value.Set(reflect.ValueOf(&d)) - case []byte: - b, err := base64.StdEncoding.DecodeString(d) - if err != nil { - return err - } - value.Set(reflect.ValueOf(b)) - case *time.Time: - format := tag.Get("timestampFormat") - if len(format) == 0 { - format = protocol.ISO8601TimeFormatName - } - - t, err := protocol.ParseTime(format, d) - if err != nil { - return err - } - value.Set(reflect.ValueOf(&t)) - case aws.JSONValue: - // No need to use escaping as the value is a non-quoted string. - v, err := protocol.DecodeJSONValue(d, protocol.NoEscape) - if err != nil { - return err - } - value.Set(reflect.ValueOf(v)) - default: - return fmt.Errorf("unsupported value: %v (%s)", value.Interface(), value.Type()) - } - case json.Number: - switch value.Interface().(type) { - case *int64: - // Retain the old behavior where we would just truncate the float64 - // calling d.Int64() here could cause an invalid syntax error due to the usage of strconv.ParseInt - f, err := d.Float64() - if err != nil { - return err - } - di := int64(f) - value.Set(reflect.ValueOf(&di)) - case *float64: - f, err := d.Float64() - if err != nil { - return err - } - value.Set(reflect.ValueOf(&f)) - case *time.Time: - float, ok := new(big.Float).SetString(d.String()) - if !ok { - return fmt.Errorf("unsupported float time representation: %v", d.String()) - } - float = float.Mul(float, millisecondsFloat) - ms, _ := float.Int64() - t := time.Unix(0, ms*1e6).UTC() - value.Set(reflect.ValueOf(&t)) - default: - return fmt.Errorf("unsupported value: %v (%s)", value.Interface(), value.Type()) - } - case bool: - switch value.Interface().(type) { - case *bool: - value.Set(reflect.ValueOf(&d)) - default: - return fmt.Errorf("unsupported value: %v (%s)", value.Interface(), value.Type()) - } - default: - return fmt.Errorf("unsupported JSON value (%v)", data) - } - return nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/jsonrpc.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/jsonrpc.go deleted file mode 100644 index a029217..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/jsonrpc.go +++ /dev/null @@ -1,88 +0,0 @@ -// Package jsonrpc provides JSON RPC utilities for serialization of AWS -// requests and responses. -package jsonrpc - -//go:generate go run -tags codegen ../../../private/model/cli/gen-protocol-tests ../../../models/protocol_tests/input/json.json build_test.go -//go:generate go run -tags codegen ../../../private/model/cli/gen-protocol-tests ../../../models/protocol_tests/output/json.json unmarshal_test.go - -import ( - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil" - "github.com/aws/aws-sdk-go/private/protocol/rest" -) - -var emptyJSON = []byte("{}") - -// BuildHandler is a named request handler for building jsonrpc protocol -// requests -var BuildHandler = request.NamedHandler{ - Name: "awssdk.jsonrpc.Build", - Fn: Build, -} - -// UnmarshalHandler is a named request handler for unmarshaling jsonrpc -// protocol requests -var UnmarshalHandler = request.NamedHandler{ - Name: "awssdk.jsonrpc.Unmarshal", - Fn: Unmarshal, -} - -// UnmarshalMetaHandler is a named request handler for unmarshaling jsonrpc -// protocol request metadata -var UnmarshalMetaHandler = request.NamedHandler{ - Name: "awssdk.jsonrpc.UnmarshalMeta", - Fn: UnmarshalMeta, -} - -// Build builds a JSON payload for a JSON RPC request. -func Build(req *request.Request) { - var buf []byte - var err error - if req.ParamsFilled() { - buf, err = jsonutil.BuildJSON(req.Params) - if err != nil { - req.Error = awserr.New(request.ErrCodeSerialization, "failed encoding JSON RPC request", err) - return - } - } else { - buf = emptyJSON - } - - if req.ClientInfo.TargetPrefix != "" || string(buf) != "{}" { - req.SetBufferBody(buf) - } - - if req.ClientInfo.TargetPrefix != "" { - target := req.ClientInfo.TargetPrefix + "." + req.Operation.Name - req.HTTPRequest.Header.Add("X-Amz-Target", target) - } - - // Only set the content type if one is not already specified and an - // JSONVersion is specified. - if ct, v := req.HTTPRequest.Header.Get("Content-Type"), req.ClientInfo.JSONVersion; len(ct) == 0 && len(v) != 0 { - jsonVersion := req.ClientInfo.JSONVersion - req.HTTPRequest.Header.Set("Content-Type", "application/x-amz-json-"+jsonVersion) - } -} - -// Unmarshal unmarshals a response for a JSON RPC service. -func Unmarshal(req *request.Request) { - defer req.HTTPResponse.Body.Close() - if req.DataFilled() { - err := jsonutil.UnmarshalJSON(req.Data, req.HTTPResponse.Body) - if err != nil { - req.Error = awserr.NewRequestFailure( - awserr.New(request.ErrCodeSerialization, "failed decoding JSON RPC response", err), - req.HTTPResponse.StatusCode, - req.RequestID, - ) - } - } - return -} - -// UnmarshalMeta unmarshals headers from a response for a JSON RPC service. -func UnmarshalMeta(req *request.Request) { - rest.UnmarshalMeta(req) -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/unmarshal_error.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/unmarshal_error.go deleted file mode 100644 index c0c52e2..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/unmarshal_error.go +++ /dev/null @@ -1,107 +0,0 @@ -package jsonrpc - -import ( - "bytes" - "io" - "io/ioutil" - "net/http" - "strings" - - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/private/protocol" - "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil" -) - -// UnmarshalTypedError provides unmarshaling errors API response errors -// for both typed and untyped errors. -type UnmarshalTypedError struct { - exceptions map[string]func(protocol.ResponseMetadata) error -} - -// NewUnmarshalTypedError returns an UnmarshalTypedError initialized for the -// set of exception names to the error unmarshalers -func NewUnmarshalTypedError(exceptions map[string]func(protocol.ResponseMetadata) error) *UnmarshalTypedError { - return &UnmarshalTypedError{ - exceptions: exceptions, - } -} - -// UnmarshalError attempts to unmarshal the HTTP response error as a known -// error type. If unable to unmarshal the error type, the generic SDK error -// type will be used. -func (u *UnmarshalTypedError) UnmarshalError( - resp *http.Response, - respMeta protocol.ResponseMetadata, -) (error, error) { - - var buf bytes.Buffer - var jsonErr jsonErrorResponse - teeReader := io.TeeReader(resp.Body, &buf) - err := jsonutil.UnmarshalJSONError(&jsonErr, teeReader) - if err != nil { - return nil, err - } - body := ioutil.NopCloser(&buf) - - // Code may be separated by hash(#), with the last element being the code - // used by the SDK. - codeParts := strings.SplitN(jsonErr.Code, "#", 2) - code := codeParts[len(codeParts)-1] - msg := jsonErr.Message - - if fn, ok := u.exceptions[code]; ok { - // If exception code is know, use associated constructor to get a value - // for the exception that the JSON body can be unmarshaled into. - v := fn(respMeta) - err := jsonutil.UnmarshalJSONCaseInsensitive(v, body) - if err != nil { - return nil, err - } - - return v, nil - } - - // fallback to unmodeled generic exceptions - return awserr.NewRequestFailure( - awserr.New(code, msg, nil), - respMeta.StatusCode, - respMeta.RequestID, - ), nil -} - -// UnmarshalErrorHandler is a named request handler for unmarshaling jsonrpc -// protocol request errors -var UnmarshalErrorHandler = request.NamedHandler{ - Name: "awssdk.jsonrpc.UnmarshalError", - Fn: UnmarshalError, -} - -// UnmarshalError unmarshals an error response for a JSON RPC service. -func UnmarshalError(req *request.Request) { - defer req.HTTPResponse.Body.Close() - - var jsonErr jsonErrorResponse - err := jsonutil.UnmarshalJSONError(&jsonErr, req.HTTPResponse.Body) - if err != nil { - req.Error = awserr.NewRequestFailure( - awserr.New(request.ErrCodeSerialization, - "failed to unmarshal error message", err), - req.HTTPResponse.StatusCode, - req.RequestID, - ) - return - } - - codes := strings.SplitN(jsonErr.Code, "#", 2) - req.Error = awserr.NewRequestFailure( - awserr.New(codes[len(codes)-1], jsonErr.Message, nil), - req.HTTPResponse.StatusCode, - req.RequestID, - ) -} - -type jsonErrorResponse struct { - Code string `json:"__type"` - Message string `json:"message"` -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonvalue.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonvalue.go deleted file mode 100644 index 776d110..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonvalue.go +++ /dev/null @@ -1,76 +0,0 @@ -package protocol - -import ( - "encoding/base64" - "encoding/json" - "fmt" - "strconv" - - "github.com/aws/aws-sdk-go/aws" -) - -// EscapeMode is the mode that should be use for escaping a value -type EscapeMode uint - -// The modes for escaping a value before it is marshaled, and unmarshaled. -const ( - NoEscape EscapeMode = iota - Base64Escape - QuotedEscape -) - -// EncodeJSONValue marshals the value into a JSON string, and optionally base64 -// encodes the string before returning it. -// -// Will panic if the escape mode is unknown. -func EncodeJSONValue(v aws.JSONValue, escape EscapeMode) (string, error) { - b, err := json.Marshal(v) - if err != nil { - return "", err - } - - switch escape { - case NoEscape: - return string(b), nil - case Base64Escape: - return base64.StdEncoding.EncodeToString(b), nil - case QuotedEscape: - return strconv.Quote(string(b)), nil - } - - panic(fmt.Sprintf("EncodeJSONValue called with unknown EscapeMode, %v", escape)) -} - -// DecodeJSONValue will attempt to decode the string input as a JSONValue. -// Optionally decoding base64 the value first before JSON unmarshaling. -// -// Will panic if the escape mode is unknown. -func DecodeJSONValue(v string, escape EscapeMode) (aws.JSONValue, error) { - var b []byte - var err error - - switch escape { - case NoEscape: - b = []byte(v) - case Base64Escape: - b, err = base64.StdEncoding.DecodeString(v) - case QuotedEscape: - var u string - u, err = strconv.Unquote(v) - b = []byte(u) - default: - panic(fmt.Sprintf("DecodeJSONValue called with unknown EscapeMode, %v", escape)) - } - - if err != nil { - return nil, err - } - - m := aws.JSONValue{} - err = json.Unmarshal(b, &m) - if err != nil { - return nil, err - } - - return m, nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/payload.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/payload.go deleted file mode 100644 index 0ea0647..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/payload.go +++ /dev/null @@ -1,81 +0,0 @@ -package protocol - -import ( - "io" - "io/ioutil" - "net/http" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/client/metadata" - "github.com/aws/aws-sdk-go/aws/request" -) - -// PayloadUnmarshaler provides the interface for unmarshaling a payload's -// reader into a SDK shape. -type PayloadUnmarshaler interface { - UnmarshalPayload(io.Reader, interface{}) error -} - -// HandlerPayloadUnmarshal implements the PayloadUnmarshaler from a -// HandlerList. This provides the support for unmarshaling a payload reader to -// a shape without needing a SDK request first. -type HandlerPayloadUnmarshal struct { - Unmarshalers request.HandlerList -} - -// UnmarshalPayload unmarshals the io.Reader payload into the SDK shape using -// the Unmarshalers HandlerList provided. Returns an error if unable -// unmarshaling fails. -func (h HandlerPayloadUnmarshal) UnmarshalPayload(r io.Reader, v interface{}) error { - req := &request.Request{ - HTTPRequest: &http.Request{}, - HTTPResponse: &http.Response{ - StatusCode: 200, - Header: http.Header{}, - Body: ioutil.NopCloser(r), - }, - Data: v, - } - - h.Unmarshalers.Run(req) - - return req.Error -} - -// PayloadMarshaler provides the interface for marshaling a SDK shape into and -// io.Writer. -type PayloadMarshaler interface { - MarshalPayload(io.Writer, interface{}) error -} - -// HandlerPayloadMarshal implements the PayloadMarshaler from a HandlerList. -// This provides support for marshaling a SDK shape into an io.Writer without -// needing a SDK request first. -type HandlerPayloadMarshal struct { - Marshalers request.HandlerList -} - -// MarshalPayload marshals the SDK shape into the io.Writer using the -// Marshalers HandlerList provided. Returns an error if unable if marshal -// fails. -func (h HandlerPayloadMarshal) MarshalPayload(w io.Writer, v interface{}) error { - req := request.New( - aws.Config{}, - metadata.ClientInfo{}, - request.Handlers{}, - nil, - &request.Operation{HTTPMethod: "PUT"}, - v, - nil, - ) - - h.Marshalers.Run(req) - - if req.Error != nil { - return req.Error - } - - io.Copy(w, req.GetBody()) - - return nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/protocol.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/protocol.go deleted file mode 100644 index 9d521dc..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/protocol.go +++ /dev/null @@ -1,49 +0,0 @@ -package protocol - -import ( - "fmt" - "strings" - - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/request" -) - -// RequireHTTPMinProtocol request handler is used to enforce that -// the target endpoint supports the given major and minor HTTP protocol version. -type RequireHTTPMinProtocol struct { - Major, Minor int -} - -// Handler will mark the request.Request with an error if the -// target endpoint did not connect with the required HTTP protocol -// major and minor version. -func (p RequireHTTPMinProtocol) Handler(r *request.Request) { - if r.Error != nil || r.HTTPResponse == nil { - return - } - - if !strings.HasPrefix(r.HTTPResponse.Proto, "HTTP") { - r.Error = newMinHTTPProtoError(p.Major, p.Minor, r) - } - - if r.HTTPResponse.ProtoMajor < p.Major || r.HTTPResponse.ProtoMinor < p.Minor { - r.Error = newMinHTTPProtoError(p.Major, p.Minor, r) - } -} - -// ErrCodeMinimumHTTPProtocolError error code is returned when the target endpoint -// did not match the required HTTP major and minor protocol version. -const ErrCodeMinimumHTTPProtocolError = "MinimumHTTPProtocolError" - -func newMinHTTPProtoError(major, minor int, r *request.Request) error { - return awserr.NewRequestFailure( - awserr.New("MinimumHTTPProtocolError", - fmt.Sprintf( - "operation requires minimum HTTP protocol of HTTP/%d.%d, but was %s", - major, minor, r.HTTPResponse.Proto, - ), - nil, - ), - r.HTTPResponse.StatusCode, r.RequestID, - ) -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.go deleted file mode 100644 index d40346a..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.go +++ /dev/null @@ -1,36 +0,0 @@ -// Package query provides serialization of AWS query requests, and responses. -package query - -//go:generate go run -tags codegen ../../../private/model/cli/gen-protocol-tests ../../../models/protocol_tests/input/query.json build_test.go - -import ( - "net/url" - - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/private/protocol/query/queryutil" -) - -// BuildHandler is a named request handler for building query protocol requests -var BuildHandler = request.NamedHandler{Name: "awssdk.query.Build", Fn: Build} - -// Build builds a request for an AWS Query service. -func Build(r *request.Request) { - body := url.Values{ - "Action": {r.Operation.Name}, - "Version": {r.ClientInfo.APIVersion}, - } - if err := queryutil.Parse(body, r.Params, false); err != nil { - r.Error = awserr.New(request.ErrCodeSerialization, "failed encoding Query request", err) - return - } - - if !r.IsPresigned() { - r.HTTPRequest.Method = "POST" - r.HTTPRequest.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=utf-8") - r.SetBufferBody([]byte(body.Encode())) - } else { // This is a pre-signed request - r.HTTPRequest.Method = "GET" - r.HTTPRequest.URL.RawQuery = body.Encode() - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go deleted file mode 100644 index 75866d0..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go +++ /dev/null @@ -1,246 +0,0 @@ -package queryutil - -import ( - "encoding/base64" - "fmt" - "net/url" - "reflect" - "sort" - "strconv" - "strings" - "time" - - "github.com/aws/aws-sdk-go/private/protocol" -) - -// Parse parses an object i and fills a url.Values object. The isEC2 flag -// indicates if this is the EC2 Query sub-protocol. -func Parse(body url.Values, i interface{}, isEC2 bool) error { - q := queryParser{isEC2: isEC2} - return q.parseValue(body, reflect.ValueOf(i), "", "") -} - -func elemOf(value reflect.Value) reflect.Value { - for value.Kind() == reflect.Ptr { - value = value.Elem() - } - return value -} - -type queryParser struct { - isEC2 bool -} - -func (q *queryParser) parseValue(v url.Values, value reflect.Value, prefix string, tag reflect.StructTag) error { - value = elemOf(value) - - // no need to handle zero values - if !value.IsValid() { - return nil - } - - t := tag.Get("type") - if t == "" { - switch value.Kind() { - case reflect.Struct: - t = "structure" - case reflect.Slice: - t = "list" - case reflect.Map: - t = "map" - } - } - - switch t { - case "structure": - return q.parseStruct(v, value, prefix) - case "list": - return q.parseList(v, value, prefix, tag) - case "map": - return q.parseMap(v, value, prefix, tag) - default: - return q.parseScalar(v, value, prefix, tag) - } -} - -func (q *queryParser) parseStruct(v url.Values, value reflect.Value, prefix string) error { - if !value.IsValid() { - return nil - } - - t := value.Type() - for i := 0; i < value.NumField(); i++ { - elemValue := elemOf(value.Field(i)) - field := t.Field(i) - - if field.PkgPath != "" { - continue // ignore unexported fields - } - if field.Tag.Get("ignore") != "" { - continue - } - - if protocol.CanSetIdempotencyToken(value.Field(i), field) { - token := protocol.GetIdempotencyToken() - elemValue = reflect.ValueOf(token) - } - - var name string - if q.isEC2 { - name = field.Tag.Get("queryName") - } - if name == "" { - if field.Tag.Get("flattened") != "" && field.Tag.Get("locationNameList") != "" { - name = field.Tag.Get("locationNameList") - } else if locName := field.Tag.Get("locationName"); locName != "" { - name = locName - } - if name != "" && q.isEC2 { - name = strings.ToUpper(name[0:1]) + name[1:] - } - } - if name == "" { - name = field.Name - } - - if prefix != "" { - name = prefix + "." + name - } - - if err := q.parseValue(v, elemValue, name, field.Tag); err != nil { - return err - } - } - return nil -} - -func (q *queryParser) parseList(v url.Values, value reflect.Value, prefix string, tag reflect.StructTag) error { - // If it's empty, generate an empty value - if !value.IsNil() && value.Len() == 0 { - v.Set(prefix, "") - return nil - } - - if _, ok := value.Interface().([]byte); ok { - return q.parseScalar(v, value, prefix, tag) - } - - // check for unflattened list member - if !q.isEC2 && tag.Get("flattened") == "" { - if listName := tag.Get("locationNameList"); listName == "" { - prefix += ".member" - } else { - prefix += "." + listName - } - } - - for i := 0; i < value.Len(); i++ { - slicePrefix := prefix - if slicePrefix == "" { - slicePrefix = strconv.Itoa(i + 1) - } else { - slicePrefix = slicePrefix + "." + strconv.Itoa(i+1) - } - if err := q.parseValue(v, value.Index(i), slicePrefix, ""); err != nil { - return err - } - } - return nil -} - -func (q *queryParser) parseMap(v url.Values, value reflect.Value, prefix string, tag reflect.StructTag) error { - // If it's empty, generate an empty value - if !value.IsNil() && value.Len() == 0 { - v.Set(prefix, "") - return nil - } - - // check for unflattened list member - if !q.isEC2 && tag.Get("flattened") == "" { - prefix += ".entry" - } - - // sort keys for improved serialization consistency. - // this is not strictly necessary for protocol support. - mapKeyValues := value.MapKeys() - mapKeys := map[string]reflect.Value{} - mapKeyNames := make([]string, len(mapKeyValues)) - for i, mapKey := range mapKeyValues { - name := mapKey.String() - mapKeys[name] = mapKey - mapKeyNames[i] = name - } - sort.Strings(mapKeyNames) - - for i, mapKeyName := range mapKeyNames { - mapKey := mapKeys[mapKeyName] - mapValue := value.MapIndex(mapKey) - - kname := tag.Get("locationNameKey") - if kname == "" { - kname = "key" - } - vname := tag.Get("locationNameValue") - if vname == "" { - vname = "value" - } - - // serialize key - var keyName string - if prefix == "" { - keyName = strconv.Itoa(i+1) + "." + kname - } else { - keyName = prefix + "." + strconv.Itoa(i+1) + "." + kname - } - - if err := q.parseValue(v, mapKey, keyName, ""); err != nil { - return err - } - - // serialize value - var valueName string - if prefix == "" { - valueName = strconv.Itoa(i+1) + "." + vname - } else { - valueName = prefix + "." + strconv.Itoa(i+1) + "." + vname - } - - if err := q.parseValue(v, mapValue, valueName, ""); err != nil { - return err - } - } - - return nil -} - -func (q *queryParser) parseScalar(v url.Values, r reflect.Value, name string, tag reflect.StructTag) error { - switch value := r.Interface().(type) { - case string: - v.Set(name, value) - case []byte: - if !r.IsNil() { - v.Set(name, base64.StdEncoding.EncodeToString(value)) - } - case bool: - v.Set(name, strconv.FormatBool(value)) - case int64: - v.Set(name, strconv.FormatInt(value, 10)) - case int: - v.Set(name, strconv.Itoa(value)) - case float64: - v.Set(name, strconv.FormatFloat(value, 'f', -1, 64)) - case float32: - v.Set(name, strconv.FormatFloat(float64(value), 'f', -1, 32)) - case time.Time: - const ISO8601UTC = "2006-01-02T15:04:05Z" - format := tag.Get("timestampFormat") - if len(format) == 0 { - format = protocol.ISO8601TimeFormatName - } - - v.Set(name, protocol.FormatTime(format, value)) - default: - return fmt.Errorf("unsupported value for param %s: %v (%s)", name, r.Interface(), r.Type().Name()) - } - return nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go deleted file mode 100644 index 9231e95..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go +++ /dev/null @@ -1,39 +0,0 @@ -package query - -//go:generate go run -tags codegen ../../../private/model/cli/gen-protocol-tests ../../../models/protocol_tests/output/query.json unmarshal_test.go - -import ( - "encoding/xml" - - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil" -) - -// UnmarshalHandler is a named request handler for unmarshaling query protocol requests -var UnmarshalHandler = request.NamedHandler{Name: "awssdk.query.Unmarshal", Fn: Unmarshal} - -// UnmarshalMetaHandler is a named request handler for unmarshaling query protocol request metadata -var UnmarshalMetaHandler = request.NamedHandler{Name: "awssdk.query.UnmarshalMeta", Fn: UnmarshalMeta} - -// Unmarshal unmarshals a response for an AWS Query service. -func Unmarshal(r *request.Request) { - defer r.HTTPResponse.Body.Close() - if r.DataFilled() { - decoder := xml.NewDecoder(r.HTTPResponse.Body) - err := xmlutil.UnmarshalXML(r.Data, decoder, r.Operation.Name+"Result") - if err != nil { - r.Error = awserr.NewRequestFailure( - awserr.New(request.ErrCodeSerialization, "failed decoding Query response", err), - r.HTTPResponse.StatusCode, - r.RequestID, - ) - return - } - } -} - -// UnmarshalMeta unmarshals header response values for an AWS Query service. -func UnmarshalMeta(r *request.Request) { - r.RequestID = r.HTTPResponse.Header.Get("X-Amzn-Requestid") -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go deleted file mode 100644 index 831b011..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go +++ /dev/null @@ -1,69 +0,0 @@ -package query - -import ( - "encoding/xml" - "fmt" - - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil" -) - -// UnmarshalErrorHandler is a name request handler to unmarshal request errors -var UnmarshalErrorHandler = request.NamedHandler{Name: "awssdk.query.UnmarshalError", Fn: UnmarshalError} - -type xmlErrorResponse struct { - Code string `xml:"Error>Code"` - Message string `xml:"Error>Message"` - RequestID string `xml:"RequestId"` -} - -type xmlResponseError struct { - xmlErrorResponse -} - -func (e *xmlResponseError) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { - const svcUnavailableTagName = "ServiceUnavailableException" - const errorResponseTagName = "ErrorResponse" - - switch start.Name.Local { - case svcUnavailableTagName: - e.Code = svcUnavailableTagName - e.Message = "service is unavailable" - return d.Skip() - - case errorResponseTagName: - return d.DecodeElement(&e.xmlErrorResponse, &start) - - default: - return fmt.Errorf("unknown error response tag, %v", start) - } -} - -// UnmarshalError unmarshals an error response for an AWS Query service. -func UnmarshalError(r *request.Request) { - defer r.HTTPResponse.Body.Close() - - var respErr xmlResponseError - err := xmlutil.UnmarshalXMLError(&respErr, r.HTTPResponse.Body) - if err != nil { - r.Error = awserr.NewRequestFailure( - awserr.New(request.ErrCodeSerialization, - "failed to unmarshal error message", err), - r.HTTPResponse.StatusCode, - r.RequestID, - ) - return - } - - reqID := respErr.RequestID - if len(reqID) == 0 { - reqID = r.RequestID - } - - r.Error = awserr.NewRequestFailure( - awserr.New(respErr.Code, respErr.Message, nil), - r.HTTPResponse.StatusCode, - reqID, - ) -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go deleted file mode 100644 index 1301b14..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go +++ /dev/null @@ -1,310 +0,0 @@ -// Package rest provides RESTful serialization of AWS requests and responses. -package rest - -import ( - "bytes" - "encoding/base64" - "fmt" - "io" - "net/http" - "net/url" - "path" - "reflect" - "strconv" - "strings" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/private/protocol" -) - -// Whether the byte value can be sent without escaping in AWS URLs -var noEscape [256]bool - -var errValueNotSet = fmt.Errorf("value not set") - -var byteSliceType = reflect.TypeOf([]byte{}) - -func init() { - for i := 0; i < len(noEscape); i++ { - // AWS expects every character except these to be escaped - noEscape[i] = (i >= 'A' && i <= 'Z') || - (i >= 'a' && i <= 'z') || - (i >= '0' && i <= '9') || - i == '-' || - i == '.' || - i == '_' || - i == '~' - } -} - -// BuildHandler is a named request handler for building rest protocol requests -var BuildHandler = request.NamedHandler{Name: "awssdk.rest.Build", Fn: Build} - -// Build builds the REST component of a service request. -func Build(r *request.Request) { - if r.ParamsFilled() { - v := reflect.ValueOf(r.Params).Elem() - buildLocationElements(r, v, false) - buildBody(r, v) - } -} - -// BuildAsGET builds the REST component of a service request with the ability to hoist -// data from the body. -func BuildAsGET(r *request.Request) { - if r.ParamsFilled() { - v := reflect.ValueOf(r.Params).Elem() - buildLocationElements(r, v, true) - buildBody(r, v) - } -} - -func buildLocationElements(r *request.Request, v reflect.Value, buildGETQuery bool) { - query := r.HTTPRequest.URL.Query() - - // Setup the raw path to match the base path pattern. This is needed - // so that when the path is mutated a custom escaped version can be - // stored in RawPath that will be used by the Go client. - r.HTTPRequest.URL.RawPath = r.HTTPRequest.URL.Path - - for i := 0; i < v.NumField(); i++ { - m := v.Field(i) - if n := v.Type().Field(i).Name; n[0:1] == strings.ToLower(n[0:1]) { - continue - } - - if m.IsValid() { - field := v.Type().Field(i) - name := field.Tag.Get("locationName") - if name == "" { - name = field.Name - } - if kind := m.Kind(); kind == reflect.Ptr { - m = m.Elem() - } else if kind == reflect.Interface { - if !m.Elem().IsValid() { - continue - } - } - if !m.IsValid() { - continue - } - if field.Tag.Get("ignore") != "" { - continue - } - - // Support the ability to customize values to be marshaled as a - // blob even though they were modeled as a string. Required for S3 - // API operations like SSECustomerKey is modeled as stirng but - // required to be base64 encoded in request. - if field.Tag.Get("marshal-as") == "blob" { - m = m.Convert(byteSliceType) - } - - var err error - switch field.Tag.Get("location") { - case "headers": // header maps - err = buildHeaderMap(&r.HTTPRequest.Header, m, field.Tag) - case "header": - err = buildHeader(&r.HTTPRequest.Header, m, name, field.Tag) - case "uri": - err = buildURI(r.HTTPRequest.URL, m, name, field.Tag) - case "querystring": - err = buildQueryString(query, m, name, field.Tag) - default: - if buildGETQuery { - err = buildQueryString(query, m, name, field.Tag) - } - } - r.Error = err - } - if r.Error != nil { - return - } - } - - r.HTTPRequest.URL.RawQuery = query.Encode() - if !aws.BoolValue(r.Config.DisableRestProtocolURICleaning) { - cleanPath(r.HTTPRequest.URL) - } -} - -func buildBody(r *request.Request, v reflect.Value) { - if field, ok := v.Type().FieldByName("_"); ok { - if payloadName := field.Tag.Get("payload"); payloadName != "" { - pfield, _ := v.Type().FieldByName(payloadName) - if ptag := pfield.Tag.Get("type"); ptag != "" && ptag != "structure" { - payload := reflect.Indirect(v.FieldByName(payloadName)) - if payload.IsValid() && payload.Interface() != nil { - switch reader := payload.Interface().(type) { - case io.ReadSeeker: - r.SetReaderBody(reader) - case []byte: - r.SetBufferBody(reader) - case string: - r.SetStringBody(reader) - default: - r.Error = awserr.New(request.ErrCodeSerialization, - "failed to encode REST request", - fmt.Errorf("unknown payload type %s", payload.Type())) - } - } - } - } - } -} - -func buildHeader(header *http.Header, v reflect.Value, name string, tag reflect.StructTag) error { - str, err := convertType(v, tag) - if err == errValueNotSet { - return nil - } else if err != nil { - return awserr.New(request.ErrCodeSerialization, "failed to encode REST request", err) - } - - name = strings.TrimSpace(name) - str = strings.TrimSpace(str) - - header.Add(name, str) - - return nil -} - -func buildHeaderMap(header *http.Header, v reflect.Value, tag reflect.StructTag) error { - prefix := tag.Get("locationName") - for _, key := range v.MapKeys() { - str, err := convertType(v.MapIndex(key), tag) - if err == errValueNotSet { - continue - } else if err != nil { - return awserr.New(request.ErrCodeSerialization, "failed to encode REST request", err) - - } - keyStr := strings.TrimSpace(key.String()) - str = strings.TrimSpace(str) - - header.Add(prefix+keyStr, str) - } - return nil -} - -func buildURI(u *url.URL, v reflect.Value, name string, tag reflect.StructTag) error { - value, err := convertType(v, tag) - if err == errValueNotSet { - return nil - } else if err != nil { - return awserr.New(request.ErrCodeSerialization, "failed to encode REST request", err) - } - - u.Path = strings.Replace(u.Path, "{"+name+"}", value, -1) - u.Path = strings.Replace(u.Path, "{"+name+"+}", value, -1) - - u.RawPath = strings.Replace(u.RawPath, "{"+name+"}", EscapePath(value, true), -1) - u.RawPath = strings.Replace(u.RawPath, "{"+name+"+}", EscapePath(value, false), -1) - - return nil -} - -func buildQueryString(query url.Values, v reflect.Value, name string, tag reflect.StructTag) error { - switch value := v.Interface().(type) { - case []*string: - for _, item := range value { - query.Add(name, *item) - } - case map[string]*string: - for key, item := range value { - query.Add(key, *item) - } - case map[string][]*string: - for key, items := range value { - for _, item := range items { - query.Add(key, *item) - } - } - default: - str, err := convertType(v, tag) - if err == errValueNotSet { - return nil - } else if err != nil { - return awserr.New(request.ErrCodeSerialization, "failed to encode REST request", err) - } - query.Set(name, str) - } - - return nil -} - -func cleanPath(u *url.URL) { - hasSlash := strings.HasSuffix(u.Path, "/") - - // clean up path, removing duplicate `/` - u.Path = path.Clean(u.Path) - u.RawPath = path.Clean(u.RawPath) - - if hasSlash && !strings.HasSuffix(u.Path, "/") { - u.Path += "/" - u.RawPath += "/" - } -} - -// EscapePath escapes part of a URL path in Amazon style -func EscapePath(path string, encodeSep bool) string { - var buf bytes.Buffer - for i := 0; i < len(path); i++ { - c := path[i] - if noEscape[c] || (c == '/' && !encodeSep) { - buf.WriteByte(c) - } else { - fmt.Fprintf(&buf, "%%%02X", c) - } - } - return buf.String() -} - -func convertType(v reflect.Value, tag reflect.StructTag) (str string, err error) { - v = reflect.Indirect(v) - if !v.IsValid() { - return "", errValueNotSet - } - - switch value := v.Interface().(type) { - case string: - str = value - case []byte: - str = base64.StdEncoding.EncodeToString(value) - case bool: - str = strconv.FormatBool(value) - case int64: - str = strconv.FormatInt(value, 10) - case float64: - str = strconv.FormatFloat(value, 'f', -1, 64) - case time.Time: - format := tag.Get("timestampFormat") - if len(format) == 0 { - format = protocol.RFC822TimeFormatName - if tag.Get("location") == "querystring" { - format = protocol.ISO8601TimeFormatName - } - } - str = protocol.FormatTime(format, value) - case aws.JSONValue: - if len(value) == 0 { - return "", errValueNotSet - } - escaping := protocol.NoEscape - if tag.Get("location") == "header" { - escaping = protocol.Base64Escape - } - str, err = protocol.EncodeJSONValue(value, escaping) - if err != nil { - return "", fmt.Errorf("unable to encode JSONValue, %v", err) - } - default: - err := fmt.Errorf("unsupported value for param %v (%s)", v.Interface(), v.Type()) - return "", err - } - return str, nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/payload.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/payload.go deleted file mode 100644 index 4366de2..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/payload.go +++ /dev/null @@ -1,45 +0,0 @@ -package rest - -import "reflect" - -// PayloadMember returns the payload field member of i if there is one, or nil. -func PayloadMember(i interface{}) interface{} { - if i == nil { - return nil - } - - v := reflect.ValueOf(i).Elem() - if !v.IsValid() { - return nil - } - if field, ok := v.Type().FieldByName("_"); ok { - if payloadName := field.Tag.Get("payload"); payloadName != "" { - field, _ := v.Type().FieldByName(payloadName) - if field.Tag.Get("type") != "structure" { - return nil - } - - payload := v.FieldByName(payloadName) - if payload.IsValid() || (payload.Kind() == reflect.Ptr && !payload.IsNil()) { - return payload.Interface() - } - } - } - return nil -} - -// PayloadType returns the type of a payload field member of i if there is one, or "". -func PayloadType(i interface{}) string { - v := reflect.Indirect(reflect.ValueOf(i)) - if !v.IsValid() { - return "" - } - if field, ok := v.Type().FieldByName("_"); ok { - if payloadName := field.Tag.Get("payload"); payloadName != "" { - if member, ok := v.Type().FieldByName(payloadName); ok { - return member.Tag.Get("type") - } - } - } - return "" -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go deleted file mode 100644 index 92f8b4d..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go +++ /dev/null @@ -1,257 +0,0 @@ -package rest - -import ( - "bytes" - "encoding/base64" - "fmt" - "io" - "io/ioutil" - "net/http" - "reflect" - "strconv" - "strings" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/request" - awsStrings "github.com/aws/aws-sdk-go/internal/strings" - "github.com/aws/aws-sdk-go/private/protocol" -) - -// UnmarshalHandler is a named request handler for unmarshaling rest protocol requests -var UnmarshalHandler = request.NamedHandler{Name: "awssdk.rest.Unmarshal", Fn: Unmarshal} - -// UnmarshalMetaHandler is a named request handler for unmarshaling rest protocol request metadata -var UnmarshalMetaHandler = request.NamedHandler{Name: "awssdk.rest.UnmarshalMeta", Fn: UnmarshalMeta} - -// Unmarshal unmarshals the REST component of a response in a REST service. -func Unmarshal(r *request.Request) { - if r.DataFilled() { - v := reflect.Indirect(reflect.ValueOf(r.Data)) - if err := unmarshalBody(r, v); err != nil { - r.Error = err - } - } -} - -// UnmarshalMeta unmarshals the REST metadata of a response in a REST service -func UnmarshalMeta(r *request.Request) { - r.RequestID = r.HTTPResponse.Header.Get("X-Amzn-Requestid") - if r.RequestID == "" { - // Alternative version of request id in the header - r.RequestID = r.HTTPResponse.Header.Get("X-Amz-Request-Id") - } - if r.DataFilled() { - if err := UnmarshalResponse(r.HTTPResponse, r.Data, aws.BoolValue(r.Config.LowerCaseHeaderMaps)); err != nil { - r.Error = err - } - } -} - -// UnmarshalResponse attempts to unmarshal the REST response headers to -// the data type passed in. The type must be a pointer. An error is returned -// with any error unmarshaling the response into the target datatype. -func UnmarshalResponse(resp *http.Response, data interface{}, lowerCaseHeaderMaps bool) error { - v := reflect.Indirect(reflect.ValueOf(data)) - return unmarshalLocationElements(resp, v, lowerCaseHeaderMaps) -} - -func unmarshalBody(r *request.Request, v reflect.Value) error { - if field, ok := v.Type().FieldByName("_"); ok { - if payloadName := field.Tag.Get("payload"); payloadName != "" { - pfield, _ := v.Type().FieldByName(payloadName) - if ptag := pfield.Tag.Get("type"); ptag != "" && ptag != "structure" { - payload := v.FieldByName(payloadName) - if payload.IsValid() { - switch payload.Interface().(type) { - case []byte: - defer r.HTTPResponse.Body.Close() - b, err := ioutil.ReadAll(r.HTTPResponse.Body) - if err != nil { - return awserr.New(request.ErrCodeSerialization, "failed to decode REST response", err) - } - - payload.Set(reflect.ValueOf(b)) - - case *string: - defer r.HTTPResponse.Body.Close() - b, err := ioutil.ReadAll(r.HTTPResponse.Body) - if err != nil { - return awserr.New(request.ErrCodeSerialization, "failed to decode REST response", err) - } - - str := string(b) - payload.Set(reflect.ValueOf(&str)) - - default: - switch payload.Type().String() { - case "io.ReadCloser": - payload.Set(reflect.ValueOf(r.HTTPResponse.Body)) - - case "io.ReadSeeker": - b, err := ioutil.ReadAll(r.HTTPResponse.Body) - if err != nil { - return awserr.New(request.ErrCodeSerialization, - "failed to read response body", err) - } - payload.Set(reflect.ValueOf(ioutil.NopCloser(bytes.NewReader(b)))) - - default: - io.Copy(ioutil.Discard, r.HTTPResponse.Body) - r.HTTPResponse.Body.Close() - return awserr.New(request.ErrCodeSerialization, - "failed to decode REST response", - fmt.Errorf("unknown payload type %s", payload.Type())) - } - } - } - } - } - } - - return nil -} - -func unmarshalLocationElements(resp *http.Response, v reflect.Value, lowerCaseHeaderMaps bool) error { - for i := 0; i < v.NumField(); i++ { - m, field := v.Field(i), v.Type().Field(i) - if n := field.Name; n[0:1] == strings.ToLower(n[0:1]) { - continue - } - - if m.IsValid() { - name := field.Tag.Get("locationName") - if name == "" { - name = field.Name - } - - switch field.Tag.Get("location") { - case "statusCode": - unmarshalStatusCode(m, resp.StatusCode) - - case "header": - err := unmarshalHeader(m, resp.Header.Get(name), field.Tag) - if err != nil { - return awserr.New(request.ErrCodeSerialization, "failed to decode REST response", err) - } - - case "headers": - prefix := field.Tag.Get("locationName") - err := unmarshalHeaderMap(m, resp.Header, prefix, lowerCaseHeaderMaps) - if err != nil { - awserr.New(request.ErrCodeSerialization, "failed to decode REST response", err) - } - } - } - } - - return nil -} - -func unmarshalStatusCode(v reflect.Value, statusCode int) { - if !v.IsValid() { - return - } - - switch v.Interface().(type) { - case *int64: - s := int64(statusCode) - v.Set(reflect.ValueOf(&s)) - } -} - -func unmarshalHeaderMap(r reflect.Value, headers http.Header, prefix string, normalize bool) error { - if len(headers) == 0 { - return nil - } - switch r.Interface().(type) { - case map[string]*string: // we only support string map value types - out := map[string]*string{} - for k, v := range headers { - if awsStrings.HasPrefixFold(k, prefix) { - if normalize == true { - k = strings.ToLower(k) - } else { - k = http.CanonicalHeaderKey(k) - } - out[k[len(prefix):]] = &v[0] - } - } - if len(out) != 0 { - r.Set(reflect.ValueOf(out)) - } - - } - return nil -} - -func unmarshalHeader(v reflect.Value, header string, tag reflect.StructTag) error { - switch tag.Get("type") { - case "jsonvalue": - if len(header) == 0 { - return nil - } - case "blob": - if len(header) == 0 { - return nil - } - default: - if !v.IsValid() || (header == "" && v.Elem().Kind() != reflect.String) { - return nil - } - } - - switch v.Interface().(type) { - case *string: - v.Set(reflect.ValueOf(&header)) - case []byte: - b, err := base64.StdEncoding.DecodeString(header) - if err != nil { - return err - } - v.Set(reflect.ValueOf(b)) - case *bool: - b, err := strconv.ParseBool(header) - if err != nil { - return err - } - v.Set(reflect.ValueOf(&b)) - case *int64: - i, err := strconv.ParseInt(header, 10, 64) - if err != nil { - return err - } - v.Set(reflect.ValueOf(&i)) - case *float64: - f, err := strconv.ParseFloat(header, 64) - if err != nil { - return err - } - v.Set(reflect.ValueOf(&f)) - case *time.Time: - format := tag.Get("timestampFormat") - if len(format) == 0 { - format = protocol.RFC822TimeFormatName - } - t, err := protocol.ParseTime(format, header) - if err != nil { - return err - } - v.Set(reflect.ValueOf(&t)) - case aws.JSONValue: - escaping := protocol.NoEscape - if tag.Get("location") == "header" { - escaping = protocol.Base64Escape - } - m, err := protocol.DecodeJSONValue(header, escaping) - if err != nil { - return err - } - v.Set(reflect.ValueOf(m)) - default: - err := fmt.Errorf("Unsupported value for param %v (%s)", v.Interface(), v.Type()) - return err - } - return nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/restjson.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/restjson.go deleted file mode 100644 index 2e0e205..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/restjson.go +++ /dev/null @@ -1,59 +0,0 @@ -// Package restjson provides RESTful JSON serialization of AWS -// requests and responses. -package restjson - -//go:generate go run -tags codegen ../../../private/model/cli/gen-protocol-tests ../../../models/protocol_tests/input/rest-json.json build_test.go -//go:generate go run -tags codegen ../../../private/model/cli/gen-protocol-tests ../../../models/protocol_tests/output/rest-json.json unmarshal_test.go - -import ( - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" - "github.com/aws/aws-sdk-go/private/protocol/rest" -) - -// BuildHandler is a named request handler for building restjson protocol -// requests -var BuildHandler = request.NamedHandler{ - Name: "awssdk.restjson.Build", - Fn: Build, -} - -// UnmarshalHandler is a named request handler for unmarshaling restjson -// protocol requests -var UnmarshalHandler = request.NamedHandler{ - Name: "awssdk.restjson.Unmarshal", - Fn: Unmarshal, -} - -// UnmarshalMetaHandler is a named request handler for unmarshaling restjson -// protocol request metadata -var UnmarshalMetaHandler = request.NamedHandler{ - Name: "awssdk.restjson.UnmarshalMeta", - Fn: UnmarshalMeta, -} - -// Build builds a request for the REST JSON protocol. -func Build(r *request.Request) { - rest.Build(r) - - if t := rest.PayloadType(r.Params); t == "structure" || t == "" { - if v := r.HTTPRequest.Header.Get("Content-Type"); len(v) == 0 { - r.HTTPRequest.Header.Set("Content-Type", "application/json") - } - jsonrpc.Build(r) - } -} - -// Unmarshal unmarshals a response body for the REST JSON protocol. -func Unmarshal(r *request.Request) { - if t := rest.PayloadType(r.Data); t == "structure" || t == "" { - jsonrpc.Unmarshal(r) - } else { - rest.Unmarshal(r) - } -} - -// UnmarshalMeta unmarshals response headers for the REST JSON protocol. -func UnmarshalMeta(r *request.Request) { - rest.UnmarshalMeta(r) -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/unmarshal_error.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/unmarshal_error.go deleted file mode 100644 index d756d8c..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/restjson/unmarshal_error.go +++ /dev/null @@ -1,134 +0,0 @@ -package restjson - -import ( - "bytes" - "io" - "io/ioutil" - "net/http" - "strings" - - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/private/protocol" - "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil" - "github.com/aws/aws-sdk-go/private/protocol/rest" -) - -const ( - errorTypeHeader = "X-Amzn-Errortype" - errorMessageHeader = "X-Amzn-Errormessage" -) - -// UnmarshalTypedError provides unmarshaling errors API response errors -// for both typed and untyped errors. -type UnmarshalTypedError struct { - exceptions map[string]func(protocol.ResponseMetadata) error -} - -// NewUnmarshalTypedError returns an UnmarshalTypedError initialized for the -// set of exception names to the error unmarshalers -func NewUnmarshalTypedError(exceptions map[string]func(protocol.ResponseMetadata) error) *UnmarshalTypedError { - return &UnmarshalTypedError{ - exceptions: exceptions, - } -} - -// UnmarshalError attempts to unmarshal the HTTP response error as a known -// error type. If unable to unmarshal the error type, the generic SDK error -// type will be used. -func (u *UnmarshalTypedError) UnmarshalError( - resp *http.Response, - respMeta protocol.ResponseMetadata, -) (error, error) { - - code := resp.Header.Get(errorTypeHeader) - msg := resp.Header.Get(errorMessageHeader) - - body := resp.Body - if len(code) == 0 { - // If unable to get code from HTTP headers have to parse JSON message - // to determine what kind of exception this will be. - var buf bytes.Buffer - var jsonErr jsonErrorResponse - teeReader := io.TeeReader(resp.Body, &buf) - err := jsonutil.UnmarshalJSONError(&jsonErr, teeReader) - if err != nil { - return nil, err - } - - body = ioutil.NopCloser(&buf) - code = jsonErr.Code - msg = jsonErr.Message - } - - // If code has colon separators remove them so can compare against modeled - // exception names. - code = strings.SplitN(code, ":", 2)[0] - - if fn, ok := u.exceptions[code]; ok { - // If exception code is know, use associated constructor to get a value - // for the exception that the JSON body can be unmarshaled into. - v := fn(respMeta) - if err := jsonutil.UnmarshalJSONCaseInsensitive(v, body); err != nil { - return nil, err - } - - if err := rest.UnmarshalResponse(resp, v, true); err != nil { - return nil, err - } - - return v, nil - } - - // fallback to unmodeled generic exceptions - return awserr.NewRequestFailure( - awserr.New(code, msg, nil), - respMeta.StatusCode, - respMeta.RequestID, - ), nil -} - -// UnmarshalErrorHandler is a named request handler for unmarshaling restjson -// protocol request errors -var UnmarshalErrorHandler = request.NamedHandler{ - Name: "awssdk.restjson.UnmarshalError", - Fn: UnmarshalError, -} - -// UnmarshalError unmarshals a response error for the REST JSON protocol. -func UnmarshalError(r *request.Request) { - defer r.HTTPResponse.Body.Close() - - var jsonErr jsonErrorResponse - err := jsonutil.UnmarshalJSONError(&jsonErr, r.HTTPResponse.Body) - if err != nil { - r.Error = awserr.NewRequestFailure( - awserr.New(request.ErrCodeSerialization, - "failed to unmarshal response error", err), - r.HTTPResponse.StatusCode, - r.RequestID, - ) - return - } - - code := r.HTTPResponse.Header.Get(errorTypeHeader) - if code == "" { - code = jsonErr.Code - } - msg := r.HTTPResponse.Header.Get(errorMessageHeader) - if msg == "" { - msg = jsonErr.Message - } - - code = strings.SplitN(code, ":", 2)[0] - r.Error = awserr.NewRequestFailure( - awserr.New(code, jsonErr.Message, nil), - r.HTTPResponse.StatusCode, - r.RequestID, - ) -} - -type jsonErrorResponse struct { - Code string `json:"code"` - Message string `json:"message"` -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go deleted file mode 100644 index 98f4cae..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go +++ /dev/null @@ -1,85 +0,0 @@ -package protocol - -import ( - "math" - "strconv" - "time" - - "github.com/aws/aws-sdk-go/internal/sdkmath" -) - -// Names of time formats supported by the SDK -const ( - RFC822TimeFormatName = "rfc822" - ISO8601TimeFormatName = "iso8601" - UnixTimeFormatName = "unixTimestamp" -) - -// Time formats supported by the SDK -// Output time is intended to not contain decimals -const ( - // RFC 7231#section-7.1.1.1 timetamp format. e.g Tue, 29 Apr 2014 18:30:38 GMT - RFC822TimeFormat = "Mon, 2 Jan 2006 15:04:05 GMT" - - // This format is used for output time without seconds precision - RFC822OutputTimeFormat = "Mon, 02 Jan 2006 15:04:05 GMT" - - // RFC3339 a subset of the ISO8601 timestamp format. e.g 2014-04-29T18:30:38Z - ISO8601TimeFormat = "2006-01-02T15:04:05.999999999Z" - - // This format is used for output time with fractional second precision up to milliseconds - ISO8601OutputTimeFormat = "2006-01-02T15:04:05.999999999Z" -) - -// IsKnownTimestampFormat returns if the timestamp format name -// is know to the SDK's protocols. -func IsKnownTimestampFormat(name string) bool { - switch name { - case RFC822TimeFormatName: - fallthrough - case ISO8601TimeFormatName: - fallthrough - case UnixTimeFormatName: - return true - default: - return false - } -} - -// FormatTime returns a string value of the time. -func FormatTime(name string, t time.Time) string { - t = t.UTC().Truncate(time.Millisecond) - - switch name { - case RFC822TimeFormatName: - return t.Format(RFC822OutputTimeFormat) - case ISO8601TimeFormatName: - return t.Format(ISO8601OutputTimeFormat) - case UnixTimeFormatName: - ms := t.UnixNano() / int64(time.Millisecond) - return strconv.FormatFloat(float64(ms)/1e3, 'f', -1, 64) - default: - panic("unknown timestamp format name, " + name) - } -} - -// ParseTime attempts to parse the time given the format. Returns -// the time if it was able to be parsed, and fails otherwise. -func ParseTime(formatName, value string) (time.Time, error) { - switch formatName { - case RFC822TimeFormatName: - return time.Parse(RFC822TimeFormat, value) - case ISO8601TimeFormatName: - return time.Parse(ISO8601TimeFormat, value) - case UnixTimeFormatName: - v, err := strconv.ParseFloat(value, 64) - _, dec := math.Modf(v) - dec = sdkmath.Round(dec*1e3) / 1e3 //Rounds 0.1229999 to 0.123 - if err != nil { - return time.Time{}, err - } - return time.Unix(int64(v), int64(dec*(1e9))), nil - default: - panic("unknown timestamp format name, " + formatName) - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal.go deleted file mode 100644 index f614ef8..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal.go +++ /dev/null @@ -1,27 +0,0 @@ -package protocol - -import ( - "io" - "io/ioutil" - - "github.com/aws/aws-sdk-go/aws/request" -) - -// UnmarshalDiscardBodyHandler is a named request handler to empty and close a response's body -var UnmarshalDiscardBodyHandler = request.NamedHandler{Name: "awssdk.shared.UnmarshalDiscardBody", Fn: UnmarshalDiscardBody} - -// UnmarshalDiscardBody is a request handler to empty a response's body and closing it. -func UnmarshalDiscardBody(r *request.Request) { - if r.HTTPResponse == nil || r.HTTPResponse.Body == nil { - return - } - - io.Copy(ioutil.Discard, r.HTTPResponse.Body) - r.HTTPResponse.Body.Close() -} - -// ResponseMetadata provides the SDK response metadata attributes. -type ResponseMetadata struct { - StatusCode int - RequestID string -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal_error.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal_error.go deleted file mode 100644 index cc857f1..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/unmarshal_error.go +++ /dev/null @@ -1,65 +0,0 @@ -package protocol - -import ( - "net/http" - - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/request" -) - -// UnmarshalErrorHandler provides unmarshaling errors API response errors for -// both typed and untyped errors. -type UnmarshalErrorHandler struct { - unmarshaler ErrorUnmarshaler -} - -// ErrorUnmarshaler is an abstract interface for concrete implementations to -// unmarshal protocol specific response errors. -type ErrorUnmarshaler interface { - UnmarshalError(*http.Response, ResponseMetadata) (error, error) -} - -// NewUnmarshalErrorHandler returns an UnmarshalErrorHandler -// initialized for the set of exception names to the error unmarshalers -func NewUnmarshalErrorHandler(unmarshaler ErrorUnmarshaler) *UnmarshalErrorHandler { - return &UnmarshalErrorHandler{ - unmarshaler: unmarshaler, - } -} - -// UnmarshalErrorHandlerName is the name of the named handler. -const UnmarshalErrorHandlerName = "awssdk.protocol.UnmarshalError" - -// NamedHandler returns a NamedHandler for the unmarshaler using the set of -// errors the unmarshaler was initialized for. -func (u *UnmarshalErrorHandler) NamedHandler() request.NamedHandler { - return request.NamedHandler{ - Name: UnmarshalErrorHandlerName, - Fn: u.UnmarshalError, - } -} - -// UnmarshalError will attempt to unmarshal the API response's error message -// into either a generic SDK error type, or a typed error corresponding to the -// errors exception name. -func (u *UnmarshalErrorHandler) UnmarshalError(r *request.Request) { - defer r.HTTPResponse.Body.Close() - - respMeta := ResponseMetadata{ - StatusCode: r.HTTPResponse.StatusCode, - RequestID: r.RequestID, - } - - v, err := u.unmarshaler.UnmarshalError(r.HTTPResponse, respMeta) - if err != nil { - r.Error = awserr.NewRequestFailure( - awserr.New(request.ErrCodeSerialization, - "failed to unmarshal response error", err), - respMeta.StatusCode, - respMeta.RequestID, - ) - return - } - - r.Error = v -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go deleted file mode 100644 index 09ad951..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go +++ /dev/null @@ -1,315 +0,0 @@ -// Package xmlutil provides XML serialization of AWS requests and responses. -package xmlutil - -import ( - "encoding/base64" - "encoding/xml" - "fmt" - "reflect" - "sort" - "strconv" - "strings" - "time" - - "github.com/aws/aws-sdk-go/private/protocol" -) - -// BuildXML will serialize params into an xml.Encoder. Error will be returned -// if the serialization of any of the params or nested values fails. -func BuildXML(params interface{}, e *xml.Encoder) error { - return buildXML(params, e, false) -} - -func buildXML(params interface{}, e *xml.Encoder, sorted bool) error { - b := xmlBuilder{encoder: e, namespaces: map[string]string{}} - root := NewXMLElement(xml.Name{}) - if err := b.buildValue(reflect.ValueOf(params), root, ""); err != nil { - return err - } - for _, c := range root.Children { - for _, v := range c { - return StructToXML(e, v, sorted) - } - } - return nil -} - -// Returns the reflection element of a value, if it is a pointer. -func elemOf(value reflect.Value) reflect.Value { - for value.Kind() == reflect.Ptr { - value = value.Elem() - } - return value -} - -// A xmlBuilder serializes values from Go code to XML -type xmlBuilder struct { - encoder *xml.Encoder - namespaces map[string]string -} - -// buildValue generic XMLNode builder for any type. Will build value for their specific type -// struct, list, map, scalar. -// -// Also takes a "type" tag value to set what type a value should be converted to XMLNode as. If -// type is not provided reflect will be used to determine the value's type. -func (b *xmlBuilder) buildValue(value reflect.Value, current *XMLNode, tag reflect.StructTag) error { - value = elemOf(value) - if !value.IsValid() { // no need to handle zero values - return nil - } else if tag.Get("location") != "" { // don't handle non-body location values - return nil - } - - xml := tag.Get("xml") - if len(xml) != 0 { - name := strings.SplitAfterN(xml, ",", 2)[0] - if name == "-" { - return nil - } - } - - t := tag.Get("type") - if t == "" { - switch value.Kind() { - case reflect.Struct: - t = "structure" - case reflect.Slice: - t = "list" - case reflect.Map: - t = "map" - } - } - - switch t { - case "structure": - if field, ok := value.Type().FieldByName("_"); ok { - tag = tag + reflect.StructTag(" ") + field.Tag - } - return b.buildStruct(value, current, tag) - case "list": - return b.buildList(value, current, tag) - case "map": - return b.buildMap(value, current, tag) - default: - return b.buildScalar(value, current, tag) - } -} - -// buildStruct adds a struct and its fields to the current XMLNode. All fields and any nested -// types are converted to XMLNodes also. -func (b *xmlBuilder) buildStruct(value reflect.Value, current *XMLNode, tag reflect.StructTag) error { - if !value.IsValid() { - return nil - } - - // unwrap payloads - if payload := tag.Get("payload"); payload != "" { - field, _ := value.Type().FieldByName(payload) - tag = field.Tag - value = elemOf(value.FieldByName(payload)) - - if !value.IsValid() { - return nil - } - } - - child := NewXMLElement(xml.Name{Local: tag.Get("locationName")}) - - // there is an xmlNamespace associated with this struct - if prefix, uri := tag.Get("xmlPrefix"), tag.Get("xmlURI"); uri != "" { - ns := xml.Attr{ - Name: xml.Name{Local: "xmlns"}, - Value: uri, - } - if prefix != "" { - b.namespaces[prefix] = uri // register the namespace - ns.Name.Local = "xmlns:" + prefix - } - - child.Attr = append(child.Attr, ns) - } - - var payloadFields, nonPayloadFields int - - t := value.Type() - for i := 0; i < value.NumField(); i++ { - member := elemOf(value.Field(i)) - field := t.Field(i) - - if field.PkgPath != "" { - continue // ignore unexported fields - } - if field.Tag.Get("ignore") != "" { - continue - } - - mTag := field.Tag - if mTag.Get("location") != "" { // skip non-body members - nonPayloadFields++ - continue - } - payloadFields++ - - if protocol.CanSetIdempotencyToken(value.Field(i), field) { - token := protocol.GetIdempotencyToken() - member = reflect.ValueOf(token) - } - - memberName := mTag.Get("locationName") - if memberName == "" { - memberName = field.Name - mTag = reflect.StructTag(string(mTag) + ` locationName:"` + memberName + `"`) - } - if err := b.buildValue(member, child, mTag); err != nil { - return err - } - } - - // Only case where the child shape is not added is if the shape only contains - // non-payload fields, e.g headers/query. - if !(payloadFields == 0 && nonPayloadFields > 0) { - current.AddChild(child) - } - - return nil -} - -// buildList adds the value's list items to the current XMLNode as children nodes. All -// nested values in the list are converted to XMLNodes also. -func (b *xmlBuilder) buildList(value reflect.Value, current *XMLNode, tag reflect.StructTag) error { - if value.IsNil() { // don't build omitted lists - return nil - } - - // check for unflattened list member - flattened := tag.Get("flattened") != "" - - xname := xml.Name{Local: tag.Get("locationName")} - if flattened { - for i := 0; i < value.Len(); i++ { - child := NewXMLElement(xname) - current.AddChild(child) - if err := b.buildValue(value.Index(i), child, ""); err != nil { - return err - } - } - } else { - list := NewXMLElement(xname) - current.AddChild(list) - - for i := 0; i < value.Len(); i++ { - iname := tag.Get("locationNameList") - if iname == "" { - iname = "member" - } - - child := NewXMLElement(xml.Name{Local: iname}) - list.AddChild(child) - if err := b.buildValue(value.Index(i), child, ""); err != nil { - return err - } - } - } - - return nil -} - -// buildMap adds the value's key/value pairs to the current XMLNode as children nodes. All -// nested values in the map are converted to XMLNodes also. -// -// Error will be returned if it is unable to build the map's values into XMLNodes -func (b *xmlBuilder) buildMap(value reflect.Value, current *XMLNode, tag reflect.StructTag) error { - if value.IsNil() { // don't build omitted maps - return nil - } - - maproot := NewXMLElement(xml.Name{Local: tag.Get("locationName")}) - current.AddChild(maproot) - current = maproot - - kname, vname := "key", "value" - if n := tag.Get("locationNameKey"); n != "" { - kname = n - } - if n := tag.Get("locationNameValue"); n != "" { - vname = n - } - - // sorting is not required for compliance, but it makes testing easier - keys := make([]string, value.Len()) - for i, k := range value.MapKeys() { - keys[i] = k.String() - } - sort.Strings(keys) - - for _, k := range keys { - v := value.MapIndex(reflect.ValueOf(k)) - - mapcur := current - if tag.Get("flattened") == "" { // add "entry" tag to non-flat maps - child := NewXMLElement(xml.Name{Local: "entry"}) - mapcur.AddChild(child) - mapcur = child - } - - kchild := NewXMLElement(xml.Name{Local: kname}) - kchild.Text = k - vchild := NewXMLElement(xml.Name{Local: vname}) - mapcur.AddChild(kchild) - mapcur.AddChild(vchild) - - if err := b.buildValue(v, vchild, ""); err != nil { - return err - } - } - - return nil -} - -// buildScalar will convert the value into a string and append it as a attribute or child -// of the current XMLNode. -// -// The value will be added as an attribute if tag contains a "xmlAttribute" attribute value. -// -// Error will be returned if the value type is unsupported. -func (b *xmlBuilder) buildScalar(value reflect.Value, current *XMLNode, tag reflect.StructTag) error { - var str string - switch converted := value.Interface().(type) { - case string: - str = converted - case []byte: - if !value.IsNil() { - str = base64.StdEncoding.EncodeToString(converted) - } - case bool: - str = strconv.FormatBool(converted) - case int64: - str = strconv.FormatInt(converted, 10) - case int: - str = strconv.Itoa(converted) - case float64: - str = strconv.FormatFloat(converted, 'f', -1, 64) - case float32: - str = strconv.FormatFloat(float64(converted), 'f', -1, 32) - case time.Time: - format := tag.Get("timestampFormat") - if len(format) == 0 { - format = protocol.ISO8601TimeFormatName - } - - str = protocol.FormatTime(format, converted) - default: - return fmt.Errorf("unsupported value for param %s: %v (%s)", - tag.Get("locationName"), value.Interface(), value.Type().Name()) - } - - xname := xml.Name{Local: tag.Get("locationName")} - if tag.Get("xmlAttribute") != "" { // put into current node's attribute list - attr := xml.Attr{Name: xname, Value: str} - current.Attr = append(current.Attr, attr) - } else { // regular text node - current.AddChild(&XMLNode{Name: xname, Text: str}) - } - return nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/sort.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/sort.go deleted file mode 100644 index c1a5118..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/sort.go +++ /dev/null @@ -1,32 +0,0 @@ -package xmlutil - -import ( - "encoding/xml" - "strings" -) - -type xmlAttrSlice []xml.Attr - -func (x xmlAttrSlice) Len() int { - return len(x) -} - -func (x xmlAttrSlice) Less(i, j int) bool { - spaceI, spaceJ := x[i].Name.Space, x[j].Name.Space - localI, localJ := x[i].Name.Local, x[j].Name.Local - valueI, valueJ := x[i].Value, x[j].Value - - spaceCmp := strings.Compare(spaceI, spaceJ) - localCmp := strings.Compare(localI, localJ) - valueCmp := strings.Compare(valueI, valueJ) - - if spaceCmp == -1 || (spaceCmp == 0 && (localCmp == -1 || (localCmp == 0 && valueCmp == -1))) { - return true - } - - return false -} - -func (x xmlAttrSlice) Swap(i, j int) { - x[i], x[j] = x[j], x[i] -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go deleted file mode 100644 index 107c053..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go +++ /dev/null @@ -1,299 +0,0 @@ -package xmlutil - -import ( - "bytes" - "encoding/base64" - "encoding/xml" - "fmt" - "io" - "reflect" - "strconv" - "strings" - "time" - - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/private/protocol" -) - -// UnmarshalXMLError unmarshals the XML error from the stream into the value -// type specified. The value must be a pointer. If the message fails to -// unmarshal, the message content will be included in the returned error as a -// awserr.UnmarshalError. -func UnmarshalXMLError(v interface{}, stream io.Reader) error { - var errBuf bytes.Buffer - body := io.TeeReader(stream, &errBuf) - - err := xml.NewDecoder(body).Decode(v) - if err != nil && err != io.EOF { - return awserr.NewUnmarshalError(err, - "failed to unmarshal error message", errBuf.Bytes()) - } - - return nil -} - -// UnmarshalXML deserializes an xml.Decoder into the container v. V -// needs to match the shape of the XML expected to be decoded. -// If the shape doesn't match unmarshaling will fail. -func UnmarshalXML(v interface{}, d *xml.Decoder, wrapper string) error { - n, err := XMLToStruct(d, nil) - if err != nil { - return err - } - if n.Children != nil { - for _, root := range n.Children { - for _, c := range root { - if wrappedChild, ok := c.Children[wrapper]; ok { - c = wrappedChild[0] // pull out wrapped element - } - - err = parse(reflect.ValueOf(v), c, "") - if err != nil { - if err == io.EOF { - return nil - } - return err - } - } - } - return nil - } - return nil -} - -// parse deserializes any value from the XMLNode. The type tag is used to infer the type, or reflect -// will be used to determine the type from r. -func parse(r reflect.Value, node *XMLNode, tag reflect.StructTag) error { - xml := tag.Get("xml") - if len(xml) != 0 { - name := strings.SplitAfterN(xml, ",", 2)[0] - if name == "-" { - return nil - } - } - - rtype := r.Type() - if rtype.Kind() == reflect.Ptr { - rtype = rtype.Elem() // check kind of actual element type - } - - t := tag.Get("type") - if t == "" { - switch rtype.Kind() { - case reflect.Struct: - // also it can't be a time object - if _, ok := r.Interface().(*time.Time); !ok { - t = "structure" - } - case reflect.Slice: - // also it can't be a byte slice - if _, ok := r.Interface().([]byte); !ok { - t = "list" - } - case reflect.Map: - t = "map" - } - } - - switch t { - case "structure": - if field, ok := rtype.FieldByName("_"); ok { - tag = field.Tag - } - return parseStruct(r, node, tag) - case "list": - return parseList(r, node, tag) - case "map": - return parseMap(r, node, tag) - default: - return parseScalar(r, node, tag) - } -} - -// parseStruct deserializes a structure and its fields from an XMLNode. Any nested -// types in the structure will also be deserialized. -func parseStruct(r reflect.Value, node *XMLNode, tag reflect.StructTag) error { - t := r.Type() - if r.Kind() == reflect.Ptr { - if r.IsNil() { // create the structure if it's nil - s := reflect.New(r.Type().Elem()) - r.Set(s) - r = s - } - - r = r.Elem() - t = t.Elem() - } - - // unwrap any payloads - if payload := tag.Get("payload"); payload != "" { - field, _ := t.FieldByName(payload) - return parseStruct(r.FieldByName(payload), node, field.Tag) - } - - for i := 0; i < t.NumField(); i++ { - field := t.Field(i) - if c := field.Name[0:1]; strings.ToLower(c) == c { - continue // ignore unexported fields - } - - // figure out what this field is called - name := field.Name - if field.Tag.Get("flattened") != "" && field.Tag.Get("locationNameList") != "" { - name = field.Tag.Get("locationNameList") - } else if locName := field.Tag.Get("locationName"); locName != "" { - name = locName - } - - // try to find the field by name in elements - elems := node.Children[name] - - if elems == nil { // try to find the field in attributes - if val, ok := node.findElem(name); ok { - elems = []*XMLNode{{Text: val}} - } - } - - member := r.FieldByName(field.Name) - for _, elem := range elems { - err := parse(member, elem, field.Tag) - if err != nil { - return err - } - } - } - return nil -} - -// parseList deserializes a list of values from an XML node. Each list entry -// will also be deserialized. -func parseList(r reflect.Value, node *XMLNode, tag reflect.StructTag) error { - t := r.Type() - - if tag.Get("flattened") == "" { // look at all item entries - mname := "member" - if name := tag.Get("locationNameList"); name != "" { - mname = name - } - - if Children, ok := node.Children[mname]; ok { - if r.IsNil() { - r.Set(reflect.MakeSlice(t, len(Children), len(Children))) - } - - for i, c := range Children { - err := parse(r.Index(i), c, "") - if err != nil { - return err - } - } - } - } else { // flattened list means this is a single element - if r.IsNil() { - r.Set(reflect.MakeSlice(t, 0, 0)) - } - - childR := reflect.Zero(t.Elem()) - r.Set(reflect.Append(r, childR)) - err := parse(r.Index(r.Len()-1), node, "") - if err != nil { - return err - } - } - - return nil -} - -// parseMap deserializes a map from an XMLNode. The direct children of the XMLNode -// will also be deserialized as map entries. -func parseMap(r reflect.Value, node *XMLNode, tag reflect.StructTag) error { - if r.IsNil() { - r.Set(reflect.MakeMap(r.Type())) - } - - if tag.Get("flattened") == "" { // look at all child entries - for _, entry := range node.Children["entry"] { - parseMapEntry(r, entry, tag) - } - } else { // this element is itself an entry - parseMapEntry(r, node, tag) - } - - return nil -} - -// parseMapEntry deserializes a map entry from a XML node. -func parseMapEntry(r reflect.Value, node *XMLNode, tag reflect.StructTag) error { - kname, vname := "key", "value" - if n := tag.Get("locationNameKey"); n != "" { - kname = n - } - if n := tag.Get("locationNameValue"); n != "" { - vname = n - } - - keys, ok := node.Children[kname] - values := node.Children[vname] - if ok { - for i, key := range keys { - keyR := reflect.ValueOf(key.Text) - value := values[i] - valueR := reflect.New(r.Type().Elem()).Elem() - - parse(valueR, value, "") - r.SetMapIndex(keyR, valueR) - } - } - return nil -} - -// parseScaller deserializes an XMLNode value into a concrete type based on the -// interface type of r. -// -// Error is returned if the deserialization fails due to invalid type conversion, -// or unsupported interface type. -func parseScalar(r reflect.Value, node *XMLNode, tag reflect.StructTag) error { - switch r.Interface().(type) { - case *string: - r.Set(reflect.ValueOf(&node.Text)) - return nil - case []byte: - b, err := base64.StdEncoding.DecodeString(node.Text) - if err != nil { - return err - } - r.Set(reflect.ValueOf(b)) - case *bool: - v, err := strconv.ParseBool(node.Text) - if err != nil { - return err - } - r.Set(reflect.ValueOf(&v)) - case *int64: - v, err := strconv.ParseInt(node.Text, 10, 64) - if err != nil { - return err - } - r.Set(reflect.ValueOf(&v)) - case *float64: - v, err := strconv.ParseFloat(node.Text, 64) - if err != nil { - return err - } - r.Set(reflect.ValueOf(&v)) - case *time.Time: - format := tag.Get("timestampFormat") - if len(format) == 0 { - format = protocol.ISO8601TimeFormatName - } - - t, err := protocol.ParseTime(format, node.Text) - if err != nil { - return err - } - r.Set(reflect.ValueOf(&t)) - default: - return fmt.Errorf("unsupported value: %v (%s)", r.Interface(), r.Type()) - } - return nil -} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/xml_to_struct.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/xml_to_struct.go deleted file mode 100644 index 42f7164..0000000 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/xml_to_struct.go +++ /dev/null @@ -1,159 +0,0 @@ -package xmlutil - -import ( - "encoding/xml" - "fmt" - "io" - "sort" -) - -// A XMLNode contains the values to be encoded or decoded. -type XMLNode struct { - Name xml.Name `json:",omitempty"` - Children map[string][]*XMLNode `json:",omitempty"` - Text string `json:",omitempty"` - Attr []xml.Attr `json:",omitempty"` - - namespaces map[string]string - parent *XMLNode -} - -// NewXMLElement returns a pointer to a new XMLNode initialized to default values. -func NewXMLElement(name xml.Name) *XMLNode { - return &XMLNode{ - Name: name, - Children: map[string][]*XMLNode{}, - Attr: []xml.Attr{}, - } -} - -// AddChild adds child to the XMLNode. -func (n *XMLNode) AddChild(child *XMLNode) { - child.parent = n - if _, ok := n.Children[child.Name.Local]; !ok { - n.Children[child.Name.Local] = []*XMLNode{} - } - n.Children[child.Name.Local] = append(n.Children[child.Name.Local], child) -} - -// XMLToStruct converts a xml.Decoder stream to XMLNode with nested values. -func XMLToStruct(d *xml.Decoder, s *xml.StartElement) (*XMLNode, error) { - out := &XMLNode{} - for { - tok, err := d.Token() - if err != nil { - if err == io.EOF { - break - } else { - return out, err - } - } - - if tok == nil { - break - } - - switch typed := tok.(type) { - case xml.CharData: - out.Text = string(typed.Copy()) - case xml.StartElement: - el := typed.Copy() - out.Attr = el.Attr - if out.Children == nil { - out.Children = map[string][]*XMLNode{} - } - - name := typed.Name.Local - slice := out.Children[name] - if slice == nil { - slice = []*XMLNode{} - } - node, e := XMLToStruct(d, &el) - out.findNamespaces() - if e != nil { - return out, e - } - node.Name = typed.Name - node.findNamespaces() - tempOut := *out - // Save into a temp variable, simply because out gets squashed during - // loop iterations - node.parent = &tempOut - slice = append(slice, node) - out.Children[name] = slice - case xml.EndElement: - if s != nil && s.Name.Local == typed.Name.Local { // matching end token - return out, nil - } - out = &XMLNode{} - } - } - return out, nil -} - -func (n *XMLNode) findNamespaces() { - ns := map[string]string{} - for _, a := range n.Attr { - if a.Name.Space == "xmlns" { - ns[a.Value] = a.Name.Local - } - } - - n.namespaces = ns -} - -func (n *XMLNode) findElem(name string) (string, bool) { - for node := n; node != nil; node = node.parent { - for _, a := range node.Attr { - namespace := a.Name.Space - if v, ok := node.namespaces[namespace]; ok { - namespace = v - } - if name == fmt.Sprintf("%s:%s", namespace, a.Name.Local) { - return a.Value, true - } - } - } - return "", false -} - -// StructToXML writes an XMLNode to a xml.Encoder as tokens. -func StructToXML(e *xml.Encoder, node *XMLNode, sorted bool) error { - // Sort Attributes - attrs := node.Attr - if sorted { - sortedAttrs := make([]xml.Attr, len(attrs)) - for _, k := range node.Attr { - sortedAttrs = append(sortedAttrs, k) - } - sort.Sort(xmlAttrSlice(sortedAttrs)) - attrs = sortedAttrs - } - - e.EncodeToken(xml.StartElement{Name: node.Name, Attr: attrs}) - - if node.Text != "" { - e.EncodeToken(xml.CharData([]byte(node.Text))) - } else if sorted { - sortedNames := []string{} - for k := range node.Children { - sortedNames = append(sortedNames, k) - } - sort.Strings(sortedNames) - - for _, k := range sortedNames { - for _, v := range node.Children[k] { - StructToXML(e, v, sorted) - } - } - } else { - for _, c := range node.Children { - for _, v := range c { - StructToXML(e, v, sorted) - } - } - } - - e.EncodeToken(xml.EndElement{Name: node.Name}) - return e.Flush() -} diff --git a/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go b/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go deleted file mode 100644 index 14df306..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go +++ /dev/null @@ -1,53400 +0,0 @@ -// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. - -package ssm - -import ( - "fmt" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awsutil" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/private/protocol" - "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" -) - -const opAddTagsToResource = "AddTagsToResource" - -// AddTagsToResourceRequest generates a "aws/request.Request" representing the -// client's request for the AddTagsToResource operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See AddTagsToResource for more information on using the AddTagsToResource -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the AddTagsToResourceRequest method. -// req, resp := client.AddTagsToResourceRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/AddTagsToResource -func (c *SSM) AddTagsToResourceRequest(input *AddTagsToResourceInput) (req *request.Request, output *AddTagsToResourceOutput) { - op := &request.Operation{ - Name: opAddTagsToResource, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &AddTagsToResourceInput{} - } - - output = &AddTagsToResourceOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// AddTagsToResource API operation for Amazon Simple Systems Manager (SSM). -// -// Adds or overwrites one or more tags for the specified resource. Tags are -// metadata that you can assign to your documents, managed instances, maintenance -// windows, Parameter Store parameters, and patch baselines. Tags enable you -// to categorize your resources in different ways, for example, by purpose, -// owner, or environment. Each tag consists of a key and an optional value, -// both of which you define. For example, you could define a set of tags for -// your account's managed instances that helps you track each instance's owner -// and stack level. For example: Key=Owner and Value=DbAdmin, SysAdmin, or Dev. -// Or Key=Stack and Value=Production, Pre-Production, or Test. -// -// Each resource can have a maximum of 50 tags. -// -// We recommend that you devise a set of tag keys that meets your needs for -// each resource type. Using a consistent set of tag keys makes it easier for -// you to manage your resources. You can search and filter the resources based -// on the tags you add. Tags don't have any semantic meaning to and are interpreted -// strictly as a string of characters. -// -// For more information about using tags with EC2 instances, see Tagging your -// Amazon EC2 resources (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) -// in the Amazon EC2 User Guide. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation AddTagsToResource for usage and error information. -// -// Returned Error Types: -// * InvalidResourceType -// The resource type is not valid. For example, if you are attempting to tag -// an instance, the instance must be a registered, managed instance. -// -// * InvalidResourceId -// The resource ID is not valid. Verify that you entered the correct ID and -// try again. -// -// * InternalServerError -// An error occurred on the server side. -// -// * TooManyTagsError -// The Targets parameter includes too many tags. Remove one or more tags and -// try the command again. -// -// * TooManyUpdates -// There are concurrent updates for a resource that supports one update at a -// time. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/AddTagsToResource -func (c *SSM) AddTagsToResource(input *AddTagsToResourceInput) (*AddTagsToResourceOutput, error) { - req, out := c.AddTagsToResourceRequest(input) - return out, req.Send() -} - -// AddTagsToResourceWithContext is the same as AddTagsToResource with the addition of -// the ability to pass a context and additional request options. -// -// See AddTagsToResource for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) AddTagsToResourceWithContext(ctx aws.Context, input *AddTagsToResourceInput, opts ...request.Option) (*AddTagsToResourceOutput, error) { - req, out := c.AddTagsToResourceRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opCancelCommand = "CancelCommand" - -// CancelCommandRequest generates a "aws/request.Request" representing the -// client's request for the CancelCommand operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See CancelCommand for more information on using the CancelCommand -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the CancelCommandRequest method. -// req, resp := client.CancelCommandRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CancelCommand -func (c *SSM) CancelCommandRequest(input *CancelCommandInput) (req *request.Request, output *CancelCommandOutput) { - op := &request.Operation{ - Name: opCancelCommand, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &CancelCommandInput{} - } - - output = &CancelCommandOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// CancelCommand API operation for Amazon Simple Systems Manager (SSM). -// -// Attempts to cancel the command specified by the Command ID. There is no guarantee -// that the command will be terminated and the underlying process stopped. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation CancelCommand for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidCommandId -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * DuplicateInstanceId -// You cannot specify an instance ID in more than one association. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CancelCommand -func (c *SSM) CancelCommand(input *CancelCommandInput) (*CancelCommandOutput, error) { - req, out := c.CancelCommandRequest(input) - return out, req.Send() -} - -// CancelCommandWithContext is the same as CancelCommand with the addition of -// the ability to pass a context and additional request options. -// -// See CancelCommand for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) CancelCommandWithContext(ctx aws.Context, input *CancelCommandInput, opts ...request.Option) (*CancelCommandOutput, error) { - req, out := c.CancelCommandRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opCancelMaintenanceWindowExecution = "CancelMaintenanceWindowExecution" - -// CancelMaintenanceWindowExecutionRequest generates a "aws/request.Request" representing the -// client's request for the CancelMaintenanceWindowExecution operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See CancelMaintenanceWindowExecution for more information on using the CancelMaintenanceWindowExecution -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the CancelMaintenanceWindowExecutionRequest method. -// req, resp := client.CancelMaintenanceWindowExecutionRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CancelMaintenanceWindowExecution -func (c *SSM) CancelMaintenanceWindowExecutionRequest(input *CancelMaintenanceWindowExecutionInput) (req *request.Request, output *CancelMaintenanceWindowExecutionOutput) { - op := &request.Operation{ - Name: opCancelMaintenanceWindowExecution, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &CancelMaintenanceWindowExecutionInput{} - } - - output = &CancelMaintenanceWindowExecutionOutput{} - req = c.newRequest(op, input, output) - return -} - -// CancelMaintenanceWindowExecution API operation for Amazon Simple Systems Manager (SSM). -// -// Stops a maintenance window execution that is already in progress and cancels -// any tasks in the window that have not already starting running. (Tasks already -// in progress will continue to completion.) -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation CancelMaintenanceWindowExecution for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CancelMaintenanceWindowExecution -func (c *SSM) CancelMaintenanceWindowExecution(input *CancelMaintenanceWindowExecutionInput) (*CancelMaintenanceWindowExecutionOutput, error) { - req, out := c.CancelMaintenanceWindowExecutionRequest(input) - return out, req.Send() -} - -// CancelMaintenanceWindowExecutionWithContext is the same as CancelMaintenanceWindowExecution with the addition of -// the ability to pass a context and additional request options. -// -// See CancelMaintenanceWindowExecution for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) CancelMaintenanceWindowExecutionWithContext(ctx aws.Context, input *CancelMaintenanceWindowExecutionInput, opts ...request.Option) (*CancelMaintenanceWindowExecutionOutput, error) { - req, out := c.CancelMaintenanceWindowExecutionRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opCreateActivation = "CreateActivation" - -// CreateActivationRequest generates a "aws/request.Request" representing the -// client's request for the CreateActivation operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See CreateActivation for more information on using the CreateActivation -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the CreateActivationRequest method. -// req, resp := client.CreateActivationRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateActivation -func (c *SSM) CreateActivationRequest(input *CreateActivationInput) (req *request.Request, output *CreateActivationOutput) { - op := &request.Operation{ - Name: opCreateActivation, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &CreateActivationInput{} - } - - output = &CreateActivationOutput{} - req = c.newRequest(op, input, output) - return -} - -// CreateActivation API operation for Amazon Simple Systems Manager (SSM). -// -// Generates an activation code and activation ID you can use to register your -// on-premises server or virtual machine (VM) with Systems Manager. Registering -// these machines with Systems Manager makes it possible to manage them using -// Systems Manager capabilities. You use the activation code and ID when installing -// SSM Agent on machines in your hybrid environment. For more information about -// requirements for managing on-premises instances and VMs using Systems Manager, -// see Setting up AWS Systems Manager for hybrid environments (https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html) -// in the AWS Systems Manager User Guide. -// -// On-premises servers or VMs that are registered with Systems Manager and EC2 -// instances that you manage with Systems Manager are all called managed instances. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation CreateActivation for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateActivation -func (c *SSM) CreateActivation(input *CreateActivationInput) (*CreateActivationOutput, error) { - req, out := c.CreateActivationRequest(input) - return out, req.Send() -} - -// CreateActivationWithContext is the same as CreateActivation with the addition of -// the ability to pass a context and additional request options. -// -// See CreateActivation for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) CreateActivationWithContext(ctx aws.Context, input *CreateActivationInput, opts ...request.Option) (*CreateActivationOutput, error) { - req, out := c.CreateActivationRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opCreateAssociation = "CreateAssociation" - -// CreateAssociationRequest generates a "aws/request.Request" representing the -// client's request for the CreateAssociation operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See CreateAssociation for more information on using the CreateAssociation -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the CreateAssociationRequest method. -// req, resp := client.CreateAssociationRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateAssociation -func (c *SSM) CreateAssociationRequest(input *CreateAssociationInput) (req *request.Request, output *CreateAssociationOutput) { - op := &request.Operation{ - Name: opCreateAssociation, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &CreateAssociationInput{} - } - - output = &CreateAssociationOutput{} - req = c.newRequest(op, input, output) - return -} - -// CreateAssociation API operation for Amazon Simple Systems Manager (SSM). -// -// A State Manager association defines the state that you want to maintain on -// your instances. For example, an association can specify that anti-virus software -// must be installed and running on your instances, or that certain ports must -// be closed. For static targets, the association specifies a schedule for when -// the configuration is reapplied. For dynamic targets, such as an AWS Resource -// Group or an AWS Autoscaling Group, State Manager applies the configuration -// when new instances are added to the group. The association also specifies -// actions to take when applying the configuration. For example, an association -// for anti-virus software might run once a day. If the software is not installed, -// then State Manager installs it. If the software is installed, but the service -// is not running, then the association might instruct State Manager to start -// the service. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation CreateAssociation for usage and error information. -// -// Returned Error Types: -// * AssociationAlreadyExists -// The specified association already exists. -// -// * AssociationLimitExceeded -// You can have at most 2,000 active associations. -// -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidDocumentVersion -// The document version is not valid or does not exist. -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * UnsupportedPlatformType -// The document does not support the platform type of the given instance ID(s). -// For example, you sent an document for a Windows instance to a Linux instance. -// -// * InvalidOutputLocation -// The output location is not valid or does not exist. -// -// * InvalidParameters -// You must specify values for all required parameters in the Systems Manager -// document. You can only supply values to parameters defined in the Systems -// Manager document. -// -// * InvalidTarget -// The target is not valid or does not exist. It might not be configured for -// Systems Manager or you might not have permission to perform the operation. -// -// * InvalidSchedule -// The schedule is invalid. Verify your cron or rate expression and try again. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateAssociation -func (c *SSM) CreateAssociation(input *CreateAssociationInput) (*CreateAssociationOutput, error) { - req, out := c.CreateAssociationRequest(input) - return out, req.Send() -} - -// CreateAssociationWithContext is the same as CreateAssociation with the addition of -// the ability to pass a context and additional request options. -// -// See CreateAssociation for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) CreateAssociationWithContext(ctx aws.Context, input *CreateAssociationInput, opts ...request.Option) (*CreateAssociationOutput, error) { - req, out := c.CreateAssociationRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opCreateAssociationBatch = "CreateAssociationBatch" - -// CreateAssociationBatchRequest generates a "aws/request.Request" representing the -// client's request for the CreateAssociationBatch operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See CreateAssociationBatch for more information on using the CreateAssociationBatch -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the CreateAssociationBatchRequest method. -// req, resp := client.CreateAssociationBatchRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateAssociationBatch -func (c *SSM) CreateAssociationBatchRequest(input *CreateAssociationBatchInput) (req *request.Request, output *CreateAssociationBatchOutput) { - op := &request.Operation{ - Name: opCreateAssociationBatch, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &CreateAssociationBatchInput{} - } - - output = &CreateAssociationBatchOutput{} - req = c.newRequest(op, input, output) - return -} - -// CreateAssociationBatch API operation for Amazon Simple Systems Manager (SSM). -// -// Associates the specified Systems Manager document with the specified instances -// or targets. -// -// When you associate a document with one or more instances using instance IDs -// or tags, SSM Agent running on the instance processes the document and configures -// the instance as specified. -// -// If you associate a document with an instance that already has an associated -// document, the system returns the AssociationAlreadyExists exception. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation CreateAssociationBatch for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidDocumentVersion -// The document version is not valid or does not exist. -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * InvalidParameters -// You must specify values for all required parameters in the Systems Manager -// document. You can only supply values to parameters defined in the Systems -// Manager document. -// -// * DuplicateInstanceId -// You cannot specify an instance ID in more than one association. -// -// * AssociationLimitExceeded -// You can have at most 2,000 active associations. -// -// * UnsupportedPlatformType -// The document does not support the platform type of the given instance ID(s). -// For example, you sent an document for a Windows instance to a Linux instance. -// -// * InvalidOutputLocation -// The output location is not valid or does not exist. -// -// * InvalidTarget -// The target is not valid or does not exist. It might not be configured for -// Systems Manager or you might not have permission to perform the operation. -// -// * InvalidSchedule -// The schedule is invalid. Verify your cron or rate expression and try again. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateAssociationBatch -func (c *SSM) CreateAssociationBatch(input *CreateAssociationBatchInput) (*CreateAssociationBatchOutput, error) { - req, out := c.CreateAssociationBatchRequest(input) - return out, req.Send() -} - -// CreateAssociationBatchWithContext is the same as CreateAssociationBatch with the addition of -// the ability to pass a context and additional request options. -// -// See CreateAssociationBatch for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) CreateAssociationBatchWithContext(ctx aws.Context, input *CreateAssociationBatchInput, opts ...request.Option) (*CreateAssociationBatchOutput, error) { - req, out := c.CreateAssociationBatchRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opCreateDocument = "CreateDocument" - -// CreateDocumentRequest generates a "aws/request.Request" representing the -// client's request for the CreateDocument operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See CreateDocument for more information on using the CreateDocument -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the CreateDocumentRequest method. -// req, resp := client.CreateDocumentRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateDocument -func (c *SSM) CreateDocumentRequest(input *CreateDocumentInput) (req *request.Request, output *CreateDocumentOutput) { - op := &request.Operation{ - Name: opCreateDocument, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &CreateDocumentInput{} - } - - output = &CreateDocumentOutput{} - req = c.newRequest(op, input, output) - return -} - -// CreateDocument API operation for Amazon Simple Systems Manager (SSM). -// -// Creates a Systems Manager (SSM) document. An SSM document defines the actions -// that Systems Manager performs on your managed instances. For more information -// about SSM documents, including information about supported schemas, features, -// and syntax, see AWS Systems Manager Documents (https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-ssm-docs.html) -// in the AWS Systems Manager User Guide. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation CreateDocument for usage and error information. -// -// Returned Error Types: -// * DocumentAlreadyExists -// The specified document already exists. -// -// * MaxDocumentSizeExceeded -// The size limit of a document is 64 KB. -// -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidDocumentContent -// The content for the document is not valid. -// -// * DocumentLimitExceeded -// You can have at most 500 active Systems Manager documents. -// -// * InvalidDocumentSchemaVersion -// The version of the document schema is not supported. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateDocument -func (c *SSM) CreateDocument(input *CreateDocumentInput) (*CreateDocumentOutput, error) { - req, out := c.CreateDocumentRequest(input) - return out, req.Send() -} - -// CreateDocumentWithContext is the same as CreateDocument with the addition of -// the ability to pass a context and additional request options. -// -// See CreateDocument for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) CreateDocumentWithContext(ctx aws.Context, input *CreateDocumentInput, opts ...request.Option) (*CreateDocumentOutput, error) { - req, out := c.CreateDocumentRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opCreateMaintenanceWindow = "CreateMaintenanceWindow" - -// CreateMaintenanceWindowRequest generates a "aws/request.Request" representing the -// client's request for the CreateMaintenanceWindow operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See CreateMaintenanceWindow for more information on using the CreateMaintenanceWindow -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the CreateMaintenanceWindowRequest method. -// req, resp := client.CreateMaintenanceWindowRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateMaintenanceWindow -func (c *SSM) CreateMaintenanceWindowRequest(input *CreateMaintenanceWindowInput) (req *request.Request, output *CreateMaintenanceWindowOutput) { - op := &request.Operation{ - Name: opCreateMaintenanceWindow, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &CreateMaintenanceWindowInput{} - } - - output = &CreateMaintenanceWindowOutput{} - req = c.newRequest(op, input, output) - return -} - -// CreateMaintenanceWindow API operation for Amazon Simple Systems Manager (SSM). -// -// Creates a new maintenance window. -// -// The value you specify for Duration determines the specific end time for the -// maintenance window based on the time it begins. No maintenance window tasks -// are permitted to start after the resulting endtime minus the number of hours -// you specify for Cutoff. For example, if the maintenance window starts at -// 3 PM, the duration is three hours, and the value you specify for Cutoff is -// one hour, no maintenance window tasks can start after 5 PM. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation CreateMaintenanceWindow for usage and error information. -// -// Returned Error Types: -// * IdempotentParameterMismatch -// Error returned when an idempotent operation is retried and the parameters -// don't match the original call to the API with the same idempotency token. -// -// * ResourceLimitExceededException -// Error returned when the caller has exceeded the default resource quotas. -// For example, too many maintenance windows or patch baselines have been created. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateMaintenanceWindow -func (c *SSM) CreateMaintenanceWindow(input *CreateMaintenanceWindowInput) (*CreateMaintenanceWindowOutput, error) { - req, out := c.CreateMaintenanceWindowRequest(input) - return out, req.Send() -} - -// CreateMaintenanceWindowWithContext is the same as CreateMaintenanceWindow with the addition of -// the ability to pass a context and additional request options. -// -// See CreateMaintenanceWindow for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) CreateMaintenanceWindowWithContext(ctx aws.Context, input *CreateMaintenanceWindowInput, opts ...request.Option) (*CreateMaintenanceWindowOutput, error) { - req, out := c.CreateMaintenanceWindowRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opCreateOpsItem = "CreateOpsItem" - -// CreateOpsItemRequest generates a "aws/request.Request" representing the -// client's request for the CreateOpsItem operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See CreateOpsItem for more information on using the CreateOpsItem -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the CreateOpsItemRequest method. -// req, resp := client.CreateOpsItemRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateOpsItem -func (c *SSM) CreateOpsItemRequest(input *CreateOpsItemInput) (req *request.Request, output *CreateOpsItemOutput) { - op := &request.Operation{ - Name: opCreateOpsItem, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &CreateOpsItemInput{} - } - - output = &CreateOpsItemOutput{} - req = c.newRequest(op, input, output) - return -} - -// CreateOpsItem API operation for Amazon Simple Systems Manager (SSM). -// -// Creates a new OpsItem. You must have permission in AWS Identity and Access -// Management (IAM) to create a new OpsItem. For more information, see Getting -// started with OpsCenter (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html) -// in the AWS Systems Manager User Guide. -// -// Operations engineers and IT professionals use OpsCenter to view, investigate, -// and remediate operational issues impacting the performance and health of -// their AWS resources. For more information, see AWS Systems Manager OpsCenter -// (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html) -// in the AWS Systems Manager User Guide. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation CreateOpsItem for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * OpsItemAlreadyExistsException -// The OpsItem already exists. -// -// * OpsItemLimitExceededException -// The request caused OpsItems to exceed one or more quotas. For information -// about OpsItem quotas, see What are the resource limits for OpsCenter? (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-learn-more.html#OpsCenter-learn-more-limits). -// -// * OpsItemInvalidParameterException -// A specified parameter argument isn't valid. Verify the available arguments -// and try again. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateOpsItem -func (c *SSM) CreateOpsItem(input *CreateOpsItemInput) (*CreateOpsItemOutput, error) { - req, out := c.CreateOpsItemRequest(input) - return out, req.Send() -} - -// CreateOpsItemWithContext is the same as CreateOpsItem with the addition of -// the ability to pass a context and additional request options. -// -// See CreateOpsItem for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) CreateOpsItemWithContext(ctx aws.Context, input *CreateOpsItemInput, opts ...request.Option) (*CreateOpsItemOutput, error) { - req, out := c.CreateOpsItemRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opCreateOpsMetadata = "CreateOpsMetadata" - -// CreateOpsMetadataRequest generates a "aws/request.Request" representing the -// client's request for the CreateOpsMetadata operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See CreateOpsMetadata for more information on using the CreateOpsMetadata -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the CreateOpsMetadataRequest method. -// req, resp := client.CreateOpsMetadataRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateOpsMetadata -func (c *SSM) CreateOpsMetadataRequest(input *CreateOpsMetadataInput) (req *request.Request, output *CreateOpsMetadataOutput) { - op := &request.Operation{ - Name: opCreateOpsMetadata, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &CreateOpsMetadataInput{} - } - - output = &CreateOpsMetadataOutput{} - req = c.newRequest(op, input, output) - return -} - -// CreateOpsMetadata API operation for Amazon Simple Systems Manager (SSM). -// -// If you create a new application in Application Manager, Systems Manager calls -// this API action to specify information about the new application, including -// the application type. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation CreateOpsMetadata for usage and error information. -// -// Returned Error Types: -// * OpsMetadataAlreadyExistsException -// An OpsMetadata object already exists for the selected resource. -// -// * OpsMetadataTooManyUpdatesException -// The system is processing too many concurrent updates. Wait a few moments -// and try again. -// -// * OpsMetadataInvalidArgumentException -// One of the arguments passed is invalid. -// -// * OpsMetadataLimitExceededException -// Your account reached the maximum number of OpsMetadata objects allowed by -// Application Manager. The maximum is 200 OpsMetadata objects. Delete one or -// more OpsMetadata object and try again. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateOpsMetadata -func (c *SSM) CreateOpsMetadata(input *CreateOpsMetadataInput) (*CreateOpsMetadataOutput, error) { - req, out := c.CreateOpsMetadataRequest(input) - return out, req.Send() -} - -// CreateOpsMetadataWithContext is the same as CreateOpsMetadata with the addition of -// the ability to pass a context and additional request options. -// -// See CreateOpsMetadata for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) CreateOpsMetadataWithContext(ctx aws.Context, input *CreateOpsMetadataInput, opts ...request.Option) (*CreateOpsMetadataOutput, error) { - req, out := c.CreateOpsMetadataRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opCreatePatchBaseline = "CreatePatchBaseline" - -// CreatePatchBaselineRequest generates a "aws/request.Request" representing the -// client's request for the CreatePatchBaseline operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See CreatePatchBaseline for more information on using the CreatePatchBaseline -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the CreatePatchBaselineRequest method. -// req, resp := client.CreatePatchBaselineRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreatePatchBaseline -func (c *SSM) CreatePatchBaselineRequest(input *CreatePatchBaselineInput) (req *request.Request, output *CreatePatchBaselineOutput) { - op := &request.Operation{ - Name: opCreatePatchBaseline, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &CreatePatchBaselineInput{} - } - - output = &CreatePatchBaselineOutput{} - req = c.newRequest(op, input, output) - return -} - -// CreatePatchBaseline API operation for Amazon Simple Systems Manager (SSM). -// -// Creates a patch baseline. -// -// For information about valid key and value pairs in PatchFilters for each -// supported operating system type, see PatchFilter (http://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html). -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation CreatePatchBaseline for usage and error information. -// -// Returned Error Types: -// * IdempotentParameterMismatch -// Error returned when an idempotent operation is retried and the parameters -// don't match the original call to the API with the same idempotency token. -// -// * ResourceLimitExceededException -// Error returned when the caller has exceeded the default resource quotas. -// For example, too many maintenance windows or patch baselines have been created. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreatePatchBaseline -func (c *SSM) CreatePatchBaseline(input *CreatePatchBaselineInput) (*CreatePatchBaselineOutput, error) { - req, out := c.CreatePatchBaselineRequest(input) - return out, req.Send() -} - -// CreatePatchBaselineWithContext is the same as CreatePatchBaseline with the addition of -// the ability to pass a context and additional request options. -// -// See CreatePatchBaseline for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) CreatePatchBaselineWithContext(ctx aws.Context, input *CreatePatchBaselineInput, opts ...request.Option) (*CreatePatchBaselineOutput, error) { - req, out := c.CreatePatchBaselineRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opCreateResourceDataSync = "CreateResourceDataSync" - -// CreateResourceDataSyncRequest generates a "aws/request.Request" representing the -// client's request for the CreateResourceDataSync operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See CreateResourceDataSync for more information on using the CreateResourceDataSync -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the CreateResourceDataSyncRequest method. -// req, resp := client.CreateResourceDataSyncRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateResourceDataSync -func (c *SSM) CreateResourceDataSyncRequest(input *CreateResourceDataSyncInput) (req *request.Request, output *CreateResourceDataSyncOutput) { - op := &request.Operation{ - Name: opCreateResourceDataSync, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &CreateResourceDataSyncInput{} - } - - output = &CreateResourceDataSyncOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// CreateResourceDataSync API operation for Amazon Simple Systems Manager (SSM). -// -// A resource data sync helps you view data from multiple sources in a single -// location. Systems Manager offers two types of resource data sync: SyncToDestination -// and SyncFromSource. -// -// You can configure Systems Manager Inventory to use the SyncToDestination -// type to synchronize Inventory data from multiple AWS Regions to a single -// S3 bucket. For more information, see Configuring Resource Data Sync for Inventory -// (https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-datasync.html) -// in the AWS Systems Manager User Guide. -// -// You can configure Systems Manager Explorer to use the SyncFromSource type -// to synchronize operational work items (OpsItems) and operational data (OpsData) -// from multiple AWS Regions to a single S3 bucket. This type can synchronize -// OpsItems and OpsData from multiple AWS accounts and Regions or EntireOrganization -// by using AWS Organizations. For more information, see Setting up Systems -// Manager Explorer to display data from multiple accounts and Regions (https://docs.aws.amazon.com/systems-manager/latest/userguide/Explorer-resource-data-sync.html) -// in the AWS Systems Manager User Guide. -// -// A resource data sync is an asynchronous operation that returns immediately. -// After a successful initial sync is completed, the system continuously syncs -// data. To check the status of a sync, use the ListResourceDataSync. -// -// By default, data is not encrypted in Amazon S3. We strongly recommend that -// you enable encryption in Amazon S3 to ensure secure data storage. We also -// recommend that you secure access to the Amazon S3 bucket by creating a restrictive -// bucket policy. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation CreateResourceDataSync for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * ResourceDataSyncCountExceededException -// You have exceeded the allowed maximum sync configurations. -// -// * ResourceDataSyncAlreadyExistsException -// A sync configuration with the same name already exists. -// -// * ResourceDataSyncInvalidConfigurationException -// The specified sync configuration is invalid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateResourceDataSync -func (c *SSM) CreateResourceDataSync(input *CreateResourceDataSyncInput) (*CreateResourceDataSyncOutput, error) { - req, out := c.CreateResourceDataSyncRequest(input) - return out, req.Send() -} - -// CreateResourceDataSyncWithContext is the same as CreateResourceDataSync with the addition of -// the ability to pass a context and additional request options. -// -// See CreateResourceDataSync for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) CreateResourceDataSyncWithContext(ctx aws.Context, input *CreateResourceDataSyncInput, opts ...request.Option) (*CreateResourceDataSyncOutput, error) { - req, out := c.CreateResourceDataSyncRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDeleteActivation = "DeleteActivation" - -// DeleteActivationRequest generates a "aws/request.Request" representing the -// client's request for the DeleteActivation operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DeleteActivation for more information on using the DeleteActivation -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DeleteActivationRequest method. -// req, resp := client.DeleteActivationRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteActivation -func (c *SSM) DeleteActivationRequest(input *DeleteActivationInput) (req *request.Request, output *DeleteActivationOutput) { - op := &request.Operation{ - Name: opDeleteActivation, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DeleteActivationInput{} - } - - output = &DeleteActivationOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// DeleteActivation API operation for Amazon Simple Systems Manager (SSM). -// -// Deletes an activation. You are not required to delete an activation. If you -// delete an activation, you can no longer use it to register additional managed -// instances. Deleting an activation does not de-register managed instances. -// You must manually de-register managed instances. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DeleteActivation for usage and error information. -// -// Returned Error Types: -// * InvalidActivationId -// The activation ID is not valid. Verify the you entered the correct ActivationId -// or ActivationCode and try again. -// -// * InvalidActivation -// The activation is not valid. The activation might have been deleted, or the -// ActivationId and the ActivationCode do not match. -// -// * InternalServerError -// An error occurred on the server side. -// -// * TooManyUpdates -// There are concurrent updates for a resource that supports one update at a -// time. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteActivation -func (c *SSM) DeleteActivation(input *DeleteActivationInput) (*DeleteActivationOutput, error) { - req, out := c.DeleteActivationRequest(input) - return out, req.Send() -} - -// DeleteActivationWithContext is the same as DeleteActivation with the addition of -// the ability to pass a context and additional request options. -// -// See DeleteActivation for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DeleteActivationWithContext(ctx aws.Context, input *DeleteActivationInput, opts ...request.Option) (*DeleteActivationOutput, error) { - req, out := c.DeleteActivationRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDeleteAssociation = "DeleteAssociation" - -// DeleteAssociationRequest generates a "aws/request.Request" representing the -// client's request for the DeleteAssociation operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DeleteAssociation for more information on using the DeleteAssociation -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DeleteAssociationRequest method. -// req, resp := client.DeleteAssociationRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteAssociation -func (c *SSM) DeleteAssociationRequest(input *DeleteAssociationInput) (req *request.Request, output *DeleteAssociationOutput) { - op := &request.Operation{ - Name: opDeleteAssociation, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DeleteAssociationInput{} - } - - output = &DeleteAssociationOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// DeleteAssociation API operation for Amazon Simple Systems Manager (SSM). -// -// Disassociates the specified Systems Manager document from the specified instance. -// -// When you disassociate a document from an instance, it does not change the -// configuration of the instance. To change the configuration state of an instance -// after you disassociate a document, you must create a new document with the -// desired configuration and associate it with the instance. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DeleteAssociation for usage and error information. -// -// Returned Error Types: -// * AssociationDoesNotExist -// The specified association does not exist. -// -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * TooManyUpdates -// There are concurrent updates for a resource that supports one update at a -// time. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteAssociation -func (c *SSM) DeleteAssociation(input *DeleteAssociationInput) (*DeleteAssociationOutput, error) { - req, out := c.DeleteAssociationRequest(input) - return out, req.Send() -} - -// DeleteAssociationWithContext is the same as DeleteAssociation with the addition of -// the ability to pass a context and additional request options. -// -// See DeleteAssociation for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DeleteAssociationWithContext(ctx aws.Context, input *DeleteAssociationInput, opts ...request.Option) (*DeleteAssociationOutput, error) { - req, out := c.DeleteAssociationRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDeleteDocument = "DeleteDocument" - -// DeleteDocumentRequest generates a "aws/request.Request" representing the -// client's request for the DeleteDocument operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DeleteDocument for more information on using the DeleteDocument -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DeleteDocumentRequest method. -// req, resp := client.DeleteDocumentRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteDocument -func (c *SSM) DeleteDocumentRequest(input *DeleteDocumentInput) (req *request.Request, output *DeleteDocumentOutput) { - op := &request.Operation{ - Name: opDeleteDocument, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DeleteDocumentInput{} - } - - output = &DeleteDocumentOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// DeleteDocument API operation for Amazon Simple Systems Manager (SSM). -// -// Deletes the Systems Manager document and all instance associations to the -// document. -// -// Before you delete the document, we recommend that you use DeleteAssociation -// to disassociate all instances that are associated with the document. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DeleteDocument for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidDocumentOperation -// You attempted to delete a document while it is still shared. You must stop -// sharing the document before you can delete it. -// -// * AssociatedInstances -// You must disassociate a document from all instances before you can delete -// it. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteDocument -func (c *SSM) DeleteDocument(input *DeleteDocumentInput) (*DeleteDocumentOutput, error) { - req, out := c.DeleteDocumentRequest(input) - return out, req.Send() -} - -// DeleteDocumentWithContext is the same as DeleteDocument with the addition of -// the ability to pass a context and additional request options. -// -// See DeleteDocument for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DeleteDocumentWithContext(ctx aws.Context, input *DeleteDocumentInput, opts ...request.Option) (*DeleteDocumentOutput, error) { - req, out := c.DeleteDocumentRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDeleteInventory = "DeleteInventory" - -// DeleteInventoryRequest generates a "aws/request.Request" representing the -// client's request for the DeleteInventory operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DeleteInventory for more information on using the DeleteInventory -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DeleteInventoryRequest method. -// req, resp := client.DeleteInventoryRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteInventory -func (c *SSM) DeleteInventoryRequest(input *DeleteInventoryInput) (req *request.Request, output *DeleteInventoryOutput) { - op := &request.Operation{ - Name: opDeleteInventory, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DeleteInventoryInput{} - } - - output = &DeleteInventoryOutput{} - req = c.newRequest(op, input, output) - return -} - -// DeleteInventory API operation for Amazon Simple Systems Manager (SSM). -// -// Delete a custom inventory type or the data associated with a custom Inventory -// type. Deleting a custom inventory type is also referred to as deleting a -// custom inventory schema. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DeleteInventory for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidTypeNameException -// The parameter type name is not valid. -// -// * InvalidOptionException -// The delete inventory option specified is not valid. Verify the option and -// try again. -// -// * InvalidDeleteInventoryParametersException -// One or more of the parameters specified for the delete operation is not valid. -// Verify all parameters and try again. -// -// * InvalidInventoryRequestException -// The request is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteInventory -func (c *SSM) DeleteInventory(input *DeleteInventoryInput) (*DeleteInventoryOutput, error) { - req, out := c.DeleteInventoryRequest(input) - return out, req.Send() -} - -// DeleteInventoryWithContext is the same as DeleteInventory with the addition of -// the ability to pass a context and additional request options. -// -// See DeleteInventory for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DeleteInventoryWithContext(ctx aws.Context, input *DeleteInventoryInput, opts ...request.Option) (*DeleteInventoryOutput, error) { - req, out := c.DeleteInventoryRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDeleteMaintenanceWindow = "DeleteMaintenanceWindow" - -// DeleteMaintenanceWindowRequest generates a "aws/request.Request" representing the -// client's request for the DeleteMaintenanceWindow operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DeleteMaintenanceWindow for more information on using the DeleteMaintenanceWindow -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DeleteMaintenanceWindowRequest method. -// req, resp := client.DeleteMaintenanceWindowRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteMaintenanceWindow -func (c *SSM) DeleteMaintenanceWindowRequest(input *DeleteMaintenanceWindowInput) (req *request.Request, output *DeleteMaintenanceWindowOutput) { - op := &request.Operation{ - Name: opDeleteMaintenanceWindow, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DeleteMaintenanceWindowInput{} - } - - output = &DeleteMaintenanceWindowOutput{} - req = c.newRequest(op, input, output) - return -} - -// DeleteMaintenanceWindow API operation for Amazon Simple Systems Manager (SSM). -// -// Deletes a maintenance window. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DeleteMaintenanceWindow for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteMaintenanceWindow -func (c *SSM) DeleteMaintenanceWindow(input *DeleteMaintenanceWindowInput) (*DeleteMaintenanceWindowOutput, error) { - req, out := c.DeleteMaintenanceWindowRequest(input) - return out, req.Send() -} - -// DeleteMaintenanceWindowWithContext is the same as DeleteMaintenanceWindow with the addition of -// the ability to pass a context and additional request options. -// -// See DeleteMaintenanceWindow for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DeleteMaintenanceWindowWithContext(ctx aws.Context, input *DeleteMaintenanceWindowInput, opts ...request.Option) (*DeleteMaintenanceWindowOutput, error) { - req, out := c.DeleteMaintenanceWindowRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDeleteOpsMetadata = "DeleteOpsMetadata" - -// DeleteOpsMetadataRequest generates a "aws/request.Request" representing the -// client's request for the DeleteOpsMetadata operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DeleteOpsMetadata for more information on using the DeleteOpsMetadata -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DeleteOpsMetadataRequest method. -// req, resp := client.DeleteOpsMetadataRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteOpsMetadata -func (c *SSM) DeleteOpsMetadataRequest(input *DeleteOpsMetadataInput) (req *request.Request, output *DeleteOpsMetadataOutput) { - op := &request.Operation{ - Name: opDeleteOpsMetadata, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DeleteOpsMetadataInput{} - } - - output = &DeleteOpsMetadataOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// DeleteOpsMetadata API operation for Amazon Simple Systems Manager (SSM). -// -// Delete OpsMetadata related to an application. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DeleteOpsMetadata for usage and error information. -// -// Returned Error Types: -// * OpsMetadataNotFoundException -// The OpsMetadata object does not exist. -// -// * OpsMetadataInvalidArgumentException -// One of the arguments passed is invalid. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteOpsMetadata -func (c *SSM) DeleteOpsMetadata(input *DeleteOpsMetadataInput) (*DeleteOpsMetadataOutput, error) { - req, out := c.DeleteOpsMetadataRequest(input) - return out, req.Send() -} - -// DeleteOpsMetadataWithContext is the same as DeleteOpsMetadata with the addition of -// the ability to pass a context and additional request options. -// -// See DeleteOpsMetadata for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DeleteOpsMetadataWithContext(ctx aws.Context, input *DeleteOpsMetadataInput, opts ...request.Option) (*DeleteOpsMetadataOutput, error) { - req, out := c.DeleteOpsMetadataRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDeleteParameter = "DeleteParameter" - -// DeleteParameterRequest generates a "aws/request.Request" representing the -// client's request for the DeleteParameter operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DeleteParameter for more information on using the DeleteParameter -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DeleteParameterRequest method. -// req, resp := client.DeleteParameterRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteParameter -func (c *SSM) DeleteParameterRequest(input *DeleteParameterInput) (req *request.Request, output *DeleteParameterOutput) { - op := &request.Operation{ - Name: opDeleteParameter, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DeleteParameterInput{} - } - - output = &DeleteParameterOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// DeleteParameter API operation for Amazon Simple Systems Manager (SSM). -// -// Delete a parameter from the system. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DeleteParameter for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * ParameterNotFound -// The parameter could not be found. Verify the name and try again. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteParameter -func (c *SSM) DeleteParameter(input *DeleteParameterInput) (*DeleteParameterOutput, error) { - req, out := c.DeleteParameterRequest(input) - return out, req.Send() -} - -// DeleteParameterWithContext is the same as DeleteParameter with the addition of -// the ability to pass a context and additional request options. -// -// See DeleteParameter for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DeleteParameterWithContext(ctx aws.Context, input *DeleteParameterInput, opts ...request.Option) (*DeleteParameterOutput, error) { - req, out := c.DeleteParameterRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDeleteParameters = "DeleteParameters" - -// DeleteParametersRequest generates a "aws/request.Request" representing the -// client's request for the DeleteParameters operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DeleteParameters for more information on using the DeleteParameters -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DeleteParametersRequest method. -// req, resp := client.DeleteParametersRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteParameters -func (c *SSM) DeleteParametersRequest(input *DeleteParametersInput) (req *request.Request, output *DeleteParametersOutput) { - op := &request.Operation{ - Name: opDeleteParameters, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DeleteParametersInput{} - } - - output = &DeleteParametersOutput{} - req = c.newRequest(op, input, output) - return -} - -// DeleteParameters API operation for Amazon Simple Systems Manager (SSM). -// -// Delete a list of parameters. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DeleteParameters for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteParameters -func (c *SSM) DeleteParameters(input *DeleteParametersInput) (*DeleteParametersOutput, error) { - req, out := c.DeleteParametersRequest(input) - return out, req.Send() -} - -// DeleteParametersWithContext is the same as DeleteParameters with the addition of -// the ability to pass a context and additional request options. -// -// See DeleteParameters for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DeleteParametersWithContext(ctx aws.Context, input *DeleteParametersInput, opts ...request.Option) (*DeleteParametersOutput, error) { - req, out := c.DeleteParametersRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDeletePatchBaseline = "DeletePatchBaseline" - -// DeletePatchBaselineRequest generates a "aws/request.Request" representing the -// client's request for the DeletePatchBaseline operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DeletePatchBaseline for more information on using the DeletePatchBaseline -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DeletePatchBaselineRequest method. -// req, resp := client.DeletePatchBaselineRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeletePatchBaseline -func (c *SSM) DeletePatchBaselineRequest(input *DeletePatchBaselineInput) (req *request.Request, output *DeletePatchBaselineOutput) { - op := &request.Operation{ - Name: opDeletePatchBaseline, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DeletePatchBaselineInput{} - } - - output = &DeletePatchBaselineOutput{} - req = c.newRequest(op, input, output) - return -} - -// DeletePatchBaseline API operation for Amazon Simple Systems Manager (SSM). -// -// Deletes a patch baseline. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DeletePatchBaseline for usage and error information. -// -// Returned Error Types: -// * ResourceInUseException -// Error returned if an attempt is made to delete a patch baseline that is registered -// for a patch group. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeletePatchBaseline -func (c *SSM) DeletePatchBaseline(input *DeletePatchBaselineInput) (*DeletePatchBaselineOutput, error) { - req, out := c.DeletePatchBaselineRequest(input) - return out, req.Send() -} - -// DeletePatchBaselineWithContext is the same as DeletePatchBaseline with the addition of -// the ability to pass a context and additional request options. -// -// See DeletePatchBaseline for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DeletePatchBaselineWithContext(ctx aws.Context, input *DeletePatchBaselineInput, opts ...request.Option) (*DeletePatchBaselineOutput, error) { - req, out := c.DeletePatchBaselineRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDeleteResourceDataSync = "DeleteResourceDataSync" - -// DeleteResourceDataSyncRequest generates a "aws/request.Request" representing the -// client's request for the DeleteResourceDataSync operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DeleteResourceDataSync for more information on using the DeleteResourceDataSync -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DeleteResourceDataSyncRequest method. -// req, resp := client.DeleteResourceDataSyncRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteResourceDataSync -func (c *SSM) DeleteResourceDataSyncRequest(input *DeleteResourceDataSyncInput) (req *request.Request, output *DeleteResourceDataSyncOutput) { - op := &request.Operation{ - Name: opDeleteResourceDataSync, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DeleteResourceDataSyncInput{} - } - - output = &DeleteResourceDataSyncOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// DeleteResourceDataSync API operation for Amazon Simple Systems Manager (SSM). -// -// Deletes a Resource Data Sync configuration. After the configuration is deleted, -// changes to data on managed instances are no longer synced to or from the -// target. Deleting a sync configuration does not delete data. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DeleteResourceDataSync for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * ResourceDataSyncNotFoundException -// The specified sync name was not found. -// -// * ResourceDataSyncInvalidConfigurationException -// The specified sync configuration is invalid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteResourceDataSync -func (c *SSM) DeleteResourceDataSync(input *DeleteResourceDataSyncInput) (*DeleteResourceDataSyncOutput, error) { - req, out := c.DeleteResourceDataSyncRequest(input) - return out, req.Send() -} - -// DeleteResourceDataSyncWithContext is the same as DeleteResourceDataSync with the addition of -// the ability to pass a context and additional request options. -// -// See DeleteResourceDataSync for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DeleteResourceDataSyncWithContext(ctx aws.Context, input *DeleteResourceDataSyncInput, opts ...request.Option) (*DeleteResourceDataSyncOutput, error) { - req, out := c.DeleteResourceDataSyncRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDeregisterManagedInstance = "DeregisterManagedInstance" - -// DeregisterManagedInstanceRequest generates a "aws/request.Request" representing the -// client's request for the DeregisterManagedInstance operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DeregisterManagedInstance for more information on using the DeregisterManagedInstance -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DeregisterManagedInstanceRequest method. -// req, resp := client.DeregisterManagedInstanceRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterManagedInstance -func (c *SSM) DeregisterManagedInstanceRequest(input *DeregisterManagedInstanceInput) (req *request.Request, output *DeregisterManagedInstanceOutput) { - op := &request.Operation{ - Name: opDeregisterManagedInstance, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DeregisterManagedInstanceInput{} - } - - output = &DeregisterManagedInstanceOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// DeregisterManagedInstance API operation for Amazon Simple Systems Manager (SSM). -// -// Removes the server or virtual machine from the list of registered servers. -// You can reregister the instance again at any time. If you don't plan to use -// Run Command on the server, we suggest uninstalling SSM Agent first. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DeregisterManagedInstance for usage and error information. -// -// Returned Error Types: -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterManagedInstance -func (c *SSM) DeregisterManagedInstance(input *DeregisterManagedInstanceInput) (*DeregisterManagedInstanceOutput, error) { - req, out := c.DeregisterManagedInstanceRequest(input) - return out, req.Send() -} - -// DeregisterManagedInstanceWithContext is the same as DeregisterManagedInstance with the addition of -// the ability to pass a context and additional request options. -// -// See DeregisterManagedInstance for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DeregisterManagedInstanceWithContext(ctx aws.Context, input *DeregisterManagedInstanceInput, opts ...request.Option) (*DeregisterManagedInstanceOutput, error) { - req, out := c.DeregisterManagedInstanceRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDeregisterPatchBaselineForPatchGroup = "DeregisterPatchBaselineForPatchGroup" - -// DeregisterPatchBaselineForPatchGroupRequest generates a "aws/request.Request" representing the -// client's request for the DeregisterPatchBaselineForPatchGroup operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DeregisterPatchBaselineForPatchGroup for more information on using the DeregisterPatchBaselineForPatchGroup -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DeregisterPatchBaselineForPatchGroupRequest method. -// req, resp := client.DeregisterPatchBaselineForPatchGroupRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterPatchBaselineForPatchGroup -func (c *SSM) DeregisterPatchBaselineForPatchGroupRequest(input *DeregisterPatchBaselineForPatchGroupInput) (req *request.Request, output *DeregisterPatchBaselineForPatchGroupOutput) { - op := &request.Operation{ - Name: opDeregisterPatchBaselineForPatchGroup, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DeregisterPatchBaselineForPatchGroupInput{} - } - - output = &DeregisterPatchBaselineForPatchGroupOutput{} - req = c.newRequest(op, input, output) - return -} - -// DeregisterPatchBaselineForPatchGroup API operation for Amazon Simple Systems Manager (SSM). -// -// Removes a patch group from a patch baseline. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DeregisterPatchBaselineForPatchGroup for usage and error information. -// -// Returned Error Types: -// * InvalidResourceId -// The resource ID is not valid. Verify that you entered the correct ID and -// try again. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterPatchBaselineForPatchGroup -func (c *SSM) DeregisterPatchBaselineForPatchGroup(input *DeregisterPatchBaselineForPatchGroupInput) (*DeregisterPatchBaselineForPatchGroupOutput, error) { - req, out := c.DeregisterPatchBaselineForPatchGroupRequest(input) - return out, req.Send() -} - -// DeregisterPatchBaselineForPatchGroupWithContext is the same as DeregisterPatchBaselineForPatchGroup with the addition of -// the ability to pass a context and additional request options. -// -// See DeregisterPatchBaselineForPatchGroup for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DeregisterPatchBaselineForPatchGroupWithContext(ctx aws.Context, input *DeregisterPatchBaselineForPatchGroupInput, opts ...request.Option) (*DeregisterPatchBaselineForPatchGroupOutput, error) { - req, out := c.DeregisterPatchBaselineForPatchGroupRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDeregisterTargetFromMaintenanceWindow = "DeregisterTargetFromMaintenanceWindow" - -// DeregisterTargetFromMaintenanceWindowRequest generates a "aws/request.Request" representing the -// client's request for the DeregisterTargetFromMaintenanceWindow operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DeregisterTargetFromMaintenanceWindow for more information on using the DeregisterTargetFromMaintenanceWindow -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DeregisterTargetFromMaintenanceWindowRequest method. -// req, resp := client.DeregisterTargetFromMaintenanceWindowRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterTargetFromMaintenanceWindow -func (c *SSM) DeregisterTargetFromMaintenanceWindowRequest(input *DeregisterTargetFromMaintenanceWindowInput) (req *request.Request, output *DeregisterTargetFromMaintenanceWindowOutput) { - op := &request.Operation{ - Name: opDeregisterTargetFromMaintenanceWindow, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DeregisterTargetFromMaintenanceWindowInput{} - } - - output = &DeregisterTargetFromMaintenanceWindowOutput{} - req = c.newRequest(op, input, output) - return -} - -// DeregisterTargetFromMaintenanceWindow API operation for Amazon Simple Systems Manager (SSM). -// -// Removes a target from a maintenance window. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DeregisterTargetFromMaintenanceWindow for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// * TargetInUseException -// You specified the Safe option for the DeregisterTargetFromMaintenanceWindow -// operation, but the target is still referenced in a task. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterTargetFromMaintenanceWindow -func (c *SSM) DeregisterTargetFromMaintenanceWindow(input *DeregisterTargetFromMaintenanceWindowInput) (*DeregisterTargetFromMaintenanceWindowOutput, error) { - req, out := c.DeregisterTargetFromMaintenanceWindowRequest(input) - return out, req.Send() -} - -// DeregisterTargetFromMaintenanceWindowWithContext is the same as DeregisterTargetFromMaintenanceWindow with the addition of -// the ability to pass a context and additional request options. -// -// See DeregisterTargetFromMaintenanceWindow for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DeregisterTargetFromMaintenanceWindowWithContext(ctx aws.Context, input *DeregisterTargetFromMaintenanceWindowInput, opts ...request.Option) (*DeregisterTargetFromMaintenanceWindowOutput, error) { - req, out := c.DeregisterTargetFromMaintenanceWindowRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDeregisterTaskFromMaintenanceWindow = "DeregisterTaskFromMaintenanceWindow" - -// DeregisterTaskFromMaintenanceWindowRequest generates a "aws/request.Request" representing the -// client's request for the DeregisterTaskFromMaintenanceWindow operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DeregisterTaskFromMaintenanceWindow for more information on using the DeregisterTaskFromMaintenanceWindow -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DeregisterTaskFromMaintenanceWindowRequest method. -// req, resp := client.DeregisterTaskFromMaintenanceWindowRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterTaskFromMaintenanceWindow -func (c *SSM) DeregisterTaskFromMaintenanceWindowRequest(input *DeregisterTaskFromMaintenanceWindowInput) (req *request.Request, output *DeregisterTaskFromMaintenanceWindowOutput) { - op := &request.Operation{ - Name: opDeregisterTaskFromMaintenanceWindow, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DeregisterTaskFromMaintenanceWindowInput{} - } - - output = &DeregisterTaskFromMaintenanceWindowOutput{} - req = c.newRequest(op, input, output) - return -} - -// DeregisterTaskFromMaintenanceWindow API operation for Amazon Simple Systems Manager (SSM). -// -// Removes a task from a maintenance window. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DeregisterTaskFromMaintenanceWindow for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterTaskFromMaintenanceWindow -func (c *SSM) DeregisterTaskFromMaintenanceWindow(input *DeregisterTaskFromMaintenanceWindowInput) (*DeregisterTaskFromMaintenanceWindowOutput, error) { - req, out := c.DeregisterTaskFromMaintenanceWindowRequest(input) - return out, req.Send() -} - -// DeregisterTaskFromMaintenanceWindowWithContext is the same as DeregisterTaskFromMaintenanceWindow with the addition of -// the ability to pass a context and additional request options. -// -// See DeregisterTaskFromMaintenanceWindow for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DeregisterTaskFromMaintenanceWindowWithContext(ctx aws.Context, input *DeregisterTaskFromMaintenanceWindowInput, opts ...request.Option) (*DeregisterTaskFromMaintenanceWindowOutput, error) { - req, out := c.DeregisterTaskFromMaintenanceWindowRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDescribeActivations = "DescribeActivations" - -// DescribeActivationsRequest generates a "aws/request.Request" representing the -// client's request for the DescribeActivations operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeActivations for more information on using the DescribeActivations -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeActivationsRequest method. -// req, resp := client.DescribeActivationsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeActivations -func (c *SSM) DescribeActivationsRequest(input *DescribeActivationsInput) (req *request.Request, output *DescribeActivationsOutput) { - op := &request.Operation{ - Name: opDescribeActivations, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeActivationsInput{} - } - - output = &DescribeActivationsOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeActivations API operation for Amazon Simple Systems Manager (SSM). -// -// Describes details about the activation, such as the date and time the activation -// was created, its expiration date, the IAM role assigned to the instances -// in the activation, and the number of instances registered by using this activation. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeActivations for usage and error information. -// -// Returned Error Types: -// * InvalidFilter -// The filter name is not valid. Verify the you entered the correct name and -// try again. -// -// * InvalidNextToken -// The specified token is not valid. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeActivations -func (c *SSM) DescribeActivations(input *DescribeActivationsInput) (*DescribeActivationsOutput, error) { - req, out := c.DescribeActivationsRequest(input) - return out, req.Send() -} - -// DescribeActivationsWithContext is the same as DescribeActivations with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeActivations for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeActivationsWithContext(ctx aws.Context, input *DescribeActivationsInput, opts ...request.Option) (*DescribeActivationsOutput, error) { - req, out := c.DescribeActivationsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeActivationsPages iterates over the pages of a DescribeActivations operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeActivations method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeActivations operation. -// pageNum := 0 -// err := client.DescribeActivationsPages(params, -// func(page *ssm.DescribeActivationsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeActivationsPages(input *DescribeActivationsInput, fn func(*DescribeActivationsOutput, bool) bool) error { - return c.DescribeActivationsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeActivationsPagesWithContext same as DescribeActivationsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeActivationsPagesWithContext(ctx aws.Context, input *DescribeActivationsInput, fn func(*DescribeActivationsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeActivationsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeActivationsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeActivationsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeAssociation = "DescribeAssociation" - -// DescribeAssociationRequest generates a "aws/request.Request" representing the -// client's request for the DescribeAssociation operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeAssociation for more information on using the DescribeAssociation -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeAssociationRequest method. -// req, resp := client.DescribeAssociationRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAssociation -func (c *SSM) DescribeAssociationRequest(input *DescribeAssociationInput) (req *request.Request, output *DescribeAssociationOutput) { - op := &request.Operation{ - Name: opDescribeAssociation, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DescribeAssociationInput{} - } - - output = &DescribeAssociationOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeAssociation API operation for Amazon Simple Systems Manager (SSM). -// -// Describes the association for the specified target or instance. If you created -// the association by using the Targets parameter, then you must retrieve the -// association by using the association ID. If you created the association by -// specifying an instance ID and a Systems Manager document, then you retrieve -// the association by specifying the document name and the instance ID. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeAssociation for usage and error information. -// -// Returned Error Types: -// * AssociationDoesNotExist -// The specified association does not exist. -// -// * InvalidAssociationVersion -// The version you specified is not valid. Use ListAssociationVersions to view -// all versions of an association according to the association ID. Or, use the -// $LATEST parameter to view the latest version of the association. -// -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAssociation -func (c *SSM) DescribeAssociation(input *DescribeAssociationInput) (*DescribeAssociationOutput, error) { - req, out := c.DescribeAssociationRequest(input) - return out, req.Send() -} - -// DescribeAssociationWithContext is the same as DescribeAssociation with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeAssociation for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeAssociationWithContext(ctx aws.Context, input *DescribeAssociationInput, opts ...request.Option) (*DescribeAssociationOutput, error) { - req, out := c.DescribeAssociationRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDescribeAssociationExecutionTargets = "DescribeAssociationExecutionTargets" - -// DescribeAssociationExecutionTargetsRequest generates a "aws/request.Request" representing the -// client's request for the DescribeAssociationExecutionTargets operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeAssociationExecutionTargets for more information on using the DescribeAssociationExecutionTargets -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeAssociationExecutionTargetsRequest method. -// req, resp := client.DescribeAssociationExecutionTargetsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAssociationExecutionTargets -func (c *SSM) DescribeAssociationExecutionTargetsRequest(input *DescribeAssociationExecutionTargetsInput) (req *request.Request, output *DescribeAssociationExecutionTargetsOutput) { - op := &request.Operation{ - Name: opDescribeAssociationExecutionTargets, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeAssociationExecutionTargetsInput{} - } - - output = &DescribeAssociationExecutionTargetsOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeAssociationExecutionTargets API operation for Amazon Simple Systems Manager (SSM). -// -// Use this API action to view information about a specific execution of a specific -// association. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeAssociationExecutionTargets for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * AssociationDoesNotExist -// The specified association does not exist. -// -// * InvalidNextToken -// The specified token is not valid. -// -// * AssociationExecutionDoesNotExist -// The specified execution ID does not exist. Verify the ID number and try again. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAssociationExecutionTargets -func (c *SSM) DescribeAssociationExecutionTargets(input *DescribeAssociationExecutionTargetsInput) (*DescribeAssociationExecutionTargetsOutput, error) { - req, out := c.DescribeAssociationExecutionTargetsRequest(input) - return out, req.Send() -} - -// DescribeAssociationExecutionTargetsWithContext is the same as DescribeAssociationExecutionTargets with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeAssociationExecutionTargets for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeAssociationExecutionTargetsWithContext(ctx aws.Context, input *DescribeAssociationExecutionTargetsInput, opts ...request.Option) (*DescribeAssociationExecutionTargetsOutput, error) { - req, out := c.DescribeAssociationExecutionTargetsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeAssociationExecutionTargetsPages iterates over the pages of a DescribeAssociationExecutionTargets operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeAssociationExecutionTargets method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeAssociationExecutionTargets operation. -// pageNum := 0 -// err := client.DescribeAssociationExecutionTargetsPages(params, -// func(page *ssm.DescribeAssociationExecutionTargetsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeAssociationExecutionTargetsPages(input *DescribeAssociationExecutionTargetsInput, fn func(*DescribeAssociationExecutionTargetsOutput, bool) bool) error { - return c.DescribeAssociationExecutionTargetsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeAssociationExecutionTargetsPagesWithContext same as DescribeAssociationExecutionTargetsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeAssociationExecutionTargetsPagesWithContext(ctx aws.Context, input *DescribeAssociationExecutionTargetsInput, fn func(*DescribeAssociationExecutionTargetsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeAssociationExecutionTargetsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeAssociationExecutionTargetsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeAssociationExecutionTargetsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeAssociationExecutions = "DescribeAssociationExecutions" - -// DescribeAssociationExecutionsRequest generates a "aws/request.Request" representing the -// client's request for the DescribeAssociationExecutions operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeAssociationExecutions for more information on using the DescribeAssociationExecutions -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeAssociationExecutionsRequest method. -// req, resp := client.DescribeAssociationExecutionsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAssociationExecutions -func (c *SSM) DescribeAssociationExecutionsRequest(input *DescribeAssociationExecutionsInput) (req *request.Request, output *DescribeAssociationExecutionsOutput) { - op := &request.Operation{ - Name: opDescribeAssociationExecutions, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeAssociationExecutionsInput{} - } - - output = &DescribeAssociationExecutionsOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeAssociationExecutions API operation for Amazon Simple Systems Manager (SSM). -// -// Use this API action to view all executions for a specific association ID. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeAssociationExecutions for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * AssociationDoesNotExist -// The specified association does not exist. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAssociationExecutions -func (c *SSM) DescribeAssociationExecutions(input *DescribeAssociationExecutionsInput) (*DescribeAssociationExecutionsOutput, error) { - req, out := c.DescribeAssociationExecutionsRequest(input) - return out, req.Send() -} - -// DescribeAssociationExecutionsWithContext is the same as DescribeAssociationExecutions with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeAssociationExecutions for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeAssociationExecutionsWithContext(ctx aws.Context, input *DescribeAssociationExecutionsInput, opts ...request.Option) (*DescribeAssociationExecutionsOutput, error) { - req, out := c.DescribeAssociationExecutionsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeAssociationExecutionsPages iterates over the pages of a DescribeAssociationExecutions operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeAssociationExecutions method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeAssociationExecutions operation. -// pageNum := 0 -// err := client.DescribeAssociationExecutionsPages(params, -// func(page *ssm.DescribeAssociationExecutionsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeAssociationExecutionsPages(input *DescribeAssociationExecutionsInput, fn func(*DescribeAssociationExecutionsOutput, bool) bool) error { - return c.DescribeAssociationExecutionsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeAssociationExecutionsPagesWithContext same as DescribeAssociationExecutionsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeAssociationExecutionsPagesWithContext(ctx aws.Context, input *DescribeAssociationExecutionsInput, fn func(*DescribeAssociationExecutionsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeAssociationExecutionsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeAssociationExecutionsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeAssociationExecutionsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeAutomationExecutions = "DescribeAutomationExecutions" - -// DescribeAutomationExecutionsRequest generates a "aws/request.Request" representing the -// client's request for the DescribeAutomationExecutions operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeAutomationExecutions for more information on using the DescribeAutomationExecutions -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeAutomationExecutionsRequest method. -// req, resp := client.DescribeAutomationExecutionsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAutomationExecutions -func (c *SSM) DescribeAutomationExecutionsRequest(input *DescribeAutomationExecutionsInput) (req *request.Request, output *DescribeAutomationExecutionsOutput) { - op := &request.Operation{ - Name: opDescribeAutomationExecutions, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeAutomationExecutionsInput{} - } - - output = &DescribeAutomationExecutionsOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeAutomationExecutions API operation for Amazon Simple Systems Manager (SSM). -// -// Provides details about all active and terminated Automation executions. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeAutomationExecutions for usage and error information. -// -// Returned Error Types: -// * InvalidFilterKey -// The specified key is not valid. -// -// * InvalidFilterValue -// The filter value is not valid. Verify the value and try again. -// -// * InvalidNextToken -// The specified token is not valid. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAutomationExecutions -func (c *SSM) DescribeAutomationExecutions(input *DescribeAutomationExecutionsInput) (*DescribeAutomationExecutionsOutput, error) { - req, out := c.DescribeAutomationExecutionsRequest(input) - return out, req.Send() -} - -// DescribeAutomationExecutionsWithContext is the same as DescribeAutomationExecutions with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeAutomationExecutions for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeAutomationExecutionsWithContext(ctx aws.Context, input *DescribeAutomationExecutionsInput, opts ...request.Option) (*DescribeAutomationExecutionsOutput, error) { - req, out := c.DescribeAutomationExecutionsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeAutomationExecutionsPages iterates over the pages of a DescribeAutomationExecutions operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeAutomationExecutions method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeAutomationExecutions operation. -// pageNum := 0 -// err := client.DescribeAutomationExecutionsPages(params, -// func(page *ssm.DescribeAutomationExecutionsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeAutomationExecutionsPages(input *DescribeAutomationExecutionsInput, fn func(*DescribeAutomationExecutionsOutput, bool) bool) error { - return c.DescribeAutomationExecutionsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeAutomationExecutionsPagesWithContext same as DescribeAutomationExecutionsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeAutomationExecutionsPagesWithContext(ctx aws.Context, input *DescribeAutomationExecutionsInput, fn func(*DescribeAutomationExecutionsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeAutomationExecutionsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeAutomationExecutionsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeAutomationExecutionsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeAutomationStepExecutions = "DescribeAutomationStepExecutions" - -// DescribeAutomationStepExecutionsRequest generates a "aws/request.Request" representing the -// client's request for the DescribeAutomationStepExecutions operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeAutomationStepExecutions for more information on using the DescribeAutomationStepExecutions -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeAutomationStepExecutionsRequest method. -// req, resp := client.DescribeAutomationStepExecutionsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAutomationStepExecutions -func (c *SSM) DescribeAutomationStepExecutionsRequest(input *DescribeAutomationStepExecutionsInput) (req *request.Request, output *DescribeAutomationStepExecutionsOutput) { - op := &request.Operation{ - Name: opDescribeAutomationStepExecutions, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeAutomationStepExecutionsInput{} - } - - output = &DescribeAutomationStepExecutionsOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeAutomationStepExecutions API operation for Amazon Simple Systems Manager (SSM). -// -// Information about all active and terminated step executions in an Automation -// workflow. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeAutomationStepExecutions for usage and error information. -// -// Returned Error Types: -// * AutomationExecutionNotFoundException -// There is no automation execution information for the requested automation -// execution ID. -// -// * InvalidNextToken -// The specified token is not valid. -// -// * InvalidFilterKey -// The specified key is not valid. -// -// * InvalidFilterValue -// The filter value is not valid. Verify the value and try again. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAutomationStepExecutions -func (c *SSM) DescribeAutomationStepExecutions(input *DescribeAutomationStepExecutionsInput) (*DescribeAutomationStepExecutionsOutput, error) { - req, out := c.DescribeAutomationStepExecutionsRequest(input) - return out, req.Send() -} - -// DescribeAutomationStepExecutionsWithContext is the same as DescribeAutomationStepExecutions with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeAutomationStepExecutions for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeAutomationStepExecutionsWithContext(ctx aws.Context, input *DescribeAutomationStepExecutionsInput, opts ...request.Option) (*DescribeAutomationStepExecutionsOutput, error) { - req, out := c.DescribeAutomationStepExecutionsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeAutomationStepExecutionsPages iterates over the pages of a DescribeAutomationStepExecutions operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeAutomationStepExecutions method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeAutomationStepExecutions operation. -// pageNum := 0 -// err := client.DescribeAutomationStepExecutionsPages(params, -// func(page *ssm.DescribeAutomationStepExecutionsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeAutomationStepExecutionsPages(input *DescribeAutomationStepExecutionsInput, fn func(*DescribeAutomationStepExecutionsOutput, bool) bool) error { - return c.DescribeAutomationStepExecutionsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeAutomationStepExecutionsPagesWithContext same as DescribeAutomationStepExecutionsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeAutomationStepExecutionsPagesWithContext(ctx aws.Context, input *DescribeAutomationStepExecutionsInput, fn func(*DescribeAutomationStepExecutionsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeAutomationStepExecutionsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeAutomationStepExecutionsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeAutomationStepExecutionsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeAvailablePatches = "DescribeAvailablePatches" - -// DescribeAvailablePatchesRequest generates a "aws/request.Request" representing the -// client's request for the DescribeAvailablePatches operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeAvailablePatches for more information on using the DescribeAvailablePatches -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeAvailablePatchesRequest method. -// req, resp := client.DescribeAvailablePatchesRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAvailablePatches -func (c *SSM) DescribeAvailablePatchesRequest(input *DescribeAvailablePatchesInput) (req *request.Request, output *DescribeAvailablePatchesOutput) { - op := &request.Operation{ - Name: opDescribeAvailablePatches, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeAvailablePatchesInput{} - } - - output = &DescribeAvailablePatchesOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeAvailablePatches API operation for Amazon Simple Systems Manager (SSM). -// -// Lists all patches eligible to be included in a patch baseline. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeAvailablePatches for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAvailablePatches -func (c *SSM) DescribeAvailablePatches(input *DescribeAvailablePatchesInput) (*DescribeAvailablePatchesOutput, error) { - req, out := c.DescribeAvailablePatchesRequest(input) - return out, req.Send() -} - -// DescribeAvailablePatchesWithContext is the same as DescribeAvailablePatches with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeAvailablePatches for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeAvailablePatchesWithContext(ctx aws.Context, input *DescribeAvailablePatchesInput, opts ...request.Option) (*DescribeAvailablePatchesOutput, error) { - req, out := c.DescribeAvailablePatchesRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeAvailablePatchesPages iterates over the pages of a DescribeAvailablePatches operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeAvailablePatches method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeAvailablePatches operation. -// pageNum := 0 -// err := client.DescribeAvailablePatchesPages(params, -// func(page *ssm.DescribeAvailablePatchesOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeAvailablePatchesPages(input *DescribeAvailablePatchesInput, fn func(*DescribeAvailablePatchesOutput, bool) bool) error { - return c.DescribeAvailablePatchesPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeAvailablePatchesPagesWithContext same as DescribeAvailablePatchesPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeAvailablePatchesPagesWithContext(ctx aws.Context, input *DescribeAvailablePatchesInput, fn func(*DescribeAvailablePatchesOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeAvailablePatchesInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeAvailablePatchesRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeAvailablePatchesOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeDocument = "DescribeDocument" - -// DescribeDocumentRequest generates a "aws/request.Request" representing the -// client's request for the DescribeDocument operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeDocument for more information on using the DescribeDocument -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeDocumentRequest method. -// req, resp := client.DescribeDocumentRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeDocument -func (c *SSM) DescribeDocumentRequest(input *DescribeDocumentInput) (req *request.Request, output *DescribeDocumentOutput) { - op := &request.Operation{ - Name: opDescribeDocument, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DescribeDocumentInput{} - } - - output = &DescribeDocumentOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeDocument API operation for Amazon Simple Systems Manager (SSM). -// -// Describes the specified Systems Manager document. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeDocument for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidDocumentVersion -// The document version is not valid or does not exist. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeDocument -func (c *SSM) DescribeDocument(input *DescribeDocumentInput) (*DescribeDocumentOutput, error) { - req, out := c.DescribeDocumentRequest(input) - return out, req.Send() -} - -// DescribeDocumentWithContext is the same as DescribeDocument with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeDocument for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeDocumentWithContext(ctx aws.Context, input *DescribeDocumentInput, opts ...request.Option) (*DescribeDocumentOutput, error) { - req, out := c.DescribeDocumentRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDescribeDocumentPermission = "DescribeDocumentPermission" - -// DescribeDocumentPermissionRequest generates a "aws/request.Request" representing the -// client's request for the DescribeDocumentPermission operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeDocumentPermission for more information on using the DescribeDocumentPermission -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeDocumentPermissionRequest method. -// req, resp := client.DescribeDocumentPermissionRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeDocumentPermission -func (c *SSM) DescribeDocumentPermissionRequest(input *DescribeDocumentPermissionInput) (req *request.Request, output *DescribeDocumentPermissionOutput) { - op := &request.Operation{ - Name: opDescribeDocumentPermission, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DescribeDocumentPermissionInput{} - } - - output = &DescribeDocumentPermissionOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeDocumentPermission API operation for Amazon Simple Systems Manager (SSM). -// -// Describes the permissions for a Systems Manager document. If you created -// the document, you are the owner. If a document is shared, it can either be -// shared privately (by specifying a user's AWS account ID) or publicly (All). -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeDocumentPermission for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidNextToken -// The specified token is not valid. -// -// * InvalidPermissionType -// The permission type is not supported. Share is the only supported permission -// type. -// -// * InvalidDocumentOperation -// You attempted to delete a document while it is still shared. You must stop -// sharing the document before you can delete it. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeDocumentPermission -func (c *SSM) DescribeDocumentPermission(input *DescribeDocumentPermissionInput) (*DescribeDocumentPermissionOutput, error) { - req, out := c.DescribeDocumentPermissionRequest(input) - return out, req.Send() -} - -// DescribeDocumentPermissionWithContext is the same as DescribeDocumentPermission with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeDocumentPermission for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeDocumentPermissionWithContext(ctx aws.Context, input *DescribeDocumentPermissionInput, opts ...request.Option) (*DescribeDocumentPermissionOutput, error) { - req, out := c.DescribeDocumentPermissionRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDescribeEffectiveInstanceAssociations = "DescribeEffectiveInstanceAssociations" - -// DescribeEffectiveInstanceAssociationsRequest generates a "aws/request.Request" representing the -// client's request for the DescribeEffectiveInstanceAssociations operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeEffectiveInstanceAssociations for more information on using the DescribeEffectiveInstanceAssociations -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeEffectiveInstanceAssociationsRequest method. -// req, resp := client.DescribeEffectiveInstanceAssociationsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeEffectiveInstanceAssociations -func (c *SSM) DescribeEffectiveInstanceAssociationsRequest(input *DescribeEffectiveInstanceAssociationsInput) (req *request.Request, output *DescribeEffectiveInstanceAssociationsOutput) { - op := &request.Operation{ - Name: opDescribeEffectiveInstanceAssociations, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeEffectiveInstanceAssociationsInput{} - } - - output = &DescribeEffectiveInstanceAssociationsOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeEffectiveInstanceAssociations API operation for Amazon Simple Systems Manager (SSM). -// -// All associations for the instance(s). -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeEffectiveInstanceAssociations for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeEffectiveInstanceAssociations -func (c *SSM) DescribeEffectiveInstanceAssociations(input *DescribeEffectiveInstanceAssociationsInput) (*DescribeEffectiveInstanceAssociationsOutput, error) { - req, out := c.DescribeEffectiveInstanceAssociationsRequest(input) - return out, req.Send() -} - -// DescribeEffectiveInstanceAssociationsWithContext is the same as DescribeEffectiveInstanceAssociations with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeEffectiveInstanceAssociations for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeEffectiveInstanceAssociationsWithContext(ctx aws.Context, input *DescribeEffectiveInstanceAssociationsInput, opts ...request.Option) (*DescribeEffectiveInstanceAssociationsOutput, error) { - req, out := c.DescribeEffectiveInstanceAssociationsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeEffectiveInstanceAssociationsPages iterates over the pages of a DescribeEffectiveInstanceAssociations operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeEffectiveInstanceAssociations method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeEffectiveInstanceAssociations operation. -// pageNum := 0 -// err := client.DescribeEffectiveInstanceAssociationsPages(params, -// func(page *ssm.DescribeEffectiveInstanceAssociationsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeEffectiveInstanceAssociationsPages(input *DescribeEffectiveInstanceAssociationsInput, fn func(*DescribeEffectiveInstanceAssociationsOutput, bool) bool) error { - return c.DescribeEffectiveInstanceAssociationsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeEffectiveInstanceAssociationsPagesWithContext same as DescribeEffectiveInstanceAssociationsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeEffectiveInstanceAssociationsPagesWithContext(ctx aws.Context, input *DescribeEffectiveInstanceAssociationsInput, fn func(*DescribeEffectiveInstanceAssociationsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeEffectiveInstanceAssociationsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeEffectiveInstanceAssociationsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeEffectiveInstanceAssociationsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeEffectivePatchesForPatchBaseline = "DescribeEffectivePatchesForPatchBaseline" - -// DescribeEffectivePatchesForPatchBaselineRequest generates a "aws/request.Request" representing the -// client's request for the DescribeEffectivePatchesForPatchBaseline operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeEffectivePatchesForPatchBaseline for more information on using the DescribeEffectivePatchesForPatchBaseline -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeEffectivePatchesForPatchBaselineRequest method. -// req, resp := client.DescribeEffectivePatchesForPatchBaselineRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeEffectivePatchesForPatchBaseline -func (c *SSM) DescribeEffectivePatchesForPatchBaselineRequest(input *DescribeEffectivePatchesForPatchBaselineInput) (req *request.Request, output *DescribeEffectivePatchesForPatchBaselineOutput) { - op := &request.Operation{ - Name: opDescribeEffectivePatchesForPatchBaseline, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeEffectivePatchesForPatchBaselineInput{} - } - - output = &DescribeEffectivePatchesForPatchBaselineOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeEffectivePatchesForPatchBaseline API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves the current effective patches (the patch and the approval state) -// for the specified patch baseline. Note that this API applies only to Windows -// patch baselines. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeEffectivePatchesForPatchBaseline for usage and error information. -// -// Returned Error Types: -// * InvalidResourceId -// The resource ID is not valid. Verify that you entered the correct ID and -// try again. -// -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * UnsupportedOperatingSystem -// The operating systems you specified is not supported, or the operation is -// not supported for the operating system. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeEffectivePatchesForPatchBaseline -func (c *SSM) DescribeEffectivePatchesForPatchBaseline(input *DescribeEffectivePatchesForPatchBaselineInput) (*DescribeEffectivePatchesForPatchBaselineOutput, error) { - req, out := c.DescribeEffectivePatchesForPatchBaselineRequest(input) - return out, req.Send() -} - -// DescribeEffectivePatchesForPatchBaselineWithContext is the same as DescribeEffectivePatchesForPatchBaseline with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeEffectivePatchesForPatchBaseline for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeEffectivePatchesForPatchBaselineWithContext(ctx aws.Context, input *DescribeEffectivePatchesForPatchBaselineInput, opts ...request.Option) (*DescribeEffectivePatchesForPatchBaselineOutput, error) { - req, out := c.DescribeEffectivePatchesForPatchBaselineRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeEffectivePatchesForPatchBaselinePages iterates over the pages of a DescribeEffectivePatchesForPatchBaseline operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeEffectivePatchesForPatchBaseline method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeEffectivePatchesForPatchBaseline operation. -// pageNum := 0 -// err := client.DescribeEffectivePatchesForPatchBaselinePages(params, -// func(page *ssm.DescribeEffectivePatchesForPatchBaselineOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeEffectivePatchesForPatchBaselinePages(input *DescribeEffectivePatchesForPatchBaselineInput, fn func(*DescribeEffectivePatchesForPatchBaselineOutput, bool) bool) error { - return c.DescribeEffectivePatchesForPatchBaselinePagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeEffectivePatchesForPatchBaselinePagesWithContext same as DescribeEffectivePatchesForPatchBaselinePages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeEffectivePatchesForPatchBaselinePagesWithContext(ctx aws.Context, input *DescribeEffectivePatchesForPatchBaselineInput, fn func(*DescribeEffectivePatchesForPatchBaselineOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeEffectivePatchesForPatchBaselineInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeEffectivePatchesForPatchBaselineRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeEffectivePatchesForPatchBaselineOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeInstanceAssociationsStatus = "DescribeInstanceAssociationsStatus" - -// DescribeInstanceAssociationsStatusRequest generates a "aws/request.Request" representing the -// client's request for the DescribeInstanceAssociationsStatus operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeInstanceAssociationsStatus for more information on using the DescribeInstanceAssociationsStatus -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeInstanceAssociationsStatusRequest method. -// req, resp := client.DescribeInstanceAssociationsStatusRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstanceAssociationsStatus -func (c *SSM) DescribeInstanceAssociationsStatusRequest(input *DescribeInstanceAssociationsStatusInput) (req *request.Request, output *DescribeInstanceAssociationsStatusOutput) { - op := &request.Operation{ - Name: opDescribeInstanceAssociationsStatus, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeInstanceAssociationsStatusInput{} - } - - output = &DescribeInstanceAssociationsStatusOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeInstanceAssociationsStatus API operation for Amazon Simple Systems Manager (SSM). -// -// The status of the associations for the instance(s). -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeInstanceAssociationsStatus for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstanceAssociationsStatus -func (c *SSM) DescribeInstanceAssociationsStatus(input *DescribeInstanceAssociationsStatusInput) (*DescribeInstanceAssociationsStatusOutput, error) { - req, out := c.DescribeInstanceAssociationsStatusRequest(input) - return out, req.Send() -} - -// DescribeInstanceAssociationsStatusWithContext is the same as DescribeInstanceAssociationsStatus with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeInstanceAssociationsStatus for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeInstanceAssociationsStatusWithContext(ctx aws.Context, input *DescribeInstanceAssociationsStatusInput, opts ...request.Option) (*DescribeInstanceAssociationsStatusOutput, error) { - req, out := c.DescribeInstanceAssociationsStatusRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeInstanceAssociationsStatusPages iterates over the pages of a DescribeInstanceAssociationsStatus operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeInstanceAssociationsStatus method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeInstanceAssociationsStatus operation. -// pageNum := 0 -// err := client.DescribeInstanceAssociationsStatusPages(params, -// func(page *ssm.DescribeInstanceAssociationsStatusOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeInstanceAssociationsStatusPages(input *DescribeInstanceAssociationsStatusInput, fn func(*DescribeInstanceAssociationsStatusOutput, bool) bool) error { - return c.DescribeInstanceAssociationsStatusPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeInstanceAssociationsStatusPagesWithContext same as DescribeInstanceAssociationsStatusPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeInstanceAssociationsStatusPagesWithContext(ctx aws.Context, input *DescribeInstanceAssociationsStatusInput, fn func(*DescribeInstanceAssociationsStatusOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeInstanceAssociationsStatusInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeInstanceAssociationsStatusRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeInstanceAssociationsStatusOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeInstanceInformation = "DescribeInstanceInformation" - -// DescribeInstanceInformationRequest generates a "aws/request.Request" representing the -// client's request for the DescribeInstanceInformation operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeInstanceInformation for more information on using the DescribeInstanceInformation -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeInstanceInformationRequest method. -// req, resp := client.DescribeInstanceInformationRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstanceInformation -func (c *SSM) DescribeInstanceInformationRequest(input *DescribeInstanceInformationInput) (req *request.Request, output *DescribeInstanceInformationOutput) { - op := &request.Operation{ - Name: opDescribeInstanceInformation, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeInstanceInformationInput{} - } - - output = &DescribeInstanceInformationOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeInstanceInformation API operation for Amazon Simple Systems Manager (SSM). -// -// Describes one or more of your instances, including information about the -// operating system platform, the version of SSM Agent installed on the instance, -// instance status, and so on. -// -// If you specify one or more instance IDs, it returns information for those -// instances. If you do not specify instance IDs, it returns information for -// all your instances. If you specify an instance ID that is not valid or an -// instance that you do not own, you receive an error. -// -// The IamRole field for this API action is the Amazon Identity and Access Management -// (IAM) role assigned to on-premises instances. This call does not return the -// IAM role for EC2 instances. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeInstanceInformation for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * InvalidNextToken -// The specified token is not valid. -// -// * InvalidInstanceInformationFilterValue -// The specified filter value is not valid. -// -// * InvalidFilterKey -// The specified key is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstanceInformation -func (c *SSM) DescribeInstanceInformation(input *DescribeInstanceInformationInput) (*DescribeInstanceInformationOutput, error) { - req, out := c.DescribeInstanceInformationRequest(input) - return out, req.Send() -} - -// DescribeInstanceInformationWithContext is the same as DescribeInstanceInformation with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeInstanceInformation for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeInstanceInformationWithContext(ctx aws.Context, input *DescribeInstanceInformationInput, opts ...request.Option) (*DescribeInstanceInformationOutput, error) { - req, out := c.DescribeInstanceInformationRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeInstanceInformationPages iterates over the pages of a DescribeInstanceInformation operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeInstanceInformation method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeInstanceInformation operation. -// pageNum := 0 -// err := client.DescribeInstanceInformationPages(params, -// func(page *ssm.DescribeInstanceInformationOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeInstanceInformationPages(input *DescribeInstanceInformationInput, fn func(*DescribeInstanceInformationOutput, bool) bool) error { - return c.DescribeInstanceInformationPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeInstanceInformationPagesWithContext same as DescribeInstanceInformationPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeInstanceInformationPagesWithContext(ctx aws.Context, input *DescribeInstanceInformationInput, fn func(*DescribeInstanceInformationOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeInstanceInformationInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeInstanceInformationRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeInstanceInformationOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeInstancePatchStates = "DescribeInstancePatchStates" - -// DescribeInstancePatchStatesRequest generates a "aws/request.Request" representing the -// client's request for the DescribeInstancePatchStates operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeInstancePatchStates for more information on using the DescribeInstancePatchStates -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeInstancePatchStatesRequest method. -// req, resp := client.DescribeInstancePatchStatesRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstancePatchStates -func (c *SSM) DescribeInstancePatchStatesRequest(input *DescribeInstancePatchStatesInput) (req *request.Request, output *DescribeInstancePatchStatesOutput) { - op := &request.Operation{ - Name: opDescribeInstancePatchStates, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeInstancePatchStatesInput{} - } - - output = &DescribeInstancePatchStatesOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeInstancePatchStates API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves the high-level patch state of one or more instances. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeInstancePatchStates for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstancePatchStates -func (c *SSM) DescribeInstancePatchStates(input *DescribeInstancePatchStatesInput) (*DescribeInstancePatchStatesOutput, error) { - req, out := c.DescribeInstancePatchStatesRequest(input) - return out, req.Send() -} - -// DescribeInstancePatchStatesWithContext is the same as DescribeInstancePatchStates with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeInstancePatchStates for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeInstancePatchStatesWithContext(ctx aws.Context, input *DescribeInstancePatchStatesInput, opts ...request.Option) (*DescribeInstancePatchStatesOutput, error) { - req, out := c.DescribeInstancePatchStatesRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeInstancePatchStatesPages iterates over the pages of a DescribeInstancePatchStates operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeInstancePatchStates method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeInstancePatchStates operation. -// pageNum := 0 -// err := client.DescribeInstancePatchStatesPages(params, -// func(page *ssm.DescribeInstancePatchStatesOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeInstancePatchStatesPages(input *DescribeInstancePatchStatesInput, fn func(*DescribeInstancePatchStatesOutput, bool) bool) error { - return c.DescribeInstancePatchStatesPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeInstancePatchStatesPagesWithContext same as DescribeInstancePatchStatesPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeInstancePatchStatesPagesWithContext(ctx aws.Context, input *DescribeInstancePatchStatesInput, fn func(*DescribeInstancePatchStatesOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeInstancePatchStatesInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeInstancePatchStatesRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeInstancePatchStatesOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeInstancePatchStatesForPatchGroup = "DescribeInstancePatchStatesForPatchGroup" - -// DescribeInstancePatchStatesForPatchGroupRequest generates a "aws/request.Request" representing the -// client's request for the DescribeInstancePatchStatesForPatchGroup operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeInstancePatchStatesForPatchGroup for more information on using the DescribeInstancePatchStatesForPatchGroup -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeInstancePatchStatesForPatchGroupRequest method. -// req, resp := client.DescribeInstancePatchStatesForPatchGroupRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstancePatchStatesForPatchGroup -func (c *SSM) DescribeInstancePatchStatesForPatchGroupRequest(input *DescribeInstancePatchStatesForPatchGroupInput) (req *request.Request, output *DescribeInstancePatchStatesForPatchGroupOutput) { - op := &request.Operation{ - Name: opDescribeInstancePatchStatesForPatchGroup, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeInstancePatchStatesForPatchGroupInput{} - } - - output = &DescribeInstancePatchStatesForPatchGroupOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeInstancePatchStatesForPatchGroup API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves the high-level patch state for the instances in the specified patch -// group. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeInstancePatchStatesForPatchGroup for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidFilter -// The filter name is not valid. Verify the you entered the correct name and -// try again. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstancePatchStatesForPatchGroup -func (c *SSM) DescribeInstancePatchStatesForPatchGroup(input *DescribeInstancePatchStatesForPatchGroupInput) (*DescribeInstancePatchStatesForPatchGroupOutput, error) { - req, out := c.DescribeInstancePatchStatesForPatchGroupRequest(input) - return out, req.Send() -} - -// DescribeInstancePatchStatesForPatchGroupWithContext is the same as DescribeInstancePatchStatesForPatchGroup with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeInstancePatchStatesForPatchGroup for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeInstancePatchStatesForPatchGroupWithContext(ctx aws.Context, input *DescribeInstancePatchStatesForPatchGroupInput, opts ...request.Option) (*DescribeInstancePatchStatesForPatchGroupOutput, error) { - req, out := c.DescribeInstancePatchStatesForPatchGroupRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeInstancePatchStatesForPatchGroupPages iterates over the pages of a DescribeInstancePatchStatesForPatchGroup operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeInstancePatchStatesForPatchGroup method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeInstancePatchStatesForPatchGroup operation. -// pageNum := 0 -// err := client.DescribeInstancePatchStatesForPatchGroupPages(params, -// func(page *ssm.DescribeInstancePatchStatesForPatchGroupOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeInstancePatchStatesForPatchGroupPages(input *DescribeInstancePatchStatesForPatchGroupInput, fn func(*DescribeInstancePatchStatesForPatchGroupOutput, bool) bool) error { - return c.DescribeInstancePatchStatesForPatchGroupPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeInstancePatchStatesForPatchGroupPagesWithContext same as DescribeInstancePatchStatesForPatchGroupPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeInstancePatchStatesForPatchGroupPagesWithContext(ctx aws.Context, input *DescribeInstancePatchStatesForPatchGroupInput, fn func(*DescribeInstancePatchStatesForPatchGroupOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeInstancePatchStatesForPatchGroupInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeInstancePatchStatesForPatchGroupRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeInstancePatchStatesForPatchGroupOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeInstancePatches = "DescribeInstancePatches" - -// DescribeInstancePatchesRequest generates a "aws/request.Request" representing the -// client's request for the DescribeInstancePatches operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeInstancePatches for more information on using the DescribeInstancePatches -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeInstancePatchesRequest method. -// req, resp := client.DescribeInstancePatchesRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstancePatches -func (c *SSM) DescribeInstancePatchesRequest(input *DescribeInstancePatchesInput) (req *request.Request, output *DescribeInstancePatchesOutput) { - op := &request.Operation{ - Name: opDescribeInstancePatches, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeInstancePatchesInput{} - } - - output = &DescribeInstancePatchesOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeInstancePatches API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves information about the patches on the specified instance and their -// state relative to the patch baseline being used for the instance. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeInstancePatches for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * InvalidFilter -// The filter name is not valid. Verify the you entered the correct name and -// try again. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstancePatches -func (c *SSM) DescribeInstancePatches(input *DescribeInstancePatchesInput) (*DescribeInstancePatchesOutput, error) { - req, out := c.DescribeInstancePatchesRequest(input) - return out, req.Send() -} - -// DescribeInstancePatchesWithContext is the same as DescribeInstancePatches with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeInstancePatches for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeInstancePatchesWithContext(ctx aws.Context, input *DescribeInstancePatchesInput, opts ...request.Option) (*DescribeInstancePatchesOutput, error) { - req, out := c.DescribeInstancePatchesRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeInstancePatchesPages iterates over the pages of a DescribeInstancePatches operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeInstancePatches method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeInstancePatches operation. -// pageNum := 0 -// err := client.DescribeInstancePatchesPages(params, -// func(page *ssm.DescribeInstancePatchesOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeInstancePatchesPages(input *DescribeInstancePatchesInput, fn func(*DescribeInstancePatchesOutput, bool) bool) error { - return c.DescribeInstancePatchesPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeInstancePatchesPagesWithContext same as DescribeInstancePatchesPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeInstancePatchesPagesWithContext(ctx aws.Context, input *DescribeInstancePatchesInput, fn func(*DescribeInstancePatchesOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeInstancePatchesInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeInstancePatchesRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeInstancePatchesOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeInventoryDeletions = "DescribeInventoryDeletions" - -// DescribeInventoryDeletionsRequest generates a "aws/request.Request" representing the -// client's request for the DescribeInventoryDeletions operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeInventoryDeletions for more information on using the DescribeInventoryDeletions -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeInventoryDeletionsRequest method. -// req, resp := client.DescribeInventoryDeletionsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInventoryDeletions -func (c *SSM) DescribeInventoryDeletionsRequest(input *DescribeInventoryDeletionsInput) (req *request.Request, output *DescribeInventoryDeletionsOutput) { - op := &request.Operation{ - Name: opDescribeInventoryDeletions, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeInventoryDeletionsInput{} - } - - output = &DescribeInventoryDeletionsOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeInventoryDeletions API operation for Amazon Simple Systems Manager (SSM). -// -// Describes a specific delete inventory operation. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeInventoryDeletions for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidDeletionIdException -// The ID specified for the delete operation does not exist or is not valid. -// Verify the ID and try again. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInventoryDeletions -func (c *SSM) DescribeInventoryDeletions(input *DescribeInventoryDeletionsInput) (*DescribeInventoryDeletionsOutput, error) { - req, out := c.DescribeInventoryDeletionsRequest(input) - return out, req.Send() -} - -// DescribeInventoryDeletionsWithContext is the same as DescribeInventoryDeletions with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeInventoryDeletions for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeInventoryDeletionsWithContext(ctx aws.Context, input *DescribeInventoryDeletionsInput, opts ...request.Option) (*DescribeInventoryDeletionsOutput, error) { - req, out := c.DescribeInventoryDeletionsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeInventoryDeletionsPages iterates over the pages of a DescribeInventoryDeletions operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeInventoryDeletions method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeInventoryDeletions operation. -// pageNum := 0 -// err := client.DescribeInventoryDeletionsPages(params, -// func(page *ssm.DescribeInventoryDeletionsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeInventoryDeletionsPages(input *DescribeInventoryDeletionsInput, fn func(*DescribeInventoryDeletionsOutput, bool) bool) error { - return c.DescribeInventoryDeletionsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeInventoryDeletionsPagesWithContext same as DescribeInventoryDeletionsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeInventoryDeletionsPagesWithContext(ctx aws.Context, input *DescribeInventoryDeletionsInput, fn func(*DescribeInventoryDeletionsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeInventoryDeletionsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeInventoryDeletionsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeInventoryDeletionsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeMaintenanceWindowExecutionTaskInvocations = "DescribeMaintenanceWindowExecutionTaskInvocations" - -// DescribeMaintenanceWindowExecutionTaskInvocationsRequest generates a "aws/request.Request" representing the -// client's request for the DescribeMaintenanceWindowExecutionTaskInvocations operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeMaintenanceWindowExecutionTaskInvocations for more information on using the DescribeMaintenanceWindowExecutionTaskInvocations -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeMaintenanceWindowExecutionTaskInvocationsRequest method. -// req, resp := client.DescribeMaintenanceWindowExecutionTaskInvocationsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowExecutionTaskInvocations -func (c *SSM) DescribeMaintenanceWindowExecutionTaskInvocationsRequest(input *DescribeMaintenanceWindowExecutionTaskInvocationsInput) (req *request.Request, output *DescribeMaintenanceWindowExecutionTaskInvocationsOutput) { - op := &request.Operation{ - Name: opDescribeMaintenanceWindowExecutionTaskInvocations, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeMaintenanceWindowExecutionTaskInvocationsInput{} - } - - output = &DescribeMaintenanceWindowExecutionTaskInvocationsOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeMaintenanceWindowExecutionTaskInvocations API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves the individual task executions (one per target) for a particular -// task run as part of a maintenance window execution. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeMaintenanceWindowExecutionTaskInvocations for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowExecutionTaskInvocations -func (c *SSM) DescribeMaintenanceWindowExecutionTaskInvocations(input *DescribeMaintenanceWindowExecutionTaskInvocationsInput) (*DescribeMaintenanceWindowExecutionTaskInvocationsOutput, error) { - req, out := c.DescribeMaintenanceWindowExecutionTaskInvocationsRequest(input) - return out, req.Send() -} - -// DescribeMaintenanceWindowExecutionTaskInvocationsWithContext is the same as DescribeMaintenanceWindowExecutionTaskInvocations with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeMaintenanceWindowExecutionTaskInvocations for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowExecutionTaskInvocationsWithContext(ctx aws.Context, input *DescribeMaintenanceWindowExecutionTaskInvocationsInput, opts ...request.Option) (*DescribeMaintenanceWindowExecutionTaskInvocationsOutput, error) { - req, out := c.DescribeMaintenanceWindowExecutionTaskInvocationsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeMaintenanceWindowExecutionTaskInvocationsPages iterates over the pages of a DescribeMaintenanceWindowExecutionTaskInvocations operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeMaintenanceWindowExecutionTaskInvocations method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeMaintenanceWindowExecutionTaskInvocations operation. -// pageNum := 0 -// err := client.DescribeMaintenanceWindowExecutionTaskInvocationsPages(params, -// func(page *ssm.DescribeMaintenanceWindowExecutionTaskInvocationsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeMaintenanceWindowExecutionTaskInvocationsPages(input *DescribeMaintenanceWindowExecutionTaskInvocationsInput, fn func(*DescribeMaintenanceWindowExecutionTaskInvocationsOutput, bool) bool) error { - return c.DescribeMaintenanceWindowExecutionTaskInvocationsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeMaintenanceWindowExecutionTaskInvocationsPagesWithContext same as DescribeMaintenanceWindowExecutionTaskInvocationsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowExecutionTaskInvocationsPagesWithContext(ctx aws.Context, input *DescribeMaintenanceWindowExecutionTaskInvocationsInput, fn func(*DescribeMaintenanceWindowExecutionTaskInvocationsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeMaintenanceWindowExecutionTaskInvocationsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeMaintenanceWindowExecutionTaskInvocationsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeMaintenanceWindowExecutionTaskInvocationsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeMaintenanceWindowExecutionTasks = "DescribeMaintenanceWindowExecutionTasks" - -// DescribeMaintenanceWindowExecutionTasksRequest generates a "aws/request.Request" representing the -// client's request for the DescribeMaintenanceWindowExecutionTasks operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeMaintenanceWindowExecutionTasks for more information on using the DescribeMaintenanceWindowExecutionTasks -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeMaintenanceWindowExecutionTasksRequest method. -// req, resp := client.DescribeMaintenanceWindowExecutionTasksRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowExecutionTasks -func (c *SSM) DescribeMaintenanceWindowExecutionTasksRequest(input *DescribeMaintenanceWindowExecutionTasksInput) (req *request.Request, output *DescribeMaintenanceWindowExecutionTasksOutput) { - op := &request.Operation{ - Name: opDescribeMaintenanceWindowExecutionTasks, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeMaintenanceWindowExecutionTasksInput{} - } - - output = &DescribeMaintenanceWindowExecutionTasksOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeMaintenanceWindowExecutionTasks API operation for Amazon Simple Systems Manager (SSM). -// -// For a given maintenance window execution, lists the tasks that were run. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeMaintenanceWindowExecutionTasks for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowExecutionTasks -func (c *SSM) DescribeMaintenanceWindowExecutionTasks(input *DescribeMaintenanceWindowExecutionTasksInput) (*DescribeMaintenanceWindowExecutionTasksOutput, error) { - req, out := c.DescribeMaintenanceWindowExecutionTasksRequest(input) - return out, req.Send() -} - -// DescribeMaintenanceWindowExecutionTasksWithContext is the same as DescribeMaintenanceWindowExecutionTasks with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeMaintenanceWindowExecutionTasks for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowExecutionTasksWithContext(ctx aws.Context, input *DescribeMaintenanceWindowExecutionTasksInput, opts ...request.Option) (*DescribeMaintenanceWindowExecutionTasksOutput, error) { - req, out := c.DescribeMaintenanceWindowExecutionTasksRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeMaintenanceWindowExecutionTasksPages iterates over the pages of a DescribeMaintenanceWindowExecutionTasks operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeMaintenanceWindowExecutionTasks method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeMaintenanceWindowExecutionTasks operation. -// pageNum := 0 -// err := client.DescribeMaintenanceWindowExecutionTasksPages(params, -// func(page *ssm.DescribeMaintenanceWindowExecutionTasksOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeMaintenanceWindowExecutionTasksPages(input *DescribeMaintenanceWindowExecutionTasksInput, fn func(*DescribeMaintenanceWindowExecutionTasksOutput, bool) bool) error { - return c.DescribeMaintenanceWindowExecutionTasksPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeMaintenanceWindowExecutionTasksPagesWithContext same as DescribeMaintenanceWindowExecutionTasksPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowExecutionTasksPagesWithContext(ctx aws.Context, input *DescribeMaintenanceWindowExecutionTasksInput, fn func(*DescribeMaintenanceWindowExecutionTasksOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeMaintenanceWindowExecutionTasksInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeMaintenanceWindowExecutionTasksRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeMaintenanceWindowExecutionTasksOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeMaintenanceWindowExecutions = "DescribeMaintenanceWindowExecutions" - -// DescribeMaintenanceWindowExecutionsRequest generates a "aws/request.Request" representing the -// client's request for the DescribeMaintenanceWindowExecutions operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeMaintenanceWindowExecutions for more information on using the DescribeMaintenanceWindowExecutions -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeMaintenanceWindowExecutionsRequest method. -// req, resp := client.DescribeMaintenanceWindowExecutionsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowExecutions -func (c *SSM) DescribeMaintenanceWindowExecutionsRequest(input *DescribeMaintenanceWindowExecutionsInput) (req *request.Request, output *DescribeMaintenanceWindowExecutionsOutput) { - op := &request.Operation{ - Name: opDescribeMaintenanceWindowExecutions, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeMaintenanceWindowExecutionsInput{} - } - - output = &DescribeMaintenanceWindowExecutionsOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeMaintenanceWindowExecutions API operation for Amazon Simple Systems Manager (SSM). -// -// Lists the executions of a maintenance window. This includes information about -// when the maintenance window was scheduled to be active, and information about -// tasks registered and run with the maintenance window. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeMaintenanceWindowExecutions for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowExecutions -func (c *SSM) DescribeMaintenanceWindowExecutions(input *DescribeMaintenanceWindowExecutionsInput) (*DescribeMaintenanceWindowExecutionsOutput, error) { - req, out := c.DescribeMaintenanceWindowExecutionsRequest(input) - return out, req.Send() -} - -// DescribeMaintenanceWindowExecutionsWithContext is the same as DescribeMaintenanceWindowExecutions with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeMaintenanceWindowExecutions for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowExecutionsWithContext(ctx aws.Context, input *DescribeMaintenanceWindowExecutionsInput, opts ...request.Option) (*DescribeMaintenanceWindowExecutionsOutput, error) { - req, out := c.DescribeMaintenanceWindowExecutionsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeMaintenanceWindowExecutionsPages iterates over the pages of a DescribeMaintenanceWindowExecutions operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeMaintenanceWindowExecutions method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeMaintenanceWindowExecutions operation. -// pageNum := 0 -// err := client.DescribeMaintenanceWindowExecutionsPages(params, -// func(page *ssm.DescribeMaintenanceWindowExecutionsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeMaintenanceWindowExecutionsPages(input *DescribeMaintenanceWindowExecutionsInput, fn func(*DescribeMaintenanceWindowExecutionsOutput, bool) bool) error { - return c.DescribeMaintenanceWindowExecutionsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeMaintenanceWindowExecutionsPagesWithContext same as DescribeMaintenanceWindowExecutionsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowExecutionsPagesWithContext(ctx aws.Context, input *DescribeMaintenanceWindowExecutionsInput, fn func(*DescribeMaintenanceWindowExecutionsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeMaintenanceWindowExecutionsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeMaintenanceWindowExecutionsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeMaintenanceWindowExecutionsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeMaintenanceWindowSchedule = "DescribeMaintenanceWindowSchedule" - -// DescribeMaintenanceWindowScheduleRequest generates a "aws/request.Request" representing the -// client's request for the DescribeMaintenanceWindowSchedule operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeMaintenanceWindowSchedule for more information on using the DescribeMaintenanceWindowSchedule -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeMaintenanceWindowScheduleRequest method. -// req, resp := client.DescribeMaintenanceWindowScheduleRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowSchedule -func (c *SSM) DescribeMaintenanceWindowScheduleRequest(input *DescribeMaintenanceWindowScheduleInput) (req *request.Request, output *DescribeMaintenanceWindowScheduleOutput) { - op := &request.Operation{ - Name: opDescribeMaintenanceWindowSchedule, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeMaintenanceWindowScheduleInput{} - } - - output = &DescribeMaintenanceWindowScheduleOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeMaintenanceWindowSchedule API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves information about upcoming executions of a maintenance window. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeMaintenanceWindowSchedule for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowSchedule -func (c *SSM) DescribeMaintenanceWindowSchedule(input *DescribeMaintenanceWindowScheduleInput) (*DescribeMaintenanceWindowScheduleOutput, error) { - req, out := c.DescribeMaintenanceWindowScheduleRequest(input) - return out, req.Send() -} - -// DescribeMaintenanceWindowScheduleWithContext is the same as DescribeMaintenanceWindowSchedule with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeMaintenanceWindowSchedule for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowScheduleWithContext(ctx aws.Context, input *DescribeMaintenanceWindowScheduleInput, opts ...request.Option) (*DescribeMaintenanceWindowScheduleOutput, error) { - req, out := c.DescribeMaintenanceWindowScheduleRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeMaintenanceWindowSchedulePages iterates over the pages of a DescribeMaintenanceWindowSchedule operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeMaintenanceWindowSchedule method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeMaintenanceWindowSchedule operation. -// pageNum := 0 -// err := client.DescribeMaintenanceWindowSchedulePages(params, -// func(page *ssm.DescribeMaintenanceWindowScheduleOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeMaintenanceWindowSchedulePages(input *DescribeMaintenanceWindowScheduleInput, fn func(*DescribeMaintenanceWindowScheduleOutput, bool) bool) error { - return c.DescribeMaintenanceWindowSchedulePagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeMaintenanceWindowSchedulePagesWithContext same as DescribeMaintenanceWindowSchedulePages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowSchedulePagesWithContext(ctx aws.Context, input *DescribeMaintenanceWindowScheduleInput, fn func(*DescribeMaintenanceWindowScheduleOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeMaintenanceWindowScheduleInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeMaintenanceWindowScheduleRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeMaintenanceWindowScheduleOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeMaintenanceWindowTargets = "DescribeMaintenanceWindowTargets" - -// DescribeMaintenanceWindowTargetsRequest generates a "aws/request.Request" representing the -// client's request for the DescribeMaintenanceWindowTargets operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeMaintenanceWindowTargets for more information on using the DescribeMaintenanceWindowTargets -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeMaintenanceWindowTargetsRequest method. -// req, resp := client.DescribeMaintenanceWindowTargetsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowTargets -func (c *SSM) DescribeMaintenanceWindowTargetsRequest(input *DescribeMaintenanceWindowTargetsInput) (req *request.Request, output *DescribeMaintenanceWindowTargetsOutput) { - op := &request.Operation{ - Name: opDescribeMaintenanceWindowTargets, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeMaintenanceWindowTargetsInput{} - } - - output = &DescribeMaintenanceWindowTargetsOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeMaintenanceWindowTargets API operation for Amazon Simple Systems Manager (SSM). -// -// Lists the targets registered with the maintenance window. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeMaintenanceWindowTargets for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowTargets -func (c *SSM) DescribeMaintenanceWindowTargets(input *DescribeMaintenanceWindowTargetsInput) (*DescribeMaintenanceWindowTargetsOutput, error) { - req, out := c.DescribeMaintenanceWindowTargetsRequest(input) - return out, req.Send() -} - -// DescribeMaintenanceWindowTargetsWithContext is the same as DescribeMaintenanceWindowTargets with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeMaintenanceWindowTargets for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowTargetsWithContext(ctx aws.Context, input *DescribeMaintenanceWindowTargetsInput, opts ...request.Option) (*DescribeMaintenanceWindowTargetsOutput, error) { - req, out := c.DescribeMaintenanceWindowTargetsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeMaintenanceWindowTargetsPages iterates over the pages of a DescribeMaintenanceWindowTargets operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeMaintenanceWindowTargets method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeMaintenanceWindowTargets operation. -// pageNum := 0 -// err := client.DescribeMaintenanceWindowTargetsPages(params, -// func(page *ssm.DescribeMaintenanceWindowTargetsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeMaintenanceWindowTargetsPages(input *DescribeMaintenanceWindowTargetsInput, fn func(*DescribeMaintenanceWindowTargetsOutput, bool) bool) error { - return c.DescribeMaintenanceWindowTargetsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeMaintenanceWindowTargetsPagesWithContext same as DescribeMaintenanceWindowTargetsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowTargetsPagesWithContext(ctx aws.Context, input *DescribeMaintenanceWindowTargetsInput, fn func(*DescribeMaintenanceWindowTargetsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeMaintenanceWindowTargetsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeMaintenanceWindowTargetsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeMaintenanceWindowTargetsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeMaintenanceWindowTasks = "DescribeMaintenanceWindowTasks" - -// DescribeMaintenanceWindowTasksRequest generates a "aws/request.Request" representing the -// client's request for the DescribeMaintenanceWindowTasks operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeMaintenanceWindowTasks for more information on using the DescribeMaintenanceWindowTasks -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeMaintenanceWindowTasksRequest method. -// req, resp := client.DescribeMaintenanceWindowTasksRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowTasks -func (c *SSM) DescribeMaintenanceWindowTasksRequest(input *DescribeMaintenanceWindowTasksInput) (req *request.Request, output *DescribeMaintenanceWindowTasksOutput) { - op := &request.Operation{ - Name: opDescribeMaintenanceWindowTasks, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeMaintenanceWindowTasksInput{} - } - - output = &DescribeMaintenanceWindowTasksOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeMaintenanceWindowTasks API operation for Amazon Simple Systems Manager (SSM). -// -// Lists the tasks in a maintenance window. -// -// For maintenance window tasks without a specified target, you cannot supply -// values for --max-errors and --max-concurrency. Instead, the system inserts -// a placeholder value of 1, which may be reported in the response to this command. -// These values do not affect the running of your task and can be ignored. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeMaintenanceWindowTasks for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowTasks -func (c *SSM) DescribeMaintenanceWindowTasks(input *DescribeMaintenanceWindowTasksInput) (*DescribeMaintenanceWindowTasksOutput, error) { - req, out := c.DescribeMaintenanceWindowTasksRequest(input) - return out, req.Send() -} - -// DescribeMaintenanceWindowTasksWithContext is the same as DescribeMaintenanceWindowTasks with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeMaintenanceWindowTasks for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowTasksWithContext(ctx aws.Context, input *DescribeMaintenanceWindowTasksInput, opts ...request.Option) (*DescribeMaintenanceWindowTasksOutput, error) { - req, out := c.DescribeMaintenanceWindowTasksRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeMaintenanceWindowTasksPages iterates over the pages of a DescribeMaintenanceWindowTasks operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeMaintenanceWindowTasks method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeMaintenanceWindowTasks operation. -// pageNum := 0 -// err := client.DescribeMaintenanceWindowTasksPages(params, -// func(page *ssm.DescribeMaintenanceWindowTasksOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeMaintenanceWindowTasksPages(input *DescribeMaintenanceWindowTasksInput, fn func(*DescribeMaintenanceWindowTasksOutput, bool) bool) error { - return c.DescribeMaintenanceWindowTasksPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeMaintenanceWindowTasksPagesWithContext same as DescribeMaintenanceWindowTasksPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowTasksPagesWithContext(ctx aws.Context, input *DescribeMaintenanceWindowTasksInput, fn func(*DescribeMaintenanceWindowTasksOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeMaintenanceWindowTasksInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeMaintenanceWindowTasksRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeMaintenanceWindowTasksOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeMaintenanceWindows = "DescribeMaintenanceWindows" - -// DescribeMaintenanceWindowsRequest generates a "aws/request.Request" representing the -// client's request for the DescribeMaintenanceWindows operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeMaintenanceWindows for more information on using the DescribeMaintenanceWindows -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeMaintenanceWindowsRequest method. -// req, resp := client.DescribeMaintenanceWindowsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindows -func (c *SSM) DescribeMaintenanceWindowsRequest(input *DescribeMaintenanceWindowsInput) (req *request.Request, output *DescribeMaintenanceWindowsOutput) { - op := &request.Operation{ - Name: opDescribeMaintenanceWindows, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeMaintenanceWindowsInput{} - } - - output = &DescribeMaintenanceWindowsOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeMaintenanceWindows API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves the maintenance windows in an AWS account. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeMaintenanceWindows for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindows -func (c *SSM) DescribeMaintenanceWindows(input *DescribeMaintenanceWindowsInput) (*DescribeMaintenanceWindowsOutput, error) { - req, out := c.DescribeMaintenanceWindowsRequest(input) - return out, req.Send() -} - -// DescribeMaintenanceWindowsWithContext is the same as DescribeMaintenanceWindows with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeMaintenanceWindows for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowsWithContext(ctx aws.Context, input *DescribeMaintenanceWindowsInput, opts ...request.Option) (*DescribeMaintenanceWindowsOutput, error) { - req, out := c.DescribeMaintenanceWindowsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeMaintenanceWindowsPages iterates over the pages of a DescribeMaintenanceWindows operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeMaintenanceWindows method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeMaintenanceWindows operation. -// pageNum := 0 -// err := client.DescribeMaintenanceWindowsPages(params, -// func(page *ssm.DescribeMaintenanceWindowsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeMaintenanceWindowsPages(input *DescribeMaintenanceWindowsInput, fn func(*DescribeMaintenanceWindowsOutput, bool) bool) error { - return c.DescribeMaintenanceWindowsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeMaintenanceWindowsPagesWithContext same as DescribeMaintenanceWindowsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowsPagesWithContext(ctx aws.Context, input *DescribeMaintenanceWindowsInput, fn func(*DescribeMaintenanceWindowsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeMaintenanceWindowsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeMaintenanceWindowsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeMaintenanceWindowsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeMaintenanceWindowsForTarget = "DescribeMaintenanceWindowsForTarget" - -// DescribeMaintenanceWindowsForTargetRequest generates a "aws/request.Request" representing the -// client's request for the DescribeMaintenanceWindowsForTarget operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeMaintenanceWindowsForTarget for more information on using the DescribeMaintenanceWindowsForTarget -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeMaintenanceWindowsForTargetRequest method. -// req, resp := client.DescribeMaintenanceWindowsForTargetRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowsForTarget -func (c *SSM) DescribeMaintenanceWindowsForTargetRequest(input *DescribeMaintenanceWindowsForTargetInput) (req *request.Request, output *DescribeMaintenanceWindowsForTargetOutput) { - op := &request.Operation{ - Name: opDescribeMaintenanceWindowsForTarget, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeMaintenanceWindowsForTargetInput{} - } - - output = &DescribeMaintenanceWindowsForTargetOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeMaintenanceWindowsForTarget API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves information about the maintenance window targets or tasks that -// an instance is associated with. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeMaintenanceWindowsForTarget for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowsForTarget -func (c *SSM) DescribeMaintenanceWindowsForTarget(input *DescribeMaintenanceWindowsForTargetInput) (*DescribeMaintenanceWindowsForTargetOutput, error) { - req, out := c.DescribeMaintenanceWindowsForTargetRequest(input) - return out, req.Send() -} - -// DescribeMaintenanceWindowsForTargetWithContext is the same as DescribeMaintenanceWindowsForTarget with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeMaintenanceWindowsForTarget for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowsForTargetWithContext(ctx aws.Context, input *DescribeMaintenanceWindowsForTargetInput, opts ...request.Option) (*DescribeMaintenanceWindowsForTargetOutput, error) { - req, out := c.DescribeMaintenanceWindowsForTargetRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeMaintenanceWindowsForTargetPages iterates over the pages of a DescribeMaintenanceWindowsForTarget operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeMaintenanceWindowsForTarget method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeMaintenanceWindowsForTarget operation. -// pageNum := 0 -// err := client.DescribeMaintenanceWindowsForTargetPages(params, -// func(page *ssm.DescribeMaintenanceWindowsForTargetOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeMaintenanceWindowsForTargetPages(input *DescribeMaintenanceWindowsForTargetInput, fn func(*DescribeMaintenanceWindowsForTargetOutput, bool) bool) error { - return c.DescribeMaintenanceWindowsForTargetPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeMaintenanceWindowsForTargetPagesWithContext same as DescribeMaintenanceWindowsForTargetPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeMaintenanceWindowsForTargetPagesWithContext(ctx aws.Context, input *DescribeMaintenanceWindowsForTargetInput, fn func(*DescribeMaintenanceWindowsForTargetOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeMaintenanceWindowsForTargetInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeMaintenanceWindowsForTargetRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeMaintenanceWindowsForTargetOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeOpsItems = "DescribeOpsItems" - -// DescribeOpsItemsRequest generates a "aws/request.Request" representing the -// client's request for the DescribeOpsItems operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeOpsItems for more information on using the DescribeOpsItems -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeOpsItemsRequest method. -// req, resp := client.DescribeOpsItemsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeOpsItems -func (c *SSM) DescribeOpsItemsRequest(input *DescribeOpsItemsInput) (req *request.Request, output *DescribeOpsItemsOutput) { - op := &request.Operation{ - Name: opDescribeOpsItems, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeOpsItemsInput{} - } - - output = &DescribeOpsItemsOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeOpsItems API operation for Amazon Simple Systems Manager (SSM). -// -// Query a set of OpsItems. You must have permission in AWS Identity and Access -// Management (IAM) to query a list of OpsItems. For more information, see Getting -// started with OpsCenter (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html) -// in the AWS Systems Manager User Guide. -// -// Operations engineers and IT professionals use OpsCenter to view, investigate, -// and remediate operational issues impacting the performance and health of -// their AWS resources. For more information, see AWS Systems Manager OpsCenter -// (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html) -// in the AWS Systems Manager User Guide. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeOpsItems for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeOpsItems -func (c *SSM) DescribeOpsItems(input *DescribeOpsItemsInput) (*DescribeOpsItemsOutput, error) { - req, out := c.DescribeOpsItemsRequest(input) - return out, req.Send() -} - -// DescribeOpsItemsWithContext is the same as DescribeOpsItems with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeOpsItems for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeOpsItemsWithContext(ctx aws.Context, input *DescribeOpsItemsInput, opts ...request.Option) (*DescribeOpsItemsOutput, error) { - req, out := c.DescribeOpsItemsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeOpsItemsPages iterates over the pages of a DescribeOpsItems operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeOpsItems method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeOpsItems operation. -// pageNum := 0 -// err := client.DescribeOpsItemsPages(params, -// func(page *ssm.DescribeOpsItemsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeOpsItemsPages(input *DescribeOpsItemsInput, fn func(*DescribeOpsItemsOutput, bool) bool) error { - return c.DescribeOpsItemsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeOpsItemsPagesWithContext same as DescribeOpsItemsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeOpsItemsPagesWithContext(ctx aws.Context, input *DescribeOpsItemsInput, fn func(*DescribeOpsItemsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeOpsItemsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeOpsItemsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeOpsItemsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeParameters = "DescribeParameters" - -// DescribeParametersRequest generates a "aws/request.Request" representing the -// client's request for the DescribeParameters operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeParameters for more information on using the DescribeParameters -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeParametersRequest method. -// req, resp := client.DescribeParametersRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeParameters -func (c *SSM) DescribeParametersRequest(input *DescribeParametersInput) (req *request.Request, output *DescribeParametersOutput) { - op := &request.Operation{ - Name: opDescribeParameters, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeParametersInput{} - } - - output = &DescribeParametersOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeParameters API operation for Amazon Simple Systems Manager (SSM). -// -// Get information about a parameter. -// -// Request results are returned on a best-effort basis. If you specify MaxResults -// in the request, the response includes information up to the limit specified. -// The number of items returned, however, can be between zero and the value -// of MaxResults. If the service reaches an internal limit while processing -// the results, it stops the operation and returns the matching values up to -// that point and a NextToken. You can specify the NextToken in a subsequent -// call to get the next set of results. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeParameters for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidFilterKey -// The specified key is not valid. -// -// * InvalidFilterOption -// The specified filter option is not valid. Valid options are Equals and BeginsWith. -// For Path filter, valid options are Recursive and OneLevel. -// -// * InvalidFilterValue -// The filter value is not valid. Verify the value and try again. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeParameters -func (c *SSM) DescribeParameters(input *DescribeParametersInput) (*DescribeParametersOutput, error) { - req, out := c.DescribeParametersRequest(input) - return out, req.Send() -} - -// DescribeParametersWithContext is the same as DescribeParameters with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeParameters for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeParametersWithContext(ctx aws.Context, input *DescribeParametersInput, opts ...request.Option) (*DescribeParametersOutput, error) { - req, out := c.DescribeParametersRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeParametersPages iterates over the pages of a DescribeParameters operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeParameters method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeParameters operation. -// pageNum := 0 -// err := client.DescribeParametersPages(params, -// func(page *ssm.DescribeParametersOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeParametersPages(input *DescribeParametersInput, fn func(*DescribeParametersOutput, bool) bool) error { - return c.DescribeParametersPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeParametersPagesWithContext same as DescribeParametersPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeParametersPagesWithContext(ctx aws.Context, input *DescribeParametersInput, fn func(*DescribeParametersOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeParametersInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeParametersRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeParametersOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribePatchBaselines = "DescribePatchBaselines" - -// DescribePatchBaselinesRequest generates a "aws/request.Request" representing the -// client's request for the DescribePatchBaselines operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribePatchBaselines for more information on using the DescribePatchBaselines -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribePatchBaselinesRequest method. -// req, resp := client.DescribePatchBaselinesRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribePatchBaselines -func (c *SSM) DescribePatchBaselinesRequest(input *DescribePatchBaselinesInput) (req *request.Request, output *DescribePatchBaselinesOutput) { - op := &request.Operation{ - Name: opDescribePatchBaselines, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribePatchBaselinesInput{} - } - - output = &DescribePatchBaselinesOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribePatchBaselines API operation for Amazon Simple Systems Manager (SSM). -// -// Lists the patch baselines in your AWS account. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribePatchBaselines for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribePatchBaselines -func (c *SSM) DescribePatchBaselines(input *DescribePatchBaselinesInput) (*DescribePatchBaselinesOutput, error) { - req, out := c.DescribePatchBaselinesRequest(input) - return out, req.Send() -} - -// DescribePatchBaselinesWithContext is the same as DescribePatchBaselines with the addition of -// the ability to pass a context and additional request options. -// -// See DescribePatchBaselines for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribePatchBaselinesWithContext(ctx aws.Context, input *DescribePatchBaselinesInput, opts ...request.Option) (*DescribePatchBaselinesOutput, error) { - req, out := c.DescribePatchBaselinesRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribePatchBaselinesPages iterates over the pages of a DescribePatchBaselines operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribePatchBaselines method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribePatchBaselines operation. -// pageNum := 0 -// err := client.DescribePatchBaselinesPages(params, -// func(page *ssm.DescribePatchBaselinesOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribePatchBaselinesPages(input *DescribePatchBaselinesInput, fn func(*DescribePatchBaselinesOutput, bool) bool) error { - return c.DescribePatchBaselinesPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribePatchBaselinesPagesWithContext same as DescribePatchBaselinesPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribePatchBaselinesPagesWithContext(ctx aws.Context, input *DescribePatchBaselinesInput, fn func(*DescribePatchBaselinesOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribePatchBaselinesInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribePatchBaselinesRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribePatchBaselinesOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribePatchGroupState = "DescribePatchGroupState" - -// DescribePatchGroupStateRequest generates a "aws/request.Request" representing the -// client's request for the DescribePatchGroupState operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribePatchGroupState for more information on using the DescribePatchGroupState -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribePatchGroupStateRequest method. -// req, resp := client.DescribePatchGroupStateRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribePatchGroupState -func (c *SSM) DescribePatchGroupStateRequest(input *DescribePatchGroupStateInput) (req *request.Request, output *DescribePatchGroupStateOutput) { - op := &request.Operation{ - Name: opDescribePatchGroupState, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DescribePatchGroupStateInput{} - } - - output = &DescribePatchGroupStateOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribePatchGroupState API operation for Amazon Simple Systems Manager (SSM). -// -// Returns high-level aggregated patch compliance state for a patch group. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribePatchGroupState for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribePatchGroupState -func (c *SSM) DescribePatchGroupState(input *DescribePatchGroupStateInput) (*DescribePatchGroupStateOutput, error) { - req, out := c.DescribePatchGroupStateRequest(input) - return out, req.Send() -} - -// DescribePatchGroupStateWithContext is the same as DescribePatchGroupState with the addition of -// the ability to pass a context and additional request options. -// -// See DescribePatchGroupState for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribePatchGroupStateWithContext(ctx aws.Context, input *DescribePatchGroupStateInput, opts ...request.Option) (*DescribePatchGroupStateOutput, error) { - req, out := c.DescribePatchGroupStateRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDescribePatchGroups = "DescribePatchGroups" - -// DescribePatchGroupsRequest generates a "aws/request.Request" representing the -// client's request for the DescribePatchGroups operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribePatchGroups for more information on using the DescribePatchGroups -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribePatchGroupsRequest method. -// req, resp := client.DescribePatchGroupsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribePatchGroups -func (c *SSM) DescribePatchGroupsRequest(input *DescribePatchGroupsInput) (req *request.Request, output *DescribePatchGroupsOutput) { - op := &request.Operation{ - Name: opDescribePatchGroups, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribePatchGroupsInput{} - } - - output = &DescribePatchGroupsOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribePatchGroups API operation for Amazon Simple Systems Manager (SSM). -// -// Lists all patch groups that have been registered with patch baselines. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribePatchGroups for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribePatchGroups -func (c *SSM) DescribePatchGroups(input *DescribePatchGroupsInput) (*DescribePatchGroupsOutput, error) { - req, out := c.DescribePatchGroupsRequest(input) - return out, req.Send() -} - -// DescribePatchGroupsWithContext is the same as DescribePatchGroups with the addition of -// the ability to pass a context and additional request options. -// -// See DescribePatchGroups for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribePatchGroupsWithContext(ctx aws.Context, input *DescribePatchGroupsInput, opts ...request.Option) (*DescribePatchGroupsOutput, error) { - req, out := c.DescribePatchGroupsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribePatchGroupsPages iterates over the pages of a DescribePatchGroups operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribePatchGroups method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribePatchGroups operation. -// pageNum := 0 -// err := client.DescribePatchGroupsPages(params, -// func(page *ssm.DescribePatchGroupsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribePatchGroupsPages(input *DescribePatchGroupsInput, fn func(*DescribePatchGroupsOutput, bool) bool) error { - return c.DescribePatchGroupsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribePatchGroupsPagesWithContext same as DescribePatchGroupsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribePatchGroupsPagesWithContext(ctx aws.Context, input *DescribePatchGroupsInput, fn func(*DescribePatchGroupsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribePatchGroupsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribePatchGroupsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribePatchGroupsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribePatchProperties = "DescribePatchProperties" - -// DescribePatchPropertiesRequest generates a "aws/request.Request" representing the -// client's request for the DescribePatchProperties operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribePatchProperties for more information on using the DescribePatchProperties -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribePatchPropertiesRequest method. -// req, resp := client.DescribePatchPropertiesRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribePatchProperties -func (c *SSM) DescribePatchPropertiesRequest(input *DescribePatchPropertiesInput) (req *request.Request, output *DescribePatchPropertiesOutput) { - op := &request.Operation{ - Name: opDescribePatchProperties, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribePatchPropertiesInput{} - } - - output = &DescribePatchPropertiesOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribePatchProperties API operation for Amazon Simple Systems Manager (SSM). -// -// Lists the properties of available patches organized by product, product family, -// classification, severity, and other properties of available patches. You -// can use the reported properties in the filters you specify in requests for -// actions such as CreatePatchBaseline, UpdatePatchBaseline, DescribeAvailablePatches, -// and DescribePatchBaselines. -// -// The following section lists the properties that can be used in filters for -// each major operating system type: -// -// AMAZON_LINUX -// -// Valid properties: PRODUCT, CLASSIFICATION, SEVERITY -// -// AMAZON_LINUX_2 -// -// Valid properties: PRODUCT, CLASSIFICATION, SEVERITY -// -// CENTOS -// -// Valid properties: PRODUCT, CLASSIFICATION, SEVERITY -// -// DEBIAN -// -// Valid properties: PRODUCT, PRIORITY -// -// MACOS -// -// Valid properties: PRODUCT, CLASSIFICATION -// -// ORACLE_LINUX -// -// Valid properties: PRODUCT, CLASSIFICATION, SEVERITY -// -// REDHAT_ENTERPRISE_LINUX -// -// Valid properties: PRODUCT, CLASSIFICATION, SEVERITY -// -// SUSE -// -// Valid properties: PRODUCT, CLASSIFICATION, SEVERITY -// -// UBUNTU -// -// Valid properties: PRODUCT, PRIORITY -// -// WINDOWS -// -// Valid properties: PRODUCT, PRODUCT_FAMILY, CLASSIFICATION, MSRC_SEVERITY -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribePatchProperties for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribePatchProperties -func (c *SSM) DescribePatchProperties(input *DescribePatchPropertiesInput) (*DescribePatchPropertiesOutput, error) { - req, out := c.DescribePatchPropertiesRequest(input) - return out, req.Send() -} - -// DescribePatchPropertiesWithContext is the same as DescribePatchProperties with the addition of -// the ability to pass a context and additional request options. -// -// See DescribePatchProperties for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribePatchPropertiesWithContext(ctx aws.Context, input *DescribePatchPropertiesInput, opts ...request.Option) (*DescribePatchPropertiesOutput, error) { - req, out := c.DescribePatchPropertiesRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribePatchPropertiesPages iterates over the pages of a DescribePatchProperties operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribePatchProperties method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribePatchProperties operation. -// pageNum := 0 -// err := client.DescribePatchPropertiesPages(params, -// func(page *ssm.DescribePatchPropertiesOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribePatchPropertiesPages(input *DescribePatchPropertiesInput, fn func(*DescribePatchPropertiesOutput, bool) bool) error { - return c.DescribePatchPropertiesPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribePatchPropertiesPagesWithContext same as DescribePatchPropertiesPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribePatchPropertiesPagesWithContext(ctx aws.Context, input *DescribePatchPropertiesInput, fn func(*DescribePatchPropertiesOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribePatchPropertiesInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribePatchPropertiesRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribePatchPropertiesOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opDescribeSessions = "DescribeSessions" - -// DescribeSessionsRequest generates a "aws/request.Request" representing the -// client's request for the DescribeSessions operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeSessions for more information on using the DescribeSessions -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeSessionsRequest method. -// req, resp := client.DescribeSessionsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeSessions -func (c *SSM) DescribeSessionsRequest(input *DescribeSessionsInput) (req *request.Request, output *DescribeSessionsOutput) { - op := &request.Operation{ - Name: opDescribeSessions, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeSessionsInput{} - } - - output = &DescribeSessionsOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeSessions API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves a list of all active sessions (both connected and disconnected) -// or terminated sessions from the past 30 days. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation DescribeSessions for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidFilterKey -// The specified key is not valid. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeSessions -func (c *SSM) DescribeSessions(input *DescribeSessionsInput) (*DescribeSessionsOutput, error) { - req, out := c.DescribeSessionsRequest(input) - return out, req.Send() -} - -// DescribeSessionsWithContext is the same as DescribeSessions with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeSessions for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeSessionsWithContext(ctx aws.Context, input *DescribeSessionsInput, opts ...request.Option) (*DescribeSessionsOutput, error) { - req, out := c.DescribeSessionsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeSessionsPages iterates over the pages of a DescribeSessions operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeSessions method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeSessions operation. -// pageNum := 0 -// err := client.DescribeSessionsPages(params, -// func(page *ssm.DescribeSessionsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) DescribeSessionsPages(input *DescribeSessionsInput, fn func(*DescribeSessionsOutput, bool) bool) error { - return c.DescribeSessionsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeSessionsPagesWithContext same as DescribeSessionsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) DescribeSessionsPagesWithContext(ctx aws.Context, input *DescribeSessionsInput, fn func(*DescribeSessionsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeSessionsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeSessionsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeSessionsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opGetAutomationExecution = "GetAutomationExecution" - -// GetAutomationExecutionRequest generates a "aws/request.Request" representing the -// client's request for the GetAutomationExecution operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetAutomationExecution for more information on using the GetAutomationExecution -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetAutomationExecutionRequest method. -// req, resp := client.GetAutomationExecutionRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetAutomationExecution -func (c *SSM) GetAutomationExecutionRequest(input *GetAutomationExecutionInput) (req *request.Request, output *GetAutomationExecutionOutput) { - op := &request.Operation{ - Name: opGetAutomationExecution, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetAutomationExecutionInput{} - } - - output = &GetAutomationExecutionOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetAutomationExecution API operation for Amazon Simple Systems Manager (SSM). -// -// Get detailed information about a particular Automation execution. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetAutomationExecution for usage and error information. -// -// Returned Error Types: -// * AutomationExecutionNotFoundException -// There is no automation execution information for the requested automation -// execution ID. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetAutomationExecution -func (c *SSM) GetAutomationExecution(input *GetAutomationExecutionInput) (*GetAutomationExecutionOutput, error) { - req, out := c.GetAutomationExecutionRequest(input) - return out, req.Send() -} - -// GetAutomationExecutionWithContext is the same as GetAutomationExecution with the addition of -// the ability to pass a context and additional request options. -// -// See GetAutomationExecution for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetAutomationExecutionWithContext(ctx aws.Context, input *GetAutomationExecutionInput, opts ...request.Option) (*GetAutomationExecutionOutput, error) { - req, out := c.GetAutomationExecutionRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetCalendarState = "GetCalendarState" - -// GetCalendarStateRequest generates a "aws/request.Request" representing the -// client's request for the GetCalendarState operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetCalendarState for more information on using the GetCalendarState -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetCalendarStateRequest method. -// req, resp := client.GetCalendarStateRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetCalendarState -func (c *SSM) GetCalendarStateRequest(input *GetCalendarStateInput) (req *request.Request, output *GetCalendarStateOutput) { - op := &request.Operation{ - Name: opGetCalendarState, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetCalendarStateInput{} - } - - output = &GetCalendarStateOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetCalendarState API operation for Amazon Simple Systems Manager (SSM). -// -// Gets the state of the AWS Systems Manager Change Calendar at an optional, -// specified time. If you specify a time, GetCalendarState returns the state -// of the calendar at a specific time, and returns the next time that the Change -// Calendar state will transition. If you do not specify a time, GetCalendarState -// assumes the current time. Change Calendar entries have two possible states: -// OPEN or CLOSED. -// -// If you specify more than one calendar in a request, the command returns the -// status of OPEN only if all calendars in the request are open. If one or more -// calendars in the request are closed, the status returned is CLOSED. -// -// For more information about Systems Manager Change Calendar, see AWS Systems -// Manager Change Calendar (https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html) -// in the AWS Systems Manager User Guide. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetCalendarState for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidDocumentType -// The document type is not valid. Valid document types are described in the -// DocumentType property. -// -// * UnsupportedCalendarException -// The calendar entry contained in the specified Systems Manager document is -// not supported. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetCalendarState -func (c *SSM) GetCalendarState(input *GetCalendarStateInput) (*GetCalendarStateOutput, error) { - req, out := c.GetCalendarStateRequest(input) - return out, req.Send() -} - -// GetCalendarStateWithContext is the same as GetCalendarState with the addition of -// the ability to pass a context and additional request options. -// -// See GetCalendarState for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetCalendarStateWithContext(ctx aws.Context, input *GetCalendarStateInput, opts ...request.Option) (*GetCalendarStateOutput, error) { - req, out := c.GetCalendarStateRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetCommandInvocation = "GetCommandInvocation" - -// GetCommandInvocationRequest generates a "aws/request.Request" representing the -// client's request for the GetCommandInvocation operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetCommandInvocation for more information on using the GetCommandInvocation -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetCommandInvocationRequest method. -// req, resp := client.GetCommandInvocationRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetCommandInvocation -func (c *SSM) GetCommandInvocationRequest(input *GetCommandInvocationInput) (req *request.Request, output *GetCommandInvocationOutput) { - op := &request.Operation{ - Name: opGetCommandInvocation, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetCommandInvocationInput{} - } - - output = &GetCommandInvocationOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetCommandInvocation API operation for Amazon Simple Systems Manager (SSM). -// -// Returns detailed information about command execution for an invocation or -// plugin. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetCommandInvocation for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidCommandId -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * InvalidPluginName -// The plugin name is not valid. -// -// * InvocationDoesNotExist -// The command ID and instance ID you specified did not match any invocations. -// Verify the command ID and the instance ID and try again. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetCommandInvocation -func (c *SSM) GetCommandInvocation(input *GetCommandInvocationInput) (*GetCommandInvocationOutput, error) { - req, out := c.GetCommandInvocationRequest(input) - return out, req.Send() -} - -// GetCommandInvocationWithContext is the same as GetCommandInvocation with the addition of -// the ability to pass a context and additional request options. -// -// See GetCommandInvocation for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetCommandInvocationWithContext(ctx aws.Context, input *GetCommandInvocationInput, opts ...request.Option) (*GetCommandInvocationOutput, error) { - req, out := c.GetCommandInvocationRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetConnectionStatus = "GetConnectionStatus" - -// GetConnectionStatusRequest generates a "aws/request.Request" representing the -// client's request for the GetConnectionStatus operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetConnectionStatus for more information on using the GetConnectionStatus -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetConnectionStatusRequest method. -// req, resp := client.GetConnectionStatusRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetConnectionStatus -func (c *SSM) GetConnectionStatusRequest(input *GetConnectionStatusInput) (req *request.Request, output *GetConnectionStatusOutput) { - op := &request.Operation{ - Name: opGetConnectionStatus, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetConnectionStatusInput{} - } - - output = &GetConnectionStatusOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetConnectionStatus API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves the Session Manager connection status for an instance to determine -// whether it is running and ready to receive Session Manager connections. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetConnectionStatus for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetConnectionStatus -func (c *SSM) GetConnectionStatus(input *GetConnectionStatusInput) (*GetConnectionStatusOutput, error) { - req, out := c.GetConnectionStatusRequest(input) - return out, req.Send() -} - -// GetConnectionStatusWithContext is the same as GetConnectionStatus with the addition of -// the ability to pass a context and additional request options. -// -// See GetConnectionStatus for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetConnectionStatusWithContext(ctx aws.Context, input *GetConnectionStatusInput, opts ...request.Option) (*GetConnectionStatusOutput, error) { - req, out := c.GetConnectionStatusRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetDefaultPatchBaseline = "GetDefaultPatchBaseline" - -// GetDefaultPatchBaselineRequest generates a "aws/request.Request" representing the -// client's request for the GetDefaultPatchBaseline operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetDefaultPatchBaseline for more information on using the GetDefaultPatchBaseline -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetDefaultPatchBaselineRequest method. -// req, resp := client.GetDefaultPatchBaselineRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetDefaultPatchBaseline -func (c *SSM) GetDefaultPatchBaselineRequest(input *GetDefaultPatchBaselineInput) (req *request.Request, output *GetDefaultPatchBaselineOutput) { - op := &request.Operation{ - Name: opGetDefaultPatchBaseline, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetDefaultPatchBaselineInput{} - } - - output = &GetDefaultPatchBaselineOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetDefaultPatchBaseline API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves the default patch baseline. Note that Systems Manager supports -// creating multiple default patch baselines. For example, you can create a -// default patch baseline for each operating system. -// -// If you do not specify an operating system value, the default patch baseline -// for Windows is returned. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetDefaultPatchBaseline for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetDefaultPatchBaseline -func (c *SSM) GetDefaultPatchBaseline(input *GetDefaultPatchBaselineInput) (*GetDefaultPatchBaselineOutput, error) { - req, out := c.GetDefaultPatchBaselineRequest(input) - return out, req.Send() -} - -// GetDefaultPatchBaselineWithContext is the same as GetDefaultPatchBaseline with the addition of -// the ability to pass a context and additional request options. -// -// See GetDefaultPatchBaseline for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetDefaultPatchBaselineWithContext(ctx aws.Context, input *GetDefaultPatchBaselineInput, opts ...request.Option) (*GetDefaultPatchBaselineOutput, error) { - req, out := c.GetDefaultPatchBaselineRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetDeployablePatchSnapshotForInstance = "GetDeployablePatchSnapshotForInstance" - -// GetDeployablePatchSnapshotForInstanceRequest generates a "aws/request.Request" representing the -// client's request for the GetDeployablePatchSnapshotForInstance operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetDeployablePatchSnapshotForInstance for more information on using the GetDeployablePatchSnapshotForInstance -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetDeployablePatchSnapshotForInstanceRequest method. -// req, resp := client.GetDeployablePatchSnapshotForInstanceRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetDeployablePatchSnapshotForInstance -func (c *SSM) GetDeployablePatchSnapshotForInstanceRequest(input *GetDeployablePatchSnapshotForInstanceInput) (req *request.Request, output *GetDeployablePatchSnapshotForInstanceOutput) { - op := &request.Operation{ - Name: opGetDeployablePatchSnapshotForInstance, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetDeployablePatchSnapshotForInstanceInput{} - } - - output = &GetDeployablePatchSnapshotForInstanceOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetDeployablePatchSnapshotForInstance API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves the current snapshot for the patch baseline the instance uses. -// This API is primarily used by the AWS-RunPatchBaseline Systems Manager document. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetDeployablePatchSnapshotForInstance for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * UnsupportedOperatingSystem -// The operating systems you specified is not supported, or the operation is -// not supported for the operating system. -// -// * UnsupportedFeatureRequiredException -// Microsoft application patching is only available on EC2 instances and advanced -// instances. To patch Microsoft applications on on-premises servers and VMs, -// you must enable advanced instances. For more information, see Using the advanced-instances -// tier (https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances-advanced.html) -// in the AWS Systems Manager User Guide. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetDeployablePatchSnapshotForInstance -func (c *SSM) GetDeployablePatchSnapshotForInstance(input *GetDeployablePatchSnapshotForInstanceInput) (*GetDeployablePatchSnapshotForInstanceOutput, error) { - req, out := c.GetDeployablePatchSnapshotForInstanceRequest(input) - return out, req.Send() -} - -// GetDeployablePatchSnapshotForInstanceWithContext is the same as GetDeployablePatchSnapshotForInstance with the addition of -// the ability to pass a context and additional request options. -// -// See GetDeployablePatchSnapshotForInstance for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetDeployablePatchSnapshotForInstanceWithContext(ctx aws.Context, input *GetDeployablePatchSnapshotForInstanceInput, opts ...request.Option) (*GetDeployablePatchSnapshotForInstanceOutput, error) { - req, out := c.GetDeployablePatchSnapshotForInstanceRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetDocument = "GetDocument" - -// GetDocumentRequest generates a "aws/request.Request" representing the -// client's request for the GetDocument operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetDocument for more information on using the GetDocument -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetDocumentRequest method. -// req, resp := client.GetDocumentRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetDocument -func (c *SSM) GetDocumentRequest(input *GetDocumentInput) (req *request.Request, output *GetDocumentOutput) { - op := &request.Operation{ - Name: opGetDocument, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetDocumentInput{} - } - - output = &GetDocumentOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetDocument API operation for Amazon Simple Systems Manager (SSM). -// -// Gets the contents of the specified Systems Manager document. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetDocument for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidDocumentVersion -// The document version is not valid or does not exist. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetDocument -func (c *SSM) GetDocument(input *GetDocumentInput) (*GetDocumentOutput, error) { - req, out := c.GetDocumentRequest(input) - return out, req.Send() -} - -// GetDocumentWithContext is the same as GetDocument with the addition of -// the ability to pass a context and additional request options. -// -// See GetDocument for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetDocumentWithContext(ctx aws.Context, input *GetDocumentInput, opts ...request.Option) (*GetDocumentOutput, error) { - req, out := c.GetDocumentRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetInventory = "GetInventory" - -// GetInventoryRequest generates a "aws/request.Request" representing the -// client's request for the GetInventory operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetInventory for more information on using the GetInventory -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetInventoryRequest method. -// req, resp := client.GetInventoryRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetInventory -func (c *SSM) GetInventoryRequest(input *GetInventoryInput) (req *request.Request, output *GetInventoryOutput) { - op := &request.Operation{ - Name: opGetInventory, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &GetInventoryInput{} - } - - output = &GetInventoryOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetInventory API operation for Amazon Simple Systems Manager (SSM). -// -// Query inventory information. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetInventory for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidFilter -// The filter name is not valid. Verify the you entered the correct name and -// try again. -// -// * InvalidInventoryGroupException -// The specified inventory group is not valid. -// -// * InvalidNextToken -// The specified token is not valid. -// -// * InvalidTypeNameException -// The parameter type name is not valid. -// -// * InvalidAggregatorException -// The specified aggregator is not valid for inventory groups. Verify that the -// aggregator uses a valid inventory type such as AWS:Application or AWS:InstanceInformation. -// -// * InvalidResultAttributeException -// The specified inventory item result attribute is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetInventory -func (c *SSM) GetInventory(input *GetInventoryInput) (*GetInventoryOutput, error) { - req, out := c.GetInventoryRequest(input) - return out, req.Send() -} - -// GetInventoryWithContext is the same as GetInventory with the addition of -// the ability to pass a context and additional request options. -// -// See GetInventory for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetInventoryWithContext(ctx aws.Context, input *GetInventoryInput, opts ...request.Option) (*GetInventoryOutput, error) { - req, out := c.GetInventoryRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// GetInventoryPages iterates over the pages of a GetInventory operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See GetInventory method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a GetInventory operation. -// pageNum := 0 -// err := client.GetInventoryPages(params, -// func(page *ssm.GetInventoryOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) GetInventoryPages(input *GetInventoryInput, fn func(*GetInventoryOutput, bool) bool) error { - return c.GetInventoryPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// GetInventoryPagesWithContext same as GetInventoryPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetInventoryPagesWithContext(ctx aws.Context, input *GetInventoryInput, fn func(*GetInventoryOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *GetInventoryInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.GetInventoryRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*GetInventoryOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opGetInventorySchema = "GetInventorySchema" - -// GetInventorySchemaRequest generates a "aws/request.Request" representing the -// client's request for the GetInventorySchema operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetInventorySchema for more information on using the GetInventorySchema -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetInventorySchemaRequest method. -// req, resp := client.GetInventorySchemaRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetInventorySchema -func (c *SSM) GetInventorySchemaRequest(input *GetInventorySchemaInput) (req *request.Request, output *GetInventorySchemaOutput) { - op := &request.Operation{ - Name: opGetInventorySchema, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &GetInventorySchemaInput{} - } - - output = &GetInventorySchemaOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetInventorySchema API operation for Amazon Simple Systems Manager (SSM). -// -// Return a list of inventory type names for the account, or return a list of -// attribute names for a specific Inventory item type. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetInventorySchema for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidTypeNameException -// The parameter type name is not valid. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetInventorySchema -func (c *SSM) GetInventorySchema(input *GetInventorySchemaInput) (*GetInventorySchemaOutput, error) { - req, out := c.GetInventorySchemaRequest(input) - return out, req.Send() -} - -// GetInventorySchemaWithContext is the same as GetInventorySchema with the addition of -// the ability to pass a context and additional request options. -// -// See GetInventorySchema for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetInventorySchemaWithContext(ctx aws.Context, input *GetInventorySchemaInput, opts ...request.Option) (*GetInventorySchemaOutput, error) { - req, out := c.GetInventorySchemaRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// GetInventorySchemaPages iterates over the pages of a GetInventorySchema operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See GetInventorySchema method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a GetInventorySchema operation. -// pageNum := 0 -// err := client.GetInventorySchemaPages(params, -// func(page *ssm.GetInventorySchemaOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) GetInventorySchemaPages(input *GetInventorySchemaInput, fn func(*GetInventorySchemaOutput, bool) bool) error { - return c.GetInventorySchemaPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// GetInventorySchemaPagesWithContext same as GetInventorySchemaPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetInventorySchemaPagesWithContext(ctx aws.Context, input *GetInventorySchemaInput, fn func(*GetInventorySchemaOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *GetInventorySchemaInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.GetInventorySchemaRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*GetInventorySchemaOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opGetMaintenanceWindow = "GetMaintenanceWindow" - -// GetMaintenanceWindowRequest generates a "aws/request.Request" representing the -// client's request for the GetMaintenanceWindow operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetMaintenanceWindow for more information on using the GetMaintenanceWindow -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetMaintenanceWindowRequest method. -// req, resp := client.GetMaintenanceWindowRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindow -func (c *SSM) GetMaintenanceWindowRequest(input *GetMaintenanceWindowInput) (req *request.Request, output *GetMaintenanceWindowOutput) { - op := &request.Operation{ - Name: opGetMaintenanceWindow, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetMaintenanceWindowInput{} - } - - output = &GetMaintenanceWindowOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetMaintenanceWindow API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves a maintenance window. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetMaintenanceWindow for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindow -func (c *SSM) GetMaintenanceWindow(input *GetMaintenanceWindowInput) (*GetMaintenanceWindowOutput, error) { - req, out := c.GetMaintenanceWindowRequest(input) - return out, req.Send() -} - -// GetMaintenanceWindowWithContext is the same as GetMaintenanceWindow with the addition of -// the ability to pass a context and additional request options. -// -// See GetMaintenanceWindow for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetMaintenanceWindowWithContext(ctx aws.Context, input *GetMaintenanceWindowInput, opts ...request.Option) (*GetMaintenanceWindowOutput, error) { - req, out := c.GetMaintenanceWindowRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetMaintenanceWindowExecution = "GetMaintenanceWindowExecution" - -// GetMaintenanceWindowExecutionRequest generates a "aws/request.Request" representing the -// client's request for the GetMaintenanceWindowExecution operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetMaintenanceWindowExecution for more information on using the GetMaintenanceWindowExecution -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetMaintenanceWindowExecutionRequest method. -// req, resp := client.GetMaintenanceWindowExecutionRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowExecution -func (c *SSM) GetMaintenanceWindowExecutionRequest(input *GetMaintenanceWindowExecutionInput) (req *request.Request, output *GetMaintenanceWindowExecutionOutput) { - op := &request.Operation{ - Name: opGetMaintenanceWindowExecution, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetMaintenanceWindowExecutionInput{} - } - - output = &GetMaintenanceWindowExecutionOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetMaintenanceWindowExecution API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves details about a specific a maintenance window execution. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetMaintenanceWindowExecution for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowExecution -func (c *SSM) GetMaintenanceWindowExecution(input *GetMaintenanceWindowExecutionInput) (*GetMaintenanceWindowExecutionOutput, error) { - req, out := c.GetMaintenanceWindowExecutionRequest(input) - return out, req.Send() -} - -// GetMaintenanceWindowExecutionWithContext is the same as GetMaintenanceWindowExecution with the addition of -// the ability to pass a context and additional request options. -// -// See GetMaintenanceWindowExecution for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetMaintenanceWindowExecutionWithContext(ctx aws.Context, input *GetMaintenanceWindowExecutionInput, opts ...request.Option) (*GetMaintenanceWindowExecutionOutput, error) { - req, out := c.GetMaintenanceWindowExecutionRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetMaintenanceWindowExecutionTask = "GetMaintenanceWindowExecutionTask" - -// GetMaintenanceWindowExecutionTaskRequest generates a "aws/request.Request" representing the -// client's request for the GetMaintenanceWindowExecutionTask operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetMaintenanceWindowExecutionTask for more information on using the GetMaintenanceWindowExecutionTask -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetMaintenanceWindowExecutionTaskRequest method. -// req, resp := client.GetMaintenanceWindowExecutionTaskRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowExecutionTask -func (c *SSM) GetMaintenanceWindowExecutionTaskRequest(input *GetMaintenanceWindowExecutionTaskInput) (req *request.Request, output *GetMaintenanceWindowExecutionTaskOutput) { - op := &request.Operation{ - Name: opGetMaintenanceWindowExecutionTask, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetMaintenanceWindowExecutionTaskInput{} - } - - output = &GetMaintenanceWindowExecutionTaskOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetMaintenanceWindowExecutionTask API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves the details about a specific task run as part of a maintenance -// window execution. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetMaintenanceWindowExecutionTask for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowExecutionTask -func (c *SSM) GetMaintenanceWindowExecutionTask(input *GetMaintenanceWindowExecutionTaskInput) (*GetMaintenanceWindowExecutionTaskOutput, error) { - req, out := c.GetMaintenanceWindowExecutionTaskRequest(input) - return out, req.Send() -} - -// GetMaintenanceWindowExecutionTaskWithContext is the same as GetMaintenanceWindowExecutionTask with the addition of -// the ability to pass a context and additional request options. -// -// See GetMaintenanceWindowExecutionTask for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetMaintenanceWindowExecutionTaskWithContext(ctx aws.Context, input *GetMaintenanceWindowExecutionTaskInput, opts ...request.Option) (*GetMaintenanceWindowExecutionTaskOutput, error) { - req, out := c.GetMaintenanceWindowExecutionTaskRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetMaintenanceWindowExecutionTaskInvocation = "GetMaintenanceWindowExecutionTaskInvocation" - -// GetMaintenanceWindowExecutionTaskInvocationRequest generates a "aws/request.Request" representing the -// client's request for the GetMaintenanceWindowExecutionTaskInvocation operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetMaintenanceWindowExecutionTaskInvocation for more information on using the GetMaintenanceWindowExecutionTaskInvocation -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetMaintenanceWindowExecutionTaskInvocationRequest method. -// req, resp := client.GetMaintenanceWindowExecutionTaskInvocationRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowExecutionTaskInvocation -func (c *SSM) GetMaintenanceWindowExecutionTaskInvocationRequest(input *GetMaintenanceWindowExecutionTaskInvocationInput) (req *request.Request, output *GetMaintenanceWindowExecutionTaskInvocationOutput) { - op := &request.Operation{ - Name: opGetMaintenanceWindowExecutionTaskInvocation, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetMaintenanceWindowExecutionTaskInvocationInput{} - } - - output = &GetMaintenanceWindowExecutionTaskInvocationOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetMaintenanceWindowExecutionTaskInvocation API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves information about a specific task running on a specific target. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetMaintenanceWindowExecutionTaskInvocation for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowExecutionTaskInvocation -func (c *SSM) GetMaintenanceWindowExecutionTaskInvocation(input *GetMaintenanceWindowExecutionTaskInvocationInput) (*GetMaintenanceWindowExecutionTaskInvocationOutput, error) { - req, out := c.GetMaintenanceWindowExecutionTaskInvocationRequest(input) - return out, req.Send() -} - -// GetMaintenanceWindowExecutionTaskInvocationWithContext is the same as GetMaintenanceWindowExecutionTaskInvocation with the addition of -// the ability to pass a context and additional request options. -// -// See GetMaintenanceWindowExecutionTaskInvocation for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetMaintenanceWindowExecutionTaskInvocationWithContext(ctx aws.Context, input *GetMaintenanceWindowExecutionTaskInvocationInput, opts ...request.Option) (*GetMaintenanceWindowExecutionTaskInvocationOutput, error) { - req, out := c.GetMaintenanceWindowExecutionTaskInvocationRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetMaintenanceWindowTask = "GetMaintenanceWindowTask" - -// GetMaintenanceWindowTaskRequest generates a "aws/request.Request" representing the -// client's request for the GetMaintenanceWindowTask operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetMaintenanceWindowTask for more information on using the GetMaintenanceWindowTask -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetMaintenanceWindowTaskRequest method. -// req, resp := client.GetMaintenanceWindowTaskRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowTask -func (c *SSM) GetMaintenanceWindowTaskRequest(input *GetMaintenanceWindowTaskInput) (req *request.Request, output *GetMaintenanceWindowTaskOutput) { - op := &request.Operation{ - Name: opGetMaintenanceWindowTask, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetMaintenanceWindowTaskInput{} - } - - output = &GetMaintenanceWindowTaskOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetMaintenanceWindowTask API operation for Amazon Simple Systems Manager (SSM). -// -// Lists the tasks in a maintenance window. -// -// For maintenance window tasks without a specified target, you cannot supply -// values for --max-errors and --max-concurrency. Instead, the system inserts -// a placeholder value of 1, which may be reported in the response to this command. -// These values do not affect the running of your task and can be ignored. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetMaintenanceWindowTask for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowTask -func (c *SSM) GetMaintenanceWindowTask(input *GetMaintenanceWindowTaskInput) (*GetMaintenanceWindowTaskOutput, error) { - req, out := c.GetMaintenanceWindowTaskRequest(input) - return out, req.Send() -} - -// GetMaintenanceWindowTaskWithContext is the same as GetMaintenanceWindowTask with the addition of -// the ability to pass a context and additional request options. -// -// See GetMaintenanceWindowTask for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetMaintenanceWindowTaskWithContext(ctx aws.Context, input *GetMaintenanceWindowTaskInput, opts ...request.Option) (*GetMaintenanceWindowTaskOutput, error) { - req, out := c.GetMaintenanceWindowTaskRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetOpsItem = "GetOpsItem" - -// GetOpsItemRequest generates a "aws/request.Request" representing the -// client's request for the GetOpsItem operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetOpsItem for more information on using the GetOpsItem -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetOpsItemRequest method. -// req, resp := client.GetOpsItemRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetOpsItem -func (c *SSM) GetOpsItemRequest(input *GetOpsItemInput) (req *request.Request, output *GetOpsItemOutput) { - op := &request.Operation{ - Name: opGetOpsItem, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetOpsItemInput{} - } - - output = &GetOpsItemOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetOpsItem API operation for Amazon Simple Systems Manager (SSM). -// -// Get information about an OpsItem by using the ID. You must have permission -// in AWS Identity and Access Management (IAM) to view information about an -// OpsItem. For more information, see Getting started with OpsCenter (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html) -// in the AWS Systems Manager User Guide. -// -// Operations engineers and IT professionals use OpsCenter to view, investigate, -// and remediate operational issues impacting the performance and health of -// their AWS resources. For more information, see AWS Systems Manager OpsCenter -// (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html) -// in the AWS Systems Manager User Guide. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetOpsItem for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * OpsItemNotFoundException -// The specified OpsItem ID doesn't exist. Verify the ID and try again. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetOpsItem -func (c *SSM) GetOpsItem(input *GetOpsItemInput) (*GetOpsItemOutput, error) { - req, out := c.GetOpsItemRequest(input) - return out, req.Send() -} - -// GetOpsItemWithContext is the same as GetOpsItem with the addition of -// the ability to pass a context and additional request options. -// -// See GetOpsItem for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetOpsItemWithContext(ctx aws.Context, input *GetOpsItemInput, opts ...request.Option) (*GetOpsItemOutput, error) { - req, out := c.GetOpsItemRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetOpsMetadata = "GetOpsMetadata" - -// GetOpsMetadataRequest generates a "aws/request.Request" representing the -// client's request for the GetOpsMetadata operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetOpsMetadata for more information on using the GetOpsMetadata -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetOpsMetadataRequest method. -// req, resp := client.GetOpsMetadataRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetOpsMetadata -func (c *SSM) GetOpsMetadataRequest(input *GetOpsMetadataInput) (req *request.Request, output *GetOpsMetadataOutput) { - op := &request.Operation{ - Name: opGetOpsMetadata, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetOpsMetadataInput{} - } - - output = &GetOpsMetadataOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetOpsMetadata API operation for Amazon Simple Systems Manager (SSM). -// -// View operational metadata related to an application in Application Manager. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetOpsMetadata for usage and error information. -// -// Returned Error Types: -// * OpsMetadataNotFoundException -// The OpsMetadata object does not exist. -// -// * OpsMetadataInvalidArgumentException -// One of the arguments passed is invalid. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetOpsMetadata -func (c *SSM) GetOpsMetadata(input *GetOpsMetadataInput) (*GetOpsMetadataOutput, error) { - req, out := c.GetOpsMetadataRequest(input) - return out, req.Send() -} - -// GetOpsMetadataWithContext is the same as GetOpsMetadata with the addition of -// the ability to pass a context and additional request options. -// -// See GetOpsMetadata for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetOpsMetadataWithContext(ctx aws.Context, input *GetOpsMetadataInput, opts ...request.Option) (*GetOpsMetadataOutput, error) { - req, out := c.GetOpsMetadataRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetOpsSummary = "GetOpsSummary" - -// GetOpsSummaryRequest generates a "aws/request.Request" representing the -// client's request for the GetOpsSummary operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetOpsSummary for more information on using the GetOpsSummary -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetOpsSummaryRequest method. -// req, resp := client.GetOpsSummaryRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetOpsSummary -func (c *SSM) GetOpsSummaryRequest(input *GetOpsSummaryInput) (req *request.Request, output *GetOpsSummaryOutput) { - op := &request.Operation{ - Name: opGetOpsSummary, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &GetOpsSummaryInput{} - } - - output = &GetOpsSummaryOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetOpsSummary API operation for Amazon Simple Systems Manager (SSM). -// -// View a summary of OpsItems based on specified filters and aggregators. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetOpsSummary for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * ResourceDataSyncNotFoundException -// The specified sync name was not found. -// -// * InvalidFilter -// The filter name is not valid. Verify the you entered the correct name and -// try again. -// -// * InvalidNextToken -// The specified token is not valid. -// -// * InvalidTypeNameException -// The parameter type name is not valid. -// -// * InvalidAggregatorException -// The specified aggregator is not valid for inventory groups. Verify that the -// aggregator uses a valid inventory type such as AWS:Application or AWS:InstanceInformation. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetOpsSummary -func (c *SSM) GetOpsSummary(input *GetOpsSummaryInput) (*GetOpsSummaryOutput, error) { - req, out := c.GetOpsSummaryRequest(input) - return out, req.Send() -} - -// GetOpsSummaryWithContext is the same as GetOpsSummary with the addition of -// the ability to pass a context and additional request options. -// -// See GetOpsSummary for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetOpsSummaryWithContext(ctx aws.Context, input *GetOpsSummaryInput, opts ...request.Option) (*GetOpsSummaryOutput, error) { - req, out := c.GetOpsSummaryRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// GetOpsSummaryPages iterates over the pages of a GetOpsSummary operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See GetOpsSummary method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a GetOpsSummary operation. -// pageNum := 0 -// err := client.GetOpsSummaryPages(params, -// func(page *ssm.GetOpsSummaryOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) GetOpsSummaryPages(input *GetOpsSummaryInput, fn func(*GetOpsSummaryOutput, bool) bool) error { - return c.GetOpsSummaryPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// GetOpsSummaryPagesWithContext same as GetOpsSummaryPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetOpsSummaryPagesWithContext(ctx aws.Context, input *GetOpsSummaryInput, fn func(*GetOpsSummaryOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *GetOpsSummaryInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.GetOpsSummaryRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*GetOpsSummaryOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opGetParameter = "GetParameter" - -// GetParameterRequest generates a "aws/request.Request" representing the -// client's request for the GetParameter operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetParameter for more information on using the GetParameter -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetParameterRequest method. -// req, resp := client.GetParameterRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParameter -func (c *SSM) GetParameterRequest(input *GetParameterInput) (req *request.Request, output *GetParameterOutput) { - op := &request.Operation{ - Name: opGetParameter, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetParameterInput{} - } - - output = &GetParameterOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetParameter API operation for Amazon Simple Systems Manager (SSM). -// -// Get information about a parameter by using the parameter name. Don't confuse -// this API action with the GetParameters API action. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetParameter for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidKeyId -// The query key ID is not valid. -// -// * ParameterNotFound -// The parameter could not be found. Verify the name and try again. -// -// * ParameterVersionNotFound -// The specified parameter version was not found. Verify the parameter name -// and version, and try again. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParameter -func (c *SSM) GetParameter(input *GetParameterInput) (*GetParameterOutput, error) { - req, out := c.GetParameterRequest(input) - return out, req.Send() -} - -// GetParameterWithContext is the same as GetParameter with the addition of -// the ability to pass a context and additional request options. -// -// See GetParameter for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetParameterWithContext(ctx aws.Context, input *GetParameterInput, opts ...request.Option) (*GetParameterOutput, error) { - req, out := c.GetParameterRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetParameterHistory = "GetParameterHistory" - -// GetParameterHistoryRequest generates a "aws/request.Request" representing the -// client's request for the GetParameterHistory operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetParameterHistory for more information on using the GetParameterHistory -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetParameterHistoryRequest method. -// req, resp := client.GetParameterHistoryRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParameterHistory -func (c *SSM) GetParameterHistoryRequest(input *GetParameterHistoryInput) (req *request.Request, output *GetParameterHistoryOutput) { - op := &request.Operation{ - Name: opGetParameterHistory, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &GetParameterHistoryInput{} - } - - output = &GetParameterHistoryOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetParameterHistory API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves the history of all changes to a parameter. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetParameterHistory for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * ParameterNotFound -// The parameter could not be found. Verify the name and try again. -// -// * InvalidNextToken -// The specified token is not valid. -// -// * InvalidKeyId -// The query key ID is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParameterHistory -func (c *SSM) GetParameterHistory(input *GetParameterHistoryInput) (*GetParameterHistoryOutput, error) { - req, out := c.GetParameterHistoryRequest(input) - return out, req.Send() -} - -// GetParameterHistoryWithContext is the same as GetParameterHistory with the addition of -// the ability to pass a context and additional request options. -// -// See GetParameterHistory for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetParameterHistoryWithContext(ctx aws.Context, input *GetParameterHistoryInput, opts ...request.Option) (*GetParameterHistoryOutput, error) { - req, out := c.GetParameterHistoryRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// GetParameterHistoryPages iterates over the pages of a GetParameterHistory operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See GetParameterHistory method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a GetParameterHistory operation. -// pageNum := 0 -// err := client.GetParameterHistoryPages(params, -// func(page *ssm.GetParameterHistoryOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) GetParameterHistoryPages(input *GetParameterHistoryInput, fn func(*GetParameterHistoryOutput, bool) bool) error { - return c.GetParameterHistoryPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// GetParameterHistoryPagesWithContext same as GetParameterHistoryPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetParameterHistoryPagesWithContext(ctx aws.Context, input *GetParameterHistoryInput, fn func(*GetParameterHistoryOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *GetParameterHistoryInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.GetParameterHistoryRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*GetParameterHistoryOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opGetParameters = "GetParameters" - -// GetParametersRequest generates a "aws/request.Request" representing the -// client's request for the GetParameters operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetParameters for more information on using the GetParameters -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetParametersRequest method. -// req, resp := client.GetParametersRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParameters -func (c *SSM) GetParametersRequest(input *GetParametersInput) (req *request.Request, output *GetParametersOutput) { - op := &request.Operation{ - Name: opGetParameters, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetParametersInput{} - } - - output = &GetParametersOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetParameters API operation for Amazon Simple Systems Manager (SSM). -// -// Get details of a parameter. Don't confuse this API action with the GetParameter -// API action. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetParameters for usage and error information. -// -// Returned Error Types: -// * InvalidKeyId -// The query key ID is not valid. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParameters -func (c *SSM) GetParameters(input *GetParametersInput) (*GetParametersOutput, error) { - req, out := c.GetParametersRequest(input) - return out, req.Send() -} - -// GetParametersWithContext is the same as GetParameters with the addition of -// the ability to pass a context and additional request options. -// -// See GetParameters for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetParametersWithContext(ctx aws.Context, input *GetParametersInput, opts ...request.Option) (*GetParametersOutput, error) { - req, out := c.GetParametersRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetParametersByPath = "GetParametersByPath" - -// GetParametersByPathRequest generates a "aws/request.Request" representing the -// client's request for the GetParametersByPath operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetParametersByPath for more information on using the GetParametersByPath -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetParametersByPathRequest method. -// req, resp := client.GetParametersByPathRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParametersByPath -func (c *SSM) GetParametersByPathRequest(input *GetParametersByPathInput) (req *request.Request, output *GetParametersByPathOutput) { - op := &request.Operation{ - Name: opGetParametersByPath, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &GetParametersByPathInput{} - } - - output = &GetParametersByPathOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetParametersByPath API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieve information about one or more parameters in a specific hierarchy. -// -// Request results are returned on a best-effort basis. If you specify MaxResults -// in the request, the response includes information up to the limit specified. -// The number of items returned, however, can be between zero and the value -// of MaxResults. If the service reaches an internal limit while processing -// the results, it stops the operation and returns the matching values up to -// that point and a NextToken. You can specify the NextToken in a subsequent -// call to get the next set of results. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetParametersByPath for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidFilterKey -// The specified key is not valid. -// -// * InvalidFilterOption -// The specified filter option is not valid. Valid options are Equals and BeginsWith. -// For Path filter, valid options are Recursive and OneLevel. -// -// * InvalidFilterValue -// The filter value is not valid. Verify the value and try again. -// -// * InvalidKeyId -// The query key ID is not valid. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParametersByPath -func (c *SSM) GetParametersByPath(input *GetParametersByPathInput) (*GetParametersByPathOutput, error) { - req, out := c.GetParametersByPathRequest(input) - return out, req.Send() -} - -// GetParametersByPathWithContext is the same as GetParametersByPath with the addition of -// the ability to pass a context and additional request options. -// -// See GetParametersByPath for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetParametersByPathWithContext(ctx aws.Context, input *GetParametersByPathInput, opts ...request.Option) (*GetParametersByPathOutput, error) { - req, out := c.GetParametersByPathRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// GetParametersByPathPages iterates over the pages of a GetParametersByPath operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See GetParametersByPath method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a GetParametersByPath operation. -// pageNum := 0 -// err := client.GetParametersByPathPages(params, -// func(page *ssm.GetParametersByPathOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) GetParametersByPathPages(input *GetParametersByPathInput, fn func(*GetParametersByPathOutput, bool) bool) error { - return c.GetParametersByPathPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// GetParametersByPathPagesWithContext same as GetParametersByPathPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetParametersByPathPagesWithContext(ctx aws.Context, input *GetParametersByPathInput, fn func(*GetParametersByPathOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *GetParametersByPathInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.GetParametersByPathRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*GetParametersByPathOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opGetPatchBaseline = "GetPatchBaseline" - -// GetPatchBaselineRequest generates a "aws/request.Request" representing the -// client's request for the GetPatchBaseline operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetPatchBaseline for more information on using the GetPatchBaseline -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetPatchBaselineRequest method. -// req, resp := client.GetPatchBaselineRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetPatchBaseline -func (c *SSM) GetPatchBaselineRequest(input *GetPatchBaselineInput) (req *request.Request, output *GetPatchBaselineOutput) { - op := &request.Operation{ - Name: opGetPatchBaseline, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetPatchBaselineInput{} - } - - output = &GetPatchBaselineOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetPatchBaseline API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves information about a patch baseline. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetPatchBaseline for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InvalidResourceId -// The resource ID is not valid. Verify that you entered the correct ID and -// try again. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetPatchBaseline -func (c *SSM) GetPatchBaseline(input *GetPatchBaselineInput) (*GetPatchBaselineOutput, error) { - req, out := c.GetPatchBaselineRequest(input) - return out, req.Send() -} - -// GetPatchBaselineWithContext is the same as GetPatchBaseline with the addition of -// the ability to pass a context and additional request options. -// -// See GetPatchBaseline for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetPatchBaselineWithContext(ctx aws.Context, input *GetPatchBaselineInput, opts ...request.Option) (*GetPatchBaselineOutput, error) { - req, out := c.GetPatchBaselineRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetPatchBaselineForPatchGroup = "GetPatchBaselineForPatchGroup" - -// GetPatchBaselineForPatchGroupRequest generates a "aws/request.Request" representing the -// client's request for the GetPatchBaselineForPatchGroup operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetPatchBaselineForPatchGroup for more information on using the GetPatchBaselineForPatchGroup -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetPatchBaselineForPatchGroupRequest method. -// req, resp := client.GetPatchBaselineForPatchGroupRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetPatchBaselineForPatchGroup -func (c *SSM) GetPatchBaselineForPatchGroupRequest(input *GetPatchBaselineForPatchGroupInput) (req *request.Request, output *GetPatchBaselineForPatchGroupOutput) { - op := &request.Operation{ - Name: opGetPatchBaselineForPatchGroup, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetPatchBaselineForPatchGroupInput{} - } - - output = &GetPatchBaselineForPatchGroupOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetPatchBaselineForPatchGroup API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves the patch baseline that should be used for the specified patch -// group. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetPatchBaselineForPatchGroup for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetPatchBaselineForPatchGroup -func (c *SSM) GetPatchBaselineForPatchGroup(input *GetPatchBaselineForPatchGroupInput) (*GetPatchBaselineForPatchGroupOutput, error) { - req, out := c.GetPatchBaselineForPatchGroupRequest(input) - return out, req.Send() -} - -// GetPatchBaselineForPatchGroupWithContext is the same as GetPatchBaselineForPatchGroup with the addition of -// the ability to pass a context and additional request options. -// -// See GetPatchBaselineForPatchGroup for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetPatchBaselineForPatchGroupWithContext(ctx aws.Context, input *GetPatchBaselineForPatchGroupInput, opts ...request.Option) (*GetPatchBaselineForPatchGroupOutput, error) { - req, out := c.GetPatchBaselineForPatchGroupRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetServiceSetting = "GetServiceSetting" - -// GetServiceSettingRequest generates a "aws/request.Request" representing the -// client's request for the GetServiceSetting operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetServiceSetting for more information on using the GetServiceSetting -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetServiceSettingRequest method. -// req, resp := client.GetServiceSettingRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetServiceSetting -func (c *SSM) GetServiceSettingRequest(input *GetServiceSettingInput) (req *request.Request, output *GetServiceSettingOutput) { - op := &request.Operation{ - Name: opGetServiceSetting, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetServiceSettingInput{} - } - - output = &GetServiceSettingOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetServiceSetting API operation for Amazon Simple Systems Manager (SSM). -// -// ServiceSetting is an account-level setting for an AWS service. This setting -// defines how a user interacts with or uses a service or a feature of a service. -// For example, if an AWS service charges money to the account based on feature -// or service usage, then the AWS service team might create a default setting -// of "false". This means the user can't use this feature unless they change -// the setting to "true" and intentionally opt in for a paid feature. -// -// Services map a SettingId object to a setting value. AWS services teams define -// the default value for a SettingId. You can't create a new SettingId, but -// you can overwrite the default value if you have the ssm:UpdateServiceSetting -// permission for the setting. Use the UpdateServiceSetting API action to change -// the default setting. Or use the ResetServiceSetting to change the value back -// to the original value defined by the AWS service team. -// -// Query the current service setting for the account. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation GetServiceSetting for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * ServiceSettingNotFound -// The specified service setting was not found. Either the service name or the -// setting has not been provisioned by the AWS service team. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetServiceSetting -func (c *SSM) GetServiceSetting(input *GetServiceSettingInput) (*GetServiceSettingOutput, error) { - req, out := c.GetServiceSettingRequest(input) - return out, req.Send() -} - -// GetServiceSettingWithContext is the same as GetServiceSetting with the addition of -// the ability to pass a context and additional request options. -// -// See GetServiceSetting for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) GetServiceSettingWithContext(ctx aws.Context, input *GetServiceSettingInput, opts ...request.Option) (*GetServiceSettingOutput, error) { - req, out := c.GetServiceSettingRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opLabelParameterVersion = "LabelParameterVersion" - -// LabelParameterVersionRequest generates a "aws/request.Request" representing the -// client's request for the LabelParameterVersion operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See LabelParameterVersion for more information on using the LabelParameterVersion -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the LabelParameterVersionRequest method. -// req, resp := client.LabelParameterVersionRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/LabelParameterVersion -func (c *SSM) LabelParameterVersionRequest(input *LabelParameterVersionInput) (req *request.Request, output *LabelParameterVersionOutput) { - op := &request.Operation{ - Name: opLabelParameterVersion, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &LabelParameterVersionInput{} - } - - output = &LabelParameterVersionOutput{} - req = c.newRequest(op, input, output) - return -} - -// LabelParameterVersion API operation for Amazon Simple Systems Manager (SSM). -// -// A parameter label is a user-defined alias to help you manage different versions -// of a parameter. When you modify a parameter, Systems Manager automatically -// saves a new version and increments the version number by one. A label can -// help you remember the purpose of a parameter when there are multiple versions. -// -// Parameter labels have the following requirements and restrictions. -// -// * A version of a parameter can have a maximum of 10 labels. -// -// * You can't attach the same label to different versions of the same parameter. -// For example, if version 1 has the label Production, then you can't attach -// Production to version 2. -// -// * You can move a label from one version of a parameter to another. -// -// * You can't create a label when you create a new parameter. You must attach -// a label to a specific version of a parameter. -// -// * You can't delete a parameter label. If you no longer want to use a parameter -// label, then you must move it to a different version of a parameter. -// -// * A label can have a maximum of 100 characters. -// -// * Labels can contain letters (case sensitive), numbers, periods (.), hyphens -// (-), or underscores (_). -// -// * Labels can't begin with a number, "aws," or "ssm" (not case sensitive). -// If a label fails to meet these requirements, then the label is not associated -// with a parameter and the system displays it in the list of InvalidLabels. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation LabelParameterVersion for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * TooManyUpdates -// There are concurrent updates for a resource that supports one update at a -// time. -// -// * ParameterNotFound -// The parameter could not be found. Verify the name and try again. -// -// * ParameterVersionNotFound -// The specified parameter version was not found. Verify the parameter name -// and version, and try again. -// -// * ParameterVersionLabelLimitExceeded -// A parameter version can have a maximum of ten labels. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/LabelParameterVersion -func (c *SSM) LabelParameterVersion(input *LabelParameterVersionInput) (*LabelParameterVersionOutput, error) { - req, out := c.LabelParameterVersionRequest(input) - return out, req.Send() -} - -// LabelParameterVersionWithContext is the same as LabelParameterVersion with the addition of -// the ability to pass a context and additional request options. -// -// See LabelParameterVersion for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) LabelParameterVersionWithContext(ctx aws.Context, input *LabelParameterVersionInput, opts ...request.Option) (*LabelParameterVersionOutput, error) { - req, out := c.LabelParameterVersionRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opListAssociationVersions = "ListAssociationVersions" - -// ListAssociationVersionsRequest generates a "aws/request.Request" representing the -// client's request for the ListAssociationVersions operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListAssociationVersions for more information on using the ListAssociationVersions -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListAssociationVersionsRequest method. -// req, resp := client.ListAssociationVersionsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListAssociationVersions -func (c *SSM) ListAssociationVersionsRequest(input *ListAssociationVersionsInput) (req *request.Request, output *ListAssociationVersionsOutput) { - op := &request.Operation{ - Name: opListAssociationVersions, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &ListAssociationVersionsInput{} - } - - output = &ListAssociationVersionsOutput{} - req = c.newRequest(op, input, output) - return -} - -// ListAssociationVersions API operation for Amazon Simple Systems Manager (SSM). -// -// Retrieves all versions of an association for a specific association ID. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ListAssociationVersions for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidNextToken -// The specified token is not valid. -// -// * AssociationDoesNotExist -// The specified association does not exist. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListAssociationVersions -func (c *SSM) ListAssociationVersions(input *ListAssociationVersionsInput) (*ListAssociationVersionsOutput, error) { - req, out := c.ListAssociationVersionsRequest(input) - return out, req.Send() -} - -// ListAssociationVersionsWithContext is the same as ListAssociationVersions with the addition of -// the ability to pass a context and additional request options. -// -// See ListAssociationVersions for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListAssociationVersionsWithContext(ctx aws.Context, input *ListAssociationVersionsInput, opts ...request.Option) (*ListAssociationVersionsOutput, error) { - req, out := c.ListAssociationVersionsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// ListAssociationVersionsPages iterates over the pages of a ListAssociationVersions operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListAssociationVersions method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListAssociationVersions operation. -// pageNum := 0 -// err := client.ListAssociationVersionsPages(params, -// func(page *ssm.ListAssociationVersionsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) ListAssociationVersionsPages(input *ListAssociationVersionsInput, fn func(*ListAssociationVersionsOutput, bool) bool) error { - return c.ListAssociationVersionsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListAssociationVersionsPagesWithContext same as ListAssociationVersionsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListAssociationVersionsPagesWithContext(ctx aws.Context, input *ListAssociationVersionsInput, fn func(*ListAssociationVersionsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListAssociationVersionsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListAssociationVersionsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListAssociationVersionsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListAssociations = "ListAssociations" - -// ListAssociationsRequest generates a "aws/request.Request" representing the -// client's request for the ListAssociations operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListAssociations for more information on using the ListAssociations -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListAssociationsRequest method. -// req, resp := client.ListAssociationsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListAssociations -func (c *SSM) ListAssociationsRequest(input *ListAssociationsInput) (req *request.Request, output *ListAssociationsOutput) { - op := &request.Operation{ - Name: opListAssociations, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &ListAssociationsInput{} - } - - output = &ListAssociationsOutput{} - req = c.newRequest(op, input, output) - return -} - -// ListAssociations API operation for Amazon Simple Systems Manager (SSM). -// -// Returns all State Manager associations in the current AWS account and Region. -// You can limit the results to a specific State Manager association document -// or instance by specifying a filter. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ListAssociations for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListAssociations -func (c *SSM) ListAssociations(input *ListAssociationsInput) (*ListAssociationsOutput, error) { - req, out := c.ListAssociationsRequest(input) - return out, req.Send() -} - -// ListAssociationsWithContext is the same as ListAssociations with the addition of -// the ability to pass a context and additional request options. -// -// See ListAssociations for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListAssociationsWithContext(ctx aws.Context, input *ListAssociationsInput, opts ...request.Option) (*ListAssociationsOutput, error) { - req, out := c.ListAssociationsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// ListAssociationsPages iterates over the pages of a ListAssociations operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListAssociations method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListAssociations operation. -// pageNum := 0 -// err := client.ListAssociationsPages(params, -// func(page *ssm.ListAssociationsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) ListAssociationsPages(input *ListAssociationsInput, fn func(*ListAssociationsOutput, bool) bool) error { - return c.ListAssociationsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListAssociationsPagesWithContext same as ListAssociationsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListAssociationsPagesWithContext(ctx aws.Context, input *ListAssociationsInput, fn func(*ListAssociationsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListAssociationsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListAssociationsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListAssociationsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListCommandInvocations = "ListCommandInvocations" - -// ListCommandInvocationsRequest generates a "aws/request.Request" representing the -// client's request for the ListCommandInvocations operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListCommandInvocations for more information on using the ListCommandInvocations -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListCommandInvocationsRequest method. -// req, resp := client.ListCommandInvocationsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListCommandInvocations -func (c *SSM) ListCommandInvocationsRequest(input *ListCommandInvocationsInput) (req *request.Request, output *ListCommandInvocationsOutput) { - op := &request.Operation{ - Name: opListCommandInvocations, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &ListCommandInvocationsInput{} - } - - output = &ListCommandInvocationsOutput{} - req = c.newRequest(op, input, output) - return -} - -// ListCommandInvocations API operation for Amazon Simple Systems Manager (SSM). -// -// An invocation is copy of a command sent to a specific instance. A command -// can apply to one or more instances. A command invocation applies to one instance. -// For example, if a user runs SendCommand against three instances, then a command -// invocation is created for each requested instance ID. ListCommandInvocations -// provide status about command execution. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ListCommandInvocations for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidCommandId -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * InvalidFilterKey -// The specified key is not valid. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListCommandInvocations -func (c *SSM) ListCommandInvocations(input *ListCommandInvocationsInput) (*ListCommandInvocationsOutput, error) { - req, out := c.ListCommandInvocationsRequest(input) - return out, req.Send() -} - -// ListCommandInvocationsWithContext is the same as ListCommandInvocations with the addition of -// the ability to pass a context and additional request options. -// -// See ListCommandInvocations for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListCommandInvocationsWithContext(ctx aws.Context, input *ListCommandInvocationsInput, opts ...request.Option) (*ListCommandInvocationsOutput, error) { - req, out := c.ListCommandInvocationsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// ListCommandInvocationsPages iterates over the pages of a ListCommandInvocations operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListCommandInvocations method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListCommandInvocations operation. -// pageNum := 0 -// err := client.ListCommandInvocationsPages(params, -// func(page *ssm.ListCommandInvocationsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) ListCommandInvocationsPages(input *ListCommandInvocationsInput, fn func(*ListCommandInvocationsOutput, bool) bool) error { - return c.ListCommandInvocationsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListCommandInvocationsPagesWithContext same as ListCommandInvocationsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListCommandInvocationsPagesWithContext(ctx aws.Context, input *ListCommandInvocationsInput, fn func(*ListCommandInvocationsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListCommandInvocationsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListCommandInvocationsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListCommandInvocationsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListCommands = "ListCommands" - -// ListCommandsRequest generates a "aws/request.Request" representing the -// client's request for the ListCommands operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListCommands for more information on using the ListCommands -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListCommandsRequest method. -// req, resp := client.ListCommandsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListCommands -func (c *SSM) ListCommandsRequest(input *ListCommandsInput) (req *request.Request, output *ListCommandsOutput) { - op := &request.Operation{ - Name: opListCommands, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &ListCommandsInput{} - } - - output = &ListCommandsOutput{} - req = c.newRequest(op, input, output) - return -} - -// ListCommands API operation for Amazon Simple Systems Manager (SSM). -// -// Lists the commands requested by users of the AWS account. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ListCommands for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidCommandId -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * InvalidFilterKey -// The specified key is not valid. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListCommands -func (c *SSM) ListCommands(input *ListCommandsInput) (*ListCommandsOutput, error) { - req, out := c.ListCommandsRequest(input) - return out, req.Send() -} - -// ListCommandsWithContext is the same as ListCommands with the addition of -// the ability to pass a context and additional request options. -// -// See ListCommands for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListCommandsWithContext(ctx aws.Context, input *ListCommandsInput, opts ...request.Option) (*ListCommandsOutput, error) { - req, out := c.ListCommandsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// ListCommandsPages iterates over the pages of a ListCommands operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListCommands method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListCommands operation. -// pageNum := 0 -// err := client.ListCommandsPages(params, -// func(page *ssm.ListCommandsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) ListCommandsPages(input *ListCommandsInput, fn func(*ListCommandsOutput, bool) bool) error { - return c.ListCommandsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListCommandsPagesWithContext same as ListCommandsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListCommandsPagesWithContext(ctx aws.Context, input *ListCommandsInput, fn func(*ListCommandsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListCommandsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListCommandsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListCommandsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListComplianceItems = "ListComplianceItems" - -// ListComplianceItemsRequest generates a "aws/request.Request" representing the -// client's request for the ListComplianceItems operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListComplianceItems for more information on using the ListComplianceItems -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListComplianceItemsRequest method. -// req, resp := client.ListComplianceItemsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListComplianceItems -func (c *SSM) ListComplianceItemsRequest(input *ListComplianceItemsInput) (req *request.Request, output *ListComplianceItemsOutput) { - op := &request.Operation{ - Name: opListComplianceItems, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &ListComplianceItemsInput{} - } - - output = &ListComplianceItemsOutput{} - req = c.newRequest(op, input, output) - return -} - -// ListComplianceItems API operation for Amazon Simple Systems Manager (SSM). -// -// For a specified resource ID, this API action returns a list of compliance -// statuses for different resource types. Currently, you can only specify one -// resource ID per call. List results depend on the criteria specified in the -// filter. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ListComplianceItems for usage and error information. -// -// Returned Error Types: -// * InvalidResourceType -// The resource type is not valid. For example, if you are attempting to tag -// an instance, the instance must be a registered, managed instance. -// -// * InvalidResourceId -// The resource ID is not valid. Verify that you entered the correct ID and -// try again. -// -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidFilter -// The filter name is not valid. Verify the you entered the correct name and -// try again. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListComplianceItems -func (c *SSM) ListComplianceItems(input *ListComplianceItemsInput) (*ListComplianceItemsOutput, error) { - req, out := c.ListComplianceItemsRequest(input) - return out, req.Send() -} - -// ListComplianceItemsWithContext is the same as ListComplianceItems with the addition of -// the ability to pass a context and additional request options. -// -// See ListComplianceItems for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListComplianceItemsWithContext(ctx aws.Context, input *ListComplianceItemsInput, opts ...request.Option) (*ListComplianceItemsOutput, error) { - req, out := c.ListComplianceItemsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// ListComplianceItemsPages iterates over the pages of a ListComplianceItems operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListComplianceItems method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListComplianceItems operation. -// pageNum := 0 -// err := client.ListComplianceItemsPages(params, -// func(page *ssm.ListComplianceItemsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) ListComplianceItemsPages(input *ListComplianceItemsInput, fn func(*ListComplianceItemsOutput, bool) bool) error { - return c.ListComplianceItemsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListComplianceItemsPagesWithContext same as ListComplianceItemsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListComplianceItemsPagesWithContext(ctx aws.Context, input *ListComplianceItemsInput, fn func(*ListComplianceItemsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListComplianceItemsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListComplianceItemsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListComplianceItemsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListComplianceSummaries = "ListComplianceSummaries" - -// ListComplianceSummariesRequest generates a "aws/request.Request" representing the -// client's request for the ListComplianceSummaries operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListComplianceSummaries for more information on using the ListComplianceSummaries -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListComplianceSummariesRequest method. -// req, resp := client.ListComplianceSummariesRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListComplianceSummaries -func (c *SSM) ListComplianceSummariesRequest(input *ListComplianceSummariesInput) (req *request.Request, output *ListComplianceSummariesOutput) { - op := &request.Operation{ - Name: opListComplianceSummaries, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &ListComplianceSummariesInput{} - } - - output = &ListComplianceSummariesOutput{} - req = c.newRequest(op, input, output) - return -} - -// ListComplianceSummaries API operation for Amazon Simple Systems Manager (SSM). -// -// Returns a summary count of compliant and non-compliant resources for a compliance -// type. For example, this call can return State Manager associations, patches, -// or custom compliance types according to the filter criteria that you specify. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ListComplianceSummaries for usage and error information. -// -// Returned Error Types: -// * InvalidFilter -// The filter name is not valid. Verify the you entered the correct name and -// try again. -// -// * InvalidNextToken -// The specified token is not valid. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListComplianceSummaries -func (c *SSM) ListComplianceSummaries(input *ListComplianceSummariesInput) (*ListComplianceSummariesOutput, error) { - req, out := c.ListComplianceSummariesRequest(input) - return out, req.Send() -} - -// ListComplianceSummariesWithContext is the same as ListComplianceSummaries with the addition of -// the ability to pass a context and additional request options. -// -// See ListComplianceSummaries for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListComplianceSummariesWithContext(ctx aws.Context, input *ListComplianceSummariesInput, opts ...request.Option) (*ListComplianceSummariesOutput, error) { - req, out := c.ListComplianceSummariesRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// ListComplianceSummariesPages iterates over the pages of a ListComplianceSummaries operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListComplianceSummaries method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListComplianceSummaries operation. -// pageNum := 0 -// err := client.ListComplianceSummariesPages(params, -// func(page *ssm.ListComplianceSummariesOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) ListComplianceSummariesPages(input *ListComplianceSummariesInput, fn func(*ListComplianceSummariesOutput, bool) bool) error { - return c.ListComplianceSummariesPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListComplianceSummariesPagesWithContext same as ListComplianceSummariesPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListComplianceSummariesPagesWithContext(ctx aws.Context, input *ListComplianceSummariesInput, fn func(*ListComplianceSummariesOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListComplianceSummariesInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListComplianceSummariesRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListComplianceSummariesOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListDocumentMetadataHistory = "ListDocumentMetadataHistory" - -// ListDocumentMetadataHistoryRequest generates a "aws/request.Request" representing the -// client's request for the ListDocumentMetadataHistory operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListDocumentMetadataHistory for more information on using the ListDocumentMetadataHistory -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListDocumentMetadataHistoryRequest method. -// req, resp := client.ListDocumentMetadataHistoryRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListDocumentMetadataHistory -func (c *SSM) ListDocumentMetadataHistoryRequest(input *ListDocumentMetadataHistoryInput) (req *request.Request, output *ListDocumentMetadataHistoryOutput) { - op := &request.Operation{ - Name: opListDocumentMetadataHistory, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &ListDocumentMetadataHistoryInput{} - } - - output = &ListDocumentMetadataHistoryOutput{} - req = c.newRequest(op, input, output) - return -} - -// ListDocumentMetadataHistory API operation for Amazon Simple Systems Manager (SSM). -// -// Information about approval reviews for a version of an SSM document. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ListDocumentMetadataHistory for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidDocumentVersion -// The document version is not valid or does not exist. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListDocumentMetadataHistory -func (c *SSM) ListDocumentMetadataHistory(input *ListDocumentMetadataHistoryInput) (*ListDocumentMetadataHistoryOutput, error) { - req, out := c.ListDocumentMetadataHistoryRequest(input) - return out, req.Send() -} - -// ListDocumentMetadataHistoryWithContext is the same as ListDocumentMetadataHistory with the addition of -// the ability to pass a context and additional request options. -// -// See ListDocumentMetadataHistory for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListDocumentMetadataHistoryWithContext(ctx aws.Context, input *ListDocumentMetadataHistoryInput, opts ...request.Option) (*ListDocumentMetadataHistoryOutput, error) { - req, out := c.ListDocumentMetadataHistoryRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opListDocumentVersions = "ListDocumentVersions" - -// ListDocumentVersionsRequest generates a "aws/request.Request" representing the -// client's request for the ListDocumentVersions operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListDocumentVersions for more information on using the ListDocumentVersions -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListDocumentVersionsRequest method. -// req, resp := client.ListDocumentVersionsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListDocumentVersions -func (c *SSM) ListDocumentVersionsRequest(input *ListDocumentVersionsInput) (req *request.Request, output *ListDocumentVersionsOutput) { - op := &request.Operation{ - Name: opListDocumentVersions, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &ListDocumentVersionsInput{} - } - - output = &ListDocumentVersionsOutput{} - req = c.newRequest(op, input, output) - return -} - -// ListDocumentVersions API operation for Amazon Simple Systems Manager (SSM). -// -// List all versions for a document. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ListDocumentVersions for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidNextToken -// The specified token is not valid. -// -// * InvalidDocument -// The specified document does not exist. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListDocumentVersions -func (c *SSM) ListDocumentVersions(input *ListDocumentVersionsInput) (*ListDocumentVersionsOutput, error) { - req, out := c.ListDocumentVersionsRequest(input) - return out, req.Send() -} - -// ListDocumentVersionsWithContext is the same as ListDocumentVersions with the addition of -// the ability to pass a context and additional request options. -// -// See ListDocumentVersions for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListDocumentVersionsWithContext(ctx aws.Context, input *ListDocumentVersionsInput, opts ...request.Option) (*ListDocumentVersionsOutput, error) { - req, out := c.ListDocumentVersionsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// ListDocumentVersionsPages iterates over the pages of a ListDocumentVersions operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListDocumentVersions method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListDocumentVersions operation. -// pageNum := 0 -// err := client.ListDocumentVersionsPages(params, -// func(page *ssm.ListDocumentVersionsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) ListDocumentVersionsPages(input *ListDocumentVersionsInput, fn func(*ListDocumentVersionsOutput, bool) bool) error { - return c.ListDocumentVersionsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListDocumentVersionsPagesWithContext same as ListDocumentVersionsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListDocumentVersionsPagesWithContext(ctx aws.Context, input *ListDocumentVersionsInput, fn func(*ListDocumentVersionsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListDocumentVersionsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListDocumentVersionsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListDocumentVersionsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListDocuments = "ListDocuments" - -// ListDocumentsRequest generates a "aws/request.Request" representing the -// client's request for the ListDocuments operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListDocuments for more information on using the ListDocuments -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListDocumentsRequest method. -// req, resp := client.ListDocumentsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListDocuments -func (c *SSM) ListDocumentsRequest(input *ListDocumentsInput) (req *request.Request, output *ListDocumentsOutput) { - op := &request.Operation{ - Name: opListDocuments, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &ListDocumentsInput{} - } - - output = &ListDocumentsOutput{} - req = c.newRequest(op, input, output) - return -} - -// ListDocuments API operation for Amazon Simple Systems Manager (SSM). -// -// Returns all Systems Manager (SSM) documents in the current AWS account and -// Region. You can limit the results of this request by using a filter. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ListDocuments for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidNextToken -// The specified token is not valid. -// -// * InvalidFilterKey -// The specified key is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListDocuments -func (c *SSM) ListDocuments(input *ListDocumentsInput) (*ListDocumentsOutput, error) { - req, out := c.ListDocumentsRequest(input) - return out, req.Send() -} - -// ListDocumentsWithContext is the same as ListDocuments with the addition of -// the ability to pass a context and additional request options. -// -// See ListDocuments for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListDocumentsWithContext(ctx aws.Context, input *ListDocumentsInput, opts ...request.Option) (*ListDocumentsOutput, error) { - req, out := c.ListDocumentsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// ListDocumentsPages iterates over the pages of a ListDocuments operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListDocuments method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListDocuments operation. -// pageNum := 0 -// err := client.ListDocumentsPages(params, -// func(page *ssm.ListDocumentsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) ListDocumentsPages(input *ListDocumentsInput, fn func(*ListDocumentsOutput, bool) bool) error { - return c.ListDocumentsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListDocumentsPagesWithContext same as ListDocumentsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListDocumentsPagesWithContext(ctx aws.Context, input *ListDocumentsInput, fn func(*ListDocumentsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListDocumentsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListDocumentsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListDocumentsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListInventoryEntries = "ListInventoryEntries" - -// ListInventoryEntriesRequest generates a "aws/request.Request" representing the -// client's request for the ListInventoryEntries operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListInventoryEntries for more information on using the ListInventoryEntries -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListInventoryEntriesRequest method. -// req, resp := client.ListInventoryEntriesRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListInventoryEntries -func (c *SSM) ListInventoryEntriesRequest(input *ListInventoryEntriesInput) (req *request.Request, output *ListInventoryEntriesOutput) { - op := &request.Operation{ - Name: opListInventoryEntries, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &ListInventoryEntriesInput{} - } - - output = &ListInventoryEntriesOutput{} - req = c.newRequest(op, input, output) - return -} - -// ListInventoryEntries API operation for Amazon Simple Systems Manager (SSM). -// -// A list of inventory items returned by the request. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ListInventoryEntries for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * InvalidTypeNameException -// The parameter type name is not valid. -// -// * InvalidFilter -// The filter name is not valid. Verify the you entered the correct name and -// try again. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListInventoryEntries -func (c *SSM) ListInventoryEntries(input *ListInventoryEntriesInput) (*ListInventoryEntriesOutput, error) { - req, out := c.ListInventoryEntriesRequest(input) - return out, req.Send() -} - -// ListInventoryEntriesWithContext is the same as ListInventoryEntries with the addition of -// the ability to pass a context and additional request options. -// -// See ListInventoryEntries for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListInventoryEntriesWithContext(ctx aws.Context, input *ListInventoryEntriesInput, opts ...request.Option) (*ListInventoryEntriesOutput, error) { - req, out := c.ListInventoryEntriesRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opListOpsItemEvents = "ListOpsItemEvents" - -// ListOpsItemEventsRequest generates a "aws/request.Request" representing the -// client's request for the ListOpsItemEvents operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListOpsItemEvents for more information on using the ListOpsItemEvents -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListOpsItemEventsRequest method. -// req, resp := client.ListOpsItemEventsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListOpsItemEvents -func (c *SSM) ListOpsItemEventsRequest(input *ListOpsItemEventsInput) (req *request.Request, output *ListOpsItemEventsOutput) { - op := &request.Operation{ - Name: opListOpsItemEvents, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &ListOpsItemEventsInput{} - } - - output = &ListOpsItemEventsOutput{} - req = c.newRequest(op, input, output) - return -} - -// ListOpsItemEvents API operation for Amazon Simple Systems Manager (SSM). -// -// Returns a list of all OpsItem events in the current AWS account and Region. -// You can limit the results to events associated with specific OpsItems by -// specifying a filter. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ListOpsItemEvents for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * OpsItemNotFoundException -// The specified OpsItem ID doesn't exist. Verify the ID and try again. -// -// * OpsItemLimitExceededException -// The request caused OpsItems to exceed one or more quotas. For information -// about OpsItem quotas, see What are the resource limits for OpsCenter? (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-learn-more.html#OpsCenter-learn-more-limits). -// -// * OpsItemInvalidParameterException -// A specified parameter argument isn't valid. Verify the available arguments -// and try again. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListOpsItemEvents -func (c *SSM) ListOpsItemEvents(input *ListOpsItemEventsInput) (*ListOpsItemEventsOutput, error) { - req, out := c.ListOpsItemEventsRequest(input) - return out, req.Send() -} - -// ListOpsItemEventsWithContext is the same as ListOpsItemEvents with the addition of -// the ability to pass a context and additional request options. -// -// See ListOpsItemEvents for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListOpsItemEventsWithContext(ctx aws.Context, input *ListOpsItemEventsInput, opts ...request.Option) (*ListOpsItemEventsOutput, error) { - req, out := c.ListOpsItemEventsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// ListOpsItemEventsPages iterates over the pages of a ListOpsItemEvents operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListOpsItemEvents method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListOpsItemEvents operation. -// pageNum := 0 -// err := client.ListOpsItemEventsPages(params, -// func(page *ssm.ListOpsItemEventsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) ListOpsItemEventsPages(input *ListOpsItemEventsInput, fn func(*ListOpsItemEventsOutput, bool) bool) error { - return c.ListOpsItemEventsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListOpsItemEventsPagesWithContext same as ListOpsItemEventsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListOpsItemEventsPagesWithContext(ctx aws.Context, input *ListOpsItemEventsInput, fn func(*ListOpsItemEventsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListOpsItemEventsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListOpsItemEventsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListOpsItemEventsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListOpsMetadata = "ListOpsMetadata" - -// ListOpsMetadataRequest generates a "aws/request.Request" representing the -// client's request for the ListOpsMetadata operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListOpsMetadata for more information on using the ListOpsMetadata -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListOpsMetadataRequest method. -// req, resp := client.ListOpsMetadataRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListOpsMetadata -func (c *SSM) ListOpsMetadataRequest(input *ListOpsMetadataInput) (req *request.Request, output *ListOpsMetadataOutput) { - op := &request.Operation{ - Name: opListOpsMetadata, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &ListOpsMetadataInput{} - } - - output = &ListOpsMetadataOutput{} - req = c.newRequest(op, input, output) - return -} - -// ListOpsMetadata API operation for Amazon Simple Systems Manager (SSM). -// -// Systems Manager calls this API action when displaying all Application Manager -// OpsMetadata objects or blobs. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ListOpsMetadata for usage and error information. -// -// Returned Error Types: -// * OpsMetadataInvalidArgumentException -// One of the arguments passed is invalid. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListOpsMetadata -func (c *SSM) ListOpsMetadata(input *ListOpsMetadataInput) (*ListOpsMetadataOutput, error) { - req, out := c.ListOpsMetadataRequest(input) - return out, req.Send() -} - -// ListOpsMetadataWithContext is the same as ListOpsMetadata with the addition of -// the ability to pass a context and additional request options. -// -// See ListOpsMetadata for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListOpsMetadataWithContext(ctx aws.Context, input *ListOpsMetadataInput, opts ...request.Option) (*ListOpsMetadataOutput, error) { - req, out := c.ListOpsMetadataRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// ListOpsMetadataPages iterates over the pages of a ListOpsMetadata operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListOpsMetadata method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListOpsMetadata operation. -// pageNum := 0 -// err := client.ListOpsMetadataPages(params, -// func(page *ssm.ListOpsMetadataOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) ListOpsMetadataPages(input *ListOpsMetadataInput, fn func(*ListOpsMetadataOutput, bool) bool) error { - return c.ListOpsMetadataPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListOpsMetadataPagesWithContext same as ListOpsMetadataPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListOpsMetadataPagesWithContext(ctx aws.Context, input *ListOpsMetadataInput, fn func(*ListOpsMetadataOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListOpsMetadataInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListOpsMetadataRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListOpsMetadataOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListResourceComplianceSummaries = "ListResourceComplianceSummaries" - -// ListResourceComplianceSummariesRequest generates a "aws/request.Request" representing the -// client's request for the ListResourceComplianceSummaries operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListResourceComplianceSummaries for more information on using the ListResourceComplianceSummaries -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListResourceComplianceSummariesRequest method. -// req, resp := client.ListResourceComplianceSummariesRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListResourceComplianceSummaries -func (c *SSM) ListResourceComplianceSummariesRequest(input *ListResourceComplianceSummariesInput) (req *request.Request, output *ListResourceComplianceSummariesOutput) { - op := &request.Operation{ - Name: opListResourceComplianceSummaries, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &ListResourceComplianceSummariesInput{} - } - - output = &ListResourceComplianceSummariesOutput{} - req = c.newRequest(op, input, output) - return -} - -// ListResourceComplianceSummaries API operation for Amazon Simple Systems Manager (SSM). -// -// Returns a resource-level summary count. The summary includes information -// about compliant and non-compliant statuses and detailed compliance-item severity -// counts, according to the filter criteria you specify. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ListResourceComplianceSummaries for usage and error information. -// -// Returned Error Types: -// * InvalidFilter -// The filter name is not valid. Verify the you entered the correct name and -// try again. -// -// * InvalidNextToken -// The specified token is not valid. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListResourceComplianceSummaries -func (c *SSM) ListResourceComplianceSummaries(input *ListResourceComplianceSummariesInput) (*ListResourceComplianceSummariesOutput, error) { - req, out := c.ListResourceComplianceSummariesRequest(input) - return out, req.Send() -} - -// ListResourceComplianceSummariesWithContext is the same as ListResourceComplianceSummaries with the addition of -// the ability to pass a context and additional request options. -// -// See ListResourceComplianceSummaries for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListResourceComplianceSummariesWithContext(ctx aws.Context, input *ListResourceComplianceSummariesInput, opts ...request.Option) (*ListResourceComplianceSummariesOutput, error) { - req, out := c.ListResourceComplianceSummariesRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// ListResourceComplianceSummariesPages iterates over the pages of a ListResourceComplianceSummaries operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListResourceComplianceSummaries method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListResourceComplianceSummaries operation. -// pageNum := 0 -// err := client.ListResourceComplianceSummariesPages(params, -// func(page *ssm.ListResourceComplianceSummariesOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) ListResourceComplianceSummariesPages(input *ListResourceComplianceSummariesInput, fn func(*ListResourceComplianceSummariesOutput, bool) bool) error { - return c.ListResourceComplianceSummariesPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListResourceComplianceSummariesPagesWithContext same as ListResourceComplianceSummariesPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListResourceComplianceSummariesPagesWithContext(ctx aws.Context, input *ListResourceComplianceSummariesInput, fn func(*ListResourceComplianceSummariesOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListResourceComplianceSummariesInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListResourceComplianceSummariesRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListResourceComplianceSummariesOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListResourceDataSync = "ListResourceDataSync" - -// ListResourceDataSyncRequest generates a "aws/request.Request" representing the -// client's request for the ListResourceDataSync operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListResourceDataSync for more information on using the ListResourceDataSync -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListResourceDataSyncRequest method. -// req, resp := client.ListResourceDataSyncRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListResourceDataSync -func (c *SSM) ListResourceDataSyncRequest(input *ListResourceDataSyncInput) (req *request.Request, output *ListResourceDataSyncOutput) { - op := &request.Operation{ - Name: opListResourceDataSync, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &ListResourceDataSyncInput{} - } - - output = &ListResourceDataSyncOutput{} - req = c.newRequest(op, input, output) - return -} - -// ListResourceDataSync API operation for Amazon Simple Systems Manager (SSM). -// -// Lists your resource data sync configurations. Includes information about -// the last time a sync attempted to start, the last sync status, and the last -// time a sync successfully completed. -// -// The number of sync configurations might be too large to return using a single -// call to ListResourceDataSync. You can limit the number of sync configurations -// returned by using the MaxResults parameter. To determine whether there are -// more sync configurations to list, check the value of NextToken in the output. -// If there are more sync configurations to list, you can request them by specifying -// the NextToken returned in the call to the parameter of a subsequent call. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ListResourceDataSync for usage and error information. -// -// Returned Error Types: -// * ResourceDataSyncInvalidConfigurationException -// The specified sync configuration is invalid. -// -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidNextToken -// The specified token is not valid. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListResourceDataSync -func (c *SSM) ListResourceDataSync(input *ListResourceDataSyncInput) (*ListResourceDataSyncOutput, error) { - req, out := c.ListResourceDataSyncRequest(input) - return out, req.Send() -} - -// ListResourceDataSyncWithContext is the same as ListResourceDataSync with the addition of -// the ability to pass a context and additional request options. -// -// See ListResourceDataSync for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListResourceDataSyncWithContext(ctx aws.Context, input *ListResourceDataSyncInput, opts ...request.Option) (*ListResourceDataSyncOutput, error) { - req, out := c.ListResourceDataSyncRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// ListResourceDataSyncPages iterates over the pages of a ListResourceDataSync operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListResourceDataSync method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListResourceDataSync operation. -// pageNum := 0 -// err := client.ListResourceDataSyncPages(params, -// func(page *ssm.ListResourceDataSyncOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSM) ListResourceDataSyncPages(input *ListResourceDataSyncInput, fn func(*ListResourceDataSyncOutput, bool) bool) error { - return c.ListResourceDataSyncPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListResourceDataSyncPagesWithContext same as ListResourceDataSyncPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListResourceDataSyncPagesWithContext(ctx aws.Context, input *ListResourceDataSyncInput, fn func(*ListResourceDataSyncOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListResourceDataSyncInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListResourceDataSyncRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListResourceDataSyncOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListTagsForResource = "ListTagsForResource" - -// ListTagsForResourceRequest generates a "aws/request.Request" representing the -// client's request for the ListTagsForResource operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListTagsForResource for more information on using the ListTagsForResource -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListTagsForResourceRequest method. -// req, resp := client.ListTagsForResourceRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListTagsForResource -func (c *SSM) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { - op := &request.Operation{ - Name: opListTagsForResource, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &ListTagsForResourceInput{} - } - - output = &ListTagsForResourceOutput{} - req = c.newRequest(op, input, output) - return -} - -// ListTagsForResource API operation for Amazon Simple Systems Manager (SSM). -// -// Returns a list of the tags assigned to the specified resource. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ListTagsForResource for usage and error information. -// -// Returned Error Types: -// * InvalidResourceType -// The resource type is not valid. For example, if you are attempting to tag -// an instance, the instance must be a registered, managed instance. -// -// * InvalidResourceId -// The resource ID is not valid. Verify that you entered the correct ID and -// try again. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListTagsForResource -func (c *SSM) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { - req, out := c.ListTagsForResourceRequest(input) - return out, req.Send() -} - -// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of -// the ability to pass a context and additional request options. -// -// See ListTagsForResource for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { - req, out := c.ListTagsForResourceRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opModifyDocumentPermission = "ModifyDocumentPermission" - -// ModifyDocumentPermissionRequest generates a "aws/request.Request" representing the -// client's request for the ModifyDocumentPermission operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ModifyDocumentPermission for more information on using the ModifyDocumentPermission -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ModifyDocumentPermissionRequest method. -// req, resp := client.ModifyDocumentPermissionRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ModifyDocumentPermission -func (c *SSM) ModifyDocumentPermissionRequest(input *ModifyDocumentPermissionInput) (req *request.Request, output *ModifyDocumentPermissionOutput) { - op := &request.Operation{ - Name: opModifyDocumentPermission, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &ModifyDocumentPermissionInput{} - } - - output = &ModifyDocumentPermissionOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// ModifyDocumentPermission API operation for Amazon Simple Systems Manager (SSM). -// -// Shares a Systems Manager document publicly or privately. If you share a document -// privately, you must specify the AWS user account IDs for those people who -// can use the document. If you share a document publicly, you must specify -// All as the account ID. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ModifyDocumentPermission for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidPermissionType -// The permission type is not supported. Share is the only supported permission -// type. -// -// * DocumentPermissionLimit -// The document cannot be shared with more AWS user accounts. You can share -// a document with a maximum of 20 accounts. You can publicly share up to five -// documents. If you need to increase this limit, contact AWS Support. -// -// * DocumentLimitExceeded -// You can have at most 500 active Systems Manager documents. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ModifyDocumentPermission -func (c *SSM) ModifyDocumentPermission(input *ModifyDocumentPermissionInput) (*ModifyDocumentPermissionOutput, error) { - req, out := c.ModifyDocumentPermissionRequest(input) - return out, req.Send() -} - -// ModifyDocumentPermissionWithContext is the same as ModifyDocumentPermission with the addition of -// the ability to pass a context and additional request options. -// -// See ModifyDocumentPermission for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ModifyDocumentPermissionWithContext(ctx aws.Context, input *ModifyDocumentPermissionInput, opts ...request.Option) (*ModifyDocumentPermissionOutput, error) { - req, out := c.ModifyDocumentPermissionRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opPutComplianceItems = "PutComplianceItems" - -// PutComplianceItemsRequest generates a "aws/request.Request" representing the -// client's request for the PutComplianceItems operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See PutComplianceItems for more information on using the PutComplianceItems -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the PutComplianceItemsRequest method. -// req, resp := client.PutComplianceItemsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PutComplianceItems -func (c *SSM) PutComplianceItemsRequest(input *PutComplianceItemsInput) (req *request.Request, output *PutComplianceItemsOutput) { - op := &request.Operation{ - Name: opPutComplianceItems, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &PutComplianceItemsInput{} - } - - output = &PutComplianceItemsOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// PutComplianceItems API operation for Amazon Simple Systems Manager (SSM). -// -// Registers a compliance type and other compliance details on a designated -// resource. This action lets you register custom compliance details with a -// resource. This call overwrites existing compliance information on the resource, -// so you must provide a full list of compliance items each time that you send -// the request. -// -// ComplianceType can be one of the following: -// -// * ExecutionId: The execution ID when the patch, association, or custom -// compliance item was applied. -// -// * ExecutionType: Specify patch, association, or Custom:string. -// -// * ExecutionTime. The time the patch, association, or custom compliance -// item was applied to the instance. -// -// * Id: The patch, association, or custom compliance ID. -// -// * Title: A title. -// -// * Status: The status of the compliance item. For example, approved for -// patches, or Failed for associations. -// -// * Severity: A patch severity. For example, critical. -// -// * DocumentName: A SSM document name. For example, AWS-RunPatchBaseline. -// -// * DocumentVersion: An SSM document version number. For example, 4. -// -// * Classification: A patch classification. For example, security updates. -// -// * PatchBaselineId: A patch baseline ID. -// -// * PatchSeverity: A patch severity. For example, Critical. -// -// * PatchState: A patch state. For example, InstancesWithFailedPatches. -// -// * PatchGroup: The name of a patch group. -// -// * InstalledTime: The time the association, patch, or custom compliance -// item was applied to the resource. Specify the time by using the following -// format: yyyy-MM-dd'T'HH:mm:ss'Z' -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation PutComplianceItems for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidItemContentException -// One or more content items is not valid. -// -// * TotalSizeLimitExceededException -// The size of inventory data has exceeded the total size limit for the resource. -// -// * ItemSizeLimitExceededException -// The inventory item size has exceeded the size limit. -// -// * ComplianceTypeCountLimitExceededException -// You specified too many custom compliance types. You can specify a maximum -// of 10 different types. -// -// * InvalidResourceType -// The resource type is not valid. For example, if you are attempting to tag -// an instance, the instance must be a registered, managed instance. -// -// * InvalidResourceId -// The resource ID is not valid. Verify that you entered the correct ID and -// try again. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PutComplianceItems -func (c *SSM) PutComplianceItems(input *PutComplianceItemsInput) (*PutComplianceItemsOutput, error) { - req, out := c.PutComplianceItemsRequest(input) - return out, req.Send() -} - -// PutComplianceItemsWithContext is the same as PutComplianceItems with the addition of -// the ability to pass a context and additional request options. -// -// See PutComplianceItems for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) PutComplianceItemsWithContext(ctx aws.Context, input *PutComplianceItemsInput, opts ...request.Option) (*PutComplianceItemsOutput, error) { - req, out := c.PutComplianceItemsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opPutInventory = "PutInventory" - -// PutInventoryRequest generates a "aws/request.Request" representing the -// client's request for the PutInventory operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See PutInventory for more information on using the PutInventory -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the PutInventoryRequest method. -// req, resp := client.PutInventoryRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PutInventory -func (c *SSM) PutInventoryRequest(input *PutInventoryInput) (req *request.Request, output *PutInventoryOutput) { - op := &request.Operation{ - Name: opPutInventory, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &PutInventoryInput{} - } - - output = &PutInventoryOutput{} - req = c.newRequest(op, input, output) - return -} - -// PutInventory API operation for Amazon Simple Systems Manager (SSM). -// -// Bulk update custom inventory items on one more instance. The request adds -// an inventory item, if it doesn't already exist, or updates an inventory item, -// if it does exist. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation PutInventory for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * InvalidTypeNameException -// The parameter type name is not valid. -// -// * InvalidItemContentException -// One or more content items is not valid. -// -// * TotalSizeLimitExceededException -// The size of inventory data has exceeded the total size limit for the resource. -// -// * ItemSizeLimitExceededException -// The inventory item size has exceeded the size limit. -// -// * ItemContentMismatchException -// The inventory item has invalid content. -// -// * CustomSchemaCountLimitExceededException -// You have exceeded the limit for custom schemas. Delete one or more custom -// schemas and try again. -// -// * UnsupportedInventorySchemaVersionException -// Inventory item type schema version has to match supported versions in the -// service. Check output of GetInventorySchema to see the available schema version -// for each type. -// -// * UnsupportedInventoryItemContextException -// The Context attribute that you specified for the InventoryItem is not allowed -// for this inventory type. You can only use the Context attribute with inventory -// types like AWS:ComplianceItem. -// -// * InvalidInventoryItemContextException -// You specified invalid keys or values in the Context attribute for InventoryItem. -// Verify the keys and values, and try again. -// -// * SubTypeCountLimitExceededException -// The sub-type count exceeded the limit for the inventory type. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PutInventory -func (c *SSM) PutInventory(input *PutInventoryInput) (*PutInventoryOutput, error) { - req, out := c.PutInventoryRequest(input) - return out, req.Send() -} - -// PutInventoryWithContext is the same as PutInventory with the addition of -// the ability to pass a context and additional request options. -// -// See PutInventory for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) PutInventoryWithContext(ctx aws.Context, input *PutInventoryInput, opts ...request.Option) (*PutInventoryOutput, error) { - req, out := c.PutInventoryRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opPutParameter = "PutParameter" - -// PutParameterRequest generates a "aws/request.Request" representing the -// client's request for the PutParameter operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See PutParameter for more information on using the PutParameter -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the PutParameterRequest method. -// req, resp := client.PutParameterRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PutParameter -func (c *SSM) PutParameterRequest(input *PutParameterInput) (req *request.Request, output *PutParameterOutput) { - op := &request.Operation{ - Name: opPutParameter, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &PutParameterInput{} - } - - output = &PutParameterOutput{} - req = c.newRequest(op, input, output) - return -} - -// PutParameter API operation for Amazon Simple Systems Manager (SSM). -// -// Add a parameter to the system. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation PutParameter for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidKeyId -// The query key ID is not valid. -// -// * ParameterLimitExceeded -// You have exceeded the number of parameters for this AWS account. Delete one -// or more parameters and try again. -// -// * TooManyUpdates -// There are concurrent updates for a resource that supports one update at a -// time. -// -// * ParameterAlreadyExists -// The parameter already exists. You can't create duplicate parameters. -// -// * HierarchyLevelLimitExceededException -// A hierarchy can have a maximum of 15 levels. For more information, see Requirements -// and constraints for parameter names (https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html) -// in the AWS Systems Manager User Guide. -// -// * HierarchyTypeMismatchException -// Parameter Store does not support changing a parameter type in a hierarchy. -// For example, you can't change a parameter from a String type to a SecureString -// type. You must create a new, unique parameter. -// -// * InvalidAllowedPatternException -// The request does not meet the regular expression requirement. -// -// * ParameterMaxVersionLimitExceeded -// Parameter Store retains the 100 most recently created versions of a parameter. -// After this number of versions has been created, Parameter Store deletes the -// oldest version when a new one is created. However, if the oldest version -// has a label attached to it, Parameter Store will not delete the version and -// instead presents this error message: -// -// An error occurred (ParameterMaxVersionLimitExceeded) when calling the PutParameter -// operation: You attempted to create a new version of parameter-name by calling -// the PutParameter API with the overwrite flag. Version version-number, the -// oldest version, can't be deleted because it has a label associated with it. -// Move the label to another version of the parameter, and try again. -// -// This safeguard is to prevent parameter versions with mission critical labels -// assigned to them from being deleted. To continue creating new parameters, -// first move the label from the oldest version of the parameter to a newer -// one for use in your operations. For information about moving parameter labels, -// see Move a parameter label (console) (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-console-move) -// or Move a parameter label (CLI) (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-cli-move) -// in the AWS Systems Manager User Guide. -// -// * ParameterPatternMismatchException -// The parameter name is not valid. -// -// * UnsupportedParameterType -// The parameter type is not supported. -// -// * PoliciesLimitExceededException -// You specified more than the maximum number of allowed policies for the parameter. -// The maximum is 10. -// -// * InvalidPolicyTypeException -// The policy type is not supported. Parameter Store supports the following -// policy types: Expiration, ExpirationNotification, and NoChangeNotification. -// -// * InvalidPolicyAttributeException -// A policy attribute or its value is invalid. -// -// * IncompatiblePolicyException -// There is a conflict in the policies specified for this parameter. You can't, -// for example, specify two Expiration policies for a parameter. Review your -// policies, and try again. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PutParameter -func (c *SSM) PutParameter(input *PutParameterInput) (*PutParameterOutput, error) { - req, out := c.PutParameterRequest(input) - return out, req.Send() -} - -// PutParameterWithContext is the same as PutParameter with the addition of -// the ability to pass a context and additional request options. -// -// See PutParameter for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) PutParameterWithContext(ctx aws.Context, input *PutParameterInput, opts ...request.Option) (*PutParameterOutput, error) { - req, out := c.PutParameterRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opRegisterDefaultPatchBaseline = "RegisterDefaultPatchBaseline" - -// RegisterDefaultPatchBaselineRequest generates a "aws/request.Request" representing the -// client's request for the RegisterDefaultPatchBaseline operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See RegisterDefaultPatchBaseline for more information on using the RegisterDefaultPatchBaseline -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the RegisterDefaultPatchBaselineRequest method. -// req, resp := client.RegisterDefaultPatchBaselineRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterDefaultPatchBaseline -func (c *SSM) RegisterDefaultPatchBaselineRequest(input *RegisterDefaultPatchBaselineInput) (req *request.Request, output *RegisterDefaultPatchBaselineOutput) { - op := &request.Operation{ - Name: opRegisterDefaultPatchBaseline, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &RegisterDefaultPatchBaselineInput{} - } - - output = &RegisterDefaultPatchBaselineOutput{} - req = c.newRequest(op, input, output) - return -} - -// RegisterDefaultPatchBaseline API operation for Amazon Simple Systems Manager (SSM). -// -// Defines the default patch baseline for the relevant operating system. -// -// To reset the AWS predefined patch baseline as the default, specify the full -// patch baseline ARN as the baseline ID value. For example, for CentOS, specify -// arn:aws:ssm:us-east-2:733109147000:patchbaseline/pb-0574b43a65ea646ed instead -// of pb-0574b43a65ea646ed. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation RegisterDefaultPatchBaseline for usage and error information. -// -// Returned Error Types: -// * InvalidResourceId -// The resource ID is not valid. Verify that you entered the correct ID and -// try again. -// -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterDefaultPatchBaseline -func (c *SSM) RegisterDefaultPatchBaseline(input *RegisterDefaultPatchBaselineInput) (*RegisterDefaultPatchBaselineOutput, error) { - req, out := c.RegisterDefaultPatchBaselineRequest(input) - return out, req.Send() -} - -// RegisterDefaultPatchBaselineWithContext is the same as RegisterDefaultPatchBaseline with the addition of -// the ability to pass a context and additional request options. -// -// See RegisterDefaultPatchBaseline for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) RegisterDefaultPatchBaselineWithContext(ctx aws.Context, input *RegisterDefaultPatchBaselineInput, opts ...request.Option) (*RegisterDefaultPatchBaselineOutput, error) { - req, out := c.RegisterDefaultPatchBaselineRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opRegisterPatchBaselineForPatchGroup = "RegisterPatchBaselineForPatchGroup" - -// RegisterPatchBaselineForPatchGroupRequest generates a "aws/request.Request" representing the -// client's request for the RegisterPatchBaselineForPatchGroup operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See RegisterPatchBaselineForPatchGroup for more information on using the RegisterPatchBaselineForPatchGroup -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the RegisterPatchBaselineForPatchGroupRequest method. -// req, resp := client.RegisterPatchBaselineForPatchGroupRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterPatchBaselineForPatchGroup -func (c *SSM) RegisterPatchBaselineForPatchGroupRequest(input *RegisterPatchBaselineForPatchGroupInput) (req *request.Request, output *RegisterPatchBaselineForPatchGroupOutput) { - op := &request.Operation{ - Name: opRegisterPatchBaselineForPatchGroup, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &RegisterPatchBaselineForPatchGroupInput{} - } - - output = &RegisterPatchBaselineForPatchGroupOutput{} - req = c.newRequest(op, input, output) - return -} - -// RegisterPatchBaselineForPatchGroup API operation for Amazon Simple Systems Manager (SSM). -// -// Registers a patch baseline for a patch group. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation RegisterPatchBaselineForPatchGroup for usage and error information. -// -// Returned Error Types: -// * AlreadyExistsException -// Error returned if an attempt is made to register a patch group with a patch -// baseline that is already registered with a different patch baseline. -// -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InvalidResourceId -// The resource ID is not valid. Verify that you entered the correct ID and -// try again. -// -// * ResourceLimitExceededException -// Error returned when the caller has exceeded the default resource quotas. -// For example, too many maintenance windows or patch baselines have been created. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterPatchBaselineForPatchGroup -func (c *SSM) RegisterPatchBaselineForPatchGroup(input *RegisterPatchBaselineForPatchGroupInput) (*RegisterPatchBaselineForPatchGroupOutput, error) { - req, out := c.RegisterPatchBaselineForPatchGroupRequest(input) - return out, req.Send() -} - -// RegisterPatchBaselineForPatchGroupWithContext is the same as RegisterPatchBaselineForPatchGroup with the addition of -// the ability to pass a context and additional request options. -// -// See RegisterPatchBaselineForPatchGroup for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) RegisterPatchBaselineForPatchGroupWithContext(ctx aws.Context, input *RegisterPatchBaselineForPatchGroupInput, opts ...request.Option) (*RegisterPatchBaselineForPatchGroupOutput, error) { - req, out := c.RegisterPatchBaselineForPatchGroupRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opRegisterTargetWithMaintenanceWindow = "RegisterTargetWithMaintenanceWindow" - -// RegisterTargetWithMaintenanceWindowRequest generates a "aws/request.Request" representing the -// client's request for the RegisterTargetWithMaintenanceWindow operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See RegisterTargetWithMaintenanceWindow for more information on using the RegisterTargetWithMaintenanceWindow -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the RegisterTargetWithMaintenanceWindowRequest method. -// req, resp := client.RegisterTargetWithMaintenanceWindowRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterTargetWithMaintenanceWindow -func (c *SSM) RegisterTargetWithMaintenanceWindowRequest(input *RegisterTargetWithMaintenanceWindowInput) (req *request.Request, output *RegisterTargetWithMaintenanceWindowOutput) { - op := &request.Operation{ - Name: opRegisterTargetWithMaintenanceWindow, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &RegisterTargetWithMaintenanceWindowInput{} - } - - output = &RegisterTargetWithMaintenanceWindowOutput{} - req = c.newRequest(op, input, output) - return -} - -// RegisterTargetWithMaintenanceWindow API operation for Amazon Simple Systems Manager (SSM). -// -// Registers a target with a maintenance window. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation RegisterTargetWithMaintenanceWindow for usage and error information. -// -// Returned Error Types: -// * IdempotentParameterMismatch -// Error returned when an idempotent operation is retried and the parameters -// don't match the original call to the API with the same idempotency token. -// -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * ResourceLimitExceededException -// Error returned when the caller has exceeded the default resource quotas. -// For example, too many maintenance windows or patch baselines have been created. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterTargetWithMaintenanceWindow -func (c *SSM) RegisterTargetWithMaintenanceWindow(input *RegisterTargetWithMaintenanceWindowInput) (*RegisterTargetWithMaintenanceWindowOutput, error) { - req, out := c.RegisterTargetWithMaintenanceWindowRequest(input) - return out, req.Send() -} - -// RegisterTargetWithMaintenanceWindowWithContext is the same as RegisterTargetWithMaintenanceWindow with the addition of -// the ability to pass a context and additional request options. -// -// See RegisterTargetWithMaintenanceWindow for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) RegisterTargetWithMaintenanceWindowWithContext(ctx aws.Context, input *RegisterTargetWithMaintenanceWindowInput, opts ...request.Option) (*RegisterTargetWithMaintenanceWindowOutput, error) { - req, out := c.RegisterTargetWithMaintenanceWindowRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opRegisterTaskWithMaintenanceWindow = "RegisterTaskWithMaintenanceWindow" - -// RegisterTaskWithMaintenanceWindowRequest generates a "aws/request.Request" representing the -// client's request for the RegisterTaskWithMaintenanceWindow operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See RegisterTaskWithMaintenanceWindow for more information on using the RegisterTaskWithMaintenanceWindow -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the RegisterTaskWithMaintenanceWindowRequest method. -// req, resp := client.RegisterTaskWithMaintenanceWindowRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterTaskWithMaintenanceWindow -func (c *SSM) RegisterTaskWithMaintenanceWindowRequest(input *RegisterTaskWithMaintenanceWindowInput) (req *request.Request, output *RegisterTaskWithMaintenanceWindowOutput) { - op := &request.Operation{ - Name: opRegisterTaskWithMaintenanceWindow, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &RegisterTaskWithMaintenanceWindowInput{} - } - - output = &RegisterTaskWithMaintenanceWindowOutput{} - req = c.newRequest(op, input, output) - return -} - -// RegisterTaskWithMaintenanceWindow API operation for Amazon Simple Systems Manager (SSM). -// -// Adds a new task to a maintenance window. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation RegisterTaskWithMaintenanceWindow for usage and error information. -// -// Returned Error Types: -// * IdempotentParameterMismatch -// Error returned when an idempotent operation is retried and the parameters -// don't match the original call to the API with the same idempotency token. -// -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * ResourceLimitExceededException -// Error returned when the caller has exceeded the default resource quotas. -// For example, too many maintenance windows or patch baselines have been created. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * FeatureNotAvailableException -// You attempted to register a LAMBDA or STEP_FUNCTIONS task in a region where -// the corresponding service is not available. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterTaskWithMaintenanceWindow -func (c *SSM) RegisterTaskWithMaintenanceWindow(input *RegisterTaskWithMaintenanceWindowInput) (*RegisterTaskWithMaintenanceWindowOutput, error) { - req, out := c.RegisterTaskWithMaintenanceWindowRequest(input) - return out, req.Send() -} - -// RegisterTaskWithMaintenanceWindowWithContext is the same as RegisterTaskWithMaintenanceWindow with the addition of -// the ability to pass a context and additional request options. -// -// See RegisterTaskWithMaintenanceWindow for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) RegisterTaskWithMaintenanceWindowWithContext(ctx aws.Context, input *RegisterTaskWithMaintenanceWindowInput, opts ...request.Option) (*RegisterTaskWithMaintenanceWindowOutput, error) { - req, out := c.RegisterTaskWithMaintenanceWindowRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opRemoveTagsFromResource = "RemoveTagsFromResource" - -// RemoveTagsFromResourceRequest generates a "aws/request.Request" representing the -// client's request for the RemoveTagsFromResource operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See RemoveTagsFromResource for more information on using the RemoveTagsFromResource -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the RemoveTagsFromResourceRequest method. -// req, resp := client.RemoveTagsFromResourceRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RemoveTagsFromResource -func (c *SSM) RemoveTagsFromResourceRequest(input *RemoveTagsFromResourceInput) (req *request.Request, output *RemoveTagsFromResourceOutput) { - op := &request.Operation{ - Name: opRemoveTagsFromResource, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &RemoveTagsFromResourceInput{} - } - - output = &RemoveTagsFromResourceOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// RemoveTagsFromResource API operation for Amazon Simple Systems Manager (SSM). -// -// Removes tag keys from the specified resource. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation RemoveTagsFromResource for usage and error information. -// -// Returned Error Types: -// * InvalidResourceType -// The resource type is not valid. For example, if you are attempting to tag -// an instance, the instance must be a registered, managed instance. -// -// * InvalidResourceId -// The resource ID is not valid. Verify that you entered the correct ID and -// try again. -// -// * InternalServerError -// An error occurred on the server side. -// -// * TooManyUpdates -// There are concurrent updates for a resource that supports one update at a -// time. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RemoveTagsFromResource -func (c *SSM) RemoveTagsFromResource(input *RemoveTagsFromResourceInput) (*RemoveTagsFromResourceOutput, error) { - req, out := c.RemoveTagsFromResourceRequest(input) - return out, req.Send() -} - -// RemoveTagsFromResourceWithContext is the same as RemoveTagsFromResource with the addition of -// the ability to pass a context and additional request options. -// -// See RemoveTagsFromResource for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) RemoveTagsFromResourceWithContext(ctx aws.Context, input *RemoveTagsFromResourceInput, opts ...request.Option) (*RemoveTagsFromResourceOutput, error) { - req, out := c.RemoveTagsFromResourceRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opResetServiceSetting = "ResetServiceSetting" - -// ResetServiceSettingRequest generates a "aws/request.Request" representing the -// client's request for the ResetServiceSetting operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ResetServiceSetting for more information on using the ResetServiceSetting -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ResetServiceSettingRequest method. -// req, resp := client.ResetServiceSettingRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ResetServiceSetting -func (c *SSM) ResetServiceSettingRequest(input *ResetServiceSettingInput) (req *request.Request, output *ResetServiceSettingOutput) { - op := &request.Operation{ - Name: opResetServiceSetting, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &ResetServiceSettingInput{} - } - - output = &ResetServiceSettingOutput{} - req = c.newRequest(op, input, output) - return -} - -// ResetServiceSetting API operation for Amazon Simple Systems Manager (SSM). -// -// ServiceSetting is an account-level setting for an AWS service. This setting -// defines how a user interacts with or uses a service or a feature of a service. -// For example, if an AWS service charges money to the account based on feature -// or service usage, then the AWS service team might create a default setting -// of "false". This means the user can't use this feature unless they change -// the setting to "true" and intentionally opt in for a paid feature. -// -// Services map a SettingId object to a setting value. AWS services teams define -// the default value for a SettingId. You can't create a new SettingId, but -// you can overwrite the default value if you have the ssm:UpdateServiceSetting -// permission for the setting. Use the GetServiceSetting API action to view -// the current value. Use the UpdateServiceSetting API action to change the -// default setting. -// -// Reset the service setting for the account to the default value as provisioned -// by the AWS service team. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ResetServiceSetting for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * ServiceSettingNotFound -// The specified service setting was not found. Either the service name or the -// setting has not been provisioned by the AWS service team. -// -// * TooManyUpdates -// There are concurrent updates for a resource that supports one update at a -// time. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ResetServiceSetting -func (c *SSM) ResetServiceSetting(input *ResetServiceSettingInput) (*ResetServiceSettingOutput, error) { - req, out := c.ResetServiceSettingRequest(input) - return out, req.Send() -} - -// ResetServiceSettingWithContext is the same as ResetServiceSetting with the addition of -// the ability to pass a context and additional request options. -// -// See ResetServiceSetting for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ResetServiceSettingWithContext(ctx aws.Context, input *ResetServiceSettingInput, opts ...request.Option) (*ResetServiceSettingOutput, error) { - req, out := c.ResetServiceSettingRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opResumeSession = "ResumeSession" - -// ResumeSessionRequest generates a "aws/request.Request" representing the -// client's request for the ResumeSession operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ResumeSession for more information on using the ResumeSession -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ResumeSessionRequest method. -// req, resp := client.ResumeSessionRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ResumeSession -func (c *SSM) ResumeSessionRequest(input *ResumeSessionInput) (req *request.Request, output *ResumeSessionOutput) { - op := &request.Operation{ - Name: opResumeSession, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &ResumeSessionInput{} - } - - output = &ResumeSessionOutput{} - req = c.newRequest(op, input, output) - return -} - -// ResumeSession API operation for Amazon Simple Systems Manager (SSM). -// -// Reconnects a session to an instance after it has been disconnected. Connections -// can be resumed for disconnected sessions, but not terminated sessions. -// -// This command is primarily for use by client machines to automatically reconnect -// during intermittent network issues. It is not intended for any other use. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation ResumeSession for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ResumeSession -func (c *SSM) ResumeSession(input *ResumeSessionInput) (*ResumeSessionOutput, error) { - req, out := c.ResumeSessionRequest(input) - return out, req.Send() -} - -// ResumeSessionWithContext is the same as ResumeSession with the addition of -// the ability to pass a context and additional request options. -// -// See ResumeSession for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) ResumeSessionWithContext(ctx aws.Context, input *ResumeSessionInput, opts ...request.Option) (*ResumeSessionOutput, error) { - req, out := c.ResumeSessionRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opSendAutomationSignal = "SendAutomationSignal" - -// SendAutomationSignalRequest generates a "aws/request.Request" representing the -// client's request for the SendAutomationSignal operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See SendAutomationSignal for more information on using the SendAutomationSignal -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the SendAutomationSignalRequest method. -// req, resp := client.SendAutomationSignalRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/SendAutomationSignal -func (c *SSM) SendAutomationSignalRequest(input *SendAutomationSignalInput) (req *request.Request, output *SendAutomationSignalOutput) { - op := &request.Operation{ - Name: opSendAutomationSignal, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &SendAutomationSignalInput{} - } - - output = &SendAutomationSignalOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// SendAutomationSignal API operation for Amazon Simple Systems Manager (SSM). -// -// Sends a signal to an Automation execution to change the current behavior -// or status of the execution. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation SendAutomationSignal for usage and error information. -// -// Returned Error Types: -// * AutomationExecutionNotFoundException -// There is no automation execution information for the requested automation -// execution ID. -// -// * AutomationStepNotFoundException -// The specified step name and execution ID don't exist. Verify the information -// and try again. -// -// * InvalidAutomationSignalException -// The signal is not valid for the current Automation execution. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/SendAutomationSignal -func (c *SSM) SendAutomationSignal(input *SendAutomationSignalInput) (*SendAutomationSignalOutput, error) { - req, out := c.SendAutomationSignalRequest(input) - return out, req.Send() -} - -// SendAutomationSignalWithContext is the same as SendAutomationSignal with the addition of -// the ability to pass a context and additional request options. -// -// See SendAutomationSignal for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) SendAutomationSignalWithContext(ctx aws.Context, input *SendAutomationSignalInput, opts ...request.Option) (*SendAutomationSignalOutput, error) { - req, out := c.SendAutomationSignalRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opSendCommand = "SendCommand" - -// SendCommandRequest generates a "aws/request.Request" representing the -// client's request for the SendCommand operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See SendCommand for more information on using the SendCommand -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the SendCommandRequest method. -// req, resp := client.SendCommandRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/SendCommand -func (c *SSM) SendCommandRequest(input *SendCommandInput) (req *request.Request, output *SendCommandOutput) { - op := &request.Operation{ - Name: opSendCommand, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &SendCommandInput{} - } - - output = &SendCommandOutput{} - req = c.newRequest(op, input, output) - return -} - -// SendCommand API operation for Amazon Simple Systems Manager (SSM). -// -// Runs commands on one or more managed instances. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation SendCommand for usage and error information. -// -// Returned Error Types: -// * DuplicateInstanceId -// You cannot specify an instance ID in more than one association. -// -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidDocumentVersion -// The document version is not valid or does not exist. -// -// * InvalidOutputFolder -// The S3 bucket does not exist. -// -// * InvalidParameters -// You must specify values for all required parameters in the Systems Manager -// document. You can only supply values to parameters defined in the Systems -// Manager document. -// -// * UnsupportedPlatformType -// The document does not support the platform type of the given instance ID(s). -// For example, you sent an document for a Windows instance to a Linux instance. -// -// * MaxDocumentSizeExceeded -// The size limit of a document is 64 KB. -// -// * InvalidRole -// The role name can't contain invalid characters. Also verify that you specified -// an IAM role for notifications that includes the required trust policy. For -// information about configuring the IAM role for Run Command notifications, -// see Configuring Amazon SNS Notifications for Run Command (https://docs.aws.amazon.com/systems-manager/latest/userguide/rc-sns-notifications.html) -// in the AWS Systems Manager User Guide. -// -// * InvalidNotificationConfig -// One or more configuration items is not valid. Verify that a valid Amazon -// Resource Name (ARN) was provided for an Amazon SNS topic. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/SendCommand -func (c *SSM) SendCommand(input *SendCommandInput) (*SendCommandOutput, error) { - req, out := c.SendCommandRequest(input) - return out, req.Send() -} - -// SendCommandWithContext is the same as SendCommand with the addition of -// the ability to pass a context and additional request options. -// -// See SendCommand for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) SendCommandWithContext(ctx aws.Context, input *SendCommandInput, opts ...request.Option) (*SendCommandOutput, error) { - req, out := c.SendCommandRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opStartAssociationsOnce = "StartAssociationsOnce" - -// StartAssociationsOnceRequest generates a "aws/request.Request" representing the -// client's request for the StartAssociationsOnce operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See StartAssociationsOnce for more information on using the StartAssociationsOnce -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the StartAssociationsOnceRequest method. -// req, resp := client.StartAssociationsOnceRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StartAssociationsOnce -func (c *SSM) StartAssociationsOnceRequest(input *StartAssociationsOnceInput) (req *request.Request, output *StartAssociationsOnceOutput) { - op := &request.Operation{ - Name: opStartAssociationsOnce, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &StartAssociationsOnceInput{} - } - - output = &StartAssociationsOnceOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// StartAssociationsOnce API operation for Amazon Simple Systems Manager (SSM). -// -// Use this API action to run an association immediately and only one time. -// This action can be helpful when troubleshooting associations. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation StartAssociationsOnce for usage and error information. -// -// Returned Error Types: -// * InvalidAssociation -// The association is not valid or does not exist. -// -// * AssociationDoesNotExist -// The specified association does not exist. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StartAssociationsOnce -func (c *SSM) StartAssociationsOnce(input *StartAssociationsOnceInput) (*StartAssociationsOnceOutput, error) { - req, out := c.StartAssociationsOnceRequest(input) - return out, req.Send() -} - -// StartAssociationsOnceWithContext is the same as StartAssociationsOnce with the addition of -// the ability to pass a context and additional request options. -// -// See StartAssociationsOnce for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) StartAssociationsOnceWithContext(ctx aws.Context, input *StartAssociationsOnceInput, opts ...request.Option) (*StartAssociationsOnceOutput, error) { - req, out := c.StartAssociationsOnceRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opStartAutomationExecution = "StartAutomationExecution" - -// StartAutomationExecutionRequest generates a "aws/request.Request" representing the -// client's request for the StartAutomationExecution operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See StartAutomationExecution for more information on using the StartAutomationExecution -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the StartAutomationExecutionRequest method. -// req, resp := client.StartAutomationExecutionRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StartAutomationExecution -func (c *SSM) StartAutomationExecutionRequest(input *StartAutomationExecutionInput) (req *request.Request, output *StartAutomationExecutionOutput) { - op := &request.Operation{ - Name: opStartAutomationExecution, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &StartAutomationExecutionInput{} - } - - output = &StartAutomationExecutionOutput{} - req = c.newRequest(op, input, output) - return -} - -// StartAutomationExecution API operation for Amazon Simple Systems Manager (SSM). -// -// Initiates execution of an Automation document. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation StartAutomationExecution for usage and error information. -// -// Returned Error Types: -// * AutomationDefinitionNotFoundException -// An Automation document with the specified name could not be found. -// -// * InvalidAutomationExecutionParametersException -// The supplied parameters for invoking the specified Automation document are -// incorrect. For example, they may not match the set of parameters permitted -// for the specified Automation document. -// -// * AutomationExecutionLimitExceededException -// The number of simultaneously running Automation executions exceeded the allowable -// limit. -// -// * AutomationDefinitionVersionNotFoundException -// An Automation document with the specified name and version could not be found. -// -// * IdempotentParameterMismatch -// Error returned when an idempotent operation is retried and the parameters -// don't match the original call to the API with the same idempotency token. -// -// * InvalidTarget -// The target is not valid or does not exist. It might not be configured for -// Systems Manager or you might not have permission to perform the operation. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StartAutomationExecution -func (c *SSM) StartAutomationExecution(input *StartAutomationExecutionInput) (*StartAutomationExecutionOutput, error) { - req, out := c.StartAutomationExecutionRequest(input) - return out, req.Send() -} - -// StartAutomationExecutionWithContext is the same as StartAutomationExecution with the addition of -// the ability to pass a context and additional request options. -// -// See StartAutomationExecution for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) StartAutomationExecutionWithContext(ctx aws.Context, input *StartAutomationExecutionInput, opts ...request.Option) (*StartAutomationExecutionOutput, error) { - req, out := c.StartAutomationExecutionRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opStartChangeRequestExecution = "StartChangeRequestExecution" - -// StartChangeRequestExecutionRequest generates a "aws/request.Request" representing the -// client's request for the StartChangeRequestExecution operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See StartChangeRequestExecution for more information on using the StartChangeRequestExecution -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the StartChangeRequestExecutionRequest method. -// req, resp := client.StartChangeRequestExecutionRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StartChangeRequestExecution -func (c *SSM) StartChangeRequestExecutionRequest(input *StartChangeRequestExecutionInput) (req *request.Request, output *StartChangeRequestExecutionOutput) { - op := &request.Operation{ - Name: opStartChangeRequestExecution, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &StartChangeRequestExecutionInput{} - } - - output = &StartChangeRequestExecutionOutput{} - req = c.newRequest(op, input, output) - return -} - -// StartChangeRequestExecution API operation for Amazon Simple Systems Manager (SSM). -// -// Creates a change request for Change Manager. The runbooks (Automation documents) -// specified in the change request run only after all required approvals for -// the change request have been received. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation StartChangeRequestExecution for usage and error information. -// -// Returned Error Types: -// * AutomationDefinitionNotFoundException -// An Automation document with the specified name could not be found. -// -// * InvalidAutomationExecutionParametersException -// The supplied parameters for invoking the specified Automation document are -// incorrect. For example, they may not match the set of parameters permitted -// for the specified Automation document. -// -// * AutomationExecutionLimitExceededException -// The number of simultaneously running Automation executions exceeded the allowable -// limit. -// -// * AutomationDefinitionVersionNotFoundException -// An Automation document with the specified name and version could not be found. -// -// * IdempotentParameterMismatch -// Error returned when an idempotent operation is retried and the parameters -// don't match the original call to the API with the same idempotency token. -// -// * InternalServerError -// An error occurred on the server side. -// -// * AutomationDefinitionNotApprovedException -// Indicates that the Change Manager change template used in the change request -// was rejected or is still in a pending state. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StartChangeRequestExecution -func (c *SSM) StartChangeRequestExecution(input *StartChangeRequestExecutionInput) (*StartChangeRequestExecutionOutput, error) { - req, out := c.StartChangeRequestExecutionRequest(input) - return out, req.Send() -} - -// StartChangeRequestExecutionWithContext is the same as StartChangeRequestExecution with the addition of -// the ability to pass a context and additional request options. -// -// See StartChangeRequestExecution for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) StartChangeRequestExecutionWithContext(ctx aws.Context, input *StartChangeRequestExecutionInput, opts ...request.Option) (*StartChangeRequestExecutionOutput, error) { - req, out := c.StartChangeRequestExecutionRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opStartSession = "StartSession" - -// StartSessionRequest generates a "aws/request.Request" representing the -// client's request for the StartSession operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See StartSession for more information on using the StartSession -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the StartSessionRequest method. -// req, resp := client.StartSessionRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StartSession -func (c *SSM) StartSessionRequest(input *StartSessionInput) (req *request.Request, output *StartSessionOutput) { - op := &request.Operation{ - Name: opStartSession, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &StartSessionInput{} - } - - output = &StartSessionOutput{} - req = c.newRequest(op, input, output) - return -} - -// StartSession API operation for Amazon Simple Systems Manager (SSM). -// -// Initiates a connection to a target (for example, an instance) for a Session -// Manager session. Returns a URL and token that can be used to open a WebSocket -// connection for sending input and receiving outputs. -// -// AWS CLI usage: start-session is an interactive command that requires the -// Session Manager plugin to be installed on the client machine making the call. -// For information, see Install the Session Manager plugin for the AWS CLI (https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) -// in the AWS Systems Manager User Guide. -// -// AWS Tools for PowerShell usage: Start-SSMSession is not currently supported -// by AWS Tools for PowerShell on Windows local machines. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation StartSession for usage and error information. -// -// Returned Error Types: -// * InvalidDocument -// The specified document does not exist. -// -// * TargetNotConnected -// The specified target instance for the session is not fully configured for -// use with Session Manager. For more information, see Getting started with -// Session Manager (https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started.html) -// in the AWS Systems Manager User Guide. This error is also returned if you -// attempt to start a session on an instance that is located in a different -// account or Region -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StartSession -func (c *SSM) StartSession(input *StartSessionInput) (*StartSessionOutput, error) { - req, out := c.StartSessionRequest(input) - return out, req.Send() -} - -// StartSessionWithContext is the same as StartSession with the addition of -// the ability to pass a context and additional request options. -// -// See StartSession for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) StartSessionWithContext(ctx aws.Context, input *StartSessionInput, opts ...request.Option) (*StartSessionOutput, error) { - req, out := c.StartSessionRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opStopAutomationExecution = "StopAutomationExecution" - -// StopAutomationExecutionRequest generates a "aws/request.Request" representing the -// client's request for the StopAutomationExecution operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See StopAutomationExecution for more information on using the StopAutomationExecution -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the StopAutomationExecutionRequest method. -// req, resp := client.StopAutomationExecutionRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StopAutomationExecution -func (c *SSM) StopAutomationExecutionRequest(input *StopAutomationExecutionInput) (req *request.Request, output *StopAutomationExecutionOutput) { - op := &request.Operation{ - Name: opStopAutomationExecution, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &StopAutomationExecutionInput{} - } - - output = &StopAutomationExecutionOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// StopAutomationExecution API operation for Amazon Simple Systems Manager (SSM). -// -// Stop an Automation that is currently running. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation StopAutomationExecution for usage and error information. -// -// Returned Error Types: -// * AutomationExecutionNotFoundException -// There is no automation execution information for the requested automation -// execution ID. -// -// * InvalidAutomationStatusUpdateException -// The specified update status operation is not valid. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StopAutomationExecution -func (c *SSM) StopAutomationExecution(input *StopAutomationExecutionInput) (*StopAutomationExecutionOutput, error) { - req, out := c.StopAutomationExecutionRequest(input) - return out, req.Send() -} - -// StopAutomationExecutionWithContext is the same as StopAutomationExecution with the addition of -// the ability to pass a context and additional request options. -// -// See StopAutomationExecution for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) StopAutomationExecutionWithContext(ctx aws.Context, input *StopAutomationExecutionInput, opts ...request.Option) (*StopAutomationExecutionOutput, error) { - req, out := c.StopAutomationExecutionRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opTerminateSession = "TerminateSession" - -// TerminateSessionRequest generates a "aws/request.Request" representing the -// client's request for the TerminateSession operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See TerminateSession for more information on using the TerminateSession -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the TerminateSessionRequest method. -// req, resp := client.TerminateSessionRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/TerminateSession -func (c *SSM) TerminateSessionRequest(input *TerminateSessionInput) (req *request.Request, output *TerminateSessionOutput) { - op := &request.Operation{ - Name: opTerminateSession, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &TerminateSessionInput{} - } - - output = &TerminateSessionOutput{} - req = c.newRequest(op, input, output) - return -} - -// TerminateSession API operation for Amazon Simple Systems Manager (SSM). -// -// Permanently ends a session and closes the data connection between the Session -// Manager client and SSM Agent on the instance. A terminated session cannot -// be resumed. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation TerminateSession for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/TerminateSession -func (c *SSM) TerminateSession(input *TerminateSessionInput) (*TerminateSessionOutput, error) { - req, out := c.TerminateSessionRequest(input) - return out, req.Send() -} - -// TerminateSessionWithContext is the same as TerminateSession with the addition of -// the ability to pass a context and additional request options. -// -// See TerminateSession for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) TerminateSessionWithContext(ctx aws.Context, input *TerminateSessionInput, opts ...request.Option) (*TerminateSessionOutput, error) { - req, out := c.TerminateSessionRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opUpdateAssociation = "UpdateAssociation" - -// UpdateAssociationRequest generates a "aws/request.Request" representing the -// client's request for the UpdateAssociation operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See UpdateAssociation for more information on using the UpdateAssociation -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the UpdateAssociationRequest method. -// req, resp := client.UpdateAssociationRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateAssociation -func (c *SSM) UpdateAssociationRequest(input *UpdateAssociationInput) (req *request.Request, output *UpdateAssociationOutput) { - op := &request.Operation{ - Name: opUpdateAssociation, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &UpdateAssociationInput{} - } - - output = &UpdateAssociationOutput{} - req = c.newRequest(op, input, output) - return -} - -// UpdateAssociation API operation for Amazon Simple Systems Manager (SSM). -// -// Updates an association. You can update the association name and version, -// the document version, schedule, parameters, and Amazon S3 output. -// -// In order to call this API action, your IAM user account, group, or role must -// be configured with permission to call the DescribeAssociation API action. -// If you don't have permission to call DescribeAssociation, then you receive -// the following error: An error occurred (AccessDeniedException) when calling -// the UpdateAssociation operation: User: is not authorized to perform: -// ssm:DescribeAssociation on resource: -// -// When you update an association, the association immediately runs against -// the specified targets. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation UpdateAssociation for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidSchedule -// The schedule is invalid. Verify your cron or rate expression and try again. -// -// * InvalidParameters -// You must specify values for all required parameters in the Systems Manager -// document. You can only supply values to parameters defined in the Systems -// Manager document. -// -// * InvalidOutputLocation -// The output location is not valid or does not exist. -// -// * InvalidDocumentVersion -// The document version is not valid or does not exist. -// -// * AssociationDoesNotExist -// The specified association does not exist. -// -// * InvalidUpdate -// The update is not valid. -// -// * TooManyUpdates -// There are concurrent updates for a resource that supports one update at a -// time. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidTarget -// The target is not valid or does not exist. It might not be configured for -// Systems Manager or you might not have permission to perform the operation. -// -// * InvalidAssociationVersion -// The version you specified is not valid. Use ListAssociationVersions to view -// all versions of an association according to the association ID. Or, use the -// $LATEST parameter to view the latest version of the association. -// -// * AssociationVersionLimitExceeded -// You have reached the maximum number versions allowed for an association. -// Each association has a limit of 1,000 versions. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateAssociation -func (c *SSM) UpdateAssociation(input *UpdateAssociationInput) (*UpdateAssociationOutput, error) { - req, out := c.UpdateAssociationRequest(input) - return out, req.Send() -} - -// UpdateAssociationWithContext is the same as UpdateAssociation with the addition of -// the ability to pass a context and additional request options. -// -// See UpdateAssociation for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) UpdateAssociationWithContext(ctx aws.Context, input *UpdateAssociationInput, opts ...request.Option) (*UpdateAssociationOutput, error) { - req, out := c.UpdateAssociationRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opUpdateAssociationStatus = "UpdateAssociationStatus" - -// UpdateAssociationStatusRequest generates a "aws/request.Request" representing the -// client's request for the UpdateAssociationStatus operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See UpdateAssociationStatus for more information on using the UpdateAssociationStatus -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the UpdateAssociationStatusRequest method. -// req, resp := client.UpdateAssociationStatusRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateAssociationStatus -func (c *SSM) UpdateAssociationStatusRequest(input *UpdateAssociationStatusInput) (req *request.Request, output *UpdateAssociationStatusOutput) { - op := &request.Operation{ - Name: opUpdateAssociationStatus, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &UpdateAssociationStatusInput{} - } - - output = &UpdateAssociationStatusOutput{} - req = c.newRequest(op, input, output) - return -} - -// UpdateAssociationStatus API operation for Amazon Simple Systems Manager (SSM). -// -// Updates the status of the Systems Manager document associated with the specified -// instance. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation UpdateAssociationStatus for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * InvalidDocument -// The specified document does not exist. -// -// * AssociationDoesNotExist -// The specified association does not exist. -// -// * StatusUnchanged -// The updated status is the same as the current status. -// -// * TooManyUpdates -// There are concurrent updates for a resource that supports one update at a -// time. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateAssociationStatus -func (c *SSM) UpdateAssociationStatus(input *UpdateAssociationStatusInput) (*UpdateAssociationStatusOutput, error) { - req, out := c.UpdateAssociationStatusRequest(input) - return out, req.Send() -} - -// UpdateAssociationStatusWithContext is the same as UpdateAssociationStatus with the addition of -// the ability to pass a context and additional request options. -// -// See UpdateAssociationStatus for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) UpdateAssociationStatusWithContext(ctx aws.Context, input *UpdateAssociationStatusInput, opts ...request.Option) (*UpdateAssociationStatusOutput, error) { - req, out := c.UpdateAssociationStatusRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opUpdateDocument = "UpdateDocument" - -// UpdateDocumentRequest generates a "aws/request.Request" representing the -// client's request for the UpdateDocument operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See UpdateDocument for more information on using the UpdateDocument -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the UpdateDocumentRequest method. -// req, resp := client.UpdateDocumentRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateDocument -func (c *SSM) UpdateDocumentRequest(input *UpdateDocumentInput) (req *request.Request, output *UpdateDocumentOutput) { - op := &request.Operation{ - Name: opUpdateDocument, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &UpdateDocumentInput{} - } - - output = &UpdateDocumentOutput{} - req = c.newRequest(op, input, output) - return -} - -// UpdateDocument API operation for Amazon Simple Systems Manager (SSM). -// -// Updates one or more values for an SSM document. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation UpdateDocument for usage and error information. -// -// Returned Error Types: -// * MaxDocumentSizeExceeded -// The size limit of a document is 64 KB. -// -// * DocumentVersionLimitExceeded -// The document has too many versions. Delete one or more document versions -// and try again. -// -// * InternalServerError -// An error occurred on the server side. -// -// * DuplicateDocumentContent -// The content of the association document matches another document. Change -// the content of the document and try again. -// -// * DuplicateDocumentVersionName -// The version name has already been used in this document. Specify a different -// version name, and then try again. -// -// * InvalidDocumentContent -// The content for the document is not valid. -// -// * InvalidDocumentVersion -// The document version is not valid or does not exist. -// -// * InvalidDocumentSchemaVersion -// The version of the document schema is not supported. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidDocumentOperation -// You attempted to delete a document while it is still shared. You must stop -// sharing the document before you can delete it. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateDocument -func (c *SSM) UpdateDocument(input *UpdateDocumentInput) (*UpdateDocumentOutput, error) { - req, out := c.UpdateDocumentRequest(input) - return out, req.Send() -} - -// UpdateDocumentWithContext is the same as UpdateDocument with the addition of -// the ability to pass a context and additional request options. -// -// See UpdateDocument for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) UpdateDocumentWithContext(ctx aws.Context, input *UpdateDocumentInput, opts ...request.Option) (*UpdateDocumentOutput, error) { - req, out := c.UpdateDocumentRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opUpdateDocumentDefaultVersion = "UpdateDocumentDefaultVersion" - -// UpdateDocumentDefaultVersionRequest generates a "aws/request.Request" representing the -// client's request for the UpdateDocumentDefaultVersion operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See UpdateDocumentDefaultVersion for more information on using the UpdateDocumentDefaultVersion -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the UpdateDocumentDefaultVersionRequest method. -// req, resp := client.UpdateDocumentDefaultVersionRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateDocumentDefaultVersion -func (c *SSM) UpdateDocumentDefaultVersionRequest(input *UpdateDocumentDefaultVersionInput) (req *request.Request, output *UpdateDocumentDefaultVersionOutput) { - op := &request.Operation{ - Name: opUpdateDocumentDefaultVersion, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &UpdateDocumentDefaultVersionInput{} - } - - output = &UpdateDocumentDefaultVersionOutput{} - req = c.newRequest(op, input, output) - return -} - -// UpdateDocumentDefaultVersion API operation for Amazon Simple Systems Manager (SSM). -// -// Set the default version of a document. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation UpdateDocumentDefaultVersion for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidDocumentVersion -// The document version is not valid or does not exist. -// -// * InvalidDocumentSchemaVersion -// The version of the document schema is not supported. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateDocumentDefaultVersion -func (c *SSM) UpdateDocumentDefaultVersion(input *UpdateDocumentDefaultVersionInput) (*UpdateDocumentDefaultVersionOutput, error) { - req, out := c.UpdateDocumentDefaultVersionRequest(input) - return out, req.Send() -} - -// UpdateDocumentDefaultVersionWithContext is the same as UpdateDocumentDefaultVersion with the addition of -// the ability to pass a context and additional request options. -// -// See UpdateDocumentDefaultVersion for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) UpdateDocumentDefaultVersionWithContext(ctx aws.Context, input *UpdateDocumentDefaultVersionInput, opts ...request.Option) (*UpdateDocumentDefaultVersionOutput, error) { - req, out := c.UpdateDocumentDefaultVersionRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opUpdateDocumentMetadata = "UpdateDocumentMetadata" - -// UpdateDocumentMetadataRequest generates a "aws/request.Request" representing the -// client's request for the UpdateDocumentMetadata operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See UpdateDocumentMetadata for more information on using the UpdateDocumentMetadata -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the UpdateDocumentMetadataRequest method. -// req, resp := client.UpdateDocumentMetadataRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateDocumentMetadata -func (c *SSM) UpdateDocumentMetadataRequest(input *UpdateDocumentMetadataInput) (req *request.Request, output *UpdateDocumentMetadataOutput) { - op := &request.Operation{ - Name: opUpdateDocumentMetadata, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &UpdateDocumentMetadataInput{} - } - - output = &UpdateDocumentMetadataOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// UpdateDocumentMetadata API operation for Amazon Simple Systems Manager (SSM). -// -// Updates information related to approval reviews for a specific version of -// a document. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation UpdateDocumentMetadata for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * InvalidDocument -// The specified document does not exist. -// -// * InvalidDocumentOperation -// You attempted to delete a document while it is still shared. You must stop -// sharing the document before you can delete it. -// -// * InvalidDocumentVersion -// The document version is not valid or does not exist. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateDocumentMetadata -func (c *SSM) UpdateDocumentMetadata(input *UpdateDocumentMetadataInput) (*UpdateDocumentMetadataOutput, error) { - req, out := c.UpdateDocumentMetadataRequest(input) - return out, req.Send() -} - -// UpdateDocumentMetadataWithContext is the same as UpdateDocumentMetadata with the addition of -// the ability to pass a context and additional request options. -// -// See UpdateDocumentMetadata for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) UpdateDocumentMetadataWithContext(ctx aws.Context, input *UpdateDocumentMetadataInput, opts ...request.Option) (*UpdateDocumentMetadataOutput, error) { - req, out := c.UpdateDocumentMetadataRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opUpdateMaintenanceWindow = "UpdateMaintenanceWindow" - -// UpdateMaintenanceWindowRequest generates a "aws/request.Request" representing the -// client's request for the UpdateMaintenanceWindow operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See UpdateMaintenanceWindow for more information on using the UpdateMaintenanceWindow -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the UpdateMaintenanceWindowRequest method. -// req, resp := client.UpdateMaintenanceWindowRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateMaintenanceWindow -func (c *SSM) UpdateMaintenanceWindowRequest(input *UpdateMaintenanceWindowInput) (req *request.Request, output *UpdateMaintenanceWindowOutput) { - op := &request.Operation{ - Name: opUpdateMaintenanceWindow, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &UpdateMaintenanceWindowInput{} - } - - output = &UpdateMaintenanceWindowOutput{} - req = c.newRequest(op, input, output) - return -} - -// UpdateMaintenanceWindow API operation for Amazon Simple Systems Manager (SSM). -// -// Updates an existing maintenance window. Only specified parameters are modified. -// -// The value you specify for Duration determines the specific end time for the -// maintenance window based on the time it begins. No maintenance window tasks -// are permitted to start after the resulting endtime minus the number of hours -// you specify for Cutoff. For example, if the maintenance window starts at -// 3 PM, the duration is three hours, and the value you specify for Cutoff is -// one hour, no maintenance window tasks can start after 5 PM. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation UpdateMaintenanceWindow for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateMaintenanceWindow -func (c *SSM) UpdateMaintenanceWindow(input *UpdateMaintenanceWindowInput) (*UpdateMaintenanceWindowOutput, error) { - req, out := c.UpdateMaintenanceWindowRequest(input) - return out, req.Send() -} - -// UpdateMaintenanceWindowWithContext is the same as UpdateMaintenanceWindow with the addition of -// the ability to pass a context and additional request options. -// -// See UpdateMaintenanceWindow for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) UpdateMaintenanceWindowWithContext(ctx aws.Context, input *UpdateMaintenanceWindowInput, opts ...request.Option) (*UpdateMaintenanceWindowOutput, error) { - req, out := c.UpdateMaintenanceWindowRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opUpdateMaintenanceWindowTarget = "UpdateMaintenanceWindowTarget" - -// UpdateMaintenanceWindowTargetRequest generates a "aws/request.Request" representing the -// client's request for the UpdateMaintenanceWindowTarget operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See UpdateMaintenanceWindowTarget for more information on using the UpdateMaintenanceWindowTarget -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the UpdateMaintenanceWindowTargetRequest method. -// req, resp := client.UpdateMaintenanceWindowTargetRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateMaintenanceWindowTarget -func (c *SSM) UpdateMaintenanceWindowTargetRequest(input *UpdateMaintenanceWindowTargetInput) (req *request.Request, output *UpdateMaintenanceWindowTargetOutput) { - op := &request.Operation{ - Name: opUpdateMaintenanceWindowTarget, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &UpdateMaintenanceWindowTargetInput{} - } - - output = &UpdateMaintenanceWindowTargetOutput{} - req = c.newRequest(op, input, output) - return -} - -// UpdateMaintenanceWindowTarget API operation for Amazon Simple Systems Manager (SSM). -// -// Modifies the target of an existing maintenance window. You can change the -// following: -// -// * Name -// -// * Description -// -// * Owner -// -// * IDs for an ID target -// -// * Tags for a Tag target -// -// * From any supported tag type to another. The three supported tag types -// are ID target, Tag target, and resource group. For more information, see -// Target. -// -// If a parameter is null, then the corresponding field is not modified. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation UpdateMaintenanceWindowTarget for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateMaintenanceWindowTarget -func (c *SSM) UpdateMaintenanceWindowTarget(input *UpdateMaintenanceWindowTargetInput) (*UpdateMaintenanceWindowTargetOutput, error) { - req, out := c.UpdateMaintenanceWindowTargetRequest(input) - return out, req.Send() -} - -// UpdateMaintenanceWindowTargetWithContext is the same as UpdateMaintenanceWindowTarget with the addition of -// the ability to pass a context and additional request options. -// -// See UpdateMaintenanceWindowTarget for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) UpdateMaintenanceWindowTargetWithContext(ctx aws.Context, input *UpdateMaintenanceWindowTargetInput, opts ...request.Option) (*UpdateMaintenanceWindowTargetOutput, error) { - req, out := c.UpdateMaintenanceWindowTargetRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opUpdateMaintenanceWindowTask = "UpdateMaintenanceWindowTask" - -// UpdateMaintenanceWindowTaskRequest generates a "aws/request.Request" representing the -// client's request for the UpdateMaintenanceWindowTask operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See UpdateMaintenanceWindowTask for more information on using the UpdateMaintenanceWindowTask -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the UpdateMaintenanceWindowTaskRequest method. -// req, resp := client.UpdateMaintenanceWindowTaskRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateMaintenanceWindowTask -func (c *SSM) UpdateMaintenanceWindowTaskRequest(input *UpdateMaintenanceWindowTaskInput) (req *request.Request, output *UpdateMaintenanceWindowTaskOutput) { - op := &request.Operation{ - Name: opUpdateMaintenanceWindowTask, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &UpdateMaintenanceWindowTaskInput{} - } - - output = &UpdateMaintenanceWindowTaskOutput{} - req = c.newRequest(op, input, output) - return -} - -// UpdateMaintenanceWindowTask API operation for Amazon Simple Systems Manager (SSM). -// -// Modifies a task assigned to a maintenance window. You can't change the task -// type, but you can change the following values: -// -// * TaskARN. For example, you can change a RUN_COMMAND task from AWS-RunPowerShellScript -// to AWS-RunShellScript. -// -// * ServiceRoleArn -// -// * TaskInvocationParameters -// -// * Priority -// -// * MaxConcurrency -// -// * MaxErrors -// -// One or more targets must be specified for maintenance window Run Command-type -// tasks. Depending on the task, targets are optional for other maintenance -// window task types (Automation, AWS Lambda, and AWS Step Functions). For more -// information about running tasks that do not specify targets, see Registering -// maintenance window tasks without targets (https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html) -// in the AWS Systems Manager User Guide. -// -// If the value for a parameter in UpdateMaintenanceWindowTask is null, then -// the corresponding field is not modified. If you set Replace to true, then -// all fields required by the RegisterTaskWithMaintenanceWindow action are required -// for this request. Optional fields that aren't specified are set to null. -// -// When you update a maintenance window task that has options specified in TaskInvocationParameters, -// you must provide again all the TaskInvocationParameters values that you want -// to retain. The values you do not specify again are removed. For example, -// suppose that when you registered a Run Command task, you specified TaskInvocationParameters -// values for Comment, NotificationConfig, and OutputS3BucketName. If you update -// the maintenance window task and specify only a different OutputS3BucketName -// value, the values for Comment and NotificationConfig are removed. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation UpdateMaintenanceWindowTask for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateMaintenanceWindowTask -func (c *SSM) UpdateMaintenanceWindowTask(input *UpdateMaintenanceWindowTaskInput) (*UpdateMaintenanceWindowTaskOutput, error) { - req, out := c.UpdateMaintenanceWindowTaskRequest(input) - return out, req.Send() -} - -// UpdateMaintenanceWindowTaskWithContext is the same as UpdateMaintenanceWindowTask with the addition of -// the ability to pass a context and additional request options. -// -// See UpdateMaintenanceWindowTask for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) UpdateMaintenanceWindowTaskWithContext(ctx aws.Context, input *UpdateMaintenanceWindowTaskInput, opts ...request.Option) (*UpdateMaintenanceWindowTaskOutput, error) { - req, out := c.UpdateMaintenanceWindowTaskRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opUpdateManagedInstanceRole = "UpdateManagedInstanceRole" - -// UpdateManagedInstanceRoleRequest generates a "aws/request.Request" representing the -// client's request for the UpdateManagedInstanceRole operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See UpdateManagedInstanceRole for more information on using the UpdateManagedInstanceRole -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the UpdateManagedInstanceRoleRequest method. -// req, resp := client.UpdateManagedInstanceRoleRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateManagedInstanceRole -func (c *SSM) UpdateManagedInstanceRoleRequest(input *UpdateManagedInstanceRoleInput) (req *request.Request, output *UpdateManagedInstanceRoleOutput) { - op := &request.Operation{ - Name: opUpdateManagedInstanceRole, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &UpdateManagedInstanceRoleInput{} - } - - output = &UpdateManagedInstanceRoleOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// UpdateManagedInstanceRole API operation for Amazon Simple Systems Manager (SSM). -// -// Changes the Amazon Identity and Access Management (IAM) role that is assigned -// to the on-premises instance or virtual machines (VM). IAM roles are first -// assigned to these hybrid instances during the activation process. For more -// information, see CreateActivation. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation UpdateManagedInstanceRole for usage and error information. -// -// Returned Error Types: -// * InvalidInstanceId -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateManagedInstanceRole -func (c *SSM) UpdateManagedInstanceRole(input *UpdateManagedInstanceRoleInput) (*UpdateManagedInstanceRoleOutput, error) { - req, out := c.UpdateManagedInstanceRoleRequest(input) - return out, req.Send() -} - -// UpdateManagedInstanceRoleWithContext is the same as UpdateManagedInstanceRole with the addition of -// the ability to pass a context and additional request options. -// -// See UpdateManagedInstanceRole for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) UpdateManagedInstanceRoleWithContext(ctx aws.Context, input *UpdateManagedInstanceRoleInput, opts ...request.Option) (*UpdateManagedInstanceRoleOutput, error) { - req, out := c.UpdateManagedInstanceRoleRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opUpdateOpsItem = "UpdateOpsItem" - -// UpdateOpsItemRequest generates a "aws/request.Request" representing the -// client's request for the UpdateOpsItem operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See UpdateOpsItem for more information on using the UpdateOpsItem -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the UpdateOpsItemRequest method. -// req, resp := client.UpdateOpsItemRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateOpsItem -func (c *SSM) UpdateOpsItemRequest(input *UpdateOpsItemInput) (req *request.Request, output *UpdateOpsItemOutput) { - op := &request.Operation{ - Name: opUpdateOpsItem, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &UpdateOpsItemInput{} - } - - output = &UpdateOpsItemOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// UpdateOpsItem API operation for Amazon Simple Systems Manager (SSM). -// -// Edit or change an OpsItem. You must have permission in AWS Identity and Access -// Management (IAM) to update an OpsItem. For more information, see Getting -// started with OpsCenter (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html) -// in the AWS Systems Manager User Guide. -// -// Operations engineers and IT professionals use OpsCenter to view, investigate, -// and remediate operational issues impacting the performance and health of -// their AWS resources. For more information, see AWS Systems Manager OpsCenter -// (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html) -// in the AWS Systems Manager User Guide. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation UpdateOpsItem for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * OpsItemNotFoundException -// The specified OpsItem ID doesn't exist. Verify the ID and try again. -// -// * OpsItemAlreadyExistsException -// The OpsItem already exists. -// -// * OpsItemLimitExceededException -// The request caused OpsItems to exceed one or more quotas. For information -// about OpsItem quotas, see What are the resource limits for OpsCenter? (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-learn-more.html#OpsCenter-learn-more-limits). -// -// * OpsItemInvalidParameterException -// A specified parameter argument isn't valid. Verify the available arguments -// and try again. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateOpsItem -func (c *SSM) UpdateOpsItem(input *UpdateOpsItemInput) (*UpdateOpsItemOutput, error) { - req, out := c.UpdateOpsItemRequest(input) - return out, req.Send() -} - -// UpdateOpsItemWithContext is the same as UpdateOpsItem with the addition of -// the ability to pass a context and additional request options. -// -// See UpdateOpsItem for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) UpdateOpsItemWithContext(ctx aws.Context, input *UpdateOpsItemInput, opts ...request.Option) (*UpdateOpsItemOutput, error) { - req, out := c.UpdateOpsItemRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opUpdateOpsMetadata = "UpdateOpsMetadata" - -// UpdateOpsMetadataRequest generates a "aws/request.Request" representing the -// client's request for the UpdateOpsMetadata operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See UpdateOpsMetadata for more information on using the UpdateOpsMetadata -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the UpdateOpsMetadataRequest method. -// req, resp := client.UpdateOpsMetadataRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateOpsMetadata -func (c *SSM) UpdateOpsMetadataRequest(input *UpdateOpsMetadataInput) (req *request.Request, output *UpdateOpsMetadataOutput) { - op := &request.Operation{ - Name: opUpdateOpsMetadata, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &UpdateOpsMetadataInput{} - } - - output = &UpdateOpsMetadataOutput{} - req = c.newRequest(op, input, output) - return -} - -// UpdateOpsMetadata API operation for Amazon Simple Systems Manager (SSM). -// -// Systems Manager calls this API action when you edit OpsMetadata in Application -// Manager. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation UpdateOpsMetadata for usage and error information. -// -// Returned Error Types: -// * OpsMetadataNotFoundException -// The OpsMetadata object does not exist. -// -// * OpsMetadataInvalidArgumentException -// One of the arguments passed is invalid. -// -// * OpsMetadataKeyLimitExceededException -// The OpsMetadata object exceeds the maximum number of OpsMetadata keys that -// you can assign to an application in Application Manager. -// -// * OpsMetadataTooManyUpdatesException -// The system is processing too many concurrent updates. Wait a few moments -// and try again. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateOpsMetadata -func (c *SSM) UpdateOpsMetadata(input *UpdateOpsMetadataInput) (*UpdateOpsMetadataOutput, error) { - req, out := c.UpdateOpsMetadataRequest(input) - return out, req.Send() -} - -// UpdateOpsMetadataWithContext is the same as UpdateOpsMetadata with the addition of -// the ability to pass a context and additional request options. -// -// See UpdateOpsMetadata for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) UpdateOpsMetadataWithContext(ctx aws.Context, input *UpdateOpsMetadataInput, opts ...request.Option) (*UpdateOpsMetadataOutput, error) { - req, out := c.UpdateOpsMetadataRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opUpdatePatchBaseline = "UpdatePatchBaseline" - -// UpdatePatchBaselineRequest generates a "aws/request.Request" representing the -// client's request for the UpdatePatchBaseline operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See UpdatePatchBaseline for more information on using the UpdatePatchBaseline -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the UpdatePatchBaselineRequest method. -// req, resp := client.UpdatePatchBaselineRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdatePatchBaseline -func (c *SSM) UpdatePatchBaselineRequest(input *UpdatePatchBaselineInput) (req *request.Request, output *UpdatePatchBaselineOutput) { - op := &request.Operation{ - Name: opUpdatePatchBaseline, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &UpdatePatchBaselineInput{} - } - - output = &UpdatePatchBaselineOutput{} - req = c.newRequest(op, input, output) - return -} - -// UpdatePatchBaseline API operation for Amazon Simple Systems Manager (SSM). -// -// Modifies an existing patch baseline. Fields not specified in the request -// are left unchanged. -// -// For information about valid key and value pairs in PatchFilters for each -// supported operating system type, see PatchFilter (http://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html). -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation UpdatePatchBaseline for usage and error information. -// -// Returned Error Types: -// * DoesNotExistException -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdatePatchBaseline -func (c *SSM) UpdatePatchBaseline(input *UpdatePatchBaselineInput) (*UpdatePatchBaselineOutput, error) { - req, out := c.UpdatePatchBaselineRequest(input) - return out, req.Send() -} - -// UpdatePatchBaselineWithContext is the same as UpdatePatchBaseline with the addition of -// the ability to pass a context and additional request options. -// -// See UpdatePatchBaseline for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) UpdatePatchBaselineWithContext(ctx aws.Context, input *UpdatePatchBaselineInput, opts ...request.Option) (*UpdatePatchBaselineOutput, error) { - req, out := c.UpdatePatchBaselineRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opUpdateResourceDataSync = "UpdateResourceDataSync" - -// UpdateResourceDataSyncRequest generates a "aws/request.Request" representing the -// client's request for the UpdateResourceDataSync operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See UpdateResourceDataSync for more information on using the UpdateResourceDataSync -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the UpdateResourceDataSyncRequest method. -// req, resp := client.UpdateResourceDataSyncRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateResourceDataSync -func (c *SSM) UpdateResourceDataSyncRequest(input *UpdateResourceDataSyncInput) (req *request.Request, output *UpdateResourceDataSyncOutput) { - op := &request.Operation{ - Name: opUpdateResourceDataSync, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &UpdateResourceDataSyncInput{} - } - - output = &UpdateResourceDataSyncOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// UpdateResourceDataSync API operation for Amazon Simple Systems Manager (SSM). -// -// Update a resource data sync. After you create a resource data sync for a -// Region, you can't change the account options for that sync. For example, -// if you create a sync in the us-east-2 (Ohio) Region and you choose the Include -// only the current account option, you can't edit that sync later and choose -// the Include all accounts from my AWS Organizations configuration option. -// Instead, you must delete the first resource data sync, and create a new one. -// -// This API action only supports a resource data sync that was created with -// a SyncFromSource SyncType. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation UpdateResourceDataSync for usage and error information. -// -// Returned Error Types: -// * ResourceDataSyncNotFoundException -// The specified sync name was not found. -// -// * ResourceDataSyncInvalidConfigurationException -// The specified sync configuration is invalid. -// -// * ResourceDataSyncConflictException -// Another UpdateResourceDataSync request is being processed. Wait a few minutes -// and try again. -// -// * InternalServerError -// An error occurred on the server side. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateResourceDataSync -func (c *SSM) UpdateResourceDataSync(input *UpdateResourceDataSyncInput) (*UpdateResourceDataSyncOutput, error) { - req, out := c.UpdateResourceDataSyncRequest(input) - return out, req.Send() -} - -// UpdateResourceDataSyncWithContext is the same as UpdateResourceDataSync with the addition of -// the ability to pass a context and additional request options. -// -// See UpdateResourceDataSync for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) UpdateResourceDataSyncWithContext(ctx aws.Context, input *UpdateResourceDataSyncInput, opts ...request.Option) (*UpdateResourceDataSyncOutput, error) { - req, out := c.UpdateResourceDataSyncRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opUpdateServiceSetting = "UpdateServiceSetting" - -// UpdateServiceSettingRequest generates a "aws/request.Request" representing the -// client's request for the UpdateServiceSetting operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See UpdateServiceSetting for more information on using the UpdateServiceSetting -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the UpdateServiceSettingRequest method. -// req, resp := client.UpdateServiceSettingRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateServiceSetting -func (c *SSM) UpdateServiceSettingRequest(input *UpdateServiceSettingInput) (req *request.Request, output *UpdateServiceSettingOutput) { - op := &request.Operation{ - Name: opUpdateServiceSetting, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &UpdateServiceSettingInput{} - } - - output = &UpdateServiceSettingOutput{} - req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// UpdateServiceSetting API operation for Amazon Simple Systems Manager (SSM). -// -// ServiceSetting is an account-level setting for an AWS service. This setting -// defines how a user interacts with or uses a service or a feature of a service. -// For example, if an AWS service charges money to the account based on feature -// or service usage, then the AWS service team might create a default setting -// of "false". This means the user can't use this feature unless they change -// the setting to "true" and intentionally opt in for a paid feature. -// -// Services map a SettingId object to a setting value. AWS services teams define -// the default value for a SettingId. You can't create a new SettingId, but -// you can overwrite the default value if you have the ssm:UpdateServiceSetting -// permission for the setting. Use the GetServiceSetting API action to view -// the current value. Or, use the ResetServiceSetting to change the value back -// to the original value defined by the AWS service team. -// -// Update the service setting for the account. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Simple Systems Manager (SSM)'s -// API operation UpdateServiceSetting for usage and error information. -// -// Returned Error Types: -// * InternalServerError -// An error occurred on the server side. -// -// * ServiceSettingNotFound -// The specified service setting was not found. Either the service name or the -// setting has not been provisioned by the AWS service team. -// -// * TooManyUpdates -// There are concurrent updates for a resource that supports one update at a -// time. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateServiceSetting -func (c *SSM) UpdateServiceSetting(input *UpdateServiceSettingInput) (*UpdateServiceSettingOutput, error) { - req, out := c.UpdateServiceSettingRequest(input) - return out, req.Send() -} - -// UpdateServiceSettingWithContext is the same as UpdateServiceSetting with the addition of -// the ability to pass a context and additional request options. -// -// See UpdateServiceSetting for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) UpdateServiceSettingWithContext(ctx aws.Context, input *UpdateServiceSettingInput, opts ...request.Option) (*UpdateServiceSettingOutput, error) { - req, out := c.UpdateServiceSettingRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// Information includes the AWS account ID where the current document is shared -// and the version shared with that account. -type AccountSharingInfo struct { - _ struct{} `type:"structure"` - - // The AWS account ID where the current document is shared. - AccountId *string `type:"string"` - - // The version of the current document shared with the account. - SharedDocumentVersion *string `type:"string"` -} - -// String returns the string representation -func (s AccountSharingInfo) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AccountSharingInfo) GoString() string { - return s.String() -} - -// SetAccountId sets the AccountId field's value. -func (s *AccountSharingInfo) SetAccountId(v string) *AccountSharingInfo { - s.AccountId = &v - return s -} - -// SetSharedDocumentVersion sets the SharedDocumentVersion field's value. -func (s *AccountSharingInfo) SetSharedDocumentVersion(v string) *AccountSharingInfo { - s.SharedDocumentVersion = &v - return s -} - -// An activation registers one or more on-premises servers or virtual machines -// (VMs) with AWS so that you can configure those servers or VMs using Run Command. -// A server or VM that has been registered with AWS is called a managed instance. -type Activation struct { - _ struct{} `type:"structure"` - - // The ID created by Systems Manager when you submitted the activation. - ActivationId *string `type:"string"` - - // The date the activation was created. - CreatedDate *time.Time `type:"timestamp"` - - // A name for the managed instance when it is created. - DefaultInstanceName *string `type:"string"` - - // A user defined description of the activation. - Description *string `type:"string"` - - // The date when this activation can no longer be used to register managed instances. - ExpirationDate *time.Time `type:"timestamp"` - - // Whether or not the activation is expired. - Expired *bool `type:"boolean"` - - // The Amazon Identity and Access Management (IAM) role to assign to the managed - // instance. - IamRole *string `type:"string"` - - // The maximum number of managed instances that can be registered using this - // activation. - RegistrationLimit *int64 `min:"1" type:"integer"` - - // The number of managed instances already registered with this activation. - RegistrationsCount *int64 `min:"1" type:"integer"` - - // Tags assigned to the activation. - Tags []*Tag `type:"list"` -} - -// String returns the string representation -func (s Activation) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Activation) GoString() string { - return s.String() -} - -// SetActivationId sets the ActivationId field's value. -func (s *Activation) SetActivationId(v string) *Activation { - s.ActivationId = &v - return s -} - -// SetCreatedDate sets the CreatedDate field's value. -func (s *Activation) SetCreatedDate(v time.Time) *Activation { - s.CreatedDate = &v - return s -} - -// SetDefaultInstanceName sets the DefaultInstanceName field's value. -func (s *Activation) SetDefaultInstanceName(v string) *Activation { - s.DefaultInstanceName = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *Activation) SetDescription(v string) *Activation { - s.Description = &v - return s -} - -// SetExpirationDate sets the ExpirationDate field's value. -func (s *Activation) SetExpirationDate(v time.Time) *Activation { - s.ExpirationDate = &v - return s -} - -// SetExpired sets the Expired field's value. -func (s *Activation) SetExpired(v bool) *Activation { - s.Expired = &v - return s -} - -// SetIamRole sets the IamRole field's value. -func (s *Activation) SetIamRole(v string) *Activation { - s.IamRole = &v - return s -} - -// SetRegistrationLimit sets the RegistrationLimit field's value. -func (s *Activation) SetRegistrationLimit(v int64) *Activation { - s.RegistrationLimit = &v - return s -} - -// SetRegistrationsCount sets the RegistrationsCount field's value. -func (s *Activation) SetRegistrationsCount(v int64) *Activation { - s.RegistrationsCount = &v - return s -} - -// SetTags sets the Tags field's value. -func (s *Activation) SetTags(v []*Tag) *Activation { - s.Tags = v - return s -} - -type AddTagsToResourceInput struct { - _ struct{} `type:"structure"` - - // The resource ID you want to tag. - // - // Use the ID of the resource. Here are some examples: - // - // ManagedInstance: mi-012345abcde - // - // MaintenanceWindow: mw-012345abcde - // - // PatchBaseline: pb-012345abcde - // - // For the Document and Parameter values, use the name of the resource. - // - // The ManagedInstance type for this API action is only for on-premises managed - // instances. You must specify the name of the managed instance in the following - // format: mi-ID_number. For example, mi-1a2b3c4d5e6f. - // - // ResourceId is a required field - ResourceId *string `type:"string" required:"true"` - - // Specifies the type of resource you are tagging. - // - // The ManagedInstance type for this API action is for on-premises managed instances. - // You must specify the name of the managed instance in the following format: - // mi-ID_number. For example, mi-1a2b3c4d5e6f. - // - // ResourceType is a required field - ResourceType *string `type:"string" required:"true" enum:"ResourceTypeForTagging"` - - // One or more tags. The value parameter is required, but if you don't want - // the tag to have a value, specify the parameter with no value, and we set - // the value to an empty string. - // - // Do not enter personally identifiable information in this field. - // - // Tags is a required field - Tags []*Tag `type:"list" required:"true"` -} - -// String returns the string representation -func (s AddTagsToResourceInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AddTagsToResourceInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *AddTagsToResourceInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AddTagsToResourceInput"} - if s.ResourceId == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceId")) - } - if s.ResourceType == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceType")) - } - if s.Tags == nil { - invalidParams.Add(request.NewErrParamRequired("Tags")) - } - if s.Tags != nil { - for i, v := range s.Tags { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetResourceId sets the ResourceId field's value. -func (s *AddTagsToResourceInput) SetResourceId(v string) *AddTagsToResourceInput { - s.ResourceId = &v - return s -} - -// SetResourceType sets the ResourceType field's value. -func (s *AddTagsToResourceInput) SetResourceType(v string) *AddTagsToResourceInput { - s.ResourceType = &v - return s -} - -// SetTags sets the Tags field's value. -func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput { - s.Tags = v - return s -} - -type AddTagsToResourceOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s AddTagsToResourceOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AddTagsToResourceOutput) GoString() string { - return s.String() -} - -// Error returned if an attempt is made to register a patch group with a patch -// baseline that is already registered with a different patch baseline. -type AlreadyExistsException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s AlreadyExistsException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AlreadyExistsException) GoString() string { - return s.String() -} - -func newErrorAlreadyExistsException(v protocol.ResponseMetadata) error { - return &AlreadyExistsException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *AlreadyExistsException) Code() string { - return "AlreadyExistsException" -} - -// Message returns the exception's message. -func (s *AlreadyExistsException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *AlreadyExistsException) OrigErr() error { - return nil -} - -func (s *AlreadyExistsException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *AlreadyExistsException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *AlreadyExistsException) RequestID() string { - return s.RespMetadata.RequestID -} - -// You must disassociate a document from all instances before you can delete -// it. -type AssociatedInstances struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s AssociatedInstances) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssociatedInstances) GoString() string { - return s.String() -} - -func newErrorAssociatedInstances(v protocol.ResponseMetadata) error { - return &AssociatedInstances{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *AssociatedInstances) Code() string { - return "AssociatedInstances" -} - -// Message returns the exception's message. -func (s *AssociatedInstances) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *AssociatedInstances) OrigErr() error { - return nil -} - -func (s *AssociatedInstances) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *AssociatedInstances) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *AssociatedInstances) RequestID() string { - return s.RespMetadata.RequestID -} - -// Describes an association of a Systems Manager document and an instance. -type Association struct { - _ struct{} `type:"structure"` - - // The ID created by the system when you create an association. An association - // is a binding between a document and a set of targets with a schedule. - AssociationId *string `type:"string"` - - // The association name. - AssociationName *string `type:"string"` - - // The association version. - AssociationVersion *string `type:"string"` - - // The version of the document used in the association. - DocumentVersion *string `type:"string"` - - // The ID of the instance. - InstanceId *string `type:"string"` - - // The date on which the association was last run. - LastExecutionDate *time.Time `type:"timestamp"` - - // The name of the Systems Manager document. - Name *string `type:"string"` - - // Information about the association. - Overview *AssociationOverview `type:"structure"` - - // A cron expression that specifies a schedule when the association runs. - ScheduleExpression *string `min:"1" type:"string"` - - // The instances targeted by the request to create an association. - Targets []*Target `type:"list"` -} - -// String returns the string representation -func (s Association) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Association) GoString() string { - return s.String() -} - -// SetAssociationId sets the AssociationId field's value. -func (s *Association) SetAssociationId(v string) *Association { - s.AssociationId = &v - return s -} - -// SetAssociationName sets the AssociationName field's value. -func (s *Association) SetAssociationName(v string) *Association { - s.AssociationName = &v - return s -} - -// SetAssociationVersion sets the AssociationVersion field's value. -func (s *Association) SetAssociationVersion(v string) *Association { - s.AssociationVersion = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *Association) SetDocumentVersion(v string) *Association { - s.DocumentVersion = &v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *Association) SetInstanceId(v string) *Association { - s.InstanceId = &v - return s -} - -// SetLastExecutionDate sets the LastExecutionDate field's value. -func (s *Association) SetLastExecutionDate(v time.Time) *Association { - s.LastExecutionDate = &v - return s -} - -// SetName sets the Name field's value. -func (s *Association) SetName(v string) *Association { - s.Name = &v - return s -} - -// SetOverview sets the Overview field's value. -func (s *Association) SetOverview(v *AssociationOverview) *Association { - s.Overview = v - return s -} - -// SetScheduleExpression sets the ScheduleExpression field's value. -func (s *Association) SetScheduleExpression(v string) *Association { - s.ScheduleExpression = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *Association) SetTargets(v []*Target) *Association { - s.Targets = v - return s -} - -// The specified association already exists. -type AssociationAlreadyExists struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s AssociationAlreadyExists) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssociationAlreadyExists) GoString() string { - return s.String() -} - -func newErrorAssociationAlreadyExists(v protocol.ResponseMetadata) error { - return &AssociationAlreadyExists{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *AssociationAlreadyExists) Code() string { - return "AssociationAlreadyExists" -} - -// Message returns the exception's message. -func (s *AssociationAlreadyExists) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *AssociationAlreadyExists) OrigErr() error { - return nil -} - -func (s *AssociationAlreadyExists) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *AssociationAlreadyExists) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *AssociationAlreadyExists) RequestID() string { - return s.RespMetadata.RequestID -} - -// Describes the parameters for a document. -type AssociationDescription struct { - _ struct{} `type:"structure"` - - // By default, when you create a new associations, the system runs it immediately - // after it is created and then according to the schedule you specified. Specify - // this option if you don't want an association to run immediately after you - // create it. This parameter is not supported for rate expressions. - ApplyOnlyAtCronInterval *bool `type:"boolean"` - - // The association ID. - AssociationId *string `type:"string"` - - // The association name. - AssociationName *string `type:"string"` - - // The association version. - AssociationVersion *string `type:"string"` - - // Specify the target for the association. This target is required for associations - // that use an Automation document and target resources by using rate controls. - AutomationTargetParameterName *string `min:"1" type:"string"` - - // The severity level that is assigned to the association. - ComplianceSeverity *string `type:"string" enum:"AssociationComplianceSeverity"` - - // The date when the association was made. - Date *time.Time `type:"timestamp"` - - // The document version. - DocumentVersion *string `type:"string"` - - // The ID of the instance. - InstanceId *string `type:"string"` - - // The date on which the association was last run. - LastExecutionDate *time.Time `type:"timestamp"` - - // The last date on which the association was successfully run. - LastSuccessfulExecutionDate *time.Time `type:"timestamp"` - - // The date when the association was last updated. - LastUpdateAssociationDate *time.Time `type:"timestamp"` - - // The maximum number of targets allowed to run the association at the same - // time. You can specify a number, for example 10, or a percentage of the target - // set, for example 10%. The default value is 100%, which means all targets - // run the association at the same time. - // - // If a new instance starts and attempts to run an association while Systems - // Manager is running MaxConcurrency associations, the association is allowed - // to run. During the next association interval, the new instance will process - // its association within the limit specified for MaxConcurrency. - MaxConcurrency *string `min:"1" type:"string"` - - // The number of errors that are allowed before the system stops sending requests - // to run the association on additional targets. You can specify either an absolute - // number of errors, for example 10, or a percentage of the target set, for - // example 10%. If you specify 3, for example, the system stops sending requests - // when the fourth error is received. If you specify 0, then the system stops - // sending requests after the first error is returned. If you run an association - // on 50 instances and set MaxError to 10%, then the system stops sending the - // request when the sixth error is received. - // - // Executions that are already running an association when MaxErrors is reached - // are allowed to complete, but some of these executions may fail as well. If - // you need to ensure that there won't be more than max-errors failed executions, - // set MaxConcurrency to 1 so that executions proceed one at a time. - MaxErrors *string `min:"1" type:"string"` - - // The name of the Systems Manager document. - Name *string `type:"string"` - - // An S3 bucket where you want to store the output details of the request. - OutputLocation *InstanceAssociationOutputLocation `type:"structure"` - - // Information about the association. - Overview *AssociationOverview `type:"structure"` - - // A description of the parameters for a document. - Parameters map[string][]*string `type:"map"` - - // A cron expression that specifies a schedule when the association runs. - ScheduleExpression *string `min:"1" type:"string"` - - // The association status. - Status *AssociationStatus `type:"structure"` - - // The mode for generating association compliance. You can specify AUTO or MANUAL. - // In AUTO mode, the system uses the status of the association execution to - // determine the compliance status. If the association execution runs successfully, - // then the association is COMPLIANT. If the association execution doesn't run - // successfully, the association is NON-COMPLIANT. - // - // In MANUAL mode, you must specify the AssociationId as a parameter for the - // PutComplianceItems API action. In this case, compliance data is not managed - // by State Manager. It is managed by your direct call to the PutComplianceItems - // API action. - // - // By default, all associations use AUTO mode. - SyncCompliance *string `type:"string" enum:"AssociationSyncCompliance"` - - // The combination of AWS Regions and AWS accounts where you want to run the - // association. - TargetLocations []*TargetLocation `min:"1" type:"list"` - - // The instances targeted by the request. - Targets []*Target `type:"list"` -} - -// String returns the string representation -func (s AssociationDescription) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssociationDescription) GoString() string { - return s.String() -} - -// SetApplyOnlyAtCronInterval sets the ApplyOnlyAtCronInterval field's value. -func (s *AssociationDescription) SetApplyOnlyAtCronInterval(v bool) *AssociationDescription { - s.ApplyOnlyAtCronInterval = &v - return s -} - -// SetAssociationId sets the AssociationId field's value. -func (s *AssociationDescription) SetAssociationId(v string) *AssociationDescription { - s.AssociationId = &v - return s -} - -// SetAssociationName sets the AssociationName field's value. -func (s *AssociationDescription) SetAssociationName(v string) *AssociationDescription { - s.AssociationName = &v - return s -} - -// SetAssociationVersion sets the AssociationVersion field's value. -func (s *AssociationDescription) SetAssociationVersion(v string) *AssociationDescription { - s.AssociationVersion = &v - return s -} - -// SetAutomationTargetParameterName sets the AutomationTargetParameterName field's value. -func (s *AssociationDescription) SetAutomationTargetParameterName(v string) *AssociationDescription { - s.AutomationTargetParameterName = &v - return s -} - -// SetComplianceSeverity sets the ComplianceSeverity field's value. -func (s *AssociationDescription) SetComplianceSeverity(v string) *AssociationDescription { - s.ComplianceSeverity = &v - return s -} - -// SetDate sets the Date field's value. -func (s *AssociationDescription) SetDate(v time.Time) *AssociationDescription { - s.Date = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *AssociationDescription) SetDocumentVersion(v string) *AssociationDescription { - s.DocumentVersion = &v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *AssociationDescription) SetInstanceId(v string) *AssociationDescription { - s.InstanceId = &v - return s -} - -// SetLastExecutionDate sets the LastExecutionDate field's value. -func (s *AssociationDescription) SetLastExecutionDate(v time.Time) *AssociationDescription { - s.LastExecutionDate = &v - return s -} - -// SetLastSuccessfulExecutionDate sets the LastSuccessfulExecutionDate field's value. -func (s *AssociationDescription) SetLastSuccessfulExecutionDate(v time.Time) *AssociationDescription { - s.LastSuccessfulExecutionDate = &v - return s -} - -// SetLastUpdateAssociationDate sets the LastUpdateAssociationDate field's value. -func (s *AssociationDescription) SetLastUpdateAssociationDate(v time.Time) *AssociationDescription { - s.LastUpdateAssociationDate = &v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *AssociationDescription) SetMaxConcurrency(v string) *AssociationDescription { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *AssociationDescription) SetMaxErrors(v string) *AssociationDescription { - s.MaxErrors = &v - return s -} - -// SetName sets the Name field's value. -func (s *AssociationDescription) SetName(v string) *AssociationDescription { - s.Name = &v - return s -} - -// SetOutputLocation sets the OutputLocation field's value. -func (s *AssociationDescription) SetOutputLocation(v *InstanceAssociationOutputLocation) *AssociationDescription { - s.OutputLocation = v - return s -} - -// SetOverview sets the Overview field's value. -func (s *AssociationDescription) SetOverview(v *AssociationOverview) *AssociationDescription { - s.Overview = v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *AssociationDescription) SetParameters(v map[string][]*string) *AssociationDescription { - s.Parameters = v - return s -} - -// SetScheduleExpression sets the ScheduleExpression field's value. -func (s *AssociationDescription) SetScheduleExpression(v string) *AssociationDescription { - s.ScheduleExpression = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *AssociationDescription) SetStatus(v *AssociationStatus) *AssociationDescription { - s.Status = v - return s -} - -// SetSyncCompliance sets the SyncCompliance field's value. -func (s *AssociationDescription) SetSyncCompliance(v string) *AssociationDescription { - s.SyncCompliance = &v - return s -} - -// SetTargetLocations sets the TargetLocations field's value. -func (s *AssociationDescription) SetTargetLocations(v []*TargetLocation) *AssociationDescription { - s.TargetLocations = v - return s -} - -// SetTargets sets the Targets field's value. -func (s *AssociationDescription) SetTargets(v []*Target) *AssociationDescription { - s.Targets = v - return s -} - -// The specified association does not exist. -type AssociationDoesNotExist struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s AssociationDoesNotExist) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssociationDoesNotExist) GoString() string { - return s.String() -} - -func newErrorAssociationDoesNotExist(v protocol.ResponseMetadata) error { - return &AssociationDoesNotExist{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *AssociationDoesNotExist) Code() string { - return "AssociationDoesNotExist" -} - -// Message returns the exception's message. -func (s *AssociationDoesNotExist) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *AssociationDoesNotExist) OrigErr() error { - return nil -} - -func (s *AssociationDoesNotExist) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *AssociationDoesNotExist) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *AssociationDoesNotExist) RequestID() string { - return s.RespMetadata.RequestID -} - -// Includes information about the specified association. -type AssociationExecution struct { - _ struct{} `type:"structure"` - - // The association ID. - AssociationId *string `type:"string"` - - // The association version. - AssociationVersion *string `type:"string"` - - // The time the execution started. - CreatedTime *time.Time `type:"timestamp"` - - // Detailed status information about the execution. - DetailedStatus *string `type:"string"` - - // The execution ID for the association. - ExecutionId *string `type:"string"` - - // The date of the last execution. - LastExecutionDate *time.Time `type:"timestamp"` - - // An aggregate status of the resources in the execution based on the status - // type. - ResourceCountByStatus *string `type:"string"` - - // The status of the association execution. - Status *string `type:"string"` -} - -// String returns the string representation -func (s AssociationExecution) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssociationExecution) GoString() string { - return s.String() -} - -// SetAssociationId sets the AssociationId field's value. -func (s *AssociationExecution) SetAssociationId(v string) *AssociationExecution { - s.AssociationId = &v - return s -} - -// SetAssociationVersion sets the AssociationVersion field's value. -func (s *AssociationExecution) SetAssociationVersion(v string) *AssociationExecution { - s.AssociationVersion = &v - return s -} - -// SetCreatedTime sets the CreatedTime field's value. -func (s *AssociationExecution) SetCreatedTime(v time.Time) *AssociationExecution { - s.CreatedTime = &v - return s -} - -// SetDetailedStatus sets the DetailedStatus field's value. -func (s *AssociationExecution) SetDetailedStatus(v string) *AssociationExecution { - s.DetailedStatus = &v - return s -} - -// SetExecutionId sets the ExecutionId field's value. -func (s *AssociationExecution) SetExecutionId(v string) *AssociationExecution { - s.ExecutionId = &v - return s -} - -// SetLastExecutionDate sets the LastExecutionDate field's value. -func (s *AssociationExecution) SetLastExecutionDate(v time.Time) *AssociationExecution { - s.LastExecutionDate = &v - return s -} - -// SetResourceCountByStatus sets the ResourceCountByStatus field's value. -func (s *AssociationExecution) SetResourceCountByStatus(v string) *AssociationExecution { - s.ResourceCountByStatus = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *AssociationExecution) SetStatus(v string) *AssociationExecution { - s.Status = &v - return s -} - -// The specified execution ID does not exist. Verify the ID number and try again. -type AssociationExecutionDoesNotExist struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s AssociationExecutionDoesNotExist) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssociationExecutionDoesNotExist) GoString() string { - return s.String() -} - -func newErrorAssociationExecutionDoesNotExist(v protocol.ResponseMetadata) error { - return &AssociationExecutionDoesNotExist{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *AssociationExecutionDoesNotExist) Code() string { - return "AssociationExecutionDoesNotExist" -} - -// Message returns the exception's message. -func (s *AssociationExecutionDoesNotExist) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *AssociationExecutionDoesNotExist) OrigErr() error { - return nil -} - -func (s *AssociationExecutionDoesNotExist) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *AssociationExecutionDoesNotExist) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *AssociationExecutionDoesNotExist) RequestID() string { - return s.RespMetadata.RequestID -} - -// Filters used in the request. -type AssociationExecutionFilter struct { - _ struct{} `type:"structure"` - - // The key value used in the request. - // - // Key is a required field - Key *string `type:"string" required:"true" enum:"AssociationExecutionFilterKey"` - - // The filter type specified in the request. - // - // Type is a required field - Type *string `type:"string" required:"true" enum:"AssociationFilterOperatorType"` - - // The value specified for the key. - // - // Value is a required field - Value *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s AssociationExecutionFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssociationExecutionFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *AssociationExecutionFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AssociationExecutionFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Type == nil { - invalidParams.Add(request.NewErrParamRequired("Type")) - } - if s.Value == nil { - invalidParams.Add(request.NewErrParamRequired("Value")) - } - if s.Value != nil && len(*s.Value) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Value", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *AssociationExecutionFilter) SetKey(v string) *AssociationExecutionFilter { - s.Key = &v - return s -} - -// SetType sets the Type field's value. -func (s *AssociationExecutionFilter) SetType(v string) *AssociationExecutionFilter { - s.Type = &v - return s -} - -// SetValue sets the Value field's value. -func (s *AssociationExecutionFilter) SetValue(v string) *AssociationExecutionFilter { - s.Value = &v - return s -} - -// Includes information about the specified association execution. -type AssociationExecutionTarget struct { - _ struct{} `type:"structure"` - - // The association ID. - AssociationId *string `type:"string"` - - // The association version. - AssociationVersion *string `type:"string"` - - // Detailed information about the execution status. - DetailedStatus *string `type:"string"` - - // The execution ID. - ExecutionId *string `type:"string"` - - // The date of the last execution. - LastExecutionDate *time.Time `type:"timestamp"` - - // The location where the association details are saved. - OutputSource *OutputSource `type:"structure"` - - // The resource ID, for example, the instance ID where the association ran. - ResourceId *string `min:"1" type:"string"` - - // The resource type, for example, instance. - ResourceType *string `min:"1" type:"string"` - - // The association execution status. - Status *string `type:"string"` -} - -// String returns the string representation -func (s AssociationExecutionTarget) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssociationExecutionTarget) GoString() string { - return s.String() -} - -// SetAssociationId sets the AssociationId field's value. -func (s *AssociationExecutionTarget) SetAssociationId(v string) *AssociationExecutionTarget { - s.AssociationId = &v - return s -} - -// SetAssociationVersion sets the AssociationVersion field's value. -func (s *AssociationExecutionTarget) SetAssociationVersion(v string) *AssociationExecutionTarget { - s.AssociationVersion = &v - return s -} - -// SetDetailedStatus sets the DetailedStatus field's value. -func (s *AssociationExecutionTarget) SetDetailedStatus(v string) *AssociationExecutionTarget { - s.DetailedStatus = &v - return s -} - -// SetExecutionId sets the ExecutionId field's value. -func (s *AssociationExecutionTarget) SetExecutionId(v string) *AssociationExecutionTarget { - s.ExecutionId = &v - return s -} - -// SetLastExecutionDate sets the LastExecutionDate field's value. -func (s *AssociationExecutionTarget) SetLastExecutionDate(v time.Time) *AssociationExecutionTarget { - s.LastExecutionDate = &v - return s -} - -// SetOutputSource sets the OutputSource field's value. -func (s *AssociationExecutionTarget) SetOutputSource(v *OutputSource) *AssociationExecutionTarget { - s.OutputSource = v - return s -} - -// SetResourceId sets the ResourceId field's value. -func (s *AssociationExecutionTarget) SetResourceId(v string) *AssociationExecutionTarget { - s.ResourceId = &v - return s -} - -// SetResourceType sets the ResourceType field's value. -func (s *AssociationExecutionTarget) SetResourceType(v string) *AssociationExecutionTarget { - s.ResourceType = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *AssociationExecutionTarget) SetStatus(v string) *AssociationExecutionTarget { - s.Status = &v - return s -} - -// Filters for the association execution. -type AssociationExecutionTargetsFilter struct { - _ struct{} `type:"structure"` - - // The key value used in the request. - // - // Key is a required field - Key *string `type:"string" required:"true" enum:"AssociationExecutionTargetsFilterKey"` - - // The value specified for the key. - // - // Value is a required field - Value *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s AssociationExecutionTargetsFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssociationExecutionTargetsFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *AssociationExecutionTargetsFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AssociationExecutionTargetsFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Value == nil { - invalidParams.Add(request.NewErrParamRequired("Value")) - } - if s.Value != nil && len(*s.Value) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Value", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *AssociationExecutionTargetsFilter) SetKey(v string) *AssociationExecutionTargetsFilter { - s.Key = &v - return s -} - -// SetValue sets the Value field's value. -func (s *AssociationExecutionTargetsFilter) SetValue(v string) *AssociationExecutionTargetsFilter { - s.Value = &v - return s -} - -// Describes a filter. -type AssociationFilter struct { - _ struct{} `type:"structure"` - - // The name of the filter. - // - // InstanceId has been deprecated. - // - // Key is a required field - Key *string `locationName:"key" type:"string" required:"true" enum:"AssociationFilterKey"` - - // The filter value. - // - // Value is a required field - Value *string `locationName:"value" min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s AssociationFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssociationFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *AssociationFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AssociationFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Value == nil { - invalidParams.Add(request.NewErrParamRequired("Value")) - } - if s.Value != nil && len(*s.Value) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Value", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *AssociationFilter) SetKey(v string) *AssociationFilter { - s.Key = &v - return s -} - -// SetValue sets the Value field's value. -func (s *AssociationFilter) SetValue(v string) *AssociationFilter { - s.Value = &v - return s -} - -// You can have at most 2,000 active associations. -type AssociationLimitExceeded struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s AssociationLimitExceeded) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssociationLimitExceeded) GoString() string { - return s.String() -} - -func newErrorAssociationLimitExceeded(v protocol.ResponseMetadata) error { - return &AssociationLimitExceeded{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *AssociationLimitExceeded) Code() string { - return "AssociationLimitExceeded" -} - -// Message returns the exception's message. -func (s *AssociationLimitExceeded) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *AssociationLimitExceeded) OrigErr() error { - return nil -} - -func (s *AssociationLimitExceeded) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *AssociationLimitExceeded) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *AssociationLimitExceeded) RequestID() string { - return s.RespMetadata.RequestID -} - -// Information about the association. -type AssociationOverview struct { - _ struct{} `type:"structure"` - - // Returns the number of targets for the association status. For example, if - // you created an association with two instances, and one of them was successful, - // this would return the count of instances by status. - AssociationStatusAggregatedCount map[string]*int64 `type:"map"` - - // A detailed status of the association. - DetailedStatus *string `type:"string"` - - // The status of the association. Status can be: Pending, Success, or Failed. - Status *string `type:"string"` -} - -// String returns the string representation -func (s AssociationOverview) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssociationOverview) GoString() string { - return s.String() -} - -// SetAssociationStatusAggregatedCount sets the AssociationStatusAggregatedCount field's value. -func (s *AssociationOverview) SetAssociationStatusAggregatedCount(v map[string]*int64) *AssociationOverview { - s.AssociationStatusAggregatedCount = v - return s -} - -// SetDetailedStatus sets the DetailedStatus field's value. -func (s *AssociationOverview) SetDetailedStatus(v string) *AssociationOverview { - s.DetailedStatus = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *AssociationOverview) SetStatus(v string) *AssociationOverview { - s.Status = &v - return s -} - -// Describes an association status. -type AssociationStatus struct { - _ struct{} `type:"structure"` - - // A user-defined string. - AdditionalInfo *string `type:"string"` - - // The date when the status changed. - // - // Date is a required field - Date *time.Time `type:"timestamp" required:"true"` - - // The reason for the status. - // - // Message is a required field - Message *string `min:"1" type:"string" required:"true"` - - // The status. - // - // Name is a required field - Name *string `type:"string" required:"true" enum:"AssociationStatusName"` -} - -// String returns the string representation -func (s AssociationStatus) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssociationStatus) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *AssociationStatus) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AssociationStatus"} - if s.Date == nil { - invalidParams.Add(request.NewErrParamRequired("Date")) - } - if s.Message == nil { - invalidParams.Add(request.NewErrParamRequired("Message")) - } - if s.Message != nil && len(*s.Message) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Message", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAdditionalInfo sets the AdditionalInfo field's value. -func (s *AssociationStatus) SetAdditionalInfo(v string) *AssociationStatus { - s.AdditionalInfo = &v - return s -} - -// SetDate sets the Date field's value. -func (s *AssociationStatus) SetDate(v time.Time) *AssociationStatus { - s.Date = &v - return s -} - -// SetMessage sets the Message field's value. -func (s *AssociationStatus) SetMessage(v string) *AssociationStatus { - s.Message = &v - return s -} - -// SetName sets the Name field's value. -func (s *AssociationStatus) SetName(v string) *AssociationStatus { - s.Name = &v - return s -} - -// Information about the association version. -type AssociationVersionInfo struct { - _ struct{} `type:"structure"` - - // By default, when you create a new associations, the system runs it immediately - // after it is created and then according to the schedule you specified. Specify - // this option if you don't want an association to run immediately after you - // create it. This parameter is not supported for rate expressions. - ApplyOnlyAtCronInterval *bool `type:"boolean"` - - // The ID created by the system when the association was created. - AssociationId *string `type:"string"` - - // The name specified for the association version when the association version - // was created. - AssociationName *string `type:"string"` - - // The association version. - AssociationVersion *string `type:"string"` - - // The severity level that is assigned to the association. - ComplianceSeverity *string `type:"string" enum:"AssociationComplianceSeverity"` - - // The date the association version was created. - CreatedDate *time.Time `type:"timestamp"` - - // The version of a Systems Manager document used when the association version - // was created. - DocumentVersion *string `type:"string"` - - // The maximum number of targets allowed to run the association at the same - // time. You can specify a number, for example 10, or a percentage of the target - // set, for example 10%. The default value is 100%, which means all targets - // run the association at the same time. - // - // If a new instance starts and attempts to run an association while Systems - // Manager is running MaxConcurrency associations, the association is allowed - // to run. During the next association interval, the new instance will process - // its association within the limit specified for MaxConcurrency. - MaxConcurrency *string `min:"1" type:"string"` - - // The number of errors that are allowed before the system stops sending requests - // to run the association on additional targets. You can specify either an absolute - // number of errors, for example 10, or a percentage of the target set, for - // example 10%. If you specify 3, for example, the system stops sending requests - // when the fourth error is received. If you specify 0, then the system stops - // sending requests after the first error is returned. If you run an association - // on 50 instances and set MaxError to 10%, then the system stops sending the - // request when the sixth error is received. - // - // Executions that are already running an association when MaxErrors is reached - // are allowed to complete, but some of these executions may fail as well. If - // you need to ensure that there won't be more than max-errors failed executions, - // set MaxConcurrency to 1 so that executions proceed one at a time. - MaxErrors *string `min:"1" type:"string"` - - // The name specified when the association was created. - Name *string `type:"string"` - - // The location in Amazon S3 specified for the association when the association - // version was created. - OutputLocation *InstanceAssociationOutputLocation `type:"structure"` - - // Parameters specified when the association version was created. - Parameters map[string][]*string `type:"map"` - - // The cron or rate schedule specified for the association when the association - // version was created. - ScheduleExpression *string `min:"1" type:"string"` - - // The mode for generating association compliance. You can specify AUTO or MANUAL. - // In AUTO mode, the system uses the status of the association execution to - // determine the compliance status. If the association execution runs successfully, - // then the association is COMPLIANT. If the association execution doesn't run - // successfully, the association is NON-COMPLIANT. - // - // In MANUAL mode, you must specify the AssociationId as a parameter for the - // PutComplianceItems API action. In this case, compliance data is not managed - // by State Manager. It is managed by your direct call to the PutComplianceItems - // API action. - // - // By default, all associations use AUTO mode. - SyncCompliance *string `type:"string" enum:"AssociationSyncCompliance"` - - // The combination of AWS Regions and AWS accounts where you wanted to run the - // association when this association version was created. - TargetLocations []*TargetLocation `min:"1" type:"list"` - - // The targets specified for the association when the association version was - // created. - Targets []*Target `type:"list"` -} - -// String returns the string representation -func (s AssociationVersionInfo) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssociationVersionInfo) GoString() string { - return s.String() -} - -// SetApplyOnlyAtCronInterval sets the ApplyOnlyAtCronInterval field's value. -func (s *AssociationVersionInfo) SetApplyOnlyAtCronInterval(v bool) *AssociationVersionInfo { - s.ApplyOnlyAtCronInterval = &v - return s -} - -// SetAssociationId sets the AssociationId field's value. -func (s *AssociationVersionInfo) SetAssociationId(v string) *AssociationVersionInfo { - s.AssociationId = &v - return s -} - -// SetAssociationName sets the AssociationName field's value. -func (s *AssociationVersionInfo) SetAssociationName(v string) *AssociationVersionInfo { - s.AssociationName = &v - return s -} - -// SetAssociationVersion sets the AssociationVersion field's value. -func (s *AssociationVersionInfo) SetAssociationVersion(v string) *AssociationVersionInfo { - s.AssociationVersion = &v - return s -} - -// SetComplianceSeverity sets the ComplianceSeverity field's value. -func (s *AssociationVersionInfo) SetComplianceSeverity(v string) *AssociationVersionInfo { - s.ComplianceSeverity = &v - return s -} - -// SetCreatedDate sets the CreatedDate field's value. -func (s *AssociationVersionInfo) SetCreatedDate(v time.Time) *AssociationVersionInfo { - s.CreatedDate = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *AssociationVersionInfo) SetDocumentVersion(v string) *AssociationVersionInfo { - s.DocumentVersion = &v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *AssociationVersionInfo) SetMaxConcurrency(v string) *AssociationVersionInfo { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *AssociationVersionInfo) SetMaxErrors(v string) *AssociationVersionInfo { - s.MaxErrors = &v - return s -} - -// SetName sets the Name field's value. -func (s *AssociationVersionInfo) SetName(v string) *AssociationVersionInfo { - s.Name = &v - return s -} - -// SetOutputLocation sets the OutputLocation field's value. -func (s *AssociationVersionInfo) SetOutputLocation(v *InstanceAssociationOutputLocation) *AssociationVersionInfo { - s.OutputLocation = v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *AssociationVersionInfo) SetParameters(v map[string][]*string) *AssociationVersionInfo { - s.Parameters = v - return s -} - -// SetScheduleExpression sets the ScheduleExpression field's value. -func (s *AssociationVersionInfo) SetScheduleExpression(v string) *AssociationVersionInfo { - s.ScheduleExpression = &v - return s -} - -// SetSyncCompliance sets the SyncCompliance field's value. -func (s *AssociationVersionInfo) SetSyncCompliance(v string) *AssociationVersionInfo { - s.SyncCompliance = &v - return s -} - -// SetTargetLocations sets the TargetLocations field's value. -func (s *AssociationVersionInfo) SetTargetLocations(v []*TargetLocation) *AssociationVersionInfo { - s.TargetLocations = v - return s -} - -// SetTargets sets the Targets field's value. -func (s *AssociationVersionInfo) SetTargets(v []*Target) *AssociationVersionInfo { - s.Targets = v - return s -} - -// You have reached the maximum number versions allowed for an association. -// Each association has a limit of 1,000 versions. -type AssociationVersionLimitExceeded struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s AssociationVersionLimitExceeded) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssociationVersionLimitExceeded) GoString() string { - return s.String() -} - -func newErrorAssociationVersionLimitExceeded(v protocol.ResponseMetadata) error { - return &AssociationVersionLimitExceeded{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *AssociationVersionLimitExceeded) Code() string { - return "AssociationVersionLimitExceeded" -} - -// Message returns the exception's message. -func (s *AssociationVersionLimitExceeded) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *AssociationVersionLimitExceeded) OrigErr() error { - return nil -} - -func (s *AssociationVersionLimitExceeded) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *AssociationVersionLimitExceeded) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *AssociationVersionLimitExceeded) RequestID() string { - return s.RespMetadata.RequestID -} - -// A structure that includes attributes that describe a document attachment. -type AttachmentContent struct { - _ struct{} `type:"structure"` - - // The cryptographic hash value of the document content. - Hash *string `type:"string"` - - // The hash algorithm used to calculate the hash value. - HashType *string `type:"string" enum:"AttachmentHashType"` - - // The name of an attachment. - Name *string `type:"string"` - - // The size of an attachment in bytes. - Size *int64 `type:"long"` - - // The URL location of the attachment content. - Url *string `type:"string"` -} - -// String returns the string representation -func (s AttachmentContent) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AttachmentContent) GoString() string { - return s.String() -} - -// SetHash sets the Hash field's value. -func (s *AttachmentContent) SetHash(v string) *AttachmentContent { - s.Hash = &v - return s -} - -// SetHashType sets the HashType field's value. -func (s *AttachmentContent) SetHashType(v string) *AttachmentContent { - s.HashType = &v - return s -} - -// SetName sets the Name field's value. -func (s *AttachmentContent) SetName(v string) *AttachmentContent { - s.Name = &v - return s -} - -// SetSize sets the Size field's value. -func (s *AttachmentContent) SetSize(v int64) *AttachmentContent { - s.Size = &v - return s -} - -// SetUrl sets the Url field's value. -func (s *AttachmentContent) SetUrl(v string) *AttachmentContent { - s.Url = &v - return s -} - -// An attribute of an attachment, such as the attachment name. -type AttachmentInformation struct { - _ struct{} `type:"structure"` - - // The name of the attachment. - Name *string `type:"string"` -} - -// String returns the string representation -func (s AttachmentInformation) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AttachmentInformation) GoString() string { - return s.String() -} - -// SetName sets the Name field's value. -func (s *AttachmentInformation) SetName(v string) *AttachmentInformation { - s.Name = &v - return s -} - -// Identifying information about a document attachment, including the file name -// and a key-value pair that identifies the location of an attachment to a document. -type AttachmentsSource struct { - _ struct{} `type:"structure"` - - // The key of a key-value pair that identifies the location of an attachment - // to a document. - Key *string `type:"string" enum:"AttachmentsSourceKey"` - - // The name of the document attachment file. - Name *string `type:"string"` - - // The value of a key-value pair that identifies the location of an attachment - // to a document. The format for Value depends on the type of key you specify. - // - // * For the key SourceUrl, the value is an S3 bucket location. For example: - // "Values": [ "s3://doc-example-bucket/my-folder" ] - // - // * For the key S3FileUrl, the value is a file in an S3 bucket. For example: - // "Values": [ "s3://doc-example-bucket/my-folder/my-file.py" ] - // - // * For the key AttachmentReference, the value is constructed from the name - // of another SSM document in your account, a version number of that document, - // and a file attached to that document version that you want to reuse. For - // example: "Values": [ "MyOtherDocument/3/my-other-file.py" ] However, if - // the SSM document is shared with you from another account, the full SSM - // document ARN must be specified instead of the document name only. For - // example: "Values": [ "arn:aws:ssm:us-east-2:111122223333:document/OtherAccountDocument/3/their-file.py" - // ] - Values []*string `min:"1" type:"list"` -} - -// String returns the string representation -func (s AttachmentsSource) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AttachmentsSource) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *AttachmentsSource) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AttachmentsSource"} - if s.Values != nil && len(s.Values) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Values", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *AttachmentsSource) SetKey(v string) *AttachmentsSource { - s.Key = &v - return s -} - -// SetName sets the Name field's value. -func (s *AttachmentsSource) SetName(v string) *AttachmentsSource { - s.Name = &v - return s -} - -// SetValues sets the Values field's value. -func (s *AttachmentsSource) SetValues(v []*string) *AttachmentsSource { - s.Values = v - return s -} - -// Indicates that the Change Manager change template used in the change request -// was rejected or is still in a pending state. -type AutomationDefinitionNotApprovedException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s AutomationDefinitionNotApprovedException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AutomationDefinitionNotApprovedException) GoString() string { - return s.String() -} - -func newErrorAutomationDefinitionNotApprovedException(v protocol.ResponseMetadata) error { - return &AutomationDefinitionNotApprovedException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *AutomationDefinitionNotApprovedException) Code() string { - return "AutomationDefinitionNotApprovedException" -} - -// Message returns the exception's message. -func (s *AutomationDefinitionNotApprovedException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *AutomationDefinitionNotApprovedException) OrigErr() error { - return nil -} - -func (s *AutomationDefinitionNotApprovedException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *AutomationDefinitionNotApprovedException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *AutomationDefinitionNotApprovedException) RequestID() string { - return s.RespMetadata.RequestID -} - -// An Automation document with the specified name could not be found. -type AutomationDefinitionNotFoundException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s AutomationDefinitionNotFoundException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AutomationDefinitionNotFoundException) GoString() string { - return s.String() -} - -func newErrorAutomationDefinitionNotFoundException(v protocol.ResponseMetadata) error { - return &AutomationDefinitionNotFoundException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *AutomationDefinitionNotFoundException) Code() string { - return "AutomationDefinitionNotFoundException" -} - -// Message returns the exception's message. -func (s *AutomationDefinitionNotFoundException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *AutomationDefinitionNotFoundException) OrigErr() error { - return nil -} - -func (s *AutomationDefinitionNotFoundException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *AutomationDefinitionNotFoundException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *AutomationDefinitionNotFoundException) RequestID() string { - return s.RespMetadata.RequestID -} - -// An Automation document with the specified name and version could not be found. -type AutomationDefinitionVersionNotFoundException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s AutomationDefinitionVersionNotFoundException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AutomationDefinitionVersionNotFoundException) GoString() string { - return s.String() -} - -func newErrorAutomationDefinitionVersionNotFoundException(v protocol.ResponseMetadata) error { - return &AutomationDefinitionVersionNotFoundException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *AutomationDefinitionVersionNotFoundException) Code() string { - return "AutomationDefinitionVersionNotFoundException" -} - -// Message returns the exception's message. -func (s *AutomationDefinitionVersionNotFoundException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *AutomationDefinitionVersionNotFoundException) OrigErr() error { - return nil -} - -func (s *AutomationDefinitionVersionNotFoundException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *AutomationDefinitionVersionNotFoundException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *AutomationDefinitionVersionNotFoundException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Detailed information about the current state of an individual Automation -// execution. -type AutomationExecution struct { - _ struct{} `type:"structure"` - - // The ID of a State Manager association used in the Automation operation. - AssociationId *string `type:"string"` - - // The execution ID. - AutomationExecutionId *string `min:"36" type:"string"` - - // The execution status of the Automation. - AutomationExecutionStatus *string `type:"string" enum:"AutomationExecutionStatus"` - - // The subtype of the Automation operation. Currently, the only supported value - // is ChangeRequest. - AutomationSubtype *string `type:"string" enum:"AutomationSubtype"` - - // The name of the Change Manager change request. - ChangeRequestName *string `min:"1" type:"string"` - - // The action of the step that is currently running. - CurrentAction *string `type:"string"` - - // The name of the step that is currently running. - CurrentStepName *string `type:"string"` - - // The name of the Automation document used during the execution. - DocumentName *string `type:"string"` - - // The version of the document to use during execution. - DocumentVersion *string `type:"string"` - - // The Amazon Resource Name (ARN) of the user who ran the automation. - ExecutedBy *string `type:"string"` - - // The time the execution finished. - ExecutionEndTime *time.Time `type:"timestamp"` - - // The time the execution started. - ExecutionStartTime *time.Time `type:"timestamp"` - - // A message describing why an execution has failed, if the status is set to - // Failed. - FailureMessage *string `type:"string"` - - // The MaxConcurrency value specified by the user when the execution started. - MaxConcurrency *string `min:"1" type:"string"` - - // The MaxErrors value specified by the user when the execution started. - MaxErrors *string `min:"1" type:"string"` - - // The automation execution mode. - Mode *string `type:"string" enum:"ExecutionMode"` - - // The ID of an OpsItem that is created to represent a Change Manager change - // request. - OpsItemId *string `type:"string"` - - // The list of execution outputs as defined in the automation document. - Outputs map[string][]*string `min:"1" type:"map"` - - // The key-value map of execution parameters, which were supplied when calling - // StartAutomationExecution. - Parameters map[string][]*string `min:"1" type:"map"` - - // The AutomationExecutionId of the parent automation. - ParentAutomationExecutionId *string `min:"36" type:"string"` - - // An aggregate of step execution statuses displayed in the AWS Console for - // a multi-Region and multi-account Automation execution. - ProgressCounters *ProgressCounters `type:"structure"` - - // A list of resolved targets in the rate control execution. - ResolvedTargets *ResolvedTargets `type:"structure"` - - // Information about the Automation runbooks (Automation documents) that are - // run as part of a runbook workflow. - // - // The Automation runbooks specified for the runbook workflow can't run until - // all required approvals for the change request have been received. - Runbooks []*Runbook `min:"1" type:"list"` - - // The date and time the Automation operation is scheduled to start. - ScheduledTime *time.Time `type:"timestamp"` - - // A list of details about the current state of all steps that comprise an execution. - // An Automation document contains a list of steps that are run in order. - StepExecutions []*StepExecution `type:"list"` - - // A boolean value that indicates if the response contains the full list of - // the Automation step executions. If true, use the DescribeAutomationStepExecutions - // API action to get the full list of step executions. - StepExecutionsTruncated *bool `type:"boolean"` - - // The target of the execution. - Target *string `type:"string"` - - // The combination of AWS Regions and/or AWS accounts where you want to run - // the Automation. - TargetLocations []*TargetLocation `min:"1" type:"list"` - - // The specified key-value mapping of document parameters to target resources. - TargetMaps []map[string][]*string `type:"list"` - - // The parameter name. - TargetParameterName *string `min:"1" type:"string"` - - // The specified targets. - Targets []*Target `type:"list"` -} - -// String returns the string representation -func (s AutomationExecution) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AutomationExecution) GoString() string { - return s.String() -} - -// SetAssociationId sets the AssociationId field's value. -func (s *AutomationExecution) SetAssociationId(v string) *AutomationExecution { - s.AssociationId = &v - return s -} - -// SetAutomationExecutionId sets the AutomationExecutionId field's value. -func (s *AutomationExecution) SetAutomationExecutionId(v string) *AutomationExecution { - s.AutomationExecutionId = &v - return s -} - -// SetAutomationExecutionStatus sets the AutomationExecutionStatus field's value. -func (s *AutomationExecution) SetAutomationExecutionStatus(v string) *AutomationExecution { - s.AutomationExecutionStatus = &v - return s -} - -// SetAutomationSubtype sets the AutomationSubtype field's value. -func (s *AutomationExecution) SetAutomationSubtype(v string) *AutomationExecution { - s.AutomationSubtype = &v - return s -} - -// SetChangeRequestName sets the ChangeRequestName field's value. -func (s *AutomationExecution) SetChangeRequestName(v string) *AutomationExecution { - s.ChangeRequestName = &v - return s -} - -// SetCurrentAction sets the CurrentAction field's value. -func (s *AutomationExecution) SetCurrentAction(v string) *AutomationExecution { - s.CurrentAction = &v - return s -} - -// SetCurrentStepName sets the CurrentStepName field's value. -func (s *AutomationExecution) SetCurrentStepName(v string) *AutomationExecution { - s.CurrentStepName = &v - return s -} - -// SetDocumentName sets the DocumentName field's value. -func (s *AutomationExecution) SetDocumentName(v string) *AutomationExecution { - s.DocumentName = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *AutomationExecution) SetDocumentVersion(v string) *AutomationExecution { - s.DocumentVersion = &v - return s -} - -// SetExecutedBy sets the ExecutedBy field's value. -func (s *AutomationExecution) SetExecutedBy(v string) *AutomationExecution { - s.ExecutedBy = &v - return s -} - -// SetExecutionEndTime sets the ExecutionEndTime field's value. -func (s *AutomationExecution) SetExecutionEndTime(v time.Time) *AutomationExecution { - s.ExecutionEndTime = &v - return s -} - -// SetExecutionStartTime sets the ExecutionStartTime field's value. -func (s *AutomationExecution) SetExecutionStartTime(v time.Time) *AutomationExecution { - s.ExecutionStartTime = &v - return s -} - -// SetFailureMessage sets the FailureMessage field's value. -func (s *AutomationExecution) SetFailureMessage(v string) *AutomationExecution { - s.FailureMessage = &v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *AutomationExecution) SetMaxConcurrency(v string) *AutomationExecution { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *AutomationExecution) SetMaxErrors(v string) *AutomationExecution { - s.MaxErrors = &v - return s -} - -// SetMode sets the Mode field's value. -func (s *AutomationExecution) SetMode(v string) *AutomationExecution { - s.Mode = &v - return s -} - -// SetOpsItemId sets the OpsItemId field's value. -func (s *AutomationExecution) SetOpsItemId(v string) *AutomationExecution { - s.OpsItemId = &v - return s -} - -// SetOutputs sets the Outputs field's value. -func (s *AutomationExecution) SetOutputs(v map[string][]*string) *AutomationExecution { - s.Outputs = v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *AutomationExecution) SetParameters(v map[string][]*string) *AutomationExecution { - s.Parameters = v - return s -} - -// SetParentAutomationExecutionId sets the ParentAutomationExecutionId field's value. -func (s *AutomationExecution) SetParentAutomationExecutionId(v string) *AutomationExecution { - s.ParentAutomationExecutionId = &v - return s -} - -// SetProgressCounters sets the ProgressCounters field's value. -func (s *AutomationExecution) SetProgressCounters(v *ProgressCounters) *AutomationExecution { - s.ProgressCounters = v - return s -} - -// SetResolvedTargets sets the ResolvedTargets field's value. -func (s *AutomationExecution) SetResolvedTargets(v *ResolvedTargets) *AutomationExecution { - s.ResolvedTargets = v - return s -} - -// SetRunbooks sets the Runbooks field's value. -func (s *AutomationExecution) SetRunbooks(v []*Runbook) *AutomationExecution { - s.Runbooks = v - return s -} - -// SetScheduledTime sets the ScheduledTime field's value. -func (s *AutomationExecution) SetScheduledTime(v time.Time) *AutomationExecution { - s.ScheduledTime = &v - return s -} - -// SetStepExecutions sets the StepExecutions field's value. -func (s *AutomationExecution) SetStepExecutions(v []*StepExecution) *AutomationExecution { - s.StepExecutions = v - return s -} - -// SetStepExecutionsTruncated sets the StepExecutionsTruncated field's value. -func (s *AutomationExecution) SetStepExecutionsTruncated(v bool) *AutomationExecution { - s.StepExecutionsTruncated = &v - return s -} - -// SetTarget sets the Target field's value. -func (s *AutomationExecution) SetTarget(v string) *AutomationExecution { - s.Target = &v - return s -} - -// SetTargetLocations sets the TargetLocations field's value. -func (s *AutomationExecution) SetTargetLocations(v []*TargetLocation) *AutomationExecution { - s.TargetLocations = v - return s -} - -// SetTargetMaps sets the TargetMaps field's value. -func (s *AutomationExecution) SetTargetMaps(v []map[string][]*string) *AutomationExecution { - s.TargetMaps = v - return s -} - -// SetTargetParameterName sets the TargetParameterName field's value. -func (s *AutomationExecution) SetTargetParameterName(v string) *AutomationExecution { - s.TargetParameterName = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *AutomationExecution) SetTargets(v []*Target) *AutomationExecution { - s.Targets = v - return s -} - -// A filter used to match specific automation executions. This is used to limit -// the scope of Automation execution information returned. -type AutomationExecutionFilter struct { - _ struct{} `type:"structure"` - - // One or more keys to limit the results. - // - // Key is a required field - Key *string `type:"string" required:"true" enum:"AutomationExecutionFilterKey"` - - // The values used to limit the execution information associated with the filter's - // key. - // - // Values is a required field - Values []*string `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s AutomationExecutionFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AutomationExecutionFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *AutomationExecutionFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AutomationExecutionFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Values == nil { - invalidParams.Add(request.NewErrParamRequired("Values")) - } - if s.Values != nil && len(s.Values) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Values", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *AutomationExecutionFilter) SetKey(v string) *AutomationExecutionFilter { - s.Key = &v - return s -} - -// SetValues sets the Values field's value. -func (s *AutomationExecutionFilter) SetValues(v []*string) *AutomationExecutionFilter { - s.Values = v - return s -} - -// The number of simultaneously running Automation executions exceeded the allowable -// limit. -type AutomationExecutionLimitExceededException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s AutomationExecutionLimitExceededException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AutomationExecutionLimitExceededException) GoString() string { - return s.String() -} - -func newErrorAutomationExecutionLimitExceededException(v protocol.ResponseMetadata) error { - return &AutomationExecutionLimitExceededException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *AutomationExecutionLimitExceededException) Code() string { - return "AutomationExecutionLimitExceededException" -} - -// Message returns the exception's message. -func (s *AutomationExecutionLimitExceededException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *AutomationExecutionLimitExceededException) OrigErr() error { - return nil -} - -func (s *AutomationExecutionLimitExceededException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *AutomationExecutionLimitExceededException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *AutomationExecutionLimitExceededException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Details about a specific Automation execution. -type AutomationExecutionMetadata struct { - _ struct{} `type:"structure"` - - // The ID of a State Manager association used in the Automation operation. - AssociationId *string `type:"string"` - - // The execution ID. - AutomationExecutionId *string `min:"36" type:"string"` - - // The status of the execution. - AutomationExecutionStatus *string `type:"string" enum:"AutomationExecutionStatus"` - - // The subtype of the Automation operation. Currently, the only supported value - // is ChangeRequest. - AutomationSubtype *string `type:"string" enum:"AutomationSubtype"` - - // Use this filter with DescribeAutomationExecutions. Specify either Local or - // CrossAccount. CrossAccount is an Automation that runs in multiple AWS Regions - // and accounts. For more information, see Running Automation workflows in multiple - // AWS Regions and accounts (https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation-multiple-accounts-and-regions.html) - // in the AWS Systems Manager User Guide. - AutomationType *string `type:"string" enum:"AutomationType"` - - // The name of the Change Manager change request. - ChangeRequestName *string `min:"1" type:"string"` - - // The action of the step that is currently running. - CurrentAction *string `type:"string"` - - // The name of the step that is currently running. - CurrentStepName *string `type:"string"` - - // The name of the Automation document used during execution. - DocumentName *string `type:"string"` - - // The document version used during the execution. - DocumentVersion *string `type:"string"` - - // The IAM role ARN of the user who ran the Automation. - ExecutedBy *string `type:"string"` - - // The time the execution finished. This is not populated if the execution is - // still in progress. - ExecutionEndTime *time.Time `type:"timestamp"` - - // The time the execution started. - ExecutionStartTime *time.Time `type:"timestamp"` - - // The list of execution outputs as defined in the Automation document. - FailureMessage *string `type:"string"` - - // An S3 bucket where execution information is stored. - LogFile *string `type:"string"` - - // The MaxConcurrency value specified by the user when starting the Automation. - MaxConcurrency *string `min:"1" type:"string"` - - // The MaxErrors value specified by the user when starting the Automation. - MaxErrors *string `min:"1" type:"string"` - - // The Automation execution mode. - Mode *string `type:"string" enum:"ExecutionMode"` - - // The ID of an OpsItem that is created to represent a Change Manager change - // request. - OpsItemId *string `type:"string"` - - // The list of execution outputs as defined in the Automation document. - Outputs map[string][]*string `min:"1" type:"map"` - - // The ExecutionId of the parent Automation. - ParentAutomationExecutionId *string `min:"36" type:"string"` - - // A list of targets that resolved during the execution. - ResolvedTargets *ResolvedTargets `type:"structure"` - - // Information about the Automation runbooks (Automation documents) that are - // run during a runbook workflow in Change Manager. - // - // The Automation runbooks specified for the runbook workflow can't run until - // all required approvals for the change request have been received. - Runbooks []*Runbook `min:"1" type:"list"` - - // The date and time the Automation operation is scheduled to start. - ScheduledTime *time.Time `type:"timestamp"` - - // The list of execution outputs as defined in the Automation document. - Target *string `type:"string"` - - // The specified key-value mapping of document parameters to target resources. - TargetMaps []map[string][]*string `type:"list"` - - // The list of execution outputs as defined in the Automation document. - TargetParameterName *string `min:"1" type:"string"` - - // The targets defined by the user when starting the Automation. - Targets []*Target `type:"list"` -} - -// String returns the string representation -func (s AutomationExecutionMetadata) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AutomationExecutionMetadata) GoString() string { - return s.String() -} - -// SetAssociationId sets the AssociationId field's value. -func (s *AutomationExecutionMetadata) SetAssociationId(v string) *AutomationExecutionMetadata { - s.AssociationId = &v - return s -} - -// SetAutomationExecutionId sets the AutomationExecutionId field's value. -func (s *AutomationExecutionMetadata) SetAutomationExecutionId(v string) *AutomationExecutionMetadata { - s.AutomationExecutionId = &v - return s -} - -// SetAutomationExecutionStatus sets the AutomationExecutionStatus field's value. -func (s *AutomationExecutionMetadata) SetAutomationExecutionStatus(v string) *AutomationExecutionMetadata { - s.AutomationExecutionStatus = &v - return s -} - -// SetAutomationSubtype sets the AutomationSubtype field's value. -func (s *AutomationExecutionMetadata) SetAutomationSubtype(v string) *AutomationExecutionMetadata { - s.AutomationSubtype = &v - return s -} - -// SetAutomationType sets the AutomationType field's value. -func (s *AutomationExecutionMetadata) SetAutomationType(v string) *AutomationExecutionMetadata { - s.AutomationType = &v - return s -} - -// SetChangeRequestName sets the ChangeRequestName field's value. -func (s *AutomationExecutionMetadata) SetChangeRequestName(v string) *AutomationExecutionMetadata { - s.ChangeRequestName = &v - return s -} - -// SetCurrentAction sets the CurrentAction field's value. -func (s *AutomationExecutionMetadata) SetCurrentAction(v string) *AutomationExecutionMetadata { - s.CurrentAction = &v - return s -} - -// SetCurrentStepName sets the CurrentStepName field's value. -func (s *AutomationExecutionMetadata) SetCurrentStepName(v string) *AutomationExecutionMetadata { - s.CurrentStepName = &v - return s -} - -// SetDocumentName sets the DocumentName field's value. -func (s *AutomationExecutionMetadata) SetDocumentName(v string) *AutomationExecutionMetadata { - s.DocumentName = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *AutomationExecutionMetadata) SetDocumentVersion(v string) *AutomationExecutionMetadata { - s.DocumentVersion = &v - return s -} - -// SetExecutedBy sets the ExecutedBy field's value. -func (s *AutomationExecutionMetadata) SetExecutedBy(v string) *AutomationExecutionMetadata { - s.ExecutedBy = &v - return s -} - -// SetExecutionEndTime sets the ExecutionEndTime field's value. -func (s *AutomationExecutionMetadata) SetExecutionEndTime(v time.Time) *AutomationExecutionMetadata { - s.ExecutionEndTime = &v - return s -} - -// SetExecutionStartTime sets the ExecutionStartTime field's value. -func (s *AutomationExecutionMetadata) SetExecutionStartTime(v time.Time) *AutomationExecutionMetadata { - s.ExecutionStartTime = &v - return s -} - -// SetFailureMessage sets the FailureMessage field's value. -func (s *AutomationExecutionMetadata) SetFailureMessage(v string) *AutomationExecutionMetadata { - s.FailureMessage = &v - return s -} - -// SetLogFile sets the LogFile field's value. -func (s *AutomationExecutionMetadata) SetLogFile(v string) *AutomationExecutionMetadata { - s.LogFile = &v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *AutomationExecutionMetadata) SetMaxConcurrency(v string) *AutomationExecutionMetadata { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *AutomationExecutionMetadata) SetMaxErrors(v string) *AutomationExecutionMetadata { - s.MaxErrors = &v - return s -} - -// SetMode sets the Mode field's value. -func (s *AutomationExecutionMetadata) SetMode(v string) *AutomationExecutionMetadata { - s.Mode = &v - return s -} - -// SetOpsItemId sets the OpsItemId field's value. -func (s *AutomationExecutionMetadata) SetOpsItemId(v string) *AutomationExecutionMetadata { - s.OpsItemId = &v - return s -} - -// SetOutputs sets the Outputs field's value. -func (s *AutomationExecutionMetadata) SetOutputs(v map[string][]*string) *AutomationExecutionMetadata { - s.Outputs = v - return s -} - -// SetParentAutomationExecutionId sets the ParentAutomationExecutionId field's value. -func (s *AutomationExecutionMetadata) SetParentAutomationExecutionId(v string) *AutomationExecutionMetadata { - s.ParentAutomationExecutionId = &v - return s -} - -// SetResolvedTargets sets the ResolvedTargets field's value. -func (s *AutomationExecutionMetadata) SetResolvedTargets(v *ResolvedTargets) *AutomationExecutionMetadata { - s.ResolvedTargets = v - return s -} - -// SetRunbooks sets the Runbooks field's value. -func (s *AutomationExecutionMetadata) SetRunbooks(v []*Runbook) *AutomationExecutionMetadata { - s.Runbooks = v - return s -} - -// SetScheduledTime sets the ScheduledTime field's value. -func (s *AutomationExecutionMetadata) SetScheduledTime(v time.Time) *AutomationExecutionMetadata { - s.ScheduledTime = &v - return s -} - -// SetTarget sets the Target field's value. -func (s *AutomationExecutionMetadata) SetTarget(v string) *AutomationExecutionMetadata { - s.Target = &v - return s -} - -// SetTargetMaps sets the TargetMaps field's value. -func (s *AutomationExecutionMetadata) SetTargetMaps(v []map[string][]*string) *AutomationExecutionMetadata { - s.TargetMaps = v - return s -} - -// SetTargetParameterName sets the TargetParameterName field's value. -func (s *AutomationExecutionMetadata) SetTargetParameterName(v string) *AutomationExecutionMetadata { - s.TargetParameterName = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *AutomationExecutionMetadata) SetTargets(v []*Target) *AutomationExecutionMetadata { - s.Targets = v - return s -} - -// There is no automation execution information for the requested automation -// execution ID. -type AutomationExecutionNotFoundException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s AutomationExecutionNotFoundException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AutomationExecutionNotFoundException) GoString() string { - return s.String() -} - -func newErrorAutomationExecutionNotFoundException(v protocol.ResponseMetadata) error { - return &AutomationExecutionNotFoundException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *AutomationExecutionNotFoundException) Code() string { - return "AutomationExecutionNotFoundException" -} - -// Message returns the exception's message. -func (s *AutomationExecutionNotFoundException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *AutomationExecutionNotFoundException) OrigErr() error { - return nil -} - -func (s *AutomationExecutionNotFoundException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *AutomationExecutionNotFoundException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *AutomationExecutionNotFoundException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The specified step name and execution ID don't exist. Verify the information -// and try again. -type AutomationStepNotFoundException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s AutomationStepNotFoundException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AutomationStepNotFoundException) GoString() string { - return s.String() -} - -func newErrorAutomationStepNotFoundException(v protocol.ResponseMetadata) error { - return &AutomationStepNotFoundException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *AutomationStepNotFoundException) Code() string { - return "AutomationStepNotFoundException" -} - -// Message returns the exception's message. -func (s *AutomationStepNotFoundException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *AutomationStepNotFoundException) OrigErr() error { - return nil -} - -func (s *AutomationStepNotFoundException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *AutomationStepNotFoundException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *AutomationStepNotFoundException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Defines the basic information about a patch baseline override. -type BaselineOverride struct { - _ struct{} `type:"structure"` - - // A set of rules defining the approval rules for a patch baseline. - ApprovalRules *PatchRuleGroup `type:"structure"` - - // A list of explicitly approved patches for the baseline. - // - // For information about accepted formats for lists of approved patches and - // rejected patches, see About package name formats for approved and rejected - // patch lists (https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html) - // in the AWS Systems Manager User Guide. - ApprovedPatches []*string `type:"list"` - - // Defines the compliance level for approved patches. When an approved patch - // is reported as missing, this value describes the severity of the compliance - // violation. - ApprovedPatchesComplianceLevel *string `type:"string" enum:"PatchComplianceLevel"` - - // Indicates whether the list of approved patches includes non-security updates - // that should be applied to the instances. The default value is 'false'. Applies - // to Linux instances only. - ApprovedPatchesEnableNonSecurity *bool `type:"boolean"` - - // A set of patch filters, typically used for approval rules. - GlobalFilters *PatchFilterGroup `type:"structure"` - - // The operating system rule used by the patch baseline override. - OperatingSystem *string `type:"string" enum:"OperatingSystem"` - - // A list of explicitly rejected patches for the baseline. - // - // For information about accepted formats for lists of approved patches and - // rejected patches, see About package name formats for approved and rejected - // patch lists (https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html) - // in the AWS Systems Manager User Guide. - RejectedPatches []*string `type:"list"` - - // The action for Patch Manager to take on patches included in the RejectedPackages - // list. A patch can be allowed only if it is a dependency of another package, - // or blocked entirely along with packages that include it as a dependency. - RejectedPatchesAction *string `type:"string" enum:"PatchAction"` - - // Information about the patches to use to update the instances, including target - // operating systems and source repositories. Applies to Linux instances only. - Sources []*PatchSource `type:"list"` -} - -// String returns the string representation -func (s BaselineOverride) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s BaselineOverride) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *BaselineOverride) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "BaselineOverride"} - if s.ApprovalRules != nil { - if err := s.ApprovalRules.Validate(); err != nil { - invalidParams.AddNested("ApprovalRules", err.(request.ErrInvalidParams)) - } - } - if s.GlobalFilters != nil { - if err := s.GlobalFilters.Validate(); err != nil { - invalidParams.AddNested("GlobalFilters", err.(request.ErrInvalidParams)) - } - } - if s.Sources != nil { - for i, v := range s.Sources { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Sources", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetApprovalRules sets the ApprovalRules field's value. -func (s *BaselineOverride) SetApprovalRules(v *PatchRuleGroup) *BaselineOverride { - s.ApprovalRules = v - return s -} - -// SetApprovedPatches sets the ApprovedPatches field's value. -func (s *BaselineOverride) SetApprovedPatches(v []*string) *BaselineOverride { - s.ApprovedPatches = v - return s -} - -// SetApprovedPatchesComplianceLevel sets the ApprovedPatchesComplianceLevel field's value. -func (s *BaselineOverride) SetApprovedPatchesComplianceLevel(v string) *BaselineOverride { - s.ApprovedPatchesComplianceLevel = &v - return s -} - -// SetApprovedPatchesEnableNonSecurity sets the ApprovedPatchesEnableNonSecurity field's value. -func (s *BaselineOverride) SetApprovedPatchesEnableNonSecurity(v bool) *BaselineOverride { - s.ApprovedPatchesEnableNonSecurity = &v - return s -} - -// SetGlobalFilters sets the GlobalFilters field's value. -func (s *BaselineOverride) SetGlobalFilters(v *PatchFilterGroup) *BaselineOverride { - s.GlobalFilters = v - return s -} - -// SetOperatingSystem sets the OperatingSystem field's value. -func (s *BaselineOverride) SetOperatingSystem(v string) *BaselineOverride { - s.OperatingSystem = &v - return s -} - -// SetRejectedPatches sets the RejectedPatches field's value. -func (s *BaselineOverride) SetRejectedPatches(v []*string) *BaselineOverride { - s.RejectedPatches = v - return s -} - -// SetRejectedPatchesAction sets the RejectedPatchesAction field's value. -func (s *BaselineOverride) SetRejectedPatchesAction(v string) *BaselineOverride { - s.RejectedPatchesAction = &v - return s -} - -// SetSources sets the Sources field's value. -func (s *BaselineOverride) SetSources(v []*PatchSource) *BaselineOverride { - s.Sources = v - return s -} - -type CancelCommandInput struct { - _ struct{} `type:"structure"` - - // The ID of the command you want to cancel. - // - // CommandId is a required field - CommandId *string `min:"36" type:"string" required:"true"` - - // (Optional) A list of instance IDs on which you want to cancel the command. - // If not provided, the command is canceled on every instance on which it was - // requested. - InstanceIds []*string `type:"list"` -} - -// String returns the string representation -func (s CancelCommandInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CancelCommandInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *CancelCommandInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CancelCommandInput"} - if s.CommandId == nil { - invalidParams.Add(request.NewErrParamRequired("CommandId")) - } - if s.CommandId != nil && len(*s.CommandId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("CommandId", 36)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetCommandId sets the CommandId field's value. -func (s *CancelCommandInput) SetCommandId(v string) *CancelCommandInput { - s.CommandId = &v - return s -} - -// SetInstanceIds sets the InstanceIds field's value. -func (s *CancelCommandInput) SetInstanceIds(v []*string) *CancelCommandInput { - s.InstanceIds = v - return s -} - -// Whether or not the command was successfully canceled. There is no guarantee -// that a request can be canceled. -type CancelCommandOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s CancelCommandOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CancelCommandOutput) GoString() string { - return s.String() -} - -type CancelMaintenanceWindowExecutionInput struct { - _ struct{} `type:"structure"` - - // The ID of the maintenance window execution to stop. - // - // WindowExecutionId is a required field - WindowExecutionId *string `min:"36" type:"string" required:"true"` -} - -// String returns the string representation -func (s CancelMaintenanceWindowExecutionInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CancelMaintenanceWindowExecutionInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *CancelMaintenanceWindowExecutionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CancelMaintenanceWindowExecutionInput"} - if s.WindowExecutionId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowExecutionId")) - } - if s.WindowExecutionId != nil && len(*s.WindowExecutionId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("WindowExecutionId", 36)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetWindowExecutionId sets the WindowExecutionId field's value. -func (s *CancelMaintenanceWindowExecutionInput) SetWindowExecutionId(v string) *CancelMaintenanceWindowExecutionInput { - s.WindowExecutionId = &v - return s -} - -type CancelMaintenanceWindowExecutionOutput struct { - _ struct{} `type:"structure"` - - // The ID of the maintenance window execution that has been stopped. - WindowExecutionId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s CancelMaintenanceWindowExecutionOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CancelMaintenanceWindowExecutionOutput) GoString() string { - return s.String() -} - -// SetWindowExecutionId sets the WindowExecutionId field's value. -func (s *CancelMaintenanceWindowExecutionOutput) SetWindowExecutionId(v string) *CancelMaintenanceWindowExecutionOutput { - s.WindowExecutionId = &v - return s -} - -// Configuration options for sending command output to CloudWatch Logs. -type CloudWatchOutputConfig struct { - _ struct{} `type:"structure"` - - // The name of the CloudWatch log group where you want to send command output. - // If you don't specify a group name, Systems Manager automatically creates - // a log group for you. The log group uses the following naming format: aws/ssm/SystemsManagerDocumentName. - CloudWatchLogGroupName *string `min:"1" type:"string"` - - // Enables Systems Manager to send command output to CloudWatch Logs. - CloudWatchOutputEnabled *bool `type:"boolean"` -} - -// String returns the string representation -func (s CloudWatchOutputConfig) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CloudWatchOutputConfig) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *CloudWatchOutputConfig) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CloudWatchOutputConfig"} - if s.CloudWatchLogGroupName != nil && len(*s.CloudWatchLogGroupName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("CloudWatchLogGroupName", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetCloudWatchLogGroupName sets the CloudWatchLogGroupName field's value. -func (s *CloudWatchOutputConfig) SetCloudWatchLogGroupName(v string) *CloudWatchOutputConfig { - s.CloudWatchLogGroupName = &v - return s -} - -// SetCloudWatchOutputEnabled sets the CloudWatchOutputEnabled field's value. -func (s *CloudWatchOutputConfig) SetCloudWatchOutputEnabled(v bool) *CloudWatchOutputConfig { - s.CloudWatchOutputEnabled = &v - return s -} - -// Describes a command request. -type Command struct { - _ struct{} `type:"structure"` - - // CloudWatch Logs information where you want Systems Manager to send the command - // output. - CloudWatchOutputConfig *CloudWatchOutputConfig `type:"structure"` - - // A unique identifier for this command. - CommandId *string `min:"36" type:"string"` - - // User-specified information about the command, such as a brief description - // of what the command should do. - Comment *string `type:"string"` - - // The number of targets for which the command invocation reached a terminal - // state. Terminal states include the following: Success, Failed, Execution - // Timed Out, Delivery Timed Out, Canceled, Terminated, or Undeliverable. - CompletedCount *int64 `type:"integer"` - - // The number of targets for which the status is Delivery Timed Out. - DeliveryTimedOutCount *int64 `type:"integer"` - - // The name of the document requested for execution. - DocumentName *string `type:"string"` - - // The SSM document version. - DocumentVersion *string `type:"string"` - - // The number of targets for which the status is Failed or Execution Timed Out. - ErrorCount *int64 `type:"integer"` - - // If this time is reached and the command has not already started running, - // it will not run. Calculated based on the ExpiresAfter user input provided - // as part of the SendCommand API. - ExpiresAfter *time.Time `type:"timestamp"` - - // The instance IDs against which this command was requested. - InstanceIds []*string `type:"list"` - - // The maximum number of instances that are allowed to run the command at the - // same time. You can specify a number of instances, such as 10, or a percentage - // of instances, such as 10%. The default value is 50. For more information - // about how to use MaxConcurrency, see Running commands using Systems Manager - // Run Command (https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html) - // in the AWS Systems Manager User Guide. - MaxConcurrency *string `min:"1" type:"string"` - - // The maximum number of errors allowed before the system stops sending the - // command to additional targets. You can specify a number of errors, such as - // 10, or a percentage or errors, such as 10%. The default value is 0. For more - // information about how to use MaxErrors, see Running commands using Systems - // Manager Run Command (https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html) - // in the AWS Systems Manager User Guide. - MaxErrors *string `min:"1" type:"string"` - - // Configurations for sending notifications about command status changes. - NotificationConfig *NotificationConfig `type:"structure"` - - // The S3 bucket where the responses to the command executions should be stored. - // This was requested when issuing the command. - OutputS3BucketName *string `min:"3" type:"string"` - - // The S3 directory path inside the bucket where the responses to the command - // executions should be stored. This was requested when issuing the command. - OutputS3KeyPrefix *string `type:"string"` - - // (Deprecated) You can no longer specify this parameter. The system ignores - // it. Instead, Systems Manager automatically determines the Region of the S3 - // bucket. - OutputS3Region *string `min:"3" type:"string"` - - // The parameter values to be inserted in the document when running the command. - Parameters map[string][]*string `type:"map"` - - // The date and time the command was requested. - RequestedDateTime *time.Time `type:"timestamp"` - - // The IAM service role that Run Command uses to act on your behalf when sending - // notifications about command status changes. - ServiceRole *string `type:"string"` - - // The status of the command. - Status *string `type:"string" enum:"CommandStatus"` - - // A detailed status of the command execution. StatusDetails includes more information - // than Status because it includes states resulting from error and concurrency - // control parameters. StatusDetails can show different results than Status. - // For more information about these statuses, see Understanding command statuses - // (https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html) - // in the AWS Systems Manager User Guide. StatusDetails can be one of the following - // values: - // - // * Pending: The command has not been sent to any instances. - // - // * In Progress: The command has been sent to at least one instance but - // has not reached a final state on all instances. - // - // * Success: The command successfully ran on all invocations. This is a - // terminal state. - // - // * Delivery Timed Out: The value of MaxErrors or more command invocations - // shows a status of Delivery Timed Out. This is a terminal state. - // - // * Execution Timed Out: The value of MaxErrors or more command invocations - // shows a status of Execution Timed Out. This is a terminal state. - // - // * Failed: The value of MaxErrors or more command invocations shows a status - // of Failed. This is a terminal state. - // - // * Incomplete: The command was attempted on all instances and one or more - // invocations does not have a value of Success but not enough invocations - // failed for the status to be Failed. This is a terminal state. - // - // * Canceled: The command was terminated before it was completed. This is - // a terminal state. - // - // * Rate Exceeded: The number of instances targeted by the command exceeded - // the account limit for pending invocations. The system has canceled the - // command before running it on any instance. This is a terminal state. - StatusDetails *string `type:"string"` - - // The number of targets for the command. - TargetCount *int64 `type:"integer"` - - // An array of search criteria that targets instances using a Key,Value combination - // that you specify. Targets is required if you don't provide one or more instance - // IDs in the call. - Targets []*Target `type:"list"` - - // The TimeoutSeconds value specified for a command. - TimeoutSeconds *int64 `min:"30" type:"integer"` -} - -// String returns the string representation -func (s Command) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Command) GoString() string { - return s.String() -} - -// SetCloudWatchOutputConfig sets the CloudWatchOutputConfig field's value. -func (s *Command) SetCloudWatchOutputConfig(v *CloudWatchOutputConfig) *Command { - s.CloudWatchOutputConfig = v - return s -} - -// SetCommandId sets the CommandId field's value. -func (s *Command) SetCommandId(v string) *Command { - s.CommandId = &v - return s -} - -// SetComment sets the Comment field's value. -func (s *Command) SetComment(v string) *Command { - s.Comment = &v - return s -} - -// SetCompletedCount sets the CompletedCount field's value. -func (s *Command) SetCompletedCount(v int64) *Command { - s.CompletedCount = &v - return s -} - -// SetDeliveryTimedOutCount sets the DeliveryTimedOutCount field's value. -func (s *Command) SetDeliveryTimedOutCount(v int64) *Command { - s.DeliveryTimedOutCount = &v - return s -} - -// SetDocumentName sets the DocumentName field's value. -func (s *Command) SetDocumentName(v string) *Command { - s.DocumentName = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *Command) SetDocumentVersion(v string) *Command { - s.DocumentVersion = &v - return s -} - -// SetErrorCount sets the ErrorCount field's value. -func (s *Command) SetErrorCount(v int64) *Command { - s.ErrorCount = &v - return s -} - -// SetExpiresAfter sets the ExpiresAfter field's value. -func (s *Command) SetExpiresAfter(v time.Time) *Command { - s.ExpiresAfter = &v - return s -} - -// SetInstanceIds sets the InstanceIds field's value. -func (s *Command) SetInstanceIds(v []*string) *Command { - s.InstanceIds = v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *Command) SetMaxConcurrency(v string) *Command { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *Command) SetMaxErrors(v string) *Command { - s.MaxErrors = &v - return s -} - -// SetNotificationConfig sets the NotificationConfig field's value. -func (s *Command) SetNotificationConfig(v *NotificationConfig) *Command { - s.NotificationConfig = v - return s -} - -// SetOutputS3BucketName sets the OutputS3BucketName field's value. -func (s *Command) SetOutputS3BucketName(v string) *Command { - s.OutputS3BucketName = &v - return s -} - -// SetOutputS3KeyPrefix sets the OutputS3KeyPrefix field's value. -func (s *Command) SetOutputS3KeyPrefix(v string) *Command { - s.OutputS3KeyPrefix = &v - return s -} - -// SetOutputS3Region sets the OutputS3Region field's value. -func (s *Command) SetOutputS3Region(v string) *Command { - s.OutputS3Region = &v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *Command) SetParameters(v map[string][]*string) *Command { - s.Parameters = v - return s -} - -// SetRequestedDateTime sets the RequestedDateTime field's value. -func (s *Command) SetRequestedDateTime(v time.Time) *Command { - s.RequestedDateTime = &v - return s -} - -// SetServiceRole sets the ServiceRole field's value. -func (s *Command) SetServiceRole(v string) *Command { - s.ServiceRole = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *Command) SetStatus(v string) *Command { - s.Status = &v - return s -} - -// SetStatusDetails sets the StatusDetails field's value. -func (s *Command) SetStatusDetails(v string) *Command { - s.StatusDetails = &v - return s -} - -// SetTargetCount sets the TargetCount field's value. -func (s *Command) SetTargetCount(v int64) *Command { - s.TargetCount = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *Command) SetTargets(v []*Target) *Command { - s.Targets = v - return s -} - -// SetTimeoutSeconds sets the TimeoutSeconds field's value. -func (s *Command) SetTimeoutSeconds(v int64) *Command { - s.TimeoutSeconds = &v - return s -} - -// Describes a command filter. -// -// An instance ID can't be specified when a command status is Pending because -// the command hasn't run on the instance yet. -type CommandFilter struct { - _ struct{} `type:"structure"` - - // The name of the filter. - // - // Key is a required field - Key *string `locationName:"key" type:"string" required:"true" enum:"CommandFilterKey"` - - // The filter value. Valid values for each filter key are as follows: - // - // * InvokedAfter: Specify a timestamp to limit your results. For example, - // specify 2018-07-07T00:00:00Z to see a list of command executions occurring - // July 7, 2018, and later. - // - // * InvokedBefore: Specify a timestamp to limit your results. For example, - // specify 2018-07-07T00:00:00Z to see a list of command executions from - // before July 7, 2018. - // - // * Status: Specify a valid command status to see a list of all command - // executions with that status. Status values you can specify include: Pending - // InProgress Success Cancelled Failed TimedOut Cancelling - // - // * DocumentName: Specify name of the SSM document for which you want to - // see command execution results. For example, specify AWS-RunPatchBaseline - // to see command executions that used this SSM document to perform security - // patching operations on instances. - // - // * ExecutionStage: Specify one of the following values: Executing: Returns - // a list of command executions that are currently still running. Complete: - // Returns a list of command executions that have already completed. - // - // Value is a required field - Value *string `locationName:"value" min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s CommandFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CommandFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *CommandFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CommandFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Value == nil { - invalidParams.Add(request.NewErrParamRequired("Value")) - } - if s.Value != nil && len(*s.Value) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Value", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *CommandFilter) SetKey(v string) *CommandFilter { - s.Key = &v - return s -} - -// SetValue sets the Value field's value. -func (s *CommandFilter) SetValue(v string) *CommandFilter { - s.Value = &v - return s -} - -// An invocation is copy of a command sent to a specific instance. A command -// can apply to one or more instances. A command invocation applies to one instance. -// For example, if a user runs SendCommand against three instances, then a command -// invocation is created for each requested instance ID. A command invocation -// returns status and detail information about a command you ran. -type CommandInvocation struct { - _ struct{} `type:"structure"` - - // CloudWatch Logs information where you want Systems Manager to send the command - // output. - CloudWatchOutputConfig *CloudWatchOutputConfig `type:"structure"` - - // The command against which this invocation was requested. - CommandId *string `min:"36" type:"string"` - - CommandPlugins []*CommandPlugin `type:"list"` - - // User-specified information about the command, such as a brief description - // of what the command should do. - Comment *string `type:"string"` - - // The document name that was requested for execution. - DocumentName *string `type:"string"` - - // The SSM document version. - DocumentVersion *string `type:"string"` - - // The instance ID in which this invocation was requested. - InstanceId *string `type:"string"` - - // The name of the invocation target. For EC2 instances this is the value for - // the aws:Name tag. For on-premises instances, this is the name of the instance. - InstanceName *string `type:"string"` - - // Configurations for sending notifications about command status changes on - // a per instance basis. - NotificationConfig *NotificationConfig `type:"structure"` - - // The time and date the request was sent to this instance. - RequestedDateTime *time.Time `type:"timestamp"` - - // The IAM service role that Run Command uses to act on your behalf when sending - // notifications about command status changes on a per instance basis. - ServiceRole *string `type:"string"` - - // The URL to the plugin's StdErr file in Amazon S3, if the S3 bucket was defined - // for the parent command. For an invocation, StandardErrorUrl is populated - // if there is just one plugin defined for the command, and the S3 bucket was - // defined for the command. - StandardErrorUrl *string `type:"string"` - - // The URL to the plugin's StdOut file in Amazon S3, if the S3 bucket was defined - // for the parent command. For an invocation, StandardOutputUrl is populated - // if there is just one plugin defined for the command, and the S3 bucket was - // defined for the command. - StandardOutputUrl *string `type:"string"` - - // Whether or not the invocation succeeded, failed, or is pending. - Status *string `type:"string" enum:"CommandInvocationStatus"` - - // A detailed status of the command execution for each invocation (each instance - // targeted by the command). StatusDetails includes more information than Status - // because it includes states resulting from error and concurrency control parameters. - // StatusDetails can show different results than Status. For more information - // about these statuses, see Understanding command statuses (https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html) - // in the AWS Systems Manager User Guide. StatusDetails can be one of the following - // values: - // - // * Pending: The command has not been sent to the instance. - // - // * In Progress: The command has been sent to the instance but has not reached - // a terminal state. - // - // * Success: The execution of the command or plugin was successfully completed. - // This is a terminal state. - // - // * Delivery Timed Out: The command was not delivered to the instance before - // the delivery timeout expired. Delivery timeouts do not count against the - // parent command's MaxErrors limit, but they do contribute to whether the - // parent command status is Success or Incomplete. This is a terminal state. - // - // * Execution Timed Out: Command execution started on the instance, but - // the execution was not complete before the execution timeout expired. Execution - // timeouts count against the MaxErrors limit of the parent command. This - // is a terminal state. - // - // * Failed: The command was not successful on the instance. For a plugin, - // this indicates that the result code was not zero. For a command invocation, - // this indicates that the result code for one or more plugins was not zero. - // Invocation failures count against the MaxErrors limit of the parent command. - // This is a terminal state. - // - // * Canceled: The command was terminated before it was completed. This is - // a terminal state. - // - // * Undeliverable: The command can't be delivered to the instance. The instance - // might not exist or might not be responding. Undeliverable invocations - // don't count against the parent command's MaxErrors limit and don't contribute - // to whether the parent command status is Success or Incomplete. This is - // a terminal state. - // - // * Terminated: The parent command exceeded its MaxErrors limit and subsequent - // command invocations were canceled by the system. This is a terminal state. - StatusDetails *string `type:"string"` - - // Gets the trace output sent by the agent. - TraceOutput *string `type:"string"` -} - -// String returns the string representation -func (s CommandInvocation) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CommandInvocation) GoString() string { - return s.String() -} - -// SetCloudWatchOutputConfig sets the CloudWatchOutputConfig field's value. -func (s *CommandInvocation) SetCloudWatchOutputConfig(v *CloudWatchOutputConfig) *CommandInvocation { - s.CloudWatchOutputConfig = v - return s -} - -// SetCommandId sets the CommandId field's value. -func (s *CommandInvocation) SetCommandId(v string) *CommandInvocation { - s.CommandId = &v - return s -} - -// SetCommandPlugins sets the CommandPlugins field's value. -func (s *CommandInvocation) SetCommandPlugins(v []*CommandPlugin) *CommandInvocation { - s.CommandPlugins = v - return s -} - -// SetComment sets the Comment field's value. -func (s *CommandInvocation) SetComment(v string) *CommandInvocation { - s.Comment = &v - return s -} - -// SetDocumentName sets the DocumentName field's value. -func (s *CommandInvocation) SetDocumentName(v string) *CommandInvocation { - s.DocumentName = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *CommandInvocation) SetDocumentVersion(v string) *CommandInvocation { - s.DocumentVersion = &v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *CommandInvocation) SetInstanceId(v string) *CommandInvocation { - s.InstanceId = &v - return s -} - -// SetInstanceName sets the InstanceName field's value. -func (s *CommandInvocation) SetInstanceName(v string) *CommandInvocation { - s.InstanceName = &v - return s -} - -// SetNotificationConfig sets the NotificationConfig field's value. -func (s *CommandInvocation) SetNotificationConfig(v *NotificationConfig) *CommandInvocation { - s.NotificationConfig = v - return s -} - -// SetRequestedDateTime sets the RequestedDateTime field's value. -func (s *CommandInvocation) SetRequestedDateTime(v time.Time) *CommandInvocation { - s.RequestedDateTime = &v - return s -} - -// SetServiceRole sets the ServiceRole field's value. -func (s *CommandInvocation) SetServiceRole(v string) *CommandInvocation { - s.ServiceRole = &v - return s -} - -// SetStandardErrorUrl sets the StandardErrorUrl field's value. -func (s *CommandInvocation) SetStandardErrorUrl(v string) *CommandInvocation { - s.StandardErrorUrl = &v - return s -} - -// SetStandardOutputUrl sets the StandardOutputUrl field's value. -func (s *CommandInvocation) SetStandardOutputUrl(v string) *CommandInvocation { - s.StandardOutputUrl = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *CommandInvocation) SetStatus(v string) *CommandInvocation { - s.Status = &v - return s -} - -// SetStatusDetails sets the StatusDetails field's value. -func (s *CommandInvocation) SetStatusDetails(v string) *CommandInvocation { - s.StatusDetails = &v - return s -} - -// SetTraceOutput sets the TraceOutput field's value. -func (s *CommandInvocation) SetTraceOutput(v string) *CommandInvocation { - s.TraceOutput = &v - return s -} - -// Describes plugin details. -type CommandPlugin struct { - _ struct{} `type:"structure"` - - // The name of the plugin. Must be one of the following: aws:updateAgent, aws:domainjoin, - // aws:applications, aws:runPowerShellScript, aws:psmodule, aws:cloudWatch, - // aws:runShellScript, or aws:updateSSMAgent. - Name *string `min:"4" type:"string"` - - // Output of the plugin execution. - Output *string `type:"string"` - - // The S3 bucket where the responses to the command executions should be stored. - // This was requested when issuing the command. For example, in the following - // response: - // - // doc-example-bucket/ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix/i-02573cafcfEXAMPLE/awsrunShellScript - // - // doc-example-bucket is the name of the S3 bucket; - // - // ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix is the name of the S3 prefix; - // - // i-02573cafcfEXAMPLE is the instance ID; - // - // awsrunShellScript is the name of the plugin. - OutputS3BucketName *string `min:"3" type:"string"` - - // The S3 directory path inside the bucket where the responses to the command - // executions should be stored. This was requested when issuing the command. - // For example, in the following response: - // - // doc-example-bucket/ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix/i-02573cafcfEXAMPLE/awsrunShellScript - // - // doc-example-bucket is the name of the S3 bucket; - // - // ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix is the name of the S3 prefix; - // - // i-02573cafcfEXAMPLE is the instance ID; - // - // awsrunShellScript is the name of the plugin. - OutputS3KeyPrefix *string `type:"string"` - - // (Deprecated) You can no longer specify this parameter. The system ignores - // it. Instead, Systems Manager automatically determines the S3 bucket region. - OutputS3Region *string `min:"3" type:"string"` - - // A numeric response code generated after running the plugin. - ResponseCode *int64 `type:"integer"` - - // The time the plugin stopped running. Could stop prematurely if, for example, - // a cancel command was sent. - ResponseFinishDateTime *time.Time `type:"timestamp"` - - // The time the plugin started running. - ResponseStartDateTime *time.Time `type:"timestamp"` - - // The URL for the complete text written by the plugin to stderr. If execution - // is not yet complete, then this string is empty. - StandardErrorUrl *string `type:"string"` - - // The URL for the complete text written by the plugin to stdout in Amazon S3. - // If the S3 bucket for the command was not specified, then this string is empty. - StandardOutputUrl *string `type:"string"` - - // The status of this plugin. You can run a document with multiple plugins. - Status *string `type:"string" enum:"CommandPluginStatus"` - - // A detailed status of the plugin execution. StatusDetails includes more information - // than Status because it includes states resulting from error and concurrency - // control parameters. StatusDetails can show different results than Status. - // For more information about these statuses, see Understanding command statuses - // (https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html) - // in the AWS Systems Manager User Guide. StatusDetails can be one of the following - // values: - // - // * Pending: The command has not been sent to the instance. - // - // * In Progress: The command has been sent to the instance but has not reached - // a terminal state. - // - // * Success: The execution of the command or plugin was successfully completed. - // This is a terminal state. - // - // * Delivery Timed Out: The command was not delivered to the instance before - // the delivery timeout expired. Delivery timeouts do not count against the - // parent command's MaxErrors limit, but they do contribute to whether the - // parent command status is Success or Incomplete. This is a terminal state. - // - // * Execution Timed Out: Command execution started on the instance, but - // the execution was not complete before the execution timeout expired. Execution - // timeouts count against the MaxErrors limit of the parent command. This - // is a terminal state. - // - // * Failed: The command was not successful on the instance. For a plugin, - // this indicates that the result code was not zero. For a command invocation, - // this indicates that the result code for one or more plugins was not zero. - // Invocation failures count against the MaxErrors limit of the parent command. - // This is a terminal state. - // - // * Canceled: The command was terminated before it was completed. This is - // a terminal state. - // - // * Undeliverable: The command can't be delivered to the instance. The instance - // might not exist, or it might not be responding. Undeliverable invocations - // don't count against the parent command's MaxErrors limit, and they don't - // contribute to whether the parent command status is Success or Incomplete. - // This is a terminal state. - // - // * Terminated: The parent command exceeded its MaxErrors limit and subsequent - // command invocations were canceled by the system. This is a terminal state. - StatusDetails *string `type:"string"` -} - -// String returns the string representation -func (s CommandPlugin) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CommandPlugin) GoString() string { - return s.String() -} - -// SetName sets the Name field's value. -func (s *CommandPlugin) SetName(v string) *CommandPlugin { - s.Name = &v - return s -} - -// SetOutput sets the Output field's value. -func (s *CommandPlugin) SetOutput(v string) *CommandPlugin { - s.Output = &v - return s -} - -// SetOutputS3BucketName sets the OutputS3BucketName field's value. -func (s *CommandPlugin) SetOutputS3BucketName(v string) *CommandPlugin { - s.OutputS3BucketName = &v - return s -} - -// SetOutputS3KeyPrefix sets the OutputS3KeyPrefix field's value. -func (s *CommandPlugin) SetOutputS3KeyPrefix(v string) *CommandPlugin { - s.OutputS3KeyPrefix = &v - return s -} - -// SetOutputS3Region sets the OutputS3Region field's value. -func (s *CommandPlugin) SetOutputS3Region(v string) *CommandPlugin { - s.OutputS3Region = &v - return s -} - -// SetResponseCode sets the ResponseCode field's value. -func (s *CommandPlugin) SetResponseCode(v int64) *CommandPlugin { - s.ResponseCode = &v - return s -} - -// SetResponseFinishDateTime sets the ResponseFinishDateTime field's value. -func (s *CommandPlugin) SetResponseFinishDateTime(v time.Time) *CommandPlugin { - s.ResponseFinishDateTime = &v - return s -} - -// SetResponseStartDateTime sets the ResponseStartDateTime field's value. -func (s *CommandPlugin) SetResponseStartDateTime(v time.Time) *CommandPlugin { - s.ResponseStartDateTime = &v - return s -} - -// SetStandardErrorUrl sets the StandardErrorUrl field's value. -func (s *CommandPlugin) SetStandardErrorUrl(v string) *CommandPlugin { - s.StandardErrorUrl = &v - return s -} - -// SetStandardOutputUrl sets the StandardOutputUrl field's value. -func (s *CommandPlugin) SetStandardOutputUrl(v string) *CommandPlugin { - s.StandardOutputUrl = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *CommandPlugin) SetStatus(v string) *CommandPlugin { - s.Status = &v - return s -} - -// SetStatusDetails sets the StatusDetails field's value. -func (s *CommandPlugin) SetStatusDetails(v string) *CommandPlugin { - s.StatusDetails = &v - return s -} - -// A summary of the call execution that includes an execution ID, the type of -// execution (for example, Command), and the date/time of the execution using -// a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'. -type ComplianceExecutionSummary struct { - _ struct{} `type:"structure"` - - // An ID created by the system when PutComplianceItems was called. For example, - // CommandID is a valid execution ID. You can use this ID in subsequent calls. - ExecutionId *string `type:"string"` - - // The time the execution ran as a datetime object that is saved in the following - // format: yyyy-MM-dd'T'HH:mm:ss'Z'. - // - // ExecutionTime is a required field - ExecutionTime *time.Time `type:"timestamp" required:"true"` - - // The type of execution. For example, Command is a valid execution type. - ExecutionType *string `type:"string"` -} - -// String returns the string representation -func (s ComplianceExecutionSummary) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ComplianceExecutionSummary) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ComplianceExecutionSummary) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ComplianceExecutionSummary"} - if s.ExecutionTime == nil { - invalidParams.Add(request.NewErrParamRequired("ExecutionTime")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetExecutionId sets the ExecutionId field's value. -func (s *ComplianceExecutionSummary) SetExecutionId(v string) *ComplianceExecutionSummary { - s.ExecutionId = &v - return s -} - -// SetExecutionTime sets the ExecutionTime field's value. -func (s *ComplianceExecutionSummary) SetExecutionTime(v time.Time) *ComplianceExecutionSummary { - s.ExecutionTime = &v - return s -} - -// SetExecutionType sets the ExecutionType field's value. -func (s *ComplianceExecutionSummary) SetExecutionType(v string) *ComplianceExecutionSummary { - s.ExecutionType = &v - return s -} - -// Information about the compliance as defined by the resource type. For example, -// for a patch resource type, Items includes information about the PatchSeverity, -// Classification, and so on. -type ComplianceItem struct { - _ struct{} `type:"structure"` - - // The compliance type. For example, Association (for a State Manager association), - // Patch, or Custom:string are all valid compliance types. - ComplianceType *string `min:"1" type:"string"` - - // A "Key": "Value" tag combination for the compliance item. - Details map[string]*string `type:"map"` - - // A summary for the compliance item. The summary includes an execution ID, - // the execution type (for example, command), and the execution time. - ExecutionSummary *ComplianceExecutionSummary `type:"structure"` - - // An ID for the compliance item. For example, if the compliance item is a Windows - // patch, the ID could be the number of the KB article; for example: KB4010320. - Id *string `type:"string"` - - // An ID for the resource. For a managed instance, this is the instance ID. - ResourceId *string `min:"1" type:"string"` - - // The type of resource. ManagedInstance is currently the only supported resource - // type. - ResourceType *string `min:"1" type:"string"` - - // The severity of the compliance status. Severity can be one of the following: - // Critical, High, Medium, Low, Informational, Unspecified. - Severity *string `type:"string" enum:"ComplianceSeverity"` - - // The status of the compliance item. An item is either COMPLIANT, NON_COMPLIANT, - // or an empty string (for Windows patches that aren't applicable). - Status *string `type:"string" enum:"ComplianceStatus"` - - // A title for the compliance item. For example, if the compliance item is a - // Windows patch, the title could be the title of the KB article for the patch; - // for example: Security Update for Active Directory Federation Services. - Title *string `type:"string"` -} - -// String returns the string representation -func (s ComplianceItem) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ComplianceItem) GoString() string { - return s.String() -} - -// SetComplianceType sets the ComplianceType field's value. -func (s *ComplianceItem) SetComplianceType(v string) *ComplianceItem { - s.ComplianceType = &v - return s -} - -// SetDetails sets the Details field's value. -func (s *ComplianceItem) SetDetails(v map[string]*string) *ComplianceItem { - s.Details = v - return s -} - -// SetExecutionSummary sets the ExecutionSummary field's value. -func (s *ComplianceItem) SetExecutionSummary(v *ComplianceExecutionSummary) *ComplianceItem { - s.ExecutionSummary = v - return s -} - -// SetId sets the Id field's value. -func (s *ComplianceItem) SetId(v string) *ComplianceItem { - s.Id = &v - return s -} - -// SetResourceId sets the ResourceId field's value. -func (s *ComplianceItem) SetResourceId(v string) *ComplianceItem { - s.ResourceId = &v - return s -} - -// SetResourceType sets the ResourceType field's value. -func (s *ComplianceItem) SetResourceType(v string) *ComplianceItem { - s.ResourceType = &v - return s -} - -// SetSeverity sets the Severity field's value. -func (s *ComplianceItem) SetSeverity(v string) *ComplianceItem { - s.Severity = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *ComplianceItem) SetStatus(v string) *ComplianceItem { - s.Status = &v - return s -} - -// SetTitle sets the Title field's value. -func (s *ComplianceItem) SetTitle(v string) *ComplianceItem { - s.Title = &v - return s -} - -// Information about a compliance item. -type ComplianceItemEntry struct { - _ struct{} `type:"structure"` - - // A "Key": "Value" tag combination for the compliance item. - Details map[string]*string `type:"map"` - - // The compliance item ID. For example, if the compliance item is a Windows - // patch, the ID could be the number of the KB article. - Id *string `type:"string"` - - // The severity of the compliance status. Severity can be one of the following: - // Critical, High, Medium, Low, Informational, Unspecified. - // - // Severity is a required field - Severity *string `type:"string" required:"true" enum:"ComplianceSeverity"` - - // The status of the compliance item. An item is either COMPLIANT or NON_COMPLIANT. - // - // Status is a required field - Status *string `type:"string" required:"true" enum:"ComplianceStatus"` - - // The title of the compliance item. For example, if the compliance item is - // a Windows patch, the title could be the title of the KB article for the patch; - // for example: Security Update for Active Directory Federation Services. - Title *string `type:"string"` -} - -// String returns the string representation -func (s ComplianceItemEntry) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ComplianceItemEntry) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ComplianceItemEntry) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ComplianceItemEntry"} - if s.Severity == nil { - invalidParams.Add(request.NewErrParamRequired("Severity")) - } - if s.Status == nil { - invalidParams.Add(request.NewErrParamRequired("Status")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDetails sets the Details field's value. -func (s *ComplianceItemEntry) SetDetails(v map[string]*string) *ComplianceItemEntry { - s.Details = v - return s -} - -// SetId sets the Id field's value. -func (s *ComplianceItemEntry) SetId(v string) *ComplianceItemEntry { - s.Id = &v - return s -} - -// SetSeverity sets the Severity field's value. -func (s *ComplianceItemEntry) SetSeverity(v string) *ComplianceItemEntry { - s.Severity = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *ComplianceItemEntry) SetStatus(v string) *ComplianceItemEntry { - s.Status = &v - return s -} - -// SetTitle sets the Title field's value. -func (s *ComplianceItemEntry) SetTitle(v string) *ComplianceItemEntry { - s.Title = &v - return s -} - -// One or more filters. Use a filter to return a more specific list of results. -type ComplianceStringFilter struct { - _ struct{} `type:"structure"` - - // The name of the filter. - Key *string `min:"1" type:"string"` - - // The type of comparison that should be performed for the value: Equal, NotEqual, - // BeginWith, LessThan, or GreaterThan. - Type *string `type:"string" enum:"ComplianceQueryOperatorType"` - - // The value for which to search. - Values []*string `min:"1" type:"list"` -} - -// String returns the string representation -func (s ComplianceStringFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ComplianceStringFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ComplianceStringFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ComplianceStringFilter"} - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Key", 1)) - } - if s.Values != nil && len(s.Values) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Values", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *ComplianceStringFilter) SetKey(v string) *ComplianceStringFilter { - s.Key = &v - return s -} - -// SetType sets the Type field's value. -func (s *ComplianceStringFilter) SetType(v string) *ComplianceStringFilter { - s.Type = &v - return s -} - -// SetValues sets the Values field's value. -func (s *ComplianceStringFilter) SetValues(v []*string) *ComplianceStringFilter { - s.Values = v - return s -} - -// A summary of compliance information by compliance type. -type ComplianceSummaryItem struct { - _ struct{} `type:"structure"` - - // The type of compliance item. For example, the compliance type can be Association, - // Patch, or Custom:string. - ComplianceType *string `min:"1" type:"string"` - - // A list of COMPLIANT items for the specified compliance type. - CompliantSummary *CompliantSummary `type:"structure"` - - // A list of NON_COMPLIANT items for the specified compliance type. - NonCompliantSummary *NonCompliantSummary `type:"structure"` -} - -// String returns the string representation -func (s ComplianceSummaryItem) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ComplianceSummaryItem) GoString() string { - return s.String() -} - -// SetComplianceType sets the ComplianceType field's value. -func (s *ComplianceSummaryItem) SetComplianceType(v string) *ComplianceSummaryItem { - s.ComplianceType = &v - return s -} - -// SetCompliantSummary sets the CompliantSummary field's value. -func (s *ComplianceSummaryItem) SetCompliantSummary(v *CompliantSummary) *ComplianceSummaryItem { - s.CompliantSummary = v - return s -} - -// SetNonCompliantSummary sets the NonCompliantSummary field's value. -func (s *ComplianceSummaryItem) SetNonCompliantSummary(v *NonCompliantSummary) *ComplianceSummaryItem { - s.NonCompliantSummary = v - return s -} - -// You specified too many custom compliance types. You can specify a maximum -// of 10 different types. -type ComplianceTypeCountLimitExceededException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s ComplianceTypeCountLimitExceededException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ComplianceTypeCountLimitExceededException) GoString() string { - return s.String() -} - -func newErrorComplianceTypeCountLimitExceededException(v protocol.ResponseMetadata) error { - return &ComplianceTypeCountLimitExceededException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ComplianceTypeCountLimitExceededException) Code() string { - return "ComplianceTypeCountLimitExceededException" -} - -// Message returns the exception's message. -func (s *ComplianceTypeCountLimitExceededException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ComplianceTypeCountLimitExceededException) OrigErr() error { - return nil -} - -func (s *ComplianceTypeCountLimitExceededException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ComplianceTypeCountLimitExceededException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ComplianceTypeCountLimitExceededException) RequestID() string { - return s.RespMetadata.RequestID -} - -// A summary of resources that are compliant. The summary is organized according -// to the resource count for each compliance type. -type CompliantSummary struct { - _ struct{} `type:"structure"` - - // The total number of resources that are compliant. - CompliantCount *int64 `type:"integer"` - - // A summary of the compliance severity by compliance type. - SeveritySummary *SeveritySummary `type:"structure"` -} - -// String returns the string representation -func (s CompliantSummary) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CompliantSummary) GoString() string { - return s.String() -} - -// SetCompliantCount sets the CompliantCount field's value. -func (s *CompliantSummary) SetCompliantCount(v int64) *CompliantSummary { - s.CompliantCount = &v - return s -} - -// SetSeveritySummary sets the SeveritySummary field's value. -func (s *CompliantSummary) SetSeveritySummary(v *SeveritySummary) *CompliantSummary { - s.SeveritySummary = v - return s -} - -type CreateActivationInput struct { - _ struct{} `type:"structure"` - - // The name of the registered, managed instance as it will appear in the Systems - // Manager console or when you use the AWS command line tools to list Systems - // Manager resources. - // - // Do not enter personally identifiable information in this field. - DefaultInstanceName *string `type:"string"` - - // A user-defined description of the resource that you want to register with - // Systems Manager. - // - // Do not enter personally identifiable information in this field. - Description *string `type:"string"` - - // The date by which this activation request should expire. The default value - // is 24 hours. - ExpirationDate *time.Time `type:"timestamp"` - - // The Amazon Identity and Access Management (IAM) role that you want to assign - // to the managed instance. This IAM role must provide AssumeRole permissions - // for the Systems Manager service principal ssm.amazonaws.com. For more information, - // see Create an IAM service role for a hybrid environment (https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-service-role.html) - // in the AWS Systems Manager User Guide. - // - // IamRole is a required field - IamRole *string `type:"string" required:"true"` - - // Specify the maximum number of managed instances you want to register. The - // default value is 1 instance. - RegistrationLimit *int64 `min:"1" type:"integer"` - - // Optional metadata that you assign to a resource. Tags enable you to categorize - // a resource in different ways, such as by purpose, owner, or environment. - // For example, you might want to tag an activation to identify which servers - // or virtual machines (VMs) in your on-premises environment you intend to activate. - // In this case, you could specify the following key name/value pairs: - // - // * Key=OS,Value=Windows - // - // * Key=Environment,Value=Production - // - // When you install SSM Agent on your on-premises servers and VMs, you specify - // an activation ID and code. When you specify the activation ID and code, tags - // assigned to the activation are automatically applied to the on-premises servers - // or VMs. - // - // You can't add tags to or delete tags from an existing activation. You can - // tag your on-premises servers and VMs after they connect to Systems Manager - // for the first time and are assigned a managed instance ID. This means they - // are listed in the AWS Systems Manager console with an ID that is prefixed - // with "mi-". For information about how to add tags to your managed instances, - // see AddTagsToResource. For information about how to remove tags from your - // managed instances, see RemoveTagsFromResource. - Tags []*Tag `type:"list"` -} - -// String returns the string representation -func (s CreateActivationInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateActivationInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *CreateActivationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateActivationInput"} - if s.IamRole == nil { - invalidParams.Add(request.NewErrParamRequired("IamRole")) - } - if s.RegistrationLimit != nil && *s.RegistrationLimit < 1 { - invalidParams.Add(request.NewErrParamMinValue("RegistrationLimit", 1)) - } - if s.Tags != nil { - for i, v := range s.Tags { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDefaultInstanceName sets the DefaultInstanceName field's value. -func (s *CreateActivationInput) SetDefaultInstanceName(v string) *CreateActivationInput { - s.DefaultInstanceName = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *CreateActivationInput) SetDescription(v string) *CreateActivationInput { - s.Description = &v - return s -} - -// SetExpirationDate sets the ExpirationDate field's value. -func (s *CreateActivationInput) SetExpirationDate(v time.Time) *CreateActivationInput { - s.ExpirationDate = &v - return s -} - -// SetIamRole sets the IamRole field's value. -func (s *CreateActivationInput) SetIamRole(v string) *CreateActivationInput { - s.IamRole = &v - return s -} - -// SetRegistrationLimit sets the RegistrationLimit field's value. -func (s *CreateActivationInput) SetRegistrationLimit(v int64) *CreateActivationInput { - s.RegistrationLimit = &v - return s -} - -// SetTags sets the Tags field's value. -func (s *CreateActivationInput) SetTags(v []*Tag) *CreateActivationInput { - s.Tags = v - return s -} - -type CreateActivationOutput struct { - _ struct{} `type:"structure"` - - // The code the system generates when it processes the activation. The activation - // code functions like a password to validate the activation ID. - ActivationCode *string `min:"20" type:"string"` - - // The ID number generated by the system when it processed the activation. The - // activation ID functions like a user name. - ActivationId *string `type:"string"` -} - -// String returns the string representation -func (s CreateActivationOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateActivationOutput) GoString() string { - return s.String() -} - -// SetActivationCode sets the ActivationCode field's value. -func (s *CreateActivationOutput) SetActivationCode(v string) *CreateActivationOutput { - s.ActivationCode = &v - return s -} - -// SetActivationId sets the ActivationId field's value. -func (s *CreateActivationOutput) SetActivationId(v string) *CreateActivationOutput { - s.ActivationId = &v - return s -} - -type CreateAssociationBatchInput struct { - _ struct{} `type:"structure"` - - // One or more associations. - // - // Entries is a required field - Entries []*CreateAssociationBatchRequestEntry `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s CreateAssociationBatchInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateAssociationBatchInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *CreateAssociationBatchInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateAssociationBatchInput"} - if s.Entries == nil { - invalidParams.Add(request.NewErrParamRequired("Entries")) - } - if s.Entries != nil && len(s.Entries) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Entries", 1)) - } - if s.Entries != nil { - for i, v := range s.Entries { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entries", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetEntries sets the Entries field's value. -func (s *CreateAssociationBatchInput) SetEntries(v []*CreateAssociationBatchRequestEntry) *CreateAssociationBatchInput { - s.Entries = v - return s -} - -type CreateAssociationBatchOutput struct { - _ struct{} `type:"structure"` - - // Information about the associations that failed. - Failed []*FailedCreateAssociation `type:"list"` - - // Information about the associations that succeeded. - Successful []*AssociationDescription `type:"list"` -} - -// String returns the string representation -func (s CreateAssociationBatchOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateAssociationBatchOutput) GoString() string { - return s.String() -} - -// SetFailed sets the Failed field's value. -func (s *CreateAssociationBatchOutput) SetFailed(v []*FailedCreateAssociation) *CreateAssociationBatchOutput { - s.Failed = v - return s -} - -// SetSuccessful sets the Successful field's value. -func (s *CreateAssociationBatchOutput) SetSuccessful(v []*AssociationDescription) *CreateAssociationBatchOutput { - s.Successful = v - return s -} - -// Describes the association of a Systems Manager SSM document and an instance. -type CreateAssociationBatchRequestEntry struct { - _ struct{} `type:"structure"` - - // By default, when you create a new associations, the system runs it immediately - // after it is created and then according to the schedule you specified. Specify - // this option if you don't want an association to run immediately after you - // create it. This parameter is not supported for rate expressions. - ApplyOnlyAtCronInterval *bool `type:"boolean"` - - // Specify a descriptive name for the association. - AssociationName *string `type:"string"` - - // Specify the target for the association. This target is required for associations - // that use an Automation document and target resources by using rate controls. - AutomationTargetParameterName *string `min:"1" type:"string"` - - // The severity level to assign to the association. - ComplianceSeverity *string `type:"string" enum:"AssociationComplianceSeverity"` - - // The document version. - DocumentVersion *string `type:"string"` - - // The ID of the instance. - InstanceId *string `type:"string"` - - // The maximum number of targets allowed to run the association at the same - // time. You can specify a number, for example 10, or a percentage of the target - // set, for example 10%. The default value is 100%, which means all targets - // run the association at the same time. - // - // If a new instance starts and attempts to run an association while Systems - // Manager is running MaxConcurrency associations, the association is allowed - // to run. During the next association interval, the new instance will process - // its association within the limit specified for MaxConcurrency. - MaxConcurrency *string `min:"1" type:"string"` - - // The number of errors that are allowed before the system stops sending requests - // to run the association on additional targets. You can specify either an absolute - // number of errors, for example 10, or a percentage of the target set, for - // example 10%. If you specify 3, for example, the system stops sending requests - // when the fourth error is received. If you specify 0, then the system stops - // sending requests after the first error is returned. If you run an association - // on 50 instances and set MaxError to 10%, then the system stops sending the - // request when the sixth error is received. - // - // Executions that are already running an association when MaxErrors is reached - // are allowed to complete, but some of these executions may fail as well. If - // you need to ensure that there won't be more than max-errors failed executions, - // set MaxConcurrency to 1 so that executions proceed one at a time. - MaxErrors *string `min:"1" type:"string"` - - // The name of the SSM document that contains the configuration information - // for the instance. You can specify Command or Automation documents. - // - // You can specify AWS-predefined documents, documents you created, or a document - // that is shared with you from another account. - // - // For SSM documents that are shared with you from other AWS accounts, you must - // specify the complete SSM document ARN, in the following format: - // - // arn:aws:ssm:region:account-id:document/document-name - // - // For example: - // - // arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document - // - // For AWS-predefined documents and SSM documents you created in your account, - // you only need to specify the document name. For example, AWS-ApplyPatchBaseline - // or My-Document. - // - // Name is a required field - Name *string `type:"string" required:"true"` - - // An S3 bucket where you want to store the results of this request. - OutputLocation *InstanceAssociationOutputLocation `type:"structure"` - - // A description of the parameters for a document. - Parameters map[string][]*string `type:"map"` - - // A cron expression that specifies a schedule when the association runs. - ScheduleExpression *string `min:"1" type:"string"` - - // The mode for generating association compliance. You can specify AUTO or MANUAL. - // In AUTO mode, the system uses the status of the association execution to - // determine the compliance status. If the association execution runs successfully, - // then the association is COMPLIANT. If the association execution doesn't run - // successfully, the association is NON-COMPLIANT. - // - // In MANUAL mode, you must specify the AssociationId as a parameter for the - // PutComplianceItems API action. In this case, compliance data is not managed - // by State Manager. It is managed by your direct call to the PutComplianceItems - // API action. - // - // By default, all associations use AUTO mode. - SyncCompliance *string `type:"string" enum:"AssociationSyncCompliance"` - - // Use this action to create an association in multiple Regions and multiple - // accounts. - TargetLocations []*TargetLocation `min:"1" type:"list"` - - // The instances targeted by the request. - Targets []*Target `type:"list"` -} - -// String returns the string representation -func (s CreateAssociationBatchRequestEntry) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateAssociationBatchRequestEntry) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *CreateAssociationBatchRequestEntry) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateAssociationBatchRequestEntry"} - if s.AutomationTargetParameterName != nil && len(*s.AutomationTargetParameterName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AutomationTargetParameterName", 1)) - } - if s.MaxConcurrency != nil && len(*s.MaxConcurrency) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxConcurrency", 1)) - } - if s.MaxErrors != nil && len(*s.MaxErrors) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxErrors", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.ScheduleExpression != nil && len(*s.ScheduleExpression) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ScheduleExpression", 1)) - } - if s.TargetLocations != nil && len(s.TargetLocations) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TargetLocations", 1)) - } - if s.OutputLocation != nil { - if err := s.OutputLocation.Validate(); err != nil { - invalidParams.AddNested("OutputLocation", err.(request.ErrInvalidParams)) - } - } - if s.TargetLocations != nil { - for i, v := range s.TargetLocations { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetLocations", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Targets != nil { - for i, v := range s.Targets { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetApplyOnlyAtCronInterval sets the ApplyOnlyAtCronInterval field's value. -func (s *CreateAssociationBatchRequestEntry) SetApplyOnlyAtCronInterval(v bool) *CreateAssociationBatchRequestEntry { - s.ApplyOnlyAtCronInterval = &v - return s -} - -// SetAssociationName sets the AssociationName field's value. -func (s *CreateAssociationBatchRequestEntry) SetAssociationName(v string) *CreateAssociationBatchRequestEntry { - s.AssociationName = &v - return s -} - -// SetAutomationTargetParameterName sets the AutomationTargetParameterName field's value. -func (s *CreateAssociationBatchRequestEntry) SetAutomationTargetParameterName(v string) *CreateAssociationBatchRequestEntry { - s.AutomationTargetParameterName = &v - return s -} - -// SetComplianceSeverity sets the ComplianceSeverity field's value. -func (s *CreateAssociationBatchRequestEntry) SetComplianceSeverity(v string) *CreateAssociationBatchRequestEntry { - s.ComplianceSeverity = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *CreateAssociationBatchRequestEntry) SetDocumentVersion(v string) *CreateAssociationBatchRequestEntry { - s.DocumentVersion = &v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *CreateAssociationBatchRequestEntry) SetInstanceId(v string) *CreateAssociationBatchRequestEntry { - s.InstanceId = &v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *CreateAssociationBatchRequestEntry) SetMaxConcurrency(v string) *CreateAssociationBatchRequestEntry { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *CreateAssociationBatchRequestEntry) SetMaxErrors(v string) *CreateAssociationBatchRequestEntry { - s.MaxErrors = &v - return s -} - -// SetName sets the Name field's value. -func (s *CreateAssociationBatchRequestEntry) SetName(v string) *CreateAssociationBatchRequestEntry { - s.Name = &v - return s -} - -// SetOutputLocation sets the OutputLocation field's value. -func (s *CreateAssociationBatchRequestEntry) SetOutputLocation(v *InstanceAssociationOutputLocation) *CreateAssociationBatchRequestEntry { - s.OutputLocation = v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *CreateAssociationBatchRequestEntry) SetParameters(v map[string][]*string) *CreateAssociationBatchRequestEntry { - s.Parameters = v - return s -} - -// SetScheduleExpression sets the ScheduleExpression field's value. -func (s *CreateAssociationBatchRequestEntry) SetScheduleExpression(v string) *CreateAssociationBatchRequestEntry { - s.ScheduleExpression = &v - return s -} - -// SetSyncCompliance sets the SyncCompliance field's value. -func (s *CreateAssociationBatchRequestEntry) SetSyncCompliance(v string) *CreateAssociationBatchRequestEntry { - s.SyncCompliance = &v - return s -} - -// SetTargetLocations sets the TargetLocations field's value. -func (s *CreateAssociationBatchRequestEntry) SetTargetLocations(v []*TargetLocation) *CreateAssociationBatchRequestEntry { - s.TargetLocations = v - return s -} - -// SetTargets sets the Targets field's value. -func (s *CreateAssociationBatchRequestEntry) SetTargets(v []*Target) *CreateAssociationBatchRequestEntry { - s.Targets = v - return s -} - -type CreateAssociationInput struct { - _ struct{} `type:"structure"` - - // By default, when you create a new associations, the system runs it immediately - // after it is created and then according to the schedule you specified. Specify - // this option if you don't want an association to run immediately after you - // create it. This parameter is not supported for rate expressions. - ApplyOnlyAtCronInterval *bool `type:"boolean"` - - // Specify a descriptive name for the association. - AssociationName *string `type:"string"` - - // Specify the target for the association. This target is required for associations - // that use an Automation document and target resources by using rate controls. - AutomationTargetParameterName *string `min:"1" type:"string"` - - // The severity level to assign to the association. - ComplianceSeverity *string `type:"string" enum:"AssociationComplianceSeverity"` - - // The document version you want to associate with the target(s). Can be a specific - // version or the default version. - DocumentVersion *string `type:"string"` - - // The instance ID. - // - // InstanceId has been deprecated. To specify an instance ID for an association, - // use the Targets parameter. Requests that include the parameter InstanceID - // with SSM documents that use schema version 2.0 or later will fail. In addition, - // if you use the parameter InstanceId, you cannot use the parameters AssociationName, - // DocumentVersion, MaxErrors, MaxConcurrency, OutputLocation, or ScheduleExpression. - // To use these parameters, you must use the Targets parameter. - InstanceId *string `type:"string"` - - // The maximum number of targets allowed to run the association at the same - // time. You can specify a number, for example 10, or a percentage of the target - // set, for example 10%. The default value is 100%, which means all targets - // run the association at the same time. - // - // If a new instance starts and attempts to run an association while Systems - // Manager is running MaxConcurrency associations, the association is allowed - // to run. During the next association interval, the new instance will process - // its association within the limit specified for MaxConcurrency. - MaxConcurrency *string `min:"1" type:"string"` - - // The number of errors that are allowed before the system stops sending requests - // to run the association on additional targets. You can specify either an absolute - // number of errors, for example 10, or a percentage of the target set, for - // example 10%. If you specify 3, for example, the system stops sending requests - // when the fourth error is received. If you specify 0, then the system stops - // sending requests after the first error is returned. If you run an association - // on 50 instances and set MaxError to 10%, then the system stops sending the - // request when the sixth error is received. - // - // Executions that are already running an association when MaxErrors is reached - // are allowed to complete, but some of these executions may fail as well. If - // you need to ensure that there won't be more than max-errors failed executions, - // set MaxConcurrency to 1 so that executions proceed one at a time. - MaxErrors *string `min:"1" type:"string"` - - // The name of the SSM document that contains the configuration information - // for the instance. You can specify Command or Automation documents. - // - // You can specify AWS-predefined documents, documents you created, or a document - // that is shared with you from another account. - // - // For SSM documents that are shared with you from other AWS accounts, you must - // specify the complete SSM document ARN, in the following format: - // - // arn:partition:ssm:region:account-id:document/document-name - // - // For example: - // - // arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document - // - // For AWS-predefined documents and SSM documents you created in your account, - // you only need to specify the document name. For example, AWS-ApplyPatchBaseline - // or My-Document. - // - // Name is a required field - Name *string `type:"string" required:"true"` - - // An S3 bucket where you want to store the output details of the request. - OutputLocation *InstanceAssociationOutputLocation `type:"structure"` - - // The parameters for the runtime configuration of the document. - Parameters map[string][]*string `type:"map"` - - // A cron expression when the association will be applied to the target(s). - ScheduleExpression *string `min:"1" type:"string"` - - // The mode for generating association compliance. You can specify AUTO or MANUAL. - // In AUTO mode, the system uses the status of the association execution to - // determine the compliance status. If the association execution runs successfully, - // then the association is COMPLIANT. If the association execution doesn't run - // successfully, the association is NON-COMPLIANT. - // - // In MANUAL mode, you must specify the AssociationId as a parameter for the - // PutComplianceItems API action. In this case, compliance data is not managed - // by State Manager. It is managed by your direct call to the PutComplianceItems - // API action. - // - // By default, all associations use AUTO mode. - SyncCompliance *string `type:"string" enum:"AssociationSyncCompliance"` - - // A location is a combination of AWS Regions and AWS accounts where you want - // to run the association. Use this action to create an association in multiple - // Regions and multiple accounts. - TargetLocations []*TargetLocation `min:"1" type:"list"` - - // The targets for the association. You can target instances by using tags, - // AWS Resource Groups, all instances in an AWS account, or individual instance - // IDs. For more information about choosing targets for an association, see - // Using targets and rate controls with State Manager associations (https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-state-manager-targets-and-rate-controls.html) - // in the AWS Systems Manager User Guide. - Targets []*Target `type:"list"` -} - -// String returns the string representation -func (s CreateAssociationInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateAssociationInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *CreateAssociationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateAssociationInput"} - if s.AutomationTargetParameterName != nil && len(*s.AutomationTargetParameterName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AutomationTargetParameterName", 1)) - } - if s.MaxConcurrency != nil && len(*s.MaxConcurrency) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxConcurrency", 1)) - } - if s.MaxErrors != nil && len(*s.MaxErrors) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxErrors", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.ScheduleExpression != nil && len(*s.ScheduleExpression) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ScheduleExpression", 1)) - } - if s.TargetLocations != nil && len(s.TargetLocations) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TargetLocations", 1)) - } - if s.OutputLocation != nil { - if err := s.OutputLocation.Validate(); err != nil { - invalidParams.AddNested("OutputLocation", err.(request.ErrInvalidParams)) - } - } - if s.TargetLocations != nil { - for i, v := range s.TargetLocations { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetLocations", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Targets != nil { - for i, v := range s.Targets { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetApplyOnlyAtCronInterval sets the ApplyOnlyAtCronInterval field's value. -func (s *CreateAssociationInput) SetApplyOnlyAtCronInterval(v bool) *CreateAssociationInput { - s.ApplyOnlyAtCronInterval = &v - return s -} - -// SetAssociationName sets the AssociationName field's value. -func (s *CreateAssociationInput) SetAssociationName(v string) *CreateAssociationInput { - s.AssociationName = &v - return s -} - -// SetAutomationTargetParameterName sets the AutomationTargetParameterName field's value. -func (s *CreateAssociationInput) SetAutomationTargetParameterName(v string) *CreateAssociationInput { - s.AutomationTargetParameterName = &v - return s -} - -// SetComplianceSeverity sets the ComplianceSeverity field's value. -func (s *CreateAssociationInput) SetComplianceSeverity(v string) *CreateAssociationInput { - s.ComplianceSeverity = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *CreateAssociationInput) SetDocumentVersion(v string) *CreateAssociationInput { - s.DocumentVersion = &v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *CreateAssociationInput) SetInstanceId(v string) *CreateAssociationInput { - s.InstanceId = &v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *CreateAssociationInput) SetMaxConcurrency(v string) *CreateAssociationInput { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *CreateAssociationInput) SetMaxErrors(v string) *CreateAssociationInput { - s.MaxErrors = &v - return s -} - -// SetName sets the Name field's value. -func (s *CreateAssociationInput) SetName(v string) *CreateAssociationInput { - s.Name = &v - return s -} - -// SetOutputLocation sets the OutputLocation field's value. -func (s *CreateAssociationInput) SetOutputLocation(v *InstanceAssociationOutputLocation) *CreateAssociationInput { - s.OutputLocation = v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *CreateAssociationInput) SetParameters(v map[string][]*string) *CreateAssociationInput { - s.Parameters = v - return s -} - -// SetScheduleExpression sets the ScheduleExpression field's value. -func (s *CreateAssociationInput) SetScheduleExpression(v string) *CreateAssociationInput { - s.ScheduleExpression = &v - return s -} - -// SetSyncCompliance sets the SyncCompliance field's value. -func (s *CreateAssociationInput) SetSyncCompliance(v string) *CreateAssociationInput { - s.SyncCompliance = &v - return s -} - -// SetTargetLocations sets the TargetLocations field's value. -func (s *CreateAssociationInput) SetTargetLocations(v []*TargetLocation) *CreateAssociationInput { - s.TargetLocations = v - return s -} - -// SetTargets sets the Targets field's value. -func (s *CreateAssociationInput) SetTargets(v []*Target) *CreateAssociationInput { - s.Targets = v - return s -} - -type CreateAssociationOutput struct { - _ struct{} `type:"structure"` - - // Information about the association. - AssociationDescription *AssociationDescription `type:"structure"` -} - -// String returns the string representation -func (s CreateAssociationOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateAssociationOutput) GoString() string { - return s.String() -} - -// SetAssociationDescription sets the AssociationDescription field's value. -func (s *CreateAssociationOutput) SetAssociationDescription(v *AssociationDescription) *CreateAssociationOutput { - s.AssociationDescription = v - return s -} - -type CreateDocumentInput struct { - _ struct{} `type:"structure"` - - // A list of key and value pairs that describe attachments to a version of a - // document. - Attachments []*AttachmentsSource `type:"list"` - - // The content for the new SSM document in JSON or YAML format. We recommend - // storing the contents for your new document in an external JSON or YAML file - // and referencing the file in a command. - // - // For examples, see the following topics in the AWS Systems Manager User Guide. - // - // * Create an SSM document (AWS API) (https://docs.aws.amazon.com/systems-manager/latest/userguide/create-ssm-document-api.html) - // - // * Create an SSM document (AWS CLI) (https://docs.aws.amazon.com/systems-manager/latest/userguide/create-ssm-document-cli.html) - // - // * Create an SSM document (API) (https://docs.aws.amazon.com/systems-manager/latest/userguide/create-ssm-document-api.html) - // - // Content is a required field - Content *string `min:"1" type:"string" required:"true"` - - // Specify the document format for the request. The document format can be JSON, - // YAML, or TEXT. JSON is the default format. - DocumentFormat *string `type:"string" enum:"DocumentFormat"` - - // The type of document to create. - DocumentType *string `type:"string" enum:"DocumentType"` - - // A name for the Systems Manager document. - // - // You can't use the following strings as document name prefixes. These are - // reserved by AWS for use as document name prefixes: - // - // * aws- - // - // * amazon - // - // * amzn - // - // Name is a required field - Name *string `type:"string" required:"true"` - - // A list of SSM documents required by a document. This parameter is used exclusively - // by AWS AppConfig. When a user creates an AppConfig configuration in an SSM - // document, the user must also specify a required document for validation purposes. - // In this case, an ApplicationConfiguration document requires an ApplicationConfigurationSchema - // document for validation purposes. For more information, see AWS AppConfig - // (https://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig.html) - // in the AWS Systems Manager User Guide. - Requires []*DocumentRequires `min:"1" type:"list"` - - // Optional metadata that you assign to a resource. Tags enable you to categorize - // a resource in different ways, such as by purpose, owner, or environment. - // For example, you might want to tag an SSM document to identify the types - // of targets or the environment where it will run. In this case, you could - // specify the following key name/value pairs: - // - // * Key=OS,Value=Windows - // - // * Key=Environment,Value=Production - // - // To add tags to an existing SSM document, use the AddTagsToResource action. - Tags []*Tag `type:"list"` - - // Specify a target type to define the kinds of resources the document can run - // on. For example, to run a document on EC2 instances, specify the following - // value: /AWS::EC2::Instance. If you specify a value of '/' the document can - // run on all types of resources. If you don't specify a value, the document - // can't run on any resources. For a list of valid resource types, see AWS resource - // and property types reference (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) - // in the AWS CloudFormation User Guide. - TargetType *string `type:"string"` - - // An optional field specifying the version of the artifact you are creating - // with the document. For example, "Release 12, Update 6". This value is unique - // across all versions of a document, and cannot be changed. - VersionName *string `type:"string"` -} - -// String returns the string representation -func (s CreateDocumentInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateDocumentInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *CreateDocumentInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateDocumentInput"} - if s.Content == nil { - invalidParams.Add(request.NewErrParamRequired("Content")) - } - if s.Content != nil && len(*s.Content) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Content", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Requires != nil && len(s.Requires) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Requires", 1)) - } - if s.Attachments != nil { - for i, v := range s.Attachments { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Requires != nil { - for i, v := range s.Requires { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Requires", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Tags != nil { - for i, v := range s.Tags { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAttachments sets the Attachments field's value. -func (s *CreateDocumentInput) SetAttachments(v []*AttachmentsSource) *CreateDocumentInput { - s.Attachments = v - return s -} - -// SetContent sets the Content field's value. -func (s *CreateDocumentInput) SetContent(v string) *CreateDocumentInput { - s.Content = &v - return s -} - -// SetDocumentFormat sets the DocumentFormat field's value. -func (s *CreateDocumentInput) SetDocumentFormat(v string) *CreateDocumentInput { - s.DocumentFormat = &v - return s -} - -// SetDocumentType sets the DocumentType field's value. -func (s *CreateDocumentInput) SetDocumentType(v string) *CreateDocumentInput { - s.DocumentType = &v - return s -} - -// SetName sets the Name field's value. -func (s *CreateDocumentInput) SetName(v string) *CreateDocumentInput { - s.Name = &v - return s -} - -// SetRequires sets the Requires field's value. -func (s *CreateDocumentInput) SetRequires(v []*DocumentRequires) *CreateDocumentInput { - s.Requires = v - return s -} - -// SetTags sets the Tags field's value. -func (s *CreateDocumentInput) SetTags(v []*Tag) *CreateDocumentInput { - s.Tags = v - return s -} - -// SetTargetType sets the TargetType field's value. -func (s *CreateDocumentInput) SetTargetType(v string) *CreateDocumentInput { - s.TargetType = &v - return s -} - -// SetVersionName sets the VersionName field's value. -func (s *CreateDocumentInput) SetVersionName(v string) *CreateDocumentInput { - s.VersionName = &v - return s -} - -type CreateDocumentOutput struct { - _ struct{} `type:"structure"` - - // Information about the Systems Manager document. - DocumentDescription *DocumentDescription `type:"structure"` -} - -// String returns the string representation -func (s CreateDocumentOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateDocumentOutput) GoString() string { - return s.String() -} - -// SetDocumentDescription sets the DocumentDescription field's value. -func (s *CreateDocumentOutput) SetDocumentDescription(v *DocumentDescription) *CreateDocumentOutput { - s.DocumentDescription = v - return s -} - -type CreateMaintenanceWindowInput struct { - _ struct{} `type:"structure"` - - // Enables a maintenance window task to run on managed instances, even if you - // have not registered those instances as targets. If enabled, then you must - // specify the unregistered instances (by instance ID) when you register a task - // with the maintenance window. - // - // If you don't enable this option, then you must specify previously-registered - // targets when you register a task with the maintenance window. - // - // AllowUnassociatedTargets is a required field - AllowUnassociatedTargets *bool `type:"boolean" required:"true"` - - // User-provided idempotency token. - ClientToken *string `min:"1" type:"string" idempotencyToken:"true"` - - // The number of hours before the end of the maintenance window that Systems - // Manager stops scheduling new tasks for execution. - // - // Cutoff is a required field - Cutoff *int64 `type:"integer" required:"true"` - - // An optional description for the maintenance window. We recommend specifying - // a description to help you organize your maintenance windows. - Description *string `min:"1" type:"string" sensitive:"true"` - - // The duration of the maintenance window in hours. - // - // Duration is a required field - Duration *int64 `min:"1" type:"integer" required:"true"` - - // The date and time, in ISO-8601 Extended format, for when you want the maintenance - // window to become inactive. EndDate allows you to set a date and time in the - // future when the maintenance window will no longer run. - EndDate *string `type:"string"` - - // The name of the maintenance window. - // - // Name is a required field - Name *string `min:"3" type:"string" required:"true"` - - // The schedule of the maintenance window in the form of a cron or rate expression. - // - // Schedule is a required field - Schedule *string `min:"1" type:"string" required:"true"` - - // The number of days to wait after the date and time specified by a CRON expression - // before running the maintenance window. - // - // For example, the following cron expression schedules a maintenance window - // to run on the third Tuesday of every month at 11:30 PM. - // - // cron(30 23 ? * TUE#3 *) - // - // If the schedule offset is 2, the maintenance window won't run until two days - // later. - ScheduleOffset *int64 `min:"1" type:"integer"` - - // The time zone that the scheduled maintenance window executions are based - // on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", - // "UTC", or "Asia/Seoul". For more information, see the Time Zone Database - // (https://www.iana.org/time-zones) on the IANA website. - ScheduleTimezone *string `type:"string"` - - // The date and time, in ISO-8601 Extended format, for when you want the maintenance - // window to become active. StartDate allows you to delay activation of the - // maintenance window until the specified future date. - StartDate *string `type:"string"` - - // Optional metadata that you assign to a resource. Tags enable you to categorize - // a resource in different ways, such as by purpose, owner, or environment. - // For example, you might want to tag a maintenance window to identify the type - // of tasks it will run, the types of targets, and the environment it will run - // in. In this case, you could specify the following key name/value pairs: - // - // * Key=TaskType,Value=AgentUpdate - // - // * Key=OS,Value=Windows - // - // * Key=Environment,Value=Production - // - // To add tags to an existing maintenance window, use the AddTagsToResource - // action. - Tags []*Tag `type:"list"` -} - -// String returns the string representation -func (s CreateMaintenanceWindowInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateMaintenanceWindowInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *CreateMaintenanceWindowInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateMaintenanceWindowInput"} - if s.AllowUnassociatedTargets == nil { - invalidParams.Add(request.NewErrParamRequired("AllowUnassociatedTargets")) - } - if s.ClientToken != nil && len(*s.ClientToken) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) - } - if s.Cutoff == nil { - invalidParams.Add(request.NewErrParamRequired("Cutoff")) - } - if s.Description != nil && len(*s.Description) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Description", 1)) - } - if s.Duration == nil { - invalidParams.Add(request.NewErrParamRequired("Duration")) - } - if s.Duration != nil && *s.Duration < 1 { - invalidParams.Add(request.NewErrParamMinValue("Duration", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) - } - if s.Schedule == nil { - invalidParams.Add(request.NewErrParamRequired("Schedule")) - } - if s.Schedule != nil && len(*s.Schedule) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Schedule", 1)) - } - if s.ScheduleOffset != nil && *s.ScheduleOffset < 1 { - invalidParams.Add(request.NewErrParamMinValue("ScheduleOffset", 1)) - } - if s.Tags != nil { - for i, v := range s.Tags { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAllowUnassociatedTargets sets the AllowUnassociatedTargets field's value. -func (s *CreateMaintenanceWindowInput) SetAllowUnassociatedTargets(v bool) *CreateMaintenanceWindowInput { - s.AllowUnassociatedTargets = &v - return s -} - -// SetClientToken sets the ClientToken field's value. -func (s *CreateMaintenanceWindowInput) SetClientToken(v string) *CreateMaintenanceWindowInput { - s.ClientToken = &v - return s -} - -// SetCutoff sets the Cutoff field's value. -func (s *CreateMaintenanceWindowInput) SetCutoff(v int64) *CreateMaintenanceWindowInput { - s.Cutoff = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *CreateMaintenanceWindowInput) SetDescription(v string) *CreateMaintenanceWindowInput { - s.Description = &v - return s -} - -// SetDuration sets the Duration field's value. -func (s *CreateMaintenanceWindowInput) SetDuration(v int64) *CreateMaintenanceWindowInput { - s.Duration = &v - return s -} - -// SetEndDate sets the EndDate field's value. -func (s *CreateMaintenanceWindowInput) SetEndDate(v string) *CreateMaintenanceWindowInput { - s.EndDate = &v - return s -} - -// SetName sets the Name field's value. -func (s *CreateMaintenanceWindowInput) SetName(v string) *CreateMaintenanceWindowInput { - s.Name = &v - return s -} - -// SetSchedule sets the Schedule field's value. -func (s *CreateMaintenanceWindowInput) SetSchedule(v string) *CreateMaintenanceWindowInput { - s.Schedule = &v - return s -} - -// SetScheduleOffset sets the ScheduleOffset field's value. -func (s *CreateMaintenanceWindowInput) SetScheduleOffset(v int64) *CreateMaintenanceWindowInput { - s.ScheduleOffset = &v - return s -} - -// SetScheduleTimezone sets the ScheduleTimezone field's value. -func (s *CreateMaintenanceWindowInput) SetScheduleTimezone(v string) *CreateMaintenanceWindowInput { - s.ScheduleTimezone = &v - return s -} - -// SetStartDate sets the StartDate field's value. -func (s *CreateMaintenanceWindowInput) SetStartDate(v string) *CreateMaintenanceWindowInput { - s.StartDate = &v - return s -} - -// SetTags sets the Tags field's value. -func (s *CreateMaintenanceWindowInput) SetTags(v []*Tag) *CreateMaintenanceWindowInput { - s.Tags = v - return s -} - -type CreateMaintenanceWindowOutput struct { - _ struct{} `type:"structure"` - - // The ID of the created maintenance window. - WindowId *string `min:"20" type:"string"` -} - -// String returns the string representation -func (s CreateMaintenanceWindowOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateMaintenanceWindowOutput) GoString() string { - return s.String() -} - -// SetWindowId sets the WindowId field's value. -func (s *CreateMaintenanceWindowOutput) SetWindowId(v string) *CreateMaintenanceWindowOutput { - s.WindowId = &v - return s -} - -type CreateOpsItemInput struct { - _ struct{} `type:"structure"` - - // The time a runbook workflow ended. Currently reported only for the OpsItem - // type /aws/changerequest. - ActualEndTime *time.Time `type:"timestamp"` - - // The time a runbook workflow started. Currently reported only for the OpsItem - // type /aws/changerequest. - ActualStartTime *time.Time `type:"timestamp"` - - // Specify a category to assign to an OpsItem. - Category *string `min:"1" type:"string"` - - // Information about the OpsItem. - // - // Description is a required field - Description *string `min:"1" type:"string" required:"true"` - - // The Amazon Resource Name (ARN) of an SNS topic where notifications are sent - // when this OpsItem is edited or changed. - Notifications []*OpsItemNotification `type:"list"` - - // Operational data is custom data that provides useful reference details about - // the OpsItem. For example, you can specify log files, error strings, license - // keys, troubleshooting tips, or other relevant data. You enter operational - // data as key-value pairs. The key has a maximum length of 128 characters. - // The value has a maximum size of 20 KB. - // - // Operational data keys can't begin with the following: amazon, aws, amzn, - // ssm, /amazon, /aws, /amzn, /ssm. - // - // You can choose to make the data searchable by other users in the account - // or you can restrict search access. Searchable data means that all users with - // access to the OpsItem Overview page (as provided by the DescribeOpsItems - // API action) can view and search on the specified data. Operational data that - // is not searchable is only viewable by users who have access to the OpsItem - // (as provided by the GetOpsItem API action). - // - // Use the /aws/resources key in OperationalData to specify a related resource - // in the request. Use the /aws/automations key in OperationalData to associate - // an Automation runbook with the OpsItem. To view AWS CLI example commands - // that use these keys, see Creating OpsItems manually (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-creating-OpsItems.html#OpsCenter-manually-create-OpsItems) - // in the AWS Systems Manager User Guide. - OperationalData map[string]*OpsItemDataValue `type:"map"` - - // The type of OpsItem to create. Currently, the only valid values are /aws/changerequest - // and /aws/issue. - OpsItemType *string `type:"string"` - - // The time specified in a change request for a runbook workflow to end. Currently - // supported only for the OpsItem type /aws/changerequest. - PlannedEndTime *time.Time `type:"timestamp"` - - // The time specified in a change request for a runbook workflow to start. Currently - // supported only for the OpsItem type /aws/changerequest. - PlannedStartTime *time.Time `type:"timestamp"` - - // The importance of this OpsItem in relation to other OpsItems in the system. - Priority *int64 `min:"1" type:"integer"` - - // One or more OpsItems that share something in common with the current OpsItems. - // For example, related OpsItems can include OpsItems with similar error messages, - // impacted resources, or statuses for the impacted resource. - RelatedOpsItems []*RelatedOpsItem `type:"list"` - - // Specify a severity to assign to an OpsItem. - Severity *string `min:"1" type:"string"` - - // The origin of the OpsItem, such as Amazon EC2 or Systems Manager. - // - // The source name can't contain the following strings: aws, amazon, and amzn. - // - // Source is a required field - Source *string `min:"1" type:"string" required:"true"` - - // Optional metadata that you assign to a resource. You can restrict access - // to OpsItems by using an inline IAM policy that specifies tags. For more information, - // see Getting started with OpsCenter (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html#OpsCenter-getting-started-user-permissions) - // in the AWS Systems Manager User Guide. - // - // Tags use a key-value pair. For example: - // - // Key=Department,Value=Finance - // - // To add tags to an existing OpsItem, use the AddTagsToResource action. - Tags []*Tag `type:"list"` - - // A short heading that describes the nature of the OpsItem and the impacted - // resource. - // - // Title is a required field - Title *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s CreateOpsItemInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateOpsItemInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *CreateOpsItemInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateOpsItemInput"} - if s.Category != nil && len(*s.Category) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Category", 1)) - } - if s.Description == nil { - invalidParams.Add(request.NewErrParamRequired("Description")) - } - if s.Description != nil && len(*s.Description) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Description", 1)) - } - if s.Priority != nil && *s.Priority < 1 { - invalidParams.Add(request.NewErrParamMinValue("Priority", 1)) - } - if s.Severity != nil && len(*s.Severity) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Severity", 1)) - } - if s.Source == nil { - invalidParams.Add(request.NewErrParamRequired("Source")) - } - if s.Source != nil && len(*s.Source) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Source", 1)) - } - if s.Title == nil { - invalidParams.Add(request.NewErrParamRequired("Title")) - } - if s.Title != nil && len(*s.Title) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Title", 1)) - } - if s.RelatedOpsItems != nil { - for i, v := range s.RelatedOpsItems { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RelatedOpsItems", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Tags != nil { - for i, v := range s.Tags { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetActualEndTime sets the ActualEndTime field's value. -func (s *CreateOpsItemInput) SetActualEndTime(v time.Time) *CreateOpsItemInput { - s.ActualEndTime = &v - return s -} - -// SetActualStartTime sets the ActualStartTime field's value. -func (s *CreateOpsItemInput) SetActualStartTime(v time.Time) *CreateOpsItemInput { - s.ActualStartTime = &v - return s -} - -// SetCategory sets the Category field's value. -func (s *CreateOpsItemInput) SetCategory(v string) *CreateOpsItemInput { - s.Category = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *CreateOpsItemInput) SetDescription(v string) *CreateOpsItemInput { - s.Description = &v - return s -} - -// SetNotifications sets the Notifications field's value. -func (s *CreateOpsItemInput) SetNotifications(v []*OpsItemNotification) *CreateOpsItemInput { - s.Notifications = v - return s -} - -// SetOperationalData sets the OperationalData field's value. -func (s *CreateOpsItemInput) SetOperationalData(v map[string]*OpsItemDataValue) *CreateOpsItemInput { - s.OperationalData = v - return s -} - -// SetOpsItemType sets the OpsItemType field's value. -func (s *CreateOpsItemInput) SetOpsItemType(v string) *CreateOpsItemInput { - s.OpsItemType = &v - return s -} - -// SetPlannedEndTime sets the PlannedEndTime field's value. -func (s *CreateOpsItemInput) SetPlannedEndTime(v time.Time) *CreateOpsItemInput { - s.PlannedEndTime = &v - return s -} - -// SetPlannedStartTime sets the PlannedStartTime field's value. -func (s *CreateOpsItemInput) SetPlannedStartTime(v time.Time) *CreateOpsItemInput { - s.PlannedStartTime = &v - return s -} - -// SetPriority sets the Priority field's value. -func (s *CreateOpsItemInput) SetPriority(v int64) *CreateOpsItemInput { - s.Priority = &v - return s -} - -// SetRelatedOpsItems sets the RelatedOpsItems field's value. -func (s *CreateOpsItemInput) SetRelatedOpsItems(v []*RelatedOpsItem) *CreateOpsItemInput { - s.RelatedOpsItems = v - return s -} - -// SetSeverity sets the Severity field's value. -func (s *CreateOpsItemInput) SetSeverity(v string) *CreateOpsItemInput { - s.Severity = &v - return s -} - -// SetSource sets the Source field's value. -func (s *CreateOpsItemInput) SetSource(v string) *CreateOpsItemInput { - s.Source = &v - return s -} - -// SetTags sets the Tags field's value. -func (s *CreateOpsItemInput) SetTags(v []*Tag) *CreateOpsItemInput { - s.Tags = v - return s -} - -// SetTitle sets the Title field's value. -func (s *CreateOpsItemInput) SetTitle(v string) *CreateOpsItemInput { - s.Title = &v - return s -} - -type CreateOpsItemOutput struct { - _ struct{} `type:"structure"` - - // The ID of the OpsItem. - OpsItemId *string `type:"string"` -} - -// String returns the string representation -func (s CreateOpsItemOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateOpsItemOutput) GoString() string { - return s.String() -} - -// SetOpsItemId sets the OpsItemId field's value. -func (s *CreateOpsItemOutput) SetOpsItemId(v string) *CreateOpsItemOutput { - s.OpsItemId = &v - return s -} - -type CreateOpsMetadataInput struct { - _ struct{} `type:"structure"` - - // Metadata for a new Application Manager application. - Metadata map[string]*MetadataValue `min:"1" type:"map"` - - // A resource ID for a new Application Manager application. - // - // ResourceId is a required field - ResourceId *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s CreateOpsMetadataInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateOpsMetadataInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *CreateOpsMetadataInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateOpsMetadataInput"} - if s.Metadata != nil && len(s.Metadata) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Metadata", 1)) - } - if s.ResourceId == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceId")) - } - if s.ResourceId != nil && len(*s.ResourceId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1)) - } - if s.Metadata != nil { - for i, v := range s.Metadata { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Metadata", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetMetadata sets the Metadata field's value. -func (s *CreateOpsMetadataInput) SetMetadata(v map[string]*MetadataValue) *CreateOpsMetadataInput { - s.Metadata = v - return s -} - -// SetResourceId sets the ResourceId field's value. -func (s *CreateOpsMetadataInput) SetResourceId(v string) *CreateOpsMetadataInput { - s.ResourceId = &v - return s -} - -type CreateOpsMetadataOutput struct { - _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) of the OpsMetadata Object or blob created - // by the call. - OpsMetadataArn *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s CreateOpsMetadataOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateOpsMetadataOutput) GoString() string { - return s.String() -} - -// SetOpsMetadataArn sets the OpsMetadataArn field's value. -func (s *CreateOpsMetadataOutput) SetOpsMetadataArn(v string) *CreateOpsMetadataOutput { - s.OpsMetadataArn = &v - return s -} - -type CreatePatchBaselineInput struct { - _ struct{} `type:"structure"` - - // A set of rules used to include patches in the baseline. - ApprovalRules *PatchRuleGroup `type:"structure"` - - // A list of explicitly approved patches for the baseline. - // - // For information about accepted formats for lists of approved patches and - // rejected patches, see About package name formats for approved and rejected - // patch lists (https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html) - // in the AWS Systems Manager User Guide. - ApprovedPatches []*string `type:"list"` - - // Defines the compliance level for approved patches. When an approved patch - // is reported as missing, this value describes the severity of the compliance - // violation. The default value is UNSPECIFIED. - ApprovedPatchesComplianceLevel *string `type:"string" enum:"PatchComplianceLevel"` - - // Indicates whether the list of approved patches includes non-security updates - // that should be applied to the instances. The default value is 'false'. Applies - // to Linux instances only. - ApprovedPatchesEnableNonSecurity *bool `type:"boolean"` - - // User-provided idempotency token. - ClientToken *string `min:"1" type:"string" idempotencyToken:"true"` - - // A description of the patch baseline. - Description *string `min:"1" type:"string"` - - // A set of global filters used to include patches in the baseline. - GlobalFilters *PatchFilterGroup `type:"structure"` - - // The name of the patch baseline. - // - // Name is a required field - Name *string `min:"3" type:"string" required:"true"` - - // Defines the operating system the patch baseline applies to. The Default value - // is WINDOWS. - OperatingSystem *string `type:"string" enum:"OperatingSystem"` - - // A list of explicitly rejected patches for the baseline. - // - // For information about accepted formats for lists of approved patches and - // rejected patches, see About package name formats for approved and rejected - // patch lists (https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html) - // in the AWS Systems Manager User Guide. - RejectedPatches []*string `type:"list"` - - // The action for Patch Manager to take on patches included in the RejectedPackages - // list. - // - // * ALLOW_AS_DEPENDENCY: A package in the Rejected patches list is installed - // only if it is a dependency of another package. It is considered compliant - // with the patch baseline, and its status is reported as InstalledOther. - // This is the default action if no option is specified. - // - // * BLOCK: Packages in the RejectedPatches list, and packages that include - // them as dependencies, are not installed under any circumstances. If a - // package was installed before it was added to the Rejected patches list, - // it is considered non-compliant with the patch baseline, and its status - // is reported as InstalledRejected. - RejectedPatchesAction *string `type:"string" enum:"PatchAction"` - - // Information about the patches to use to update the instances, including target - // operating systems and source repositories. Applies to Linux instances only. - Sources []*PatchSource `type:"list"` - - // Optional metadata that you assign to a resource. Tags enable you to categorize - // a resource in different ways, such as by purpose, owner, or environment. - // For example, you might want to tag a patch baseline to identify the severity - // level of patches it specifies and the operating system family it applies - // to. In this case, you could specify the following key name/value pairs: - // - // * Key=PatchSeverity,Value=Critical - // - // * Key=OS,Value=Windows - // - // To add tags to an existing patch baseline, use the AddTagsToResource action. - Tags []*Tag `type:"list"` -} - -// String returns the string representation -func (s CreatePatchBaselineInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreatePatchBaselineInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *CreatePatchBaselineInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreatePatchBaselineInput"} - if s.ClientToken != nil && len(*s.ClientToken) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) - } - if s.Description != nil && len(*s.Description) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Description", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) - } - if s.ApprovalRules != nil { - if err := s.ApprovalRules.Validate(); err != nil { - invalidParams.AddNested("ApprovalRules", err.(request.ErrInvalidParams)) - } - } - if s.GlobalFilters != nil { - if err := s.GlobalFilters.Validate(); err != nil { - invalidParams.AddNested("GlobalFilters", err.(request.ErrInvalidParams)) - } - } - if s.Sources != nil { - for i, v := range s.Sources { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Sources", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Tags != nil { - for i, v := range s.Tags { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetApprovalRules sets the ApprovalRules field's value. -func (s *CreatePatchBaselineInput) SetApprovalRules(v *PatchRuleGroup) *CreatePatchBaselineInput { - s.ApprovalRules = v - return s -} - -// SetApprovedPatches sets the ApprovedPatches field's value. -func (s *CreatePatchBaselineInput) SetApprovedPatches(v []*string) *CreatePatchBaselineInput { - s.ApprovedPatches = v - return s -} - -// SetApprovedPatchesComplianceLevel sets the ApprovedPatchesComplianceLevel field's value. -func (s *CreatePatchBaselineInput) SetApprovedPatchesComplianceLevel(v string) *CreatePatchBaselineInput { - s.ApprovedPatchesComplianceLevel = &v - return s -} - -// SetApprovedPatchesEnableNonSecurity sets the ApprovedPatchesEnableNonSecurity field's value. -func (s *CreatePatchBaselineInput) SetApprovedPatchesEnableNonSecurity(v bool) *CreatePatchBaselineInput { - s.ApprovedPatchesEnableNonSecurity = &v - return s -} - -// SetClientToken sets the ClientToken field's value. -func (s *CreatePatchBaselineInput) SetClientToken(v string) *CreatePatchBaselineInput { - s.ClientToken = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *CreatePatchBaselineInput) SetDescription(v string) *CreatePatchBaselineInput { - s.Description = &v - return s -} - -// SetGlobalFilters sets the GlobalFilters field's value. -func (s *CreatePatchBaselineInput) SetGlobalFilters(v *PatchFilterGroup) *CreatePatchBaselineInput { - s.GlobalFilters = v - return s -} - -// SetName sets the Name field's value. -func (s *CreatePatchBaselineInput) SetName(v string) *CreatePatchBaselineInput { - s.Name = &v - return s -} - -// SetOperatingSystem sets the OperatingSystem field's value. -func (s *CreatePatchBaselineInput) SetOperatingSystem(v string) *CreatePatchBaselineInput { - s.OperatingSystem = &v - return s -} - -// SetRejectedPatches sets the RejectedPatches field's value. -func (s *CreatePatchBaselineInput) SetRejectedPatches(v []*string) *CreatePatchBaselineInput { - s.RejectedPatches = v - return s -} - -// SetRejectedPatchesAction sets the RejectedPatchesAction field's value. -func (s *CreatePatchBaselineInput) SetRejectedPatchesAction(v string) *CreatePatchBaselineInput { - s.RejectedPatchesAction = &v - return s -} - -// SetSources sets the Sources field's value. -func (s *CreatePatchBaselineInput) SetSources(v []*PatchSource) *CreatePatchBaselineInput { - s.Sources = v - return s -} - -// SetTags sets the Tags field's value. -func (s *CreatePatchBaselineInput) SetTags(v []*Tag) *CreatePatchBaselineInput { - s.Tags = v - return s -} - -type CreatePatchBaselineOutput struct { - _ struct{} `type:"structure"` - - // The ID of the created patch baseline. - BaselineId *string `min:"20" type:"string"` -} - -// String returns the string representation -func (s CreatePatchBaselineOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreatePatchBaselineOutput) GoString() string { - return s.String() -} - -// SetBaselineId sets the BaselineId field's value. -func (s *CreatePatchBaselineOutput) SetBaselineId(v string) *CreatePatchBaselineOutput { - s.BaselineId = &v - return s -} - -type CreateResourceDataSyncInput struct { - _ struct{} `type:"structure"` - - // Amazon S3 configuration details for the sync. This parameter is required - // if the SyncType value is SyncToDestination. - S3Destination *ResourceDataSyncS3Destination `type:"structure"` - - // A name for the configuration. - // - // SyncName is a required field - SyncName *string `min:"1" type:"string" required:"true"` - - // Specify information about the data sources to synchronize. This parameter - // is required if the SyncType value is SyncFromSource. - SyncSource *ResourceDataSyncSource `type:"structure"` - - // Specify SyncToDestination to create a resource data sync that synchronizes - // data to an S3 bucket for Inventory. If you specify SyncToDestination, you - // must provide a value for S3Destination. Specify SyncFromSource to synchronize - // data from a single account and multiple Regions, or multiple AWS accounts - // and Regions, as listed in AWS Organizations for Explorer. If you specify - // SyncFromSource, you must provide a value for SyncSource. The default value - // is SyncToDestination. - SyncType *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s CreateResourceDataSyncInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateResourceDataSyncInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *CreateResourceDataSyncInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateResourceDataSyncInput"} - if s.SyncName == nil { - invalidParams.Add(request.NewErrParamRequired("SyncName")) - } - if s.SyncName != nil && len(*s.SyncName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SyncName", 1)) - } - if s.SyncType != nil && len(*s.SyncType) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SyncType", 1)) - } - if s.S3Destination != nil { - if err := s.S3Destination.Validate(); err != nil { - invalidParams.AddNested("S3Destination", err.(request.ErrInvalidParams)) - } - } - if s.SyncSource != nil { - if err := s.SyncSource.Validate(); err != nil { - invalidParams.AddNested("SyncSource", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetS3Destination sets the S3Destination field's value. -func (s *CreateResourceDataSyncInput) SetS3Destination(v *ResourceDataSyncS3Destination) *CreateResourceDataSyncInput { - s.S3Destination = v - return s -} - -// SetSyncName sets the SyncName field's value. -func (s *CreateResourceDataSyncInput) SetSyncName(v string) *CreateResourceDataSyncInput { - s.SyncName = &v - return s -} - -// SetSyncSource sets the SyncSource field's value. -func (s *CreateResourceDataSyncInput) SetSyncSource(v *ResourceDataSyncSource) *CreateResourceDataSyncInput { - s.SyncSource = v - return s -} - -// SetSyncType sets the SyncType field's value. -func (s *CreateResourceDataSyncInput) SetSyncType(v string) *CreateResourceDataSyncInput { - s.SyncType = &v - return s -} - -type CreateResourceDataSyncOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s CreateResourceDataSyncOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CreateResourceDataSyncOutput) GoString() string { - return s.String() -} - -// You have exceeded the limit for custom schemas. Delete one or more custom -// schemas and try again. -type CustomSchemaCountLimitExceededException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s CustomSchemaCountLimitExceededException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s CustomSchemaCountLimitExceededException) GoString() string { - return s.String() -} - -func newErrorCustomSchemaCountLimitExceededException(v protocol.ResponseMetadata) error { - return &CustomSchemaCountLimitExceededException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *CustomSchemaCountLimitExceededException) Code() string { - return "CustomSchemaCountLimitExceededException" -} - -// Message returns the exception's message. -func (s *CustomSchemaCountLimitExceededException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *CustomSchemaCountLimitExceededException) OrigErr() error { - return nil -} - -func (s *CustomSchemaCountLimitExceededException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *CustomSchemaCountLimitExceededException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *CustomSchemaCountLimitExceededException) RequestID() string { - return s.RespMetadata.RequestID -} - -type DeleteActivationInput struct { - _ struct{} `type:"structure"` - - // The ID of the activation that you want to delete. - // - // ActivationId is a required field - ActivationId *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s DeleteActivationInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteActivationInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteActivationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteActivationInput"} - if s.ActivationId == nil { - invalidParams.Add(request.NewErrParamRequired("ActivationId")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetActivationId sets the ActivationId field's value. -func (s *DeleteActivationInput) SetActivationId(v string) *DeleteActivationInput { - s.ActivationId = &v - return s -} - -type DeleteActivationOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s DeleteActivationOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteActivationOutput) GoString() string { - return s.String() -} - -type DeleteAssociationInput struct { - _ struct{} `type:"structure"` - - // The association ID that you want to delete. - AssociationId *string `type:"string"` - - // The ID of the instance. - InstanceId *string `type:"string"` - - // The name of the Systems Manager document. - Name *string `type:"string"` -} - -// String returns the string representation -func (s DeleteAssociationInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteAssociationInput) GoString() string { - return s.String() -} - -// SetAssociationId sets the AssociationId field's value. -func (s *DeleteAssociationInput) SetAssociationId(v string) *DeleteAssociationInput { - s.AssociationId = &v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *DeleteAssociationInput) SetInstanceId(v string) *DeleteAssociationInput { - s.InstanceId = &v - return s -} - -// SetName sets the Name field's value. -func (s *DeleteAssociationInput) SetName(v string) *DeleteAssociationInput { - s.Name = &v - return s -} - -type DeleteAssociationOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s DeleteAssociationOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteAssociationOutput) GoString() string { - return s.String() -} - -type DeleteDocumentInput struct { - _ struct{} `type:"structure"` - - // The version of the document that you want to delete. If not provided, all - // versions of the document are deleted. - DocumentVersion *string `type:"string"` - - // Some SSM document types require that you specify a Force flag before you - // can delete the document. For example, you must specify a Force flag to delete - // a document of type ApplicationConfigurationSchema. You can restrict access - // to the Force flag in an AWS Identity and Access Management (IAM) policy. - Force *bool `type:"boolean"` - - // The name of the document. - // - // Name is a required field - Name *string `type:"string" required:"true"` - - // The version name of the document that you want to delete. If not provided, - // all versions of the document are deleted. - VersionName *string `type:"string"` -} - -// String returns the string representation -func (s DeleteDocumentInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteDocumentInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteDocumentInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteDocumentInput"} - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *DeleteDocumentInput) SetDocumentVersion(v string) *DeleteDocumentInput { - s.DocumentVersion = &v - return s -} - -// SetForce sets the Force field's value. -func (s *DeleteDocumentInput) SetForce(v bool) *DeleteDocumentInput { - s.Force = &v - return s -} - -// SetName sets the Name field's value. -func (s *DeleteDocumentInput) SetName(v string) *DeleteDocumentInput { - s.Name = &v - return s -} - -// SetVersionName sets the VersionName field's value. -func (s *DeleteDocumentInput) SetVersionName(v string) *DeleteDocumentInput { - s.VersionName = &v - return s -} - -type DeleteDocumentOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s DeleteDocumentOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteDocumentOutput) GoString() string { - return s.String() -} - -type DeleteInventoryInput struct { - _ struct{} `type:"structure"` - - // User-provided idempotency token. - ClientToken *string `type:"string" idempotencyToken:"true"` - - // Use this option to view a summary of the deletion request without deleting - // any data or the data type. This option is useful when you only want to understand - // what will be deleted. Once you validate that the data to be deleted is what - // you intend to delete, you can run the same command without specifying the - // DryRun option. - DryRun *bool `type:"boolean"` - - // Use the SchemaDeleteOption to delete a custom inventory type (schema). If - // you don't choose this option, the system only deletes existing inventory - // data associated with the custom inventory type. Choose one of the following - // options: - // - // DisableSchema: If you choose this option, the system ignores all inventory - // data for the specified version, and any earlier versions. To enable this - // schema again, you must call the PutInventory action for a version greater - // than the disabled version. - // - // DeleteSchema: This option deletes the specified custom type from the Inventory - // service. You can recreate the schema later, if you want. - SchemaDeleteOption *string `type:"string" enum:"InventorySchemaDeleteOption"` - - // The name of the custom inventory type for which you want to delete either - // all previously collected data or the inventory type itself. - // - // TypeName is a required field - TypeName *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s DeleteInventoryInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteInventoryInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteInventoryInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteInventoryInput"} - if s.TypeName == nil { - invalidParams.Add(request.NewErrParamRequired("TypeName")) - } - if s.TypeName != nil && len(*s.TypeName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TypeName", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetClientToken sets the ClientToken field's value. -func (s *DeleteInventoryInput) SetClientToken(v string) *DeleteInventoryInput { - s.ClientToken = &v - return s -} - -// SetDryRun sets the DryRun field's value. -func (s *DeleteInventoryInput) SetDryRun(v bool) *DeleteInventoryInput { - s.DryRun = &v - return s -} - -// SetSchemaDeleteOption sets the SchemaDeleteOption field's value. -func (s *DeleteInventoryInput) SetSchemaDeleteOption(v string) *DeleteInventoryInput { - s.SchemaDeleteOption = &v - return s -} - -// SetTypeName sets the TypeName field's value. -func (s *DeleteInventoryInput) SetTypeName(v string) *DeleteInventoryInput { - s.TypeName = &v - return s -} - -type DeleteInventoryOutput struct { - _ struct{} `type:"structure"` - - // Every DeleteInventory action is assigned a unique ID. This option returns - // a unique ID. You can use this ID to query the status of a delete operation. - // This option is useful for ensuring that a delete operation has completed - // before you begin other actions. - DeletionId *string `type:"string"` - - // A summary of the delete operation. For more information about this summary, - // see Deleting custom inventory (https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-custom.html#sysman-inventory-delete-summary) - // in the AWS Systems Manager User Guide. - DeletionSummary *InventoryDeletionSummary `type:"structure"` - - // The name of the inventory data type specified in the request. - TypeName *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s DeleteInventoryOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteInventoryOutput) GoString() string { - return s.String() -} - -// SetDeletionId sets the DeletionId field's value. -func (s *DeleteInventoryOutput) SetDeletionId(v string) *DeleteInventoryOutput { - s.DeletionId = &v - return s -} - -// SetDeletionSummary sets the DeletionSummary field's value. -func (s *DeleteInventoryOutput) SetDeletionSummary(v *InventoryDeletionSummary) *DeleteInventoryOutput { - s.DeletionSummary = v - return s -} - -// SetTypeName sets the TypeName field's value. -func (s *DeleteInventoryOutput) SetTypeName(v string) *DeleteInventoryOutput { - s.TypeName = &v - return s -} - -type DeleteMaintenanceWindowInput struct { - _ struct{} `type:"structure"` - - // The ID of the maintenance window to delete. - // - // WindowId is a required field - WindowId *string `min:"20" type:"string" required:"true"` -} - -// String returns the string representation -func (s DeleteMaintenanceWindowInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteMaintenanceWindowInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteMaintenanceWindowInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteMaintenanceWindowInput"} - if s.WindowId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowId")) - } - if s.WindowId != nil && len(*s.WindowId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("WindowId", 20)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetWindowId sets the WindowId field's value. -func (s *DeleteMaintenanceWindowInput) SetWindowId(v string) *DeleteMaintenanceWindowInput { - s.WindowId = &v - return s -} - -type DeleteMaintenanceWindowOutput struct { - _ struct{} `type:"structure"` - - // The ID of the deleted maintenance window. - WindowId *string `min:"20" type:"string"` -} - -// String returns the string representation -func (s DeleteMaintenanceWindowOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteMaintenanceWindowOutput) GoString() string { - return s.String() -} - -// SetWindowId sets the WindowId field's value. -func (s *DeleteMaintenanceWindowOutput) SetWindowId(v string) *DeleteMaintenanceWindowOutput { - s.WindowId = &v - return s -} - -type DeleteOpsMetadataInput struct { - _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) of an OpsMetadata Object to delete. - // - // OpsMetadataArn is a required field - OpsMetadataArn *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s DeleteOpsMetadataInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteOpsMetadataInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteOpsMetadataInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteOpsMetadataInput"} - if s.OpsMetadataArn == nil { - invalidParams.Add(request.NewErrParamRequired("OpsMetadataArn")) - } - if s.OpsMetadataArn != nil && len(*s.OpsMetadataArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("OpsMetadataArn", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetOpsMetadataArn sets the OpsMetadataArn field's value. -func (s *DeleteOpsMetadataInput) SetOpsMetadataArn(v string) *DeleteOpsMetadataInput { - s.OpsMetadataArn = &v - return s -} - -type DeleteOpsMetadataOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s DeleteOpsMetadataOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteOpsMetadataOutput) GoString() string { - return s.String() -} - -type DeleteParameterInput struct { - _ struct{} `type:"structure"` - - // The name of the parameter to delete. - // - // Name is a required field - Name *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s DeleteParameterInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteParameterInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteParameterInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteParameterInput"} - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Name", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetName sets the Name field's value. -func (s *DeleteParameterInput) SetName(v string) *DeleteParameterInput { - s.Name = &v - return s -} - -type DeleteParameterOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s DeleteParameterOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteParameterOutput) GoString() string { - return s.String() -} - -type DeleteParametersInput struct { - _ struct{} `type:"structure"` - - // The names of the parameters to delete. - // - // Names is a required field - Names []*string `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s DeleteParametersInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteParametersInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteParametersInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteParametersInput"} - if s.Names == nil { - invalidParams.Add(request.NewErrParamRequired("Names")) - } - if s.Names != nil && len(s.Names) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Names", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetNames sets the Names field's value. -func (s *DeleteParametersInput) SetNames(v []*string) *DeleteParametersInput { - s.Names = v - return s -} - -type DeleteParametersOutput struct { - _ struct{} `type:"structure"` - - // The names of the deleted parameters. - DeletedParameters []*string `min:"1" type:"list"` - - // The names of parameters that weren't deleted because the parameters are not - // valid. - InvalidParameters []*string `min:"1" type:"list"` -} - -// String returns the string representation -func (s DeleteParametersOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteParametersOutput) GoString() string { - return s.String() -} - -// SetDeletedParameters sets the DeletedParameters field's value. -func (s *DeleteParametersOutput) SetDeletedParameters(v []*string) *DeleteParametersOutput { - s.DeletedParameters = v - return s -} - -// SetInvalidParameters sets the InvalidParameters field's value. -func (s *DeleteParametersOutput) SetInvalidParameters(v []*string) *DeleteParametersOutput { - s.InvalidParameters = v - return s -} - -type DeletePatchBaselineInput struct { - _ struct{} `type:"structure"` - - // The ID of the patch baseline to delete. - // - // BaselineId is a required field - BaselineId *string `min:"20" type:"string" required:"true"` -} - -// String returns the string representation -func (s DeletePatchBaselineInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeletePatchBaselineInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeletePatchBaselineInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeletePatchBaselineInput"} - if s.BaselineId == nil { - invalidParams.Add(request.NewErrParamRequired("BaselineId")) - } - if s.BaselineId != nil && len(*s.BaselineId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("BaselineId", 20)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetBaselineId sets the BaselineId field's value. -func (s *DeletePatchBaselineInput) SetBaselineId(v string) *DeletePatchBaselineInput { - s.BaselineId = &v - return s -} - -type DeletePatchBaselineOutput struct { - _ struct{} `type:"structure"` - - // The ID of the deleted patch baseline. - BaselineId *string `min:"20" type:"string"` -} - -// String returns the string representation -func (s DeletePatchBaselineOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeletePatchBaselineOutput) GoString() string { - return s.String() -} - -// SetBaselineId sets the BaselineId field's value. -func (s *DeletePatchBaselineOutput) SetBaselineId(v string) *DeletePatchBaselineOutput { - s.BaselineId = &v - return s -} - -type DeleteResourceDataSyncInput struct { - _ struct{} `type:"structure"` - - // The name of the configuration to delete. - // - // SyncName is a required field - SyncName *string `min:"1" type:"string" required:"true"` - - // Specify the type of resource data sync to delete. - SyncType *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s DeleteResourceDataSyncInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteResourceDataSyncInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteResourceDataSyncInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteResourceDataSyncInput"} - if s.SyncName == nil { - invalidParams.Add(request.NewErrParamRequired("SyncName")) - } - if s.SyncName != nil && len(*s.SyncName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SyncName", 1)) - } - if s.SyncType != nil && len(*s.SyncType) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SyncType", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetSyncName sets the SyncName field's value. -func (s *DeleteResourceDataSyncInput) SetSyncName(v string) *DeleteResourceDataSyncInput { - s.SyncName = &v - return s -} - -// SetSyncType sets the SyncType field's value. -func (s *DeleteResourceDataSyncInput) SetSyncType(v string) *DeleteResourceDataSyncInput { - s.SyncType = &v - return s -} - -type DeleteResourceDataSyncOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s DeleteResourceDataSyncOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeleteResourceDataSyncOutput) GoString() string { - return s.String() -} - -type DeregisterManagedInstanceInput struct { - _ struct{} `type:"structure"` - - // The ID assigned to the managed instance when you registered it using the - // activation process. - // - // InstanceId is a required field - InstanceId *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s DeregisterManagedInstanceInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeregisterManagedInstanceInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeregisterManagedInstanceInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeregisterManagedInstanceInput"} - if s.InstanceId == nil { - invalidParams.Add(request.NewErrParamRequired("InstanceId")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetInstanceId sets the InstanceId field's value. -func (s *DeregisterManagedInstanceInput) SetInstanceId(v string) *DeregisterManagedInstanceInput { - s.InstanceId = &v - return s -} - -type DeregisterManagedInstanceOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s DeregisterManagedInstanceOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeregisterManagedInstanceOutput) GoString() string { - return s.String() -} - -type DeregisterPatchBaselineForPatchGroupInput struct { - _ struct{} `type:"structure"` - - // The ID of the patch baseline to deregister the patch group from. - // - // BaselineId is a required field - BaselineId *string `min:"20" type:"string" required:"true"` - - // The name of the patch group that should be deregistered from the patch baseline. - // - // PatchGroup is a required field - PatchGroup *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s DeregisterPatchBaselineForPatchGroupInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeregisterPatchBaselineForPatchGroupInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeregisterPatchBaselineForPatchGroupInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeregisterPatchBaselineForPatchGroupInput"} - if s.BaselineId == nil { - invalidParams.Add(request.NewErrParamRequired("BaselineId")) - } - if s.BaselineId != nil && len(*s.BaselineId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("BaselineId", 20)) - } - if s.PatchGroup == nil { - invalidParams.Add(request.NewErrParamRequired("PatchGroup")) - } - if s.PatchGroup != nil && len(*s.PatchGroup) < 1 { - invalidParams.Add(request.NewErrParamMinLen("PatchGroup", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetBaselineId sets the BaselineId field's value. -func (s *DeregisterPatchBaselineForPatchGroupInput) SetBaselineId(v string) *DeregisterPatchBaselineForPatchGroupInput { - s.BaselineId = &v - return s -} - -// SetPatchGroup sets the PatchGroup field's value. -func (s *DeregisterPatchBaselineForPatchGroupInput) SetPatchGroup(v string) *DeregisterPatchBaselineForPatchGroupInput { - s.PatchGroup = &v - return s -} - -type DeregisterPatchBaselineForPatchGroupOutput struct { - _ struct{} `type:"structure"` - - // The ID of the patch baseline the patch group was deregistered from. - BaselineId *string `min:"20" type:"string"` - - // The name of the patch group deregistered from the patch baseline. - PatchGroup *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s DeregisterPatchBaselineForPatchGroupOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeregisterPatchBaselineForPatchGroupOutput) GoString() string { - return s.String() -} - -// SetBaselineId sets the BaselineId field's value. -func (s *DeregisterPatchBaselineForPatchGroupOutput) SetBaselineId(v string) *DeregisterPatchBaselineForPatchGroupOutput { - s.BaselineId = &v - return s -} - -// SetPatchGroup sets the PatchGroup field's value. -func (s *DeregisterPatchBaselineForPatchGroupOutput) SetPatchGroup(v string) *DeregisterPatchBaselineForPatchGroupOutput { - s.PatchGroup = &v - return s -} - -type DeregisterTargetFromMaintenanceWindowInput struct { - _ struct{} `type:"structure"` - - // The system checks if the target is being referenced by a task. If the target - // is being referenced, the system returns an error and does not deregister - // the target from the maintenance window. - Safe *bool `type:"boolean"` - - // The ID of the maintenance window the target should be removed from. - // - // WindowId is a required field - WindowId *string `min:"20" type:"string" required:"true"` - - // The ID of the target definition to remove. - // - // WindowTargetId is a required field - WindowTargetId *string `min:"36" type:"string" required:"true"` -} - -// String returns the string representation -func (s DeregisterTargetFromMaintenanceWindowInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeregisterTargetFromMaintenanceWindowInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeregisterTargetFromMaintenanceWindowInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeregisterTargetFromMaintenanceWindowInput"} - if s.WindowId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowId")) - } - if s.WindowId != nil && len(*s.WindowId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("WindowId", 20)) - } - if s.WindowTargetId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowTargetId")) - } - if s.WindowTargetId != nil && len(*s.WindowTargetId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("WindowTargetId", 36)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetSafe sets the Safe field's value. -func (s *DeregisterTargetFromMaintenanceWindowInput) SetSafe(v bool) *DeregisterTargetFromMaintenanceWindowInput { - s.Safe = &v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *DeregisterTargetFromMaintenanceWindowInput) SetWindowId(v string) *DeregisterTargetFromMaintenanceWindowInput { - s.WindowId = &v - return s -} - -// SetWindowTargetId sets the WindowTargetId field's value. -func (s *DeregisterTargetFromMaintenanceWindowInput) SetWindowTargetId(v string) *DeregisterTargetFromMaintenanceWindowInput { - s.WindowTargetId = &v - return s -} - -type DeregisterTargetFromMaintenanceWindowOutput struct { - _ struct{} `type:"structure"` - - // The ID of the maintenance window the target was removed from. - WindowId *string `min:"20" type:"string"` - - // The ID of the removed target definition. - WindowTargetId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s DeregisterTargetFromMaintenanceWindowOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeregisterTargetFromMaintenanceWindowOutput) GoString() string { - return s.String() -} - -// SetWindowId sets the WindowId field's value. -func (s *DeregisterTargetFromMaintenanceWindowOutput) SetWindowId(v string) *DeregisterTargetFromMaintenanceWindowOutput { - s.WindowId = &v - return s -} - -// SetWindowTargetId sets the WindowTargetId field's value. -func (s *DeregisterTargetFromMaintenanceWindowOutput) SetWindowTargetId(v string) *DeregisterTargetFromMaintenanceWindowOutput { - s.WindowTargetId = &v - return s -} - -type DeregisterTaskFromMaintenanceWindowInput struct { - _ struct{} `type:"structure"` - - // The ID of the maintenance window the task should be removed from. - // - // WindowId is a required field - WindowId *string `min:"20" type:"string" required:"true"` - - // The ID of the task to remove from the maintenance window. - // - // WindowTaskId is a required field - WindowTaskId *string `min:"36" type:"string" required:"true"` -} - -// String returns the string representation -func (s DeregisterTaskFromMaintenanceWindowInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeregisterTaskFromMaintenanceWindowInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DeregisterTaskFromMaintenanceWindowInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeregisterTaskFromMaintenanceWindowInput"} - if s.WindowId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowId")) - } - if s.WindowId != nil && len(*s.WindowId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("WindowId", 20)) - } - if s.WindowTaskId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowTaskId")) - } - if s.WindowTaskId != nil && len(*s.WindowTaskId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("WindowTaskId", 36)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetWindowId sets the WindowId field's value. -func (s *DeregisterTaskFromMaintenanceWindowInput) SetWindowId(v string) *DeregisterTaskFromMaintenanceWindowInput { - s.WindowId = &v - return s -} - -// SetWindowTaskId sets the WindowTaskId field's value. -func (s *DeregisterTaskFromMaintenanceWindowInput) SetWindowTaskId(v string) *DeregisterTaskFromMaintenanceWindowInput { - s.WindowTaskId = &v - return s -} - -type DeregisterTaskFromMaintenanceWindowOutput struct { - _ struct{} `type:"structure"` - - // The ID of the maintenance window the task was removed from. - WindowId *string `min:"20" type:"string"` - - // The ID of the task removed from the maintenance window. - WindowTaskId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s DeregisterTaskFromMaintenanceWindowOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DeregisterTaskFromMaintenanceWindowOutput) GoString() string { - return s.String() -} - -// SetWindowId sets the WindowId field's value. -func (s *DeregisterTaskFromMaintenanceWindowOutput) SetWindowId(v string) *DeregisterTaskFromMaintenanceWindowOutput { - s.WindowId = &v - return s -} - -// SetWindowTaskId sets the WindowTaskId field's value. -func (s *DeregisterTaskFromMaintenanceWindowOutput) SetWindowTaskId(v string) *DeregisterTaskFromMaintenanceWindowOutput { - s.WindowTaskId = &v - return s -} - -// Filter for the DescribeActivation API. -type DescribeActivationsFilter struct { - _ struct{} `type:"structure"` - - // The name of the filter. - FilterKey *string `type:"string" enum:"DescribeActivationsFilterKeys"` - - // The filter values. - FilterValues []*string `type:"list"` -} - -// String returns the string representation -func (s DescribeActivationsFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeActivationsFilter) GoString() string { - return s.String() -} - -// SetFilterKey sets the FilterKey field's value. -func (s *DescribeActivationsFilter) SetFilterKey(v string) *DescribeActivationsFilter { - s.FilterKey = &v - return s -} - -// SetFilterValues sets the FilterValues field's value. -func (s *DescribeActivationsFilter) SetFilterValues(v []*string) *DescribeActivationsFilter { - s.FilterValues = v - return s -} - -type DescribeActivationsInput struct { - _ struct{} `type:"structure"` - - // A filter to view information about your activations. - Filters []*DescribeActivationsFilter `type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // A token to start the list. Use this token to get the next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeActivationsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeActivationsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeActivationsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeActivationsInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribeActivationsInput) SetFilters(v []*DescribeActivationsFilter) *DescribeActivationsInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeActivationsInput) SetMaxResults(v int64) *DescribeActivationsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeActivationsInput) SetNextToken(v string) *DescribeActivationsInput { - s.NextToken = &v - return s -} - -type DescribeActivationsOutput struct { - _ struct{} `type:"structure"` - - // A list of activations for your AWS account. - ActivationList []*Activation `type:"list"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeActivationsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeActivationsOutput) GoString() string { - return s.String() -} - -// SetActivationList sets the ActivationList field's value. -func (s *DescribeActivationsOutput) SetActivationList(v []*Activation) *DescribeActivationsOutput { - s.ActivationList = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeActivationsOutput) SetNextToken(v string) *DescribeActivationsOutput { - s.NextToken = &v - return s -} - -type DescribeAssociationExecutionTargetsInput struct { - _ struct{} `type:"structure"` - - // The association ID that includes the execution for which you want to view - // details. - // - // AssociationId is a required field - AssociationId *string `type:"string" required:"true"` - - // The execution ID for which you want to view details. - // - // ExecutionId is a required field - ExecutionId *string `type:"string" required:"true"` - - // Filters for the request. You can specify the following filters and values. - // - // Status (EQUAL) - // - // ResourceId (EQUAL) - // - // ResourceType (EQUAL) - Filters []*AssociationExecutionTargetsFilter `min:"1" type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // A token to start the list. Use this token to get the next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeAssociationExecutionTargetsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeAssociationExecutionTargetsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeAssociationExecutionTargetsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeAssociationExecutionTargetsInput"} - if s.AssociationId == nil { - invalidParams.Add(request.NewErrParamRequired("AssociationId")) - } - if s.ExecutionId == nil { - invalidParams.Add(request.NewErrParamRequired("ExecutionId")) - } - if s.Filters != nil && len(s.Filters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Filters", 1)) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAssociationId sets the AssociationId field's value. -func (s *DescribeAssociationExecutionTargetsInput) SetAssociationId(v string) *DescribeAssociationExecutionTargetsInput { - s.AssociationId = &v - return s -} - -// SetExecutionId sets the ExecutionId field's value. -func (s *DescribeAssociationExecutionTargetsInput) SetExecutionId(v string) *DescribeAssociationExecutionTargetsInput { - s.ExecutionId = &v - return s -} - -// SetFilters sets the Filters field's value. -func (s *DescribeAssociationExecutionTargetsInput) SetFilters(v []*AssociationExecutionTargetsFilter) *DescribeAssociationExecutionTargetsInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeAssociationExecutionTargetsInput) SetMaxResults(v int64) *DescribeAssociationExecutionTargetsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeAssociationExecutionTargetsInput) SetNextToken(v string) *DescribeAssociationExecutionTargetsInput { - s.NextToken = &v - return s -} - -type DescribeAssociationExecutionTargetsOutput struct { - _ struct{} `type:"structure"` - - // Information about the execution. - AssociationExecutionTargets []*AssociationExecutionTarget `type:"list"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeAssociationExecutionTargetsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeAssociationExecutionTargetsOutput) GoString() string { - return s.String() -} - -// SetAssociationExecutionTargets sets the AssociationExecutionTargets field's value. -func (s *DescribeAssociationExecutionTargetsOutput) SetAssociationExecutionTargets(v []*AssociationExecutionTarget) *DescribeAssociationExecutionTargetsOutput { - s.AssociationExecutionTargets = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeAssociationExecutionTargetsOutput) SetNextToken(v string) *DescribeAssociationExecutionTargetsOutput { - s.NextToken = &v - return s -} - -type DescribeAssociationExecutionsInput struct { - _ struct{} `type:"structure"` - - // The association ID for which you want to view execution history details. - // - // AssociationId is a required field - AssociationId *string `type:"string" required:"true"` - - // Filters for the request. You can specify the following filters and values. - // - // ExecutionId (EQUAL) - // - // Status (EQUAL) - // - // CreatedTime (EQUAL, GREATER_THAN, LESS_THAN) - Filters []*AssociationExecutionFilter `min:"1" type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // A token to start the list. Use this token to get the next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeAssociationExecutionsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeAssociationExecutionsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeAssociationExecutionsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeAssociationExecutionsInput"} - if s.AssociationId == nil { - invalidParams.Add(request.NewErrParamRequired("AssociationId")) - } - if s.Filters != nil && len(s.Filters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Filters", 1)) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAssociationId sets the AssociationId field's value. -func (s *DescribeAssociationExecutionsInput) SetAssociationId(v string) *DescribeAssociationExecutionsInput { - s.AssociationId = &v - return s -} - -// SetFilters sets the Filters field's value. -func (s *DescribeAssociationExecutionsInput) SetFilters(v []*AssociationExecutionFilter) *DescribeAssociationExecutionsInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeAssociationExecutionsInput) SetMaxResults(v int64) *DescribeAssociationExecutionsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeAssociationExecutionsInput) SetNextToken(v string) *DescribeAssociationExecutionsInput { - s.NextToken = &v - return s -} - -type DescribeAssociationExecutionsOutput struct { - _ struct{} `type:"structure"` - - // A list of the executions for the specified association ID. - AssociationExecutions []*AssociationExecution `type:"list"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeAssociationExecutionsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeAssociationExecutionsOutput) GoString() string { - return s.String() -} - -// SetAssociationExecutions sets the AssociationExecutions field's value. -func (s *DescribeAssociationExecutionsOutput) SetAssociationExecutions(v []*AssociationExecution) *DescribeAssociationExecutionsOutput { - s.AssociationExecutions = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeAssociationExecutionsOutput) SetNextToken(v string) *DescribeAssociationExecutionsOutput { - s.NextToken = &v - return s -} - -type DescribeAssociationInput struct { - _ struct{} `type:"structure"` - - // The association ID for which you want information. - AssociationId *string `type:"string"` - - // Specify the association version to retrieve. To view the latest version, - // either specify $LATEST for this parameter, or omit this parameter. To view - // a list of all associations for an instance, use ListAssociations. To get - // a list of versions for a specific association, use ListAssociationVersions. - AssociationVersion *string `type:"string"` - - // The instance ID. - InstanceId *string `type:"string"` - - // The name of the Systems Manager document. - Name *string `type:"string"` -} - -// String returns the string representation -func (s DescribeAssociationInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeAssociationInput) GoString() string { - return s.String() -} - -// SetAssociationId sets the AssociationId field's value. -func (s *DescribeAssociationInput) SetAssociationId(v string) *DescribeAssociationInput { - s.AssociationId = &v - return s -} - -// SetAssociationVersion sets the AssociationVersion field's value. -func (s *DescribeAssociationInput) SetAssociationVersion(v string) *DescribeAssociationInput { - s.AssociationVersion = &v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *DescribeAssociationInput) SetInstanceId(v string) *DescribeAssociationInput { - s.InstanceId = &v - return s -} - -// SetName sets the Name field's value. -func (s *DescribeAssociationInput) SetName(v string) *DescribeAssociationInput { - s.Name = &v - return s -} - -type DescribeAssociationOutput struct { - _ struct{} `type:"structure"` - - // Information about the association. - AssociationDescription *AssociationDescription `type:"structure"` -} - -// String returns the string representation -func (s DescribeAssociationOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeAssociationOutput) GoString() string { - return s.String() -} - -// SetAssociationDescription sets the AssociationDescription field's value. -func (s *DescribeAssociationOutput) SetAssociationDescription(v *AssociationDescription) *DescribeAssociationOutput { - s.AssociationDescription = v - return s -} - -type DescribeAutomationExecutionsInput struct { - _ struct{} `type:"structure"` - - // Filters used to limit the scope of executions that are requested. - Filters []*AutomationExecutionFilter `min:"1" type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeAutomationExecutionsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeAutomationExecutionsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeAutomationExecutionsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeAutomationExecutionsInput"} - if s.Filters != nil && len(s.Filters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Filters", 1)) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribeAutomationExecutionsInput) SetFilters(v []*AutomationExecutionFilter) *DescribeAutomationExecutionsInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeAutomationExecutionsInput) SetMaxResults(v int64) *DescribeAutomationExecutionsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeAutomationExecutionsInput) SetNextToken(v string) *DescribeAutomationExecutionsInput { - s.NextToken = &v - return s -} - -type DescribeAutomationExecutionsOutput struct { - _ struct{} `type:"structure"` - - // The list of details about each automation execution which has occurred which - // matches the filter specification, if any. - AutomationExecutionMetadataList []*AutomationExecutionMetadata `type:"list"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeAutomationExecutionsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeAutomationExecutionsOutput) GoString() string { - return s.String() -} - -// SetAutomationExecutionMetadataList sets the AutomationExecutionMetadataList field's value. -func (s *DescribeAutomationExecutionsOutput) SetAutomationExecutionMetadataList(v []*AutomationExecutionMetadata) *DescribeAutomationExecutionsOutput { - s.AutomationExecutionMetadataList = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeAutomationExecutionsOutput) SetNextToken(v string) *DescribeAutomationExecutionsOutput { - s.NextToken = &v - return s -} - -type DescribeAutomationStepExecutionsInput struct { - _ struct{} `type:"structure"` - - // The Automation execution ID for which you want step execution descriptions. - // - // AutomationExecutionId is a required field - AutomationExecutionId *string `min:"36" type:"string" required:"true"` - - // One or more filters to limit the number of step executions returned by the - // request. - Filters []*StepExecutionFilter `min:"1" type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // A boolean that indicates whether to list step executions in reverse order - // by start time. The default value is false. - ReverseOrder *bool `type:"boolean"` -} - -// String returns the string representation -func (s DescribeAutomationStepExecutionsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeAutomationStepExecutionsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeAutomationStepExecutionsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeAutomationStepExecutionsInput"} - if s.AutomationExecutionId == nil { - invalidParams.Add(request.NewErrParamRequired("AutomationExecutionId")) - } - if s.AutomationExecutionId != nil && len(*s.AutomationExecutionId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("AutomationExecutionId", 36)) - } - if s.Filters != nil && len(s.Filters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Filters", 1)) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAutomationExecutionId sets the AutomationExecutionId field's value. -func (s *DescribeAutomationStepExecutionsInput) SetAutomationExecutionId(v string) *DescribeAutomationStepExecutionsInput { - s.AutomationExecutionId = &v - return s -} - -// SetFilters sets the Filters field's value. -func (s *DescribeAutomationStepExecutionsInput) SetFilters(v []*StepExecutionFilter) *DescribeAutomationStepExecutionsInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeAutomationStepExecutionsInput) SetMaxResults(v int64) *DescribeAutomationStepExecutionsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeAutomationStepExecutionsInput) SetNextToken(v string) *DescribeAutomationStepExecutionsInput { - s.NextToken = &v - return s -} - -// SetReverseOrder sets the ReverseOrder field's value. -func (s *DescribeAutomationStepExecutionsInput) SetReverseOrder(v bool) *DescribeAutomationStepExecutionsInput { - s.ReverseOrder = &v - return s -} - -type DescribeAutomationStepExecutionsOutput struct { - _ struct{} `type:"structure"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` - - // A list of details about the current state of all steps that make up an execution. - StepExecutions []*StepExecution `type:"list"` -} - -// String returns the string representation -func (s DescribeAutomationStepExecutionsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeAutomationStepExecutionsOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeAutomationStepExecutionsOutput) SetNextToken(v string) *DescribeAutomationStepExecutionsOutput { - s.NextToken = &v - return s -} - -// SetStepExecutions sets the StepExecutions field's value. -func (s *DescribeAutomationStepExecutionsOutput) SetStepExecutions(v []*StepExecution) *DescribeAutomationStepExecutionsOutput { - s.StepExecutions = v - return s -} - -type DescribeAvailablePatchesInput struct { - _ struct{} `type:"structure"` - - // Filters used to scope down the returned patches. - Filters []*PatchOrchestratorFilter `type:"list"` - - // The maximum number of patches to return (per page). - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeAvailablePatchesInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeAvailablePatchesInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeAvailablePatchesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeAvailablePatchesInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribeAvailablePatchesInput) SetFilters(v []*PatchOrchestratorFilter) *DescribeAvailablePatchesInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeAvailablePatchesInput) SetMaxResults(v int64) *DescribeAvailablePatchesInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeAvailablePatchesInput) SetNextToken(v string) *DescribeAvailablePatchesInput { - s.NextToken = &v - return s -} - -type DescribeAvailablePatchesOutput struct { - _ struct{} `type:"structure"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` - - // An array of patches. Each entry in the array is a patch structure. - Patches []*Patch `type:"list"` -} - -// String returns the string representation -func (s DescribeAvailablePatchesOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeAvailablePatchesOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeAvailablePatchesOutput) SetNextToken(v string) *DescribeAvailablePatchesOutput { - s.NextToken = &v - return s -} - -// SetPatches sets the Patches field's value. -func (s *DescribeAvailablePatchesOutput) SetPatches(v []*Patch) *DescribeAvailablePatchesOutput { - s.Patches = v - return s -} - -type DescribeDocumentInput struct { - _ struct{} `type:"structure"` - - // The document version for which you want information. Can be a specific version - // or the default version. - DocumentVersion *string `type:"string"` - - // The name of the Systems Manager document. - // - // Name is a required field - Name *string `type:"string" required:"true"` - - // An optional field specifying the version of the artifact associated with - // the document. For example, "Release 12, Update 6". This value is unique across - // all versions of a document, and cannot be changed. - VersionName *string `type:"string"` -} - -// String returns the string representation -func (s DescribeDocumentInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeDocumentInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeDocumentInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeDocumentInput"} - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *DescribeDocumentInput) SetDocumentVersion(v string) *DescribeDocumentInput { - s.DocumentVersion = &v - return s -} - -// SetName sets the Name field's value. -func (s *DescribeDocumentInput) SetName(v string) *DescribeDocumentInput { - s.Name = &v - return s -} - -// SetVersionName sets the VersionName field's value. -func (s *DescribeDocumentInput) SetVersionName(v string) *DescribeDocumentInput { - s.VersionName = &v - return s -} - -type DescribeDocumentOutput struct { - _ struct{} `type:"structure"` - - // Information about the Systems Manager document. - Document *DocumentDescription `type:"structure"` -} - -// String returns the string representation -func (s DescribeDocumentOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeDocumentOutput) GoString() string { - return s.String() -} - -// SetDocument sets the Document field's value. -func (s *DescribeDocumentOutput) SetDocument(v *DocumentDescription) *DescribeDocumentOutput { - s.Document = v - return s -} - -type DescribeDocumentPermissionInput struct { - _ struct{} `type:"structure"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The name of the document for which you are the owner. - // - // Name is a required field - Name *string `type:"string" required:"true"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // The permission type for the document. The permission type can be Share. - // - // PermissionType is a required field - PermissionType *string `type:"string" required:"true" enum:"DocumentPermissionType"` -} - -// String returns the string representation -func (s DescribeDocumentPermissionInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeDocumentPermissionInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeDocumentPermissionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeDocumentPermissionInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.PermissionType == nil { - invalidParams.Add(request.NewErrParamRequired("PermissionType")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeDocumentPermissionInput) SetMaxResults(v int64) *DescribeDocumentPermissionInput { - s.MaxResults = &v - return s -} - -// SetName sets the Name field's value. -func (s *DescribeDocumentPermissionInput) SetName(v string) *DescribeDocumentPermissionInput { - s.Name = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeDocumentPermissionInput) SetNextToken(v string) *DescribeDocumentPermissionInput { - s.NextToken = &v - return s -} - -// SetPermissionType sets the PermissionType field's value. -func (s *DescribeDocumentPermissionInput) SetPermissionType(v string) *DescribeDocumentPermissionInput { - s.PermissionType = &v - return s -} - -type DescribeDocumentPermissionOutput struct { - _ struct{} `type:"structure"` - - // The account IDs that have permission to use this document. The ID can be - // either an AWS account or All. - AccountIds []*string `type:"list"` - - // A list of AWS accounts where the current document is shared and the version - // shared with each account. - AccountSharingInfoList []*AccountSharingInfo `type:"list"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeDocumentPermissionOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeDocumentPermissionOutput) GoString() string { - return s.String() -} - -// SetAccountIds sets the AccountIds field's value. -func (s *DescribeDocumentPermissionOutput) SetAccountIds(v []*string) *DescribeDocumentPermissionOutput { - s.AccountIds = v - return s -} - -// SetAccountSharingInfoList sets the AccountSharingInfoList field's value. -func (s *DescribeDocumentPermissionOutput) SetAccountSharingInfoList(v []*AccountSharingInfo) *DescribeDocumentPermissionOutput { - s.AccountSharingInfoList = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeDocumentPermissionOutput) SetNextToken(v string) *DescribeDocumentPermissionOutput { - s.NextToken = &v - return s -} - -type DescribeEffectiveInstanceAssociationsInput struct { - _ struct{} `type:"structure"` - - // The instance ID for which you want to view all associations. - // - // InstanceId is a required field - InstanceId *string `type:"string" required:"true"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeEffectiveInstanceAssociationsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeEffectiveInstanceAssociationsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeEffectiveInstanceAssociationsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeEffectiveInstanceAssociationsInput"} - if s.InstanceId == nil { - invalidParams.Add(request.NewErrParamRequired("InstanceId")) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetInstanceId sets the InstanceId field's value. -func (s *DescribeEffectiveInstanceAssociationsInput) SetInstanceId(v string) *DescribeEffectiveInstanceAssociationsInput { - s.InstanceId = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeEffectiveInstanceAssociationsInput) SetMaxResults(v int64) *DescribeEffectiveInstanceAssociationsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeEffectiveInstanceAssociationsInput) SetNextToken(v string) *DescribeEffectiveInstanceAssociationsInput { - s.NextToken = &v - return s -} - -type DescribeEffectiveInstanceAssociationsOutput struct { - _ struct{} `type:"structure"` - - // The associations for the requested instance. - Associations []*InstanceAssociation `type:"list"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeEffectiveInstanceAssociationsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeEffectiveInstanceAssociationsOutput) GoString() string { - return s.String() -} - -// SetAssociations sets the Associations field's value. -func (s *DescribeEffectiveInstanceAssociationsOutput) SetAssociations(v []*InstanceAssociation) *DescribeEffectiveInstanceAssociationsOutput { - s.Associations = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeEffectiveInstanceAssociationsOutput) SetNextToken(v string) *DescribeEffectiveInstanceAssociationsOutput { - s.NextToken = &v - return s -} - -type DescribeEffectivePatchesForPatchBaselineInput struct { - _ struct{} `type:"structure"` - - // The ID of the patch baseline to retrieve the effective patches for. - // - // BaselineId is a required field - BaselineId *string `min:"20" type:"string" required:"true"` - - // The maximum number of patches to return (per page). - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeEffectivePatchesForPatchBaselineInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeEffectivePatchesForPatchBaselineInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeEffectivePatchesForPatchBaselineInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeEffectivePatchesForPatchBaselineInput"} - if s.BaselineId == nil { - invalidParams.Add(request.NewErrParamRequired("BaselineId")) - } - if s.BaselineId != nil && len(*s.BaselineId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("BaselineId", 20)) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetBaselineId sets the BaselineId field's value. -func (s *DescribeEffectivePatchesForPatchBaselineInput) SetBaselineId(v string) *DescribeEffectivePatchesForPatchBaselineInput { - s.BaselineId = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeEffectivePatchesForPatchBaselineInput) SetMaxResults(v int64) *DescribeEffectivePatchesForPatchBaselineInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeEffectivePatchesForPatchBaselineInput) SetNextToken(v string) *DescribeEffectivePatchesForPatchBaselineInput { - s.NextToken = &v - return s -} - -type DescribeEffectivePatchesForPatchBaselineOutput struct { - _ struct{} `type:"structure"` - - // An array of patches and patch status. - EffectivePatches []*EffectivePatch `type:"list"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeEffectivePatchesForPatchBaselineOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeEffectivePatchesForPatchBaselineOutput) GoString() string { - return s.String() -} - -// SetEffectivePatches sets the EffectivePatches field's value. -func (s *DescribeEffectivePatchesForPatchBaselineOutput) SetEffectivePatches(v []*EffectivePatch) *DescribeEffectivePatchesForPatchBaselineOutput { - s.EffectivePatches = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeEffectivePatchesForPatchBaselineOutput) SetNextToken(v string) *DescribeEffectivePatchesForPatchBaselineOutput { - s.NextToken = &v - return s -} - -type DescribeInstanceAssociationsStatusInput struct { - _ struct{} `type:"structure"` - - // The instance IDs for which you want association status information. - // - // InstanceId is a required field - InstanceId *string `type:"string" required:"true"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeInstanceAssociationsStatusInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeInstanceAssociationsStatusInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeInstanceAssociationsStatusInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeInstanceAssociationsStatusInput"} - if s.InstanceId == nil { - invalidParams.Add(request.NewErrParamRequired("InstanceId")) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetInstanceId sets the InstanceId field's value. -func (s *DescribeInstanceAssociationsStatusInput) SetInstanceId(v string) *DescribeInstanceAssociationsStatusInput { - s.InstanceId = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeInstanceAssociationsStatusInput) SetMaxResults(v int64) *DescribeInstanceAssociationsStatusInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeInstanceAssociationsStatusInput) SetNextToken(v string) *DescribeInstanceAssociationsStatusInput { - s.NextToken = &v - return s -} - -type DescribeInstanceAssociationsStatusOutput struct { - _ struct{} `type:"structure"` - - // Status information about the association. - InstanceAssociationStatusInfos []*InstanceAssociationStatusInfo `type:"list"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeInstanceAssociationsStatusOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeInstanceAssociationsStatusOutput) GoString() string { - return s.String() -} - -// SetInstanceAssociationStatusInfos sets the InstanceAssociationStatusInfos field's value. -func (s *DescribeInstanceAssociationsStatusOutput) SetInstanceAssociationStatusInfos(v []*InstanceAssociationStatusInfo) *DescribeInstanceAssociationsStatusOutput { - s.InstanceAssociationStatusInfos = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeInstanceAssociationsStatusOutput) SetNextToken(v string) *DescribeInstanceAssociationsStatusOutput { - s.NextToken = &v - return s -} - -type DescribeInstanceInformationInput struct { - _ struct{} `type:"structure"` - - // One or more filters. Use a filter to return a more specific list of instances. - // You can filter based on tags applied to EC2 instances. Use this Filters data - // type instead of InstanceInformationFilterList, which is deprecated. - Filters []*InstanceInformationStringFilter `type:"list"` - - // This is a legacy method. We recommend that you don't use this method. Instead, - // use the Filters data type. Filters enables you to return instance information - // by filtering based on tags applied to managed instances. - // - // Attempting to use InstanceInformationFilterList and Filters leads to an exception - // error. - InstanceInformationFilterList []*InstanceInformationFilter `type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"5" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeInstanceInformationInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeInstanceInformationInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeInstanceInformationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeInstanceInformationInput"} - if s.MaxResults != nil && *s.MaxResults < 5 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - if s.InstanceInformationFilterList != nil { - for i, v := range s.InstanceInformationFilterList { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceInformationFilterList", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribeInstanceInformationInput) SetFilters(v []*InstanceInformationStringFilter) *DescribeInstanceInformationInput { - s.Filters = v - return s -} - -// SetInstanceInformationFilterList sets the InstanceInformationFilterList field's value. -func (s *DescribeInstanceInformationInput) SetInstanceInformationFilterList(v []*InstanceInformationFilter) *DescribeInstanceInformationInput { - s.InstanceInformationFilterList = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeInstanceInformationInput) SetMaxResults(v int64) *DescribeInstanceInformationInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeInstanceInformationInput) SetNextToken(v string) *DescribeInstanceInformationInput { - s.NextToken = &v - return s -} - -type DescribeInstanceInformationOutput struct { - _ struct{} `type:"structure"` - - // The instance information list. - InstanceInformationList []*InstanceInformation `type:"list"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeInstanceInformationOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeInstanceInformationOutput) GoString() string { - return s.String() -} - -// SetInstanceInformationList sets the InstanceInformationList field's value. -func (s *DescribeInstanceInformationOutput) SetInstanceInformationList(v []*InstanceInformation) *DescribeInstanceInformationOutput { - s.InstanceInformationList = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeInstanceInformationOutput) SetNextToken(v string) *DescribeInstanceInformationOutput { - s.NextToken = &v - return s -} - -type DescribeInstancePatchStatesForPatchGroupInput struct { - _ struct{} `type:"structure"` - - // Each entry in the array is a structure containing: - // - // Key (string between 1 and 200 characters) - // - // Values (array containing a single string) - // - // Type (string "Equal", "NotEqual", "LessThan", "GreaterThan") - Filters []*InstancePatchStateFilter `type:"list"` - - // The maximum number of patches to return (per page). - MaxResults *int64 `min:"10" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // The name of the patch group for which the patch state information should - // be retrieved. - // - // PatchGroup is a required field - PatchGroup *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s DescribeInstancePatchStatesForPatchGroupInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeInstancePatchStatesForPatchGroupInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeInstancePatchStatesForPatchGroupInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeInstancePatchStatesForPatchGroupInput"} - if s.MaxResults != nil && *s.MaxResults < 10 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 10)) - } - if s.PatchGroup == nil { - invalidParams.Add(request.NewErrParamRequired("PatchGroup")) - } - if s.PatchGroup != nil && len(*s.PatchGroup) < 1 { - invalidParams.Add(request.NewErrParamMinLen("PatchGroup", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribeInstancePatchStatesForPatchGroupInput) SetFilters(v []*InstancePatchStateFilter) *DescribeInstancePatchStatesForPatchGroupInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeInstancePatchStatesForPatchGroupInput) SetMaxResults(v int64) *DescribeInstancePatchStatesForPatchGroupInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeInstancePatchStatesForPatchGroupInput) SetNextToken(v string) *DescribeInstancePatchStatesForPatchGroupInput { - s.NextToken = &v - return s -} - -// SetPatchGroup sets the PatchGroup field's value. -func (s *DescribeInstancePatchStatesForPatchGroupInput) SetPatchGroup(v string) *DescribeInstancePatchStatesForPatchGroupInput { - s.PatchGroup = &v - return s -} - -type DescribeInstancePatchStatesForPatchGroupOutput struct { - _ struct{} `type:"structure"` - - // The high-level patch state for the requested instances. - InstancePatchStates []*InstancePatchState `min:"1" type:"list"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeInstancePatchStatesForPatchGroupOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeInstancePatchStatesForPatchGroupOutput) GoString() string { - return s.String() -} - -// SetInstancePatchStates sets the InstancePatchStates field's value. -func (s *DescribeInstancePatchStatesForPatchGroupOutput) SetInstancePatchStates(v []*InstancePatchState) *DescribeInstancePatchStatesForPatchGroupOutput { - s.InstancePatchStates = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeInstancePatchStatesForPatchGroupOutput) SetNextToken(v string) *DescribeInstancePatchStatesForPatchGroupOutput { - s.NextToken = &v - return s -} - -type DescribeInstancePatchStatesInput struct { - _ struct{} `type:"structure"` - - // The ID of the instance whose patch state information should be retrieved. - // - // InstanceIds is a required field - InstanceIds []*string `type:"list" required:"true"` - - // The maximum number of instances to return (per page). - MaxResults *int64 `min:"10" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeInstancePatchStatesInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeInstancePatchStatesInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeInstancePatchStatesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeInstancePatchStatesInput"} - if s.InstanceIds == nil { - invalidParams.Add(request.NewErrParamRequired("InstanceIds")) - } - if s.MaxResults != nil && *s.MaxResults < 10 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 10)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetInstanceIds sets the InstanceIds field's value. -func (s *DescribeInstancePatchStatesInput) SetInstanceIds(v []*string) *DescribeInstancePatchStatesInput { - s.InstanceIds = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeInstancePatchStatesInput) SetMaxResults(v int64) *DescribeInstancePatchStatesInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeInstancePatchStatesInput) SetNextToken(v string) *DescribeInstancePatchStatesInput { - s.NextToken = &v - return s -} - -type DescribeInstancePatchStatesOutput struct { - _ struct{} `type:"structure"` - - // The high-level patch state for the requested instances. - InstancePatchStates []*InstancePatchState `type:"list"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeInstancePatchStatesOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeInstancePatchStatesOutput) GoString() string { - return s.String() -} - -// SetInstancePatchStates sets the InstancePatchStates field's value. -func (s *DescribeInstancePatchStatesOutput) SetInstancePatchStates(v []*InstancePatchState) *DescribeInstancePatchStatesOutput { - s.InstancePatchStates = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeInstancePatchStatesOutput) SetNextToken(v string) *DescribeInstancePatchStatesOutput { - s.NextToken = &v - return s -} - -type DescribeInstancePatchesInput struct { - _ struct{} `type:"structure"` - - // An array of structures. Each entry in the array is a structure containing - // a Key, Value combination. Valid values for Key are Classification | KBId - // | Severity | State. - Filters []*PatchOrchestratorFilter `type:"list"` - - // The ID of the instance whose patch state information should be retrieved. - // - // InstanceId is a required field - InstanceId *string `type:"string" required:"true"` - - // The maximum number of patches to return (per page). - MaxResults *int64 `min:"10" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeInstancePatchesInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeInstancePatchesInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeInstancePatchesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeInstancePatchesInput"} - if s.InstanceId == nil { - invalidParams.Add(request.NewErrParamRequired("InstanceId")) - } - if s.MaxResults != nil && *s.MaxResults < 10 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 10)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribeInstancePatchesInput) SetFilters(v []*PatchOrchestratorFilter) *DescribeInstancePatchesInput { - s.Filters = v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *DescribeInstancePatchesInput) SetInstanceId(v string) *DescribeInstancePatchesInput { - s.InstanceId = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeInstancePatchesInput) SetMaxResults(v int64) *DescribeInstancePatchesInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeInstancePatchesInput) SetNextToken(v string) *DescribeInstancePatchesInput { - s.NextToken = &v - return s -} - -type DescribeInstancePatchesOutput struct { - _ struct{} `type:"structure"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` - - // Each entry in the array is a structure containing: - // - // Title (string) - // - // KBId (string) - // - // Classification (string) - // - // Severity (string) - // - // State (string, such as "INSTALLED" or "FAILED") - // - // InstalledTime (DateTime) - // - // InstalledBy (string) - Patches []*PatchComplianceData `type:"list"` -} - -// String returns the string representation -func (s DescribeInstancePatchesOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeInstancePatchesOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeInstancePatchesOutput) SetNextToken(v string) *DescribeInstancePatchesOutput { - s.NextToken = &v - return s -} - -// SetPatches sets the Patches field's value. -func (s *DescribeInstancePatchesOutput) SetPatches(v []*PatchComplianceData) *DescribeInstancePatchesOutput { - s.Patches = v - return s -} - -type DescribeInventoryDeletionsInput struct { - _ struct{} `type:"structure"` - - // Specify the delete inventory ID for which you want information. This ID was - // returned by the DeleteInventory action. - DeletionId *string `type:"string"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // A token to start the list. Use this token to get the next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeInventoryDeletionsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeInventoryDeletionsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeInventoryDeletionsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeInventoryDeletionsInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDeletionId sets the DeletionId field's value. -func (s *DescribeInventoryDeletionsInput) SetDeletionId(v string) *DescribeInventoryDeletionsInput { - s.DeletionId = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeInventoryDeletionsInput) SetMaxResults(v int64) *DescribeInventoryDeletionsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeInventoryDeletionsInput) SetNextToken(v string) *DescribeInventoryDeletionsInput { - s.NextToken = &v - return s -} - -type DescribeInventoryDeletionsOutput struct { - _ struct{} `type:"structure"` - - // A list of status items for deleted inventory. - InventoryDeletions []*InventoryDeletionStatusItem `type:"list"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeInventoryDeletionsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeInventoryDeletionsOutput) GoString() string { - return s.String() -} - -// SetInventoryDeletions sets the InventoryDeletions field's value. -func (s *DescribeInventoryDeletionsOutput) SetInventoryDeletions(v []*InventoryDeletionStatusItem) *DescribeInventoryDeletionsOutput { - s.InventoryDeletions = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeInventoryDeletionsOutput) SetNextToken(v string) *DescribeInventoryDeletionsOutput { - s.NextToken = &v - return s -} - -type DescribeMaintenanceWindowExecutionTaskInvocationsInput struct { - _ struct{} `type:"structure"` - - // Optional filters used to scope down the returned task invocations. The supported - // filter key is STATUS with the corresponding values PENDING, IN_PROGRESS, - // SUCCESS, FAILED, TIMED_OUT, CANCELLING, and CANCELLED. - Filters []*MaintenanceWindowFilter `type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"10" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // The ID of the specific task in the maintenance window task that should be - // retrieved. - // - // TaskId is a required field - TaskId *string `min:"36" type:"string" required:"true"` - - // The ID of the maintenance window execution the task is part of. - // - // WindowExecutionId is a required field - WindowExecutionId *string `min:"36" type:"string" required:"true"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowExecutionTaskInvocationsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowExecutionTaskInvocationsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeMaintenanceWindowExecutionTaskInvocationsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeMaintenanceWindowExecutionTaskInvocationsInput"} - if s.MaxResults != nil && *s.MaxResults < 10 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 10)) - } - if s.TaskId == nil { - invalidParams.Add(request.NewErrParamRequired("TaskId")) - } - if s.TaskId != nil && len(*s.TaskId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("TaskId", 36)) - } - if s.WindowExecutionId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowExecutionId")) - } - if s.WindowExecutionId != nil && len(*s.WindowExecutionId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("WindowExecutionId", 36)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribeMaintenanceWindowExecutionTaskInvocationsInput) SetFilters(v []*MaintenanceWindowFilter) *DescribeMaintenanceWindowExecutionTaskInvocationsInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeMaintenanceWindowExecutionTaskInvocationsInput) SetMaxResults(v int64) *DescribeMaintenanceWindowExecutionTaskInvocationsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowExecutionTaskInvocationsInput) SetNextToken(v string) *DescribeMaintenanceWindowExecutionTaskInvocationsInput { - s.NextToken = &v - return s -} - -// SetTaskId sets the TaskId field's value. -func (s *DescribeMaintenanceWindowExecutionTaskInvocationsInput) SetTaskId(v string) *DescribeMaintenanceWindowExecutionTaskInvocationsInput { - s.TaskId = &v - return s -} - -// SetWindowExecutionId sets the WindowExecutionId field's value. -func (s *DescribeMaintenanceWindowExecutionTaskInvocationsInput) SetWindowExecutionId(v string) *DescribeMaintenanceWindowExecutionTaskInvocationsInput { - s.WindowExecutionId = &v - return s -} - -type DescribeMaintenanceWindowExecutionTaskInvocationsOutput struct { - _ struct{} `type:"structure"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` - - // Information about the task invocation results per invocation. - WindowExecutionTaskInvocationIdentities []*MaintenanceWindowExecutionTaskInvocationIdentity `type:"list"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowExecutionTaskInvocationsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowExecutionTaskInvocationsOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowExecutionTaskInvocationsOutput) SetNextToken(v string) *DescribeMaintenanceWindowExecutionTaskInvocationsOutput { - s.NextToken = &v - return s -} - -// SetWindowExecutionTaskInvocationIdentities sets the WindowExecutionTaskInvocationIdentities field's value. -func (s *DescribeMaintenanceWindowExecutionTaskInvocationsOutput) SetWindowExecutionTaskInvocationIdentities(v []*MaintenanceWindowExecutionTaskInvocationIdentity) *DescribeMaintenanceWindowExecutionTaskInvocationsOutput { - s.WindowExecutionTaskInvocationIdentities = v - return s -} - -type DescribeMaintenanceWindowExecutionTasksInput struct { - _ struct{} `type:"structure"` - - // Optional filters used to scope down the returned tasks. The supported filter - // key is STATUS with the corresponding values PENDING, IN_PROGRESS, SUCCESS, - // FAILED, TIMED_OUT, CANCELLING, and CANCELLED. - Filters []*MaintenanceWindowFilter `type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"10" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // The ID of the maintenance window execution whose task executions should be - // retrieved. - // - // WindowExecutionId is a required field - WindowExecutionId *string `min:"36" type:"string" required:"true"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowExecutionTasksInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowExecutionTasksInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeMaintenanceWindowExecutionTasksInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeMaintenanceWindowExecutionTasksInput"} - if s.MaxResults != nil && *s.MaxResults < 10 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 10)) - } - if s.WindowExecutionId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowExecutionId")) - } - if s.WindowExecutionId != nil && len(*s.WindowExecutionId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("WindowExecutionId", 36)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribeMaintenanceWindowExecutionTasksInput) SetFilters(v []*MaintenanceWindowFilter) *DescribeMaintenanceWindowExecutionTasksInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeMaintenanceWindowExecutionTasksInput) SetMaxResults(v int64) *DescribeMaintenanceWindowExecutionTasksInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowExecutionTasksInput) SetNextToken(v string) *DescribeMaintenanceWindowExecutionTasksInput { - s.NextToken = &v - return s -} - -// SetWindowExecutionId sets the WindowExecutionId field's value. -func (s *DescribeMaintenanceWindowExecutionTasksInput) SetWindowExecutionId(v string) *DescribeMaintenanceWindowExecutionTasksInput { - s.WindowExecutionId = &v - return s -} - -type DescribeMaintenanceWindowExecutionTasksOutput struct { - _ struct{} `type:"structure"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` - - // Information about the task executions. - WindowExecutionTaskIdentities []*MaintenanceWindowExecutionTaskIdentity `type:"list"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowExecutionTasksOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowExecutionTasksOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowExecutionTasksOutput) SetNextToken(v string) *DescribeMaintenanceWindowExecutionTasksOutput { - s.NextToken = &v - return s -} - -// SetWindowExecutionTaskIdentities sets the WindowExecutionTaskIdentities field's value. -func (s *DescribeMaintenanceWindowExecutionTasksOutput) SetWindowExecutionTaskIdentities(v []*MaintenanceWindowExecutionTaskIdentity) *DescribeMaintenanceWindowExecutionTasksOutput { - s.WindowExecutionTaskIdentities = v - return s -} - -type DescribeMaintenanceWindowExecutionsInput struct { - _ struct{} `type:"structure"` - - // Each entry in the array is a structure containing: - // - // Key (string, between 1 and 128 characters) - // - // Values (array of strings, each string is between 1 and 256 characters) - // - // The supported Keys are ExecutedBefore and ExecutedAfter with the value being - // a date/time string such as 2016-11-04T05:00:00Z. - Filters []*MaintenanceWindowFilter `type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"10" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // The ID of the maintenance window whose executions should be retrieved. - // - // WindowId is a required field - WindowId *string `min:"20" type:"string" required:"true"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowExecutionsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowExecutionsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeMaintenanceWindowExecutionsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeMaintenanceWindowExecutionsInput"} - if s.MaxResults != nil && *s.MaxResults < 10 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 10)) - } - if s.WindowId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowId")) - } - if s.WindowId != nil && len(*s.WindowId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("WindowId", 20)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribeMaintenanceWindowExecutionsInput) SetFilters(v []*MaintenanceWindowFilter) *DescribeMaintenanceWindowExecutionsInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeMaintenanceWindowExecutionsInput) SetMaxResults(v int64) *DescribeMaintenanceWindowExecutionsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowExecutionsInput) SetNextToken(v string) *DescribeMaintenanceWindowExecutionsInput { - s.NextToken = &v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *DescribeMaintenanceWindowExecutionsInput) SetWindowId(v string) *DescribeMaintenanceWindowExecutionsInput { - s.WindowId = &v - return s -} - -type DescribeMaintenanceWindowExecutionsOutput struct { - _ struct{} `type:"structure"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` - - // Information about the maintenance window executions. - WindowExecutions []*MaintenanceWindowExecution `type:"list"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowExecutionsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowExecutionsOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowExecutionsOutput) SetNextToken(v string) *DescribeMaintenanceWindowExecutionsOutput { - s.NextToken = &v - return s -} - -// SetWindowExecutions sets the WindowExecutions field's value. -func (s *DescribeMaintenanceWindowExecutionsOutput) SetWindowExecutions(v []*MaintenanceWindowExecution) *DescribeMaintenanceWindowExecutionsOutput { - s.WindowExecutions = v - return s -} - -type DescribeMaintenanceWindowScheduleInput struct { - _ struct{} `type:"structure"` - - // Filters used to limit the range of results. For example, you can limit maintenance - // window executions to only those scheduled before or after a certain date - // and time. - Filters []*PatchOrchestratorFilter `type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // The type of resource you want to retrieve information about. For example, - // "INSTANCE". - ResourceType *string `type:"string" enum:"MaintenanceWindowResourceType"` - - // The instance ID or key/value pair to retrieve information about. - Targets []*Target `type:"list"` - - // The ID of the maintenance window to retrieve information about. - WindowId *string `min:"20" type:"string"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowScheduleInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowScheduleInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeMaintenanceWindowScheduleInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeMaintenanceWindowScheduleInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.WindowId != nil && len(*s.WindowId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("WindowId", 20)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Targets != nil { - for i, v := range s.Targets { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribeMaintenanceWindowScheduleInput) SetFilters(v []*PatchOrchestratorFilter) *DescribeMaintenanceWindowScheduleInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeMaintenanceWindowScheduleInput) SetMaxResults(v int64) *DescribeMaintenanceWindowScheduleInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowScheduleInput) SetNextToken(v string) *DescribeMaintenanceWindowScheduleInput { - s.NextToken = &v - return s -} - -// SetResourceType sets the ResourceType field's value. -func (s *DescribeMaintenanceWindowScheduleInput) SetResourceType(v string) *DescribeMaintenanceWindowScheduleInput { - s.ResourceType = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *DescribeMaintenanceWindowScheduleInput) SetTargets(v []*Target) *DescribeMaintenanceWindowScheduleInput { - s.Targets = v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *DescribeMaintenanceWindowScheduleInput) SetWindowId(v string) *DescribeMaintenanceWindowScheduleInput { - s.WindowId = &v - return s -} - -type DescribeMaintenanceWindowScheduleOutput struct { - _ struct{} `type:"structure"` - - // The token for the next set of items to return. (You use this token in the - // next call.) - NextToken *string `type:"string"` - - // Information about maintenance window executions scheduled for the specified - // time range. - ScheduledWindowExecutions []*ScheduledWindowExecution `type:"list"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowScheduleOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowScheduleOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowScheduleOutput) SetNextToken(v string) *DescribeMaintenanceWindowScheduleOutput { - s.NextToken = &v - return s -} - -// SetScheduledWindowExecutions sets the ScheduledWindowExecutions field's value. -func (s *DescribeMaintenanceWindowScheduleOutput) SetScheduledWindowExecutions(v []*ScheduledWindowExecution) *DescribeMaintenanceWindowScheduleOutput { - s.ScheduledWindowExecutions = v - return s -} - -type DescribeMaintenanceWindowTargetsInput struct { - _ struct{} `type:"structure"` - - // Optional filters that can be used to narrow down the scope of the returned - // window targets. The supported filter keys are Type, WindowTargetId and OwnerInformation. - Filters []*MaintenanceWindowFilter `type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"10" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // The ID of the maintenance window whose targets should be retrieved. - // - // WindowId is a required field - WindowId *string `min:"20" type:"string" required:"true"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowTargetsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowTargetsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeMaintenanceWindowTargetsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeMaintenanceWindowTargetsInput"} - if s.MaxResults != nil && *s.MaxResults < 10 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 10)) - } - if s.WindowId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowId")) - } - if s.WindowId != nil && len(*s.WindowId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("WindowId", 20)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribeMaintenanceWindowTargetsInput) SetFilters(v []*MaintenanceWindowFilter) *DescribeMaintenanceWindowTargetsInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeMaintenanceWindowTargetsInput) SetMaxResults(v int64) *DescribeMaintenanceWindowTargetsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowTargetsInput) SetNextToken(v string) *DescribeMaintenanceWindowTargetsInput { - s.NextToken = &v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *DescribeMaintenanceWindowTargetsInput) SetWindowId(v string) *DescribeMaintenanceWindowTargetsInput { - s.WindowId = &v - return s -} - -type DescribeMaintenanceWindowTargetsOutput struct { - _ struct{} `type:"structure"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` - - // Information about the targets in the maintenance window. - Targets []*MaintenanceWindowTarget `type:"list"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowTargetsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowTargetsOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowTargetsOutput) SetNextToken(v string) *DescribeMaintenanceWindowTargetsOutput { - s.NextToken = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *DescribeMaintenanceWindowTargetsOutput) SetTargets(v []*MaintenanceWindowTarget) *DescribeMaintenanceWindowTargetsOutput { - s.Targets = v - return s -} - -type DescribeMaintenanceWindowTasksInput struct { - _ struct{} `type:"structure"` - - // Optional filters used to narrow down the scope of the returned tasks. The - // supported filter keys are WindowTaskId, TaskArn, Priority, and TaskType. - Filters []*MaintenanceWindowFilter `type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"10" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // The ID of the maintenance window whose tasks should be retrieved. - // - // WindowId is a required field - WindowId *string `min:"20" type:"string" required:"true"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowTasksInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowTasksInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeMaintenanceWindowTasksInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeMaintenanceWindowTasksInput"} - if s.MaxResults != nil && *s.MaxResults < 10 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 10)) - } - if s.WindowId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowId")) - } - if s.WindowId != nil && len(*s.WindowId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("WindowId", 20)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribeMaintenanceWindowTasksInput) SetFilters(v []*MaintenanceWindowFilter) *DescribeMaintenanceWindowTasksInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeMaintenanceWindowTasksInput) SetMaxResults(v int64) *DescribeMaintenanceWindowTasksInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowTasksInput) SetNextToken(v string) *DescribeMaintenanceWindowTasksInput { - s.NextToken = &v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *DescribeMaintenanceWindowTasksInput) SetWindowId(v string) *DescribeMaintenanceWindowTasksInput { - s.WindowId = &v - return s -} - -type DescribeMaintenanceWindowTasksOutput struct { - _ struct{} `type:"structure"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` - - // Information about the tasks in the maintenance window. - Tasks []*MaintenanceWindowTask `type:"list"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowTasksOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowTasksOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowTasksOutput) SetNextToken(v string) *DescribeMaintenanceWindowTasksOutput { - s.NextToken = &v - return s -} - -// SetTasks sets the Tasks field's value. -func (s *DescribeMaintenanceWindowTasksOutput) SetTasks(v []*MaintenanceWindowTask) *DescribeMaintenanceWindowTasksOutput { - s.Tasks = v - return s -} - -type DescribeMaintenanceWindowsForTargetInput struct { - _ struct{} `type:"structure"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // The type of resource you want to retrieve information about. For example, - // "INSTANCE". - // - // ResourceType is a required field - ResourceType *string `type:"string" required:"true" enum:"MaintenanceWindowResourceType"` - - // The instance ID or key/value pair to retrieve information about. - // - // Targets is a required field - Targets []*Target `type:"list" required:"true"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowsForTargetInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowsForTargetInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeMaintenanceWindowsForTargetInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeMaintenanceWindowsForTargetInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.ResourceType == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceType")) - } - if s.Targets == nil { - invalidParams.Add(request.NewErrParamRequired("Targets")) - } - if s.Targets != nil { - for i, v := range s.Targets { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeMaintenanceWindowsForTargetInput) SetMaxResults(v int64) *DescribeMaintenanceWindowsForTargetInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowsForTargetInput) SetNextToken(v string) *DescribeMaintenanceWindowsForTargetInput { - s.NextToken = &v - return s -} - -// SetResourceType sets the ResourceType field's value. -func (s *DescribeMaintenanceWindowsForTargetInput) SetResourceType(v string) *DescribeMaintenanceWindowsForTargetInput { - s.ResourceType = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *DescribeMaintenanceWindowsForTargetInput) SetTargets(v []*Target) *DescribeMaintenanceWindowsForTargetInput { - s.Targets = v - return s -} - -type DescribeMaintenanceWindowsForTargetOutput struct { - _ struct{} `type:"structure"` - - // The token for the next set of items to return. (You use this token in the - // next call.) - NextToken *string `type:"string"` - - // Information about the maintenance window targets and tasks an instance is - // associated with. - WindowIdentities []*MaintenanceWindowIdentityForTarget `type:"list"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowsForTargetOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowsForTargetOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowsForTargetOutput) SetNextToken(v string) *DescribeMaintenanceWindowsForTargetOutput { - s.NextToken = &v - return s -} - -// SetWindowIdentities sets the WindowIdentities field's value. -func (s *DescribeMaintenanceWindowsForTargetOutput) SetWindowIdentities(v []*MaintenanceWindowIdentityForTarget) *DescribeMaintenanceWindowsForTargetOutput { - s.WindowIdentities = v - return s -} - -type DescribeMaintenanceWindowsInput struct { - _ struct{} `type:"structure"` - - // Optional filters used to narrow down the scope of the returned maintenance - // windows. Supported filter keys are Name and Enabled. - Filters []*MaintenanceWindowFilter `type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"10" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeMaintenanceWindowsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeMaintenanceWindowsInput"} - if s.MaxResults != nil && *s.MaxResults < 10 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 10)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribeMaintenanceWindowsInput) SetFilters(v []*MaintenanceWindowFilter) *DescribeMaintenanceWindowsInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeMaintenanceWindowsInput) SetMaxResults(v int64) *DescribeMaintenanceWindowsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowsInput) SetNextToken(v string) *DescribeMaintenanceWindowsInput { - s.NextToken = &v - return s -} - -type DescribeMaintenanceWindowsOutput struct { - _ struct{} `type:"structure"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` - - // Information about the maintenance windows. - WindowIdentities []*MaintenanceWindowIdentity `type:"list"` -} - -// String returns the string representation -func (s DescribeMaintenanceWindowsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeMaintenanceWindowsOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeMaintenanceWindowsOutput) SetNextToken(v string) *DescribeMaintenanceWindowsOutput { - s.NextToken = &v - return s -} - -// SetWindowIdentities sets the WindowIdentities field's value. -func (s *DescribeMaintenanceWindowsOutput) SetWindowIdentities(v []*MaintenanceWindowIdentity) *DescribeMaintenanceWindowsOutput { - s.WindowIdentities = v - return s -} - -type DescribeOpsItemsInput struct { - _ struct{} `type:"structure"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // A token to start the list. Use this token to get the next set of results. - NextToken *string `type:"string"` - - // One or more filters to limit the response. - // - // * Key: CreatedTime Operations: GreaterThan, LessThan - // - // * Key: LastModifiedBy Operations: Contains, Equals - // - // * Key: LastModifiedTime Operations: GreaterThan, LessThan - // - // * Key: Priority Operations: Equals - // - // * Key: Source Operations: Contains, Equals - // - // * Key: Status Operations: Equals - // - // * Key: Title Operations: Contains - // - // * Key: OperationalData* Operations: Equals - // - // * Key: OperationalDataKey Operations: Equals - // - // * Key: OperationalDataValue Operations: Equals, Contains - // - // * Key: OpsItemId Operations: Equals - // - // * Key: ResourceId Operations: Contains - // - // * Key: AutomationId Operations: Equals - // - // *If you filter the response by using the OperationalData operator, specify - // a key-value pair by using the following JSON format: {"key":"key_name","value":"a_value"} - OpsItemFilters []*OpsItemFilter `type:"list"` -} - -// String returns the string representation -func (s DescribeOpsItemsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeOpsItemsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeOpsItemsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeOpsItemsInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.OpsItemFilters != nil { - for i, v := range s.OpsItemFilters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OpsItemFilters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeOpsItemsInput) SetMaxResults(v int64) *DescribeOpsItemsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeOpsItemsInput) SetNextToken(v string) *DescribeOpsItemsInput { - s.NextToken = &v - return s -} - -// SetOpsItemFilters sets the OpsItemFilters field's value. -func (s *DescribeOpsItemsInput) SetOpsItemFilters(v []*OpsItemFilter) *DescribeOpsItemsInput { - s.OpsItemFilters = v - return s -} - -type DescribeOpsItemsOutput struct { - _ struct{} `type:"structure"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` - - // A list of OpsItems. - OpsItemSummaries []*OpsItemSummary `type:"list"` -} - -// String returns the string representation -func (s DescribeOpsItemsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeOpsItemsOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeOpsItemsOutput) SetNextToken(v string) *DescribeOpsItemsOutput { - s.NextToken = &v - return s -} - -// SetOpsItemSummaries sets the OpsItemSummaries field's value. -func (s *DescribeOpsItemsOutput) SetOpsItemSummaries(v []*OpsItemSummary) *DescribeOpsItemsOutput { - s.OpsItemSummaries = v - return s -} - -type DescribeParametersInput struct { - _ struct{} `type:"structure"` - - // This data type is deprecated. Instead, use ParameterFilters. - Filters []*ParametersFilter `type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // Filters to limit the request results. - ParameterFilters []*ParameterStringFilter `type:"list"` -} - -// String returns the string representation -func (s DescribeParametersInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeParametersInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeParametersInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeParametersInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - if s.ParameterFilters != nil { - for i, v := range s.ParameterFilters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ParameterFilters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribeParametersInput) SetFilters(v []*ParametersFilter) *DescribeParametersInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeParametersInput) SetMaxResults(v int64) *DescribeParametersInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeParametersInput) SetNextToken(v string) *DescribeParametersInput { - s.NextToken = &v - return s -} - -// SetParameterFilters sets the ParameterFilters field's value. -func (s *DescribeParametersInput) SetParameterFilters(v []*ParameterStringFilter) *DescribeParametersInput { - s.ParameterFilters = v - return s -} - -type DescribeParametersOutput struct { - _ struct{} `type:"structure"` - - // The token to use when requesting the next set of items. - NextToken *string `type:"string"` - - // Parameters returned by the request. - Parameters []*ParameterMetadata `type:"list"` -} - -// String returns the string representation -func (s DescribeParametersOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeParametersOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeParametersOutput) SetNextToken(v string) *DescribeParametersOutput { - s.NextToken = &v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *DescribeParametersOutput) SetParameters(v []*ParameterMetadata) *DescribeParametersOutput { - s.Parameters = v - return s -} - -type DescribePatchBaselinesInput struct { - _ struct{} `type:"structure"` - - // Each element in the array is a structure containing: - // - // Key: (string, "NAME_PREFIX" or "OWNER") - // - // Value: (array of strings, exactly 1 entry, between 1 and 255 characters) - Filters []*PatchOrchestratorFilter `type:"list"` - - // The maximum number of patch baselines to return (per page). - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribePatchBaselinesInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribePatchBaselinesInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribePatchBaselinesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribePatchBaselinesInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribePatchBaselinesInput) SetFilters(v []*PatchOrchestratorFilter) *DescribePatchBaselinesInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribePatchBaselinesInput) SetMaxResults(v int64) *DescribePatchBaselinesInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribePatchBaselinesInput) SetNextToken(v string) *DescribePatchBaselinesInput { - s.NextToken = &v - return s -} - -type DescribePatchBaselinesOutput struct { - _ struct{} `type:"structure"` - - // An array of PatchBaselineIdentity elements. - BaselineIdentities []*PatchBaselineIdentity `type:"list"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribePatchBaselinesOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribePatchBaselinesOutput) GoString() string { - return s.String() -} - -// SetBaselineIdentities sets the BaselineIdentities field's value. -func (s *DescribePatchBaselinesOutput) SetBaselineIdentities(v []*PatchBaselineIdentity) *DescribePatchBaselinesOutput { - s.BaselineIdentities = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribePatchBaselinesOutput) SetNextToken(v string) *DescribePatchBaselinesOutput { - s.NextToken = &v - return s -} - -type DescribePatchGroupStateInput struct { - _ struct{} `type:"structure"` - - // The name of the patch group whose patch snapshot should be retrieved. - // - // PatchGroup is a required field - PatchGroup *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s DescribePatchGroupStateInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribePatchGroupStateInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribePatchGroupStateInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribePatchGroupStateInput"} - if s.PatchGroup == nil { - invalidParams.Add(request.NewErrParamRequired("PatchGroup")) - } - if s.PatchGroup != nil && len(*s.PatchGroup) < 1 { - invalidParams.Add(request.NewErrParamMinLen("PatchGroup", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetPatchGroup sets the PatchGroup field's value. -func (s *DescribePatchGroupStateInput) SetPatchGroup(v string) *DescribePatchGroupStateInput { - s.PatchGroup = &v - return s -} - -type DescribePatchGroupStateOutput struct { - _ struct{} `type:"structure"` - - // The number of instances in the patch group. - Instances *int64 `type:"integer"` - - // The number of instances with patches from the patch baseline that failed - // to install. - InstancesWithFailedPatches *int64 `type:"integer"` - - // The number of instances with patches installed that aren't defined in the - // patch baseline. - InstancesWithInstalledOtherPatches *int64 `type:"integer"` - - // The number of instances with installed patches. - InstancesWithInstalledPatches *int64 `type:"integer"` - - // The number of instances with patches installed by Patch Manager that have - // not been rebooted after the patch installation. The status of these instances - // is NON_COMPLIANT. - InstancesWithInstalledPendingRebootPatches *int64 `type:"integer"` - - // The number of instances with patches installed that are specified in a RejectedPatches - // list. Patches with a status of INSTALLED_REJECTED were typically installed - // before they were added to a RejectedPatches list. - // - // If ALLOW_AS_DEPENDENCY is the specified option for RejectedPatchesAction, - // the value of InstancesWithInstalledRejectedPatches will always be 0 (zero). - InstancesWithInstalledRejectedPatches *int64 `type:"integer"` - - // The number of instances with missing patches from the patch baseline. - InstancesWithMissingPatches *int64 `type:"integer"` - - // The number of instances with patches that aren't applicable. - InstancesWithNotApplicablePatches *int64 `type:"integer"` - - // The number of instances with NotApplicable patches beyond the supported limit, - // which are not reported by name to Systems Manager Inventory. - InstancesWithUnreportedNotApplicablePatches *int64 `type:"integer"` -} - -// String returns the string representation -func (s DescribePatchGroupStateOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribePatchGroupStateOutput) GoString() string { - return s.String() -} - -// SetInstances sets the Instances field's value. -func (s *DescribePatchGroupStateOutput) SetInstances(v int64) *DescribePatchGroupStateOutput { - s.Instances = &v - return s -} - -// SetInstancesWithFailedPatches sets the InstancesWithFailedPatches field's value. -func (s *DescribePatchGroupStateOutput) SetInstancesWithFailedPatches(v int64) *DescribePatchGroupStateOutput { - s.InstancesWithFailedPatches = &v - return s -} - -// SetInstancesWithInstalledOtherPatches sets the InstancesWithInstalledOtherPatches field's value. -func (s *DescribePatchGroupStateOutput) SetInstancesWithInstalledOtherPatches(v int64) *DescribePatchGroupStateOutput { - s.InstancesWithInstalledOtherPatches = &v - return s -} - -// SetInstancesWithInstalledPatches sets the InstancesWithInstalledPatches field's value. -func (s *DescribePatchGroupStateOutput) SetInstancesWithInstalledPatches(v int64) *DescribePatchGroupStateOutput { - s.InstancesWithInstalledPatches = &v - return s -} - -// SetInstancesWithInstalledPendingRebootPatches sets the InstancesWithInstalledPendingRebootPatches field's value. -func (s *DescribePatchGroupStateOutput) SetInstancesWithInstalledPendingRebootPatches(v int64) *DescribePatchGroupStateOutput { - s.InstancesWithInstalledPendingRebootPatches = &v - return s -} - -// SetInstancesWithInstalledRejectedPatches sets the InstancesWithInstalledRejectedPatches field's value. -func (s *DescribePatchGroupStateOutput) SetInstancesWithInstalledRejectedPatches(v int64) *DescribePatchGroupStateOutput { - s.InstancesWithInstalledRejectedPatches = &v - return s -} - -// SetInstancesWithMissingPatches sets the InstancesWithMissingPatches field's value. -func (s *DescribePatchGroupStateOutput) SetInstancesWithMissingPatches(v int64) *DescribePatchGroupStateOutput { - s.InstancesWithMissingPatches = &v - return s -} - -// SetInstancesWithNotApplicablePatches sets the InstancesWithNotApplicablePatches field's value. -func (s *DescribePatchGroupStateOutput) SetInstancesWithNotApplicablePatches(v int64) *DescribePatchGroupStateOutput { - s.InstancesWithNotApplicablePatches = &v - return s -} - -// SetInstancesWithUnreportedNotApplicablePatches sets the InstancesWithUnreportedNotApplicablePatches field's value. -func (s *DescribePatchGroupStateOutput) SetInstancesWithUnreportedNotApplicablePatches(v int64) *DescribePatchGroupStateOutput { - s.InstancesWithUnreportedNotApplicablePatches = &v - return s -} - -type DescribePatchGroupsInput struct { - _ struct{} `type:"structure"` - - // One or more filters. Use a filter to return a more specific list of results. - // - // For DescribePatchGroups,valid filter keys include the following: - // - // * NAME_PREFIX: The name of the patch group. Wildcards (*) are accepted. - // - // * OPERATING_SYSTEM: The supported operating system type to return results - // for. For valid operating system values, see GetDefaultPatchBaselineRequest$OperatingSystem - // in CreatePatchBaseline. Examples: --filters Key=NAME_PREFIX,Values=MyPatchGroup* - // --filters Key=OPERATING_SYSTEM,Values=AMAZON_LINUX_2 - Filters []*PatchOrchestratorFilter `type:"list"` - - // The maximum number of patch groups to return (per page). - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribePatchGroupsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribePatchGroupsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribePatchGroupsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribePatchGroupsInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribePatchGroupsInput) SetFilters(v []*PatchOrchestratorFilter) *DescribePatchGroupsInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribePatchGroupsInput) SetMaxResults(v int64) *DescribePatchGroupsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribePatchGroupsInput) SetNextToken(v string) *DescribePatchGroupsInput { - s.NextToken = &v - return s -} - -type DescribePatchGroupsOutput struct { - _ struct{} `type:"structure"` - - // Each entry in the array contains: - // - // PatchGroup: string (between 1 and 256 characters, Regex: ^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$) - // - // PatchBaselineIdentity: A PatchBaselineIdentity element. - Mappings []*PatchGroupPatchBaselineMapping `type:"list"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s DescribePatchGroupsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribePatchGroupsOutput) GoString() string { - return s.String() -} - -// SetMappings sets the Mappings field's value. -func (s *DescribePatchGroupsOutput) SetMappings(v []*PatchGroupPatchBaselineMapping) *DescribePatchGroupsOutput { - s.Mappings = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribePatchGroupsOutput) SetNextToken(v string) *DescribePatchGroupsOutput { - s.NextToken = &v - return s -} - -type DescribePatchPropertiesInput struct { - _ struct{} `type:"structure"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // The operating system type for which to list patches. - // - // OperatingSystem is a required field - OperatingSystem *string `type:"string" required:"true" enum:"OperatingSystem"` - - // Indicates whether to list patches for the Windows operating system or for - // Microsoft applications. Not applicable for the Linux or macOS operating systems. - PatchSet *string `type:"string" enum:"PatchSet"` - - // The patch property for which you want to view patch details. - // - // Property is a required field - Property *string `type:"string" required:"true" enum:"PatchProperty"` -} - -// String returns the string representation -func (s DescribePatchPropertiesInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribePatchPropertiesInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribePatchPropertiesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribePatchPropertiesInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.OperatingSystem == nil { - invalidParams.Add(request.NewErrParamRequired("OperatingSystem")) - } - if s.Property == nil { - invalidParams.Add(request.NewErrParamRequired("Property")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribePatchPropertiesInput) SetMaxResults(v int64) *DescribePatchPropertiesInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribePatchPropertiesInput) SetNextToken(v string) *DescribePatchPropertiesInput { - s.NextToken = &v - return s -} - -// SetOperatingSystem sets the OperatingSystem field's value. -func (s *DescribePatchPropertiesInput) SetOperatingSystem(v string) *DescribePatchPropertiesInput { - s.OperatingSystem = &v - return s -} - -// SetPatchSet sets the PatchSet field's value. -func (s *DescribePatchPropertiesInput) SetPatchSet(v string) *DescribePatchPropertiesInput { - s.PatchSet = &v - return s -} - -// SetProperty sets the Property field's value. -func (s *DescribePatchPropertiesInput) SetProperty(v string) *DescribePatchPropertiesInput { - s.Property = &v - return s -} - -type DescribePatchPropertiesOutput struct { - _ struct{} `type:"structure"` - - // The token for the next set of items to return. (You use this token in the - // next call.) - NextToken *string `type:"string"` - - // A list of the properties for patches matching the filter request parameters. - Properties []map[string]*string `type:"list"` -} - -// String returns the string representation -func (s DescribePatchPropertiesOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribePatchPropertiesOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribePatchPropertiesOutput) SetNextToken(v string) *DescribePatchPropertiesOutput { - s.NextToken = &v - return s -} - -// SetProperties sets the Properties field's value. -func (s *DescribePatchPropertiesOutput) SetProperties(v []map[string]*string) *DescribePatchPropertiesOutput { - s.Properties = v - return s -} - -type DescribeSessionsInput struct { - _ struct{} `type:"structure"` - - // One or more filters to limit the type of sessions returned by the request. - Filters []*SessionFilter `min:"1" type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // The session status to retrieve a list of sessions for. For example, "Active". - // - // State is a required field - State *string `type:"string" required:"true" enum:"SessionState"` -} - -// String returns the string representation -func (s DescribeSessionsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeSessionsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeSessionsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeSessionsInput"} - if s.Filters != nil && len(s.Filters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Filters", 1)) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.State == nil { - invalidParams.Add(request.NewErrParamRequired("State")) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *DescribeSessionsInput) SetFilters(v []*SessionFilter) *DescribeSessionsInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeSessionsInput) SetMaxResults(v int64) *DescribeSessionsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeSessionsInput) SetNextToken(v string) *DescribeSessionsInput { - s.NextToken = &v - return s -} - -// SetState sets the State field's value. -func (s *DescribeSessionsInput) SetState(v string) *DescribeSessionsInput { - s.State = &v - return s -} - -type DescribeSessionsOutput struct { - _ struct{} `type:"structure"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // A list of sessions meeting the request parameters. - Sessions []*Session `type:"list"` -} - -// String returns the string representation -func (s DescribeSessionsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeSessionsOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeSessionsOutput) SetNextToken(v string) *DescribeSessionsOutput { - s.NextToken = &v - return s -} - -// SetSessions sets the Sessions field's value. -func (s *DescribeSessionsOutput) SetSessions(v []*Session) *DescribeSessionsOutput { - s.Sessions = v - return s -} - -// The specified document already exists. -type DocumentAlreadyExists struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s DocumentAlreadyExists) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentAlreadyExists) GoString() string { - return s.String() -} - -func newErrorDocumentAlreadyExists(v protocol.ResponseMetadata) error { - return &DocumentAlreadyExists{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *DocumentAlreadyExists) Code() string { - return "DocumentAlreadyExists" -} - -// Message returns the exception's message. -func (s *DocumentAlreadyExists) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *DocumentAlreadyExists) OrigErr() error { - return nil -} - -func (s *DocumentAlreadyExists) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *DocumentAlreadyExists) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *DocumentAlreadyExists) RequestID() string { - return s.RespMetadata.RequestID -} - -// A default version of a document. -type DocumentDefaultVersionDescription struct { - _ struct{} `type:"structure"` - - // The default version of the document. - DefaultVersion *string `type:"string"` - - // The default version of the artifact associated with the document. - DefaultVersionName *string `type:"string"` - - // The name of the document. - Name *string `type:"string"` -} - -// String returns the string representation -func (s DocumentDefaultVersionDescription) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentDefaultVersionDescription) GoString() string { - return s.String() -} - -// SetDefaultVersion sets the DefaultVersion field's value. -func (s *DocumentDefaultVersionDescription) SetDefaultVersion(v string) *DocumentDefaultVersionDescription { - s.DefaultVersion = &v - return s -} - -// SetDefaultVersionName sets the DefaultVersionName field's value. -func (s *DocumentDefaultVersionDescription) SetDefaultVersionName(v string) *DocumentDefaultVersionDescription { - s.DefaultVersionName = &v - return s -} - -// SetName sets the Name field's value. -func (s *DocumentDefaultVersionDescription) SetName(v string) *DocumentDefaultVersionDescription { - s.Name = &v - return s -} - -// Describes a Systems Manager document. -type DocumentDescription struct { - _ struct{} `type:"structure"` - - // The version of the document currently approved for use in the organization. - ApprovedVersion *string `type:"string"` - - // Details about the document attachments, including names, locations, sizes, - // and so on. - AttachmentsInformation []*AttachmentInformation `type:"list"` - - // The user in your organization who created the document. - Author *string `type:"string"` - - // The date when the document was created. - CreatedDate *time.Time `type:"timestamp"` - - // The default version. - DefaultVersion *string `type:"string"` - - // A description of the document. - Description *string `type:"string"` - - // The document format, either JSON or YAML. - DocumentFormat *string `type:"string" enum:"DocumentFormat"` - - // The type of document. - DocumentType *string `type:"string" enum:"DocumentType"` - - // The document version. - DocumentVersion *string `type:"string"` - - // The Sha256 or Sha1 hash created by the system when the document was created. - // - // Sha1 hashes have been deprecated. - Hash *string `type:"string"` - - // The hash type of the document. Valid values include Sha256 or Sha1. - // - // Sha1 hashes have been deprecated. - HashType *string `type:"string" enum:"DocumentHashType"` - - // The latest version of the document. - LatestVersion *string `type:"string"` - - // The name of the Systems Manager document. - Name *string `type:"string"` - - // The AWS user account that created the document. - Owner *string `type:"string"` - - // A description of the parameters for a document. - Parameters []*DocumentParameter `type:"list"` - - // The version of the document that is currently under review. - PendingReviewVersion *string `type:"string"` - - // The list of OS platforms compatible with this Systems Manager document. - PlatformTypes []*string `type:"list"` - - // A list of SSM documents required by a document. For example, an ApplicationConfiguration - // document requires an ApplicationConfigurationSchema document. - Requires []*DocumentRequires `min:"1" type:"list"` - - // Details about the review of a document. - ReviewInformation []*ReviewInformation `min:"1" type:"list"` - - // The current status of the review. - ReviewStatus *string `type:"string" enum:"ReviewStatus"` - - // The schema version. - SchemaVersion *string `type:"string"` - - // The SHA1 hash of the document, which you can use for verification. - Sha1 *string `type:"string"` - - // The status of the Systems Manager document. - Status *string `type:"string" enum:"DocumentStatus"` - - // A message returned by AWS Systems Manager that explains the Status value. - // For example, a Failed status might be explained by the StatusInformation - // message, "The specified S3 bucket does not exist. Verify that the URL of - // the S3 bucket is correct." - StatusInformation *string `type:"string"` - - // The tags, or metadata, that have been applied to the document. - Tags []*Tag `type:"list"` - - // The target type which defines the kinds of resources the document can run - // on. For example, /AWS::EC2::Instance. For a list of valid resource types, - // see AWS resource and property types reference (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) - // in the AWS CloudFormation User Guide. - TargetType *string `type:"string"` - - // The version of the artifact associated with the document. - VersionName *string `type:"string"` -} - -// String returns the string representation -func (s DocumentDescription) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentDescription) GoString() string { - return s.String() -} - -// SetApprovedVersion sets the ApprovedVersion field's value. -func (s *DocumentDescription) SetApprovedVersion(v string) *DocumentDescription { - s.ApprovedVersion = &v - return s -} - -// SetAttachmentsInformation sets the AttachmentsInformation field's value. -func (s *DocumentDescription) SetAttachmentsInformation(v []*AttachmentInformation) *DocumentDescription { - s.AttachmentsInformation = v - return s -} - -// SetAuthor sets the Author field's value. -func (s *DocumentDescription) SetAuthor(v string) *DocumentDescription { - s.Author = &v - return s -} - -// SetCreatedDate sets the CreatedDate field's value. -func (s *DocumentDescription) SetCreatedDate(v time.Time) *DocumentDescription { - s.CreatedDate = &v - return s -} - -// SetDefaultVersion sets the DefaultVersion field's value. -func (s *DocumentDescription) SetDefaultVersion(v string) *DocumentDescription { - s.DefaultVersion = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *DocumentDescription) SetDescription(v string) *DocumentDescription { - s.Description = &v - return s -} - -// SetDocumentFormat sets the DocumentFormat field's value. -func (s *DocumentDescription) SetDocumentFormat(v string) *DocumentDescription { - s.DocumentFormat = &v - return s -} - -// SetDocumentType sets the DocumentType field's value. -func (s *DocumentDescription) SetDocumentType(v string) *DocumentDescription { - s.DocumentType = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *DocumentDescription) SetDocumentVersion(v string) *DocumentDescription { - s.DocumentVersion = &v - return s -} - -// SetHash sets the Hash field's value. -func (s *DocumentDescription) SetHash(v string) *DocumentDescription { - s.Hash = &v - return s -} - -// SetHashType sets the HashType field's value. -func (s *DocumentDescription) SetHashType(v string) *DocumentDescription { - s.HashType = &v - return s -} - -// SetLatestVersion sets the LatestVersion field's value. -func (s *DocumentDescription) SetLatestVersion(v string) *DocumentDescription { - s.LatestVersion = &v - return s -} - -// SetName sets the Name field's value. -func (s *DocumentDescription) SetName(v string) *DocumentDescription { - s.Name = &v - return s -} - -// SetOwner sets the Owner field's value. -func (s *DocumentDescription) SetOwner(v string) *DocumentDescription { - s.Owner = &v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *DocumentDescription) SetParameters(v []*DocumentParameter) *DocumentDescription { - s.Parameters = v - return s -} - -// SetPendingReviewVersion sets the PendingReviewVersion field's value. -func (s *DocumentDescription) SetPendingReviewVersion(v string) *DocumentDescription { - s.PendingReviewVersion = &v - return s -} - -// SetPlatformTypes sets the PlatformTypes field's value. -func (s *DocumentDescription) SetPlatformTypes(v []*string) *DocumentDescription { - s.PlatformTypes = v - return s -} - -// SetRequires sets the Requires field's value. -func (s *DocumentDescription) SetRequires(v []*DocumentRequires) *DocumentDescription { - s.Requires = v - return s -} - -// SetReviewInformation sets the ReviewInformation field's value. -func (s *DocumentDescription) SetReviewInformation(v []*ReviewInformation) *DocumentDescription { - s.ReviewInformation = v - return s -} - -// SetReviewStatus sets the ReviewStatus field's value. -func (s *DocumentDescription) SetReviewStatus(v string) *DocumentDescription { - s.ReviewStatus = &v - return s -} - -// SetSchemaVersion sets the SchemaVersion field's value. -func (s *DocumentDescription) SetSchemaVersion(v string) *DocumentDescription { - s.SchemaVersion = &v - return s -} - -// SetSha1 sets the Sha1 field's value. -func (s *DocumentDescription) SetSha1(v string) *DocumentDescription { - s.Sha1 = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *DocumentDescription) SetStatus(v string) *DocumentDescription { - s.Status = &v - return s -} - -// SetStatusInformation sets the StatusInformation field's value. -func (s *DocumentDescription) SetStatusInformation(v string) *DocumentDescription { - s.StatusInformation = &v - return s -} - -// SetTags sets the Tags field's value. -func (s *DocumentDescription) SetTags(v []*Tag) *DocumentDescription { - s.Tags = v - return s -} - -// SetTargetType sets the TargetType field's value. -func (s *DocumentDescription) SetTargetType(v string) *DocumentDescription { - s.TargetType = &v - return s -} - -// SetVersionName sets the VersionName field's value. -func (s *DocumentDescription) SetVersionName(v string) *DocumentDescription { - s.VersionName = &v - return s -} - -// This data type is deprecated. Instead, use DocumentKeyValuesFilter. -type DocumentFilter struct { - _ struct{} `type:"structure"` - - // The name of the filter. - // - // Key is a required field - Key *string `locationName:"key" type:"string" required:"true" enum:"DocumentFilterKey"` - - // The value of the filter. - // - // Value is a required field - Value *string `locationName:"value" min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s DocumentFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DocumentFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DocumentFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Value == nil { - invalidParams.Add(request.NewErrParamRequired("Value")) - } - if s.Value != nil && len(*s.Value) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Value", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *DocumentFilter) SetKey(v string) *DocumentFilter { - s.Key = &v - return s -} - -// SetValue sets the Value field's value. -func (s *DocumentFilter) SetValue(v string) *DocumentFilter { - s.Value = &v - return s -} - -// Describes the name of a Systems Manager document. -type DocumentIdentifier struct { - _ struct{} `type:"structure"` - - // The user in your organization who created the document. - Author *string `type:"string"` - - // The document format, either JSON or YAML. - DocumentFormat *string `type:"string" enum:"DocumentFormat"` - - // The document type. - DocumentType *string `type:"string" enum:"DocumentType"` - - // The document version. - DocumentVersion *string `type:"string"` - - // The name of the Systems Manager document. - Name *string `type:"string"` - - // The AWS user account that created the document. - Owner *string `type:"string"` - - // The operating system platform. - PlatformTypes []*string `type:"list"` - - // A list of SSM documents required by a document. For example, an ApplicationConfiguration - // document requires an ApplicationConfigurationSchema document. - Requires []*DocumentRequires `min:"1" type:"list"` - - // The current status of a document review. - ReviewStatus *string `type:"string" enum:"ReviewStatus"` - - // The schema version. - SchemaVersion *string `type:"string"` - - // The tags, or metadata, that have been applied to the document. - Tags []*Tag `type:"list"` - - // The target type which defines the kinds of resources the document can run - // on. For example, /AWS::EC2::Instance. For a list of valid resource types, - // see AWS resource and property types reference (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) - // in the AWS CloudFormation User Guide. - TargetType *string `type:"string"` - - // An optional field specifying the version of the artifact associated with - // the document. For example, "Release 12, Update 6". This value is unique across - // all versions of a document, and cannot be changed. - VersionName *string `type:"string"` -} - -// String returns the string representation -func (s DocumentIdentifier) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentIdentifier) GoString() string { - return s.String() -} - -// SetAuthor sets the Author field's value. -func (s *DocumentIdentifier) SetAuthor(v string) *DocumentIdentifier { - s.Author = &v - return s -} - -// SetDocumentFormat sets the DocumentFormat field's value. -func (s *DocumentIdentifier) SetDocumentFormat(v string) *DocumentIdentifier { - s.DocumentFormat = &v - return s -} - -// SetDocumentType sets the DocumentType field's value. -func (s *DocumentIdentifier) SetDocumentType(v string) *DocumentIdentifier { - s.DocumentType = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *DocumentIdentifier) SetDocumentVersion(v string) *DocumentIdentifier { - s.DocumentVersion = &v - return s -} - -// SetName sets the Name field's value. -func (s *DocumentIdentifier) SetName(v string) *DocumentIdentifier { - s.Name = &v - return s -} - -// SetOwner sets the Owner field's value. -func (s *DocumentIdentifier) SetOwner(v string) *DocumentIdentifier { - s.Owner = &v - return s -} - -// SetPlatformTypes sets the PlatformTypes field's value. -func (s *DocumentIdentifier) SetPlatformTypes(v []*string) *DocumentIdentifier { - s.PlatformTypes = v - return s -} - -// SetRequires sets the Requires field's value. -func (s *DocumentIdentifier) SetRequires(v []*DocumentRequires) *DocumentIdentifier { - s.Requires = v - return s -} - -// SetReviewStatus sets the ReviewStatus field's value. -func (s *DocumentIdentifier) SetReviewStatus(v string) *DocumentIdentifier { - s.ReviewStatus = &v - return s -} - -// SetSchemaVersion sets the SchemaVersion field's value. -func (s *DocumentIdentifier) SetSchemaVersion(v string) *DocumentIdentifier { - s.SchemaVersion = &v - return s -} - -// SetTags sets the Tags field's value. -func (s *DocumentIdentifier) SetTags(v []*Tag) *DocumentIdentifier { - s.Tags = v - return s -} - -// SetTargetType sets the TargetType field's value. -func (s *DocumentIdentifier) SetTargetType(v string) *DocumentIdentifier { - s.TargetType = &v - return s -} - -// SetVersionName sets the VersionName field's value. -func (s *DocumentIdentifier) SetVersionName(v string) *DocumentIdentifier { - s.VersionName = &v - return s -} - -// One or more filters. Use a filter to return a more specific list of documents. -// -// For keys, you can specify one or more tags that have been applied to a document. -// -// You can also use AWS-provided keys, some of which have specific allowed values. -// These keys and their associated values are as follows: -// -// DocumentType -// -// * ApplicationConfiguration -// -// * ApplicationConfigurationSchema -// -// * Automation -// -// * ChangeCalendar -// -// * Command -// -// * DeploymentStrategy -// -// * Package -// -// * Policy -// -// * Session -// -// Owner -// -// Note that only one Owner can be specified in a request. For example: Key=Owner,Values=Self. -// -// * Amazon -// -// * Private -// -// * Public -// -// * Self -// -// * ThirdParty -// -// PlatformTypes -// -// * Linux -// -// * Windows -// -// Name is another AWS-provided key. If you use Name as a key, you can use a -// name prefix to return a list of documents. For example, in the AWS CLI, to -// return a list of all documents that begin with Te, run the following command: -// -// aws ssm list-documents --filters Key=Name,Values=Te -// -// You can also use the TargetType AWS-provided key. For a list of valid resource -// type values that can be used with this key, see AWS resource and property -// types reference (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) -// in the AWS CloudFormation User Guide. -// -// If you specify more than two keys, only documents that are identified by -// all the tags are returned in the results. If you specify more than two values -// for a key, documents that are identified by any of the values are returned -// in the results. -// -// To specify a custom key and value pair, use the format Key=tag:tagName,Values=valueName. -// -// For example, if you created a key called region and are using the AWS CLI -// to call the list-documents command: -// -// aws ssm list-documents --filters Key=tag:region,Values=east,west Key=Owner,Values=Self -type DocumentKeyValuesFilter struct { - _ struct{} `type:"structure"` - - // The name of the filter key. - Key *string `min:"1" type:"string"` - - // The value for the filter key. - Values []*string `type:"list"` -} - -// String returns the string representation -func (s DocumentKeyValuesFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentKeyValuesFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DocumentKeyValuesFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DocumentKeyValuesFilter"} - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Key", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *DocumentKeyValuesFilter) SetKey(v string) *DocumentKeyValuesFilter { - s.Key = &v - return s -} - -// SetValues sets the Values field's value. -func (s *DocumentKeyValuesFilter) SetValues(v []*string) *DocumentKeyValuesFilter { - s.Values = v - return s -} - -// You can have at most 500 active Systems Manager documents. -type DocumentLimitExceeded struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s DocumentLimitExceeded) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentLimitExceeded) GoString() string { - return s.String() -} - -func newErrorDocumentLimitExceeded(v protocol.ResponseMetadata) error { - return &DocumentLimitExceeded{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *DocumentLimitExceeded) Code() string { - return "DocumentLimitExceeded" -} - -// Message returns the exception's message. -func (s *DocumentLimitExceeded) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *DocumentLimitExceeded) OrigErr() error { - return nil -} - -func (s *DocumentLimitExceeded) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *DocumentLimitExceeded) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *DocumentLimitExceeded) RequestID() string { - return s.RespMetadata.RequestID -} - -// Details about the response to a document review request. -type DocumentMetadataResponseInfo struct { - _ struct{} `type:"structure"` - - // Details about a reviewer's response to a document review request. - ReviewerResponse []*DocumentReviewerResponseSource `type:"list"` -} - -// String returns the string representation -func (s DocumentMetadataResponseInfo) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentMetadataResponseInfo) GoString() string { - return s.String() -} - -// SetReviewerResponse sets the ReviewerResponse field's value. -func (s *DocumentMetadataResponseInfo) SetReviewerResponse(v []*DocumentReviewerResponseSource) *DocumentMetadataResponseInfo { - s.ReviewerResponse = v - return s -} - -// Parameters specified in a System Manager document that run on the server -// when the command is run. -type DocumentParameter struct { - _ struct{} `type:"structure"` - - // If specified, the default values for the parameters. Parameters without a - // default value are required. Parameters with a default value are optional. - DefaultValue *string `type:"string"` - - // A description of what the parameter does, how to use it, the default value, - // and whether or not the parameter is optional. - Description *string `type:"string"` - - // The name of the parameter. - Name *string `type:"string"` - - // The type of parameter. The type can be either String or StringList. - Type *string `type:"string" enum:"DocumentParameterType"` -} - -// String returns the string representation -func (s DocumentParameter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentParameter) GoString() string { - return s.String() -} - -// SetDefaultValue sets the DefaultValue field's value. -func (s *DocumentParameter) SetDefaultValue(v string) *DocumentParameter { - s.DefaultValue = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *DocumentParameter) SetDescription(v string) *DocumentParameter { - s.Description = &v - return s -} - -// SetName sets the Name field's value. -func (s *DocumentParameter) SetName(v string) *DocumentParameter { - s.Name = &v - return s -} - -// SetType sets the Type field's value. -func (s *DocumentParameter) SetType(v string) *DocumentParameter { - s.Type = &v - return s -} - -// The document cannot be shared with more AWS user accounts. You can share -// a document with a maximum of 20 accounts. You can publicly share up to five -// documents. If you need to increase this limit, contact AWS Support. -type DocumentPermissionLimit struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s DocumentPermissionLimit) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentPermissionLimit) GoString() string { - return s.String() -} - -func newErrorDocumentPermissionLimit(v protocol.ResponseMetadata) error { - return &DocumentPermissionLimit{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *DocumentPermissionLimit) Code() string { - return "DocumentPermissionLimit" -} - -// Message returns the exception's message. -func (s *DocumentPermissionLimit) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *DocumentPermissionLimit) OrigErr() error { - return nil -} - -func (s *DocumentPermissionLimit) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *DocumentPermissionLimit) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *DocumentPermissionLimit) RequestID() string { - return s.RespMetadata.RequestID -} - -// An SSM document required by the current document. -type DocumentRequires struct { - _ struct{} `type:"structure"` - - // The name of the required SSM document. The name can be an Amazon Resource - // Name (ARN). - // - // Name is a required field - Name *string `type:"string" required:"true"` - - // The document version required by the current document. - Version *string `type:"string"` -} - -// String returns the string representation -func (s DocumentRequires) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentRequires) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DocumentRequires) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DocumentRequires"} - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetName sets the Name field's value. -func (s *DocumentRequires) SetName(v string) *DocumentRequires { - s.Name = &v - return s -} - -// SetVersion sets the Version field's value. -func (s *DocumentRequires) SetVersion(v string) *DocumentRequires { - s.Version = &v - return s -} - -// Information about comments added to a document review request. -type DocumentReviewCommentSource struct { - _ struct{} `type:"structure"` - - // The content of a comment entered by a user who requests a review of a new - // document version, or who reviews the new version. - Content *string `min:"1" type:"string"` - - // The type of information added to a review request. Currently, only the value - // Comment is supported. - Type *string `type:"string" enum:"DocumentReviewCommentType"` -} - -// String returns the string representation -func (s DocumentReviewCommentSource) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentReviewCommentSource) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DocumentReviewCommentSource) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DocumentReviewCommentSource"} - if s.Content != nil && len(*s.Content) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Content", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetContent sets the Content field's value. -func (s *DocumentReviewCommentSource) SetContent(v string) *DocumentReviewCommentSource { - s.Content = &v - return s -} - -// SetType sets the Type field's value. -func (s *DocumentReviewCommentSource) SetType(v string) *DocumentReviewCommentSource { - s.Type = &v - return s -} - -// Information about a reviewer's response to a document review request. -type DocumentReviewerResponseSource struct { - _ struct{} `type:"structure"` - - // The comment entered by a reviewer as part of their document review response. - Comment []*DocumentReviewCommentSource `type:"list"` - - // The date and time that a reviewer entered a response to a document review - // request. - CreateTime *time.Time `type:"timestamp"` - - // The current review status of a new custom SSM document created by a member - // of your organization, or of the latest version of an existing SSM document. - // - // Only one version of a document can be in the APPROVED state at a time. When - // a new version is approved, the status of the previous version changes to - // REJECTED. - // - // Only one version of a document can be in review, or PENDING, at a time. - ReviewStatus *string `type:"string" enum:"ReviewStatus"` - - // The user in your organization assigned to review a document request. - Reviewer *string `type:"string"` - - // The date and time that a reviewer last updated a response to a document review - // request. - UpdatedTime *time.Time `type:"timestamp"` -} - -// String returns the string representation -func (s DocumentReviewerResponseSource) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentReviewerResponseSource) GoString() string { - return s.String() -} - -// SetComment sets the Comment field's value. -func (s *DocumentReviewerResponseSource) SetComment(v []*DocumentReviewCommentSource) *DocumentReviewerResponseSource { - s.Comment = v - return s -} - -// SetCreateTime sets the CreateTime field's value. -func (s *DocumentReviewerResponseSource) SetCreateTime(v time.Time) *DocumentReviewerResponseSource { - s.CreateTime = &v - return s -} - -// SetReviewStatus sets the ReviewStatus field's value. -func (s *DocumentReviewerResponseSource) SetReviewStatus(v string) *DocumentReviewerResponseSource { - s.ReviewStatus = &v - return s -} - -// SetReviewer sets the Reviewer field's value. -func (s *DocumentReviewerResponseSource) SetReviewer(v string) *DocumentReviewerResponseSource { - s.Reviewer = &v - return s -} - -// SetUpdatedTime sets the UpdatedTime field's value. -func (s *DocumentReviewerResponseSource) SetUpdatedTime(v time.Time) *DocumentReviewerResponseSource { - s.UpdatedTime = &v - return s -} - -// Information about a document approval review. -type DocumentReviews struct { - _ struct{} `type:"structure"` - - // The action to take on a document approval review request. - // - // Action is a required field - Action *string `type:"string" required:"true" enum:"DocumentReviewAction"` - - // A comment entered by a user in your organization about the document review - // request. - Comment []*DocumentReviewCommentSource `type:"list"` -} - -// String returns the string representation -func (s DocumentReviews) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentReviews) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DocumentReviews) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DocumentReviews"} - if s.Action == nil { - invalidParams.Add(request.NewErrParamRequired("Action")) - } - if s.Comment != nil { - for i, v := range s.Comment { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Comment", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAction sets the Action field's value. -func (s *DocumentReviews) SetAction(v string) *DocumentReviews { - s.Action = &v - return s -} - -// SetComment sets the Comment field's value. -func (s *DocumentReviews) SetComment(v []*DocumentReviewCommentSource) *DocumentReviews { - s.Comment = v - return s -} - -// Version information about the document. -type DocumentVersionInfo struct { - _ struct{} `type:"structure"` - - // The date the document was created. - CreatedDate *time.Time `type:"timestamp"` - - // The document format, either JSON or YAML. - DocumentFormat *string `type:"string" enum:"DocumentFormat"` - - // The document version. - DocumentVersion *string `type:"string"` - - // An identifier for the default version of the document. - IsDefaultVersion *bool `type:"boolean"` - - // The document name. - Name *string `type:"string"` - - // The current status of the approval review for the latest version of the document. - ReviewStatus *string `type:"string" enum:"ReviewStatus"` - - // The status of the Systems Manager document, such as Creating, Active, Failed, - // and Deleting. - Status *string `type:"string" enum:"DocumentStatus"` - - // A message returned by AWS Systems Manager that explains the Status value. - // For example, a Failed status might be explained by the StatusInformation - // message, "The specified S3 bucket does not exist. Verify that the URL of - // the S3 bucket is correct." - StatusInformation *string `type:"string"` - - // The version of the artifact associated with the document. For example, "Release - // 12, Update 6". This value is unique across all versions of a document, and - // cannot be changed. - VersionName *string `type:"string"` -} - -// String returns the string representation -func (s DocumentVersionInfo) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentVersionInfo) GoString() string { - return s.String() -} - -// SetCreatedDate sets the CreatedDate field's value. -func (s *DocumentVersionInfo) SetCreatedDate(v time.Time) *DocumentVersionInfo { - s.CreatedDate = &v - return s -} - -// SetDocumentFormat sets the DocumentFormat field's value. -func (s *DocumentVersionInfo) SetDocumentFormat(v string) *DocumentVersionInfo { - s.DocumentFormat = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *DocumentVersionInfo) SetDocumentVersion(v string) *DocumentVersionInfo { - s.DocumentVersion = &v - return s -} - -// SetIsDefaultVersion sets the IsDefaultVersion field's value. -func (s *DocumentVersionInfo) SetIsDefaultVersion(v bool) *DocumentVersionInfo { - s.IsDefaultVersion = &v - return s -} - -// SetName sets the Name field's value. -func (s *DocumentVersionInfo) SetName(v string) *DocumentVersionInfo { - s.Name = &v - return s -} - -// SetReviewStatus sets the ReviewStatus field's value. -func (s *DocumentVersionInfo) SetReviewStatus(v string) *DocumentVersionInfo { - s.ReviewStatus = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *DocumentVersionInfo) SetStatus(v string) *DocumentVersionInfo { - s.Status = &v - return s -} - -// SetStatusInformation sets the StatusInformation field's value. -func (s *DocumentVersionInfo) SetStatusInformation(v string) *DocumentVersionInfo { - s.StatusInformation = &v - return s -} - -// SetVersionName sets the VersionName field's value. -func (s *DocumentVersionInfo) SetVersionName(v string) *DocumentVersionInfo { - s.VersionName = &v - return s -} - -// The document has too many versions. Delete one or more document versions -// and try again. -type DocumentVersionLimitExceeded struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s DocumentVersionLimitExceeded) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DocumentVersionLimitExceeded) GoString() string { - return s.String() -} - -func newErrorDocumentVersionLimitExceeded(v protocol.ResponseMetadata) error { - return &DocumentVersionLimitExceeded{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *DocumentVersionLimitExceeded) Code() string { - return "DocumentVersionLimitExceeded" -} - -// Message returns the exception's message. -func (s *DocumentVersionLimitExceeded) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *DocumentVersionLimitExceeded) OrigErr() error { - return nil -} - -func (s *DocumentVersionLimitExceeded) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *DocumentVersionLimitExceeded) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *DocumentVersionLimitExceeded) RequestID() string { - return s.RespMetadata.RequestID -} - -// Error returned when the ID specified for a resource, such as a maintenance -// window or Patch baseline, doesn't exist. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -type DoesNotExistException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s DoesNotExistException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DoesNotExistException) GoString() string { - return s.String() -} - -func newErrorDoesNotExistException(v protocol.ResponseMetadata) error { - return &DoesNotExistException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *DoesNotExistException) Code() string { - return "DoesNotExistException" -} - -// Message returns the exception's message. -func (s *DoesNotExistException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *DoesNotExistException) OrigErr() error { - return nil -} - -func (s *DoesNotExistException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *DoesNotExistException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *DoesNotExistException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The content of the association document matches another document. Change -// the content of the document and try again. -type DuplicateDocumentContent struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s DuplicateDocumentContent) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DuplicateDocumentContent) GoString() string { - return s.String() -} - -func newErrorDuplicateDocumentContent(v protocol.ResponseMetadata) error { - return &DuplicateDocumentContent{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *DuplicateDocumentContent) Code() string { - return "DuplicateDocumentContent" -} - -// Message returns the exception's message. -func (s *DuplicateDocumentContent) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *DuplicateDocumentContent) OrigErr() error { - return nil -} - -func (s *DuplicateDocumentContent) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *DuplicateDocumentContent) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *DuplicateDocumentContent) RequestID() string { - return s.RespMetadata.RequestID -} - -// The version name has already been used in this document. Specify a different -// version name, and then try again. -type DuplicateDocumentVersionName struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s DuplicateDocumentVersionName) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DuplicateDocumentVersionName) GoString() string { - return s.String() -} - -func newErrorDuplicateDocumentVersionName(v protocol.ResponseMetadata) error { - return &DuplicateDocumentVersionName{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *DuplicateDocumentVersionName) Code() string { - return "DuplicateDocumentVersionName" -} - -// Message returns the exception's message. -func (s *DuplicateDocumentVersionName) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *DuplicateDocumentVersionName) OrigErr() error { - return nil -} - -func (s *DuplicateDocumentVersionName) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *DuplicateDocumentVersionName) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *DuplicateDocumentVersionName) RequestID() string { - return s.RespMetadata.RequestID -} - -// You cannot specify an instance ID in more than one association. -type DuplicateInstanceId struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s DuplicateInstanceId) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DuplicateInstanceId) GoString() string { - return s.String() -} - -func newErrorDuplicateInstanceId(v protocol.ResponseMetadata) error { - return &DuplicateInstanceId{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *DuplicateInstanceId) Code() string { - return "DuplicateInstanceId" -} - -// Message returns the exception's message. -func (s *DuplicateInstanceId) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *DuplicateInstanceId) OrigErr() error { - return nil -} - -func (s *DuplicateInstanceId) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *DuplicateInstanceId) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *DuplicateInstanceId) RequestID() string { - return s.RespMetadata.RequestID -} - -// The EffectivePatch structure defines metadata about a patch along with the -// approval state of the patch in a particular patch baseline. The approval -// state includes information about whether the patch is currently approved, -// due to be approved by a rule, explicitly approved, or explicitly rejected -// and the date the patch was or will be approved. -type EffectivePatch struct { - _ struct{} `type:"structure"` - - // Provides metadata for a patch, including information such as the KB ID, severity, - // classification and a URL for where more information can be obtained about - // the patch. - Patch *Patch `type:"structure"` - - // The status of the patch in a patch baseline. This includes information about - // whether the patch is currently approved, due to be approved by a rule, explicitly - // approved, or explicitly rejected and the date the patch was or will be approved. - PatchStatus *PatchStatus `type:"structure"` -} - -// String returns the string representation -func (s EffectivePatch) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s EffectivePatch) GoString() string { - return s.String() -} - -// SetPatch sets the Patch field's value. -func (s *EffectivePatch) SetPatch(v *Patch) *EffectivePatch { - s.Patch = v - return s -} - -// SetPatchStatus sets the PatchStatus field's value. -func (s *EffectivePatch) SetPatchStatus(v *PatchStatus) *EffectivePatch { - s.PatchStatus = v - return s -} - -// Describes a failed association. -type FailedCreateAssociation struct { - _ struct{} `type:"structure"` - - // The association. - Entry *CreateAssociationBatchRequestEntry `type:"structure"` - - // The source of the failure. - Fault *string `type:"string" enum:"Fault"` - - // A description of the failure. - Message *string `type:"string"` -} - -// String returns the string representation -func (s FailedCreateAssociation) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s FailedCreateAssociation) GoString() string { - return s.String() -} - -// SetEntry sets the Entry field's value. -func (s *FailedCreateAssociation) SetEntry(v *CreateAssociationBatchRequestEntry) *FailedCreateAssociation { - s.Entry = v - return s -} - -// SetFault sets the Fault field's value. -func (s *FailedCreateAssociation) SetFault(v string) *FailedCreateAssociation { - s.Fault = &v - return s -} - -// SetMessage sets the Message field's value. -func (s *FailedCreateAssociation) SetMessage(v string) *FailedCreateAssociation { - s.Message = &v - return s -} - -// Information about an Automation failure. -type FailureDetails struct { - _ struct{} `type:"structure"` - - // Detailed information about the Automation step failure. - Details map[string][]*string `min:"1" type:"map"` - - // The stage of the Automation execution when the failure occurred. The stages - // include the following: InputValidation, PreVerification, Invocation, PostVerification. - FailureStage *string `type:"string"` - - // The type of Automation failure. Failure types include the following: Action, - // Permission, Throttling, Verification, Internal. - FailureType *string `type:"string"` -} - -// String returns the string representation -func (s FailureDetails) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s FailureDetails) GoString() string { - return s.String() -} - -// SetDetails sets the Details field's value. -func (s *FailureDetails) SetDetails(v map[string][]*string) *FailureDetails { - s.Details = v - return s -} - -// SetFailureStage sets the FailureStage field's value. -func (s *FailureDetails) SetFailureStage(v string) *FailureDetails { - s.FailureStage = &v - return s -} - -// SetFailureType sets the FailureType field's value. -func (s *FailureDetails) SetFailureType(v string) *FailureDetails { - s.FailureType = &v - return s -} - -// You attempted to register a LAMBDA or STEP_FUNCTIONS task in a region where -// the corresponding service is not available. -type FeatureNotAvailableException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s FeatureNotAvailableException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s FeatureNotAvailableException) GoString() string { - return s.String() -} - -func newErrorFeatureNotAvailableException(v protocol.ResponseMetadata) error { - return &FeatureNotAvailableException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *FeatureNotAvailableException) Code() string { - return "FeatureNotAvailableException" -} - -// Message returns the exception's message. -func (s *FeatureNotAvailableException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *FeatureNotAvailableException) OrigErr() error { - return nil -} - -func (s *FeatureNotAvailableException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *FeatureNotAvailableException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *FeatureNotAvailableException) RequestID() string { - return s.RespMetadata.RequestID -} - -type GetAutomationExecutionInput struct { - _ struct{} `type:"structure"` - - // The unique identifier for an existing automation execution to examine. The - // execution ID is returned by StartAutomationExecution when the execution of - // an Automation document is initiated. - // - // AutomationExecutionId is a required field - AutomationExecutionId *string `min:"36" type:"string" required:"true"` -} - -// String returns the string representation -func (s GetAutomationExecutionInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetAutomationExecutionInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetAutomationExecutionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetAutomationExecutionInput"} - if s.AutomationExecutionId == nil { - invalidParams.Add(request.NewErrParamRequired("AutomationExecutionId")) - } - if s.AutomationExecutionId != nil && len(*s.AutomationExecutionId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("AutomationExecutionId", 36)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAutomationExecutionId sets the AutomationExecutionId field's value. -func (s *GetAutomationExecutionInput) SetAutomationExecutionId(v string) *GetAutomationExecutionInput { - s.AutomationExecutionId = &v - return s -} - -type GetAutomationExecutionOutput struct { - _ struct{} `type:"structure"` - - // Detailed information about the current state of an automation execution. - AutomationExecution *AutomationExecution `type:"structure"` -} - -// String returns the string representation -func (s GetAutomationExecutionOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetAutomationExecutionOutput) GoString() string { - return s.String() -} - -// SetAutomationExecution sets the AutomationExecution field's value. -func (s *GetAutomationExecutionOutput) SetAutomationExecution(v *AutomationExecution) *GetAutomationExecutionOutput { - s.AutomationExecution = v - return s -} - -type GetCalendarStateInput struct { - _ struct{} `type:"structure"` - - // (Optional) The specific time for which you want to get calendar state information, - // in ISO 8601 (https://en.wikipedia.org/wiki/ISO_8601) format. If you do not - // add AtTime, the current time is assumed. - AtTime *string `type:"string"` - - // The names or Amazon Resource Names (ARNs) of the Systems Manager documents - // that represent the calendar entries for which you want to get the state. - // - // CalendarNames is a required field - CalendarNames []*string `type:"list" required:"true"` -} - -// String returns the string representation -func (s GetCalendarStateInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetCalendarStateInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetCalendarStateInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetCalendarStateInput"} - if s.CalendarNames == nil { - invalidParams.Add(request.NewErrParamRequired("CalendarNames")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAtTime sets the AtTime field's value. -func (s *GetCalendarStateInput) SetAtTime(v string) *GetCalendarStateInput { - s.AtTime = &v - return s -} - -// SetCalendarNames sets the CalendarNames field's value. -func (s *GetCalendarStateInput) SetCalendarNames(v []*string) *GetCalendarStateInput { - s.CalendarNames = v - return s -} - -type GetCalendarStateOutput struct { - _ struct{} `type:"structure"` - - // The time, as an ISO 8601 (https://en.wikipedia.org/wiki/ISO_8601) string, - // that you specified in your command. If you did not specify a time, GetCalendarState - // uses the current time. - AtTime *string `type:"string"` - - // The time, as an ISO 8601 (https://en.wikipedia.org/wiki/ISO_8601) string, - // that the calendar state will change. If the current calendar state is OPEN, - // NextTransitionTime indicates when the calendar state changes to CLOSED, and - // vice-versa. - NextTransitionTime *string `type:"string"` - - // The state of the calendar. An OPEN calendar indicates that actions are allowed - // to proceed, and a CLOSED calendar indicates that actions are not allowed - // to proceed. - State *string `type:"string" enum:"CalendarState"` -} - -// String returns the string representation -func (s GetCalendarStateOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetCalendarStateOutput) GoString() string { - return s.String() -} - -// SetAtTime sets the AtTime field's value. -func (s *GetCalendarStateOutput) SetAtTime(v string) *GetCalendarStateOutput { - s.AtTime = &v - return s -} - -// SetNextTransitionTime sets the NextTransitionTime field's value. -func (s *GetCalendarStateOutput) SetNextTransitionTime(v string) *GetCalendarStateOutput { - s.NextTransitionTime = &v - return s -} - -// SetState sets the State field's value. -func (s *GetCalendarStateOutput) SetState(v string) *GetCalendarStateOutput { - s.State = &v - return s -} - -type GetCommandInvocationInput struct { - _ struct{} `type:"structure"` - - // (Required) The parent command ID of the invocation plugin. - // - // CommandId is a required field - CommandId *string `min:"36" type:"string" required:"true"` - - // (Required) The ID of the managed instance targeted by the command. A managed - // instance can be an EC2 instance or an instance in your hybrid environment - // that is configured for Systems Manager. - // - // InstanceId is a required field - InstanceId *string `type:"string" required:"true"` - - // (Optional) The name of the plugin for which you want detailed results. If - // the document contains only one plugin, the name can be omitted and the details - // will be returned. - // - // Plugin names are also referred to as step names in Systems Manager documents. - PluginName *string `min:"4" type:"string"` -} - -// String returns the string representation -func (s GetCommandInvocationInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetCommandInvocationInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetCommandInvocationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetCommandInvocationInput"} - if s.CommandId == nil { - invalidParams.Add(request.NewErrParamRequired("CommandId")) - } - if s.CommandId != nil && len(*s.CommandId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("CommandId", 36)) - } - if s.InstanceId == nil { - invalidParams.Add(request.NewErrParamRequired("InstanceId")) - } - if s.PluginName != nil && len(*s.PluginName) < 4 { - invalidParams.Add(request.NewErrParamMinLen("PluginName", 4)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetCommandId sets the CommandId field's value. -func (s *GetCommandInvocationInput) SetCommandId(v string) *GetCommandInvocationInput { - s.CommandId = &v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *GetCommandInvocationInput) SetInstanceId(v string) *GetCommandInvocationInput { - s.InstanceId = &v - return s -} - -// SetPluginName sets the PluginName field's value. -func (s *GetCommandInvocationInput) SetPluginName(v string) *GetCommandInvocationInput { - s.PluginName = &v - return s -} - -type GetCommandInvocationOutput struct { - _ struct{} `type:"structure"` - - // CloudWatch Logs information where Systems Manager sent the command output. - CloudWatchOutputConfig *CloudWatchOutputConfig `type:"structure"` - - // The parent command ID of the invocation plugin. - CommandId *string `min:"36" type:"string"` - - // The comment text for the command. - Comment *string `type:"string"` - - // The name of the document that was run. For example, AWS-RunShellScript. - DocumentName *string `type:"string"` - - // The SSM document version used in the request. - DocumentVersion *string `type:"string"` - - // Duration since ExecutionStartDateTime. - ExecutionElapsedTime *string `type:"string"` - - // The date and time the plugin was finished running. Date and time are written - // in ISO 8601 format. For example, June 7, 2017 is represented as 2017-06-7. - // The following sample AWS CLI command uses the InvokedAfter filter. - // - // aws ssm list-commands --filters key=InvokedAfter,value=2017-06-07T00:00:00Z - // - // If the plugin has not started to run, the string is empty. - ExecutionEndDateTime *string `type:"string"` - - // The date and time the plugin started running. Date and time are written in - // ISO 8601 format. For example, June 7, 2017 is represented as 2017-06-7. The - // following sample AWS CLI command uses the InvokedBefore filter. - // - // aws ssm list-commands --filters key=InvokedBefore,value=2017-06-07T00:00:00Z - // - // If the plugin has not started to run, the string is empty. - ExecutionStartDateTime *string `type:"string"` - - // The ID of the managed instance targeted by the command. A managed instance - // can be an EC2 instance or an instance in your hybrid environment that is - // configured for Systems Manager. - InstanceId *string `type:"string"` - - // The name of the plugin for which you want detailed results. For example, - // aws:RunShellScript is a plugin. - PluginName *string `min:"4" type:"string"` - - // The error level response code for the plugin script. If the response code - // is -1, then the command has not started running on the instance, or it was - // not received by the instance. - ResponseCode *int64 `type:"integer"` - - // The first 8,000 characters written by the plugin to stderr. If the command - // has not finished running, then this string is empty. - StandardErrorContent *string `type:"string"` - - // The URL for the complete text written by the plugin to stderr. If the command - // has not finished running, then this string is empty. - StandardErrorUrl *string `type:"string"` - - // The first 24,000 characters written by the plugin to stdout. If the command - // has not finished running, if ExecutionStatus is neither Succeeded nor Failed, - // then this string is empty. - StandardOutputContent *string `type:"string"` - - // The URL for the complete text written by the plugin to stdout in Amazon S3. - // If an S3 bucket was not specified, then this string is empty. - StandardOutputUrl *string `type:"string"` - - // The status of this invocation plugin. This status can be different than StatusDetails. - Status *string `type:"string" enum:"CommandInvocationStatus"` - - // A detailed status of the command execution for an invocation. StatusDetails - // includes more information than Status because it includes states resulting - // from error and concurrency control parameters. StatusDetails can show different - // results than Status. For more information about these statuses, see Understanding - // command statuses (https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html) - // in the AWS Systems Manager User Guide. StatusDetails can be one of the following - // values: - // - // * Pending: The command has not been sent to the instance. - // - // * In Progress: The command has been sent to the instance but has not reached - // a terminal state. - // - // * Delayed: The system attempted to send the command to the target, but - // the target was not available. The instance might not be available because - // of network issues, because the instance was stopped, or for similar reasons. - // The system will try to send the command again. - // - // * Success: The command or plugin ran successfully. This is a terminal - // state. - // - // * Delivery Timed Out: The command was not delivered to the instance before - // the delivery timeout expired. Delivery timeouts do not count against the - // parent command's MaxErrors limit, but they do contribute to whether the - // parent command status is Success or Incomplete. This is a terminal state. - // - // * Execution Timed Out: The command started to run on the instance, but - // the execution was not complete before the timeout expired. Execution timeouts - // count against the MaxErrors limit of the parent command. This is a terminal - // state. - // - // * Failed: The command wasn't run successfully on the instance. For a plugin, - // this indicates that the result code was not zero. For a command invocation, - // this indicates that the result code for one or more plugins was not zero. - // Invocation failures count against the MaxErrors limit of the parent command. - // This is a terminal state. - // - // * Canceled: The command was terminated before it was completed. This is - // a terminal state. - // - // * Undeliverable: The command can't be delivered to the instance. The instance - // might not exist or might not be responding. Undeliverable invocations - // don't count against the parent command's MaxErrors limit and don't contribute - // to whether the parent command status is Success or Incomplete. This is - // a terminal state. - // - // * Terminated: The parent command exceeded its MaxErrors limit and subsequent - // command invocations were canceled by the system. This is a terminal state. - StatusDetails *string `type:"string"` -} - -// String returns the string representation -func (s GetCommandInvocationOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetCommandInvocationOutput) GoString() string { - return s.String() -} - -// SetCloudWatchOutputConfig sets the CloudWatchOutputConfig field's value. -func (s *GetCommandInvocationOutput) SetCloudWatchOutputConfig(v *CloudWatchOutputConfig) *GetCommandInvocationOutput { - s.CloudWatchOutputConfig = v - return s -} - -// SetCommandId sets the CommandId field's value. -func (s *GetCommandInvocationOutput) SetCommandId(v string) *GetCommandInvocationOutput { - s.CommandId = &v - return s -} - -// SetComment sets the Comment field's value. -func (s *GetCommandInvocationOutput) SetComment(v string) *GetCommandInvocationOutput { - s.Comment = &v - return s -} - -// SetDocumentName sets the DocumentName field's value. -func (s *GetCommandInvocationOutput) SetDocumentName(v string) *GetCommandInvocationOutput { - s.DocumentName = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *GetCommandInvocationOutput) SetDocumentVersion(v string) *GetCommandInvocationOutput { - s.DocumentVersion = &v - return s -} - -// SetExecutionElapsedTime sets the ExecutionElapsedTime field's value. -func (s *GetCommandInvocationOutput) SetExecutionElapsedTime(v string) *GetCommandInvocationOutput { - s.ExecutionElapsedTime = &v - return s -} - -// SetExecutionEndDateTime sets the ExecutionEndDateTime field's value. -func (s *GetCommandInvocationOutput) SetExecutionEndDateTime(v string) *GetCommandInvocationOutput { - s.ExecutionEndDateTime = &v - return s -} - -// SetExecutionStartDateTime sets the ExecutionStartDateTime field's value. -func (s *GetCommandInvocationOutput) SetExecutionStartDateTime(v string) *GetCommandInvocationOutput { - s.ExecutionStartDateTime = &v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *GetCommandInvocationOutput) SetInstanceId(v string) *GetCommandInvocationOutput { - s.InstanceId = &v - return s -} - -// SetPluginName sets the PluginName field's value. -func (s *GetCommandInvocationOutput) SetPluginName(v string) *GetCommandInvocationOutput { - s.PluginName = &v - return s -} - -// SetResponseCode sets the ResponseCode field's value. -func (s *GetCommandInvocationOutput) SetResponseCode(v int64) *GetCommandInvocationOutput { - s.ResponseCode = &v - return s -} - -// SetStandardErrorContent sets the StandardErrorContent field's value. -func (s *GetCommandInvocationOutput) SetStandardErrorContent(v string) *GetCommandInvocationOutput { - s.StandardErrorContent = &v - return s -} - -// SetStandardErrorUrl sets the StandardErrorUrl field's value. -func (s *GetCommandInvocationOutput) SetStandardErrorUrl(v string) *GetCommandInvocationOutput { - s.StandardErrorUrl = &v - return s -} - -// SetStandardOutputContent sets the StandardOutputContent field's value. -func (s *GetCommandInvocationOutput) SetStandardOutputContent(v string) *GetCommandInvocationOutput { - s.StandardOutputContent = &v - return s -} - -// SetStandardOutputUrl sets the StandardOutputUrl field's value. -func (s *GetCommandInvocationOutput) SetStandardOutputUrl(v string) *GetCommandInvocationOutput { - s.StandardOutputUrl = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *GetCommandInvocationOutput) SetStatus(v string) *GetCommandInvocationOutput { - s.Status = &v - return s -} - -// SetStatusDetails sets the StatusDetails field's value. -func (s *GetCommandInvocationOutput) SetStatusDetails(v string) *GetCommandInvocationOutput { - s.StatusDetails = &v - return s -} - -type GetConnectionStatusInput struct { - _ struct{} `type:"structure"` - - // The ID of the instance. - // - // Target is a required field - Target *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s GetConnectionStatusInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetConnectionStatusInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetConnectionStatusInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetConnectionStatusInput"} - if s.Target == nil { - invalidParams.Add(request.NewErrParamRequired("Target")) - } - if s.Target != nil && len(*s.Target) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Target", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetTarget sets the Target field's value. -func (s *GetConnectionStatusInput) SetTarget(v string) *GetConnectionStatusInput { - s.Target = &v - return s -} - -type GetConnectionStatusOutput struct { - _ struct{} `type:"structure"` - - // The status of the connection to the instance. For example, 'Connected' or - // 'Not Connected'. - Status *string `type:"string" enum:"ConnectionStatus"` - - // The ID of the instance to check connection status. - Target *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s GetConnectionStatusOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetConnectionStatusOutput) GoString() string { - return s.String() -} - -// SetStatus sets the Status field's value. -func (s *GetConnectionStatusOutput) SetStatus(v string) *GetConnectionStatusOutput { - s.Status = &v - return s -} - -// SetTarget sets the Target field's value. -func (s *GetConnectionStatusOutput) SetTarget(v string) *GetConnectionStatusOutput { - s.Target = &v - return s -} - -type GetDefaultPatchBaselineInput struct { - _ struct{} `type:"structure"` - - // Returns the default patch baseline for the specified operating system. - OperatingSystem *string `type:"string" enum:"OperatingSystem"` -} - -// String returns the string representation -func (s GetDefaultPatchBaselineInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetDefaultPatchBaselineInput) GoString() string { - return s.String() -} - -// SetOperatingSystem sets the OperatingSystem field's value. -func (s *GetDefaultPatchBaselineInput) SetOperatingSystem(v string) *GetDefaultPatchBaselineInput { - s.OperatingSystem = &v - return s -} - -type GetDefaultPatchBaselineOutput struct { - _ struct{} `type:"structure"` - - // The ID of the default patch baseline. - BaselineId *string `min:"20" type:"string"` - - // The operating system for the returned patch baseline. - OperatingSystem *string `type:"string" enum:"OperatingSystem"` -} - -// String returns the string representation -func (s GetDefaultPatchBaselineOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetDefaultPatchBaselineOutput) GoString() string { - return s.String() -} - -// SetBaselineId sets the BaselineId field's value. -func (s *GetDefaultPatchBaselineOutput) SetBaselineId(v string) *GetDefaultPatchBaselineOutput { - s.BaselineId = &v - return s -} - -// SetOperatingSystem sets the OperatingSystem field's value. -func (s *GetDefaultPatchBaselineOutput) SetOperatingSystem(v string) *GetDefaultPatchBaselineOutput { - s.OperatingSystem = &v - return s -} - -type GetDeployablePatchSnapshotForInstanceInput struct { - _ struct{} `type:"structure"` - - // Defines the basic information about a patch baseline override. - BaselineOverride *BaselineOverride `type:"structure"` - - // The ID of the instance for which the appropriate patch snapshot should be - // retrieved. - // - // InstanceId is a required field - InstanceId *string `type:"string" required:"true"` - - // The user-defined snapshot ID. - // - // SnapshotId is a required field - SnapshotId *string `min:"36" type:"string" required:"true"` -} - -// String returns the string representation -func (s GetDeployablePatchSnapshotForInstanceInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetDeployablePatchSnapshotForInstanceInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetDeployablePatchSnapshotForInstanceInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetDeployablePatchSnapshotForInstanceInput"} - if s.InstanceId == nil { - invalidParams.Add(request.NewErrParamRequired("InstanceId")) - } - if s.SnapshotId == nil { - invalidParams.Add(request.NewErrParamRequired("SnapshotId")) - } - if s.SnapshotId != nil && len(*s.SnapshotId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("SnapshotId", 36)) - } - if s.BaselineOverride != nil { - if err := s.BaselineOverride.Validate(); err != nil { - invalidParams.AddNested("BaselineOverride", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetBaselineOverride sets the BaselineOverride field's value. -func (s *GetDeployablePatchSnapshotForInstanceInput) SetBaselineOverride(v *BaselineOverride) *GetDeployablePatchSnapshotForInstanceInput { - s.BaselineOverride = v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *GetDeployablePatchSnapshotForInstanceInput) SetInstanceId(v string) *GetDeployablePatchSnapshotForInstanceInput { - s.InstanceId = &v - return s -} - -// SetSnapshotId sets the SnapshotId field's value. -func (s *GetDeployablePatchSnapshotForInstanceInput) SetSnapshotId(v string) *GetDeployablePatchSnapshotForInstanceInput { - s.SnapshotId = &v - return s -} - -type GetDeployablePatchSnapshotForInstanceOutput struct { - _ struct{} `type:"structure"` - - // The ID of the instance. - InstanceId *string `type:"string"` - - // Returns the specific operating system (for example Windows Server 2012 or - // Amazon Linux 2015.09) on the instance for the specified patch snapshot. - Product *string `type:"string"` - - // A pre-signed Amazon S3 URL that can be used to download the patch snapshot. - SnapshotDownloadUrl *string `type:"string"` - - // The user-defined snapshot ID. - SnapshotId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s GetDeployablePatchSnapshotForInstanceOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetDeployablePatchSnapshotForInstanceOutput) GoString() string { - return s.String() -} - -// SetInstanceId sets the InstanceId field's value. -func (s *GetDeployablePatchSnapshotForInstanceOutput) SetInstanceId(v string) *GetDeployablePatchSnapshotForInstanceOutput { - s.InstanceId = &v - return s -} - -// SetProduct sets the Product field's value. -func (s *GetDeployablePatchSnapshotForInstanceOutput) SetProduct(v string) *GetDeployablePatchSnapshotForInstanceOutput { - s.Product = &v - return s -} - -// SetSnapshotDownloadUrl sets the SnapshotDownloadUrl field's value. -func (s *GetDeployablePatchSnapshotForInstanceOutput) SetSnapshotDownloadUrl(v string) *GetDeployablePatchSnapshotForInstanceOutput { - s.SnapshotDownloadUrl = &v - return s -} - -// SetSnapshotId sets the SnapshotId field's value. -func (s *GetDeployablePatchSnapshotForInstanceOutput) SetSnapshotId(v string) *GetDeployablePatchSnapshotForInstanceOutput { - s.SnapshotId = &v - return s -} - -type GetDocumentInput struct { - _ struct{} `type:"structure"` - - // Returns the document in the specified format. The document format can be - // either JSON or YAML. JSON is the default format. - DocumentFormat *string `type:"string" enum:"DocumentFormat"` - - // The document version for which you want information. - DocumentVersion *string `type:"string"` - - // The name of the Systems Manager document. - // - // Name is a required field - Name *string `type:"string" required:"true"` - - // An optional field specifying the version of the artifact associated with - // the document. For example, "Release 12, Update 6". This value is unique across - // all versions of a document and can't be changed. - VersionName *string `type:"string"` -} - -// String returns the string representation -func (s GetDocumentInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetDocumentInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetDocumentInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetDocumentInput"} - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDocumentFormat sets the DocumentFormat field's value. -func (s *GetDocumentInput) SetDocumentFormat(v string) *GetDocumentInput { - s.DocumentFormat = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *GetDocumentInput) SetDocumentVersion(v string) *GetDocumentInput { - s.DocumentVersion = &v - return s -} - -// SetName sets the Name field's value. -func (s *GetDocumentInput) SetName(v string) *GetDocumentInput { - s.Name = &v - return s -} - -// SetVersionName sets the VersionName field's value. -func (s *GetDocumentInput) SetVersionName(v string) *GetDocumentInput { - s.VersionName = &v - return s -} - -type GetDocumentOutput struct { - _ struct{} `type:"structure"` - - // A description of the document attachments, including names, locations, sizes, - // and so on. - AttachmentsContent []*AttachmentContent `type:"list"` - - // The contents of the Systems Manager document. - Content *string `min:"1" type:"string"` - - // The document format, either JSON or YAML. - DocumentFormat *string `type:"string" enum:"DocumentFormat"` - - // The document type. - DocumentType *string `type:"string" enum:"DocumentType"` - - // The document version. - DocumentVersion *string `type:"string"` - - // The name of the Systems Manager document. - Name *string `type:"string"` - - // A list of SSM documents required by a document. For example, an ApplicationConfiguration - // document requires an ApplicationConfigurationSchema document. - Requires []*DocumentRequires `min:"1" type:"list"` - - // The current review status of a new custom Systems Manager document (SSM document) - // created by a member of your organization, or of the latest version of an - // existing SSM document. - // - // Only one version of an SSM document can be in the APPROVED state at a time. - // When a new version is approved, the status of the previous version changes - // to REJECTED. - // - // Only one version of an SSM document can be in review, or PENDING, at a time. - ReviewStatus *string `type:"string" enum:"ReviewStatus"` - - // The status of the Systems Manager document, such as Creating, Active, Updating, - // Failed, and Deleting. - Status *string `type:"string" enum:"DocumentStatus"` - - // A message returned by AWS Systems Manager that explains the Status value. - // For example, a Failed status might be explained by the StatusInformation - // message, "The specified S3 bucket does not exist. Verify that the URL of - // the S3 bucket is correct." - StatusInformation *string `type:"string"` - - // The version of the artifact associated with the document. For example, "Release - // 12, Update 6". This value is unique across all versions of a document, and - // cannot be changed. - VersionName *string `type:"string"` -} - -// String returns the string representation -func (s GetDocumentOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetDocumentOutput) GoString() string { - return s.String() -} - -// SetAttachmentsContent sets the AttachmentsContent field's value. -func (s *GetDocumentOutput) SetAttachmentsContent(v []*AttachmentContent) *GetDocumentOutput { - s.AttachmentsContent = v - return s -} - -// SetContent sets the Content field's value. -func (s *GetDocumentOutput) SetContent(v string) *GetDocumentOutput { - s.Content = &v - return s -} - -// SetDocumentFormat sets the DocumentFormat field's value. -func (s *GetDocumentOutput) SetDocumentFormat(v string) *GetDocumentOutput { - s.DocumentFormat = &v - return s -} - -// SetDocumentType sets the DocumentType field's value. -func (s *GetDocumentOutput) SetDocumentType(v string) *GetDocumentOutput { - s.DocumentType = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *GetDocumentOutput) SetDocumentVersion(v string) *GetDocumentOutput { - s.DocumentVersion = &v - return s -} - -// SetName sets the Name field's value. -func (s *GetDocumentOutput) SetName(v string) *GetDocumentOutput { - s.Name = &v - return s -} - -// SetRequires sets the Requires field's value. -func (s *GetDocumentOutput) SetRequires(v []*DocumentRequires) *GetDocumentOutput { - s.Requires = v - return s -} - -// SetReviewStatus sets the ReviewStatus field's value. -func (s *GetDocumentOutput) SetReviewStatus(v string) *GetDocumentOutput { - s.ReviewStatus = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *GetDocumentOutput) SetStatus(v string) *GetDocumentOutput { - s.Status = &v - return s -} - -// SetStatusInformation sets the StatusInformation field's value. -func (s *GetDocumentOutput) SetStatusInformation(v string) *GetDocumentOutput { - s.StatusInformation = &v - return s -} - -// SetVersionName sets the VersionName field's value. -func (s *GetDocumentOutput) SetVersionName(v string) *GetDocumentOutput { - s.VersionName = &v - return s -} - -type GetInventoryInput struct { - _ struct{} `type:"structure"` - - // Returns counts of inventory types based on one or more expressions. For example, - // if you aggregate by using an expression that uses the AWS:InstanceInformation.PlatformType - // type, you can see a count of how many Windows and Linux instances exist in - // your inventoried fleet. - Aggregators []*InventoryAggregator `min:"1" type:"list"` - - // One or more filters. Use a filter to return a more specific list of results. - Filters []*InventoryFilter `min:"1" type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // The list of inventory item types to return. - ResultAttributes []*ResultAttribute `min:"1" type:"list"` -} - -// String returns the string representation -func (s GetInventoryInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetInventoryInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetInventoryInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetInventoryInput"} - if s.Aggregators != nil && len(s.Aggregators) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Aggregators", 1)) - } - if s.Filters != nil && len(s.Filters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Filters", 1)) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.ResultAttributes != nil && len(s.ResultAttributes) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ResultAttributes", 1)) - } - if s.Aggregators != nil { - for i, v := range s.Aggregators { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Aggregators", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - if s.ResultAttributes != nil { - for i, v := range s.ResultAttributes { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResultAttributes", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAggregators sets the Aggregators field's value. -func (s *GetInventoryInput) SetAggregators(v []*InventoryAggregator) *GetInventoryInput { - s.Aggregators = v - return s -} - -// SetFilters sets the Filters field's value. -func (s *GetInventoryInput) SetFilters(v []*InventoryFilter) *GetInventoryInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *GetInventoryInput) SetMaxResults(v int64) *GetInventoryInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *GetInventoryInput) SetNextToken(v string) *GetInventoryInput { - s.NextToken = &v - return s -} - -// SetResultAttributes sets the ResultAttributes field's value. -func (s *GetInventoryInput) SetResultAttributes(v []*ResultAttribute) *GetInventoryInput { - s.ResultAttributes = v - return s -} - -type GetInventoryOutput struct { - _ struct{} `type:"structure"` - - // Collection of inventory entities such as a collection of instance inventory. - Entities []*InventoryResultEntity `type:"list"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s GetInventoryOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetInventoryOutput) GoString() string { - return s.String() -} - -// SetEntities sets the Entities field's value. -func (s *GetInventoryOutput) SetEntities(v []*InventoryResultEntity) *GetInventoryOutput { - s.Entities = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *GetInventoryOutput) SetNextToken(v string) *GetInventoryOutput { - s.NextToken = &v - return s -} - -type GetInventorySchemaInput struct { - _ struct{} `type:"structure"` - - // Returns inventory schemas that support aggregation. For example, this call - // returns the AWS:InstanceInformation type, because it supports aggregation - // based on the PlatformName, PlatformType, and PlatformVersion attributes. - Aggregator *bool `type:"boolean"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"50" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // Returns the sub-type schema for a specified inventory type. - SubType *bool `type:"boolean"` - - // The type of inventory item to return. - TypeName *string `type:"string"` -} - -// String returns the string representation -func (s GetInventorySchemaInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetInventorySchemaInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetInventorySchemaInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetInventorySchemaInput"} - if s.MaxResults != nil && *s.MaxResults < 50 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 50)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAggregator sets the Aggregator field's value. -func (s *GetInventorySchemaInput) SetAggregator(v bool) *GetInventorySchemaInput { - s.Aggregator = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *GetInventorySchemaInput) SetMaxResults(v int64) *GetInventorySchemaInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *GetInventorySchemaInput) SetNextToken(v string) *GetInventorySchemaInput { - s.NextToken = &v - return s -} - -// SetSubType sets the SubType field's value. -func (s *GetInventorySchemaInput) SetSubType(v bool) *GetInventorySchemaInput { - s.SubType = &v - return s -} - -// SetTypeName sets the TypeName field's value. -func (s *GetInventorySchemaInput) SetTypeName(v string) *GetInventorySchemaInput { - s.TypeName = &v - return s -} - -type GetInventorySchemaOutput struct { - _ struct{} `type:"structure"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` - - // Inventory schemas returned by the request. - Schemas []*InventoryItemSchema `type:"list"` -} - -// String returns the string representation -func (s GetInventorySchemaOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetInventorySchemaOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *GetInventorySchemaOutput) SetNextToken(v string) *GetInventorySchemaOutput { - s.NextToken = &v - return s -} - -// SetSchemas sets the Schemas field's value. -func (s *GetInventorySchemaOutput) SetSchemas(v []*InventoryItemSchema) *GetInventorySchemaOutput { - s.Schemas = v - return s -} - -type GetMaintenanceWindowExecutionInput struct { - _ struct{} `type:"structure"` - - // The ID of the maintenance window execution that includes the task. - // - // WindowExecutionId is a required field - WindowExecutionId *string `min:"36" type:"string" required:"true"` -} - -// String returns the string representation -func (s GetMaintenanceWindowExecutionInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetMaintenanceWindowExecutionInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetMaintenanceWindowExecutionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetMaintenanceWindowExecutionInput"} - if s.WindowExecutionId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowExecutionId")) - } - if s.WindowExecutionId != nil && len(*s.WindowExecutionId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("WindowExecutionId", 36)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetWindowExecutionId sets the WindowExecutionId field's value. -func (s *GetMaintenanceWindowExecutionInput) SetWindowExecutionId(v string) *GetMaintenanceWindowExecutionInput { - s.WindowExecutionId = &v - return s -} - -type GetMaintenanceWindowExecutionOutput struct { - _ struct{} `type:"structure"` - - // The time the maintenance window finished running. - EndTime *time.Time `type:"timestamp"` - - // The time the maintenance window started running. - StartTime *time.Time `type:"timestamp"` - - // The status of the maintenance window execution. - Status *string `type:"string" enum:"MaintenanceWindowExecutionStatus"` - - // The details explaining the Status. Only available for certain status values. - StatusDetails *string `type:"string"` - - // The ID of the task executions from the maintenance window execution. - TaskIds []*string `type:"list"` - - // The ID of the maintenance window execution. - WindowExecutionId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s GetMaintenanceWindowExecutionOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetMaintenanceWindowExecutionOutput) GoString() string { - return s.String() -} - -// SetEndTime sets the EndTime field's value. -func (s *GetMaintenanceWindowExecutionOutput) SetEndTime(v time.Time) *GetMaintenanceWindowExecutionOutput { - s.EndTime = &v - return s -} - -// SetStartTime sets the StartTime field's value. -func (s *GetMaintenanceWindowExecutionOutput) SetStartTime(v time.Time) *GetMaintenanceWindowExecutionOutput { - s.StartTime = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *GetMaintenanceWindowExecutionOutput) SetStatus(v string) *GetMaintenanceWindowExecutionOutput { - s.Status = &v - return s -} - -// SetStatusDetails sets the StatusDetails field's value. -func (s *GetMaintenanceWindowExecutionOutput) SetStatusDetails(v string) *GetMaintenanceWindowExecutionOutput { - s.StatusDetails = &v - return s -} - -// SetTaskIds sets the TaskIds field's value. -func (s *GetMaintenanceWindowExecutionOutput) SetTaskIds(v []*string) *GetMaintenanceWindowExecutionOutput { - s.TaskIds = v - return s -} - -// SetWindowExecutionId sets the WindowExecutionId field's value. -func (s *GetMaintenanceWindowExecutionOutput) SetWindowExecutionId(v string) *GetMaintenanceWindowExecutionOutput { - s.WindowExecutionId = &v - return s -} - -type GetMaintenanceWindowExecutionTaskInput struct { - _ struct{} `type:"structure"` - - // The ID of the specific task execution in the maintenance window task that - // should be retrieved. - // - // TaskId is a required field - TaskId *string `min:"36" type:"string" required:"true"` - - // The ID of the maintenance window execution that includes the task. - // - // WindowExecutionId is a required field - WindowExecutionId *string `min:"36" type:"string" required:"true"` -} - -// String returns the string representation -func (s GetMaintenanceWindowExecutionTaskInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetMaintenanceWindowExecutionTaskInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetMaintenanceWindowExecutionTaskInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetMaintenanceWindowExecutionTaskInput"} - if s.TaskId == nil { - invalidParams.Add(request.NewErrParamRequired("TaskId")) - } - if s.TaskId != nil && len(*s.TaskId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("TaskId", 36)) - } - if s.WindowExecutionId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowExecutionId")) - } - if s.WindowExecutionId != nil && len(*s.WindowExecutionId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("WindowExecutionId", 36)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetTaskId sets the TaskId field's value. -func (s *GetMaintenanceWindowExecutionTaskInput) SetTaskId(v string) *GetMaintenanceWindowExecutionTaskInput { - s.TaskId = &v - return s -} - -// SetWindowExecutionId sets the WindowExecutionId field's value. -func (s *GetMaintenanceWindowExecutionTaskInput) SetWindowExecutionId(v string) *GetMaintenanceWindowExecutionTaskInput { - s.WindowExecutionId = &v - return s -} - -type GetMaintenanceWindowExecutionTaskInvocationInput struct { - _ struct{} `type:"structure"` - - // The invocation ID to retrieve. - // - // InvocationId is a required field - InvocationId *string `min:"36" type:"string" required:"true"` - - // The ID of the specific task in the maintenance window task that should be - // retrieved. - // - // TaskId is a required field - TaskId *string `min:"36" type:"string" required:"true"` - - // The ID of the maintenance window execution for which the task is a part. - // - // WindowExecutionId is a required field - WindowExecutionId *string `min:"36" type:"string" required:"true"` -} - -// String returns the string representation -func (s GetMaintenanceWindowExecutionTaskInvocationInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetMaintenanceWindowExecutionTaskInvocationInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetMaintenanceWindowExecutionTaskInvocationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetMaintenanceWindowExecutionTaskInvocationInput"} - if s.InvocationId == nil { - invalidParams.Add(request.NewErrParamRequired("InvocationId")) - } - if s.InvocationId != nil && len(*s.InvocationId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("InvocationId", 36)) - } - if s.TaskId == nil { - invalidParams.Add(request.NewErrParamRequired("TaskId")) - } - if s.TaskId != nil && len(*s.TaskId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("TaskId", 36)) - } - if s.WindowExecutionId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowExecutionId")) - } - if s.WindowExecutionId != nil && len(*s.WindowExecutionId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("WindowExecutionId", 36)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetInvocationId sets the InvocationId field's value. -func (s *GetMaintenanceWindowExecutionTaskInvocationInput) SetInvocationId(v string) *GetMaintenanceWindowExecutionTaskInvocationInput { - s.InvocationId = &v - return s -} - -// SetTaskId sets the TaskId field's value. -func (s *GetMaintenanceWindowExecutionTaskInvocationInput) SetTaskId(v string) *GetMaintenanceWindowExecutionTaskInvocationInput { - s.TaskId = &v - return s -} - -// SetWindowExecutionId sets the WindowExecutionId field's value. -func (s *GetMaintenanceWindowExecutionTaskInvocationInput) SetWindowExecutionId(v string) *GetMaintenanceWindowExecutionTaskInvocationInput { - s.WindowExecutionId = &v - return s -} - -type GetMaintenanceWindowExecutionTaskInvocationOutput struct { - _ struct{} `type:"structure"` - - // The time that the task finished running on the target. - EndTime *time.Time `type:"timestamp"` - - // The execution ID. - ExecutionId *string `type:"string"` - - // The invocation ID. - InvocationId *string `min:"36" type:"string"` - - // User-provided value to be included in any CloudWatch events raised while - // running tasks for these targets in this maintenance window. - OwnerInformation *string `min:"1" type:"string" sensitive:"true"` - - // The parameters used at the time that the task ran. - Parameters *string `type:"string" sensitive:"true"` - - // The time that the task started running on the target. - StartTime *time.Time `type:"timestamp"` - - // The task status for an invocation. - Status *string `type:"string" enum:"MaintenanceWindowExecutionStatus"` - - // The details explaining the status. Details are only available for certain - // status values. - StatusDetails *string `type:"string"` - - // The task execution ID. - TaskExecutionId *string `min:"36" type:"string"` - - // Retrieves the task type for a maintenance window. Task types include the - // following: LAMBDA, STEP_FUNCTIONS, AUTOMATION, RUN_COMMAND. - TaskType *string `type:"string" enum:"MaintenanceWindowTaskType"` - - // The maintenance window execution ID. - WindowExecutionId *string `min:"36" type:"string"` - - // The maintenance window target ID. - WindowTargetId *string `type:"string"` -} - -// String returns the string representation -func (s GetMaintenanceWindowExecutionTaskInvocationOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetMaintenanceWindowExecutionTaskInvocationOutput) GoString() string { - return s.String() -} - -// SetEndTime sets the EndTime field's value. -func (s *GetMaintenanceWindowExecutionTaskInvocationOutput) SetEndTime(v time.Time) *GetMaintenanceWindowExecutionTaskInvocationOutput { - s.EndTime = &v - return s -} - -// SetExecutionId sets the ExecutionId field's value. -func (s *GetMaintenanceWindowExecutionTaskInvocationOutput) SetExecutionId(v string) *GetMaintenanceWindowExecutionTaskInvocationOutput { - s.ExecutionId = &v - return s -} - -// SetInvocationId sets the InvocationId field's value. -func (s *GetMaintenanceWindowExecutionTaskInvocationOutput) SetInvocationId(v string) *GetMaintenanceWindowExecutionTaskInvocationOutput { - s.InvocationId = &v - return s -} - -// SetOwnerInformation sets the OwnerInformation field's value. -func (s *GetMaintenanceWindowExecutionTaskInvocationOutput) SetOwnerInformation(v string) *GetMaintenanceWindowExecutionTaskInvocationOutput { - s.OwnerInformation = &v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *GetMaintenanceWindowExecutionTaskInvocationOutput) SetParameters(v string) *GetMaintenanceWindowExecutionTaskInvocationOutput { - s.Parameters = &v - return s -} - -// SetStartTime sets the StartTime field's value. -func (s *GetMaintenanceWindowExecutionTaskInvocationOutput) SetStartTime(v time.Time) *GetMaintenanceWindowExecutionTaskInvocationOutput { - s.StartTime = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *GetMaintenanceWindowExecutionTaskInvocationOutput) SetStatus(v string) *GetMaintenanceWindowExecutionTaskInvocationOutput { - s.Status = &v - return s -} - -// SetStatusDetails sets the StatusDetails field's value. -func (s *GetMaintenanceWindowExecutionTaskInvocationOutput) SetStatusDetails(v string) *GetMaintenanceWindowExecutionTaskInvocationOutput { - s.StatusDetails = &v - return s -} - -// SetTaskExecutionId sets the TaskExecutionId field's value. -func (s *GetMaintenanceWindowExecutionTaskInvocationOutput) SetTaskExecutionId(v string) *GetMaintenanceWindowExecutionTaskInvocationOutput { - s.TaskExecutionId = &v - return s -} - -// SetTaskType sets the TaskType field's value. -func (s *GetMaintenanceWindowExecutionTaskInvocationOutput) SetTaskType(v string) *GetMaintenanceWindowExecutionTaskInvocationOutput { - s.TaskType = &v - return s -} - -// SetWindowExecutionId sets the WindowExecutionId field's value. -func (s *GetMaintenanceWindowExecutionTaskInvocationOutput) SetWindowExecutionId(v string) *GetMaintenanceWindowExecutionTaskInvocationOutput { - s.WindowExecutionId = &v - return s -} - -// SetWindowTargetId sets the WindowTargetId field's value. -func (s *GetMaintenanceWindowExecutionTaskInvocationOutput) SetWindowTargetId(v string) *GetMaintenanceWindowExecutionTaskInvocationOutput { - s.WindowTargetId = &v - return s -} - -type GetMaintenanceWindowExecutionTaskOutput struct { - _ struct{} `type:"structure"` - - // The time the task execution completed. - EndTime *time.Time `type:"timestamp"` - - // The defined maximum number of task executions that could be run in parallel. - MaxConcurrency *string `min:"1" type:"string"` - - // The defined maximum number of task execution errors allowed before scheduling - // of the task execution would have been stopped. - MaxErrors *string `min:"1" type:"string"` - - // The priority of the task. - Priority *int64 `type:"integer"` - - // The role that was assumed when running the task. - ServiceRole *string `type:"string"` - - // The time the task execution started. - StartTime *time.Time `type:"timestamp"` - - // The status of the task. - Status *string `type:"string" enum:"MaintenanceWindowExecutionStatus"` - - // The details explaining the Status. Only available for certain status values. - StatusDetails *string `type:"string"` - - // The ARN of the task that ran. - TaskArn *string `min:"1" type:"string"` - - // The ID of the specific task execution in the maintenance window task that - // was retrieved. - TaskExecutionId *string `min:"36" type:"string"` - - // The parameters passed to the task when it was run. - // - // TaskParameters has been deprecated. To specify parameters to pass to a task - // when it runs, instead use the Parameters option in the TaskInvocationParameters - // structure. For information about how Systems Manager handles these options - // for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. - // - // The map has the following format: - // - // Key: string, between 1 and 255 characters - // - // Value: an array of strings, each string is between 1 and 255 characters - TaskParameters []map[string]*MaintenanceWindowTaskParameterValueExpression `type:"list" sensitive:"true"` - - // The type of task that was run. - Type *string `type:"string" enum:"MaintenanceWindowTaskType"` - - // The ID of the maintenance window execution that includes the task. - WindowExecutionId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s GetMaintenanceWindowExecutionTaskOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetMaintenanceWindowExecutionTaskOutput) GoString() string { - return s.String() -} - -// SetEndTime sets the EndTime field's value. -func (s *GetMaintenanceWindowExecutionTaskOutput) SetEndTime(v time.Time) *GetMaintenanceWindowExecutionTaskOutput { - s.EndTime = &v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *GetMaintenanceWindowExecutionTaskOutput) SetMaxConcurrency(v string) *GetMaintenanceWindowExecutionTaskOutput { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *GetMaintenanceWindowExecutionTaskOutput) SetMaxErrors(v string) *GetMaintenanceWindowExecutionTaskOutput { - s.MaxErrors = &v - return s -} - -// SetPriority sets the Priority field's value. -func (s *GetMaintenanceWindowExecutionTaskOutput) SetPriority(v int64) *GetMaintenanceWindowExecutionTaskOutput { - s.Priority = &v - return s -} - -// SetServiceRole sets the ServiceRole field's value. -func (s *GetMaintenanceWindowExecutionTaskOutput) SetServiceRole(v string) *GetMaintenanceWindowExecutionTaskOutput { - s.ServiceRole = &v - return s -} - -// SetStartTime sets the StartTime field's value. -func (s *GetMaintenanceWindowExecutionTaskOutput) SetStartTime(v time.Time) *GetMaintenanceWindowExecutionTaskOutput { - s.StartTime = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *GetMaintenanceWindowExecutionTaskOutput) SetStatus(v string) *GetMaintenanceWindowExecutionTaskOutput { - s.Status = &v - return s -} - -// SetStatusDetails sets the StatusDetails field's value. -func (s *GetMaintenanceWindowExecutionTaskOutput) SetStatusDetails(v string) *GetMaintenanceWindowExecutionTaskOutput { - s.StatusDetails = &v - return s -} - -// SetTaskArn sets the TaskArn field's value. -func (s *GetMaintenanceWindowExecutionTaskOutput) SetTaskArn(v string) *GetMaintenanceWindowExecutionTaskOutput { - s.TaskArn = &v - return s -} - -// SetTaskExecutionId sets the TaskExecutionId field's value. -func (s *GetMaintenanceWindowExecutionTaskOutput) SetTaskExecutionId(v string) *GetMaintenanceWindowExecutionTaskOutput { - s.TaskExecutionId = &v - return s -} - -// SetTaskParameters sets the TaskParameters field's value. -func (s *GetMaintenanceWindowExecutionTaskOutput) SetTaskParameters(v []map[string]*MaintenanceWindowTaskParameterValueExpression) *GetMaintenanceWindowExecutionTaskOutput { - s.TaskParameters = v - return s -} - -// SetType sets the Type field's value. -func (s *GetMaintenanceWindowExecutionTaskOutput) SetType(v string) *GetMaintenanceWindowExecutionTaskOutput { - s.Type = &v - return s -} - -// SetWindowExecutionId sets the WindowExecutionId field's value. -func (s *GetMaintenanceWindowExecutionTaskOutput) SetWindowExecutionId(v string) *GetMaintenanceWindowExecutionTaskOutput { - s.WindowExecutionId = &v - return s -} - -type GetMaintenanceWindowInput struct { - _ struct{} `type:"structure"` - - // The ID of the maintenance window for which you want to retrieve information. - // - // WindowId is a required field - WindowId *string `min:"20" type:"string" required:"true"` -} - -// String returns the string representation -func (s GetMaintenanceWindowInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetMaintenanceWindowInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetMaintenanceWindowInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetMaintenanceWindowInput"} - if s.WindowId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowId")) - } - if s.WindowId != nil && len(*s.WindowId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("WindowId", 20)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetWindowId sets the WindowId field's value. -func (s *GetMaintenanceWindowInput) SetWindowId(v string) *GetMaintenanceWindowInput { - s.WindowId = &v - return s -} - -type GetMaintenanceWindowOutput struct { - _ struct{} `type:"structure"` - - // Whether targets must be registered with the maintenance window before tasks - // can be defined for those targets. - AllowUnassociatedTargets *bool `type:"boolean"` - - // The date the maintenance window was created. - CreatedDate *time.Time `type:"timestamp"` - - // The number of hours before the end of the maintenance window that Systems - // Manager stops scheduling new tasks for execution. - Cutoff *int64 `type:"integer"` - - // The description of the maintenance window. - Description *string `min:"1" type:"string" sensitive:"true"` - - // The duration of the maintenance window in hours. - Duration *int64 `min:"1" type:"integer"` - - // Indicates whether the maintenance window is enabled. - Enabled *bool `type:"boolean"` - - // The date and time, in ISO-8601 Extended format, for when the maintenance - // window is scheduled to become inactive. The maintenance window will not run - // after this specified time. - EndDate *string `type:"string"` - - // The date the maintenance window was last modified. - ModifiedDate *time.Time `type:"timestamp"` - - // The name of the maintenance window. - Name *string `min:"3" type:"string"` - - // The next time the maintenance window will actually run, taking into account - // any specified times for the maintenance window to become active or inactive. - NextExecutionTime *string `type:"string"` - - // The schedule of the maintenance window in the form of a cron or rate expression. - Schedule *string `min:"1" type:"string"` - - // The number of days to wait to run a maintenance window after the scheduled - // CRON expression date and time. - ScheduleOffset *int64 `min:"1" type:"integer"` - - // The time zone that the scheduled maintenance window executions are based - // on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", - // "UTC", or "Asia/Seoul". For more information, see the Time Zone Database - // (https://www.iana.org/time-zones) on the IANA website. - ScheduleTimezone *string `type:"string"` - - // The date and time, in ISO-8601 Extended format, for when the maintenance - // window is scheduled to become active. The maintenance window will not run - // before this specified time. - StartDate *string `type:"string"` - - // The ID of the created maintenance window. - WindowId *string `min:"20" type:"string"` -} - -// String returns the string representation -func (s GetMaintenanceWindowOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetMaintenanceWindowOutput) GoString() string { - return s.String() -} - -// SetAllowUnassociatedTargets sets the AllowUnassociatedTargets field's value. -func (s *GetMaintenanceWindowOutput) SetAllowUnassociatedTargets(v bool) *GetMaintenanceWindowOutput { - s.AllowUnassociatedTargets = &v - return s -} - -// SetCreatedDate sets the CreatedDate field's value. -func (s *GetMaintenanceWindowOutput) SetCreatedDate(v time.Time) *GetMaintenanceWindowOutput { - s.CreatedDate = &v - return s -} - -// SetCutoff sets the Cutoff field's value. -func (s *GetMaintenanceWindowOutput) SetCutoff(v int64) *GetMaintenanceWindowOutput { - s.Cutoff = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *GetMaintenanceWindowOutput) SetDescription(v string) *GetMaintenanceWindowOutput { - s.Description = &v - return s -} - -// SetDuration sets the Duration field's value. -func (s *GetMaintenanceWindowOutput) SetDuration(v int64) *GetMaintenanceWindowOutput { - s.Duration = &v - return s -} - -// SetEnabled sets the Enabled field's value. -func (s *GetMaintenanceWindowOutput) SetEnabled(v bool) *GetMaintenanceWindowOutput { - s.Enabled = &v - return s -} - -// SetEndDate sets the EndDate field's value. -func (s *GetMaintenanceWindowOutput) SetEndDate(v string) *GetMaintenanceWindowOutput { - s.EndDate = &v - return s -} - -// SetModifiedDate sets the ModifiedDate field's value. -func (s *GetMaintenanceWindowOutput) SetModifiedDate(v time.Time) *GetMaintenanceWindowOutput { - s.ModifiedDate = &v - return s -} - -// SetName sets the Name field's value. -func (s *GetMaintenanceWindowOutput) SetName(v string) *GetMaintenanceWindowOutput { - s.Name = &v - return s -} - -// SetNextExecutionTime sets the NextExecutionTime field's value. -func (s *GetMaintenanceWindowOutput) SetNextExecutionTime(v string) *GetMaintenanceWindowOutput { - s.NextExecutionTime = &v - return s -} - -// SetSchedule sets the Schedule field's value. -func (s *GetMaintenanceWindowOutput) SetSchedule(v string) *GetMaintenanceWindowOutput { - s.Schedule = &v - return s -} - -// SetScheduleOffset sets the ScheduleOffset field's value. -func (s *GetMaintenanceWindowOutput) SetScheduleOffset(v int64) *GetMaintenanceWindowOutput { - s.ScheduleOffset = &v - return s -} - -// SetScheduleTimezone sets the ScheduleTimezone field's value. -func (s *GetMaintenanceWindowOutput) SetScheduleTimezone(v string) *GetMaintenanceWindowOutput { - s.ScheduleTimezone = &v - return s -} - -// SetStartDate sets the StartDate field's value. -func (s *GetMaintenanceWindowOutput) SetStartDate(v string) *GetMaintenanceWindowOutput { - s.StartDate = &v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *GetMaintenanceWindowOutput) SetWindowId(v string) *GetMaintenanceWindowOutput { - s.WindowId = &v - return s -} - -type GetMaintenanceWindowTaskInput struct { - _ struct{} `type:"structure"` - - // The maintenance window ID that includes the task to retrieve. - // - // WindowId is a required field - WindowId *string `min:"20" type:"string" required:"true"` - - // The maintenance window task ID to retrieve. - // - // WindowTaskId is a required field - WindowTaskId *string `min:"36" type:"string" required:"true"` -} - -// String returns the string representation -func (s GetMaintenanceWindowTaskInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetMaintenanceWindowTaskInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetMaintenanceWindowTaskInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetMaintenanceWindowTaskInput"} - if s.WindowId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowId")) - } - if s.WindowId != nil && len(*s.WindowId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("WindowId", 20)) - } - if s.WindowTaskId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowTaskId")) - } - if s.WindowTaskId != nil && len(*s.WindowTaskId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("WindowTaskId", 36)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetWindowId sets the WindowId field's value. -func (s *GetMaintenanceWindowTaskInput) SetWindowId(v string) *GetMaintenanceWindowTaskInput { - s.WindowId = &v - return s -} - -// SetWindowTaskId sets the WindowTaskId field's value. -func (s *GetMaintenanceWindowTaskInput) SetWindowTaskId(v string) *GetMaintenanceWindowTaskInput { - s.WindowTaskId = &v - return s -} - -type GetMaintenanceWindowTaskOutput struct { - _ struct{} `type:"structure"` - - // The retrieved task description. - Description *string `min:"1" type:"string" sensitive:"true"` - - // The location in Amazon S3 where the task results are logged. - // - // LoggingInfo has been deprecated. To specify an S3 bucket to contain logs, - // instead use the OutputS3BucketName and OutputS3KeyPrefix options in the TaskInvocationParameters - // structure. For information about how Systems Manager handles these options - // for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. - LoggingInfo *LoggingInfo `type:"structure"` - - // The maximum number of targets allowed to run this task in parallel. - // - // For maintenance window tasks without a target specified, you cannot supply - // a value for this option. Instead, the system inserts a placeholder value - // of 1, which may be reported in the response to this command. This value does - // not affect the running of your task and can be ignored. - MaxConcurrency *string `min:"1" type:"string"` - - // The maximum number of errors allowed before the task stops being scheduled. - // - // For maintenance window tasks without a target specified, you cannot supply - // a value for this option. Instead, the system inserts a placeholder value - // of 1, which may be reported in the response to this command. This value does - // not affect the running of your task and can be ignored. - MaxErrors *string `min:"1" type:"string"` - - // The retrieved task name. - Name *string `min:"3" type:"string"` - - // The priority of the task when it runs. The lower the number, the higher the - // priority. Tasks that have the same priority are scheduled in parallel. - Priority *int64 `type:"integer"` - - // The ARN of the IAM service role to use to publish Amazon Simple Notification - // Service (Amazon SNS) notifications for maintenance window Run Command tasks. - ServiceRoleArn *string `type:"string"` - - // The targets where the task should run. - Targets []*Target `type:"list"` - - // The resource that the task used during execution. For RUN_COMMAND and AUTOMATION - // task types, the TaskArn is the Systems Manager Document name/ARN. For LAMBDA - // tasks, the value is the function name/ARN. For STEP_FUNCTIONS tasks, the - // value is the state machine ARN. - TaskArn *string `min:"1" type:"string"` - - // The parameters to pass to the task when it runs. - TaskInvocationParameters *MaintenanceWindowTaskInvocationParameters `type:"structure"` - - // The parameters to pass to the task when it runs. - // - // TaskParameters has been deprecated. To specify parameters to pass to a task - // when it runs, instead use the Parameters option in the TaskInvocationParameters - // structure. For information about how Systems Manager handles these options - // for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. - TaskParameters map[string]*MaintenanceWindowTaskParameterValueExpression `type:"map" sensitive:"true"` - - // The type of task to run. - TaskType *string `type:"string" enum:"MaintenanceWindowTaskType"` - - // The retrieved maintenance window ID. - WindowId *string `min:"20" type:"string"` - - // The retrieved maintenance window task ID. - WindowTaskId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s GetMaintenanceWindowTaskOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetMaintenanceWindowTaskOutput) GoString() string { - return s.String() -} - -// SetDescription sets the Description field's value. -func (s *GetMaintenanceWindowTaskOutput) SetDescription(v string) *GetMaintenanceWindowTaskOutput { - s.Description = &v - return s -} - -// SetLoggingInfo sets the LoggingInfo field's value. -func (s *GetMaintenanceWindowTaskOutput) SetLoggingInfo(v *LoggingInfo) *GetMaintenanceWindowTaskOutput { - s.LoggingInfo = v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *GetMaintenanceWindowTaskOutput) SetMaxConcurrency(v string) *GetMaintenanceWindowTaskOutput { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *GetMaintenanceWindowTaskOutput) SetMaxErrors(v string) *GetMaintenanceWindowTaskOutput { - s.MaxErrors = &v - return s -} - -// SetName sets the Name field's value. -func (s *GetMaintenanceWindowTaskOutput) SetName(v string) *GetMaintenanceWindowTaskOutput { - s.Name = &v - return s -} - -// SetPriority sets the Priority field's value. -func (s *GetMaintenanceWindowTaskOutput) SetPriority(v int64) *GetMaintenanceWindowTaskOutput { - s.Priority = &v - return s -} - -// SetServiceRoleArn sets the ServiceRoleArn field's value. -func (s *GetMaintenanceWindowTaskOutput) SetServiceRoleArn(v string) *GetMaintenanceWindowTaskOutput { - s.ServiceRoleArn = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *GetMaintenanceWindowTaskOutput) SetTargets(v []*Target) *GetMaintenanceWindowTaskOutput { - s.Targets = v - return s -} - -// SetTaskArn sets the TaskArn field's value. -func (s *GetMaintenanceWindowTaskOutput) SetTaskArn(v string) *GetMaintenanceWindowTaskOutput { - s.TaskArn = &v - return s -} - -// SetTaskInvocationParameters sets the TaskInvocationParameters field's value. -func (s *GetMaintenanceWindowTaskOutput) SetTaskInvocationParameters(v *MaintenanceWindowTaskInvocationParameters) *GetMaintenanceWindowTaskOutput { - s.TaskInvocationParameters = v - return s -} - -// SetTaskParameters sets the TaskParameters field's value. -func (s *GetMaintenanceWindowTaskOutput) SetTaskParameters(v map[string]*MaintenanceWindowTaskParameterValueExpression) *GetMaintenanceWindowTaskOutput { - s.TaskParameters = v - return s -} - -// SetTaskType sets the TaskType field's value. -func (s *GetMaintenanceWindowTaskOutput) SetTaskType(v string) *GetMaintenanceWindowTaskOutput { - s.TaskType = &v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *GetMaintenanceWindowTaskOutput) SetWindowId(v string) *GetMaintenanceWindowTaskOutput { - s.WindowId = &v - return s -} - -// SetWindowTaskId sets the WindowTaskId field's value. -func (s *GetMaintenanceWindowTaskOutput) SetWindowTaskId(v string) *GetMaintenanceWindowTaskOutput { - s.WindowTaskId = &v - return s -} - -type GetOpsItemInput struct { - _ struct{} `type:"structure"` - - // The ID of the OpsItem that you want to get. - // - // OpsItemId is a required field - OpsItemId *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s GetOpsItemInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetOpsItemInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetOpsItemInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetOpsItemInput"} - if s.OpsItemId == nil { - invalidParams.Add(request.NewErrParamRequired("OpsItemId")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetOpsItemId sets the OpsItemId field's value. -func (s *GetOpsItemInput) SetOpsItemId(v string) *GetOpsItemInput { - s.OpsItemId = &v - return s -} - -type GetOpsItemOutput struct { - _ struct{} `type:"structure"` - - // The OpsItem. - OpsItem *OpsItem `type:"structure"` -} - -// String returns the string representation -func (s GetOpsItemOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetOpsItemOutput) GoString() string { - return s.String() -} - -// SetOpsItem sets the OpsItem field's value. -func (s *GetOpsItemOutput) SetOpsItem(v *OpsItem) *GetOpsItemOutput { - s.OpsItem = v - return s -} - -type GetOpsMetadataInput struct { - _ struct{} `type:"structure"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // A token to start the list. Use this token to get the next set of results. - NextToken *string `type:"string"` - - // The Amazon Resource Name (ARN) of an OpsMetadata Object to view. - // - // OpsMetadataArn is a required field - OpsMetadataArn *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s GetOpsMetadataInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetOpsMetadataInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetOpsMetadataInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetOpsMetadataInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.OpsMetadataArn == nil { - invalidParams.Add(request.NewErrParamRequired("OpsMetadataArn")) - } - if s.OpsMetadataArn != nil && len(*s.OpsMetadataArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("OpsMetadataArn", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetMaxResults sets the MaxResults field's value. -func (s *GetOpsMetadataInput) SetMaxResults(v int64) *GetOpsMetadataInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *GetOpsMetadataInput) SetNextToken(v string) *GetOpsMetadataInput { - s.NextToken = &v - return s -} - -// SetOpsMetadataArn sets the OpsMetadataArn field's value. -func (s *GetOpsMetadataInput) SetOpsMetadataArn(v string) *GetOpsMetadataInput { - s.OpsMetadataArn = &v - return s -} - -type GetOpsMetadataOutput struct { - _ struct{} `type:"structure"` - - // OpsMetadata for an Application Manager application. - Metadata map[string]*MetadataValue `min:"1" type:"map"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` - - // The resource ID of the Application Manager application. - ResourceId *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s GetOpsMetadataOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetOpsMetadataOutput) GoString() string { - return s.String() -} - -// SetMetadata sets the Metadata field's value. -func (s *GetOpsMetadataOutput) SetMetadata(v map[string]*MetadataValue) *GetOpsMetadataOutput { - s.Metadata = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *GetOpsMetadataOutput) SetNextToken(v string) *GetOpsMetadataOutput { - s.NextToken = &v - return s -} - -// SetResourceId sets the ResourceId field's value. -func (s *GetOpsMetadataOutput) SetResourceId(v string) *GetOpsMetadataOutput { - s.ResourceId = &v - return s -} - -type GetOpsSummaryInput struct { - _ struct{} `type:"structure"` - - // Optional aggregators that return counts of OpsItems based on one or more - // expressions. - Aggregators []*OpsAggregator `min:"1" type:"list"` - - // Optional filters used to scope down the returned OpsItems. - Filters []*OpsFilter `min:"1" type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // A token to start the list. Use this token to get the next set of results. - NextToken *string `type:"string"` - - // The OpsItem data type to return. - ResultAttributes []*OpsResultAttribute `min:"1" type:"list"` - - // Specify the name of a resource data sync to get. - SyncName *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s GetOpsSummaryInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetOpsSummaryInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetOpsSummaryInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetOpsSummaryInput"} - if s.Aggregators != nil && len(s.Aggregators) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Aggregators", 1)) - } - if s.Filters != nil && len(s.Filters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Filters", 1)) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.ResultAttributes != nil && len(s.ResultAttributes) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ResultAttributes", 1)) - } - if s.SyncName != nil && len(*s.SyncName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SyncName", 1)) - } - if s.Aggregators != nil { - for i, v := range s.Aggregators { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Aggregators", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - if s.ResultAttributes != nil { - for i, v := range s.ResultAttributes { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResultAttributes", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAggregators sets the Aggregators field's value. -func (s *GetOpsSummaryInput) SetAggregators(v []*OpsAggregator) *GetOpsSummaryInput { - s.Aggregators = v - return s -} - -// SetFilters sets the Filters field's value. -func (s *GetOpsSummaryInput) SetFilters(v []*OpsFilter) *GetOpsSummaryInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *GetOpsSummaryInput) SetMaxResults(v int64) *GetOpsSummaryInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *GetOpsSummaryInput) SetNextToken(v string) *GetOpsSummaryInput { - s.NextToken = &v - return s -} - -// SetResultAttributes sets the ResultAttributes field's value. -func (s *GetOpsSummaryInput) SetResultAttributes(v []*OpsResultAttribute) *GetOpsSummaryInput { - s.ResultAttributes = v - return s -} - -// SetSyncName sets the SyncName field's value. -func (s *GetOpsSummaryInput) SetSyncName(v string) *GetOpsSummaryInput { - s.SyncName = &v - return s -} - -type GetOpsSummaryOutput struct { - _ struct{} `type:"structure"` - - // The list of aggregated and filtered OpsItems. - Entities []*OpsEntity `type:"list"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s GetOpsSummaryOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetOpsSummaryOutput) GoString() string { - return s.String() -} - -// SetEntities sets the Entities field's value. -func (s *GetOpsSummaryOutput) SetEntities(v []*OpsEntity) *GetOpsSummaryOutput { - s.Entities = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *GetOpsSummaryOutput) SetNextToken(v string) *GetOpsSummaryOutput { - s.NextToken = &v - return s -} - -type GetParameterHistoryInput struct { - _ struct{} `type:"structure"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The name of the parameter for which you want to review history. - // - // Name is a required field - Name *string `min:"1" type:"string" required:"true"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // Return decrypted values for secure string parameters. This flag is ignored - // for String and StringList parameter types. - WithDecryption *bool `type:"boolean"` -} - -// String returns the string representation -func (s GetParameterHistoryInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetParameterHistoryInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetParameterHistoryInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetParameterHistoryInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Name", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetMaxResults sets the MaxResults field's value. -func (s *GetParameterHistoryInput) SetMaxResults(v int64) *GetParameterHistoryInput { - s.MaxResults = &v - return s -} - -// SetName sets the Name field's value. -func (s *GetParameterHistoryInput) SetName(v string) *GetParameterHistoryInput { - s.Name = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *GetParameterHistoryInput) SetNextToken(v string) *GetParameterHistoryInput { - s.NextToken = &v - return s -} - -// SetWithDecryption sets the WithDecryption field's value. -func (s *GetParameterHistoryInput) SetWithDecryption(v bool) *GetParameterHistoryInput { - s.WithDecryption = &v - return s -} - -type GetParameterHistoryOutput struct { - _ struct{} `type:"structure"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` - - // A list of parameters returned by the request. - Parameters []*ParameterHistory `type:"list"` -} - -// String returns the string representation -func (s GetParameterHistoryOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetParameterHistoryOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *GetParameterHistoryOutput) SetNextToken(v string) *GetParameterHistoryOutput { - s.NextToken = &v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *GetParameterHistoryOutput) SetParameters(v []*ParameterHistory) *GetParameterHistoryOutput { - s.Parameters = v - return s -} - -type GetParameterInput struct { - _ struct{} `type:"structure"` - - // The name of the parameter you want to query. - // - // Name is a required field - Name *string `min:"1" type:"string" required:"true"` - - // Return decrypted values for secure string parameters. This flag is ignored - // for String and StringList parameter types. - WithDecryption *bool `type:"boolean"` -} - -// String returns the string representation -func (s GetParameterInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetParameterInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetParameterInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetParameterInput"} - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Name", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetName sets the Name field's value. -func (s *GetParameterInput) SetName(v string) *GetParameterInput { - s.Name = &v - return s -} - -// SetWithDecryption sets the WithDecryption field's value. -func (s *GetParameterInput) SetWithDecryption(v bool) *GetParameterInput { - s.WithDecryption = &v - return s -} - -type GetParameterOutput struct { - _ struct{} `type:"structure"` - - // Information about a parameter. - Parameter *Parameter `type:"structure"` -} - -// String returns the string representation -func (s GetParameterOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetParameterOutput) GoString() string { - return s.String() -} - -// SetParameter sets the Parameter field's value. -func (s *GetParameterOutput) SetParameter(v *Parameter) *GetParameterOutput { - s.Parameter = v - return s -} - -type GetParametersByPathInput struct { - _ struct{} `type:"structure"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // A token to start the list. Use this token to get the next set of results. - NextToken *string `type:"string"` - - // Filters to limit the request results. - // - // For GetParametersByPath, the following filter Key names are supported: Type, - // KeyId, Label, and DataType. - // - // The following Key values are not supported for GetParametersByPath: tag, - // Name, Path, and Tier. - ParameterFilters []*ParameterStringFilter `type:"list"` - - // The hierarchy for the parameter. Hierarchies start with a forward slash (/). - // The hierachy is the parameter name except the last part of the parameter. - // For the API call to succeeed, the last part of the parameter name cannot - // be in the path. A parameter name hierarchy can have a maximum of 15 levels. - // Here is an example of a hierarchy: /Finance/Prod/IAD/WinServ2016/license33 - // - // Path is a required field - Path *string `min:"1" type:"string" required:"true"` - - // Retrieve all parameters within a hierarchy. - // - // If a user has access to a path, then the user can access all levels of that - // path. For example, if a user has permission to access path /a, then the user - // can also access /a/b. Even if a user has explicitly been denied access in - // IAM for parameter /a/b, they can still call the GetParametersByPath API action - // recursively for /a and view /a/b. - Recursive *bool `type:"boolean"` - - // Retrieve all parameters in a hierarchy with their value decrypted. - WithDecryption *bool `type:"boolean"` -} - -// String returns the string representation -func (s GetParametersByPathInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetParametersByPathInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetParametersByPathInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetParametersByPathInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Path == nil { - invalidParams.Add(request.NewErrParamRequired("Path")) - } - if s.Path != nil && len(*s.Path) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Path", 1)) - } - if s.ParameterFilters != nil { - for i, v := range s.ParameterFilters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ParameterFilters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetMaxResults sets the MaxResults field's value. -func (s *GetParametersByPathInput) SetMaxResults(v int64) *GetParametersByPathInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *GetParametersByPathInput) SetNextToken(v string) *GetParametersByPathInput { - s.NextToken = &v - return s -} - -// SetParameterFilters sets the ParameterFilters field's value. -func (s *GetParametersByPathInput) SetParameterFilters(v []*ParameterStringFilter) *GetParametersByPathInput { - s.ParameterFilters = v - return s -} - -// SetPath sets the Path field's value. -func (s *GetParametersByPathInput) SetPath(v string) *GetParametersByPathInput { - s.Path = &v - return s -} - -// SetRecursive sets the Recursive field's value. -func (s *GetParametersByPathInput) SetRecursive(v bool) *GetParametersByPathInput { - s.Recursive = &v - return s -} - -// SetWithDecryption sets the WithDecryption field's value. -func (s *GetParametersByPathInput) SetWithDecryption(v bool) *GetParametersByPathInput { - s.WithDecryption = &v - return s -} - -type GetParametersByPathOutput struct { - _ struct{} `type:"structure"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` - - // A list of parameters found in the specified hierarchy. - Parameters []*Parameter `type:"list"` -} - -// String returns the string representation -func (s GetParametersByPathOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetParametersByPathOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *GetParametersByPathOutput) SetNextToken(v string) *GetParametersByPathOutput { - s.NextToken = &v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *GetParametersByPathOutput) SetParameters(v []*Parameter) *GetParametersByPathOutput { - s.Parameters = v - return s -} - -type GetParametersInput struct { - _ struct{} `type:"structure"` - - // Names of the parameters for which you want to query information. - // - // Names is a required field - Names []*string `min:"1" type:"list" required:"true"` - - // Return decrypted secure string value. Return decrypted values for secure - // string parameters. This flag is ignored for String and StringList parameter - // types. - WithDecryption *bool `type:"boolean"` -} - -// String returns the string representation -func (s GetParametersInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetParametersInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetParametersInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetParametersInput"} - if s.Names == nil { - invalidParams.Add(request.NewErrParamRequired("Names")) - } - if s.Names != nil && len(s.Names) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Names", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetNames sets the Names field's value. -func (s *GetParametersInput) SetNames(v []*string) *GetParametersInput { - s.Names = v - return s -} - -// SetWithDecryption sets the WithDecryption field's value. -func (s *GetParametersInput) SetWithDecryption(v bool) *GetParametersInput { - s.WithDecryption = &v - return s -} - -type GetParametersOutput struct { - _ struct{} `type:"structure"` - - // A list of parameters that are not formatted correctly or do not run during - // an execution. - InvalidParameters []*string `min:"1" type:"list"` - - // A list of details for a parameter. - Parameters []*Parameter `type:"list"` -} - -// String returns the string representation -func (s GetParametersOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetParametersOutput) GoString() string { - return s.String() -} - -// SetInvalidParameters sets the InvalidParameters field's value. -func (s *GetParametersOutput) SetInvalidParameters(v []*string) *GetParametersOutput { - s.InvalidParameters = v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *GetParametersOutput) SetParameters(v []*Parameter) *GetParametersOutput { - s.Parameters = v - return s -} - -type GetPatchBaselineForPatchGroupInput struct { - _ struct{} `type:"structure"` - - // Returns he operating system rule specified for patch groups using the patch - // baseline. - OperatingSystem *string `type:"string" enum:"OperatingSystem"` - - // The name of the patch group whose patch baseline should be retrieved. - // - // PatchGroup is a required field - PatchGroup *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s GetPatchBaselineForPatchGroupInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetPatchBaselineForPatchGroupInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetPatchBaselineForPatchGroupInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetPatchBaselineForPatchGroupInput"} - if s.PatchGroup == nil { - invalidParams.Add(request.NewErrParamRequired("PatchGroup")) - } - if s.PatchGroup != nil && len(*s.PatchGroup) < 1 { - invalidParams.Add(request.NewErrParamMinLen("PatchGroup", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetOperatingSystem sets the OperatingSystem field's value. -func (s *GetPatchBaselineForPatchGroupInput) SetOperatingSystem(v string) *GetPatchBaselineForPatchGroupInput { - s.OperatingSystem = &v - return s -} - -// SetPatchGroup sets the PatchGroup field's value. -func (s *GetPatchBaselineForPatchGroupInput) SetPatchGroup(v string) *GetPatchBaselineForPatchGroupInput { - s.PatchGroup = &v - return s -} - -type GetPatchBaselineForPatchGroupOutput struct { - _ struct{} `type:"structure"` - - // The ID of the patch baseline that should be used for the patch group. - BaselineId *string `min:"20" type:"string"` - - // The operating system rule specified for patch groups using the patch baseline. - OperatingSystem *string `type:"string" enum:"OperatingSystem"` - - // The name of the patch group. - PatchGroup *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s GetPatchBaselineForPatchGroupOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetPatchBaselineForPatchGroupOutput) GoString() string { - return s.String() -} - -// SetBaselineId sets the BaselineId field's value. -func (s *GetPatchBaselineForPatchGroupOutput) SetBaselineId(v string) *GetPatchBaselineForPatchGroupOutput { - s.BaselineId = &v - return s -} - -// SetOperatingSystem sets the OperatingSystem field's value. -func (s *GetPatchBaselineForPatchGroupOutput) SetOperatingSystem(v string) *GetPatchBaselineForPatchGroupOutput { - s.OperatingSystem = &v - return s -} - -// SetPatchGroup sets the PatchGroup field's value. -func (s *GetPatchBaselineForPatchGroupOutput) SetPatchGroup(v string) *GetPatchBaselineForPatchGroupOutput { - s.PatchGroup = &v - return s -} - -type GetPatchBaselineInput struct { - _ struct{} `type:"structure"` - - // The ID of the patch baseline to retrieve. - // - // BaselineId is a required field - BaselineId *string `min:"20" type:"string" required:"true"` -} - -// String returns the string representation -func (s GetPatchBaselineInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetPatchBaselineInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetPatchBaselineInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetPatchBaselineInput"} - if s.BaselineId == nil { - invalidParams.Add(request.NewErrParamRequired("BaselineId")) - } - if s.BaselineId != nil && len(*s.BaselineId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("BaselineId", 20)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetBaselineId sets the BaselineId field's value. -func (s *GetPatchBaselineInput) SetBaselineId(v string) *GetPatchBaselineInput { - s.BaselineId = &v - return s -} - -type GetPatchBaselineOutput struct { - _ struct{} `type:"structure"` - - // A set of rules used to include patches in the baseline. - ApprovalRules *PatchRuleGroup `type:"structure"` - - // A list of explicitly approved patches for the baseline. - ApprovedPatches []*string `type:"list"` - - // Returns the specified compliance severity level for approved patches in the - // patch baseline. - ApprovedPatchesComplianceLevel *string `type:"string" enum:"PatchComplianceLevel"` - - // Indicates whether the list of approved patches includes non-security updates - // that should be applied to the instances. The default value is 'false'. Applies - // to Linux instances only. - ApprovedPatchesEnableNonSecurity *bool `type:"boolean"` - - // The ID of the retrieved patch baseline. - BaselineId *string `min:"20" type:"string"` - - // The date the patch baseline was created. - CreatedDate *time.Time `type:"timestamp"` - - // A description of the patch baseline. - Description *string `min:"1" type:"string"` - - // A set of global filters used to exclude patches from the baseline. - GlobalFilters *PatchFilterGroup `type:"structure"` - - // The date the patch baseline was last modified. - ModifiedDate *time.Time `type:"timestamp"` - - // The name of the patch baseline. - Name *string `min:"3" type:"string"` - - // Returns the operating system specified for the patch baseline. - OperatingSystem *string `type:"string" enum:"OperatingSystem"` - - // Patch groups included in the patch baseline. - PatchGroups []*string `type:"list"` - - // A list of explicitly rejected patches for the baseline. - RejectedPatches []*string `type:"list"` - - // The action specified to take on patches included in the RejectedPatches list. - // A patch can be allowed only if it is a dependency of another package, or - // blocked entirely along with packages that include it as a dependency. - RejectedPatchesAction *string `type:"string" enum:"PatchAction"` - - // Information about the patches to use to update the instances, including target - // operating systems and source repositories. Applies to Linux instances only. - Sources []*PatchSource `type:"list"` -} - -// String returns the string representation -func (s GetPatchBaselineOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetPatchBaselineOutput) GoString() string { - return s.String() -} - -// SetApprovalRules sets the ApprovalRules field's value. -func (s *GetPatchBaselineOutput) SetApprovalRules(v *PatchRuleGroup) *GetPatchBaselineOutput { - s.ApprovalRules = v - return s -} - -// SetApprovedPatches sets the ApprovedPatches field's value. -func (s *GetPatchBaselineOutput) SetApprovedPatches(v []*string) *GetPatchBaselineOutput { - s.ApprovedPatches = v - return s -} - -// SetApprovedPatchesComplianceLevel sets the ApprovedPatchesComplianceLevel field's value. -func (s *GetPatchBaselineOutput) SetApprovedPatchesComplianceLevel(v string) *GetPatchBaselineOutput { - s.ApprovedPatchesComplianceLevel = &v - return s -} - -// SetApprovedPatchesEnableNonSecurity sets the ApprovedPatchesEnableNonSecurity field's value. -func (s *GetPatchBaselineOutput) SetApprovedPatchesEnableNonSecurity(v bool) *GetPatchBaselineOutput { - s.ApprovedPatchesEnableNonSecurity = &v - return s -} - -// SetBaselineId sets the BaselineId field's value. -func (s *GetPatchBaselineOutput) SetBaselineId(v string) *GetPatchBaselineOutput { - s.BaselineId = &v - return s -} - -// SetCreatedDate sets the CreatedDate field's value. -func (s *GetPatchBaselineOutput) SetCreatedDate(v time.Time) *GetPatchBaselineOutput { - s.CreatedDate = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *GetPatchBaselineOutput) SetDescription(v string) *GetPatchBaselineOutput { - s.Description = &v - return s -} - -// SetGlobalFilters sets the GlobalFilters field's value. -func (s *GetPatchBaselineOutput) SetGlobalFilters(v *PatchFilterGroup) *GetPatchBaselineOutput { - s.GlobalFilters = v - return s -} - -// SetModifiedDate sets the ModifiedDate field's value. -func (s *GetPatchBaselineOutput) SetModifiedDate(v time.Time) *GetPatchBaselineOutput { - s.ModifiedDate = &v - return s -} - -// SetName sets the Name field's value. -func (s *GetPatchBaselineOutput) SetName(v string) *GetPatchBaselineOutput { - s.Name = &v - return s -} - -// SetOperatingSystem sets the OperatingSystem field's value. -func (s *GetPatchBaselineOutput) SetOperatingSystem(v string) *GetPatchBaselineOutput { - s.OperatingSystem = &v - return s -} - -// SetPatchGroups sets the PatchGroups field's value. -func (s *GetPatchBaselineOutput) SetPatchGroups(v []*string) *GetPatchBaselineOutput { - s.PatchGroups = v - return s -} - -// SetRejectedPatches sets the RejectedPatches field's value. -func (s *GetPatchBaselineOutput) SetRejectedPatches(v []*string) *GetPatchBaselineOutput { - s.RejectedPatches = v - return s -} - -// SetRejectedPatchesAction sets the RejectedPatchesAction field's value. -func (s *GetPatchBaselineOutput) SetRejectedPatchesAction(v string) *GetPatchBaselineOutput { - s.RejectedPatchesAction = &v - return s -} - -// SetSources sets the Sources field's value. -func (s *GetPatchBaselineOutput) SetSources(v []*PatchSource) *GetPatchBaselineOutput { - s.Sources = v - return s -} - -// The request body of the GetServiceSetting API action. -type GetServiceSettingInput struct { - _ struct{} `type:"structure"` - - // The ID of the service setting to get. The setting ID can be /ssm/automation/customer-script-log-destination, - // /ssm/automation/customer-script-log-group-name, /ssm/parameter-store/default-parameter-tier, - // /ssm/parameter-store/high-throughput-enabled, or /ssm/managed-instance/activation-tier. - // - // SettingId is a required field - SettingId *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s GetServiceSettingInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetServiceSettingInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetServiceSettingInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetServiceSettingInput"} - if s.SettingId == nil { - invalidParams.Add(request.NewErrParamRequired("SettingId")) - } - if s.SettingId != nil && len(*s.SettingId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SettingId", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetSettingId sets the SettingId field's value. -func (s *GetServiceSettingInput) SetSettingId(v string) *GetServiceSettingInput { - s.SettingId = &v - return s -} - -// The query result body of the GetServiceSetting API action. -type GetServiceSettingOutput struct { - _ struct{} `type:"structure"` - - // The query result of the current service setting. - ServiceSetting *ServiceSetting `type:"structure"` -} - -// String returns the string representation -func (s GetServiceSettingOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetServiceSettingOutput) GoString() string { - return s.String() -} - -// SetServiceSetting sets the ServiceSetting field's value. -func (s *GetServiceSettingOutput) SetServiceSetting(v *ServiceSetting) *GetServiceSettingOutput { - s.ServiceSetting = v - return s -} - -// A hierarchy can have a maximum of 15 levels. For more information, see Requirements -// and constraints for parameter names (https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html) -// in the AWS Systems Manager User Guide. -type HierarchyLevelLimitExceededException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - // A hierarchy can have a maximum of 15 levels. For more information, see Requirements - // and constraints for parameter names (https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html) - // in the AWS Systems Manager User Guide. - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s HierarchyLevelLimitExceededException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s HierarchyLevelLimitExceededException) GoString() string { - return s.String() -} - -func newErrorHierarchyLevelLimitExceededException(v protocol.ResponseMetadata) error { - return &HierarchyLevelLimitExceededException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *HierarchyLevelLimitExceededException) Code() string { - return "HierarchyLevelLimitExceededException" -} - -// Message returns the exception's message. -func (s *HierarchyLevelLimitExceededException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *HierarchyLevelLimitExceededException) OrigErr() error { - return nil -} - -func (s *HierarchyLevelLimitExceededException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *HierarchyLevelLimitExceededException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *HierarchyLevelLimitExceededException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Parameter Store does not support changing a parameter type in a hierarchy. -// For example, you can't change a parameter from a String type to a SecureString -// type. You must create a new, unique parameter. -type HierarchyTypeMismatchException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - // Parameter Store does not support changing a parameter type in a hierarchy. - // For example, you can't change a parameter from a String type to a SecureString - // type. You must create a new, unique parameter. - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s HierarchyTypeMismatchException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s HierarchyTypeMismatchException) GoString() string { - return s.String() -} - -func newErrorHierarchyTypeMismatchException(v protocol.ResponseMetadata) error { - return &HierarchyTypeMismatchException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *HierarchyTypeMismatchException) Code() string { - return "HierarchyTypeMismatchException" -} - -// Message returns the exception's message. -func (s *HierarchyTypeMismatchException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *HierarchyTypeMismatchException) OrigErr() error { - return nil -} - -func (s *HierarchyTypeMismatchException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *HierarchyTypeMismatchException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *HierarchyTypeMismatchException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Error returned when an idempotent operation is retried and the parameters -// don't match the original call to the API with the same idempotency token. -type IdempotentParameterMismatch struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s IdempotentParameterMismatch) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s IdempotentParameterMismatch) GoString() string { - return s.String() -} - -func newErrorIdempotentParameterMismatch(v protocol.ResponseMetadata) error { - return &IdempotentParameterMismatch{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *IdempotentParameterMismatch) Code() string { - return "IdempotentParameterMismatch" -} - -// Message returns the exception's message. -func (s *IdempotentParameterMismatch) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *IdempotentParameterMismatch) OrigErr() error { - return nil -} - -func (s *IdempotentParameterMismatch) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *IdempotentParameterMismatch) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *IdempotentParameterMismatch) RequestID() string { - return s.RespMetadata.RequestID -} - -// There is a conflict in the policies specified for this parameter. You can't, -// for example, specify two Expiration policies for a parameter. Review your -// policies, and try again. -type IncompatiblePolicyException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s IncompatiblePolicyException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s IncompatiblePolicyException) GoString() string { - return s.String() -} - -func newErrorIncompatiblePolicyException(v protocol.ResponseMetadata) error { - return &IncompatiblePolicyException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *IncompatiblePolicyException) Code() string { - return "IncompatiblePolicyException" -} - -// Message returns the exception's message. -func (s *IncompatiblePolicyException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *IncompatiblePolicyException) OrigErr() error { - return nil -} - -func (s *IncompatiblePolicyException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *IncompatiblePolicyException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *IncompatiblePolicyException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Status information about the aggregated associations. -type InstanceAggregatedAssociationOverview struct { - _ struct{} `type:"structure"` - - // Detailed status information about the aggregated associations. - DetailedStatus *string `type:"string"` - - // The number of associations for the instance(s). - InstanceAssociationStatusAggregatedCount map[string]*int64 `type:"map"` -} - -// String returns the string representation -func (s InstanceAggregatedAssociationOverview) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InstanceAggregatedAssociationOverview) GoString() string { - return s.String() -} - -// SetDetailedStatus sets the DetailedStatus field's value. -func (s *InstanceAggregatedAssociationOverview) SetDetailedStatus(v string) *InstanceAggregatedAssociationOverview { - s.DetailedStatus = &v - return s -} - -// SetInstanceAssociationStatusAggregatedCount sets the InstanceAssociationStatusAggregatedCount field's value. -func (s *InstanceAggregatedAssociationOverview) SetInstanceAssociationStatusAggregatedCount(v map[string]*int64) *InstanceAggregatedAssociationOverview { - s.InstanceAssociationStatusAggregatedCount = v - return s -} - -// One or more association documents on the instance. -type InstanceAssociation struct { - _ struct{} `type:"structure"` - - // The association ID. - AssociationId *string `type:"string"` - - // Version information for the association on the instance. - AssociationVersion *string `type:"string"` - - // The content of the association document for the instance(s). - Content *string `min:"1" type:"string"` - - // The instance ID. - InstanceId *string `type:"string"` -} - -// String returns the string representation -func (s InstanceAssociation) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InstanceAssociation) GoString() string { - return s.String() -} - -// SetAssociationId sets the AssociationId field's value. -func (s *InstanceAssociation) SetAssociationId(v string) *InstanceAssociation { - s.AssociationId = &v - return s -} - -// SetAssociationVersion sets the AssociationVersion field's value. -func (s *InstanceAssociation) SetAssociationVersion(v string) *InstanceAssociation { - s.AssociationVersion = &v - return s -} - -// SetContent sets the Content field's value. -func (s *InstanceAssociation) SetContent(v string) *InstanceAssociation { - s.Content = &v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *InstanceAssociation) SetInstanceId(v string) *InstanceAssociation { - s.InstanceId = &v - return s -} - -// An S3 bucket where you want to store the results of this request. -type InstanceAssociationOutputLocation struct { - _ struct{} `type:"structure"` - - // An S3 bucket where you want to store the results of this request. - S3Location *S3OutputLocation `type:"structure"` -} - -// String returns the string representation -func (s InstanceAssociationOutputLocation) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InstanceAssociationOutputLocation) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *InstanceAssociationOutputLocation) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "InstanceAssociationOutputLocation"} - if s.S3Location != nil { - if err := s.S3Location.Validate(); err != nil { - invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetS3Location sets the S3Location field's value. -func (s *InstanceAssociationOutputLocation) SetS3Location(v *S3OutputLocation) *InstanceAssociationOutputLocation { - s.S3Location = v - return s -} - -// The URL of S3 bucket where you want to store the results of this request. -type InstanceAssociationOutputUrl struct { - _ struct{} `type:"structure"` - - // The URL of S3 bucket where you want to store the results of this request. - S3OutputUrl *S3OutputUrl `type:"structure"` -} - -// String returns the string representation -func (s InstanceAssociationOutputUrl) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InstanceAssociationOutputUrl) GoString() string { - return s.String() -} - -// SetS3OutputUrl sets the S3OutputUrl field's value. -func (s *InstanceAssociationOutputUrl) SetS3OutputUrl(v *S3OutputUrl) *InstanceAssociationOutputUrl { - s.S3OutputUrl = v - return s -} - -// Status information about the instance association. -type InstanceAssociationStatusInfo struct { - _ struct{} `type:"structure"` - - // The association ID. - AssociationId *string `type:"string"` - - // The name of the association applied to the instance. - AssociationName *string `type:"string"` - - // The version of the association applied to the instance. - AssociationVersion *string `type:"string"` - - // Detailed status information about the instance association. - DetailedStatus *string `type:"string"` - - // The association document versions. - DocumentVersion *string `type:"string"` - - // An error code returned by the request to create the association. - ErrorCode *string `type:"string"` - - // The date the instance association ran. - ExecutionDate *time.Time `type:"timestamp"` - - // Summary information about association execution. - ExecutionSummary *string `min:"1" type:"string"` - - // The instance ID where the association was created. - InstanceId *string `type:"string"` - - // The name of the association. - Name *string `type:"string"` - - // A URL for an S3 bucket where you want to store the results of this request. - OutputUrl *InstanceAssociationOutputUrl `type:"structure"` - - // Status information about the instance association. - Status *string `type:"string"` -} - -// String returns the string representation -func (s InstanceAssociationStatusInfo) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InstanceAssociationStatusInfo) GoString() string { - return s.String() -} - -// SetAssociationId sets the AssociationId field's value. -func (s *InstanceAssociationStatusInfo) SetAssociationId(v string) *InstanceAssociationStatusInfo { - s.AssociationId = &v - return s -} - -// SetAssociationName sets the AssociationName field's value. -func (s *InstanceAssociationStatusInfo) SetAssociationName(v string) *InstanceAssociationStatusInfo { - s.AssociationName = &v - return s -} - -// SetAssociationVersion sets the AssociationVersion field's value. -func (s *InstanceAssociationStatusInfo) SetAssociationVersion(v string) *InstanceAssociationStatusInfo { - s.AssociationVersion = &v - return s -} - -// SetDetailedStatus sets the DetailedStatus field's value. -func (s *InstanceAssociationStatusInfo) SetDetailedStatus(v string) *InstanceAssociationStatusInfo { - s.DetailedStatus = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *InstanceAssociationStatusInfo) SetDocumentVersion(v string) *InstanceAssociationStatusInfo { - s.DocumentVersion = &v - return s -} - -// SetErrorCode sets the ErrorCode field's value. -func (s *InstanceAssociationStatusInfo) SetErrorCode(v string) *InstanceAssociationStatusInfo { - s.ErrorCode = &v - return s -} - -// SetExecutionDate sets the ExecutionDate field's value. -func (s *InstanceAssociationStatusInfo) SetExecutionDate(v time.Time) *InstanceAssociationStatusInfo { - s.ExecutionDate = &v - return s -} - -// SetExecutionSummary sets the ExecutionSummary field's value. -func (s *InstanceAssociationStatusInfo) SetExecutionSummary(v string) *InstanceAssociationStatusInfo { - s.ExecutionSummary = &v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *InstanceAssociationStatusInfo) SetInstanceId(v string) *InstanceAssociationStatusInfo { - s.InstanceId = &v - return s -} - -// SetName sets the Name field's value. -func (s *InstanceAssociationStatusInfo) SetName(v string) *InstanceAssociationStatusInfo { - s.Name = &v - return s -} - -// SetOutputUrl sets the OutputUrl field's value. -func (s *InstanceAssociationStatusInfo) SetOutputUrl(v *InstanceAssociationOutputUrl) *InstanceAssociationStatusInfo { - s.OutputUrl = v - return s -} - -// SetStatus sets the Status field's value. -func (s *InstanceAssociationStatusInfo) SetStatus(v string) *InstanceAssociationStatusInfo { - s.Status = &v - return s -} - -// Describes a filter for a specific list of instances. -type InstanceInformation struct { - _ struct{} `type:"structure"` - - // The activation ID created by Systems Manager when the server or VM was registered. - ActivationId *string `type:"string"` - - // The version of SSM Agent running on your Linux instance. - AgentVersion *string `type:"string"` - - // Information about the association. - AssociationOverview *InstanceAggregatedAssociationOverview `type:"structure"` - - // The status of the association. - AssociationStatus *string `type:"string"` - - // The fully qualified host name of the managed instance. - ComputerName *string `min:"1" type:"string"` - - // The IP address of the managed instance. - IPAddress *string `min:"1" type:"string"` - - // The Amazon Identity and Access Management (IAM) role assigned to the on-premises - // Systems Manager managed instance. This call does not return the IAM role - // for EC2 instances. To retrieve the IAM role for an EC2 instance, use the - // Amazon EC2 DescribeInstances action. For information, see DescribeInstances - // (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html) - // in the Amazon EC2 API Reference or describe-instances (http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) - // in the AWS CLI Command Reference. - IamRole *string `type:"string"` - - // The instance ID. - InstanceId *string `type:"string"` - - // Indicates whether the latest version of SSM Agent is running on your Linux - // Managed Instance. This field does not indicate whether or not the latest - // version is installed on Windows managed instances, because some older versions - // of Windows Server use the EC2Config service to process SSM requests. - IsLatestVersion *bool `type:"boolean"` - - // The date the association was last run. - LastAssociationExecutionDate *time.Time `type:"timestamp"` - - // The date and time when the agent last pinged the Systems Manager service. - LastPingDateTime *time.Time `type:"timestamp"` - - // The last date the association was successfully run. - LastSuccessfulAssociationExecutionDate *time.Time `type:"timestamp"` - - // The name assigned to an on-premises server or virtual machine (VM) when it - // is activated as a Systems Manager managed instance. The name is specified - // as the DefaultInstanceName property using the CreateActivation command. It - // is applied to the managed instance by specifying the Activation Code and - // Activation ID when you install SSM Agent on the instance, as explained in - // Install SSM Agent for a hybrid environment (Linux) (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-managed-linux.html) - // and Install SSM Agent for a hybrid environment (Windows) (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-managed-win.html). - // To retrieve the Name tag of an EC2 instance, use the Amazon EC2 DescribeInstances - // action. For information, see DescribeInstances (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html) - // in the Amazon EC2 API Reference or describe-instances (http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) - // in the AWS CLI Command Reference. - Name *string `type:"string"` - - // Connection status of SSM Agent. - // - // The status Inactive has been deprecated and is no longer in use. - PingStatus *string `type:"string" enum:"PingStatus"` - - // The name of the operating system platform running on your instance. - PlatformName *string `type:"string"` - - // The operating system platform type. - PlatformType *string `type:"string" enum:"PlatformType"` - - // The version of the OS platform running on your instance. - PlatformVersion *string `type:"string"` - - // The date the server or VM was registered with AWS as a managed instance. - RegistrationDate *time.Time `type:"timestamp"` - - // The type of instance. Instances are either EC2 instances or managed instances. - ResourceType *string `type:"string" enum:"ResourceType"` -} - -// String returns the string representation -func (s InstanceInformation) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InstanceInformation) GoString() string { - return s.String() -} - -// SetActivationId sets the ActivationId field's value. -func (s *InstanceInformation) SetActivationId(v string) *InstanceInformation { - s.ActivationId = &v - return s -} - -// SetAgentVersion sets the AgentVersion field's value. -func (s *InstanceInformation) SetAgentVersion(v string) *InstanceInformation { - s.AgentVersion = &v - return s -} - -// SetAssociationOverview sets the AssociationOverview field's value. -func (s *InstanceInformation) SetAssociationOverview(v *InstanceAggregatedAssociationOverview) *InstanceInformation { - s.AssociationOverview = v - return s -} - -// SetAssociationStatus sets the AssociationStatus field's value. -func (s *InstanceInformation) SetAssociationStatus(v string) *InstanceInformation { - s.AssociationStatus = &v - return s -} - -// SetComputerName sets the ComputerName field's value. -func (s *InstanceInformation) SetComputerName(v string) *InstanceInformation { - s.ComputerName = &v - return s -} - -// SetIPAddress sets the IPAddress field's value. -func (s *InstanceInformation) SetIPAddress(v string) *InstanceInformation { - s.IPAddress = &v - return s -} - -// SetIamRole sets the IamRole field's value. -func (s *InstanceInformation) SetIamRole(v string) *InstanceInformation { - s.IamRole = &v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *InstanceInformation) SetInstanceId(v string) *InstanceInformation { - s.InstanceId = &v - return s -} - -// SetIsLatestVersion sets the IsLatestVersion field's value. -func (s *InstanceInformation) SetIsLatestVersion(v bool) *InstanceInformation { - s.IsLatestVersion = &v - return s -} - -// SetLastAssociationExecutionDate sets the LastAssociationExecutionDate field's value. -func (s *InstanceInformation) SetLastAssociationExecutionDate(v time.Time) *InstanceInformation { - s.LastAssociationExecutionDate = &v - return s -} - -// SetLastPingDateTime sets the LastPingDateTime field's value. -func (s *InstanceInformation) SetLastPingDateTime(v time.Time) *InstanceInformation { - s.LastPingDateTime = &v - return s -} - -// SetLastSuccessfulAssociationExecutionDate sets the LastSuccessfulAssociationExecutionDate field's value. -func (s *InstanceInformation) SetLastSuccessfulAssociationExecutionDate(v time.Time) *InstanceInformation { - s.LastSuccessfulAssociationExecutionDate = &v - return s -} - -// SetName sets the Name field's value. -func (s *InstanceInformation) SetName(v string) *InstanceInformation { - s.Name = &v - return s -} - -// SetPingStatus sets the PingStatus field's value. -func (s *InstanceInformation) SetPingStatus(v string) *InstanceInformation { - s.PingStatus = &v - return s -} - -// SetPlatformName sets the PlatformName field's value. -func (s *InstanceInformation) SetPlatformName(v string) *InstanceInformation { - s.PlatformName = &v - return s -} - -// SetPlatformType sets the PlatformType field's value. -func (s *InstanceInformation) SetPlatformType(v string) *InstanceInformation { - s.PlatformType = &v - return s -} - -// SetPlatformVersion sets the PlatformVersion field's value. -func (s *InstanceInformation) SetPlatformVersion(v string) *InstanceInformation { - s.PlatformVersion = &v - return s -} - -// SetRegistrationDate sets the RegistrationDate field's value. -func (s *InstanceInformation) SetRegistrationDate(v time.Time) *InstanceInformation { - s.RegistrationDate = &v - return s -} - -// SetResourceType sets the ResourceType field's value. -func (s *InstanceInformation) SetResourceType(v string) *InstanceInformation { - s.ResourceType = &v - return s -} - -// Describes a filter for a specific list of instances. You can filter instances -// information by using tags. You specify tags by using a key-value mapping. -// -// Use this action instead of the DescribeInstanceInformationRequest$InstanceInformationFilterList -// method. The InstanceInformationFilterList method is a legacy method and does -// not support tags. -type InstanceInformationFilter struct { - _ struct{} `type:"structure"` - - // The name of the filter. - // - // Key is a required field - Key *string `locationName:"key" type:"string" required:"true" enum:"InstanceInformationFilterKey"` - - // The filter values. - // - // ValueSet is a required field - ValueSet []*string `locationName:"valueSet" min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s InstanceInformationFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InstanceInformationFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *InstanceInformationFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "InstanceInformationFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.ValueSet == nil { - invalidParams.Add(request.NewErrParamRequired("ValueSet")) - } - if s.ValueSet != nil && len(s.ValueSet) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ValueSet", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *InstanceInformationFilter) SetKey(v string) *InstanceInformationFilter { - s.Key = &v - return s -} - -// SetValueSet sets the ValueSet field's value. -func (s *InstanceInformationFilter) SetValueSet(v []*string) *InstanceInformationFilter { - s.ValueSet = v - return s -} - -// The filters to describe or get information about your managed instances. -type InstanceInformationStringFilter struct { - _ struct{} `type:"structure"` - - // The filter key name to describe your instances. For example: - // - // "InstanceIds"|"AgentVersion"|"PingStatus"|"PlatformTypes"|"ActivationIds"|"IamRole"|"ResourceType"|"AssociationStatus"|"Tag - // Key" - // - // Tag key is not a valid filter. You must specify either tag-key or tag:keyname - // and a string. Here are some valid examples: tag-key, tag:123, tag:al!, tag:Windows. - // Here are some invalid examples: tag-keys, Tag Key, tag:, tagKey, abc:keyname. - // - // Key is a required field - Key *string `min:"1" type:"string" required:"true"` - - // The filter values. - // - // Values is a required field - Values []*string `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s InstanceInformationStringFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InstanceInformationStringFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *InstanceInformationStringFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "InstanceInformationStringFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Key", 1)) - } - if s.Values == nil { - invalidParams.Add(request.NewErrParamRequired("Values")) - } - if s.Values != nil && len(s.Values) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Values", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *InstanceInformationStringFilter) SetKey(v string) *InstanceInformationStringFilter { - s.Key = &v - return s -} - -// SetValues sets the Values field's value. -func (s *InstanceInformationStringFilter) SetValues(v []*string) *InstanceInformationStringFilter { - s.Values = v - return s -} - -// Defines the high-level patch compliance state for a managed instance, providing -// information about the number of installed, missing, not applicable, and failed -// patches along with metadata about the operation when this information was -// gathered for the instance. -type InstancePatchState struct { - _ struct{} `type:"structure"` - - // The ID of the patch baseline used to patch the instance. - // - // BaselineId is a required field - BaselineId *string `min:"20" type:"string" required:"true"` - - // The number of patches from the patch baseline that were attempted to be installed - // during the last patching operation, but failed to install. - FailedCount *int64 `type:"integer"` - - // An https URL or an Amazon S3 path-style URL to a list of patches to be installed. - // This patch installation list, which you maintain in an S3 bucket in YAML - // format and specify in the SSM document AWS-RunPatchBaseline, overrides the - // patches specified by the default patch baseline. - // - // For more information about the InstallOverrideList parameter, see About the - // SSM document AWS-RunPatchBaseline (https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-about-aws-runpatchbaseline.html) - // in the AWS Systems Manager User Guide. - InstallOverrideList *string `min:"1" type:"string"` - - // The number of patches from the patch baseline that are installed on the instance. - InstalledCount *int64 `type:"integer"` - - // The number of patches not specified in the patch baseline that are installed - // on the instance. - InstalledOtherCount *int64 `type:"integer"` - - // The number of patches installed by Patch Manager since the last time the - // instance was rebooted. - InstalledPendingRebootCount *int64 `type:"integer"` - - // The number of patches installed on an instance that are specified in a RejectedPatches - // list. Patches with a status of InstalledRejected were typically installed - // before they were added to a RejectedPatches list. - // - // If ALLOW_AS_DEPENDENCY is the specified option for RejectedPatchesAction, - // the value of InstalledRejectedCount will always be 0 (zero). - InstalledRejectedCount *int64 `type:"integer"` - - // The ID of the managed instance the high-level patch compliance information - // was collected for. - // - // InstanceId is a required field - InstanceId *string `type:"string" required:"true"` - - // The time of the last attempt to patch the instance with NoReboot specified - // as the reboot option. - LastNoRebootInstallOperationTime *time.Time `type:"timestamp"` - - // The number of patches from the patch baseline that are applicable for the - // instance but aren't currently installed. - MissingCount *int64 `type:"integer"` - - // The number of patches from the patch baseline that aren't applicable for - // the instance and therefore aren't installed on the instance. This number - // may be truncated if the list of patch names is very large. The number of - // patches beyond this limit are reported in UnreportedNotApplicableCount. - NotApplicableCount *int64 `type:"integer"` - - // The type of patching operation that was performed: SCAN (assess patch compliance - // state) or INSTALL (install missing patches). - // - // Operation is a required field - Operation *string `type:"string" required:"true" enum:"PatchOperationType"` - - // The time the most recent patching operation completed on the instance. - // - // OperationEndTime is a required field - OperationEndTime *time.Time `type:"timestamp" required:"true"` - - // The time the most recent patching operation was started on the instance. - // - // OperationStartTime is a required field - OperationStartTime *time.Time `type:"timestamp" required:"true"` - - // Placeholder information. This field will always be empty in the current release - // of the service. - OwnerInformation *string `min:"1" type:"string" sensitive:"true"` - - // The name of the patch group the managed instance belongs to. - // - // PatchGroup is a required field - PatchGroup *string `min:"1" type:"string" required:"true"` - - // Indicates the reboot option specified in the patch baseline. - // - // Reboot options apply to Install operations only. Reboots are not attempted - // for Patch Manager Scan operations. - // - // * RebootIfNeeded: Patch Manager tries to reboot the instance if it installed - // any patches, or if any patches are detected with a status of InstalledPendingReboot. - // - // * NoReboot: Patch Manager attempts to install missing packages without - // trying to reboot the system. Patches installed with this option are assigned - // a status of InstalledPendingReboot. These patches might not be in effect - // until a reboot is performed. - RebootOption *string `type:"string" enum:"RebootOption"` - - // The ID of the patch baseline snapshot used during the patching operation - // when this compliance data was collected. - SnapshotId *string `min:"36" type:"string"` - - // The number of patches beyond the supported limit of NotApplicableCount that - // are not reported by name to Systems Manager Inventory. - UnreportedNotApplicableCount *int64 `type:"integer"` -} - -// String returns the string representation -func (s InstancePatchState) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InstancePatchState) GoString() string { - return s.String() -} - -// SetBaselineId sets the BaselineId field's value. -func (s *InstancePatchState) SetBaselineId(v string) *InstancePatchState { - s.BaselineId = &v - return s -} - -// SetFailedCount sets the FailedCount field's value. -func (s *InstancePatchState) SetFailedCount(v int64) *InstancePatchState { - s.FailedCount = &v - return s -} - -// SetInstallOverrideList sets the InstallOverrideList field's value. -func (s *InstancePatchState) SetInstallOverrideList(v string) *InstancePatchState { - s.InstallOverrideList = &v - return s -} - -// SetInstalledCount sets the InstalledCount field's value. -func (s *InstancePatchState) SetInstalledCount(v int64) *InstancePatchState { - s.InstalledCount = &v - return s -} - -// SetInstalledOtherCount sets the InstalledOtherCount field's value. -func (s *InstancePatchState) SetInstalledOtherCount(v int64) *InstancePatchState { - s.InstalledOtherCount = &v - return s -} - -// SetInstalledPendingRebootCount sets the InstalledPendingRebootCount field's value. -func (s *InstancePatchState) SetInstalledPendingRebootCount(v int64) *InstancePatchState { - s.InstalledPendingRebootCount = &v - return s -} - -// SetInstalledRejectedCount sets the InstalledRejectedCount field's value. -func (s *InstancePatchState) SetInstalledRejectedCount(v int64) *InstancePatchState { - s.InstalledRejectedCount = &v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *InstancePatchState) SetInstanceId(v string) *InstancePatchState { - s.InstanceId = &v - return s -} - -// SetLastNoRebootInstallOperationTime sets the LastNoRebootInstallOperationTime field's value. -func (s *InstancePatchState) SetLastNoRebootInstallOperationTime(v time.Time) *InstancePatchState { - s.LastNoRebootInstallOperationTime = &v - return s -} - -// SetMissingCount sets the MissingCount field's value. -func (s *InstancePatchState) SetMissingCount(v int64) *InstancePatchState { - s.MissingCount = &v - return s -} - -// SetNotApplicableCount sets the NotApplicableCount field's value. -func (s *InstancePatchState) SetNotApplicableCount(v int64) *InstancePatchState { - s.NotApplicableCount = &v - return s -} - -// SetOperation sets the Operation field's value. -func (s *InstancePatchState) SetOperation(v string) *InstancePatchState { - s.Operation = &v - return s -} - -// SetOperationEndTime sets the OperationEndTime field's value. -func (s *InstancePatchState) SetOperationEndTime(v time.Time) *InstancePatchState { - s.OperationEndTime = &v - return s -} - -// SetOperationStartTime sets the OperationStartTime field's value. -func (s *InstancePatchState) SetOperationStartTime(v time.Time) *InstancePatchState { - s.OperationStartTime = &v - return s -} - -// SetOwnerInformation sets the OwnerInformation field's value. -func (s *InstancePatchState) SetOwnerInformation(v string) *InstancePatchState { - s.OwnerInformation = &v - return s -} - -// SetPatchGroup sets the PatchGroup field's value. -func (s *InstancePatchState) SetPatchGroup(v string) *InstancePatchState { - s.PatchGroup = &v - return s -} - -// SetRebootOption sets the RebootOption field's value. -func (s *InstancePatchState) SetRebootOption(v string) *InstancePatchState { - s.RebootOption = &v - return s -} - -// SetSnapshotId sets the SnapshotId field's value. -func (s *InstancePatchState) SetSnapshotId(v string) *InstancePatchState { - s.SnapshotId = &v - return s -} - -// SetUnreportedNotApplicableCount sets the UnreportedNotApplicableCount field's value. -func (s *InstancePatchState) SetUnreportedNotApplicableCount(v int64) *InstancePatchState { - s.UnreportedNotApplicableCount = &v - return s -} - -// Defines a filter used in DescribeInstancePatchStatesForPatchGroup used to -// scope down the information returned by the API. -type InstancePatchStateFilter struct { - _ struct{} `type:"structure"` - - // The key for the filter. Supported values are FailedCount, InstalledCount, - // InstalledOtherCount, MissingCount and NotApplicableCount. - // - // Key is a required field - Key *string `min:"1" type:"string" required:"true"` - - // The type of comparison that should be performed for the value: Equal, NotEqual, - // LessThan or GreaterThan. - // - // Type is a required field - Type *string `type:"string" required:"true" enum:"InstancePatchStateOperatorType"` - - // The value for the filter, must be an integer greater than or equal to 0. - // - // Values is a required field - Values []*string `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s InstancePatchStateFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InstancePatchStateFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *InstancePatchStateFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "InstancePatchStateFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Key", 1)) - } - if s.Type == nil { - invalidParams.Add(request.NewErrParamRequired("Type")) - } - if s.Values == nil { - invalidParams.Add(request.NewErrParamRequired("Values")) - } - if s.Values != nil && len(s.Values) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Values", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *InstancePatchStateFilter) SetKey(v string) *InstancePatchStateFilter { - s.Key = &v - return s -} - -// SetType sets the Type field's value. -func (s *InstancePatchStateFilter) SetType(v string) *InstancePatchStateFilter { - s.Type = &v - return s -} - -// SetValues sets the Values field's value. -func (s *InstancePatchStateFilter) SetValues(v []*string) *InstancePatchStateFilter { - s.Values = v - return s -} - -// An error occurred on the server side. -type InternalServerError struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InternalServerError) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InternalServerError) GoString() string { - return s.String() -} - -func newErrorInternalServerError(v protocol.ResponseMetadata) error { - return &InternalServerError{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InternalServerError) Code() string { - return "InternalServerError" -} - -// Message returns the exception's message. -func (s *InternalServerError) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InternalServerError) OrigErr() error { - return nil -} - -func (s *InternalServerError) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InternalServerError) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InternalServerError) RequestID() string { - return s.RespMetadata.RequestID -} - -// The activation is not valid. The activation might have been deleted, or the -// ActivationId and the ActivationCode do not match. -type InvalidActivation struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidActivation) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidActivation) GoString() string { - return s.String() -} - -func newErrorInvalidActivation(v protocol.ResponseMetadata) error { - return &InvalidActivation{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidActivation) Code() string { - return "InvalidActivation" -} - -// Message returns the exception's message. -func (s *InvalidActivation) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidActivation) OrigErr() error { - return nil -} - -func (s *InvalidActivation) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidActivation) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidActivation) RequestID() string { - return s.RespMetadata.RequestID -} - -// The activation ID is not valid. Verify the you entered the correct ActivationId -// or ActivationCode and try again. -type InvalidActivationId struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidActivationId) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidActivationId) GoString() string { - return s.String() -} - -func newErrorInvalidActivationId(v protocol.ResponseMetadata) error { - return &InvalidActivationId{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidActivationId) Code() string { - return "InvalidActivationId" -} - -// Message returns the exception's message. -func (s *InvalidActivationId) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidActivationId) OrigErr() error { - return nil -} - -func (s *InvalidActivationId) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidActivationId) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidActivationId) RequestID() string { - return s.RespMetadata.RequestID -} - -// The specified aggregator is not valid for inventory groups. Verify that the -// aggregator uses a valid inventory type such as AWS:Application or AWS:InstanceInformation. -type InvalidAggregatorException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidAggregatorException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidAggregatorException) GoString() string { - return s.String() -} - -func newErrorInvalidAggregatorException(v protocol.ResponseMetadata) error { - return &InvalidAggregatorException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidAggregatorException) Code() string { - return "InvalidAggregatorException" -} - -// Message returns the exception's message. -func (s *InvalidAggregatorException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidAggregatorException) OrigErr() error { - return nil -} - -func (s *InvalidAggregatorException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidAggregatorException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidAggregatorException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The request does not meet the regular expression requirement. -type InvalidAllowedPatternException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - // The request does not meet the regular expression requirement. - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InvalidAllowedPatternException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidAllowedPatternException) GoString() string { - return s.String() -} - -func newErrorInvalidAllowedPatternException(v protocol.ResponseMetadata) error { - return &InvalidAllowedPatternException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidAllowedPatternException) Code() string { - return "InvalidAllowedPatternException" -} - -// Message returns the exception's message. -func (s *InvalidAllowedPatternException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidAllowedPatternException) OrigErr() error { - return nil -} - -func (s *InvalidAllowedPatternException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidAllowedPatternException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidAllowedPatternException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The association is not valid or does not exist. -type InvalidAssociation struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidAssociation) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidAssociation) GoString() string { - return s.String() -} - -func newErrorInvalidAssociation(v protocol.ResponseMetadata) error { - return &InvalidAssociation{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidAssociation) Code() string { - return "InvalidAssociation" -} - -// Message returns the exception's message. -func (s *InvalidAssociation) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidAssociation) OrigErr() error { - return nil -} - -func (s *InvalidAssociation) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidAssociation) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidAssociation) RequestID() string { - return s.RespMetadata.RequestID -} - -// The version you specified is not valid. Use ListAssociationVersions to view -// all versions of an association according to the association ID. Or, use the -// $LATEST parameter to view the latest version of the association. -type InvalidAssociationVersion struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidAssociationVersion) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidAssociationVersion) GoString() string { - return s.String() -} - -func newErrorInvalidAssociationVersion(v protocol.ResponseMetadata) error { - return &InvalidAssociationVersion{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidAssociationVersion) Code() string { - return "InvalidAssociationVersion" -} - -// Message returns the exception's message. -func (s *InvalidAssociationVersion) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidAssociationVersion) OrigErr() error { - return nil -} - -func (s *InvalidAssociationVersion) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidAssociationVersion) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidAssociationVersion) RequestID() string { - return s.RespMetadata.RequestID -} - -// The supplied parameters for invoking the specified Automation document are -// incorrect. For example, they may not match the set of parameters permitted -// for the specified Automation document. -type InvalidAutomationExecutionParametersException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidAutomationExecutionParametersException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidAutomationExecutionParametersException) GoString() string { - return s.String() -} - -func newErrorInvalidAutomationExecutionParametersException(v protocol.ResponseMetadata) error { - return &InvalidAutomationExecutionParametersException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidAutomationExecutionParametersException) Code() string { - return "InvalidAutomationExecutionParametersException" -} - -// Message returns the exception's message. -func (s *InvalidAutomationExecutionParametersException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidAutomationExecutionParametersException) OrigErr() error { - return nil -} - -func (s *InvalidAutomationExecutionParametersException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidAutomationExecutionParametersException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidAutomationExecutionParametersException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The signal is not valid for the current Automation execution. -type InvalidAutomationSignalException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidAutomationSignalException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidAutomationSignalException) GoString() string { - return s.String() -} - -func newErrorInvalidAutomationSignalException(v protocol.ResponseMetadata) error { - return &InvalidAutomationSignalException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidAutomationSignalException) Code() string { - return "InvalidAutomationSignalException" -} - -// Message returns the exception's message. -func (s *InvalidAutomationSignalException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidAutomationSignalException) OrigErr() error { - return nil -} - -func (s *InvalidAutomationSignalException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidAutomationSignalException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidAutomationSignalException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The specified update status operation is not valid. -type InvalidAutomationStatusUpdateException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidAutomationStatusUpdateException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidAutomationStatusUpdateException) GoString() string { - return s.String() -} - -func newErrorInvalidAutomationStatusUpdateException(v protocol.ResponseMetadata) error { - return &InvalidAutomationStatusUpdateException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidAutomationStatusUpdateException) Code() string { - return "InvalidAutomationStatusUpdateException" -} - -// Message returns the exception's message. -func (s *InvalidAutomationStatusUpdateException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidAutomationStatusUpdateException) OrigErr() error { - return nil -} - -func (s *InvalidAutomationStatusUpdateException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidAutomationStatusUpdateException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidAutomationStatusUpdateException) RequestID() string { - return s.RespMetadata.RequestID -} - -type InvalidCommandId struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InvalidCommandId) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidCommandId) GoString() string { - return s.String() -} - -func newErrorInvalidCommandId(v protocol.ResponseMetadata) error { - return &InvalidCommandId{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidCommandId) Code() string { - return "InvalidCommandId" -} - -// Message returns the exception's message. -func (s *InvalidCommandId) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidCommandId) OrigErr() error { - return nil -} - -func (s *InvalidCommandId) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidCommandId) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidCommandId) RequestID() string { - return s.RespMetadata.RequestID -} - -// One or more of the parameters specified for the delete operation is not valid. -// Verify all parameters and try again. -type InvalidDeleteInventoryParametersException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidDeleteInventoryParametersException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidDeleteInventoryParametersException) GoString() string { - return s.String() -} - -func newErrorInvalidDeleteInventoryParametersException(v protocol.ResponseMetadata) error { - return &InvalidDeleteInventoryParametersException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidDeleteInventoryParametersException) Code() string { - return "InvalidDeleteInventoryParametersException" -} - -// Message returns the exception's message. -func (s *InvalidDeleteInventoryParametersException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidDeleteInventoryParametersException) OrigErr() error { - return nil -} - -func (s *InvalidDeleteInventoryParametersException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidDeleteInventoryParametersException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidDeleteInventoryParametersException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The ID specified for the delete operation does not exist or is not valid. -// Verify the ID and try again. -type InvalidDeletionIdException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidDeletionIdException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidDeletionIdException) GoString() string { - return s.String() -} - -func newErrorInvalidDeletionIdException(v protocol.ResponseMetadata) error { - return &InvalidDeletionIdException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidDeletionIdException) Code() string { - return "InvalidDeletionIdException" -} - -// Message returns the exception's message. -func (s *InvalidDeletionIdException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidDeletionIdException) OrigErr() error { - return nil -} - -func (s *InvalidDeletionIdException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidDeletionIdException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidDeletionIdException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The specified document does not exist. -type InvalidDocument struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - // The document does not exist or the document is not available to the user. - // This exception can be issued by CreateAssociation, CreateAssociationBatch, - // DeleteAssociation, DeleteDocument, DescribeAssociation, DescribeDocument, - // GetDocument, SendCommand, or UpdateAssociationStatus. - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidDocument) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidDocument) GoString() string { - return s.String() -} - -func newErrorInvalidDocument(v protocol.ResponseMetadata) error { - return &InvalidDocument{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidDocument) Code() string { - return "InvalidDocument" -} - -// Message returns the exception's message. -func (s *InvalidDocument) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidDocument) OrigErr() error { - return nil -} - -func (s *InvalidDocument) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidDocument) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidDocument) RequestID() string { - return s.RespMetadata.RequestID -} - -// The content for the document is not valid. -type InvalidDocumentContent struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - // A description of the validation error. - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidDocumentContent) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidDocumentContent) GoString() string { - return s.String() -} - -func newErrorInvalidDocumentContent(v protocol.ResponseMetadata) error { - return &InvalidDocumentContent{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidDocumentContent) Code() string { - return "InvalidDocumentContent" -} - -// Message returns the exception's message. -func (s *InvalidDocumentContent) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidDocumentContent) OrigErr() error { - return nil -} - -func (s *InvalidDocumentContent) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidDocumentContent) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidDocumentContent) RequestID() string { - return s.RespMetadata.RequestID -} - -// You attempted to delete a document while it is still shared. You must stop -// sharing the document before you can delete it. -type InvalidDocumentOperation struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidDocumentOperation) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidDocumentOperation) GoString() string { - return s.String() -} - -func newErrorInvalidDocumentOperation(v protocol.ResponseMetadata) error { - return &InvalidDocumentOperation{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidDocumentOperation) Code() string { - return "InvalidDocumentOperation" -} - -// Message returns the exception's message. -func (s *InvalidDocumentOperation) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidDocumentOperation) OrigErr() error { - return nil -} - -func (s *InvalidDocumentOperation) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidDocumentOperation) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidDocumentOperation) RequestID() string { - return s.RespMetadata.RequestID -} - -// The version of the document schema is not supported. -type InvalidDocumentSchemaVersion struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidDocumentSchemaVersion) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidDocumentSchemaVersion) GoString() string { - return s.String() -} - -func newErrorInvalidDocumentSchemaVersion(v protocol.ResponseMetadata) error { - return &InvalidDocumentSchemaVersion{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidDocumentSchemaVersion) Code() string { - return "InvalidDocumentSchemaVersion" -} - -// Message returns the exception's message. -func (s *InvalidDocumentSchemaVersion) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidDocumentSchemaVersion) OrigErr() error { - return nil -} - -func (s *InvalidDocumentSchemaVersion) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidDocumentSchemaVersion) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidDocumentSchemaVersion) RequestID() string { - return s.RespMetadata.RequestID -} - -// The document type is not valid. Valid document types are described in the -// DocumentType property. -type InvalidDocumentType struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidDocumentType) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidDocumentType) GoString() string { - return s.String() -} - -func newErrorInvalidDocumentType(v protocol.ResponseMetadata) error { - return &InvalidDocumentType{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidDocumentType) Code() string { - return "InvalidDocumentType" -} - -// Message returns the exception's message. -func (s *InvalidDocumentType) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidDocumentType) OrigErr() error { - return nil -} - -func (s *InvalidDocumentType) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidDocumentType) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidDocumentType) RequestID() string { - return s.RespMetadata.RequestID -} - -// The document version is not valid or does not exist. -type InvalidDocumentVersion struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidDocumentVersion) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidDocumentVersion) GoString() string { - return s.String() -} - -func newErrorInvalidDocumentVersion(v protocol.ResponseMetadata) error { - return &InvalidDocumentVersion{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidDocumentVersion) Code() string { - return "InvalidDocumentVersion" -} - -// Message returns the exception's message. -func (s *InvalidDocumentVersion) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidDocumentVersion) OrigErr() error { - return nil -} - -func (s *InvalidDocumentVersion) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidDocumentVersion) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidDocumentVersion) RequestID() string { - return s.RespMetadata.RequestID -} - -// The filter name is not valid. Verify the you entered the correct name and -// try again. -type InvalidFilter struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidFilter) GoString() string { - return s.String() -} - -func newErrorInvalidFilter(v protocol.ResponseMetadata) error { - return &InvalidFilter{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidFilter) Code() string { - return "InvalidFilter" -} - -// Message returns the exception's message. -func (s *InvalidFilter) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidFilter) OrigErr() error { - return nil -} - -func (s *InvalidFilter) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidFilter) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidFilter) RequestID() string { - return s.RespMetadata.RequestID -} - -// The specified key is not valid. -type InvalidFilterKey struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InvalidFilterKey) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidFilterKey) GoString() string { - return s.String() -} - -func newErrorInvalidFilterKey(v protocol.ResponseMetadata) error { - return &InvalidFilterKey{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidFilterKey) Code() string { - return "InvalidFilterKey" -} - -// Message returns the exception's message. -func (s *InvalidFilterKey) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidFilterKey) OrigErr() error { - return nil -} - -func (s *InvalidFilterKey) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidFilterKey) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidFilterKey) RequestID() string { - return s.RespMetadata.RequestID -} - -// The specified filter option is not valid. Valid options are Equals and BeginsWith. -// For Path filter, valid options are Recursive and OneLevel. -type InvalidFilterOption struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - // The specified filter option is not valid. Valid options are Equals and BeginsWith. - // For Path filter, valid options are Recursive and OneLevel. - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InvalidFilterOption) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidFilterOption) GoString() string { - return s.String() -} - -func newErrorInvalidFilterOption(v protocol.ResponseMetadata) error { - return &InvalidFilterOption{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidFilterOption) Code() string { - return "InvalidFilterOption" -} - -// Message returns the exception's message. -func (s *InvalidFilterOption) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidFilterOption) OrigErr() error { - return nil -} - -func (s *InvalidFilterOption) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidFilterOption) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidFilterOption) RequestID() string { - return s.RespMetadata.RequestID -} - -// The filter value is not valid. Verify the value and try again. -type InvalidFilterValue struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidFilterValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidFilterValue) GoString() string { - return s.String() -} - -func newErrorInvalidFilterValue(v protocol.ResponseMetadata) error { - return &InvalidFilterValue{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidFilterValue) Code() string { - return "InvalidFilterValue" -} - -// Message returns the exception's message. -func (s *InvalidFilterValue) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidFilterValue) OrigErr() error { - return nil -} - -func (s *InvalidFilterValue) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidFilterValue) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidFilterValue) RequestID() string { - return s.RespMetadata.RequestID -} - -// The following problems can cause this exception: -// -// You do not have permission to access the instance. -// -// SSM Agent is not running. Verify that SSM Agent is running. -// -// SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. -// -// The instance is not in valid state. Valid states are: Running, Pending, Stopped, -// Stopping. Invalid states are: Shutting-down and Terminated. -type InvalidInstanceId struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidInstanceId) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidInstanceId) GoString() string { - return s.String() -} - -func newErrorInvalidInstanceId(v protocol.ResponseMetadata) error { - return &InvalidInstanceId{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidInstanceId) Code() string { - return "InvalidInstanceId" -} - -// Message returns the exception's message. -func (s *InvalidInstanceId) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidInstanceId) OrigErr() error { - return nil -} - -func (s *InvalidInstanceId) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidInstanceId) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidInstanceId) RequestID() string { - return s.RespMetadata.RequestID -} - -// The specified filter value is not valid. -type InvalidInstanceInformationFilterValue struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InvalidInstanceInformationFilterValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidInstanceInformationFilterValue) GoString() string { - return s.String() -} - -func newErrorInvalidInstanceInformationFilterValue(v protocol.ResponseMetadata) error { - return &InvalidInstanceInformationFilterValue{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidInstanceInformationFilterValue) Code() string { - return "InvalidInstanceInformationFilterValue" -} - -// Message returns the exception's message. -func (s *InvalidInstanceInformationFilterValue) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidInstanceInformationFilterValue) OrigErr() error { - return nil -} - -func (s *InvalidInstanceInformationFilterValue) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidInstanceInformationFilterValue) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidInstanceInformationFilterValue) RequestID() string { - return s.RespMetadata.RequestID -} - -// The specified inventory group is not valid. -type InvalidInventoryGroupException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidInventoryGroupException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidInventoryGroupException) GoString() string { - return s.String() -} - -func newErrorInvalidInventoryGroupException(v protocol.ResponseMetadata) error { - return &InvalidInventoryGroupException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidInventoryGroupException) Code() string { - return "InvalidInventoryGroupException" -} - -// Message returns the exception's message. -func (s *InvalidInventoryGroupException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidInventoryGroupException) OrigErr() error { - return nil -} - -func (s *InvalidInventoryGroupException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidInventoryGroupException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidInventoryGroupException) RequestID() string { - return s.RespMetadata.RequestID -} - -// You specified invalid keys or values in the Context attribute for InventoryItem. -// Verify the keys and values, and try again. -type InvalidInventoryItemContextException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidInventoryItemContextException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidInventoryItemContextException) GoString() string { - return s.String() -} - -func newErrorInvalidInventoryItemContextException(v protocol.ResponseMetadata) error { - return &InvalidInventoryItemContextException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidInventoryItemContextException) Code() string { - return "InvalidInventoryItemContextException" -} - -// Message returns the exception's message. -func (s *InvalidInventoryItemContextException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidInventoryItemContextException) OrigErr() error { - return nil -} - -func (s *InvalidInventoryItemContextException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidInventoryItemContextException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidInventoryItemContextException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The request is not valid. -type InvalidInventoryRequestException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidInventoryRequestException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidInventoryRequestException) GoString() string { - return s.String() -} - -func newErrorInvalidInventoryRequestException(v protocol.ResponseMetadata) error { - return &InvalidInventoryRequestException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidInventoryRequestException) Code() string { - return "InvalidInventoryRequestException" -} - -// Message returns the exception's message. -func (s *InvalidInventoryRequestException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidInventoryRequestException) OrigErr() error { - return nil -} - -func (s *InvalidInventoryRequestException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidInventoryRequestException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidInventoryRequestException) RequestID() string { - return s.RespMetadata.RequestID -} - -// One or more content items is not valid. -type InvalidItemContentException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` - - TypeName *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s InvalidItemContentException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidItemContentException) GoString() string { - return s.String() -} - -func newErrorInvalidItemContentException(v protocol.ResponseMetadata) error { - return &InvalidItemContentException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidItemContentException) Code() string { - return "InvalidItemContentException" -} - -// Message returns the exception's message. -func (s *InvalidItemContentException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidItemContentException) OrigErr() error { - return nil -} - -func (s *InvalidItemContentException) Error() string { - return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidItemContentException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidItemContentException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The query key ID is not valid. -type InvalidKeyId struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InvalidKeyId) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidKeyId) GoString() string { - return s.String() -} - -func newErrorInvalidKeyId(v protocol.ResponseMetadata) error { - return &InvalidKeyId{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidKeyId) Code() string { - return "InvalidKeyId" -} - -// Message returns the exception's message. -func (s *InvalidKeyId) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidKeyId) OrigErr() error { - return nil -} - -func (s *InvalidKeyId) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidKeyId) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidKeyId) RequestID() string { - return s.RespMetadata.RequestID -} - -// The specified token is not valid. -type InvalidNextToken struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidNextToken) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidNextToken) GoString() string { - return s.String() -} - -func newErrorInvalidNextToken(v protocol.ResponseMetadata) error { - return &InvalidNextToken{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidNextToken) Code() string { - return "InvalidNextToken" -} - -// Message returns the exception's message. -func (s *InvalidNextToken) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidNextToken) OrigErr() error { - return nil -} - -func (s *InvalidNextToken) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidNextToken) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidNextToken) RequestID() string { - return s.RespMetadata.RequestID -} - -// One or more configuration items is not valid. Verify that a valid Amazon -// Resource Name (ARN) was provided for an Amazon SNS topic. -type InvalidNotificationConfig struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidNotificationConfig) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidNotificationConfig) GoString() string { - return s.String() -} - -func newErrorInvalidNotificationConfig(v protocol.ResponseMetadata) error { - return &InvalidNotificationConfig{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidNotificationConfig) Code() string { - return "InvalidNotificationConfig" -} - -// Message returns the exception's message. -func (s *InvalidNotificationConfig) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidNotificationConfig) OrigErr() error { - return nil -} - -func (s *InvalidNotificationConfig) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidNotificationConfig) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidNotificationConfig) RequestID() string { - return s.RespMetadata.RequestID -} - -// The delete inventory option specified is not valid. Verify the option and -// try again. -type InvalidOptionException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidOptionException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidOptionException) GoString() string { - return s.String() -} - -func newErrorInvalidOptionException(v protocol.ResponseMetadata) error { - return &InvalidOptionException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidOptionException) Code() string { - return "InvalidOptionException" -} - -// Message returns the exception's message. -func (s *InvalidOptionException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidOptionException) OrigErr() error { - return nil -} - -func (s *InvalidOptionException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidOptionException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidOptionException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The S3 bucket does not exist. -type InvalidOutputFolder struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InvalidOutputFolder) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidOutputFolder) GoString() string { - return s.String() -} - -func newErrorInvalidOutputFolder(v protocol.ResponseMetadata) error { - return &InvalidOutputFolder{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidOutputFolder) Code() string { - return "InvalidOutputFolder" -} - -// Message returns the exception's message. -func (s *InvalidOutputFolder) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidOutputFolder) OrigErr() error { - return nil -} - -func (s *InvalidOutputFolder) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidOutputFolder) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidOutputFolder) RequestID() string { - return s.RespMetadata.RequestID -} - -// The output location is not valid or does not exist. -type InvalidOutputLocation struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InvalidOutputLocation) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidOutputLocation) GoString() string { - return s.String() -} - -func newErrorInvalidOutputLocation(v protocol.ResponseMetadata) error { - return &InvalidOutputLocation{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidOutputLocation) Code() string { - return "InvalidOutputLocation" -} - -// Message returns the exception's message. -func (s *InvalidOutputLocation) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidOutputLocation) OrigErr() error { - return nil -} - -func (s *InvalidOutputLocation) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidOutputLocation) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidOutputLocation) RequestID() string { - return s.RespMetadata.RequestID -} - -// You must specify values for all required parameters in the Systems Manager -// document. You can only supply values to parameters defined in the Systems -// Manager document. -type InvalidParameters struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidParameters) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidParameters) GoString() string { - return s.String() -} - -func newErrorInvalidParameters(v protocol.ResponseMetadata) error { - return &InvalidParameters{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidParameters) Code() string { - return "InvalidParameters" -} - -// Message returns the exception's message. -func (s *InvalidParameters) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidParameters) OrigErr() error { - return nil -} - -func (s *InvalidParameters) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidParameters) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidParameters) RequestID() string { - return s.RespMetadata.RequestID -} - -// The permission type is not supported. Share is the only supported permission -// type. -type InvalidPermissionType struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidPermissionType) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidPermissionType) GoString() string { - return s.String() -} - -func newErrorInvalidPermissionType(v protocol.ResponseMetadata) error { - return &InvalidPermissionType{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidPermissionType) Code() string { - return "InvalidPermissionType" -} - -// Message returns the exception's message. -func (s *InvalidPermissionType) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidPermissionType) OrigErr() error { - return nil -} - -func (s *InvalidPermissionType) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidPermissionType) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidPermissionType) RequestID() string { - return s.RespMetadata.RequestID -} - -// The plugin name is not valid. -type InvalidPluginName struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InvalidPluginName) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidPluginName) GoString() string { - return s.String() -} - -func newErrorInvalidPluginName(v protocol.ResponseMetadata) error { - return &InvalidPluginName{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidPluginName) Code() string { - return "InvalidPluginName" -} - -// Message returns the exception's message. -func (s *InvalidPluginName) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidPluginName) OrigErr() error { - return nil -} - -func (s *InvalidPluginName) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidPluginName) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidPluginName) RequestID() string { - return s.RespMetadata.RequestID -} - -// A policy attribute or its value is invalid. -type InvalidPolicyAttributeException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InvalidPolicyAttributeException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidPolicyAttributeException) GoString() string { - return s.String() -} - -func newErrorInvalidPolicyAttributeException(v protocol.ResponseMetadata) error { - return &InvalidPolicyAttributeException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidPolicyAttributeException) Code() string { - return "InvalidPolicyAttributeException" -} - -// Message returns the exception's message. -func (s *InvalidPolicyAttributeException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidPolicyAttributeException) OrigErr() error { - return nil -} - -func (s *InvalidPolicyAttributeException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidPolicyAttributeException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidPolicyAttributeException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The policy type is not supported. Parameter Store supports the following -// policy types: Expiration, ExpirationNotification, and NoChangeNotification. -type InvalidPolicyTypeException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InvalidPolicyTypeException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidPolicyTypeException) GoString() string { - return s.String() -} - -func newErrorInvalidPolicyTypeException(v protocol.ResponseMetadata) error { - return &InvalidPolicyTypeException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidPolicyTypeException) Code() string { - return "InvalidPolicyTypeException" -} - -// Message returns the exception's message. -func (s *InvalidPolicyTypeException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidPolicyTypeException) OrigErr() error { - return nil -} - -func (s *InvalidPolicyTypeException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidPolicyTypeException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidPolicyTypeException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The resource ID is not valid. Verify that you entered the correct ID and -// try again. -type InvalidResourceId struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InvalidResourceId) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidResourceId) GoString() string { - return s.String() -} - -func newErrorInvalidResourceId(v protocol.ResponseMetadata) error { - return &InvalidResourceId{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidResourceId) Code() string { - return "InvalidResourceId" -} - -// Message returns the exception's message. -func (s *InvalidResourceId) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidResourceId) OrigErr() error { - return nil -} - -func (s *InvalidResourceId) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidResourceId) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidResourceId) RequestID() string { - return s.RespMetadata.RequestID -} - -// The resource type is not valid. For example, if you are attempting to tag -// an instance, the instance must be a registered, managed instance. -type InvalidResourceType struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InvalidResourceType) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidResourceType) GoString() string { - return s.String() -} - -func newErrorInvalidResourceType(v protocol.ResponseMetadata) error { - return &InvalidResourceType{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidResourceType) Code() string { - return "InvalidResourceType" -} - -// Message returns the exception's message. -func (s *InvalidResourceType) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidResourceType) OrigErr() error { - return nil -} - -func (s *InvalidResourceType) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidResourceType) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidResourceType) RequestID() string { - return s.RespMetadata.RequestID -} - -// The specified inventory item result attribute is not valid. -type InvalidResultAttributeException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidResultAttributeException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidResultAttributeException) GoString() string { - return s.String() -} - -func newErrorInvalidResultAttributeException(v protocol.ResponseMetadata) error { - return &InvalidResultAttributeException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidResultAttributeException) Code() string { - return "InvalidResultAttributeException" -} - -// Message returns the exception's message. -func (s *InvalidResultAttributeException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidResultAttributeException) OrigErr() error { - return nil -} - -func (s *InvalidResultAttributeException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidResultAttributeException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidResultAttributeException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The role name can't contain invalid characters. Also verify that you specified -// an IAM role for notifications that includes the required trust policy. For -// information about configuring the IAM role for Run Command notifications, -// see Configuring Amazon SNS Notifications for Run Command (https://docs.aws.amazon.com/systems-manager/latest/userguide/rc-sns-notifications.html) -// in the AWS Systems Manager User Guide. -type InvalidRole struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidRole) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidRole) GoString() string { - return s.String() -} - -func newErrorInvalidRole(v protocol.ResponseMetadata) error { - return &InvalidRole{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidRole) Code() string { - return "InvalidRole" -} - -// Message returns the exception's message. -func (s *InvalidRole) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidRole) OrigErr() error { - return nil -} - -func (s *InvalidRole) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidRole) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidRole) RequestID() string { - return s.RespMetadata.RequestID -} - -// The schedule is invalid. Verify your cron or rate expression and try again. -type InvalidSchedule struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidSchedule) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidSchedule) GoString() string { - return s.String() -} - -func newErrorInvalidSchedule(v protocol.ResponseMetadata) error { - return &InvalidSchedule{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidSchedule) Code() string { - return "InvalidSchedule" -} - -// Message returns the exception's message. -func (s *InvalidSchedule) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidSchedule) OrigErr() error { - return nil -} - -func (s *InvalidSchedule) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidSchedule) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidSchedule) RequestID() string { - return s.RespMetadata.RequestID -} - -// The target is not valid or does not exist. It might not be configured for -// Systems Manager or you might not have permission to perform the operation. -type InvalidTarget struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidTarget) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidTarget) GoString() string { - return s.String() -} - -func newErrorInvalidTarget(v protocol.ResponseMetadata) error { - return &InvalidTarget{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidTarget) Code() string { - return "InvalidTarget" -} - -// Message returns the exception's message. -func (s *InvalidTarget) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidTarget) OrigErr() error { - return nil -} - -func (s *InvalidTarget) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidTarget) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidTarget) RequestID() string { - return s.RespMetadata.RequestID -} - -// The parameter type name is not valid. -type InvalidTypeNameException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidTypeNameException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidTypeNameException) GoString() string { - return s.String() -} - -func newErrorInvalidTypeNameException(v protocol.ResponseMetadata) error { - return &InvalidTypeNameException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidTypeNameException) Code() string { - return "InvalidTypeNameException" -} - -// Message returns the exception's message. -func (s *InvalidTypeNameException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidTypeNameException) OrigErr() error { - return nil -} - -func (s *InvalidTypeNameException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidTypeNameException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidTypeNameException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The update is not valid. -type InvalidUpdate struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s InvalidUpdate) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidUpdate) GoString() string { - return s.String() -} - -func newErrorInvalidUpdate(v protocol.ResponseMetadata) error { - return &InvalidUpdate{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidUpdate) Code() string { - return "InvalidUpdate" -} - -// Message returns the exception's message. -func (s *InvalidUpdate) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidUpdate) OrigErr() error { - return nil -} - -func (s *InvalidUpdate) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidUpdate) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidUpdate) RequestID() string { - return s.RespMetadata.RequestID -} - -// Specifies the inventory type and attribute for the aggregation execution. -type InventoryAggregator struct { - _ struct{} `type:"structure"` - - // Nested aggregators to further refine aggregation for an inventory type. - Aggregators []*InventoryAggregator `min:"1" type:"list"` - - // The inventory type and attribute name for aggregation. - Expression *string `min:"1" type:"string"` - - // A user-defined set of one or more filters on which to aggregate inventory - // data. Groups return a count of resources that match and don't match the specified - // criteria. - Groups []*InventoryGroup `min:"1" type:"list"` -} - -// String returns the string representation -func (s InventoryAggregator) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InventoryAggregator) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *InventoryAggregator) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "InventoryAggregator"} - if s.Aggregators != nil && len(s.Aggregators) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Aggregators", 1)) - } - if s.Expression != nil && len(*s.Expression) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Expression", 1)) - } - if s.Groups != nil && len(s.Groups) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Groups", 1)) - } - if s.Aggregators != nil { - for i, v := range s.Aggregators { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Aggregators", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Groups != nil { - for i, v := range s.Groups { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Groups", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAggregators sets the Aggregators field's value. -func (s *InventoryAggregator) SetAggregators(v []*InventoryAggregator) *InventoryAggregator { - s.Aggregators = v - return s -} - -// SetExpression sets the Expression field's value. -func (s *InventoryAggregator) SetExpression(v string) *InventoryAggregator { - s.Expression = &v - return s -} - -// SetGroups sets the Groups field's value. -func (s *InventoryAggregator) SetGroups(v []*InventoryGroup) *InventoryAggregator { - s.Groups = v - return s -} - -// Status information returned by the DeleteInventory action. -type InventoryDeletionStatusItem struct { - _ struct{} `type:"structure"` - - // The deletion ID returned by the DeleteInventory action. - DeletionId *string `type:"string"` - - // The UTC timestamp when the delete operation started. - DeletionStartTime *time.Time `type:"timestamp"` - - // Information about the delete operation. For more information about this summary, - // see Understanding the delete inventory summary (https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-custom.html#sysman-inventory-delete) - // in the AWS Systems Manager User Guide. - DeletionSummary *InventoryDeletionSummary `type:"structure"` - - // The status of the operation. Possible values are InProgress and Complete. - LastStatus *string `type:"string" enum:"InventoryDeletionStatus"` - - // Information about the status. - LastStatusMessage *string `type:"string"` - - // The UTC timestamp of when the last status report. - LastStatusUpdateTime *time.Time `type:"timestamp"` - - // The name of the inventory data type. - TypeName *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s InventoryDeletionStatusItem) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InventoryDeletionStatusItem) GoString() string { - return s.String() -} - -// SetDeletionId sets the DeletionId field's value. -func (s *InventoryDeletionStatusItem) SetDeletionId(v string) *InventoryDeletionStatusItem { - s.DeletionId = &v - return s -} - -// SetDeletionStartTime sets the DeletionStartTime field's value. -func (s *InventoryDeletionStatusItem) SetDeletionStartTime(v time.Time) *InventoryDeletionStatusItem { - s.DeletionStartTime = &v - return s -} - -// SetDeletionSummary sets the DeletionSummary field's value. -func (s *InventoryDeletionStatusItem) SetDeletionSummary(v *InventoryDeletionSummary) *InventoryDeletionStatusItem { - s.DeletionSummary = v - return s -} - -// SetLastStatus sets the LastStatus field's value. -func (s *InventoryDeletionStatusItem) SetLastStatus(v string) *InventoryDeletionStatusItem { - s.LastStatus = &v - return s -} - -// SetLastStatusMessage sets the LastStatusMessage field's value. -func (s *InventoryDeletionStatusItem) SetLastStatusMessage(v string) *InventoryDeletionStatusItem { - s.LastStatusMessage = &v - return s -} - -// SetLastStatusUpdateTime sets the LastStatusUpdateTime field's value. -func (s *InventoryDeletionStatusItem) SetLastStatusUpdateTime(v time.Time) *InventoryDeletionStatusItem { - s.LastStatusUpdateTime = &v - return s -} - -// SetTypeName sets the TypeName field's value. -func (s *InventoryDeletionStatusItem) SetTypeName(v string) *InventoryDeletionStatusItem { - s.TypeName = &v - return s -} - -// Information about the delete operation. -type InventoryDeletionSummary struct { - _ struct{} `type:"structure"` - - // Remaining number of items to delete. - RemainingCount *int64 `type:"integer"` - - // A list of counts and versions for deleted items. - SummaryItems []*InventoryDeletionSummaryItem `type:"list"` - - // The total number of items to delete. This count does not change during the - // delete operation. - TotalCount *int64 `type:"integer"` -} - -// String returns the string representation -func (s InventoryDeletionSummary) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InventoryDeletionSummary) GoString() string { - return s.String() -} - -// SetRemainingCount sets the RemainingCount field's value. -func (s *InventoryDeletionSummary) SetRemainingCount(v int64) *InventoryDeletionSummary { - s.RemainingCount = &v - return s -} - -// SetSummaryItems sets the SummaryItems field's value. -func (s *InventoryDeletionSummary) SetSummaryItems(v []*InventoryDeletionSummaryItem) *InventoryDeletionSummary { - s.SummaryItems = v - return s -} - -// SetTotalCount sets the TotalCount field's value. -func (s *InventoryDeletionSummary) SetTotalCount(v int64) *InventoryDeletionSummary { - s.TotalCount = &v - return s -} - -// Either a count, remaining count, or a version number in a delete inventory -// summary. -type InventoryDeletionSummaryItem struct { - _ struct{} `type:"structure"` - - // A count of the number of deleted items. - Count *int64 `type:"integer"` - - // The remaining number of items to delete. - RemainingCount *int64 `type:"integer"` - - // The inventory type version. - Version *string `type:"string"` -} - -// String returns the string representation -func (s InventoryDeletionSummaryItem) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InventoryDeletionSummaryItem) GoString() string { - return s.String() -} - -// SetCount sets the Count field's value. -func (s *InventoryDeletionSummaryItem) SetCount(v int64) *InventoryDeletionSummaryItem { - s.Count = &v - return s -} - -// SetRemainingCount sets the RemainingCount field's value. -func (s *InventoryDeletionSummaryItem) SetRemainingCount(v int64) *InventoryDeletionSummaryItem { - s.RemainingCount = &v - return s -} - -// SetVersion sets the Version field's value. -func (s *InventoryDeletionSummaryItem) SetVersion(v string) *InventoryDeletionSummaryItem { - s.Version = &v - return s -} - -// One or more filters. Use a filter to return a more specific list of results. -type InventoryFilter struct { - _ struct{} `type:"structure"` - - // The name of the filter key. - // - // Key is a required field - Key *string `min:"1" type:"string" required:"true"` - - // The type of filter. - // - // The Exists filter must be used with aggregators. For more information, see - // Aggregating inventory data (https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-aggregate.html) - // in the AWS Systems Manager User Guide. - Type *string `type:"string" enum:"InventoryQueryOperatorType"` - - // Inventory filter values. Example: inventory filter where instance IDs are - // specified as values Key=AWS:InstanceInformation.InstanceId,Values= i-a12b3c4d5e6g, - // i-1a2b3c4d5e6,Type=Equal - // - // Values is a required field - Values []*string `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s InventoryFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InventoryFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *InventoryFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "InventoryFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Key", 1)) - } - if s.Values == nil { - invalidParams.Add(request.NewErrParamRequired("Values")) - } - if s.Values != nil && len(s.Values) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Values", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *InventoryFilter) SetKey(v string) *InventoryFilter { - s.Key = &v - return s -} - -// SetType sets the Type field's value. -func (s *InventoryFilter) SetType(v string) *InventoryFilter { - s.Type = &v - return s -} - -// SetValues sets the Values field's value. -func (s *InventoryFilter) SetValues(v []*string) *InventoryFilter { - s.Values = v - return s -} - -// A user-defined set of one or more filters on which to aggregate inventory -// data. Groups return a count of resources that match and don't match the specified -// criteria. -type InventoryGroup struct { - _ struct{} `type:"structure"` - - // Filters define the criteria for the group. The matchingCount field displays - // the number of resources that match the criteria. The notMatchingCount field - // displays the number of resources that don't match the criteria. - // - // Filters is a required field - Filters []*InventoryFilter `min:"1" type:"list" required:"true"` - - // The name of the group. - // - // Name is a required field - Name *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s InventoryGroup) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InventoryGroup) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *InventoryGroup) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "InventoryGroup"} - if s.Filters == nil { - invalidParams.Add(request.NewErrParamRequired("Filters")) - } - if s.Filters != nil && len(s.Filters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Filters", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Name", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *InventoryGroup) SetFilters(v []*InventoryFilter) *InventoryGroup { - s.Filters = v - return s -} - -// SetName sets the Name field's value. -func (s *InventoryGroup) SetName(v string) *InventoryGroup { - s.Name = &v - return s -} - -// Information collected from managed instances based on your inventory policy -// document -type InventoryItem struct { - _ struct{} `type:"structure"` - - // The time the inventory information was collected. - // - // CaptureTime is a required field - CaptureTime *string `type:"string" required:"true"` - - // The inventory data of the inventory type. - Content []map[string]*string `type:"list"` - - // MD5 hash of the inventory item type contents. The content hash is used to - // determine whether to update inventory information. The PutInventory API does - // not update the inventory item type contents if the MD5 hash has not changed - // since last update. - ContentHash *string `type:"string"` - - // A map of associated properties for a specified inventory type. For example, - // with this attribute, you can specify the ExecutionId, ExecutionType, ComplianceType - // properties of the AWS:ComplianceItem type. - Context map[string]*string `type:"map"` - - // The schema version for the inventory item. - // - // SchemaVersion is a required field - SchemaVersion *string `type:"string" required:"true"` - - // The name of the inventory type. Default inventory item type names start with - // AWS. Custom inventory type names will start with Custom. Default inventory - // item types include the following: AWS:AWSComponent, AWS:Application, AWS:InstanceInformation, - // AWS:Network, and AWS:WindowsUpdate. - // - // TypeName is a required field - TypeName *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s InventoryItem) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InventoryItem) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *InventoryItem) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "InventoryItem"} - if s.CaptureTime == nil { - invalidParams.Add(request.NewErrParamRequired("CaptureTime")) - } - if s.SchemaVersion == nil { - invalidParams.Add(request.NewErrParamRequired("SchemaVersion")) - } - if s.TypeName == nil { - invalidParams.Add(request.NewErrParamRequired("TypeName")) - } - if s.TypeName != nil && len(*s.TypeName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TypeName", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetCaptureTime sets the CaptureTime field's value. -func (s *InventoryItem) SetCaptureTime(v string) *InventoryItem { - s.CaptureTime = &v - return s -} - -// SetContent sets the Content field's value. -func (s *InventoryItem) SetContent(v []map[string]*string) *InventoryItem { - s.Content = v - return s -} - -// SetContentHash sets the ContentHash field's value. -func (s *InventoryItem) SetContentHash(v string) *InventoryItem { - s.ContentHash = &v - return s -} - -// SetContext sets the Context field's value. -func (s *InventoryItem) SetContext(v map[string]*string) *InventoryItem { - s.Context = v - return s -} - -// SetSchemaVersion sets the SchemaVersion field's value. -func (s *InventoryItem) SetSchemaVersion(v string) *InventoryItem { - s.SchemaVersion = &v - return s -} - -// SetTypeName sets the TypeName field's value. -func (s *InventoryItem) SetTypeName(v string) *InventoryItem { - s.TypeName = &v - return s -} - -// Attributes are the entries within the inventory item content. It contains -// name and value. -type InventoryItemAttribute struct { - _ struct{} `type:"structure"` - - // The data type of the inventory item attribute. - // - // DataType is a required field - DataType *string `type:"string" required:"true" enum:"InventoryAttributeDataType"` - - // Name of the inventory item attribute. - // - // Name is a required field - Name *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s InventoryItemAttribute) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InventoryItemAttribute) GoString() string { - return s.String() -} - -// SetDataType sets the DataType field's value. -func (s *InventoryItemAttribute) SetDataType(v string) *InventoryItemAttribute { - s.DataType = &v - return s -} - -// SetName sets the Name field's value. -func (s *InventoryItemAttribute) SetName(v string) *InventoryItemAttribute { - s.Name = &v - return s -} - -// The inventory item schema definition. Users can use this to compose inventory -// query filters. -type InventoryItemSchema struct { - _ struct{} `type:"structure"` - - // The schema attributes for inventory. This contains data type and attribute - // name. - // - // Attributes is a required field - Attributes []*InventoryItemAttribute `min:"1" type:"list" required:"true"` - - // The alias name of the inventory type. The alias name is used for display - // purposes. - DisplayName *string `type:"string"` - - // The name of the inventory type. Default inventory item type names start with - // AWS. Custom inventory type names will start with Custom. Default inventory - // item types include the following: AWS:AWSComponent, AWS:Application, AWS:InstanceInformation, - // AWS:Network, and AWS:WindowsUpdate. - // - // TypeName is a required field - TypeName *string `min:"1" type:"string" required:"true"` - - // The schema version for the inventory item. - Version *string `type:"string"` -} - -// String returns the string representation -func (s InventoryItemSchema) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InventoryItemSchema) GoString() string { - return s.String() -} - -// SetAttributes sets the Attributes field's value. -func (s *InventoryItemSchema) SetAttributes(v []*InventoryItemAttribute) *InventoryItemSchema { - s.Attributes = v - return s -} - -// SetDisplayName sets the DisplayName field's value. -func (s *InventoryItemSchema) SetDisplayName(v string) *InventoryItemSchema { - s.DisplayName = &v - return s -} - -// SetTypeName sets the TypeName field's value. -func (s *InventoryItemSchema) SetTypeName(v string) *InventoryItemSchema { - s.TypeName = &v - return s -} - -// SetVersion sets the Version field's value. -func (s *InventoryItemSchema) SetVersion(v string) *InventoryItemSchema { - s.Version = &v - return s -} - -// Inventory query results. -type InventoryResultEntity struct { - _ struct{} `type:"structure"` - - // The data section in the inventory result entity JSON. - Data map[string]*InventoryResultItem `type:"map"` - - // ID of the inventory result entity. For example, for managed instance inventory - // the result will be the managed instance ID. For EC2 instance inventory, the - // result will be the instance ID. - Id *string `type:"string"` -} - -// String returns the string representation -func (s InventoryResultEntity) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InventoryResultEntity) GoString() string { - return s.String() -} - -// SetData sets the Data field's value. -func (s *InventoryResultEntity) SetData(v map[string]*InventoryResultItem) *InventoryResultEntity { - s.Data = v - return s -} - -// SetId sets the Id field's value. -func (s *InventoryResultEntity) SetId(v string) *InventoryResultEntity { - s.Id = &v - return s -} - -// The inventory result item. -type InventoryResultItem struct { - _ struct{} `type:"structure"` - - // The time inventory item data was captured. - CaptureTime *string `type:"string"` - - // Contains all the inventory data of the item type. Results include attribute - // names and values. - // - // Content is a required field - Content []map[string]*string `type:"list" required:"true"` - - // MD5 hash of the inventory item type contents. The content hash is used to - // determine whether to update inventory information. The PutInventory API does - // not update the inventory item type contents if the MD5 hash has not changed - // since last update. - ContentHash *string `type:"string"` - - // The schema version for the inventory result item/ - // - // SchemaVersion is a required field - SchemaVersion *string `type:"string" required:"true"` - - // The name of the inventory result item type. - // - // TypeName is a required field - TypeName *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s InventoryResultItem) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InventoryResultItem) GoString() string { - return s.String() -} - -// SetCaptureTime sets the CaptureTime field's value. -func (s *InventoryResultItem) SetCaptureTime(v string) *InventoryResultItem { - s.CaptureTime = &v - return s -} - -// SetContent sets the Content field's value. -func (s *InventoryResultItem) SetContent(v []map[string]*string) *InventoryResultItem { - s.Content = v - return s -} - -// SetContentHash sets the ContentHash field's value. -func (s *InventoryResultItem) SetContentHash(v string) *InventoryResultItem { - s.ContentHash = &v - return s -} - -// SetSchemaVersion sets the SchemaVersion field's value. -func (s *InventoryResultItem) SetSchemaVersion(v string) *InventoryResultItem { - s.SchemaVersion = &v - return s -} - -// SetTypeName sets the TypeName field's value. -func (s *InventoryResultItem) SetTypeName(v string) *InventoryResultItem { - s.TypeName = &v - return s -} - -// The command ID and instance ID you specified did not match any invocations. -// Verify the command ID and the instance ID and try again. -type InvocationDoesNotExist struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InvocationDoesNotExist) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvocationDoesNotExist) GoString() string { - return s.String() -} - -func newErrorInvocationDoesNotExist(v protocol.ResponseMetadata) error { - return &InvocationDoesNotExist{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvocationDoesNotExist) Code() string { - return "InvocationDoesNotExist" -} - -// Message returns the exception's message. -func (s *InvocationDoesNotExist) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvocationDoesNotExist) OrigErr() error { - return nil -} - -func (s *InvocationDoesNotExist) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvocationDoesNotExist) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvocationDoesNotExist) RequestID() string { - return s.RespMetadata.RequestID -} - -// The inventory item has invalid content. -type ItemContentMismatchException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` - - TypeName *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s ItemContentMismatchException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ItemContentMismatchException) GoString() string { - return s.String() -} - -func newErrorItemContentMismatchException(v protocol.ResponseMetadata) error { - return &ItemContentMismatchException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ItemContentMismatchException) Code() string { - return "ItemContentMismatchException" -} - -// Message returns the exception's message. -func (s *ItemContentMismatchException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ItemContentMismatchException) OrigErr() error { - return nil -} - -func (s *ItemContentMismatchException) Error() string { - return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ItemContentMismatchException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ItemContentMismatchException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The inventory item size has exceeded the size limit. -type ItemSizeLimitExceededException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` - - TypeName *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s ItemSizeLimitExceededException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ItemSizeLimitExceededException) GoString() string { - return s.String() -} - -func newErrorItemSizeLimitExceededException(v protocol.ResponseMetadata) error { - return &ItemSizeLimitExceededException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ItemSizeLimitExceededException) Code() string { - return "ItemSizeLimitExceededException" -} - -// Message returns the exception's message. -func (s *ItemSizeLimitExceededException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ItemSizeLimitExceededException) OrigErr() error { - return nil -} - -func (s *ItemSizeLimitExceededException) Error() string { - return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ItemSizeLimitExceededException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ItemSizeLimitExceededException) RequestID() string { - return s.RespMetadata.RequestID -} - -type LabelParameterVersionInput struct { - _ struct{} `type:"structure"` - - // One or more labels to attach to the specified parameter version. - // - // Labels is a required field - Labels []*string `min:"1" type:"list" required:"true"` - - // The parameter name on which you want to attach one or more labels. - // - // Name is a required field - Name *string `min:"1" type:"string" required:"true"` - - // The specific version of the parameter on which you want to attach one or - // more labels. If no version is specified, the system attaches the label to - // the latest version. - ParameterVersion *int64 `type:"long"` -} - -// String returns the string representation -func (s LabelParameterVersionInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s LabelParameterVersionInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *LabelParameterVersionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "LabelParameterVersionInput"} - if s.Labels == nil { - invalidParams.Add(request.NewErrParamRequired("Labels")) - } - if s.Labels != nil && len(s.Labels) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Labels", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Name", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetLabels sets the Labels field's value. -func (s *LabelParameterVersionInput) SetLabels(v []*string) *LabelParameterVersionInput { - s.Labels = v - return s -} - -// SetName sets the Name field's value. -func (s *LabelParameterVersionInput) SetName(v string) *LabelParameterVersionInput { - s.Name = &v - return s -} - -// SetParameterVersion sets the ParameterVersion field's value. -func (s *LabelParameterVersionInput) SetParameterVersion(v int64) *LabelParameterVersionInput { - s.ParameterVersion = &v - return s -} - -type LabelParameterVersionOutput struct { - _ struct{} `type:"structure"` - - // The label does not meet the requirements. For information about parameter - // label requirements, see Labeling parameters (https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html) - // in the AWS Systems Manager User Guide. - InvalidLabels []*string `min:"1" type:"list"` - - // The version of the parameter that has been labeled. - ParameterVersion *int64 `type:"long"` -} - -// String returns the string representation -func (s LabelParameterVersionOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s LabelParameterVersionOutput) GoString() string { - return s.String() -} - -// SetInvalidLabels sets the InvalidLabels field's value. -func (s *LabelParameterVersionOutput) SetInvalidLabels(v []*string) *LabelParameterVersionOutput { - s.InvalidLabels = v - return s -} - -// SetParameterVersion sets the ParameterVersion field's value. -func (s *LabelParameterVersionOutput) SetParameterVersion(v int64) *LabelParameterVersionOutput { - s.ParameterVersion = &v - return s -} - -type ListAssociationVersionsInput struct { - _ struct{} `type:"structure"` - - // The association ID for which you want to view all versions. - // - // AssociationId is a required field - AssociationId *string `type:"string" required:"true"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // A token to start the list. Use this token to get the next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListAssociationVersionsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListAssociationVersionsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListAssociationVersionsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListAssociationVersionsInput"} - if s.AssociationId == nil { - invalidParams.Add(request.NewErrParamRequired("AssociationId")) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAssociationId sets the AssociationId field's value. -func (s *ListAssociationVersionsInput) SetAssociationId(v string) *ListAssociationVersionsInput { - s.AssociationId = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListAssociationVersionsInput) SetMaxResults(v int64) *ListAssociationVersionsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListAssociationVersionsInput) SetNextToken(v string) *ListAssociationVersionsInput { - s.NextToken = &v - return s -} - -type ListAssociationVersionsOutput struct { - _ struct{} `type:"structure"` - - // Information about all versions of the association for the specified association - // ID. - AssociationVersions []*AssociationVersionInfo `min:"1" type:"list"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListAssociationVersionsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListAssociationVersionsOutput) GoString() string { - return s.String() -} - -// SetAssociationVersions sets the AssociationVersions field's value. -func (s *ListAssociationVersionsOutput) SetAssociationVersions(v []*AssociationVersionInfo) *ListAssociationVersionsOutput { - s.AssociationVersions = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListAssociationVersionsOutput) SetNextToken(v string) *ListAssociationVersionsOutput { - s.NextToken = &v - return s -} - -type ListAssociationsInput struct { - _ struct{} `type:"structure"` - - // One or more filters. Use a filter to return a more specific list of results. - // - // Filtering associations using the InstanceID attribute only returns legacy - // associations created using the InstanceID attribute. Associations targeting - // the instance that are part of the Target Attributes ResourceGroup or Tags - // are not returned. - AssociationFilterList []*AssociationFilter `min:"1" type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListAssociationsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListAssociationsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListAssociationsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListAssociationsInput"} - if s.AssociationFilterList != nil && len(s.AssociationFilterList) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AssociationFilterList", 1)) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.AssociationFilterList != nil { - for i, v := range s.AssociationFilterList { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AssociationFilterList", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAssociationFilterList sets the AssociationFilterList field's value. -func (s *ListAssociationsInput) SetAssociationFilterList(v []*AssociationFilter) *ListAssociationsInput { - s.AssociationFilterList = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListAssociationsInput) SetMaxResults(v int64) *ListAssociationsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListAssociationsInput) SetNextToken(v string) *ListAssociationsInput { - s.NextToken = &v - return s -} - -type ListAssociationsOutput struct { - _ struct{} `type:"structure"` - - // The associations. - Associations []*Association `type:"list"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListAssociationsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListAssociationsOutput) GoString() string { - return s.String() -} - -// SetAssociations sets the Associations field's value. -func (s *ListAssociationsOutput) SetAssociations(v []*Association) *ListAssociationsOutput { - s.Associations = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListAssociationsOutput) SetNextToken(v string) *ListAssociationsOutput { - s.NextToken = &v - return s -} - -type ListCommandInvocationsInput struct { - _ struct{} `type:"structure"` - - // (Optional) The invocations for a specific command ID. - CommandId *string `min:"36" type:"string"` - - // (Optional) If set this returns the response of the command executions and - // any command output. By default this is set to False. - Details *bool `type:"boolean"` - - // (Optional) One or more filters. Use a filter to return a more specific list - // of results. - Filters []*CommandFilter `min:"1" type:"list"` - - // (Optional) The command execution details for a specific instance ID. - InstanceId *string `type:"string"` - - // (Optional) The maximum number of items to return for this call. The call - // also returns a token that you can specify in a subsequent call to get the - // next set of results. - MaxResults *int64 `min:"1" type:"integer"` - - // (Optional) The token for the next set of items to return. (You received this - // token from a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListCommandInvocationsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListCommandInvocationsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListCommandInvocationsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListCommandInvocationsInput"} - if s.CommandId != nil && len(*s.CommandId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("CommandId", 36)) - } - if s.Filters != nil && len(s.Filters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Filters", 1)) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetCommandId sets the CommandId field's value. -func (s *ListCommandInvocationsInput) SetCommandId(v string) *ListCommandInvocationsInput { - s.CommandId = &v - return s -} - -// SetDetails sets the Details field's value. -func (s *ListCommandInvocationsInput) SetDetails(v bool) *ListCommandInvocationsInput { - s.Details = &v - return s -} - -// SetFilters sets the Filters field's value. -func (s *ListCommandInvocationsInput) SetFilters(v []*CommandFilter) *ListCommandInvocationsInput { - s.Filters = v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *ListCommandInvocationsInput) SetInstanceId(v string) *ListCommandInvocationsInput { - s.InstanceId = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListCommandInvocationsInput) SetMaxResults(v int64) *ListCommandInvocationsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListCommandInvocationsInput) SetNextToken(v string) *ListCommandInvocationsInput { - s.NextToken = &v - return s -} - -type ListCommandInvocationsOutput struct { - _ struct{} `type:"structure"` - - // (Optional) A list of all invocations. - CommandInvocations []*CommandInvocation `type:"list"` - - // (Optional) The token for the next set of items to return. (You received this - // token from a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListCommandInvocationsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListCommandInvocationsOutput) GoString() string { - return s.String() -} - -// SetCommandInvocations sets the CommandInvocations field's value. -func (s *ListCommandInvocationsOutput) SetCommandInvocations(v []*CommandInvocation) *ListCommandInvocationsOutput { - s.CommandInvocations = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListCommandInvocationsOutput) SetNextToken(v string) *ListCommandInvocationsOutput { - s.NextToken = &v - return s -} - -type ListCommandsInput struct { - _ struct{} `type:"structure"` - - // (Optional) If provided, lists only the specified command. - CommandId *string `min:"36" type:"string"` - - // (Optional) One or more filters. Use a filter to return a more specific list - // of results. - Filters []*CommandFilter `min:"1" type:"list"` - - // (Optional) Lists commands issued against this instance ID. - // - // You can't specify an instance ID in the same command that you specify Status - // = Pending. This is because the command has not reached the instance yet. - InstanceId *string `type:"string"` - - // (Optional) The maximum number of items to return for this call. The call - // also returns a token that you can specify in a subsequent call to get the - // next set of results. - MaxResults *int64 `min:"1" type:"integer"` - - // (Optional) The token for the next set of items to return. (You received this - // token from a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListCommandsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListCommandsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListCommandsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListCommandsInput"} - if s.CommandId != nil && len(*s.CommandId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("CommandId", 36)) - } - if s.Filters != nil && len(s.Filters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Filters", 1)) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetCommandId sets the CommandId field's value. -func (s *ListCommandsInput) SetCommandId(v string) *ListCommandsInput { - s.CommandId = &v - return s -} - -// SetFilters sets the Filters field's value. -func (s *ListCommandsInput) SetFilters(v []*CommandFilter) *ListCommandsInput { - s.Filters = v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *ListCommandsInput) SetInstanceId(v string) *ListCommandsInput { - s.InstanceId = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListCommandsInput) SetMaxResults(v int64) *ListCommandsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListCommandsInput) SetNextToken(v string) *ListCommandsInput { - s.NextToken = &v - return s -} - -type ListCommandsOutput struct { - _ struct{} `type:"structure"` - - // (Optional) The list of commands requested by the user. - Commands []*Command `type:"list"` - - // (Optional) The token for the next set of items to return. (You received this - // token from a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListCommandsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListCommandsOutput) GoString() string { - return s.String() -} - -// SetCommands sets the Commands field's value. -func (s *ListCommandsOutput) SetCommands(v []*Command) *ListCommandsOutput { - s.Commands = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListCommandsOutput) SetNextToken(v string) *ListCommandsOutput { - s.NextToken = &v - return s -} - -type ListComplianceItemsInput struct { - _ struct{} `type:"structure"` - - // One or more compliance filters. Use a filter to return a more specific list - // of results. - Filters []*ComplianceStringFilter `type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // A token to start the list. Use this token to get the next set of results. - NextToken *string `type:"string"` - - // The ID for the resources from which to get compliance information. Currently, - // you can only specify one resource ID. - ResourceIds []*string `min:"1" type:"list"` - - // The type of resource from which to get compliance information. Currently, - // the only supported resource type is ManagedInstance. - ResourceTypes []*string `min:"1" type:"list"` -} - -// String returns the string representation -func (s ListComplianceItemsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListComplianceItemsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListComplianceItemsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListComplianceItemsInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.ResourceIds != nil && len(s.ResourceIds) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ResourceIds", 1)) - } - if s.ResourceTypes != nil && len(s.ResourceTypes) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ResourceTypes", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *ListComplianceItemsInput) SetFilters(v []*ComplianceStringFilter) *ListComplianceItemsInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListComplianceItemsInput) SetMaxResults(v int64) *ListComplianceItemsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListComplianceItemsInput) SetNextToken(v string) *ListComplianceItemsInput { - s.NextToken = &v - return s -} - -// SetResourceIds sets the ResourceIds field's value. -func (s *ListComplianceItemsInput) SetResourceIds(v []*string) *ListComplianceItemsInput { - s.ResourceIds = v - return s -} - -// SetResourceTypes sets the ResourceTypes field's value. -func (s *ListComplianceItemsInput) SetResourceTypes(v []*string) *ListComplianceItemsInput { - s.ResourceTypes = v - return s -} - -type ListComplianceItemsOutput struct { - _ struct{} `type:"structure"` - - // A list of compliance information for the specified resource ID. - ComplianceItems []*ComplianceItem `type:"list"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListComplianceItemsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListComplianceItemsOutput) GoString() string { - return s.String() -} - -// SetComplianceItems sets the ComplianceItems field's value. -func (s *ListComplianceItemsOutput) SetComplianceItems(v []*ComplianceItem) *ListComplianceItemsOutput { - s.ComplianceItems = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListComplianceItemsOutput) SetNextToken(v string) *ListComplianceItemsOutput { - s.NextToken = &v - return s -} - -type ListComplianceSummariesInput struct { - _ struct{} `type:"structure"` - - // One or more compliance or inventory filters. Use a filter to return a more - // specific list of results. - Filters []*ComplianceStringFilter `type:"list"` - - // The maximum number of items to return for this call. Currently, you can specify - // null or 50. The call also returns a token that you can specify in a subsequent - // call to get the next set of results. - MaxResults *int64 `min:"1" type:"integer"` - - // A token to start the list. Use this token to get the next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListComplianceSummariesInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListComplianceSummariesInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListComplianceSummariesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListComplianceSummariesInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *ListComplianceSummariesInput) SetFilters(v []*ComplianceStringFilter) *ListComplianceSummariesInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListComplianceSummariesInput) SetMaxResults(v int64) *ListComplianceSummariesInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListComplianceSummariesInput) SetNextToken(v string) *ListComplianceSummariesInput { - s.NextToken = &v - return s -} - -type ListComplianceSummariesOutput struct { - _ struct{} `type:"structure"` - - // A list of compliant and non-compliant summary counts based on compliance - // types. For example, this call returns State Manager associations, patches, - // or custom compliance types according to the filter criteria that you specified. - ComplianceSummaryItems []*ComplianceSummaryItem `type:"list"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListComplianceSummariesOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListComplianceSummariesOutput) GoString() string { - return s.String() -} - -// SetComplianceSummaryItems sets the ComplianceSummaryItems field's value. -func (s *ListComplianceSummariesOutput) SetComplianceSummaryItems(v []*ComplianceSummaryItem) *ListComplianceSummariesOutput { - s.ComplianceSummaryItems = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListComplianceSummariesOutput) SetNextToken(v string) *ListComplianceSummariesOutput { - s.NextToken = &v - return s -} - -type ListDocumentMetadataHistoryInput struct { - _ struct{} `type:"structure"` - - // The version of the document. - DocumentVersion *string `type:"string"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The type of data for which details are being requested. Currently, the only - // supported value is DocumentReviews. - // - // Metadata is a required field - Metadata *string `type:"string" required:"true" enum:"DocumentMetadataEnum"` - - // The name of the document. - // - // Name is a required field - Name *string `type:"string" required:"true"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListDocumentMetadataHistoryInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListDocumentMetadataHistoryInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListDocumentMetadataHistoryInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListDocumentMetadataHistoryInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Metadata == nil { - invalidParams.Add(request.NewErrParamRequired("Metadata")) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *ListDocumentMetadataHistoryInput) SetDocumentVersion(v string) *ListDocumentMetadataHistoryInput { - s.DocumentVersion = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListDocumentMetadataHistoryInput) SetMaxResults(v int64) *ListDocumentMetadataHistoryInput { - s.MaxResults = &v - return s -} - -// SetMetadata sets the Metadata field's value. -func (s *ListDocumentMetadataHistoryInput) SetMetadata(v string) *ListDocumentMetadataHistoryInput { - s.Metadata = &v - return s -} - -// SetName sets the Name field's value. -func (s *ListDocumentMetadataHistoryInput) SetName(v string) *ListDocumentMetadataHistoryInput { - s.Name = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListDocumentMetadataHistoryInput) SetNextToken(v string) *ListDocumentMetadataHistoryInput { - s.NextToken = &v - return s -} - -type ListDocumentMetadataHistoryOutput struct { - _ struct{} `type:"structure"` - - // The user ID of the person in the organization who requested the document - // review. - Author *string `type:"string"` - - // The version of the document. - DocumentVersion *string `type:"string"` - - // Information about the response to the document approval request. - Metadata *DocumentMetadataResponseInfo `type:"structure"` - - // The name of the document. - Name *string `type:"string"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListDocumentMetadataHistoryOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListDocumentMetadataHistoryOutput) GoString() string { - return s.String() -} - -// SetAuthor sets the Author field's value. -func (s *ListDocumentMetadataHistoryOutput) SetAuthor(v string) *ListDocumentMetadataHistoryOutput { - s.Author = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *ListDocumentMetadataHistoryOutput) SetDocumentVersion(v string) *ListDocumentMetadataHistoryOutput { - s.DocumentVersion = &v - return s -} - -// SetMetadata sets the Metadata field's value. -func (s *ListDocumentMetadataHistoryOutput) SetMetadata(v *DocumentMetadataResponseInfo) *ListDocumentMetadataHistoryOutput { - s.Metadata = v - return s -} - -// SetName sets the Name field's value. -func (s *ListDocumentMetadataHistoryOutput) SetName(v string) *ListDocumentMetadataHistoryOutput { - s.Name = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListDocumentMetadataHistoryOutput) SetNextToken(v string) *ListDocumentMetadataHistoryOutput { - s.NextToken = &v - return s -} - -type ListDocumentVersionsInput struct { - _ struct{} `type:"structure"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The name of the document. You can specify an Amazon Resource Name (ARN). - // - // Name is a required field - Name *string `type:"string" required:"true"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListDocumentVersionsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListDocumentVersionsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListDocumentVersionsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListDocumentVersionsInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListDocumentVersionsInput) SetMaxResults(v int64) *ListDocumentVersionsInput { - s.MaxResults = &v - return s -} - -// SetName sets the Name field's value. -func (s *ListDocumentVersionsInput) SetName(v string) *ListDocumentVersionsInput { - s.Name = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListDocumentVersionsInput) SetNextToken(v string) *ListDocumentVersionsInput { - s.NextToken = &v - return s -} - -type ListDocumentVersionsOutput struct { - _ struct{} `type:"structure"` - - // The document versions. - DocumentVersions []*DocumentVersionInfo `min:"1" type:"list"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListDocumentVersionsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListDocumentVersionsOutput) GoString() string { - return s.String() -} - -// SetDocumentVersions sets the DocumentVersions field's value. -func (s *ListDocumentVersionsOutput) SetDocumentVersions(v []*DocumentVersionInfo) *ListDocumentVersionsOutput { - s.DocumentVersions = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListDocumentVersionsOutput) SetNextToken(v string) *ListDocumentVersionsOutput { - s.NextToken = &v - return s -} - -type ListDocumentsInput struct { - _ struct{} `type:"structure"` - - // This data type is deprecated. Instead, use Filters. - DocumentFilterList []*DocumentFilter `min:"1" type:"list"` - - // One or more DocumentKeyValuesFilter objects. Use a filter to return a more - // specific list of results. For keys, you can specify one or more key-value - // pair tags that have been applied to a document. Other valid keys include - // Owner, Name, PlatformTypes, DocumentType, and TargetType. For example, to - // return documents you own use Key=Owner,Values=Self. To specify a custom key-value - // pair, use the format Key=tag:tagName,Values=valueName. - // - // This API action only supports filtering documents by using a single tag key - // and one or more tag values. For example: Key=tag:tagName,Values=valueName1,valueName2 - Filters []*DocumentKeyValuesFilter `type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListDocumentsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListDocumentsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListDocumentsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListDocumentsInput"} - if s.DocumentFilterList != nil && len(s.DocumentFilterList) < 1 { - invalidParams.Add(request.NewErrParamMinLen("DocumentFilterList", 1)) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.DocumentFilterList != nil { - for i, v := range s.DocumentFilterList { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DocumentFilterList", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDocumentFilterList sets the DocumentFilterList field's value. -func (s *ListDocumentsInput) SetDocumentFilterList(v []*DocumentFilter) *ListDocumentsInput { - s.DocumentFilterList = v - return s -} - -// SetFilters sets the Filters field's value. -func (s *ListDocumentsInput) SetFilters(v []*DocumentKeyValuesFilter) *ListDocumentsInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListDocumentsInput) SetMaxResults(v int64) *ListDocumentsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListDocumentsInput) SetNextToken(v string) *ListDocumentsInput { - s.NextToken = &v - return s -} - -type ListDocumentsOutput struct { - _ struct{} `type:"structure"` - - // The names of the Systems Manager documents. - DocumentIdentifiers []*DocumentIdentifier `type:"list"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListDocumentsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListDocumentsOutput) GoString() string { - return s.String() -} - -// SetDocumentIdentifiers sets the DocumentIdentifiers field's value. -func (s *ListDocumentsOutput) SetDocumentIdentifiers(v []*DocumentIdentifier) *ListDocumentsOutput { - s.DocumentIdentifiers = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListDocumentsOutput) SetNextToken(v string) *ListDocumentsOutput { - s.NextToken = &v - return s -} - -type ListInventoryEntriesInput struct { - _ struct{} `type:"structure"` - - // One or more filters. Use a filter to return a more specific list of results. - Filters []*InventoryFilter `min:"1" type:"list"` - - // The instance ID for which you want inventory information. - // - // InstanceId is a required field - InstanceId *string `type:"string" required:"true"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // The token for the next set of items to return. (You received this token from - // a previous call.) - NextToken *string `type:"string"` - - // The type of inventory item for which you want information. - // - // TypeName is a required field - TypeName *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s ListInventoryEntriesInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListInventoryEntriesInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListInventoryEntriesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListInventoryEntriesInput"} - if s.Filters != nil && len(s.Filters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Filters", 1)) - } - if s.InstanceId == nil { - invalidParams.Add(request.NewErrParamRequired("InstanceId")) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.TypeName == nil { - invalidParams.Add(request.NewErrParamRequired("TypeName")) - } - if s.TypeName != nil && len(*s.TypeName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TypeName", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *ListInventoryEntriesInput) SetFilters(v []*InventoryFilter) *ListInventoryEntriesInput { - s.Filters = v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *ListInventoryEntriesInput) SetInstanceId(v string) *ListInventoryEntriesInput { - s.InstanceId = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListInventoryEntriesInput) SetMaxResults(v int64) *ListInventoryEntriesInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListInventoryEntriesInput) SetNextToken(v string) *ListInventoryEntriesInput { - s.NextToken = &v - return s -} - -// SetTypeName sets the TypeName field's value. -func (s *ListInventoryEntriesInput) SetTypeName(v string) *ListInventoryEntriesInput { - s.TypeName = &v - return s -} - -type ListInventoryEntriesOutput struct { - _ struct{} `type:"structure"` - - // The time that inventory information was collected for the instance(s). - CaptureTime *string `type:"string"` - - // A list of inventory items on the instance(s). - Entries []map[string]*string `type:"list"` - - // The instance ID targeted by the request to query inventory information. - InstanceId *string `type:"string"` - - // The token to use when requesting the next set of items. If there are no additional - // items to return, the string is empty. - NextToken *string `type:"string"` - - // The inventory schema version used by the instance(s). - SchemaVersion *string `type:"string"` - - // The type of inventory item returned by the request. - TypeName *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s ListInventoryEntriesOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListInventoryEntriesOutput) GoString() string { - return s.String() -} - -// SetCaptureTime sets the CaptureTime field's value. -func (s *ListInventoryEntriesOutput) SetCaptureTime(v string) *ListInventoryEntriesOutput { - s.CaptureTime = &v - return s -} - -// SetEntries sets the Entries field's value. -func (s *ListInventoryEntriesOutput) SetEntries(v []map[string]*string) *ListInventoryEntriesOutput { - s.Entries = v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *ListInventoryEntriesOutput) SetInstanceId(v string) *ListInventoryEntriesOutput { - s.InstanceId = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListInventoryEntriesOutput) SetNextToken(v string) *ListInventoryEntriesOutput { - s.NextToken = &v - return s -} - -// SetSchemaVersion sets the SchemaVersion field's value. -func (s *ListInventoryEntriesOutput) SetSchemaVersion(v string) *ListInventoryEntriesOutput { - s.SchemaVersion = &v - return s -} - -// SetTypeName sets the TypeName field's value. -func (s *ListInventoryEntriesOutput) SetTypeName(v string) *ListInventoryEntriesOutput { - s.TypeName = &v - return s -} - -type ListOpsItemEventsInput struct { - _ struct{} `type:"structure"` - - // One or more OpsItem filters. Use a filter to return a more specific list - // of results. - Filters []*OpsItemEventFilter `type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // A token to start the list. Use this token to get the next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListOpsItemEventsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListOpsItemEventsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListOpsItemEventsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListOpsItemEventsInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *ListOpsItemEventsInput) SetFilters(v []*OpsItemEventFilter) *ListOpsItemEventsInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListOpsItemEventsInput) SetMaxResults(v int64) *ListOpsItemEventsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListOpsItemEventsInput) SetNextToken(v string) *ListOpsItemEventsInput { - s.NextToken = &v - return s -} - -type ListOpsItemEventsOutput struct { - _ struct{} `type:"structure"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` - - // A list of event information for the specified OpsItems. - Summaries []*OpsItemEventSummary `type:"list"` -} - -// String returns the string representation -func (s ListOpsItemEventsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListOpsItemEventsOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *ListOpsItemEventsOutput) SetNextToken(v string) *ListOpsItemEventsOutput { - s.NextToken = &v - return s -} - -// SetSummaries sets the Summaries field's value. -func (s *ListOpsItemEventsOutput) SetSummaries(v []*OpsItemEventSummary) *ListOpsItemEventsOutput { - s.Summaries = v - return s -} - -type ListOpsMetadataInput struct { - _ struct{} `type:"structure"` - - // One or more filters to limit the number of OpsMetadata objects returned by - // the call. - Filters []*OpsMetadataFilter `type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // A token to start the list. Use this token to get the next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListOpsMetadataInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListOpsMetadataInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListOpsMetadataInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListOpsMetadataInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *ListOpsMetadataInput) SetFilters(v []*OpsMetadataFilter) *ListOpsMetadataInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListOpsMetadataInput) SetMaxResults(v int64) *ListOpsMetadataInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListOpsMetadataInput) SetNextToken(v string) *ListOpsMetadataInput { - s.NextToken = &v - return s -} - -type ListOpsMetadataOutput struct { - _ struct{} `type:"structure"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` - - // Returns a list of OpsMetadata objects. - OpsMetadataList []*OpsMetadata `min:"1" type:"list"` -} - -// String returns the string representation -func (s ListOpsMetadataOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListOpsMetadataOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *ListOpsMetadataOutput) SetNextToken(v string) *ListOpsMetadataOutput { - s.NextToken = &v - return s -} - -// SetOpsMetadataList sets the OpsMetadataList field's value. -func (s *ListOpsMetadataOutput) SetOpsMetadataList(v []*OpsMetadata) *ListOpsMetadataOutput { - s.OpsMetadataList = v - return s -} - -type ListResourceComplianceSummariesInput struct { - _ struct{} `type:"structure"` - - // One or more filters. Use a filter to return a more specific list of results. - Filters []*ComplianceStringFilter `type:"list"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // A token to start the list. Use this token to get the next set of results. - NextToken *string `type:"string"` -} - -// String returns the string representation -func (s ListResourceComplianceSummariesInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListResourceComplianceSummariesInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListResourceComplianceSummariesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListResourceComplianceSummariesInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFilters sets the Filters field's value. -func (s *ListResourceComplianceSummariesInput) SetFilters(v []*ComplianceStringFilter) *ListResourceComplianceSummariesInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListResourceComplianceSummariesInput) SetMaxResults(v int64) *ListResourceComplianceSummariesInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListResourceComplianceSummariesInput) SetNextToken(v string) *ListResourceComplianceSummariesInput { - s.NextToken = &v - return s -} - -type ListResourceComplianceSummariesOutput struct { - _ struct{} `type:"structure"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` - - // A summary count for specified or targeted managed instances. Summary count - // includes information about compliant and non-compliant State Manager associations, - // patch status, or custom items according to the filter criteria that you specify. - ResourceComplianceSummaryItems []*ResourceComplianceSummaryItem `type:"list"` -} - -// String returns the string representation -func (s ListResourceComplianceSummariesOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListResourceComplianceSummariesOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *ListResourceComplianceSummariesOutput) SetNextToken(v string) *ListResourceComplianceSummariesOutput { - s.NextToken = &v - return s -} - -// SetResourceComplianceSummaryItems sets the ResourceComplianceSummaryItems field's value. -func (s *ListResourceComplianceSummariesOutput) SetResourceComplianceSummaryItems(v []*ResourceComplianceSummaryItem) *ListResourceComplianceSummariesOutput { - s.ResourceComplianceSummaryItems = v - return s -} - -type ListResourceDataSyncInput struct { - _ struct{} `type:"structure"` - - // The maximum number of items to return for this call. The call also returns - // a token that you can specify in a subsequent call to get the next set of - // results. - MaxResults *int64 `min:"1" type:"integer"` - - // A token to start the list. Use this token to get the next set of results. - NextToken *string `type:"string"` - - // View a list of resource data syncs according to the sync type. Specify SyncToDestination - // to view resource data syncs that synchronize data to an Amazon S3 bucket. - // Specify SyncFromSource to view resource data syncs from AWS Organizations - // or from multiple AWS Regions. - SyncType *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s ListResourceDataSyncInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListResourceDataSyncInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListResourceDataSyncInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListResourceDataSyncInput"} - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - if s.SyncType != nil && len(*s.SyncType) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SyncType", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListResourceDataSyncInput) SetMaxResults(v int64) *ListResourceDataSyncInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListResourceDataSyncInput) SetNextToken(v string) *ListResourceDataSyncInput { - s.NextToken = &v - return s -} - -// SetSyncType sets the SyncType field's value. -func (s *ListResourceDataSyncInput) SetSyncType(v string) *ListResourceDataSyncInput { - s.SyncType = &v - return s -} - -type ListResourceDataSyncOutput struct { - _ struct{} `type:"structure"` - - // The token for the next set of items to return. Use this token to get the - // next set of results. - NextToken *string `type:"string"` - - // A list of your current Resource Data Sync configurations and their statuses. - ResourceDataSyncItems []*ResourceDataSyncItem `type:"list"` -} - -// String returns the string representation -func (s ListResourceDataSyncOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListResourceDataSyncOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *ListResourceDataSyncOutput) SetNextToken(v string) *ListResourceDataSyncOutput { - s.NextToken = &v - return s -} - -// SetResourceDataSyncItems sets the ResourceDataSyncItems field's value. -func (s *ListResourceDataSyncOutput) SetResourceDataSyncItems(v []*ResourceDataSyncItem) *ListResourceDataSyncOutput { - s.ResourceDataSyncItems = v - return s -} - -type ListTagsForResourceInput struct { - _ struct{} `type:"structure"` - - // The resource ID for which you want to see a list of tags. - // - // ResourceId is a required field - ResourceId *string `type:"string" required:"true"` - - // Returns a list of tags for a specific resource type. - // - // ResourceType is a required field - ResourceType *string `type:"string" required:"true" enum:"ResourceTypeForTagging"` -} - -// String returns the string representation -func (s ListTagsForResourceInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListTagsForResourceInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListTagsForResourceInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} - if s.ResourceId == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceId")) - } - if s.ResourceType == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceType")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetResourceId sets the ResourceId field's value. -func (s *ListTagsForResourceInput) SetResourceId(v string) *ListTagsForResourceInput { - s.ResourceId = &v - return s -} - -// SetResourceType sets the ResourceType field's value. -func (s *ListTagsForResourceInput) SetResourceType(v string) *ListTagsForResourceInput { - s.ResourceType = &v - return s -} - -type ListTagsForResourceOutput struct { - _ struct{} `type:"structure"` - - // A list of tags. - TagList []*Tag `type:"list"` -} - -// String returns the string representation -func (s ListTagsForResourceOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListTagsForResourceOutput) GoString() string { - return s.String() -} - -// SetTagList sets the TagList field's value. -func (s *ListTagsForResourceOutput) SetTagList(v []*Tag) *ListTagsForResourceOutput { - s.TagList = v - return s -} - -// Information about an S3 bucket to write instance-level logs to. -// -// LoggingInfo has been deprecated. To specify an S3 bucket to contain logs, -// instead use the OutputS3BucketName and OutputS3KeyPrefix options in the TaskInvocationParameters -// structure. For information about how Systems Manager handles these options -// for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. -type LoggingInfo struct { - _ struct{} `type:"structure"` - - // The name of an S3 bucket where execution logs are stored . - // - // S3BucketName is a required field - S3BucketName *string `min:"3" type:"string" required:"true"` - - // (Optional) The S3 bucket subfolder. - S3KeyPrefix *string `type:"string"` - - // The Region where the S3 bucket is located. - // - // S3Region is a required field - S3Region *string `min:"3" type:"string" required:"true"` -} - -// String returns the string representation -func (s LoggingInfo) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s LoggingInfo) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *LoggingInfo) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "LoggingInfo"} - if s.S3BucketName == nil { - invalidParams.Add(request.NewErrParamRequired("S3BucketName")) - } - if s.S3BucketName != nil && len(*s.S3BucketName) < 3 { - invalidParams.Add(request.NewErrParamMinLen("S3BucketName", 3)) - } - if s.S3Region == nil { - invalidParams.Add(request.NewErrParamRequired("S3Region")) - } - if s.S3Region != nil && len(*s.S3Region) < 3 { - invalidParams.Add(request.NewErrParamMinLen("S3Region", 3)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetS3BucketName sets the S3BucketName field's value. -func (s *LoggingInfo) SetS3BucketName(v string) *LoggingInfo { - s.S3BucketName = &v - return s -} - -// SetS3KeyPrefix sets the S3KeyPrefix field's value. -func (s *LoggingInfo) SetS3KeyPrefix(v string) *LoggingInfo { - s.S3KeyPrefix = &v - return s -} - -// SetS3Region sets the S3Region field's value. -func (s *LoggingInfo) SetS3Region(v string) *LoggingInfo { - s.S3Region = &v - return s -} - -// The parameters for an AUTOMATION task type. -type MaintenanceWindowAutomationParameters struct { - _ struct{} `type:"structure"` - - // The version of an Automation document to use during task execution. - DocumentVersion *string `type:"string"` - - // The parameters for the AUTOMATION task. - // - // For information about specifying and updating task parameters, see RegisterTaskWithMaintenanceWindow - // and UpdateMaintenanceWindowTask. - // - // LoggingInfo has been deprecated. To specify an S3 bucket to contain logs, - // instead use the OutputS3BucketName and OutputS3KeyPrefix options in the TaskInvocationParameters - // structure. For information about how Systems Manager handles these options - // for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. - // - // TaskParameters has been deprecated. To specify parameters to pass to a task - // when it runs, instead use the Parameters option in the TaskInvocationParameters - // structure. For information about how Systems Manager handles these options - // for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. - // - // For AUTOMATION task types, Systems Manager ignores any values specified for - // these parameters. - Parameters map[string][]*string `min:"1" type:"map"` -} - -// String returns the string representation -func (s MaintenanceWindowAutomationParameters) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MaintenanceWindowAutomationParameters) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *MaintenanceWindowAutomationParameters) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "MaintenanceWindowAutomationParameters"} - if s.Parameters != nil && len(s.Parameters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Parameters", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *MaintenanceWindowAutomationParameters) SetDocumentVersion(v string) *MaintenanceWindowAutomationParameters { - s.DocumentVersion = &v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *MaintenanceWindowAutomationParameters) SetParameters(v map[string][]*string) *MaintenanceWindowAutomationParameters { - s.Parameters = v - return s -} - -// Describes the information about an execution of a maintenance window. -type MaintenanceWindowExecution struct { - _ struct{} `type:"structure"` - - // The time the execution finished. - EndTime *time.Time `type:"timestamp"` - - // The time the execution started. - StartTime *time.Time `type:"timestamp"` - - // The status of the execution. - Status *string `type:"string" enum:"MaintenanceWindowExecutionStatus"` - - // The details explaining the Status. Only available for certain status values. - StatusDetails *string `type:"string"` - - // The ID of the maintenance window execution. - WindowExecutionId *string `min:"36" type:"string"` - - // The ID of the maintenance window. - WindowId *string `min:"20" type:"string"` -} - -// String returns the string representation -func (s MaintenanceWindowExecution) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MaintenanceWindowExecution) GoString() string { - return s.String() -} - -// SetEndTime sets the EndTime field's value. -func (s *MaintenanceWindowExecution) SetEndTime(v time.Time) *MaintenanceWindowExecution { - s.EndTime = &v - return s -} - -// SetStartTime sets the StartTime field's value. -func (s *MaintenanceWindowExecution) SetStartTime(v time.Time) *MaintenanceWindowExecution { - s.StartTime = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *MaintenanceWindowExecution) SetStatus(v string) *MaintenanceWindowExecution { - s.Status = &v - return s -} - -// SetStatusDetails sets the StatusDetails field's value. -func (s *MaintenanceWindowExecution) SetStatusDetails(v string) *MaintenanceWindowExecution { - s.StatusDetails = &v - return s -} - -// SetWindowExecutionId sets the WindowExecutionId field's value. -func (s *MaintenanceWindowExecution) SetWindowExecutionId(v string) *MaintenanceWindowExecution { - s.WindowExecutionId = &v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *MaintenanceWindowExecution) SetWindowId(v string) *MaintenanceWindowExecution { - s.WindowId = &v - return s -} - -// Information about a task execution performed as part of a maintenance window -// execution. -type MaintenanceWindowExecutionTaskIdentity struct { - _ struct{} `type:"structure"` - - // The time the task execution finished. - EndTime *time.Time `type:"timestamp"` - - // The time the task execution started. - StartTime *time.Time `type:"timestamp"` - - // The status of the task execution. - Status *string `type:"string" enum:"MaintenanceWindowExecutionStatus"` - - // The details explaining the status of the task execution. Only available for - // certain status values. - StatusDetails *string `type:"string"` - - // The ARN of the task that ran. - TaskArn *string `min:"1" type:"string"` - - // The ID of the specific task execution in the maintenance window execution. - TaskExecutionId *string `min:"36" type:"string"` - - // The type of task that ran. - TaskType *string `type:"string" enum:"MaintenanceWindowTaskType"` - - // The ID of the maintenance window execution that ran the task. - WindowExecutionId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s MaintenanceWindowExecutionTaskIdentity) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MaintenanceWindowExecutionTaskIdentity) GoString() string { - return s.String() -} - -// SetEndTime sets the EndTime field's value. -func (s *MaintenanceWindowExecutionTaskIdentity) SetEndTime(v time.Time) *MaintenanceWindowExecutionTaskIdentity { - s.EndTime = &v - return s -} - -// SetStartTime sets the StartTime field's value. -func (s *MaintenanceWindowExecutionTaskIdentity) SetStartTime(v time.Time) *MaintenanceWindowExecutionTaskIdentity { - s.StartTime = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *MaintenanceWindowExecutionTaskIdentity) SetStatus(v string) *MaintenanceWindowExecutionTaskIdentity { - s.Status = &v - return s -} - -// SetStatusDetails sets the StatusDetails field's value. -func (s *MaintenanceWindowExecutionTaskIdentity) SetStatusDetails(v string) *MaintenanceWindowExecutionTaskIdentity { - s.StatusDetails = &v - return s -} - -// SetTaskArn sets the TaskArn field's value. -func (s *MaintenanceWindowExecutionTaskIdentity) SetTaskArn(v string) *MaintenanceWindowExecutionTaskIdentity { - s.TaskArn = &v - return s -} - -// SetTaskExecutionId sets the TaskExecutionId field's value. -func (s *MaintenanceWindowExecutionTaskIdentity) SetTaskExecutionId(v string) *MaintenanceWindowExecutionTaskIdentity { - s.TaskExecutionId = &v - return s -} - -// SetTaskType sets the TaskType field's value. -func (s *MaintenanceWindowExecutionTaskIdentity) SetTaskType(v string) *MaintenanceWindowExecutionTaskIdentity { - s.TaskType = &v - return s -} - -// SetWindowExecutionId sets the WindowExecutionId field's value. -func (s *MaintenanceWindowExecutionTaskIdentity) SetWindowExecutionId(v string) *MaintenanceWindowExecutionTaskIdentity { - s.WindowExecutionId = &v - return s -} - -// Describes the information about a task invocation for a particular target -// as part of a task execution performed as part of a maintenance window execution. -type MaintenanceWindowExecutionTaskInvocationIdentity struct { - _ struct{} `type:"structure"` - - // The time the invocation finished. - EndTime *time.Time `type:"timestamp"` - - // The ID of the action performed in the service that actually handled the task - // invocation. If the task type is RUN_COMMAND, this value is the command ID. - ExecutionId *string `type:"string"` - - // The ID of the task invocation. - InvocationId *string `min:"36" type:"string"` - - // User-provided value that was specified when the target was registered with - // the maintenance window. This was also included in any CloudWatch events raised - // during the task invocation. - OwnerInformation *string `min:"1" type:"string" sensitive:"true"` - - // The parameters that were provided for the invocation when it was run. - Parameters *string `type:"string" sensitive:"true"` - - // The time the invocation started. - StartTime *time.Time `type:"timestamp"` - - // The status of the task invocation. - Status *string `type:"string" enum:"MaintenanceWindowExecutionStatus"` - - // The details explaining the status of the task invocation. Only available - // for certain Status values. - StatusDetails *string `type:"string"` - - // The ID of the specific task execution in the maintenance window execution. - TaskExecutionId *string `min:"36" type:"string"` - - // The task type. - TaskType *string `type:"string" enum:"MaintenanceWindowTaskType"` - - // The ID of the maintenance window execution that ran the task. - WindowExecutionId *string `min:"36" type:"string"` - - // The ID of the target definition in this maintenance window the invocation - // was performed for. - WindowTargetId *string `type:"string"` -} - -// String returns the string representation -func (s MaintenanceWindowExecutionTaskInvocationIdentity) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MaintenanceWindowExecutionTaskInvocationIdentity) GoString() string { - return s.String() -} - -// SetEndTime sets the EndTime field's value. -func (s *MaintenanceWindowExecutionTaskInvocationIdentity) SetEndTime(v time.Time) *MaintenanceWindowExecutionTaskInvocationIdentity { - s.EndTime = &v - return s -} - -// SetExecutionId sets the ExecutionId field's value. -func (s *MaintenanceWindowExecutionTaskInvocationIdentity) SetExecutionId(v string) *MaintenanceWindowExecutionTaskInvocationIdentity { - s.ExecutionId = &v - return s -} - -// SetInvocationId sets the InvocationId field's value. -func (s *MaintenanceWindowExecutionTaskInvocationIdentity) SetInvocationId(v string) *MaintenanceWindowExecutionTaskInvocationIdentity { - s.InvocationId = &v - return s -} - -// SetOwnerInformation sets the OwnerInformation field's value. -func (s *MaintenanceWindowExecutionTaskInvocationIdentity) SetOwnerInformation(v string) *MaintenanceWindowExecutionTaskInvocationIdentity { - s.OwnerInformation = &v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *MaintenanceWindowExecutionTaskInvocationIdentity) SetParameters(v string) *MaintenanceWindowExecutionTaskInvocationIdentity { - s.Parameters = &v - return s -} - -// SetStartTime sets the StartTime field's value. -func (s *MaintenanceWindowExecutionTaskInvocationIdentity) SetStartTime(v time.Time) *MaintenanceWindowExecutionTaskInvocationIdentity { - s.StartTime = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *MaintenanceWindowExecutionTaskInvocationIdentity) SetStatus(v string) *MaintenanceWindowExecutionTaskInvocationIdentity { - s.Status = &v - return s -} - -// SetStatusDetails sets the StatusDetails field's value. -func (s *MaintenanceWindowExecutionTaskInvocationIdentity) SetStatusDetails(v string) *MaintenanceWindowExecutionTaskInvocationIdentity { - s.StatusDetails = &v - return s -} - -// SetTaskExecutionId sets the TaskExecutionId field's value. -func (s *MaintenanceWindowExecutionTaskInvocationIdentity) SetTaskExecutionId(v string) *MaintenanceWindowExecutionTaskInvocationIdentity { - s.TaskExecutionId = &v - return s -} - -// SetTaskType sets the TaskType field's value. -func (s *MaintenanceWindowExecutionTaskInvocationIdentity) SetTaskType(v string) *MaintenanceWindowExecutionTaskInvocationIdentity { - s.TaskType = &v - return s -} - -// SetWindowExecutionId sets the WindowExecutionId field's value. -func (s *MaintenanceWindowExecutionTaskInvocationIdentity) SetWindowExecutionId(v string) *MaintenanceWindowExecutionTaskInvocationIdentity { - s.WindowExecutionId = &v - return s -} - -// SetWindowTargetId sets the WindowTargetId field's value. -func (s *MaintenanceWindowExecutionTaskInvocationIdentity) SetWindowTargetId(v string) *MaintenanceWindowExecutionTaskInvocationIdentity { - s.WindowTargetId = &v - return s -} - -// Filter used in the request. Supported filter keys are Name and Enabled. -type MaintenanceWindowFilter struct { - _ struct{} `type:"structure"` - - // The name of the filter. - Key *string `min:"1" type:"string"` - - // The filter values. - Values []*string `type:"list"` -} - -// String returns the string representation -func (s MaintenanceWindowFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MaintenanceWindowFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *MaintenanceWindowFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "MaintenanceWindowFilter"} - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Key", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *MaintenanceWindowFilter) SetKey(v string) *MaintenanceWindowFilter { - s.Key = &v - return s -} - -// SetValues sets the Values field's value. -func (s *MaintenanceWindowFilter) SetValues(v []*string) *MaintenanceWindowFilter { - s.Values = v - return s -} - -// Information about the maintenance window. -type MaintenanceWindowIdentity struct { - _ struct{} `type:"structure"` - - // The number of hours before the end of the maintenance window that Systems - // Manager stops scheduling new tasks for execution. - Cutoff *int64 `type:"integer"` - - // A description of the maintenance window. - Description *string `min:"1" type:"string" sensitive:"true"` - - // The duration of the maintenance window in hours. - Duration *int64 `min:"1" type:"integer"` - - // Indicates whether the maintenance window is enabled. - Enabled *bool `type:"boolean"` - - // The date and time, in ISO-8601 Extended format, for when the maintenance - // window is scheduled to become inactive. - EndDate *string `type:"string"` - - // The name of the maintenance window. - Name *string `min:"3" type:"string"` - - // The next time the maintenance window will actually run, taking into account - // any specified times for the maintenance window to become active or inactive. - NextExecutionTime *string `type:"string"` - - // The schedule of the maintenance window in the form of a cron or rate expression. - Schedule *string `min:"1" type:"string"` - - // The number of days to wait to run a maintenance window after the scheduled - // CRON expression date and time. - ScheduleOffset *int64 `min:"1" type:"integer"` - - // The time zone that the scheduled maintenance window executions are based - // on, in Internet Assigned Numbers Authority (IANA) format. - ScheduleTimezone *string `type:"string"` - - // The date and time, in ISO-8601 Extended format, for when the maintenance - // window is scheduled to become active. - StartDate *string `type:"string"` - - // The ID of the maintenance window. - WindowId *string `min:"20" type:"string"` -} - -// String returns the string representation -func (s MaintenanceWindowIdentity) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MaintenanceWindowIdentity) GoString() string { - return s.String() -} - -// SetCutoff sets the Cutoff field's value. -func (s *MaintenanceWindowIdentity) SetCutoff(v int64) *MaintenanceWindowIdentity { - s.Cutoff = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *MaintenanceWindowIdentity) SetDescription(v string) *MaintenanceWindowIdentity { - s.Description = &v - return s -} - -// SetDuration sets the Duration field's value. -func (s *MaintenanceWindowIdentity) SetDuration(v int64) *MaintenanceWindowIdentity { - s.Duration = &v - return s -} - -// SetEnabled sets the Enabled field's value. -func (s *MaintenanceWindowIdentity) SetEnabled(v bool) *MaintenanceWindowIdentity { - s.Enabled = &v - return s -} - -// SetEndDate sets the EndDate field's value. -func (s *MaintenanceWindowIdentity) SetEndDate(v string) *MaintenanceWindowIdentity { - s.EndDate = &v - return s -} - -// SetName sets the Name field's value. -func (s *MaintenanceWindowIdentity) SetName(v string) *MaintenanceWindowIdentity { - s.Name = &v - return s -} - -// SetNextExecutionTime sets the NextExecutionTime field's value. -func (s *MaintenanceWindowIdentity) SetNextExecutionTime(v string) *MaintenanceWindowIdentity { - s.NextExecutionTime = &v - return s -} - -// SetSchedule sets the Schedule field's value. -func (s *MaintenanceWindowIdentity) SetSchedule(v string) *MaintenanceWindowIdentity { - s.Schedule = &v - return s -} - -// SetScheduleOffset sets the ScheduleOffset field's value. -func (s *MaintenanceWindowIdentity) SetScheduleOffset(v int64) *MaintenanceWindowIdentity { - s.ScheduleOffset = &v - return s -} - -// SetScheduleTimezone sets the ScheduleTimezone field's value. -func (s *MaintenanceWindowIdentity) SetScheduleTimezone(v string) *MaintenanceWindowIdentity { - s.ScheduleTimezone = &v - return s -} - -// SetStartDate sets the StartDate field's value. -func (s *MaintenanceWindowIdentity) SetStartDate(v string) *MaintenanceWindowIdentity { - s.StartDate = &v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *MaintenanceWindowIdentity) SetWindowId(v string) *MaintenanceWindowIdentity { - s.WindowId = &v - return s -} - -// The maintenance window to which the specified target belongs. -type MaintenanceWindowIdentityForTarget struct { - _ struct{} `type:"structure"` - - // The name of the maintenance window. - Name *string `min:"3" type:"string"` - - // The ID of the maintenance window. - WindowId *string `min:"20" type:"string"` -} - -// String returns the string representation -func (s MaintenanceWindowIdentityForTarget) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MaintenanceWindowIdentityForTarget) GoString() string { - return s.String() -} - -// SetName sets the Name field's value. -func (s *MaintenanceWindowIdentityForTarget) SetName(v string) *MaintenanceWindowIdentityForTarget { - s.Name = &v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *MaintenanceWindowIdentityForTarget) SetWindowId(v string) *MaintenanceWindowIdentityForTarget { - s.WindowId = &v - return s -} - -// The parameters for a LAMBDA task type. -// -// For information about specifying and updating task parameters, see RegisterTaskWithMaintenanceWindow -// and UpdateMaintenanceWindowTask. -// -// LoggingInfo has been deprecated. To specify an S3 bucket to contain logs, -// instead use the OutputS3BucketName and OutputS3KeyPrefix options in the TaskInvocationParameters -// structure. For information about how Systems Manager handles these options -// for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. -// -// TaskParameters has been deprecated. To specify parameters to pass to a task -// when it runs, instead use the Parameters option in the TaskInvocationParameters -// structure. For information about how Systems Manager handles these options -// for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. -// -// For Lambda tasks, Systems Manager ignores any values specified for TaskParameters -// and LoggingInfo. -type MaintenanceWindowLambdaParameters struct { - _ struct{} `type:"structure"` - - // Pass client-specific information to the Lambda function that you are invoking. - // You can then process the client information in your Lambda function as you - // choose through the context variable. - ClientContext *string `min:"1" type:"string"` - - // JSON to provide to your Lambda function as input. - // - // Payload is automatically base64 encoded/decoded by the SDK. - Payload []byte `type:"blob" sensitive:"true"` - - // (Optional) Specify a Lambda function version or alias name. If you specify - // a function version, the action uses the qualified function ARN to invoke - // a specific Lambda function. If you specify an alias name, the action uses - // the alias ARN to invoke the Lambda function version to which the alias points. - Qualifier *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s MaintenanceWindowLambdaParameters) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MaintenanceWindowLambdaParameters) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *MaintenanceWindowLambdaParameters) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "MaintenanceWindowLambdaParameters"} - if s.ClientContext != nil && len(*s.ClientContext) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ClientContext", 1)) - } - if s.Qualifier != nil && len(*s.Qualifier) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetClientContext sets the ClientContext field's value. -func (s *MaintenanceWindowLambdaParameters) SetClientContext(v string) *MaintenanceWindowLambdaParameters { - s.ClientContext = &v - return s -} - -// SetPayload sets the Payload field's value. -func (s *MaintenanceWindowLambdaParameters) SetPayload(v []byte) *MaintenanceWindowLambdaParameters { - s.Payload = v - return s -} - -// SetQualifier sets the Qualifier field's value. -func (s *MaintenanceWindowLambdaParameters) SetQualifier(v string) *MaintenanceWindowLambdaParameters { - s.Qualifier = &v - return s -} - -// The parameters for a RUN_COMMAND task type. -// -// For information about specifying and updating task parameters, see RegisterTaskWithMaintenanceWindow -// and UpdateMaintenanceWindowTask. -// -// LoggingInfo has been deprecated. To specify an S3 bucket to contain logs, -// instead use the OutputS3BucketName and OutputS3KeyPrefix options in the TaskInvocationParameters -// structure. For information about how Systems Manager handles these options -// for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. -// -// TaskParameters has been deprecated. To specify parameters to pass to a task -// when it runs, instead use the Parameters option in the TaskInvocationParameters -// structure. For information about how Systems Manager handles these options -// for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. -// -// For Run Command tasks, Systems Manager uses specified values for TaskParameters -// and LoggingInfo only if no values are specified for TaskInvocationParameters. -type MaintenanceWindowRunCommandParameters struct { - _ struct{} `type:"structure"` - - // Configuration options for sending command output to CloudWatch Logs. - CloudWatchOutputConfig *CloudWatchOutputConfig `type:"structure"` - - // Information about the commands to run. - Comment *string `type:"string"` - - // The SHA-256 or SHA-1 hash created by the system when the document was created. - // SHA-1 hashes have been deprecated. - DocumentHash *string `type:"string"` - - // SHA-256 or SHA-1. SHA-1 hashes have been deprecated. - DocumentHashType *string `type:"string" enum:"DocumentHashType"` - - // The SSM document version to use in the request. You can specify $DEFAULT, - // $LATEST, or a specific version number. If you run commands by using the AWS - // CLI, then you must escape the first two options by using a backslash. If - // you specify a version number, then you don't need to use the backslash. For - // example: - // - // --document-version "\$DEFAULT" - // - // --document-version "\$LATEST" - // - // --document-version "3" - DocumentVersion *string `type:"string"` - - // Configurations for sending notifications about command status changes on - // a per-instance basis. - NotificationConfig *NotificationConfig `type:"structure"` - - // The name of the S3 bucket. - OutputS3BucketName *string `min:"3" type:"string"` - - // The S3 bucket subfolder. - OutputS3KeyPrefix *string `type:"string"` - - // The parameters for the RUN_COMMAND task execution. - Parameters map[string][]*string `type:"map"` - - // The ARN of the IAM service role to use to publish Amazon Simple Notification - // Service (Amazon SNS) notifications for maintenance window Run Command tasks. - ServiceRoleArn *string `type:"string"` - - // If this time is reached and the command has not already started running, - // it doesn't run. - TimeoutSeconds *int64 `min:"30" type:"integer"` -} - -// String returns the string representation -func (s MaintenanceWindowRunCommandParameters) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MaintenanceWindowRunCommandParameters) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *MaintenanceWindowRunCommandParameters) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "MaintenanceWindowRunCommandParameters"} - if s.OutputS3BucketName != nil && len(*s.OutputS3BucketName) < 3 { - invalidParams.Add(request.NewErrParamMinLen("OutputS3BucketName", 3)) - } - if s.TimeoutSeconds != nil && *s.TimeoutSeconds < 30 { - invalidParams.Add(request.NewErrParamMinValue("TimeoutSeconds", 30)) - } - if s.CloudWatchOutputConfig != nil { - if err := s.CloudWatchOutputConfig.Validate(); err != nil { - invalidParams.AddNested("CloudWatchOutputConfig", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetCloudWatchOutputConfig sets the CloudWatchOutputConfig field's value. -func (s *MaintenanceWindowRunCommandParameters) SetCloudWatchOutputConfig(v *CloudWatchOutputConfig) *MaintenanceWindowRunCommandParameters { - s.CloudWatchOutputConfig = v - return s -} - -// SetComment sets the Comment field's value. -func (s *MaintenanceWindowRunCommandParameters) SetComment(v string) *MaintenanceWindowRunCommandParameters { - s.Comment = &v - return s -} - -// SetDocumentHash sets the DocumentHash field's value. -func (s *MaintenanceWindowRunCommandParameters) SetDocumentHash(v string) *MaintenanceWindowRunCommandParameters { - s.DocumentHash = &v - return s -} - -// SetDocumentHashType sets the DocumentHashType field's value. -func (s *MaintenanceWindowRunCommandParameters) SetDocumentHashType(v string) *MaintenanceWindowRunCommandParameters { - s.DocumentHashType = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *MaintenanceWindowRunCommandParameters) SetDocumentVersion(v string) *MaintenanceWindowRunCommandParameters { - s.DocumentVersion = &v - return s -} - -// SetNotificationConfig sets the NotificationConfig field's value. -func (s *MaintenanceWindowRunCommandParameters) SetNotificationConfig(v *NotificationConfig) *MaintenanceWindowRunCommandParameters { - s.NotificationConfig = v - return s -} - -// SetOutputS3BucketName sets the OutputS3BucketName field's value. -func (s *MaintenanceWindowRunCommandParameters) SetOutputS3BucketName(v string) *MaintenanceWindowRunCommandParameters { - s.OutputS3BucketName = &v - return s -} - -// SetOutputS3KeyPrefix sets the OutputS3KeyPrefix field's value. -func (s *MaintenanceWindowRunCommandParameters) SetOutputS3KeyPrefix(v string) *MaintenanceWindowRunCommandParameters { - s.OutputS3KeyPrefix = &v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *MaintenanceWindowRunCommandParameters) SetParameters(v map[string][]*string) *MaintenanceWindowRunCommandParameters { - s.Parameters = v - return s -} - -// SetServiceRoleArn sets the ServiceRoleArn field's value. -func (s *MaintenanceWindowRunCommandParameters) SetServiceRoleArn(v string) *MaintenanceWindowRunCommandParameters { - s.ServiceRoleArn = &v - return s -} - -// SetTimeoutSeconds sets the TimeoutSeconds field's value. -func (s *MaintenanceWindowRunCommandParameters) SetTimeoutSeconds(v int64) *MaintenanceWindowRunCommandParameters { - s.TimeoutSeconds = &v - return s -} - -// The parameters for a STEP_FUNCTIONS task. -// -// For information about specifying and updating task parameters, see RegisterTaskWithMaintenanceWindow -// and UpdateMaintenanceWindowTask. -// -// LoggingInfo has been deprecated. To specify an S3 bucket to contain logs, -// instead use the OutputS3BucketName and OutputS3KeyPrefix options in the TaskInvocationParameters -// structure. For information about how Systems Manager handles these options -// for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. -// -// TaskParameters has been deprecated. To specify parameters to pass to a task -// when it runs, instead use the Parameters option in the TaskInvocationParameters -// structure. For information about how Systems Manager handles these options -// for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. -// -// For Step Functions tasks, Systems Manager ignores any values specified for -// TaskParameters and LoggingInfo. -type MaintenanceWindowStepFunctionsParameters struct { - _ struct{} `type:"structure"` - - // The inputs for the STEP_FUNCTIONS task. - Input *string `type:"string" sensitive:"true"` - - // The name of the STEP_FUNCTIONS task. - Name *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s MaintenanceWindowStepFunctionsParameters) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MaintenanceWindowStepFunctionsParameters) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *MaintenanceWindowStepFunctionsParameters) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "MaintenanceWindowStepFunctionsParameters"} - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Name", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetInput sets the Input field's value. -func (s *MaintenanceWindowStepFunctionsParameters) SetInput(v string) *MaintenanceWindowStepFunctionsParameters { - s.Input = &v - return s -} - -// SetName sets the Name field's value. -func (s *MaintenanceWindowStepFunctionsParameters) SetName(v string) *MaintenanceWindowStepFunctionsParameters { - s.Name = &v - return s -} - -// The target registered with the maintenance window. -type MaintenanceWindowTarget struct { - _ struct{} `type:"structure"` - - // A description for the target. - Description *string `min:"1" type:"string" sensitive:"true"` - - // The name for the maintenance window target. - Name *string `min:"3" type:"string"` - - // A user-provided value that will be included in any CloudWatch events that - // are raised while running tasks for these targets in this maintenance window. - OwnerInformation *string `min:"1" type:"string" sensitive:"true"` - - // The type of target that is being registered with the maintenance window. - ResourceType *string `type:"string" enum:"MaintenanceWindowResourceType"` - - // The targets, either instances or tags. - // - // Specify instances using the following format: - // - // Key=instanceids,Values=, - // - // Tags are specified using the following format: - // - // Key=,Values=. - Targets []*Target `type:"list"` - - // The ID of the maintenance window to register the target with. - WindowId *string `min:"20" type:"string"` - - // The ID of the target. - WindowTargetId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s MaintenanceWindowTarget) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MaintenanceWindowTarget) GoString() string { - return s.String() -} - -// SetDescription sets the Description field's value. -func (s *MaintenanceWindowTarget) SetDescription(v string) *MaintenanceWindowTarget { - s.Description = &v - return s -} - -// SetName sets the Name field's value. -func (s *MaintenanceWindowTarget) SetName(v string) *MaintenanceWindowTarget { - s.Name = &v - return s -} - -// SetOwnerInformation sets the OwnerInformation field's value. -func (s *MaintenanceWindowTarget) SetOwnerInformation(v string) *MaintenanceWindowTarget { - s.OwnerInformation = &v - return s -} - -// SetResourceType sets the ResourceType field's value. -func (s *MaintenanceWindowTarget) SetResourceType(v string) *MaintenanceWindowTarget { - s.ResourceType = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *MaintenanceWindowTarget) SetTargets(v []*Target) *MaintenanceWindowTarget { - s.Targets = v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *MaintenanceWindowTarget) SetWindowId(v string) *MaintenanceWindowTarget { - s.WindowId = &v - return s -} - -// SetWindowTargetId sets the WindowTargetId field's value. -func (s *MaintenanceWindowTarget) SetWindowTargetId(v string) *MaintenanceWindowTarget { - s.WindowTargetId = &v - return s -} - -// Information about a task defined for a maintenance window. -type MaintenanceWindowTask struct { - _ struct{} `type:"structure"` - - // A description of the task. - Description *string `min:"1" type:"string" sensitive:"true"` - - // Information about an S3 bucket to write task-level logs to. - // - // LoggingInfo has been deprecated. To specify an S3 bucket to contain logs, - // instead use the OutputS3BucketName and OutputS3KeyPrefix options in the TaskInvocationParameters - // structure. For information about how Systems Manager handles these options - // for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. - LoggingInfo *LoggingInfo `type:"structure"` - - // The maximum number of targets this task can be run for, in parallel. - MaxConcurrency *string `min:"1" type:"string"` - - // The maximum number of errors allowed before this task stops being scheduled. - MaxErrors *string `min:"1" type:"string"` - - // The task name. - Name *string `min:"3" type:"string"` - - // The priority of the task in the maintenance window. The lower the number, - // the higher the priority. Tasks that have the same priority are scheduled - // in parallel. - Priority *int64 `type:"integer"` - - // The ARN of the IAM service role to use to publish Amazon Simple Notification - // Service (Amazon SNS) notifications for maintenance window Run Command tasks. - ServiceRoleArn *string `type:"string"` - - // The targets (either instances or tags). Instances are specified using Key=instanceids,Values=,. - // Tags are specified using Key=,Values=. - Targets []*Target `type:"list"` - - // The resource that the task uses during execution. For RUN_COMMAND and AUTOMATION - // task types, TaskArn is the Systems Manager document name or ARN. For LAMBDA - // tasks, it's the function name or ARN. For STEP_FUNCTIONS tasks, it's the - // state machine ARN. - TaskArn *string `min:"1" type:"string"` - - // The parameters that should be passed to the task when it is run. - // - // TaskParameters has been deprecated. To specify parameters to pass to a task - // when it runs, instead use the Parameters option in the TaskInvocationParameters - // structure. For information about how Systems Manager handles these options - // for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. - TaskParameters map[string]*MaintenanceWindowTaskParameterValueExpression `type:"map" sensitive:"true"` - - // The type of task. The type can be one of the following: RUN_COMMAND, AUTOMATION, - // LAMBDA, or STEP_FUNCTIONS. - Type *string `type:"string" enum:"MaintenanceWindowTaskType"` - - // The ID of the maintenance window where the task is registered. - WindowId *string `min:"20" type:"string"` - - // The task ID. - WindowTaskId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s MaintenanceWindowTask) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MaintenanceWindowTask) GoString() string { - return s.String() -} - -// SetDescription sets the Description field's value. -func (s *MaintenanceWindowTask) SetDescription(v string) *MaintenanceWindowTask { - s.Description = &v - return s -} - -// SetLoggingInfo sets the LoggingInfo field's value. -func (s *MaintenanceWindowTask) SetLoggingInfo(v *LoggingInfo) *MaintenanceWindowTask { - s.LoggingInfo = v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *MaintenanceWindowTask) SetMaxConcurrency(v string) *MaintenanceWindowTask { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *MaintenanceWindowTask) SetMaxErrors(v string) *MaintenanceWindowTask { - s.MaxErrors = &v - return s -} - -// SetName sets the Name field's value. -func (s *MaintenanceWindowTask) SetName(v string) *MaintenanceWindowTask { - s.Name = &v - return s -} - -// SetPriority sets the Priority field's value. -func (s *MaintenanceWindowTask) SetPriority(v int64) *MaintenanceWindowTask { - s.Priority = &v - return s -} - -// SetServiceRoleArn sets the ServiceRoleArn field's value. -func (s *MaintenanceWindowTask) SetServiceRoleArn(v string) *MaintenanceWindowTask { - s.ServiceRoleArn = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *MaintenanceWindowTask) SetTargets(v []*Target) *MaintenanceWindowTask { - s.Targets = v - return s -} - -// SetTaskArn sets the TaskArn field's value. -func (s *MaintenanceWindowTask) SetTaskArn(v string) *MaintenanceWindowTask { - s.TaskArn = &v - return s -} - -// SetTaskParameters sets the TaskParameters field's value. -func (s *MaintenanceWindowTask) SetTaskParameters(v map[string]*MaintenanceWindowTaskParameterValueExpression) *MaintenanceWindowTask { - s.TaskParameters = v - return s -} - -// SetType sets the Type field's value. -func (s *MaintenanceWindowTask) SetType(v string) *MaintenanceWindowTask { - s.Type = &v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *MaintenanceWindowTask) SetWindowId(v string) *MaintenanceWindowTask { - s.WindowId = &v - return s -} - -// SetWindowTaskId sets the WindowTaskId field's value. -func (s *MaintenanceWindowTask) SetWindowTaskId(v string) *MaintenanceWindowTask { - s.WindowTaskId = &v - return s -} - -// The parameters for task execution. -type MaintenanceWindowTaskInvocationParameters struct { - _ struct{} `type:"structure"` - - // The parameters for an AUTOMATION task type. - Automation *MaintenanceWindowAutomationParameters `type:"structure"` - - // The parameters for a LAMBDA task type. - Lambda *MaintenanceWindowLambdaParameters `type:"structure"` - - // The parameters for a RUN_COMMAND task type. - RunCommand *MaintenanceWindowRunCommandParameters `type:"structure"` - - // The parameters for a STEP_FUNCTIONS task type. - StepFunctions *MaintenanceWindowStepFunctionsParameters `type:"structure"` -} - -// String returns the string representation -func (s MaintenanceWindowTaskInvocationParameters) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MaintenanceWindowTaskInvocationParameters) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *MaintenanceWindowTaskInvocationParameters) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "MaintenanceWindowTaskInvocationParameters"} - if s.Automation != nil { - if err := s.Automation.Validate(); err != nil { - invalidParams.AddNested("Automation", err.(request.ErrInvalidParams)) - } - } - if s.Lambda != nil { - if err := s.Lambda.Validate(); err != nil { - invalidParams.AddNested("Lambda", err.(request.ErrInvalidParams)) - } - } - if s.RunCommand != nil { - if err := s.RunCommand.Validate(); err != nil { - invalidParams.AddNested("RunCommand", err.(request.ErrInvalidParams)) - } - } - if s.StepFunctions != nil { - if err := s.StepFunctions.Validate(); err != nil { - invalidParams.AddNested("StepFunctions", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAutomation sets the Automation field's value. -func (s *MaintenanceWindowTaskInvocationParameters) SetAutomation(v *MaintenanceWindowAutomationParameters) *MaintenanceWindowTaskInvocationParameters { - s.Automation = v - return s -} - -// SetLambda sets the Lambda field's value. -func (s *MaintenanceWindowTaskInvocationParameters) SetLambda(v *MaintenanceWindowLambdaParameters) *MaintenanceWindowTaskInvocationParameters { - s.Lambda = v - return s -} - -// SetRunCommand sets the RunCommand field's value. -func (s *MaintenanceWindowTaskInvocationParameters) SetRunCommand(v *MaintenanceWindowRunCommandParameters) *MaintenanceWindowTaskInvocationParameters { - s.RunCommand = v - return s -} - -// SetStepFunctions sets the StepFunctions field's value. -func (s *MaintenanceWindowTaskInvocationParameters) SetStepFunctions(v *MaintenanceWindowStepFunctionsParameters) *MaintenanceWindowTaskInvocationParameters { - s.StepFunctions = v - return s -} - -// Defines the values for a task parameter. -type MaintenanceWindowTaskParameterValueExpression struct { - _ struct{} `type:"structure" sensitive:"true"` - - // This field contains an array of 0 or more strings, each 1 to 255 characters - // in length. - Values []*string `type:"list" sensitive:"true"` -} - -// String returns the string representation -func (s MaintenanceWindowTaskParameterValueExpression) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MaintenanceWindowTaskParameterValueExpression) GoString() string { - return s.String() -} - -// SetValues sets the Values field's value. -func (s *MaintenanceWindowTaskParameterValueExpression) SetValues(v []*string) *MaintenanceWindowTaskParameterValueExpression { - s.Values = v - return s -} - -// The size limit of a document is 64 KB. -type MaxDocumentSizeExceeded struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s MaxDocumentSizeExceeded) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MaxDocumentSizeExceeded) GoString() string { - return s.String() -} - -func newErrorMaxDocumentSizeExceeded(v protocol.ResponseMetadata) error { - return &MaxDocumentSizeExceeded{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *MaxDocumentSizeExceeded) Code() string { - return "MaxDocumentSizeExceeded" -} - -// Message returns the exception's message. -func (s *MaxDocumentSizeExceeded) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *MaxDocumentSizeExceeded) OrigErr() error { - return nil -} - -func (s *MaxDocumentSizeExceeded) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *MaxDocumentSizeExceeded) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *MaxDocumentSizeExceeded) RequestID() string { - return s.RespMetadata.RequestID -} - -// Metadata to assign to an Application Manager application. -type MetadataValue struct { - _ struct{} `type:"structure"` - - // Metadata value to assign to an Application Manager application. - Value *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s MetadataValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s MetadataValue) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *MetadataValue) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "MetadataValue"} - if s.Value != nil && len(*s.Value) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Value", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetValue sets the Value field's value. -func (s *MetadataValue) SetValue(v string) *MetadataValue { - s.Value = &v - return s -} - -type ModifyDocumentPermissionInput struct { - _ struct{} `type:"structure"` - - // The AWS user accounts that should have access to the document. The account - // IDs can either be a group of account IDs or All. - AccountIdsToAdd []*string `type:"list"` - - // The AWS user accounts that should no longer have access to the document. - // The AWS user account can either be a group of account IDs or All. This action - // has a higher priority than AccountIdsToAdd. If you specify an account ID - // to add and the same ID to remove, the system removes access to the document. - AccountIdsToRemove []*string `type:"list"` - - // The name of the document that you want to share. - // - // Name is a required field - Name *string `type:"string" required:"true"` - - // The permission type for the document. The permission type can be Share. - // - // PermissionType is a required field - PermissionType *string `type:"string" required:"true" enum:"DocumentPermissionType"` - - // (Optional) The version of the document to share. If it's not specified, the - // system choose the Default version to share. - SharedDocumentVersion *string `type:"string"` -} - -// String returns the string representation -func (s ModifyDocumentPermissionInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ModifyDocumentPermissionInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ModifyDocumentPermissionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ModifyDocumentPermissionInput"} - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.PermissionType == nil { - invalidParams.Add(request.NewErrParamRequired("PermissionType")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAccountIdsToAdd sets the AccountIdsToAdd field's value. -func (s *ModifyDocumentPermissionInput) SetAccountIdsToAdd(v []*string) *ModifyDocumentPermissionInput { - s.AccountIdsToAdd = v - return s -} - -// SetAccountIdsToRemove sets the AccountIdsToRemove field's value. -func (s *ModifyDocumentPermissionInput) SetAccountIdsToRemove(v []*string) *ModifyDocumentPermissionInput { - s.AccountIdsToRemove = v - return s -} - -// SetName sets the Name field's value. -func (s *ModifyDocumentPermissionInput) SetName(v string) *ModifyDocumentPermissionInput { - s.Name = &v - return s -} - -// SetPermissionType sets the PermissionType field's value. -func (s *ModifyDocumentPermissionInput) SetPermissionType(v string) *ModifyDocumentPermissionInput { - s.PermissionType = &v - return s -} - -// SetSharedDocumentVersion sets the SharedDocumentVersion field's value. -func (s *ModifyDocumentPermissionInput) SetSharedDocumentVersion(v string) *ModifyDocumentPermissionInput { - s.SharedDocumentVersion = &v - return s -} - -type ModifyDocumentPermissionOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s ModifyDocumentPermissionOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ModifyDocumentPermissionOutput) GoString() string { - return s.String() -} - -// A summary of resources that are not compliant. The summary is organized according -// to resource type. -type NonCompliantSummary struct { - _ struct{} `type:"structure"` - - // The total number of compliance items that are not compliant. - NonCompliantCount *int64 `type:"integer"` - - // A summary of the non-compliance severity by compliance type - SeveritySummary *SeveritySummary `type:"structure"` -} - -// String returns the string representation -func (s NonCompliantSummary) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s NonCompliantSummary) GoString() string { - return s.String() -} - -// SetNonCompliantCount sets the NonCompliantCount field's value. -func (s *NonCompliantSummary) SetNonCompliantCount(v int64) *NonCompliantSummary { - s.NonCompliantCount = &v - return s -} - -// SetSeveritySummary sets the SeveritySummary field's value. -func (s *NonCompliantSummary) SetSeveritySummary(v *SeveritySummary) *NonCompliantSummary { - s.SeveritySummary = v - return s -} - -// Configurations for sending notifications. -type NotificationConfig struct { - _ struct{} `type:"structure"` - - // An Amazon Resource Name (ARN) for an Amazon Simple Notification Service (Amazon - // SNS) topic. Run Command pushes notifications about command status changes - // to this topic. - NotificationArn *string `type:"string"` - - // The different events for which you can receive notifications. These events - // include the following: All (events), InProgress, Success, TimedOut, Cancelled, - // Failed. To learn more about these events, see Monitoring Systems Manager - // status changes using Amazon SNS notifications (https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring-sns-notifications.html) - // in the AWS Systems Manager User Guide. - NotificationEvents []*string `type:"list"` - - // Command: Receive notification when the status of a command changes. Invocation: - // For commands sent to multiple instances, receive notification on a per-instance - // basis when the status of a command changes. - NotificationType *string `type:"string" enum:"NotificationType"` -} - -// String returns the string representation -func (s NotificationConfig) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s NotificationConfig) GoString() string { - return s.String() -} - -// SetNotificationArn sets the NotificationArn field's value. -func (s *NotificationConfig) SetNotificationArn(v string) *NotificationConfig { - s.NotificationArn = &v - return s -} - -// SetNotificationEvents sets the NotificationEvents field's value. -func (s *NotificationConfig) SetNotificationEvents(v []*string) *NotificationConfig { - s.NotificationEvents = v - return s -} - -// SetNotificationType sets the NotificationType field's value. -func (s *NotificationConfig) SetNotificationType(v string) *NotificationConfig { - s.NotificationType = &v - return s -} - -// One or more aggregators for viewing counts of OpsItems using different dimensions -// such as Source, CreatedTime, or Source and CreatedTime, to name a few. -type OpsAggregator struct { - _ struct{} `type:"structure"` - - // Either a Range or Count aggregator for limiting an OpsItem summary. - AggregatorType *string `min:"1" type:"string"` - - // A nested aggregator for viewing counts of OpsItems. - Aggregators []*OpsAggregator `min:"1" type:"list"` - - // The name of an OpsItem attribute on which to limit the count of OpsItems. - AttributeName *string `min:"1" type:"string"` - - // The aggregator filters. - Filters []*OpsFilter `min:"1" type:"list"` - - // The data type name to use for viewing counts of OpsItems. - TypeName *string `min:"1" type:"string"` - - // The aggregator value. - Values map[string]*string `type:"map"` -} - -// String returns the string representation -func (s OpsAggregator) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsAggregator) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *OpsAggregator) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "OpsAggregator"} - if s.AggregatorType != nil && len(*s.AggregatorType) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AggregatorType", 1)) - } - if s.Aggregators != nil && len(s.Aggregators) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Aggregators", 1)) - } - if s.AttributeName != nil && len(*s.AttributeName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1)) - } - if s.Filters != nil && len(s.Filters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Filters", 1)) - } - if s.TypeName != nil && len(*s.TypeName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TypeName", 1)) - } - if s.Aggregators != nil { - for i, v := range s.Aggregators { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Aggregators", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Filters != nil { - for i, v := range s.Filters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAggregatorType sets the AggregatorType field's value. -func (s *OpsAggregator) SetAggregatorType(v string) *OpsAggregator { - s.AggregatorType = &v - return s -} - -// SetAggregators sets the Aggregators field's value. -func (s *OpsAggregator) SetAggregators(v []*OpsAggregator) *OpsAggregator { - s.Aggregators = v - return s -} - -// SetAttributeName sets the AttributeName field's value. -func (s *OpsAggregator) SetAttributeName(v string) *OpsAggregator { - s.AttributeName = &v - return s -} - -// SetFilters sets the Filters field's value. -func (s *OpsAggregator) SetFilters(v []*OpsFilter) *OpsAggregator { - s.Filters = v - return s -} - -// SetTypeName sets the TypeName field's value. -func (s *OpsAggregator) SetTypeName(v string) *OpsAggregator { - s.TypeName = &v - return s -} - -// SetValues sets the Values field's value. -func (s *OpsAggregator) SetValues(v map[string]*string) *OpsAggregator { - s.Values = v - return s -} - -// The result of the query. -type OpsEntity struct { - _ struct{} `type:"structure"` - - // The data returned by the query. - Data map[string]*OpsEntityItem `type:"map"` - - // The query ID. - Id *string `type:"string"` -} - -// String returns the string representation -func (s OpsEntity) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsEntity) GoString() string { - return s.String() -} - -// SetData sets the Data field's value. -func (s *OpsEntity) SetData(v map[string]*OpsEntityItem) *OpsEntity { - s.Data = v - return s -} - -// SetId sets the Id field's value. -func (s *OpsEntity) SetId(v string) *OpsEntity { - s.Id = &v - return s -} - -// The OpsItem summaries result item. -type OpsEntityItem struct { - _ struct{} `type:"structure"` - - // The time OpsItem data was captured. - CaptureTime *string `type:"string"` - - // The detailed data content for an OpsItem summaries result item. - Content []map[string]*string `type:"list"` -} - -// String returns the string representation -func (s OpsEntityItem) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsEntityItem) GoString() string { - return s.String() -} - -// SetCaptureTime sets the CaptureTime field's value. -func (s *OpsEntityItem) SetCaptureTime(v string) *OpsEntityItem { - s.CaptureTime = &v - return s -} - -// SetContent sets the Content field's value. -func (s *OpsEntityItem) SetContent(v []map[string]*string) *OpsEntityItem { - s.Content = v - return s -} - -// A filter for viewing OpsItem summaries. -type OpsFilter struct { - _ struct{} `type:"structure"` - - // The name of the filter. - // - // Key is a required field - Key *string `min:"1" type:"string" required:"true"` - - // The type of filter. - Type *string `type:"string" enum:"OpsFilterOperatorType"` - - // The filter value. - // - // Values is a required field - Values []*string `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s OpsFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *OpsFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "OpsFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Key", 1)) - } - if s.Values == nil { - invalidParams.Add(request.NewErrParamRequired("Values")) - } - if s.Values != nil && len(s.Values) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Values", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *OpsFilter) SetKey(v string) *OpsFilter { - s.Key = &v - return s -} - -// SetType sets the Type field's value. -func (s *OpsFilter) SetType(v string) *OpsFilter { - s.Type = &v - return s -} - -// SetValues sets the Values field's value. -func (s *OpsFilter) SetValues(v []*string) *OpsFilter { - s.Values = v - return s -} - -// Operations engineers and IT professionals use OpsCenter to view, investigate, -// and remediate operational issues impacting the performance and health of -// their AWS resources. For more information, see AWS Systems Manager OpsCenter -// (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html) -// in the AWS Systems Manager User Guide. -type OpsItem struct { - _ struct{} `type:"structure"` - - // The time a runbook workflow ended. Currently reported only for the OpsItem - // type /aws/changerequest. - ActualEndTime *time.Time `type:"timestamp"` - - // The time a runbook workflow started. Currently reported only for the OpsItem - // type /aws/changerequest. - ActualStartTime *time.Time `type:"timestamp"` - - // An OpsItem category. Category options include: Availability, Cost, Performance, - // Recovery, Security. - Category *string `min:"1" type:"string"` - - // The ARN of the AWS account that created the OpsItem. - CreatedBy *string `type:"string"` - - // The date and time the OpsItem was created. - CreatedTime *time.Time `type:"timestamp"` - - // The OpsItem description. - Description *string `min:"1" type:"string"` - - // The ARN of the AWS account that last updated the OpsItem. - LastModifiedBy *string `type:"string"` - - // The date and time the OpsItem was last updated. - LastModifiedTime *time.Time `type:"timestamp"` - - // The Amazon Resource Name (ARN) of an SNS topic where notifications are sent - // when this OpsItem is edited or changed. - Notifications []*OpsItemNotification `type:"list"` - - // Operational data is custom data that provides useful reference details about - // the OpsItem. For example, you can specify log files, error strings, license - // keys, troubleshooting tips, or other relevant data. You enter operational - // data as key-value pairs. The key has a maximum length of 128 characters. - // The value has a maximum size of 20 KB. - // - // Operational data keys can't begin with the following: amazon, aws, amzn, - // ssm, /amazon, /aws, /amzn, /ssm. - // - // You can choose to make the data searchable by other users in the account - // or you can restrict search access. Searchable data means that all users with - // access to the OpsItem Overview page (as provided by the DescribeOpsItems - // API action) can view and search on the specified data. Operational data that - // is not searchable is only viewable by users who have access to the OpsItem - // (as provided by the GetOpsItem API action). - // - // Use the /aws/resources key in OperationalData to specify a related resource - // in the request. Use the /aws/automations key in OperationalData to associate - // an Automation runbook with the OpsItem. To view AWS CLI example commands - // that use these keys, see Creating OpsItems manually (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-creating-OpsItems.html#OpsCenter-manually-create-OpsItems) - // in the AWS Systems Manager User Guide. - OperationalData map[string]*OpsItemDataValue `type:"map"` - - // The ID of the OpsItem. - OpsItemId *string `type:"string"` - - // The type of OpsItem. Currently, the only valid values are /aws/changerequest - // and /aws/issue. - OpsItemType *string `type:"string"` - - // The time specified in a change request for a runbook workflow to end. Currently - // supported only for the OpsItem type /aws/changerequest. - PlannedEndTime *time.Time `type:"timestamp"` - - // The time specified in a change request for a runbook workflow to start. Currently - // supported only for the OpsItem type /aws/changerequest. - PlannedStartTime *time.Time `type:"timestamp"` - - // The importance of this OpsItem in relation to other OpsItems in the system. - Priority *int64 `min:"1" type:"integer"` - - // One or more OpsItems that share something in common with the current OpsItem. - // For example, related OpsItems can include OpsItems with similar error messages, - // impacted resources, or statuses for the impacted resource. - RelatedOpsItems []*RelatedOpsItem `type:"list"` - - // The severity of the OpsItem. Severity options range from 1 to 4. - Severity *string `min:"1" type:"string"` - - // The origin of the OpsItem, such as Amazon EC2 or Systems Manager. The impacted - // resource is a subset of source. - Source *string `min:"1" type:"string"` - - // The OpsItem status. Status can be Open, In Progress, or Resolved. For more - // information, see Editing OpsItem details (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-working-with-OpsItems-editing-details.html) - // in the AWS Systems Manager User Guide. - Status *string `type:"string" enum:"OpsItemStatus"` - - // A short heading that describes the nature of the OpsItem and the impacted - // resource. - Title *string `min:"1" type:"string"` - - // The version of this OpsItem. Each time the OpsItem is edited the version - // number increments by one. - Version *string `type:"string"` -} - -// String returns the string representation -func (s OpsItem) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsItem) GoString() string { - return s.String() -} - -// SetActualEndTime sets the ActualEndTime field's value. -func (s *OpsItem) SetActualEndTime(v time.Time) *OpsItem { - s.ActualEndTime = &v - return s -} - -// SetActualStartTime sets the ActualStartTime field's value. -func (s *OpsItem) SetActualStartTime(v time.Time) *OpsItem { - s.ActualStartTime = &v - return s -} - -// SetCategory sets the Category field's value. -func (s *OpsItem) SetCategory(v string) *OpsItem { - s.Category = &v - return s -} - -// SetCreatedBy sets the CreatedBy field's value. -func (s *OpsItem) SetCreatedBy(v string) *OpsItem { - s.CreatedBy = &v - return s -} - -// SetCreatedTime sets the CreatedTime field's value. -func (s *OpsItem) SetCreatedTime(v time.Time) *OpsItem { - s.CreatedTime = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *OpsItem) SetDescription(v string) *OpsItem { - s.Description = &v - return s -} - -// SetLastModifiedBy sets the LastModifiedBy field's value. -func (s *OpsItem) SetLastModifiedBy(v string) *OpsItem { - s.LastModifiedBy = &v - return s -} - -// SetLastModifiedTime sets the LastModifiedTime field's value. -func (s *OpsItem) SetLastModifiedTime(v time.Time) *OpsItem { - s.LastModifiedTime = &v - return s -} - -// SetNotifications sets the Notifications field's value. -func (s *OpsItem) SetNotifications(v []*OpsItemNotification) *OpsItem { - s.Notifications = v - return s -} - -// SetOperationalData sets the OperationalData field's value. -func (s *OpsItem) SetOperationalData(v map[string]*OpsItemDataValue) *OpsItem { - s.OperationalData = v - return s -} - -// SetOpsItemId sets the OpsItemId field's value. -func (s *OpsItem) SetOpsItemId(v string) *OpsItem { - s.OpsItemId = &v - return s -} - -// SetOpsItemType sets the OpsItemType field's value. -func (s *OpsItem) SetOpsItemType(v string) *OpsItem { - s.OpsItemType = &v - return s -} - -// SetPlannedEndTime sets the PlannedEndTime field's value. -func (s *OpsItem) SetPlannedEndTime(v time.Time) *OpsItem { - s.PlannedEndTime = &v - return s -} - -// SetPlannedStartTime sets the PlannedStartTime field's value. -func (s *OpsItem) SetPlannedStartTime(v time.Time) *OpsItem { - s.PlannedStartTime = &v - return s -} - -// SetPriority sets the Priority field's value. -func (s *OpsItem) SetPriority(v int64) *OpsItem { - s.Priority = &v - return s -} - -// SetRelatedOpsItems sets the RelatedOpsItems field's value. -func (s *OpsItem) SetRelatedOpsItems(v []*RelatedOpsItem) *OpsItem { - s.RelatedOpsItems = v - return s -} - -// SetSeverity sets the Severity field's value. -func (s *OpsItem) SetSeverity(v string) *OpsItem { - s.Severity = &v - return s -} - -// SetSource sets the Source field's value. -func (s *OpsItem) SetSource(v string) *OpsItem { - s.Source = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *OpsItem) SetStatus(v string) *OpsItem { - s.Status = &v - return s -} - -// SetTitle sets the Title field's value. -func (s *OpsItem) SetTitle(v string) *OpsItem { - s.Title = &v - return s -} - -// SetVersion sets the Version field's value. -func (s *OpsItem) SetVersion(v string) *OpsItem { - s.Version = &v - return s -} - -// The OpsItem already exists. -type OpsItemAlreadyExistsException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` - - OpsItemId *string `type:"string"` -} - -// String returns the string representation -func (s OpsItemAlreadyExistsException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsItemAlreadyExistsException) GoString() string { - return s.String() -} - -func newErrorOpsItemAlreadyExistsException(v protocol.ResponseMetadata) error { - return &OpsItemAlreadyExistsException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *OpsItemAlreadyExistsException) Code() string { - return "OpsItemAlreadyExistsException" -} - -// Message returns the exception's message. -func (s *OpsItemAlreadyExistsException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *OpsItemAlreadyExistsException) OrigErr() error { - return nil -} - -func (s *OpsItemAlreadyExistsException) Error() string { - return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *OpsItemAlreadyExistsException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *OpsItemAlreadyExistsException) RequestID() string { - return s.RespMetadata.RequestID -} - -// An object that defines the value of the key and its type in the OperationalData -// map. -type OpsItemDataValue struct { - _ struct{} `type:"structure"` - - // The type of key-value pair. Valid types include SearchableString and String. - Type *string `type:"string" enum:"OpsItemDataType"` - - // The value of the OperationalData key. - Value *string `type:"string"` -} - -// String returns the string representation -func (s OpsItemDataValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsItemDataValue) GoString() string { - return s.String() -} - -// SetType sets the Type field's value. -func (s *OpsItemDataValue) SetType(v string) *OpsItemDataValue { - s.Type = &v - return s -} - -// SetValue sets the Value field's value. -func (s *OpsItemDataValue) SetValue(v string) *OpsItemDataValue { - s.Value = &v - return s -} - -// Describes a filter for a specific list of OpsItem events. You can filter -// event information by using tags. You specify tags by using a key-value pair -// mapping. -type OpsItemEventFilter struct { - _ struct{} `type:"structure"` - - // The name of the filter key. Currently, the only supported value is OpsItemId. - // - // Key is a required field - Key *string `type:"string" required:"true" enum:"OpsItemEventFilterKey"` - - // The operator used by the filter call. Currently, the only supported value - // is Equal. - // - // Operator is a required field - Operator *string `type:"string" required:"true" enum:"OpsItemEventFilterOperator"` - - // The values for the filter, consisting of one or more OpsItem IDs. - // - // Values is a required field - Values []*string `type:"list" required:"true"` -} - -// String returns the string representation -func (s OpsItemEventFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsItemEventFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *OpsItemEventFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "OpsItemEventFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Operator == nil { - invalidParams.Add(request.NewErrParamRequired("Operator")) - } - if s.Values == nil { - invalidParams.Add(request.NewErrParamRequired("Values")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *OpsItemEventFilter) SetKey(v string) *OpsItemEventFilter { - s.Key = &v - return s -} - -// SetOperator sets the Operator field's value. -func (s *OpsItemEventFilter) SetOperator(v string) *OpsItemEventFilter { - s.Operator = &v - return s -} - -// SetValues sets the Values field's value. -func (s *OpsItemEventFilter) SetValues(v []*string) *OpsItemEventFilter { - s.Values = v - return s -} - -// Summary information about an OpsItem event. -type OpsItemEventSummary struct { - _ struct{} `type:"structure"` - - // Information about the user or resource that created the OpsItem event. - CreatedBy *OpsItemIdentity `type:"structure"` - - // The date and time the OpsItem event was created. - CreatedTime *time.Time `type:"timestamp"` - - // Specific information about the OpsItem event. - Detail *string `type:"string"` - - // The type of information provided as a detail. - DetailType *string `type:"string"` - - // The ID of the OpsItem event. - EventId *string `type:"string"` - - // The ID of the OpsItem. - OpsItemId *string `type:"string"` - - // The source of the OpsItem event. - Source *string `type:"string"` -} - -// String returns the string representation -func (s OpsItemEventSummary) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsItemEventSummary) GoString() string { - return s.String() -} - -// SetCreatedBy sets the CreatedBy field's value. -func (s *OpsItemEventSummary) SetCreatedBy(v *OpsItemIdentity) *OpsItemEventSummary { - s.CreatedBy = v - return s -} - -// SetCreatedTime sets the CreatedTime field's value. -func (s *OpsItemEventSummary) SetCreatedTime(v time.Time) *OpsItemEventSummary { - s.CreatedTime = &v - return s -} - -// SetDetail sets the Detail field's value. -func (s *OpsItemEventSummary) SetDetail(v string) *OpsItemEventSummary { - s.Detail = &v - return s -} - -// SetDetailType sets the DetailType field's value. -func (s *OpsItemEventSummary) SetDetailType(v string) *OpsItemEventSummary { - s.DetailType = &v - return s -} - -// SetEventId sets the EventId field's value. -func (s *OpsItemEventSummary) SetEventId(v string) *OpsItemEventSummary { - s.EventId = &v - return s -} - -// SetOpsItemId sets the OpsItemId field's value. -func (s *OpsItemEventSummary) SetOpsItemId(v string) *OpsItemEventSummary { - s.OpsItemId = &v - return s -} - -// SetSource sets the Source field's value. -func (s *OpsItemEventSummary) SetSource(v string) *OpsItemEventSummary { - s.Source = &v - return s -} - -// Describes an OpsItem filter. -type OpsItemFilter struct { - _ struct{} `type:"structure"` - - // The name of the filter. - // - // Key is a required field - Key *string `type:"string" required:"true" enum:"OpsItemFilterKey"` - - // The operator used by the filter call. - // - // Operator is a required field - Operator *string `type:"string" required:"true" enum:"OpsItemFilterOperator"` - - // The filter value. - // - // Values is a required field - Values []*string `type:"list" required:"true"` -} - -// String returns the string representation -func (s OpsItemFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsItemFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *OpsItemFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "OpsItemFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Operator == nil { - invalidParams.Add(request.NewErrParamRequired("Operator")) - } - if s.Values == nil { - invalidParams.Add(request.NewErrParamRequired("Values")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *OpsItemFilter) SetKey(v string) *OpsItemFilter { - s.Key = &v - return s -} - -// SetOperator sets the Operator field's value. -func (s *OpsItemFilter) SetOperator(v string) *OpsItemFilter { - s.Operator = &v - return s -} - -// SetValues sets the Values field's value. -func (s *OpsItemFilter) SetValues(v []*string) *OpsItemFilter { - s.Values = v - return s -} - -// Information about the user or resource that created an OpsItem event. -type OpsItemIdentity struct { - _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem - // event. - Arn *string `type:"string"` -} - -// String returns the string representation -func (s OpsItemIdentity) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsItemIdentity) GoString() string { - return s.String() -} - -// SetArn sets the Arn field's value. -func (s *OpsItemIdentity) SetArn(v string) *OpsItemIdentity { - s.Arn = &v - return s -} - -// A specified parameter argument isn't valid. Verify the available arguments -// and try again. -type OpsItemInvalidParameterException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` - - ParameterNames []*string `type:"list"` -} - -// String returns the string representation -func (s OpsItemInvalidParameterException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsItemInvalidParameterException) GoString() string { - return s.String() -} - -func newErrorOpsItemInvalidParameterException(v protocol.ResponseMetadata) error { - return &OpsItemInvalidParameterException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *OpsItemInvalidParameterException) Code() string { - return "OpsItemInvalidParameterException" -} - -// Message returns the exception's message. -func (s *OpsItemInvalidParameterException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *OpsItemInvalidParameterException) OrigErr() error { - return nil -} - -func (s *OpsItemInvalidParameterException) Error() string { - return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *OpsItemInvalidParameterException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *OpsItemInvalidParameterException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The request caused OpsItems to exceed one or more quotas. For information -// about OpsItem quotas, see What are the resource limits for OpsCenter? (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-learn-more.html#OpsCenter-learn-more-limits). -type OpsItemLimitExceededException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Limit *int64 `type:"integer"` - - LimitType *string `type:"string"` - - Message_ *string `locationName:"Message" type:"string"` - - ResourceTypes []*string `type:"list"` -} - -// String returns the string representation -func (s OpsItemLimitExceededException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsItemLimitExceededException) GoString() string { - return s.String() -} - -func newErrorOpsItemLimitExceededException(v protocol.ResponseMetadata) error { - return &OpsItemLimitExceededException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *OpsItemLimitExceededException) Code() string { - return "OpsItemLimitExceededException" -} - -// Message returns the exception's message. -func (s *OpsItemLimitExceededException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *OpsItemLimitExceededException) OrigErr() error { - return nil -} - -func (s *OpsItemLimitExceededException) Error() string { - return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *OpsItemLimitExceededException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *OpsItemLimitExceededException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The specified OpsItem ID doesn't exist. Verify the ID and try again. -type OpsItemNotFoundException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s OpsItemNotFoundException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsItemNotFoundException) GoString() string { - return s.String() -} - -func newErrorOpsItemNotFoundException(v protocol.ResponseMetadata) error { - return &OpsItemNotFoundException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *OpsItemNotFoundException) Code() string { - return "OpsItemNotFoundException" -} - -// Message returns the exception's message. -func (s *OpsItemNotFoundException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *OpsItemNotFoundException) OrigErr() error { - return nil -} - -func (s *OpsItemNotFoundException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *OpsItemNotFoundException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *OpsItemNotFoundException) RequestID() string { - return s.RespMetadata.RequestID -} - -// A notification about the OpsItem. -type OpsItemNotification struct { - _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) of an SNS topic where notifications are sent - // when this OpsItem is edited or changed. - Arn *string `type:"string"` -} - -// String returns the string representation -func (s OpsItemNotification) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsItemNotification) GoString() string { - return s.String() -} - -// SetArn sets the Arn field's value. -func (s *OpsItemNotification) SetArn(v string) *OpsItemNotification { - s.Arn = &v - return s -} - -// A count of OpsItems. -type OpsItemSummary struct { - _ struct{} `type:"structure"` - - // The time a runbook workflow ended. Currently reported only for the OpsItem - // type /aws/changerequest. - ActualEndTime *time.Time `type:"timestamp"` - - // The time a runbook workflow started. Currently reported only for the OpsItem - // type /aws/changerequest. - ActualStartTime *time.Time `type:"timestamp"` - - // A list of OpsItems by category. - Category *string `min:"1" type:"string"` - - // The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem. - CreatedBy *string `type:"string"` - - // The date and time the OpsItem was created. - CreatedTime *time.Time `type:"timestamp"` - - // The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem. - LastModifiedBy *string `type:"string"` - - // The date and time the OpsItem was last updated. - LastModifiedTime *time.Time `type:"timestamp"` - - // Operational data is custom data that provides useful reference details about - // the OpsItem. - OperationalData map[string]*OpsItemDataValue `type:"map"` - - // The ID of the OpsItem. - OpsItemId *string `type:"string"` - - // The type of OpsItem. Currently, the only valid values are /aws/changerequest - // and /aws/issue. - OpsItemType *string `type:"string"` - - // The time specified in a change request for a runbook workflow to end. Currently - // supported only for the OpsItem type /aws/changerequest. - PlannedEndTime *time.Time `type:"timestamp"` - - // The time specified in a change request for a runbook workflow to start. Currently - // supported only for the OpsItem type /aws/changerequest. - PlannedStartTime *time.Time `type:"timestamp"` - - // The importance of this OpsItem in relation to other OpsItems in the system. - Priority *int64 `min:"1" type:"integer"` - - // A list of OpsItems by severity. - Severity *string `min:"1" type:"string"` - - // The impacted AWS resource. - Source *string `min:"1" type:"string"` - - // The OpsItem status. Status can be Open, In Progress, or Resolved. - Status *string `type:"string" enum:"OpsItemStatus"` - - // A short heading that describes the nature of the OpsItem and the impacted - // resource. - Title *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s OpsItemSummary) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsItemSummary) GoString() string { - return s.String() -} - -// SetActualEndTime sets the ActualEndTime field's value. -func (s *OpsItemSummary) SetActualEndTime(v time.Time) *OpsItemSummary { - s.ActualEndTime = &v - return s -} - -// SetActualStartTime sets the ActualStartTime field's value. -func (s *OpsItemSummary) SetActualStartTime(v time.Time) *OpsItemSummary { - s.ActualStartTime = &v - return s -} - -// SetCategory sets the Category field's value. -func (s *OpsItemSummary) SetCategory(v string) *OpsItemSummary { - s.Category = &v - return s -} - -// SetCreatedBy sets the CreatedBy field's value. -func (s *OpsItemSummary) SetCreatedBy(v string) *OpsItemSummary { - s.CreatedBy = &v - return s -} - -// SetCreatedTime sets the CreatedTime field's value. -func (s *OpsItemSummary) SetCreatedTime(v time.Time) *OpsItemSummary { - s.CreatedTime = &v - return s -} - -// SetLastModifiedBy sets the LastModifiedBy field's value. -func (s *OpsItemSummary) SetLastModifiedBy(v string) *OpsItemSummary { - s.LastModifiedBy = &v - return s -} - -// SetLastModifiedTime sets the LastModifiedTime field's value. -func (s *OpsItemSummary) SetLastModifiedTime(v time.Time) *OpsItemSummary { - s.LastModifiedTime = &v - return s -} - -// SetOperationalData sets the OperationalData field's value. -func (s *OpsItemSummary) SetOperationalData(v map[string]*OpsItemDataValue) *OpsItemSummary { - s.OperationalData = v - return s -} - -// SetOpsItemId sets the OpsItemId field's value. -func (s *OpsItemSummary) SetOpsItemId(v string) *OpsItemSummary { - s.OpsItemId = &v - return s -} - -// SetOpsItemType sets the OpsItemType field's value. -func (s *OpsItemSummary) SetOpsItemType(v string) *OpsItemSummary { - s.OpsItemType = &v - return s -} - -// SetPlannedEndTime sets the PlannedEndTime field's value. -func (s *OpsItemSummary) SetPlannedEndTime(v time.Time) *OpsItemSummary { - s.PlannedEndTime = &v - return s -} - -// SetPlannedStartTime sets the PlannedStartTime field's value. -func (s *OpsItemSummary) SetPlannedStartTime(v time.Time) *OpsItemSummary { - s.PlannedStartTime = &v - return s -} - -// SetPriority sets the Priority field's value. -func (s *OpsItemSummary) SetPriority(v int64) *OpsItemSummary { - s.Priority = &v - return s -} - -// SetSeverity sets the Severity field's value. -func (s *OpsItemSummary) SetSeverity(v string) *OpsItemSummary { - s.Severity = &v - return s -} - -// SetSource sets the Source field's value. -func (s *OpsItemSummary) SetSource(v string) *OpsItemSummary { - s.Source = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *OpsItemSummary) SetStatus(v string) *OpsItemSummary { - s.Status = &v - return s -} - -// SetTitle sets the Title field's value. -func (s *OpsItemSummary) SetTitle(v string) *OpsItemSummary { - s.Title = &v - return s -} - -// Operational metadata for an application in Application Manager. -type OpsMetadata struct { - _ struct{} `type:"structure"` - - // The date the OpsMetadata objects was created. - CreationDate *time.Time `type:"timestamp"` - - // The date the OpsMetadata object was last updated. - LastModifiedDate *time.Time `type:"timestamp"` - - // The user name who last updated the OpsMetadata object. - LastModifiedUser *string `type:"string"` - - // The Amazon Resource Name (ARN) of the OpsMetadata Object or blob. - OpsMetadataArn *string `min:"1" type:"string"` - - // The ID of the Application Manager application. - ResourceId *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s OpsMetadata) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsMetadata) GoString() string { - return s.String() -} - -// SetCreationDate sets the CreationDate field's value. -func (s *OpsMetadata) SetCreationDate(v time.Time) *OpsMetadata { - s.CreationDate = &v - return s -} - -// SetLastModifiedDate sets the LastModifiedDate field's value. -func (s *OpsMetadata) SetLastModifiedDate(v time.Time) *OpsMetadata { - s.LastModifiedDate = &v - return s -} - -// SetLastModifiedUser sets the LastModifiedUser field's value. -func (s *OpsMetadata) SetLastModifiedUser(v string) *OpsMetadata { - s.LastModifiedUser = &v - return s -} - -// SetOpsMetadataArn sets the OpsMetadataArn field's value. -func (s *OpsMetadata) SetOpsMetadataArn(v string) *OpsMetadata { - s.OpsMetadataArn = &v - return s -} - -// SetResourceId sets the ResourceId field's value. -func (s *OpsMetadata) SetResourceId(v string) *OpsMetadata { - s.ResourceId = &v - return s -} - -// An OpsMetadata object already exists for the selected resource. -type OpsMetadataAlreadyExistsException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s OpsMetadataAlreadyExistsException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsMetadataAlreadyExistsException) GoString() string { - return s.String() -} - -func newErrorOpsMetadataAlreadyExistsException(v protocol.ResponseMetadata) error { - return &OpsMetadataAlreadyExistsException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *OpsMetadataAlreadyExistsException) Code() string { - return "OpsMetadataAlreadyExistsException" -} - -// Message returns the exception's message. -func (s *OpsMetadataAlreadyExistsException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *OpsMetadataAlreadyExistsException) OrigErr() error { - return nil -} - -func (s *OpsMetadataAlreadyExistsException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *OpsMetadataAlreadyExistsException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *OpsMetadataAlreadyExistsException) RequestID() string { - return s.RespMetadata.RequestID -} - -// A filter to limit the number of OpsMetadata objects displayed. -type OpsMetadataFilter struct { - _ struct{} `type:"structure"` - - // A filter key. - // - // Key is a required field - Key *string `min:"1" type:"string" required:"true"` - - // A filter value. - // - // Values is a required field - Values []*string `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s OpsMetadataFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsMetadataFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *OpsMetadataFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "OpsMetadataFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Key", 1)) - } - if s.Values == nil { - invalidParams.Add(request.NewErrParamRequired("Values")) - } - if s.Values != nil && len(s.Values) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Values", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *OpsMetadataFilter) SetKey(v string) *OpsMetadataFilter { - s.Key = &v - return s -} - -// SetValues sets the Values field's value. -func (s *OpsMetadataFilter) SetValues(v []*string) *OpsMetadataFilter { - s.Values = v - return s -} - -// One of the arguments passed is invalid. -type OpsMetadataInvalidArgumentException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s OpsMetadataInvalidArgumentException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsMetadataInvalidArgumentException) GoString() string { - return s.String() -} - -func newErrorOpsMetadataInvalidArgumentException(v protocol.ResponseMetadata) error { - return &OpsMetadataInvalidArgumentException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *OpsMetadataInvalidArgumentException) Code() string { - return "OpsMetadataInvalidArgumentException" -} - -// Message returns the exception's message. -func (s *OpsMetadataInvalidArgumentException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *OpsMetadataInvalidArgumentException) OrigErr() error { - return nil -} - -func (s *OpsMetadataInvalidArgumentException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *OpsMetadataInvalidArgumentException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *OpsMetadataInvalidArgumentException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The OpsMetadata object exceeds the maximum number of OpsMetadata keys that -// you can assign to an application in Application Manager. -type OpsMetadataKeyLimitExceededException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s OpsMetadataKeyLimitExceededException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsMetadataKeyLimitExceededException) GoString() string { - return s.String() -} - -func newErrorOpsMetadataKeyLimitExceededException(v protocol.ResponseMetadata) error { - return &OpsMetadataKeyLimitExceededException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *OpsMetadataKeyLimitExceededException) Code() string { - return "OpsMetadataKeyLimitExceededException" -} - -// Message returns the exception's message. -func (s *OpsMetadataKeyLimitExceededException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *OpsMetadataKeyLimitExceededException) OrigErr() error { - return nil -} - -func (s *OpsMetadataKeyLimitExceededException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *OpsMetadataKeyLimitExceededException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *OpsMetadataKeyLimitExceededException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Your account reached the maximum number of OpsMetadata objects allowed by -// Application Manager. The maximum is 200 OpsMetadata objects. Delete one or -// more OpsMetadata object and try again. -type OpsMetadataLimitExceededException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s OpsMetadataLimitExceededException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsMetadataLimitExceededException) GoString() string { - return s.String() -} - -func newErrorOpsMetadataLimitExceededException(v protocol.ResponseMetadata) error { - return &OpsMetadataLimitExceededException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *OpsMetadataLimitExceededException) Code() string { - return "OpsMetadataLimitExceededException" -} - -// Message returns the exception's message. -func (s *OpsMetadataLimitExceededException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *OpsMetadataLimitExceededException) OrigErr() error { - return nil -} - -func (s *OpsMetadataLimitExceededException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *OpsMetadataLimitExceededException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *OpsMetadataLimitExceededException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The OpsMetadata object does not exist. -type OpsMetadataNotFoundException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s OpsMetadataNotFoundException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsMetadataNotFoundException) GoString() string { - return s.String() -} - -func newErrorOpsMetadataNotFoundException(v protocol.ResponseMetadata) error { - return &OpsMetadataNotFoundException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *OpsMetadataNotFoundException) Code() string { - return "OpsMetadataNotFoundException" -} - -// Message returns the exception's message. -func (s *OpsMetadataNotFoundException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *OpsMetadataNotFoundException) OrigErr() error { - return nil -} - -func (s *OpsMetadataNotFoundException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *OpsMetadataNotFoundException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *OpsMetadataNotFoundException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The system is processing too many concurrent updates. Wait a few moments -// and try again. -type OpsMetadataTooManyUpdatesException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s OpsMetadataTooManyUpdatesException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsMetadataTooManyUpdatesException) GoString() string { - return s.String() -} - -func newErrorOpsMetadataTooManyUpdatesException(v protocol.ResponseMetadata) error { - return &OpsMetadataTooManyUpdatesException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *OpsMetadataTooManyUpdatesException) Code() string { - return "OpsMetadataTooManyUpdatesException" -} - -// Message returns the exception's message. -func (s *OpsMetadataTooManyUpdatesException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *OpsMetadataTooManyUpdatesException) OrigErr() error { - return nil -} - -func (s *OpsMetadataTooManyUpdatesException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *OpsMetadataTooManyUpdatesException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *OpsMetadataTooManyUpdatesException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The OpsItem data type to return. -type OpsResultAttribute struct { - _ struct{} `type:"structure"` - - // Name of the data type. Valid value: AWS:OpsItem, AWS:EC2InstanceInformation, - // AWS:OpsItemTrendline, or AWS:ComplianceSummary. - // - // TypeName is a required field - TypeName *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s OpsResultAttribute) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OpsResultAttribute) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *OpsResultAttribute) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "OpsResultAttribute"} - if s.TypeName == nil { - invalidParams.Add(request.NewErrParamRequired("TypeName")) - } - if s.TypeName != nil && len(*s.TypeName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TypeName", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetTypeName sets the TypeName field's value. -func (s *OpsResultAttribute) SetTypeName(v string) *OpsResultAttribute { - s.TypeName = &v - return s -} - -// Information about the source where the association execution details are -// stored. -type OutputSource struct { - _ struct{} `type:"structure"` - - // The ID of the output source, for example the URL of an S3 bucket. - OutputSourceId *string `min:"36" type:"string"` - - // The type of source where the association execution details are stored, for - // example, Amazon S3. - OutputSourceType *string `type:"string"` -} - -// String returns the string representation -func (s OutputSource) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s OutputSource) GoString() string { - return s.String() -} - -// SetOutputSourceId sets the OutputSourceId field's value. -func (s *OutputSource) SetOutputSourceId(v string) *OutputSource { - s.OutputSourceId = &v - return s -} - -// SetOutputSourceType sets the OutputSourceType field's value. -func (s *OutputSource) SetOutputSourceType(v string) *OutputSource { - s.OutputSourceType = &v - return s -} - -// An Systems Manager parameter in Parameter Store. -type Parameter struct { - _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) of the parameter. - ARN *string `type:"string"` - - // The data type of the parameter, such as text or aws:ec2:image. The default - // is text. - DataType *string `type:"string"` - - // Date the parameter was last changed or updated and the parameter version - // was created. - LastModifiedDate *time.Time `type:"timestamp"` - - // The name of the parameter. - Name *string `min:"1" type:"string"` - - // Either the version number or the label used to retrieve the parameter value. - // Specify selectors by using one of the following formats: - // - // parameter_name:version - // - // parameter_name:label - Selector *string `type:"string"` - - // Applies to parameters that reference information in other AWS services. SourceResult - // is the raw result or response from the source. - SourceResult *string `type:"string"` - - // The type of parameter. Valid values include the following: String, StringList, - // and SecureString. - Type *string `type:"string" enum:"ParameterType"` - - // The parameter value. - Value *string `type:"string"` - - // The parameter version. - Version *int64 `type:"long"` -} - -// String returns the string representation -func (s Parameter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Parameter) GoString() string { - return s.String() -} - -// SetARN sets the ARN field's value. -func (s *Parameter) SetARN(v string) *Parameter { - s.ARN = &v - return s -} - -// SetDataType sets the DataType field's value. -func (s *Parameter) SetDataType(v string) *Parameter { - s.DataType = &v - return s -} - -// SetLastModifiedDate sets the LastModifiedDate field's value. -func (s *Parameter) SetLastModifiedDate(v time.Time) *Parameter { - s.LastModifiedDate = &v - return s -} - -// SetName sets the Name field's value. -func (s *Parameter) SetName(v string) *Parameter { - s.Name = &v - return s -} - -// SetSelector sets the Selector field's value. -func (s *Parameter) SetSelector(v string) *Parameter { - s.Selector = &v - return s -} - -// SetSourceResult sets the SourceResult field's value. -func (s *Parameter) SetSourceResult(v string) *Parameter { - s.SourceResult = &v - return s -} - -// SetType sets the Type field's value. -func (s *Parameter) SetType(v string) *Parameter { - s.Type = &v - return s -} - -// SetValue sets the Value field's value. -func (s *Parameter) SetValue(v string) *Parameter { - s.Value = &v - return s -} - -// SetVersion sets the Version field's value. -func (s *Parameter) SetVersion(v int64) *Parameter { - s.Version = &v - return s -} - -// The parameter already exists. You can't create duplicate parameters. -type ParameterAlreadyExists struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s ParameterAlreadyExists) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ParameterAlreadyExists) GoString() string { - return s.String() -} - -func newErrorParameterAlreadyExists(v protocol.ResponseMetadata) error { - return &ParameterAlreadyExists{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ParameterAlreadyExists) Code() string { - return "ParameterAlreadyExists" -} - -// Message returns the exception's message. -func (s *ParameterAlreadyExists) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ParameterAlreadyExists) OrigErr() error { - return nil -} - -func (s *ParameterAlreadyExists) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ParameterAlreadyExists) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ParameterAlreadyExists) RequestID() string { - return s.RespMetadata.RequestID -} - -// Information about parameter usage. -type ParameterHistory struct { - _ struct{} `type:"structure"` - - // Parameter names can include the following letters and symbols. - // - // a-zA-Z0-9_.- - AllowedPattern *string `type:"string"` - - // The data type of the parameter, such as text or aws:ec2:image. The default - // is text. - DataType *string `type:"string"` - - // Information about the parameter. - Description *string `type:"string"` - - // The ID of the query key used for this parameter. - KeyId *string `min:"1" type:"string"` - - // Labels assigned to the parameter version. - Labels []*string `min:"1" type:"list"` - - // Date the parameter was last changed or updated. - LastModifiedDate *time.Time `type:"timestamp"` - - // Amazon Resource Name (ARN) of the AWS user who last changed the parameter. - LastModifiedUser *string `type:"string"` - - // The name of the parameter. - Name *string `min:"1" type:"string"` - - // Information about the policies assigned to a parameter. - // - // Assigning parameter policies (https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html) - // in the AWS Systems Manager User Guide. - Policies []*ParameterInlinePolicy `type:"list"` - - // The parameter tier. - Tier *string `type:"string" enum:"ParameterTier"` - - // The type of parameter used. - Type *string `type:"string" enum:"ParameterType"` - - // The parameter value. - Value *string `type:"string"` - - // The parameter version. - Version *int64 `type:"long"` -} - -// String returns the string representation -func (s ParameterHistory) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ParameterHistory) GoString() string { - return s.String() -} - -// SetAllowedPattern sets the AllowedPattern field's value. -func (s *ParameterHistory) SetAllowedPattern(v string) *ParameterHistory { - s.AllowedPattern = &v - return s -} - -// SetDataType sets the DataType field's value. -func (s *ParameterHistory) SetDataType(v string) *ParameterHistory { - s.DataType = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *ParameterHistory) SetDescription(v string) *ParameterHistory { - s.Description = &v - return s -} - -// SetKeyId sets the KeyId field's value. -func (s *ParameterHistory) SetKeyId(v string) *ParameterHistory { - s.KeyId = &v - return s -} - -// SetLabels sets the Labels field's value. -func (s *ParameterHistory) SetLabels(v []*string) *ParameterHistory { - s.Labels = v - return s -} - -// SetLastModifiedDate sets the LastModifiedDate field's value. -func (s *ParameterHistory) SetLastModifiedDate(v time.Time) *ParameterHistory { - s.LastModifiedDate = &v - return s -} - -// SetLastModifiedUser sets the LastModifiedUser field's value. -func (s *ParameterHistory) SetLastModifiedUser(v string) *ParameterHistory { - s.LastModifiedUser = &v - return s -} - -// SetName sets the Name field's value. -func (s *ParameterHistory) SetName(v string) *ParameterHistory { - s.Name = &v - return s -} - -// SetPolicies sets the Policies field's value. -func (s *ParameterHistory) SetPolicies(v []*ParameterInlinePolicy) *ParameterHistory { - s.Policies = v - return s -} - -// SetTier sets the Tier field's value. -func (s *ParameterHistory) SetTier(v string) *ParameterHistory { - s.Tier = &v - return s -} - -// SetType sets the Type field's value. -func (s *ParameterHistory) SetType(v string) *ParameterHistory { - s.Type = &v - return s -} - -// SetValue sets the Value field's value. -func (s *ParameterHistory) SetValue(v string) *ParameterHistory { - s.Value = &v - return s -} - -// SetVersion sets the Version field's value. -func (s *ParameterHistory) SetVersion(v int64) *ParameterHistory { - s.Version = &v - return s -} - -// One or more policies assigned to a parameter. -type ParameterInlinePolicy struct { - _ struct{} `type:"structure"` - - // The status of the policy. Policies report the following statuses: Pending - // (the policy has not been enforced or applied yet), Finished (the policy was - // applied), Failed (the policy was not applied), or InProgress (the policy - // is being applied now). - PolicyStatus *string `type:"string"` - - // The JSON text of the policy. - PolicyText *string `type:"string"` - - // The type of policy. Parameter Store supports the following policy types: - // Expiration, ExpirationNotification, and NoChangeNotification. - PolicyType *string `type:"string"` -} - -// String returns the string representation -func (s ParameterInlinePolicy) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ParameterInlinePolicy) GoString() string { - return s.String() -} - -// SetPolicyStatus sets the PolicyStatus field's value. -func (s *ParameterInlinePolicy) SetPolicyStatus(v string) *ParameterInlinePolicy { - s.PolicyStatus = &v - return s -} - -// SetPolicyText sets the PolicyText field's value. -func (s *ParameterInlinePolicy) SetPolicyText(v string) *ParameterInlinePolicy { - s.PolicyText = &v - return s -} - -// SetPolicyType sets the PolicyType field's value. -func (s *ParameterInlinePolicy) SetPolicyType(v string) *ParameterInlinePolicy { - s.PolicyType = &v - return s -} - -// You have exceeded the number of parameters for this AWS account. Delete one -// or more parameters and try again. -type ParameterLimitExceeded struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s ParameterLimitExceeded) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ParameterLimitExceeded) GoString() string { - return s.String() -} - -func newErrorParameterLimitExceeded(v protocol.ResponseMetadata) error { - return &ParameterLimitExceeded{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ParameterLimitExceeded) Code() string { - return "ParameterLimitExceeded" -} - -// Message returns the exception's message. -func (s *ParameterLimitExceeded) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ParameterLimitExceeded) OrigErr() error { - return nil -} - -func (s *ParameterLimitExceeded) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ParameterLimitExceeded) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ParameterLimitExceeded) RequestID() string { - return s.RespMetadata.RequestID -} - -// Parameter Store retains the 100 most recently created versions of a parameter. -// After this number of versions has been created, Parameter Store deletes the -// oldest version when a new one is created. However, if the oldest version -// has a label attached to it, Parameter Store will not delete the version and -// instead presents this error message: -// -// An error occurred (ParameterMaxVersionLimitExceeded) when calling the PutParameter -// operation: You attempted to create a new version of parameter-name by calling -// the PutParameter API with the overwrite flag. Version version-number, the -// oldest version, can't be deleted because it has a label associated with it. -// Move the label to another version of the parameter, and try again. -// -// This safeguard is to prevent parameter versions with mission critical labels -// assigned to them from being deleted. To continue creating new parameters, -// first move the label from the oldest version of the parameter to a newer -// one for use in your operations. For information about moving parameter labels, -// see Move a parameter label (console) (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-console-move) -// or Move a parameter label (CLI) (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-cli-move) -// in the AWS Systems Manager User Guide. -type ParameterMaxVersionLimitExceeded struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s ParameterMaxVersionLimitExceeded) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ParameterMaxVersionLimitExceeded) GoString() string { - return s.String() -} - -func newErrorParameterMaxVersionLimitExceeded(v protocol.ResponseMetadata) error { - return &ParameterMaxVersionLimitExceeded{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ParameterMaxVersionLimitExceeded) Code() string { - return "ParameterMaxVersionLimitExceeded" -} - -// Message returns the exception's message. -func (s *ParameterMaxVersionLimitExceeded) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ParameterMaxVersionLimitExceeded) OrigErr() error { - return nil -} - -func (s *ParameterMaxVersionLimitExceeded) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ParameterMaxVersionLimitExceeded) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ParameterMaxVersionLimitExceeded) RequestID() string { - return s.RespMetadata.RequestID -} - -// Metadata includes information like the ARN of the last user and the date/time -// the parameter was last used. -type ParameterMetadata struct { - _ struct{} `type:"structure"` - - // A parameter name can include only the following letters and symbols. - // - // a-zA-Z0-9_.- - AllowedPattern *string `type:"string"` - - // The data type of the parameter, such as text or aws:ec2:image. The default - // is text. - DataType *string `type:"string"` - - // Description of the parameter actions. - Description *string `type:"string"` - - // The ID of the query key used for this parameter. - KeyId *string `min:"1" type:"string"` - - // Date the parameter was last changed or updated. - LastModifiedDate *time.Time `type:"timestamp"` - - // Amazon Resource Name (ARN) of the AWS user who last changed the parameter. - LastModifiedUser *string `type:"string"` - - // The parameter name. - Name *string `min:"1" type:"string"` - - // A list of policies associated with a parameter. - Policies []*ParameterInlinePolicy `type:"list"` - - // The parameter tier. - Tier *string `type:"string" enum:"ParameterTier"` - - // The type of parameter. Valid parameter types include the following: String, - // StringList, and SecureString. - Type *string `type:"string" enum:"ParameterType"` - - // The parameter version. - Version *int64 `type:"long"` -} - -// String returns the string representation -func (s ParameterMetadata) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ParameterMetadata) GoString() string { - return s.String() -} - -// SetAllowedPattern sets the AllowedPattern field's value. -func (s *ParameterMetadata) SetAllowedPattern(v string) *ParameterMetadata { - s.AllowedPattern = &v - return s -} - -// SetDataType sets the DataType field's value. -func (s *ParameterMetadata) SetDataType(v string) *ParameterMetadata { - s.DataType = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *ParameterMetadata) SetDescription(v string) *ParameterMetadata { - s.Description = &v - return s -} - -// SetKeyId sets the KeyId field's value. -func (s *ParameterMetadata) SetKeyId(v string) *ParameterMetadata { - s.KeyId = &v - return s -} - -// SetLastModifiedDate sets the LastModifiedDate field's value. -func (s *ParameterMetadata) SetLastModifiedDate(v time.Time) *ParameterMetadata { - s.LastModifiedDate = &v - return s -} - -// SetLastModifiedUser sets the LastModifiedUser field's value. -func (s *ParameterMetadata) SetLastModifiedUser(v string) *ParameterMetadata { - s.LastModifiedUser = &v - return s -} - -// SetName sets the Name field's value. -func (s *ParameterMetadata) SetName(v string) *ParameterMetadata { - s.Name = &v - return s -} - -// SetPolicies sets the Policies field's value. -func (s *ParameterMetadata) SetPolicies(v []*ParameterInlinePolicy) *ParameterMetadata { - s.Policies = v - return s -} - -// SetTier sets the Tier field's value. -func (s *ParameterMetadata) SetTier(v string) *ParameterMetadata { - s.Tier = &v - return s -} - -// SetType sets the Type field's value. -func (s *ParameterMetadata) SetType(v string) *ParameterMetadata { - s.Type = &v - return s -} - -// SetVersion sets the Version field's value. -func (s *ParameterMetadata) SetVersion(v int64) *ParameterMetadata { - s.Version = &v - return s -} - -// The parameter could not be found. Verify the name and try again. -type ParameterNotFound struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s ParameterNotFound) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ParameterNotFound) GoString() string { - return s.String() -} - -func newErrorParameterNotFound(v protocol.ResponseMetadata) error { - return &ParameterNotFound{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ParameterNotFound) Code() string { - return "ParameterNotFound" -} - -// Message returns the exception's message. -func (s *ParameterNotFound) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ParameterNotFound) OrigErr() error { - return nil -} - -func (s *ParameterNotFound) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ParameterNotFound) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ParameterNotFound) RequestID() string { - return s.RespMetadata.RequestID -} - -// The parameter name is not valid. -type ParameterPatternMismatchException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - // The parameter name is not valid. - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s ParameterPatternMismatchException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ParameterPatternMismatchException) GoString() string { - return s.String() -} - -func newErrorParameterPatternMismatchException(v protocol.ResponseMetadata) error { - return &ParameterPatternMismatchException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ParameterPatternMismatchException) Code() string { - return "ParameterPatternMismatchException" -} - -// Message returns the exception's message. -func (s *ParameterPatternMismatchException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ParameterPatternMismatchException) OrigErr() error { - return nil -} - -func (s *ParameterPatternMismatchException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ParameterPatternMismatchException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ParameterPatternMismatchException) RequestID() string { - return s.RespMetadata.RequestID -} - -// One or more filters. Use a filter to return a more specific list of results. -type ParameterStringFilter struct { - _ struct{} `type:"structure"` - - // The name of the filter. - // - // The ParameterStringFilter object is used by the DescribeParameters and GetParametersByPath - // API actions. However, not all of the pattern values listed for Key can be - // used with both actions. - // - // For DescribeActions, all of the listed patterns are valid, with the exception - // of Label. - // - // For GetParametersByPath, the following patterns listed for Key are not valid: - // tag, Name, Path, and Tier. - // - // For examples of CLI commands demonstrating valid parameter filter constructions, - // see Searching for Systems Manager parameters (https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-search.html) - // in the AWS Systems Manager User Guide. - // - // Key is a required field - Key *string `min:"1" type:"string" required:"true"` - - // For all filters used with DescribeParameters, valid options include Equals - // and BeginsWith. The Name filter additionally supports the Contains option. - // (Exception: For filters using the key Path, valid options include Recursive - // and OneLevel.) - // - // For filters used with GetParametersByPath, valid options include Equals and - // BeginsWith. (Exception: For filters using Label as the Key name, the only - // valid option is Equals.) - Option *string `min:"1" type:"string"` - - // The value you want to search for. - Values []*string `min:"1" type:"list"` -} - -// String returns the string representation -func (s ParameterStringFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ParameterStringFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ParameterStringFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ParameterStringFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Key", 1)) - } - if s.Option != nil && len(*s.Option) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Option", 1)) - } - if s.Values != nil && len(s.Values) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Values", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *ParameterStringFilter) SetKey(v string) *ParameterStringFilter { - s.Key = &v - return s -} - -// SetOption sets the Option field's value. -func (s *ParameterStringFilter) SetOption(v string) *ParameterStringFilter { - s.Option = &v - return s -} - -// SetValues sets the Values field's value. -func (s *ParameterStringFilter) SetValues(v []*string) *ParameterStringFilter { - s.Values = v - return s -} - -// A parameter version can have a maximum of ten labels. -type ParameterVersionLabelLimitExceeded struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s ParameterVersionLabelLimitExceeded) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ParameterVersionLabelLimitExceeded) GoString() string { - return s.String() -} - -func newErrorParameterVersionLabelLimitExceeded(v protocol.ResponseMetadata) error { - return &ParameterVersionLabelLimitExceeded{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ParameterVersionLabelLimitExceeded) Code() string { - return "ParameterVersionLabelLimitExceeded" -} - -// Message returns the exception's message. -func (s *ParameterVersionLabelLimitExceeded) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ParameterVersionLabelLimitExceeded) OrigErr() error { - return nil -} - -func (s *ParameterVersionLabelLimitExceeded) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ParameterVersionLabelLimitExceeded) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ParameterVersionLabelLimitExceeded) RequestID() string { - return s.RespMetadata.RequestID -} - -// The specified parameter version was not found. Verify the parameter name -// and version, and try again. -type ParameterVersionNotFound struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s ParameterVersionNotFound) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ParameterVersionNotFound) GoString() string { - return s.String() -} - -func newErrorParameterVersionNotFound(v protocol.ResponseMetadata) error { - return &ParameterVersionNotFound{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ParameterVersionNotFound) Code() string { - return "ParameterVersionNotFound" -} - -// Message returns the exception's message. -func (s *ParameterVersionNotFound) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ParameterVersionNotFound) OrigErr() error { - return nil -} - -func (s *ParameterVersionNotFound) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ParameterVersionNotFound) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ParameterVersionNotFound) RequestID() string { - return s.RespMetadata.RequestID -} - -// This data type is deprecated. Instead, use ParameterStringFilter. -type ParametersFilter struct { - _ struct{} `type:"structure"` - - // The name of the filter. - // - // Key is a required field - Key *string `type:"string" required:"true" enum:"ParametersFilterKey"` - - // The filter values. - // - // Values is a required field - Values []*string `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s ParametersFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ParametersFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ParametersFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ParametersFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Values == nil { - invalidParams.Add(request.NewErrParamRequired("Values")) - } - if s.Values != nil && len(s.Values) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Values", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *ParametersFilter) SetKey(v string) *ParametersFilter { - s.Key = &v - return s -} - -// SetValues sets the Values field's value. -func (s *ParametersFilter) SetValues(v []*string) *ParametersFilter { - s.Values = v - return s -} - -// Represents metadata about a patch. -type Patch struct { - _ struct{} `type:"structure"` - - // The Advisory ID of the patch. For example, RHSA-2020:3779. Applies to Linux-based - // instances only. - AdvisoryIds []*string `type:"list"` - - // The architecture of the patch. For example, in example-pkg-0.710.10-2.7.abcd.x86_64, - // the architecture is indicated by x86_64. Applies to Linux-based instances - // only. - Arch *string `type:"string"` - - // The Bugzilla ID of the patch. For example, 1600646. Applies to Linux-based - // instances only. - BugzillaIds []*string `type:"list"` - - // The Common Vulnerabilities and Exposures (CVE) ID of the patch. For example, - // CVE-2011-3192. Applies to Linux-based instances only. - CVEIds []*string `type:"list"` - - // The classification of the patch. For example, SecurityUpdates, Updates, or - // CriticalUpdates. - Classification *string `type:"string"` - - // The URL where more information can be obtained about the patch. - ContentUrl *string `type:"string"` - - // The description of the patch. - Description *string `type:"string"` - - // The epoch of the patch. For example in pkg-example-EE-20180914-2.2.amzn1.noarch, - // the epoch value is 20180914-2. Applies to Linux-based instances only. - Epoch *int64 `type:"integer"` - - // The ID of the patch. Applies to Windows patches only. - // - // This ID is not the same as the Microsoft Knowledge Base ID. - Id *string `min:"1" type:"string"` - - // The Microsoft Knowledge Base ID of the patch. Applies to Windows patches - // only. - KbNumber *string `type:"string"` - - // The language of the patch if it's language-specific. - Language *string `type:"string"` - - // The ID of the Microsoft Security Response Center (MSRC) bulletin the patch - // is related to. For example, MS14-045. Applies to Windows patches only. - MsrcNumber *string `type:"string"` - - // The severity of the patch, such as Critical, Important, or Moderate. Applies - // to Windows patches only. - MsrcSeverity *string `type:"string"` - - // The name of the patch. Applies to Linux-based instances only. - Name *string `type:"string"` - - // The specific product the patch is applicable for. For example, WindowsServer2016 - // or AmazonLinux2018.03. - Product *string `type:"string"` - - // The product family the patch is applicable for. For example, Windows or Amazon - // Linux 2. - ProductFamily *string `type:"string"` - - // The particular release of a patch. For example, in pkg-example-EE-20180914-2.2.amzn1.noarch, - // the release is 2.amaz1. Applies to Linux-based instances only. - Release *string `type:"string"` - - // The date the patch was released. - ReleaseDate *time.Time `type:"timestamp"` - - // The source patch repository for the operating system and version, such as - // trusty-security for Ubuntu Server 14.04 LTE and focal-security for Ubuntu - // Server 20.04 LTE. Applies to Linux-based instances only. - Repository *string `type:"string"` - - // The severity level of the patch. For example, CRITICAL or MODERATE. - Severity *string `type:"string"` - - // The title of the patch. - Title *string `type:"string"` - - // The name of the vendor providing the patch. - Vendor *string `type:"string"` - - // The version number of the patch. For example, in example-pkg-1.710.10-2.7.abcd.x86_64, - // the version number is indicated by -1. Applies to Linux-based instances only. - Version *string `type:"string"` -} - -// String returns the string representation -func (s Patch) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Patch) GoString() string { - return s.String() -} - -// SetAdvisoryIds sets the AdvisoryIds field's value. -func (s *Patch) SetAdvisoryIds(v []*string) *Patch { - s.AdvisoryIds = v - return s -} - -// SetArch sets the Arch field's value. -func (s *Patch) SetArch(v string) *Patch { - s.Arch = &v - return s -} - -// SetBugzillaIds sets the BugzillaIds field's value. -func (s *Patch) SetBugzillaIds(v []*string) *Patch { - s.BugzillaIds = v - return s -} - -// SetCVEIds sets the CVEIds field's value. -func (s *Patch) SetCVEIds(v []*string) *Patch { - s.CVEIds = v - return s -} - -// SetClassification sets the Classification field's value. -func (s *Patch) SetClassification(v string) *Patch { - s.Classification = &v - return s -} - -// SetContentUrl sets the ContentUrl field's value. -func (s *Patch) SetContentUrl(v string) *Patch { - s.ContentUrl = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *Patch) SetDescription(v string) *Patch { - s.Description = &v - return s -} - -// SetEpoch sets the Epoch field's value. -func (s *Patch) SetEpoch(v int64) *Patch { - s.Epoch = &v - return s -} - -// SetId sets the Id field's value. -func (s *Patch) SetId(v string) *Patch { - s.Id = &v - return s -} - -// SetKbNumber sets the KbNumber field's value. -func (s *Patch) SetKbNumber(v string) *Patch { - s.KbNumber = &v - return s -} - -// SetLanguage sets the Language field's value. -func (s *Patch) SetLanguage(v string) *Patch { - s.Language = &v - return s -} - -// SetMsrcNumber sets the MsrcNumber field's value. -func (s *Patch) SetMsrcNumber(v string) *Patch { - s.MsrcNumber = &v - return s -} - -// SetMsrcSeverity sets the MsrcSeverity field's value. -func (s *Patch) SetMsrcSeverity(v string) *Patch { - s.MsrcSeverity = &v - return s -} - -// SetName sets the Name field's value. -func (s *Patch) SetName(v string) *Patch { - s.Name = &v - return s -} - -// SetProduct sets the Product field's value. -func (s *Patch) SetProduct(v string) *Patch { - s.Product = &v - return s -} - -// SetProductFamily sets the ProductFamily field's value. -func (s *Patch) SetProductFamily(v string) *Patch { - s.ProductFamily = &v - return s -} - -// SetRelease sets the Release field's value. -func (s *Patch) SetRelease(v string) *Patch { - s.Release = &v - return s -} - -// SetReleaseDate sets the ReleaseDate field's value. -func (s *Patch) SetReleaseDate(v time.Time) *Patch { - s.ReleaseDate = &v - return s -} - -// SetRepository sets the Repository field's value. -func (s *Patch) SetRepository(v string) *Patch { - s.Repository = &v - return s -} - -// SetSeverity sets the Severity field's value. -func (s *Patch) SetSeverity(v string) *Patch { - s.Severity = &v - return s -} - -// SetTitle sets the Title field's value. -func (s *Patch) SetTitle(v string) *Patch { - s.Title = &v - return s -} - -// SetVendor sets the Vendor field's value. -func (s *Patch) SetVendor(v string) *Patch { - s.Vendor = &v - return s -} - -// SetVersion sets the Version field's value. -func (s *Patch) SetVersion(v string) *Patch { - s.Version = &v - return s -} - -// Defines the basic information about a patch baseline. -type PatchBaselineIdentity struct { - _ struct{} `type:"structure"` - - // The description of the patch baseline. - BaselineDescription *string `min:"1" type:"string"` - - // The ID of the patch baseline. - BaselineId *string `min:"20" type:"string"` - - // The name of the patch baseline. - BaselineName *string `min:"3" type:"string"` - - // Whether this is the default baseline. Note that Systems Manager supports - // creating multiple default patch baselines. For example, you can create a - // default patch baseline for each operating system. - DefaultBaseline *bool `type:"boolean"` - - // Defines the operating system the patch baseline applies to. The Default value - // is WINDOWS. - OperatingSystem *string `type:"string" enum:"OperatingSystem"` -} - -// String returns the string representation -func (s PatchBaselineIdentity) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PatchBaselineIdentity) GoString() string { - return s.String() -} - -// SetBaselineDescription sets the BaselineDescription field's value. -func (s *PatchBaselineIdentity) SetBaselineDescription(v string) *PatchBaselineIdentity { - s.BaselineDescription = &v - return s -} - -// SetBaselineId sets the BaselineId field's value. -func (s *PatchBaselineIdentity) SetBaselineId(v string) *PatchBaselineIdentity { - s.BaselineId = &v - return s -} - -// SetBaselineName sets the BaselineName field's value. -func (s *PatchBaselineIdentity) SetBaselineName(v string) *PatchBaselineIdentity { - s.BaselineName = &v - return s -} - -// SetDefaultBaseline sets the DefaultBaseline field's value. -func (s *PatchBaselineIdentity) SetDefaultBaseline(v bool) *PatchBaselineIdentity { - s.DefaultBaseline = &v - return s -} - -// SetOperatingSystem sets the OperatingSystem field's value. -func (s *PatchBaselineIdentity) SetOperatingSystem(v string) *PatchBaselineIdentity { - s.OperatingSystem = &v - return s -} - -// Information about the state of a patch on a particular instance as it relates -// to the patch baseline used to patch the instance. -type PatchComplianceData struct { - _ struct{} `type:"structure"` - - // The IDs of one or more Common Vulnerabilities and Exposure (CVE) issues that - // are resolved by the patch. - CVEIds *string `type:"string"` - - // The classification of the patch (for example, SecurityUpdates, Updates, CriticalUpdates). - // - // Classification is a required field - Classification *string `type:"string" required:"true"` - - // The date/time the patch was installed on the instance. Note that not all - // operating systems provide this level of information. - // - // InstalledTime is a required field - InstalledTime *time.Time `type:"timestamp" required:"true"` - - // The operating system-specific ID of the patch. - // - // KBId is a required field - KBId *string `type:"string" required:"true"` - - // The severity of the patch (for example, Critical, Important, Moderate). - // - // Severity is a required field - Severity *string `type:"string" required:"true"` - - // The state of the patch on the instance, such as INSTALLED or FAILED. - // - // For descriptions of each patch state, see About patch compliance (https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-compliance-about.html#sysman-compliance-monitor-patch) - // in the AWS Systems Manager User Guide. - // - // State is a required field - State *string `type:"string" required:"true" enum:"PatchComplianceDataState"` - - // The title of the patch. - // - // Title is a required field - Title *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s PatchComplianceData) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PatchComplianceData) GoString() string { - return s.String() -} - -// SetCVEIds sets the CVEIds field's value. -func (s *PatchComplianceData) SetCVEIds(v string) *PatchComplianceData { - s.CVEIds = &v - return s -} - -// SetClassification sets the Classification field's value. -func (s *PatchComplianceData) SetClassification(v string) *PatchComplianceData { - s.Classification = &v - return s -} - -// SetInstalledTime sets the InstalledTime field's value. -func (s *PatchComplianceData) SetInstalledTime(v time.Time) *PatchComplianceData { - s.InstalledTime = &v - return s -} - -// SetKBId sets the KBId field's value. -func (s *PatchComplianceData) SetKBId(v string) *PatchComplianceData { - s.KBId = &v - return s -} - -// SetSeverity sets the Severity field's value. -func (s *PatchComplianceData) SetSeverity(v string) *PatchComplianceData { - s.Severity = &v - return s -} - -// SetState sets the State field's value. -func (s *PatchComplianceData) SetState(v string) *PatchComplianceData { - s.State = &v - return s -} - -// SetTitle sets the Title field's value. -func (s *PatchComplianceData) SetTitle(v string) *PatchComplianceData { - s.Title = &v - return s -} - -// Defines which patches should be included in a patch baseline. -// -// A patch filter consists of a key and a set of values. The filter key is a -// patch property. For example, the available filter keys for WINDOWS are PATCH_SET, -// PRODUCT, PRODUCT_FAMILY, CLASSIFICATION, and MSRC_SEVERITY. The filter values -// define a matching criterion for the patch property indicated by the key. -// For example, if the filter key is PRODUCT and the filter values are ["Office -// 2013", "Office 2016"], then the filter accepts all patches where product -// name is either "Office 2013" or "Office 2016". The filter values can be exact -// values for the patch property given as a key, or a wildcard (*), which matches -// all values. -// -// You can view lists of valid values for the patch properties by running the -// DescribePatchProperties command. For information about which patch properties -// can be used with each major operating system, see DescribePatchProperties. -type PatchFilter struct { - _ struct{} `type:"structure"` - - // The key for the filter. - // - // Run the DescribePatchProperties command to view lists of valid keys for each - // operating system type. - // - // Key is a required field - Key *string `type:"string" required:"true" enum:"PatchFilterKey"` - - // The value for the filter key. - // - // Run the DescribePatchProperties command to view lists of valid values for - // each key based on operating system type. - // - // Values is a required field - Values []*string `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s PatchFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PatchFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *PatchFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "PatchFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Values == nil { - invalidParams.Add(request.NewErrParamRequired("Values")) - } - if s.Values != nil && len(s.Values) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Values", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *PatchFilter) SetKey(v string) *PatchFilter { - s.Key = &v - return s -} - -// SetValues sets the Values field's value. -func (s *PatchFilter) SetValues(v []*string) *PatchFilter { - s.Values = v - return s -} - -// A set of patch filters, typically used for approval rules. -type PatchFilterGroup struct { - _ struct{} `type:"structure"` - - // The set of patch filters that make up the group. - // - // PatchFilters is a required field - PatchFilters []*PatchFilter `type:"list" required:"true"` -} - -// String returns the string representation -func (s PatchFilterGroup) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PatchFilterGroup) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *PatchFilterGroup) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "PatchFilterGroup"} - if s.PatchFilters == nil { - invalidParams.Add(request.NewErrParamRequired("PatchFilters")) - } - if s.PatchFilters != nil { - for i, v := range s.PatchFilters { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PatchFilters", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetPatchFilters sets the PatchFilters field's value. -func (s *PatchFilterGroup) SetPatchFilters(v []*PatchFilter) *PatchFilterGroup { - s.PatchFilters = v - return s -} - -// The mapping between a patch group and the patch baseline the patch group -// is registered with. -type PatchGroupPatchBaselineMapping struct { - _ struct{} `type:"structure"` - - // The patch baseline the patch group is registered with. - BaselineIdentity *PatchBaselineIdentity `type:"structure"` - - // The name of the patch group registered with the patch baseline. - PatchGroup *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s PatchGroupPatchBaselineMapping) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PatchGroupPatchBaselineMapping) GoString() string { - return s.String() -} - -// SetBaselineIdentity sets the BaselineIdentity field's value. -func (s *PatchGroupPatchBaselineMapping) SetBaselineIdentity(v *PatchBaselineIdentity) *PatchGroupPatchBaselineMapping { - s.BaselineIdentity = v - return s -} - -// SetPatchGroup sets the PatchGroup field's value. -func (s *PatchGroupPatchBaselineMapping) SetPatchGroup(v string) *PatchGroupPatchBaselineMapping { - s.PatchGroup = &v - return s -} - -// Defines a filter used in Patch Manager APIs. -type PatchOrchestratorFilter struct { - _ struct{} `type:"structure"` - - // The key for the filter. - Key *string `min:"1" type:"string"` - - // The value for the filter. - Values []*string `type:"list"` -} - -// String returns the string representation -func (s PatchOrchestratorFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PatchOrchestratorFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *PatchOrchestratorFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "PatchOrchestratorFilter"} - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Key", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *PatchOrchestratorFilter) SetKey(v string) *PatchOrchestratorFilter { - s.Key = &v - return s -} - -// SetValues sets the Values field's value. -func (s *PatchOrchestratorFilter) SetValues(v []*string) *PatchOrchestratorFilter { - s.Values = v - return s -} - -// Defines an approval rule for a patch baseline. -type PatchRule struct { - _ struct{} `type:"structure"` - - // The number of days after the release date of each patch matched by the rule - // that the patch is marked as approved in the patch baseline. For example, - // a value of 7 means that patches are approved seven days after they are released. - // Not supported on Debian Server or Ubuntu Server. - ApproveAfterDays *int64 `type:"integer"` - - // The cutoff date for auto approval of released patches. Any patches released - // on or before this date are installed automatically. Not supported on Debian - // Server or Ubuntu Server. - // - // Enter dates in the format YYYY-MM-DD. For example, 2020-12-31. - ApproveUntilDate *string `min:"1" type:"string"` - - // A compliance severity level for all approved patches in a patch baseline. - ComplianceLevel *string `type:"string" enum:"PatchComplianceLevel"` - - // For instances identified by the approval rule filters, enables a patch baseline - // to apply non-security updates available in the specified repository. The - // default value is 'false'. Applies to Linux instances only. - EnableNonSecurity *bool `type:"boolean"` - - // The patch filter group that defines the criteria for the rule. - // - // PatchFilterGroup is a required field - PatchFilterGroup *PatchFilterGroup `type:"structure" required:"true"` -} - -// String returns the string representation -func (s PatchRule) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PatchRule) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *PatchRule) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "PatchRule"} - if s.ApproveUntilDate != nil && len(*s.ApproveUntilDate) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ApproveUntilDate", 1)) - } - if s.PatchFilterGroup == nil { - invalidParams.Add(request.NewErrParamRequired("PatchFilterGroup")) - } - if s.PatchFilterGroup != nil { - if err := s.PatchFilterGroup.Validate(); err != nil { - invalidParams.AddNested("PatchFilterGroup", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetApproveAfterDays sets the ApproveAfterDays field's value. -func (s *PatchRule) SetApproveAfterDays(v int64) *PatchRule { - s.ApproveAfterDays = &v - return s -} - -// SetApproveUntilDate sets the ApproveUntilDate field's value. -func (s *PatchRule) SetApproveUntilDate(v string) *PatchRule { - s.ApproveUntilDate = &v - return s -} - -// SetComplianceLevel sets the ComplianceLevel field's value. -func (s *PatchRule) SetComplianceLevel(v string) *PatchRule { - s.ComplianceLevel = &v - return s -} - -// SetEnableNonSecurity sets the EnableNonSecurity field's value. -func (s *PatchRule) SetEnableNonSecurity(v bool) *PatchRule { - s.EnableNonSecurity = &v - return s -} - -// SetPatchFilterGroup sets the PatchFilterGroup field's value. -func (s *PatchRule) SetPatchFilterGroup(v *PatchFilterGroup) *PatchRule { - s.PatchFilterGroup = v - return s -} - -// A set of rules defining the approval rules for a patch baseline. -type PatchRuleGroup struct { - _ struct{} `type:"structure"` - - // The rules that make up the rule group. - // - // PatchRules is a required field - PatchRules []*PatchRule `type:"list" required:"true"` -} - -// String returns the string representation -func (s PatchRuleGroup) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PatchRuleGroup) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *PatchRuleGroup) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "PatchRuleGroup"} - if s.PatchRules == nil { - invalidParams.Add(request.NewErrParamRequired("PatchRules")) - } - if s.PatchRules != nil { - for i, v := range s.PatchRules { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PatchRules", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetPatchRules sets the PatchRules field's value. -func (s *PatchRuleGroup) SetPatchRules(v []*PatchRule) *PatchRuleGroup { - s.PatchRules = v - return s -} - -// Information about the patches to use to update the instances, including target -// operating systems and source repository. Applies to Linux instances only. -type PatchSource struct { - _ struct{} `type:"structure"` - - // The value of the yum repo configuration. For example: - // - // [main] - // - // name=MyCustomRepository - // - // baseurl=https://my-custom-repository - // - // enabled=1 - // - // For information about other options available for your yum repository configuration, - // see dnf.conf(5) (https://man7.org/linux/man-pages/man5/dnf.conf.5.html). - // - // Configuration is a required field - Configuration *string `min:"1" type:"string" required:"true" sensitive:"true"` - - // The name specified to identify the patch source. - // - // Name is a required field - Name *string `type:"string" required:"true"` - - // The specific operating system versions a patch repository applies to, such - // as "Ubuntu16.04", "AmazonLinux2016.09", "RedhatEnterpriseLinux7.2" or "Suse12.7". - // For lists of supported product values, see PatchFilter. - // - // Products is a required field - Products []*string `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s PatchSource) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PatchSource) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *PatchSource) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "PatchSource"} - if s.Configuration == nil { - invalidParams.Add(request.NewErrParamRequired("Configuration")) - } - if s.Configuration != nil && len(*s.Configuration) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Configuration", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Products == nil { - invalidParams.Add(request.NewErrParamRequired("Products")) - } - if s.Products != nil && len(s.Products) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Products", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetConfiguration sets the Configuration field's value. -func (s *PatchSource) SetConfiguration(v string) *PatchSource { - s.Configuration = &v - return s -} - -// SetName sets the Name field's value. -func (s *PatchSource) SetName(v string) *PatchSource { - s.Name = &v - return s -} - -// SetProducts sets the Products field's value. -func (s *PatchSource) SetProducts(v []*string) *PatchSource { - s.Products = v - return s -} - -// Information about the approval status of a patch. -type PatchStatus struct { - _ struct{} `type:"structure"` - - // The date the patch was approved (or will be approved if the status is PENDING_APPROVAL). - ApprovalDate *time.Time `type:"timestamp"` - - // The compliance severity level for a patch. - ComplianceLevel *string `type:"string" enum:"PatchComplianceLevel"` - - // The approval status of a patch (APPROVED, PENDING_APPROVAL, EXPLICIT_APPROVED, - // EXPLICIT_REJECTED). - DeploymentStatus *string `type:"string" enum:"PatchDeploymentStatus"` -} - -// String returns the string representation -func (s PatchStatus) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PatchStatus) GoString() string { - return s.String() -} - -// SetApprovalDate sets the ApprovalDate field's value. -func (s *PatchStatus) SetApprovalDate(v time.Time) *PatchStatus { - s.ApprovalDate = &v - return s -} - -// SetComplianceLevel sets the ComplianceLevel field's value. -func (s *PatchStatus) SetComplianceLevel(v string) *PatchStatus { - s.ComplianceLevel = &v - return s -} - -// SetDeploymentStatus sets the DeploymentStatus field's value. -func (s *PatchStatus) SetDeploymentStatus(v string) *PatchStatus { - s.DeploymentStatus = &v - return s -} - -// You specified more than the maximum number of allowed policies for the parameter. -// The maximum is 10. -type PoliciesLimitExceededException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s PoliciesLimitExceededException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PoliciesLimitExceededException) GoString() string { - return s.String() -} - -func newErrorPoliciesLimitExceededException(v protocol.ResponseMetadata) error { - return &PoliciesLimitExceededException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *PoliciesLimitExceededException) Code() string { - return "PoliciesLimitExceededException" -} - -// Message returns the exception's message. -func (s *PoliciesLimitExceededException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *PoliciesLimitExceededException) OrigErr() error { - return nil -} - -func (s *PoliciesLimitExceededException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *PoliciesLimitExceededException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *PoliciesLimitExceededException) RequestID() string { - return s.RespMetadata.RequestID -} - -// An aggregate of step execution statuses displayed in the AWS Console for -// a multi-Region and multi-account Automation execution. -type ProgressCounters struct { - _ struct{} `type:"structure"` - - // The total number of steps that the system cancelled in all specified AWS - // Regions and accounts for the current Automation execution. - CancelledSteps *int64 `type:"integer"` - - // The total number of steps that failed to run in all specified AWS Regions - // and accounts for the current Automation execution. - FailedSteps *int64 `type:"integer"` - - // The total number of steps that successfully completed in all specified AWS - // Regions and accounts for the current Automation execution. - SuccessSteps *int64 `type:"integer"` - - // The total number of steps that timed out in all specified AWS Regions and - // accounts for the current Automation execution. - TimedOutSteps *int64 `type:"integer"` - - // The total number of steps run in all specified AWS Regions and accounts for - // the current Automation execution. - TotalSteps *int64 `type:"integer"` -} - -// String returns the string representation -func (s ProgressCounters) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ProgressCounters) GoString() string { - return s.String() -} - -// SetCancelledSteps sets the CancelledSteps field's value. -func (s *ProgressCounters) SetCancelledSteps(v int64) *ProgressCounters { - s.CancelledSteps = &v - return s -} - -// SetFailedSteps sets the FailedSteps field's value. -func (s *ProgressCounters) SetFailedSteps(v int64) *ProgressCounters { - s.FailedSteps = &v - return s -} - -// SetSuccessSteps sets the SuccessSteps field's value. -func (s *ProgressCounters) SetSuccessSteps(v int64) *ProgressCounters { - s.SuccessSteps = &v - return s -} - -// SetTimedOutSteps sets the TimedOutSteps field's value. -func (s *ProgressCounters) SetTimedOutSteps(v int64) *ProgressCounters { - s.TimedOutSteps = &v - return s -} - -// SetTotalSteps sets the TotalSteps field's value. -func (s *ProgressCounters) SetTotalSteps(v int64) *ProgressCounters { - s.TotalSteps = &v - return s -} - -type PutComplianceItemsInput struct { - _ struct{} `type:"structure"` - - // Specify the compliance type. For example, specify Association (for a State - // Manager association), Patch, or Custom:string. - // - // ComplianceType is a required field - ComplianceType *string `min:"1" type:"string" required:"true"` - - // A summary of the call execution that includes an execution ID, the type of - // execution (for example, Command), and the date/time of the execution using - // a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'. - // - // ExecutionSummary is a required field - ExecutionSummary *ComplianceExecutionSummary `type:"structure" required:"true"` - - // MD5 or SHA-256 content hash. The content hash is used to determine if existing - // information should be overwritten or ignored. If the content hashes match, - // the request to put compliance information is ignored. - ItemContentHash *string `type:"string"` - - // Information about the compliance as defined by the resource type. For example, - // for a patch compliance type, Items includes information about the PatchSeverity, - // Classification, and so on. - // - // Items is a required field - Items []*ComplianceItemEntry `type:"list" required:"true"` - - // Specify an ID for this resource. For a managed instance, this is the instance - // ID. - // - // ResourceId is a required field - ResourceId *string `min:"1" type:"string" required:"true"` - - // Specify the type of resource. ManagedInstance is currently the only supported - // resource type. - // - // ResourceType is a required field - ResourceType *string `min:"1" type:"string" required:"true"` - - // The mode for uploading compliance items. You can specify COMPLETE or PARTIAL. - // In COMPLETE mode, the system overwrites all existing compliance information - // for the resource. You must provide a full list of compliance items each time - // you send the request. - // - // In PARTIAL mode, the system overwrites compliance information for a specific - // association. The association must be configured with SyncCompliance set to - // MANUAL. By default, all requests use COMPLETE mode. - // - // This attribute is only valid for association compliance. - UploadType *string `type:"string" enum:"ComplianceUploadType"` -} - -// String returns the string representation -func (s PutComplianceItemsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PutComplianceItemsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *PutComplianceItemsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "PutComplianceItemsInput"} - if s.ComplianceType == nil { - invalidParams.Add(request.NewErrParamRequired("ComplianceType")) - } - if s.ComplianceType != nil && len(*s.ComplianceType) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ComplianceType", 1)) - } - if s.ExecutionSummary == nil { - invalidParams.Add(request.NewErrParamRequired("ExecutionSummary")) - } - if s.Items == nil { - invalidParams.Add(request.NewErrParamRequired("Items")) - } - if s.ResourceId == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceId")) - } - if s.ResourceId != nil && len(*s.ResourceId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1)) - } - if s.ResourceType == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceType")) - } - if s.ResourceType != nil && len(*s.ResourceType) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1)) - } - if s.ExecutionSummary != nil { - if err := s.ExecutionSummary.Validate(); err != nil { - invalidParams.AddNested("ExecutionSummary", err.(request.ErrInvalidParams)) - } - } - if s.Items != nil { - for i, v := range s.Items { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetComplianceType sets the ComplianceType field's value. -func (s *PutComplianceItemsInput) SetComplianceType(v string) *PutComplianceItemsInput { - s.ComplianceType = &v - return s -} - -// SetExecutionSummary sets the ExecutionSummary field's value. -func (s *PutComplianceItemsInput) SetExecutionSummary(v *ComplianceExecutionSummary) *PutComplianceItemsInput { - s.ExecutionSummary = v - return s -} - -// SetItemContentHash sets the ItemContentHash field's value. -func (s *PutComplianceItemsInput) SetItemContentHash(v string) *PutComplianceItemsInput { - s.ItemContentHash = &v - return s -} - -// SetItems sets the Items field's value. -func (s *PutComplianceItemsInput) SetItems(v []*ComplianceItemEntry) *PutComplianceItemsInput { - s.Items = v - return s -} - -// SetResourceId sets the ResourceId field's value. -func (s *PutComplianceItemsInput) SetResourceId(v string) *PutComplianceItemsInput { - s.ResourceId = &v - return s -} - -// SetResourceType sets the ResourceType field's value. -func (s *PutComplianceItemsInput) SetResourceType(v string) *PutComplianceItemsInput { - s.ResourceType = &v - return s -} - -// SetUploadType sets the UploadType field's value. -func (s *PutComplianceItemsInput) SetUploadType(v string) *PutComplianceItemsInput { - s.UploadType = &v - return s -} - -type PutComplianceItemsOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s PutComplianceItemsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PutComplianceItemsOutput) GoString() string { - return s.String() -} - -type PutInventoryInput struct { - _ struct{} `type:"structure"` - - // An instance ID where you want to add or update inventory items. - // - // InstanceId is a required field - InstanceId *string `type:"string" required:"true"` - - // The inventory items that you want to add or update on instances. - // - // Items is a required field - Items []*InventoryItem `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s PutInventoryInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PutInventoryInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *PutInventoryInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "PutInventoryInput"} - if s.InstanceId == nil { - invalidParams.Add(request.NewErrParamRequired("InstanceId")) - } - if s.Items == nil { - invalidParams.Add(request.NewErrParamRequired("Items")) - } - if s.Items != nil && len(s.Items) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Items", 1)) - } - if s.Items != nil { - for i, v := range s.Items { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Items", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetInstanceId sets the InstanceId field's value. -func (s *PutInventoryInput) SetInstanceId(v string) *PutInventoryInput { - s.InstanceId = &v - return s -} - -// SetItems sets the Items field's value. -func (s *PutInventoryInput) SetItems(v []*InventoryItem) *PutInventoryInput { - s.Items = v - return s -} - -type PutInventoryOutput struct { - _ struct{} `type:"structure"` - - // Information about the request. - Message *string `type:"string"` -} - -// String returns the string representation -func (s PutInventoryOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PutInventoryOutput) GoString() string { - return s.String() -} - -// SetMessage sets the Message field's value. -func (s *PutInventoryOutput) SetMessage(v string) *PutInventoryOutput { - s.Message = &v - return s -} - -type PutParameterInput struct { - _ struct{} `type:"structure"` - - // A regular expression used to validate the parameter value. For example, for - // String types with values restricted to numbers, you can specify the following: - // AllowedPattern=^\d+$ - AllowedPattern *string `type:"string"` - - // The data type for a String parameter. Supported data types include plain - // text and Amazon Machine Image IDs. - // - // The following data type values are supported. - // - // * text - // - // * aws:ec2:image - // - // When you create a String parameter and specify aws:ec2:image, Systems Manager - // validates the parameter value is in the required format, such as ami-12345abcdeEXAMPLE, - // and that the specified AMI is available in your AWS account. For more information, - // see Native parameter support for Amazon Machine Image IDs (http://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html) - // in the AWS Systems Manager User Guide. - DataType *string `type:"string"` - - // Information about the parameter that you want to add to the system. Optional - // but recommended. - // - // Do not enter personally identifiable information in this field. - Description *string `type:"string"` - - // The KMS Key ID that you want to use to encrypt a parameter. Either the default - // AWS Key Management Service (AWS KMS) key automatically assigned to your AWS - // account or a custom key. Required for parameters that use the SecureString - // data type. - // - // If you don't specify a key ID, the system uses the default key associated - // with your AWS account. - // - // * To use your default AWS KMS key, choose the SecureString data type, - // and do not specify the Key ID when you create the parameter. The system - // automatically populates Key ID with your default KMS key. - // - // * To use a custom KMS key, choose the SecureString data type with the - // Key ID parameter. - KeyId *string `min:"1" type:"string"` - - // The fully qualified name of the parameter that you want to add to the system. - // The fully qualified name includes the complete hierarchy of the parameter - // path and name. For parameters in a hierarchy, you must include a leading - // forward slash character (/) when you create or reference a parameter. For - // example: /Dev/DBServer/MySQL/db-string13 - // - // Naming Constraints: - // - // * Parameter names are case sensitive. - // - // * A parameter name must be unique within an AWS Region - // - // * A parameter name can't be prefixed with "aws" or "ssm" (case-insensitive). - // - // * Parameter names can include only the following symbols and letters: - // a-zA-Z0-9_.- In addition, the slash character ( / ) is used to delineate - // hierarchies in parameter names. For example: /Dev/Production/East/Project-ABC/MyParameter - // - // * A parameter name can't include spaces. - // - // * Parameter hierarchies are limited to a maximum depth of fifteen levels. - // - // For additional information about valid values for parameter names, see Creating - // Systems Manager parameters (https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html) - // in the AWS Systems Manager User Guide. - // - // The maximum length constraint listed below includes capacity for additional - // system attributes that are not part of the name. The maximum length for a - // parameter name, including the full length of the parameter ARN, is 1011 characters. - // For example, the length of the following parameter name is 65 characters, - // not 20 characters: - // - // arn:aws:ssm:us-east-2:111122223333:parameter/ExampleParameterName - // - // Name is a required field - Name *string `min:"1" type:"string" required:"true"` - - // Overwrite an existing parameter. If not specified, will default to "false". - Overwrite *bool `type:"boolean"` - - // One or more policies to apply to a parameter. This action takes a JSON array. - // Parameter Store supports the following policy types: - // - // Expiration: This policy deletes the parameter after it expires. When you - // create the policy, you specify the expiration date. You can update the expiration - // date and time by updating the policy. Updating the parameter does not affect - // the expiration date and time. When the expiration time is reached, Parameter - // Store deletes the parameter. - // - // ExpirationNotification: This policy triggers an event in Amazon CloudWatch - // Events that notifies you about the expiration. By using this policy, you - // can receive notification before or after the expiration time is reached, - // in units of days or hours. - // - // NoChangeNotification: This policy triggers a CloudWatch event if a parameter - // has not been modified for a specified period of time. This policy type is - // useful when, for example, a secret needs to be changed within a period of - // time, but it has not been changed. - // - // All existing policies are preserved until you send new policies or an empty - // policy. For more information about parameter policies, see Assigning parameter - // policies (https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html). - Policies *string `min:"1" type:"string"` - - // Optional metadata that you assign to a resource. Tags enable you to categorize - // a resource in different ways, such as by purpose, owner, or environment. - // For example, you might want to tag a Systems Manager parameter to identify - // the type of resource to which it applies, the environment, or the type of - // configuration data referenced by the parameter. In this case, you could specify - // the following key name/value pairs: - // - // * Key=Resource,Value=S3bucket - // - // * Key=OS,Value=Windows - // - // * Key=ParameterType,Value=LicenseKey - // - // To add tags to an existing Systems Manager parameter, use the AddTagsToResource - // action. - Tags []*Tag `type:"list"` - - // The parameter tier to assign to a parameter. - // - // Parameter Store offers a standard tier and an advanced tier for parameters. - // Standard parameters have a content size limit of 4 KB and can't be configured - // to use parameter policies. You can create a maximum of 10,000 standard parameters - // for each Region in an AWS account. Standard parameters are offered at no - // additional cost. - // - // Advanced parameters have a content size limit of 8 KB and can be configured - // to use parameter policies. You can create a maximum of 100,000 advanced parameters - // for each Region in an AWS account. Advanced parameters incur a charge. For - // more information, see Standard and advanced parameter tiers (https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html) - // in the AWS Systems Manager User Guide. - // - // You can change a standard parameter to an advanced parameter any time. But - // you can't revert an advanced parameter to a standard parameter. Reverting - // an advanced parameter to a standard parameter would result in data loss because - // the system would truncate the size of the parameter from 8 KB to 4 KB. Reverting - // would also remove any policies attached to the parameter. Lastly, advanced - // parameters use a different form of encryption than standard parameters. - // - // If you no longer need an advanced parameter, or if you no longer want to - // incur charges for an advanced parameter, you must delete it and recreate - // it as a new standard parameter. - // - // Using the Default Tier Configuration - // - // In PutParameter requests, you can specify the tier to create the parameter - // in. Whenever you specify a tier in the request, Parameter Store creates or - // updates the parameter according to that request. However, if you do not specify - // a tier in a request, Parameter Store assigns the tier based on the current - // Parameter Store default tier configuration. - // - // The default tier when you begin using Parameter Store is the standard-parameter - // tier. If you use the advanced-parameter tier, you can specify one of the - // following as the default: - // - // * Advanced: With this option, Parameter Store evaluates all requests as - // advanced parameters. - // - // * Intelligent-Tiering: With this option, Parameter Store evaluates each - // request to determine if the parameter is standard or advanced. If the - // request doesn't include any options that require an advanced parameter, - // the parameter is created in the standard-parameter tier. If one or more - // options requiring an advanced parameter are included in the request, Parameter - // Store create a parameter in the advanced-parameter tier. This approach - // helps control your parameter-related costs by always creating standard - // parameters unless an advanced parameter is necessary. - // - // Options that require an advanced parameter include the following: - // - // * The content size of the parameter is more than 4 KB. - // - // * The parameter uses a parameter policy. - // - // * More than 10,000 parameters already exist in your AWS account in the - // current Region. - // - // For more information about configuring the default tier option, see Specifying - // a default parameter tier (https://docs.aws.amazon.com/systems-manager/latest/userguide/ps-default-tier.html) - // in the AWS Systems Manager User Guide. - Tier *string `type:"string" enum:"ParameterTier"` - - // The type of parameter that you want to add to the system. - // - // SecureString is not currently supported for AWS CloudFormation templates. - // - // Items in a StringList must be separated by a comma (,). You can't use other - // punctuation or special character to escape items in the list. If you have - // a parameter value that requires a comma, then use the String data type. - // - // Specifying a parameter type is not required when updating a parameter. You - // must specify a parameter type when creating a parameter. - Type *string `type:"string" enum:"ParameterType"` - - // The parameter value that you want to add to the system. Standard parameters - // have a value limit of 4 KB. Advanced parameters have a value limit of 8 KB. - // - // Parameters can't be referenced or nested in the values of other parameters. - // You can't include {{}} or {{ssm:parameter-name}} in a parameter value. - // - // Value is a required field - Value *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s PutParameterInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PutParameterInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *PutParameterInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "PutParameterInput"} - if s.KeyId != nil && len(*s.KeyId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("KeyId", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Name", 1)) - } - if s.Policies != nil && len(*s.Policies) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Policies", 1)) - } - if s.Value == nil { - invalidParams.Add(request.NewErrParamRequired("Value")) - } - if s.Tags != nil { - for i, v := range s.Tags { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAllowedPattern sets the AllowedPattern field's value. -func (s *PutParameterInput) SetAllowedPattern(v string) *PutParameterInput { - s.AllowedPattern = &v - return s -} - -// SetDataType sets the DataType field's value. -func (s *PutParameterInput) SetDataType(v string) *PutParameterInput { - s.DataType = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *PutParameterInput) SetDescription(v string) *PutParameterInput { - s.Description = &v - return s -} - -// SetKeyId sets the KeyId field's value. -func (s *PutParameterInput) SetKeyId(v string) *PutParameterInput { - s.KeyId = &v - return s -} - -// SetName sets the Name field's value. -func (s *PutParameterInput) SetName(v string) *PutParameterInput { - s.Name = &v - return s -} - -// SetOverwrite sets the Overwrite field's value. -func (s *PutParameterInput) SetOverwrite(v bool) *PutParameterInput { - s.Overwrite = &v - return s -} - -// SetPolicies sets the Policies field's value. -func (s *PutParameterInput) SetPolicies(v string) *PutParameterInput { - s.Policies = &v - return s -} - -// SetTags sets the Tags field's value. -func (s *PutParameterInput) SetTags(v []*Tag) *PutParameterInput { - s.Tags = v - return s -} - -// SetTier sets the Tier field's value. -func (s *PutParameterInput) SetTier(v string) *PutParameterInput { - s.Tier = &v - return s -} - -// SetType sets the Type field's value. -func (s *PutParameterInput) SetType(v string) *PutParameterInput { - s.Type = &v - return s -} - -// SetValue sets the Value field's value. -func (s *PutParameterInput) SetValue(v string) *PutParameterInput { - s.Value = &v - return s -} - -type PutParameterOutput struct { - _ struct{} `type:"structure"` - - // The tier assigned to the parameter. - Tier *string `type:"string" enum:"ParameterTier"` - - // The new version number of a parameter. If you edit a parameter value, Parameter - // Store automatically creates a new version and assigns this new version a - // unique ID. You can reference a parameter version ID in API actions or in - // Systems Manager documents (SSM documents). By default, if you don't specify - // a specific version, the system returns the latest parameter value when a - // parameter is called. - Version *int64 `type:"long"` -} - -// String returns the string representation -func (s PutParameterOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PutParameterOutput) GoString() string { - return s.String() -} - -// SetTier sets the Tier field's value. -func (s *PutParameterOutput) SetTier(v string) *PutParameterOutput { - s.Tier = &v - return s -} - -// SetVersion sets the Version field's value. -func (s *PutParameterOutput) SetVersion(v int64) *PutParameterOutput { - s.Version = &v - return s -} - -type RegisterDefaultPatchBaselineInput struct { - _ struct{} `type:"structure"` - - // The ID of the patch baseline that should be the default patch baseline. - // - // BaselineId is a required field - BaselineId *string `min:"20" type:"string" required:"true"` -} - -// String returns the string representation -func (s RegisterDefaultPatchBaselineInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s RegisterDefaultPatchBaselineInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *RegisterDefaultPatchBaselineInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "RegisterDefaultPatchBaselineInput"} - if s.BaselineId == nil { - invalidParams.Add(request.NewErrParamRequired("BaselineId")) - } - if s.BaselineId != nil && len(*s.BaselineId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("BaselineId", 20)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetBaselineId sets the BaselineId field's value. -func (s *RegisterDefaultPatchBaselineInput) SetBaselineId(v string) *RegisterDefaultPatchBaselineInput { - s.BaselineId = &v - return s -} - -type RegisterDefaultPatchBaselineOutput struct { - _ struct{} `type:"structure"` - - // The ID of the default patch baseline. - BaselineId *string `min:"20" type:"string"` -} - -// String returns the string representation -func (s RegisterDefaultPatchBaselineOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s RegisterDefaultPatchBaselineOutput) GoString() string { - return s.String() -} - -// SetBaselineId sets the BaselineId field's value. -func (s *RegisterDefaultPatchBaselineOutput) SetBaselineId(v string) *RegisterDefaultPatchBaselineOutput { - s.BaselineId = &v - return s -} - -type RegisterPatchBaselineForPatchGroupInput struct { - _ struct{} `type:"structure"` - - // The ID of the patch baseline to register the patch group with. - // - // BaselineId is a required field - BaselineId *string `min:"20" type:"string" required:"true"` - - // The name of the patch group that should be registered with the patch baseline. - // - // PatchGroup is a required field - PatchGroup *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s RegisterPatchBaselineForPatchGroupInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s RegisterPatchBaselineForPatchGroupInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *RegisterPatchBaselineForPatchGroupInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "RegisterPatchBaselineForPatchGroupInput"} - if s.BaselineId == nil { - invalidParams.Add(request.NewErrParamRequired("BaselineId")) - } - if s.BaselineId != nil && len(*s.BaselineId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("BaselineId", 20)) - } - if s.PatchGroup == nil { - invalidParams.Add(request.NewErrParamRequired("PatchGroup")) - } - if s.PatchGroup != nil && len(*s.PatchGroup) < 1 { - invalidParams.Add(request.NewErrParamMinLen("PatchGroup", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetBaselineId sets the BaselineId field's value. -func (s *RegisterPatchBaselineForPatchGroupInput) SetBaselineId(v string) *RegisterPatchBaselineForPatchGroupInput { - s.BaselineId = &v - return s -} - -// SetPatchGroup sets the PatchGroup field's value. -func (s *RegisterPatchBaselineForPatchGroupInput) SetPatchGroup(v string) *RegisterPatchBaselineForPatchGroupInput { - s.PatchGroup = &v - return s -} - -type RegisterPatchBaselineForPatchGroupOutput struct { - _ struct{} `type:"structure"` - - // The ID of the patch baseline the patch group was registered with. - BaselineId *string `min:"20" type:"string"` - - // The name of the patch group registered with the patch baseline. - PatchGroup *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s RegisterPatchBaselineForPatchGroupOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s RegisterPatchBaselineForPatchGroupOutput) GoString() string { - return s.String() -} - -// SetBaselineId sets the BaselineId field's value. -func (s *RegisterPatchBaselineForPatchGroupOutput) SetBaselineId(v string) *RegisterPatchBaselineForPatchGroupOutput { - s.BaselineId = &v - return s -} - -// SetPatchGroup sets the PatchGroup field's value. -func (s *RegisterPatchBaselineForPatchGroupOutput) SetPatchGroup(v string) *RegisterPatchBaselineForPatchGroupOutput { - s.PatchGroup = &v - return s -} - -type RegisterTargetWithMaintenanceWindowInput struct { - _ struct{} `type:"structure"` - - // User-provided idempotency token. - ClientToken *string `min:"1" type:"string" idempotencyToken:"true"` - - // An optional description for the target. - Description *string `min:"1" type:"string" sensitive:"true"` - - // An optional name for the target. - Name *string `min:"3" type:"string"` - - // User-provided value that will be included in any CloudWatch events raised - // while running tasks for these targets in this maintenance window. - OwnerInformation *string `min:"1" type:"string" sensitive:"true"` - - // The type of target being registered with the maintenance window. - // - // ResourceType is a required field - ResourceType *string `type:"string" required:"true" enum:"MaintenanceWindowResourceType"` - - // The targets to register with the maintenance window. In other words, the - // instances to run commands on when the maintenance window runs. - // - // If a single maintenance window task is registered with multiple targets, - // its task invocations occur sequentially and not in parallel. If your task - // must run on multiple targets at the same time, register a task for each target - // individually and assign each task the same priority level. - // - // You can specify targets using instance IDs, resource group names, or tags - // that have been applied to instances. - // - // Example 1: Specify instance IDs - // - // Key=InstanceIds,Values=instance-id-1,instance-id-2,instance-id-3 - // - // Example 2: Use tag key-pairs applied to instances - // - // Key=tag:my-tag-key,Values=my-tag-value-1,my-tag-value-2 - // - // Example 3: Use tag-keys applied to instances - // - // Key=tag-key,Values=my-tag-key-1,my-tag-key-2 - // - // Example 4: Use resource group names - // - // Key=resource-groups:Name,Values=resource-group-name - // - // Example 5: Use filters for resource group types - // - // Key=resource-groups:ResourceTypeFilters,Values=resource-type-1,resource-type-2 - // - // For Key=resource-groups:ResourceTypeFilters, specify resource types in the - // following format - // - // Key=resource-groups:ResourceTypeFilters,Values=AWS::EC2::INSTANCE,AWS::EC2::VPC - // - // For more information about these examples formats, including the best use - // case for each one, see Examples: Register targets with a maintenance window - // (https://docs.aws.amazon.com/systems-manager/latest/userguide/mw-cli-tutorial-targets-examples.html) - // in the AWS Systems Manager User Guide. - // - // Targets is a required field - Targets []*Target `type:"list" required:"true"` - - // The ID of the maintenance window the target should be registered with. - // - // WindowId is a required field - WindowId *string `min:"20" type:"string" required:"true"` -} - -// String returns the string representation -func (s RegisterTargetWithMaintenanceWindowInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s RegisterTargetWithMaintenanceWindowInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *RegisterTargetWithMaintenanceWindowInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "RegisterTargetWithMaintenanceWindowInput"} - if s.ClientToken != nil && len(*s.ClientToken) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) - } - if s.Description != nil && len(*s.Description) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Description", 1)) - } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) - } - if s.OwnerInformation != nil && len(*s.OwnerInformation) < 1 { - invalidParams.Add(request.NewErrParamMinLen("OwnerInformation", 1)) - } - if s.ResourceType == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceType")) - } - if s.Targets == nil { - invalidParams.Add(request.NewErrParamRequired("Targets")) - } - if s.WindowId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowId")) - } - if s.WindowId != nil && len(*s.WindowId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("WindowId", 20)) - } - if s.Targets != nil { - for i, v := range s.Targets { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetClientToken sets the ClientToken field's value. -func (s *RegisterTargetWithMaintenanceWindowInput) SetClientToken(v string) *RegisterTargetWithMaintenanceWindowInput { - s.ClientToken = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *RegisterTargetWithMaintenanceWindowInput) SetDescription(v string) *RegisterTargetWithMaintenanceWindowInput { - s.Description = &v - return s -} - -// SetName sets the Name field's value. -func (s *RegisterTargetWithMaintenanceWindowInput) SetName(v string) *RegisterTargetWithMaintenanceWindowInput { - s.Name = &v - return s -} - -// SetOwnerInformation sets the OwnerInformation field's value. -func (s *RegisterTargetWithMaintenanceWindowInput) SetOwnerInformation(v string) *RegisterTargetWithMaintenanceWindowInput { - s.OwnerInformation = &v - return s -} - -// SetResourceType sets the ResourceType field's value. -func (s *RegisterTargetWithMaintenanceWindowInput) SetResourceType(v string) *RegisterTargetWithMaintenanceWindowInput { - s.ResourceType = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *RegisterTargetWithMaintenanceWindowInput) SetTargets(v []*Target) *RegisterTargetWithMaintenanceWindowInput { - s.Targets = v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *RegisterTargetWithMaintenanceWindowInput) SetWindowId(v string) *RegisterTargetWithMaintenanceWindowInput { - s.WindowId = &v - return s -} - -type RegisterTargetWithMaintenanceWindowOutput struct { - _ struct{} `type:"structure"` - - // The ID of the target definition in this maintenance window. - WindowTargetId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s RegisterTargetWithMaintenanceWindowOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s RegisterTargetWithMaintenanceWindowOutput) GoString() string { - return s.String() -} - -// SetWindowTargetId sets the WindowTargetId field's value. -func (s *RegisterTargetWithMaintenanceWindowOutput) SetWindowTargetId(v string) *RegisterTargetWithMaintenanceWindowOutput { - s.WindowTargetId = &v - return s -} - -type RegisterTaskWithMaintenanceWindowInput struct { - _ struct{} `type:"structure"` - - // User-provided idempotency token. - ClientToken *string `min:"1" type:"string" idempotencyToken:"true"` - - // An optional description for the task. - Description *string `min:"1" type:"string" sensitive:"true"` - - // A structure containing information about an S3 bucket to write instance-level - // logs to. - // - // LoggingInfo has been deprecated. To specify an S3 bucket to contain logs, - // instead use the OutputS3BucketName and OutputS3KeyPrefix options in the TaskInvocationParameters - // structure. For information about how Systems Manager handles these options - // for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. - LoggingInfo *LoggingInfo `type:"structure"` - - // The maximum number of targets this task can be run for in parallel. - // - // For maintenance window tasks without a target specified, you cannot supply - // a value for this option. Instead, the system inserts a placeholder value - // of 1. This value does not affect the running of your task. - MaxConcurrency *string `min:"1" type:"string"` - - // The maximum number of errors allowed before this task stops being scheduled. - // - // For maintenance window tasks without a target specified, you cannot supply - // a value for this option. Instead, the system inserts a placeholder value - // of 1. This value does not affect the running of your task. - MaxErrors *string `min:"1" type:"string"` - - // An optional name for the task. - Name *string `min:"3" type:"string"` - - // The priority of the task in the maintenance window, the lower the number - // the higher the priority. Tasks in a maintenance window are scheduled in priority - // order with tasks that have the same priority scheduled in parallel. - Priority *int64 `type:"integer"` - - // The ARN of the IAM service role for Systems Manager to assume when running - // a maintenance window task. If you do not specify a service role ARN, Systems - // Manager uses your account's service-linked role. If no service-linked role - // for Systems Manager exists in your account, it is created when you run RegisterTaskWithMaintenanceWindow. - // - // For more information, see the following topics in the in the AWS Systems - // Manager User Guide: - // - // * Using service-linked roles for Systems Manager (https://docs.aws.amazon.com/systems-manager/latest/userguide/using-service-linked-roles.html#slr-permissions) - // - // * Should I use a service-linked role or a custom service role to run maintenance - // window tasks? (https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-permissions.html#maintenance-window-tasks-service-role) - ServiceRoleArn *string `type:"string"` - - // The targets (either instances or maintenance window targets). - // - // One or more targets must be specified for maintenance window Run Command-type - // tasks. Depending on the task, targets are optional for other maintenance - // window task types (Automation, AWS Lambda, and AWS Step Functions). For more - // information about running tasks that do not specify targets, see Registering - // maintenance window tasks without targets (https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html) - // in the AWS Systems Manager User Guide. - // - // Specify instances using the following format: - // - // Key=InstanceIds,Values=, - // - // Specify maintenance window targets using the following format: - // - // Key=WindowTargetIds,Values=, - Targets []*Target `type:"list"` - - // The ARN of the task to run. - // - // TaskArn is a required field - TaskArn *string `min:"1" type:"string" required:"true"` - - // The parameters that the task should use during execution. Populate only the - // fields that match the task type. All other fields should be empty. - TaskInvocationParameters *MaintenanceWindowTaskInvocationParameters `type:"structure"` - - // The parameters that should be passed to the task when it is run. - // - // TaskParameters has been deprecated. To specify parameters to pass to a task - // when it runs, instead use the Parameters option in the TaskInvocationParameters - // structure. For information about how Systems Manager handles these options - // for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. - TaskParameters map[string]*MaintenanceWindowTaskParameterValueExpression `type:"map" sensitive:"true"` - - // The type of task being registered. - // - // TaskType is a required field - TaskType *string `type:"string" required:"true" enum:"MaintenanceWindowTaskType"` - - // The ID of the maintenance window the task should be added to. - // - // WindowId is a required field - WindowId *string `min:"20" type:"string" required:"true"` -} - -// String returns the string representation -func (s RegisterTaskWithMaintenanceWindowInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s RegisterTaskWithMaintenanceWindowInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *RegisterTaskWithMaintenanceWindowInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "RegisterTaskWithMaintenanceWindowInput"} - if s.ClientToken != nil && len(*s.ClientToken) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) - } - if s.Description != nil && len(*s.Description) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Description", 1)) - } - if s.MaxConcurrency != nil && len(*s.MaxConcurrency) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxConcurrency", 1)) - } - if s.MaxErrors != nil && len(*s.MaxErrors) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxErrors", 1)) - } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) - } - if s.TaskArn == nil { - invalidParams.Add(request.NewErrParamRequired("TaskArn")) - } - if s.TaskArn != nil && len(*s.TaskArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TaskArn", 1)) - } - if s.TaskType == nil { - invalidParams.Add(request.NewErrParamRequired("TaskType")) - } - if s.WindowId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowId")) - } - if s.WindowId != nil && len(*s.WindowId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("WindowId", 20)) - } - if s.LoggingInfo != nil { - if err := s.LoggingInfo.Validate(); err != nil { - invalidParams.AddNested("LoggingInfo", err.(request.ErrInvalidParams)) - } - } - if s.Targets != nil { - for i, v := range s.Targets { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) - } - } - } - if s.TaskInvocationParameters != nil { - if err := s.TaskInvocationParameters.Validate(); err != nil { - invalidParams.AddNested("TaskInvocationParameters", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetClientToken sets the ClientToken field's value. -func (s *RegisterTaskWithMaintenanceWindowInput) SetClientToken(v string) *RegisterTaskWithMaintenanceWindowInput { - s.ClientToken = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *RegisterTaskWithMaintenanceWindowInput) SetDescription(v string) *RegisterTaskWithMaintenanceWindowInput { - s.Description = &v - return s -} - -// SetLoggingInfo sets the LoggingInfo field's value. -func (s *RegisterTaskWithMaintenanceWindowInput) SetLoggingInfo(v *LoggingInfo) *RegisterTaskWithMaintenanceWindowInput { - s.LoggingInfo = v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *RegisterTaskWithMaintenanceWindowInput) SetMaxConcurrency(v string) *RegisterTaskWithMaintenanceWindowInput { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *RegisterTaskWithMaintenanceWindowInput) SetMaxErrors(v string) *RegisterTaskWithMaintenanceWindowInput { - s.MaxErrors = &v - return s -} - -// SetName sets the Name field's value. -func (s *RegisterTaskWithMaintenanceWindowInput) SetName(v string) *RegisterTaskWithMaintenanceWindowInput { - s.Name = &v - return s -} - -// SetPriority sets the Priority field's value. -func (s *RegisterTaskWithMaintenanceWindowInput) SetPriority(v int64) *RegisterTaskWithMaintenanceWindowInput { - s.Priority = &v - return s -} - -// SetServiceRoleArn sets the ServiceRoleArn field's value. -func (s *RegisterTaskWithMaintenanceWindowInput) SetServiceRoleArn(v string) *RegisterTaskWithMaintenanceWindowInput { - s.ServiceRoleArn = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *RegisterTaskWithMaintenanceWindowInput) SetTargets(v []*Target) *RegisterTaskWithMaintenanceWindowInput { - s.Targets = v - return s -} - -// SetTaskArn sets the TaskArn field's value. -func (s *RegisterTaskWithMaintenanceWindowInput) SetTaskArn(v string) *RegisterTaskWithMaintenanceWindowInput { - s.TaskArn = &v - return s -} - -// SetTaskInvocationParameters sets the TaskInvocationParameters field's value. -func (s *RegisterTaskWithMaintenanceWindowInput) SetTaskInvocationParameters(v *MaintenanceWindowTaskInvocationParameters) *RegisterTaskWithMaintenanceWindowInput { - s.TaskInvocationParameters = v - return s -} - -// SetTaskParameters sets the TaskParameters field's value. -func (s *RegisterTaskWithMaintenanceWindowInput) SetTaskParameters(v map[string]*MaintenanceWindowTaskParameterValueExpression) *RegisterTaskWithMaintenanceWindowInput { - s.TaskParameters = v - return s -} - -// SetTaskType sets the TaskType field's value. -func (s *RegisterTaskWithMaintenanceWindowInput) SetTaskType(v string) *RegisterTaskWithMaintenanceWindowInput { - s.TaskType = &v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *RegisterTaskWithMaintenanceWindowInput) SetWindowId(v string) *RegisterTaskWithMaintenanceWindowInput { - s.WindowId = &v - return s -} - -type RegisterTaskWithMaintenanceWindowOutput struct { - _ struct{} `type:"structure"` - - // The ID of the task in the maintenance window. - WindowTaskId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s RegisterTaskWithMaintenanceWindowOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s RegisterTaskWithMaintenanceWindowOutput) GoString() string { - return s.String() -} - -// SetWindowTaskId sets the WindowTaskId field's value. -func (s *RegisterTaskWithMaintenanceWindowOutput) SetWindowTaskId(v string) *RegisterTaskWithMaintenanceWindowOutput { - s.WindowTaskId = &v - return s -} - -// An OpsItems that shares something in common with the current OpsItem. For -// example, related OpsItems can include OpsItems with similar error messages, -// impacted resources, or statuses for the impacted resource. -type RelatedOpsItem struct { - _ struct{} `type:"structure"` - - // The ID of an OpsItem related to the current OpsItem. - // - // OpsItemId is a required field - OpsItemId *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s RelatedOpsItem) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s RelatedOpsItem) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *RelatedOpsItem) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "RelatedOpsItem"} - if s.OpsItemId == nil { - invalidParams.Add(request.NewErrParamRequired("OpsItemId")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetOpsItemId sets the OpsItemId field's value. -func (s *RelatedOpsItem) SetOpsItemId(v string) *RelatedOpsItem { - s.OpsItemId = &v - return s -} - -type RemoveTagsFromResourceInput struct { - _ struct{} `type:"structure"` - - // The ID of the resource from which you want to remove tags. For example: - // - // ManagedInstance: mi-012345abcde - // - // MaintenanceWindow: mw-012345abcde - // - // PatchBaseline: pb-012345abcde - // - // For the Document and Parameter values, use the name of the resource. - // - // The ManagedInstance type for this API action is only for on-premises managed - // instances. Specify the name of the managed instance in the following format: - // mi-ID_number. For example, mi-1a2b3c4d5e6f. - // - // ResourceId is a required field - ResourceId *string `type:"string" required:"true"` - - // The type of resource from which you want to remove a tag. - // - // The ManagedInstance type for this API action is only for on-premises managed - // instances. Specify the name of the managed instance in the following format: - // mi-ID_number. For example, mi-1a2b3c4d5e6f. - // - // ResourceType is a required field - ResourceType *string `type:"string" required:"true" enum:"ResourceTypeForTagging"` - - // Tag keys that you want to remove from the specified resource. - // - // TagKeys is a required field - TagKeys []*string `type:"list" required:"true"` -} - -// String returns the string representation -func (s RemoveTagsFromResourceInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s RemoveTagsFromResourceInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *RemoveTagsFromResourceInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "RemoveTagsFromResourceInput"} - if s.ResourceId == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceId")) - } - if s.ResourceType == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceType")) - } - if s.TagKeys == nil { - invalidParams.Add(request.NewErrParamRequired("TagKeys")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetResourceId sets the ResourceId field's value. -func (s *RemoveTagsFromResourceInput) SetResourceId(v string) *RemoveTagsFromResourceInput { - s.ResourceId = &v - return s -} - -// SetResourceType sets the ResourceType field's value. -func (s *RemoveTagsFromResourceInput) SetResourceType(v string) *RemoveTagsFromResourceInput { - s.ResourceType = &v - return s -} - -// SetTagKeys sets the TagKeys field's value. -func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromResourceInput { - s.TagKeys = v - return s -} - -type RemoveTagsFromResourceOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s RemoveTagsFromResourceOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s RemoveTagsFromResourceOutput) GoString() string { - return s.String() -} - -// The request body of the ResetServiceSetting API action. -type ResetServiceSettingInput struct { - _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) of the service setting to reset. The setting - // ID can be /ssm/automation/customer-script-log-destination, /ssm/automation/customer-script-log-group-name, - // /ssm/parameter-store/default-parameter-tier, /ssm/parameter-store/high-throughput-enabled, - // or /ssm/managed-instance/activation-tier. For example, arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/high-throughput-enabled. - // - // SettingId is a required field - SettingId *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s ResetServiceSettingInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResetServiceSettingInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ResetServiceSettingInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ResetServiceSettingInput"} - if s.SettingId == nil { - invalidParams.Add(request.NewErrParamRequired("SettingId")) - } - if s.SettingId != nil && len(*s.SettingId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SettingId", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetSettingId sets the SettingId field's value. -func (s *ResetServiceSettingInput) SetSettingId(v string) *ResetServiceSettingInput { - s.SettingId = &v - return s -} - -// The result body of the ResetServiceSetting API action. -type ResetServiceSettingOutput struct { - _ struct{} `type:"structure"` - - // The current, effective service setting after calling the ResetServiceSetting - // API action. - ServiceSetting *ServiceSetting `type:"structure"` -} - -// String returns the string representation -func (s ResetServiceSettingOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResetServiceSettingOutput) GoString() string { - return s.String() -} - -// SetServiceSetting sets the ServiceSetting field's value. -func (s *ResetServiceSettingOutput) SetServiceSetting(v *ServiceSetting) *ResetServiceSettingOutput { - s.ServiceSetting = v - return s -} - -// Information about targets that resolved during the Automation execution. -type ResolvedTargets struct { - _ struct{} `type:"structure"` - - // A list of parameter values sent to targets that resolved during the Automation - // execution. - ParameterValues []*string `type:"list"` - - // A boolean value indicating whether the resolved target list is truncated. - Truncated *bool `type:"boolean"` -} - -// String returns the string representation -func (s ResolvedTargets) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResolvedTargets) GoString() string { - return s.String() -} - -// SetParameterValues sets the ParameterValues field's value. -func (s *ResolvedTargets) SetParameterValues(v []*string) *ResolvedTargets { - s.ParameterValues = v - return s -} - -// SetTruncated sets the Truncated field's value. -func (s *ResolvedTargets) SetTruncated(v bool) *ResolvedTargets { - s.Truncated = &v - return s -} - -// Compliance summary information for a specific resource. -type ResourceComplianceSummaryItem struct { - _ struct{} `type:"structure"` - - // The compliance type. - ComplianceType *string `min:"1" type:"string"` - - // A list of items that are compliant for the resource. - CompliantSummary *CompliantSummary `type:"structure"` - - // Information about the execution. - ExecutionSummary *ComplianceExecutionSummary `type:"structure"` - - // A list of items that aren't compliant for the resource. - NonCompliantSummary *NonCompliantSummary `type:"structure"` - - // The highest severity item found for the resource. The resource is compliant - // for this item. - OverallSeverity *string `type:"string" enum:"ComplianceSeverity"` - - // The resource ID. - ResourceId *string `min:"1" type:"string"` - - // The resource type. - ResourceType *string `min:"1" type:"string"` - - // The compliance status for the resource. - Status *string `type:"string" enum:"ComplianceStatus"` -} - -// String returns the string representation -func (s ResourceComplianceSummaryItem) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceComplianceSummaryItem) GoString() string { - return s.String() -} - -// SetComplianceType sets the ComplianceType field's value. -func (s *ResourceComplianceSummaryItem) SetComplianceType(v string) *ResourceComplianceSummaryItem { - s.ComplianceType = &v - return s -} - -// SetCompliantSummary sets the CompliantSummary field's value. -func (s *ResourceComplianceSummaryItem) SetCompliantSummary(v *CompliantSummary) *ResourceComplianceSummaryItem { - s.CompliantSummary = v - return s -} - -// SetExecutionSummary sets the ExecutionSummary field's value. -func (s *ResourceComplianceSummaryItem) SetExecutionSummary(v *ComplianceExecutionSummary) *ResourceComplianceSummaryItem { - s.ExecutionSummary = v - return s -} - -// SetNonCompliantSummary sets the NonCompliantSummary field's value. -func (s *ResourceComplianceSummaryItem) SetNonCompliantSummary(v *NonCompliantSummary) *ResourceComplianceSummaryItem { - s.NonCompliantSummary = v - return s -} - -// SetOverallSeverity sets the OverallSeverity field's value. -func (s *ResourceComplianceSummaryItem) SetOverallSeverity(v string) *ResourceComplianceSummaryItem { - s.OverallSeverity = &v - return s -} - -// SetResourceId sets the ResourceId field's value. -func (s *ResourceComplianceSummaryItem) SetResourceId(v string) *ResourceComplianceSummaryItem { - s.ResourceId = &v - return s -} - -// SetResourceType sets the ResourceType field's value. -func (s *ResourceComplianceSummaryItem) SetResourceType(v string) *ResourceComplianceSummaryItem { - s.ResourceType = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *ResourceComplianceSummaryItem) SetStatus(v string) *ResourceComplianceSummaryItem { - s.Status = &v - return s -} - -// A sync configuration with the same name already exists. -type ResourceDataSyncAlreadyExistsException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` - - SyncName *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s ResourceDataSyncAlreadyExistsException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceDataSyncAlreadyExistsException) GoString() string { - return s.String() -} - -func newErrorResourceDataSyncAlreadyExistsException(v protocol.ResponseMetadata) error { - return &ResourceDataSyncAlreadyExistsException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ResourceDataSyncAlreadyExistsException) Code() string { - return "ResourceDataSyncAlreadyExistsException" -} - -// Message returns the exception's message. -func (s *ResourceDataSyncAlreadyExistsException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ResourceDataSyncAlreadyExistsException) OrigErr() error { - return nil -} - -func (s *ResourceDataSyncAlreadyExistsException) Error() string { - return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ResourceDataSyncAlreadyExistsException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ResourceDataSyncAlreadyExistsException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Information about the AwsOrganizationsSource resource data sync source. A -// sync source of this type can synchronize data from AWS Organizations or, -// if an AWS Organization is not present, from multiple AWS Regions. -type ResourceDataSyncAwsOrganizationsSource struct { - _ struct{} `type:"structure"` - - // If an AWS Organization is present, this is either OrganizationalUnits or - // EntireOrganization. For OrganizationalUnits, the data is aggregated from - // a set of organization units. For EntireOrganization, the data is aggregated - // from the entire AWS Organization. - // - // OrganizationSourceType is a required field - OrganizationSourceType *string `min:"1" type:"string" required:"true"` - - // The AWS Organizations organization units included in the sync. - OrganizationalUnits []*ResourceDataSyncOrganizationalUnit `min:"1" type:"list"` -} - -// String returns the string representation -func (s ResourceDataSyncAwsOrganizationsSource) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceDataSyncAwsOrganizationsSource) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ResourceDataSyncAwsOrganizationsSource) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ResourceDataSyncAwsOrganizationsSource"} - if s.OrganizationSourceType == nil { - invalidParams.Add(request.NewErrParamRequired("OrganizationSourceType")) - } - if s.OrganizationSourceType != nil && len(*s.OrganizationSourceType) < 1 { - invalidParams.Add(request.NewErrParamMinLen("OrganizationSourceType", 1)) - } - if s.OrganizationalUnits != nil && len(s.OrganizationalUnits) < 1 { - invalidParams.Add(request.NewErrParamMinLen("OrganizationalUnits", 1)) - } - if s.OrganizationalUnits != nil { - for i, v := range s.OrganizationalUnits { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OrganizationalUnits", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetOrganizationSourceType sets the OrganizationSourceType field's value. -func (s *ResourceDataSyncAwsOrganizationsSource) SetOrganizationSourceType(v string) *ResourceDataSyncAwsOrganizationsSource { - s.OrganizationSourceType = &v - return s -} - -// SetOrganizationalUnits sets the OrganizationalUnits field's value. -func (s *ResourceDataSyncAwsOrganizationsSource) SetOrganizationalUnits(v []*ResourceDataSyncOrganizationalUnit) *ResourceDataSyncAwsOrganizationsSource { - s.OrganizationalUnits = v - return s -} - -// Another UpdateResourceDataSync request is being processed. Wait a few minutes -// and try again. -type ResourceDataSyncConflictException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s ResourceDataSyncConflictException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceDataSyncConflictException) GoString() string { - return s.String() -} - -func newErrorResourceDataSyncConflictException(v protocol.ResponseMetadata) error { - return &ResourceDataSyncConflictException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ResourceDataSyncConflictException) Code() string { - return "ResourceDataSyncConflictException" -} - -// Message returns the exception's message. -func (s *ResourceDataSyncConflictException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ResourceDataSyncConflictException) OrigErr() error { - return nil -} - -func (s *ResourceDataSyncConflictException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ResourceDataSyncConflictException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ResourceDataSyncConflictException) RequestID() string { - return s.RespMetadata.RequestID -} - -// You have exceeded the allowed maximum sync configurations. -type ResourceDataSyncCountExceededException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s ResourceDataSyncCountExceededException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceDataSyncCountExceededException) GoString() string { - return s.String() -} - -func newErrorResourceDataSyncCountExceededException(v protocol.ResponseMetadata) error { - return &ResourceDataSyncCountExceededException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ResourceDataSyncCountExceededException) Code() string { - return "ResourceDataSyncCountExceededException" -} - -// Message returns the exception's message. -func (s *ResourceDataSyncCountExceededException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ResourceDataSyncCountExceededException) OrigErr() error { - return nil -} - -func (s *ResourceDataSyncCountExceededException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ResourceDataSyncCountExceededException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ResourceDataSyncCountExceededException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Synchronize Systems Manager Inventory data from multiple AWS accounts defined -// in AWS Organizations to a centralized S3 bucket. Data is synchronized to -// individual key prefixes in the central bucket. Each key prefix represents -// a different AWS account ID. -type ResourceDataSyncDestinationDataSharing struct { - _ struct{} `type:"structure"` - - // The sharing data type. Only Organization is supported. - DestinationDataSharingType *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s ResourceDataSyncDestinationDataSharing) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceDataSyncDestinationDataSharing) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ResourceDataSyncDestinationDataSharing) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ResourceDataSyncDestinationDataSharing"} - if s.DestinationDataSharingType != nil && len(*s.DestinationDataSharingType) < 1 { - invalidParams.Add(request.NewErrParamMinLen("DestinationDataSharingType", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDestinationDataSharingType sets the DestinationDataSharingType field's value. -func (s *ResourceDataSyncDestinationDataSharing) SetDestinationDataSharingType(v string) *ResourceDataSyncDestinationDataSharing { - s.DestinationDataSharingType = &v - return s -} - -// The specified sync configuration is invalid. -type ResourceDataSyncInvalidConfigurationException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s ResourceDataSyncInvalidConfigurationException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceDataSyncInvalidConfigurationException) GoString() string { - return s.String() -} - -func newErrorResourceDataSyncInvalidConfigurationException(v protocol.ResponseMetadata) error { - return &ResourceDataSyncInvalidConfigurationException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ResourceDataSyncInvalidConfigurationException) Code() string { - return "ResourceDataSyncInvalidConfigurationException" -} - -// Message returns the exception's message. -func (s *ResourceDataSyncInvalidConfigurationException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ResourceDataSyncInvalidConfigurationException) OrigErr() error { - return nil -} - -func (s *ResourceDataSyncInvalidConfigurationException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ResourceDataSyncInvalidConfigurationException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ResourceDataSyncInvalidConfigurationException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Information about a Resource Data Sync configuration, including its current -// status and last successful sync. -type ResourceDataSyncItem struct { - _ struct{} `type:"structure"` - - // The status reported by the last sync. - LastStatus *string `type:"string" enum:"LastResourceDataSyncStatus"` - - // The last time the sync operations returned a status of SUCCESSFUL (UTC). - LastSuccessfulSyncTime *time.Time `type:"timestamp"` - - // The status message details reported by the last sync. - LastSyncStatusMessage *string `type:"string"` - - // The last time the configuration attempted to sync (UTC). - LastSyncTime *time.Time `type:"timestamp"` - - // Configuration information for the target S3 bucket. - S3Destination *ResourceDataSyncS3Destination `type:"structure"` - - // The date and time the configuration was created (UTC). - SyncCreatedTime *time.Time `type:"timestamp"` - - // The date and time the resource data sync was changed. - SyncLastModifiedTime *time.Time `type:"timestamp"` - - // The name of the Resource Data Sync. - SyncName *string `min:"1" type:"string"` - - // Information about the source where the data was synchronized. - SyncSource *ResourceDataSyncSourceWithState `type:"structure"` - - // The type of resource data sync. If SyncType is SyncToDestination, then the - // resource data sync synchronizes data to an S3 bucket. If the SyncType is - // SyncFromSource then the resource data sync synchronizes data from AWS Organizations - // or from multiple AWS Regions. - SyncType *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s ResourceDataSyncItem) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceDataSyncItem) GoString() string { - return s.String() -} - -// SetLastStatus sets the LastStatus field's value. -func (s *ResourceDataSyncItem) SetLastStatus(v string) *ResourceDataSyncItem { - s.LastStatus = &v - return s -} - -// SetLastSuccessfulSyncTime sets the LastSuccessfulSyncTime field's value. -func (s *ResourceDataSyncItem) SetLastSuccessfulSyncTime(v time.Time) *ResourceDataSyncItem { - s.LastSuccessfulSyncTime = &v - return s -} - -// SetLastSyncStatusMessage sets the LastSyncStatusMessage field's value. -func (s *ResourceDataSyncItem) SetLastSyncStatusMessage(v string) *ResourceDataSyncItem { - s.LastSyncStatusMessage = &v - return s -} - -// SetLastSyncTime sets the LastSyncTime field's value. -func (s *ResourceDataSyncItem) SetLastSyncTime(v time.Time) *ResourceDataSyncItem { - s.LastSyncTime = &v - return s -} - -// SetS3Destination sets the S3Destination field's value. -func (s *ResourceDataSyncItem) SetS3Destination(v *ResourceDataSyncS3Destination) *ResourceDataSyncItem { - s.S3Destination = v - return s -} - -// SetSyncCreatedTime sets the SyncCreatedTime field's value. -func (s *ResourceDataSyncItem) SetSyncCreatedTime(v time.Time) *ResourceDataSyncItem { - s.SyncCreatedTime = &v - return s -} - -// SetSyncLastModifiedTime sets the SyncLastModifiedTime field's value. -func (s *ResourceDataSyncItem) SetSyncLastModifiedTime(v time.Time) *ResourceDataSyncItem { - s.SyncLastModifiedTime = &v - return s -} - -// SetSyncName sets the SyncName field's value. -func (s *ResourceDataSyncItem) SetSyncName(v string) *ResourceDataSyncItem { - s.SyncName = &v - return s -} - -// SetSyncSource sets the SyncSource field's value. -func (s *ResourceDataSyncItem) SetSyncSource(v *ResourceDataSyncSourceWithState) *ResourceDataSyncItem { - s.SyncSource = v - return s -} - -// SetSyncType sets the SyncType field's value. -func (s *ResourceDataSyncItem) SetSyncType(v string) *ResourceDataSyncItem { - s.SyncType = &v - return s -} - -// The specified sync name was not found. -type ResourceDataSyncNotFoundException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` - - SyncName *string `min:"1" type:"string"` - - SyncType *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s ResourceDataSyncNotFoundException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceDataSyncNotFoundException) GoString() string { - return s.String() -} - -func newErrorResourceDataSyncNotFoundException(v protocol.ResponseMetadata) error { - return &ResourceDataSyncNotFoundException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ResourceDataSyncNotFoundException) Code() string { - return "ResourceDataSyncNotFoundException" -} - -// Message returns the exception's message. -func (s *ResourceDataSyncNotFoundException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ResourceDataSyncNotFoundException) OrigErr() error { - return nil -} - -func (s *ResourceDataSyncNotFoundException) Error() string { - return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ResourceDataSyncNotFoundException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ResourceDataSyncNotFoundException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The AWS Organizations organizational unit data source for the sync. -type ResourceDataSyncOrganizationalUnit struct { - _ struct{} `type:"structure"` - - // The AWS Organization unit ID data source for the sync. - OrganizationalUnitId *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s ResourceDataSyncOrganizationalUnit) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceDataSyncOrganizationalUnit) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ResourceDataSyncOrganizationalUnit) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ResourceDataSyncOrganizationalUnit"} - if s.OrganizationalUnitId != nil && len(*s.OrganizationalUnitId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("OrganizationalUnitId", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetOrganizationalUnitId sets the OrganizationalUnitId field's value. -func (s *ResourceDataSyncOrganizationalUnit) SetOrganizationalUnitId(v string) *ResourceDataSyncOrganizationalUnit { - s.OrganizationalUnitId = &v - return s -} - -// Information about the target S3 bucket for the Resource Data Sync. -type ResourceDataSyncS3Destination struct { - _ struct{} `type:"structure"` - - // The ARN of an encryption key for a destination in Amazon S3. Must belong - // to the same Region as the destination S3 bucket. - AWSKMSKeyARN *string `min:"1" type:"string"` - - // The name of the S3 bucket where the aggregated data is stored. - // - // BucketName is a required field - BucketName *string `min:"1" type:"string" required:"true"` - - // Enables destination data sharing. By default, this field is null. - DestinationDataSharing *ResourceDataSyncDestinationDataSharing `type:"structure"` - - // An Amazon S3 prefix for the bucket. - Prefix *string `min:"1" type:"string"` - - // The AWS Region with the S3 bucket targeted by the Resource Data Sync. - // - // Region is a required field - Region *string `min:"1" type:"string" required:"true"` - - // A supported sync format. The following format is currently supported: JsonSerDe - // - // SyncFormat is a required field - SyncFormat *string `type:"string" required:"true" enum:"ResourceDataSyncS3Format"` -} - -// String returns the string representation -func (s ResourceDataSyncS3Destination) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceDataSyncS3Destination) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ResourceDataSyncS3Destination) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ResourceDataSyncS3Destination"} - if s.AWSKMSKeyARN != nil && len(*s.AWSKMSKeyARN) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AWSKMSKeyARN", 1)) - } - if s.BucketName == nil { - invalidParams.Add(request.NewErrParamRequired("BucketName")) - } - if s.BucketName != nil && len(*s.BucketName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("BucketName", 1)) - } - if s.Prefix != nil && len(*s.Prefix) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Prefix", 1)) - } - if s.Region == nil { - invalidParams.Add(request.NewErrParamRequired("Region")) - } - if s.Region != nil && len(*s.Region) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Region", 1)) - } - if s.SyncFormat == nil { - invalidParams.Add(request.NewErrParamRequired("SyncFormat")) - } - if s.DestinationDataSharing != nil { - if err := s.DestinationDataSharing.Validate(); err != nil { - invalidParams.AddNested("DestinationDataSharing", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAWSKMSKeyARN sets the AWSKMSKeyARN field's value. -func (s *ResourceDataSyncS3Destination) SetAWSKMSKeyARN(v string) *ResourceDataSyncS3Destination { - s.AWSKMSKeyARN = &v - return s -} - -// SetBucketName sets the BucketName field's value. -func (s *ResourceDataSyncS3Destination) SetBucketName(v string) *ResourceDataSyncS3Destination { - s.BucketName = &v - return s -} - -// SetDestinationDataSharing sets the DestinationDataSharing field's value. -func (s *ResourceDataSyncS3Destination) SetDestinationDataSharing(v *ResourceDataSyncDestinationDataSharing) *ResourceDataSyncS3Destination { - s.DestinationDataSharing = v - return s -} - -// SetPrefix sets the Prefix field's value. -func (s *ResourceDataSyncS3Destination) SetPrefix(v string) *ResourceDataSyncS3Destination { - s.Prefix = &v - return s -} - -// SetRegion sets the Region field's value. -func (s *ResourceDataSyncS3Destination) SetRegion(v string) *ResourceDataSyncS3Destination { - s.Region = &v - return s -} - -// SetSyncFormat sets the SyncFormat field's value. -func (s *ResourceDataSyncS3Destination) SetSyncFormat(v string) *ResourceDataSyncS3Destination { - s.SyncFormat = &v - return s -} - -// Information about the source of the data included in the resource data sync. -type ResourceDataSyncSource struct { - _ struct{} `type:"structure"` - - // Information about the AwsOrganizationsSource resource data sync source. A - // sync source of this type can synchronize data from AWS Organizations. - AwsOrganizationsSource *ResourceDataSyncAwsOrganizationsSource `type:"structure"` - - // Whether to automatically synchronize and aggregate data from new AWS Regions - // when those Regions come online. - IncludeFutureRegions *bool `type:"boolean"` - - // The SyncSource AWS Regions included in the resource data sync. - // - // SourceRegions is a required field - SourceRegions []*string `type:"list" required:"true"` - - // The type of data source for the resource data sync. SourceType is either - // AwsOrganizations (if an organization is present in AWS Organizations) or - // singleAccountMultiRegions. - // - // SourceType is a required field - SourceType *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s ResourceDataSyncSource) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceDataSyncSource) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ResourceDataSyncSource) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ResourceDataSyncSource"} - if s.SourceRegions == nil { - invalidParams.Add(request.NewErrParamRequired("SourceRegions")) - } - if s.SourceType == nil { - invalidParams.Add(request.NewErrParamRequired("SourceType")) - } - if s.SourceType != nil && len(*s.SourceType) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SourceType", 1)) - } - if s.AwsOrganizationsSource != nil { - if err := s.AwsOrganizationsSource.Validate(); err != nil { - invalidParams.AddNested("AwsOrganizationsSource", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAwsOrganizationsSource sets the AwsOrganizationsSource field's value. -func (s *ResourceDataSyncSource) SetAwsOrganizationsSource(v *ResourceDataSyncAwsOrganizationsSource) *ResourceDataSyncSource { - s.AwsOrganizationsSource = v - return s -} - -// SetIncludeFutureRegions sets the IncludeFutureRegions field's value. -func (s *ResourceDataSyncSource) SetIncludeFutureRegions(v bool) *ResourceDataSyncSource { - s.IncludeFutureRegions = &v - return s -} - -// SetSourceRegions sets the SourceRegions field's value. -func (s *ResourceDataSyncSource) SetSourceRegions(v []*string) *ResourceDataSyncSource { - s.SourceRegions = v - return s -} - -// SetSourceType sets the SourceType field's value. -func (s *ResourceDataSyncSource) SetSourceType(v string) *ResourceDataSyncSource { - s.SourceType = &v - return s -} - -// The data type name for including resource data sync state. There are four -// sync states: -// -// OrganizationNotExists (Your organization doesn't exist) -// -// NoPermissions (The system can't locate the service-linked role. This role -// is automatically created when a user creates a resource data sync in Explorer.) -// -// InvalidOrganizationalUnit (You specified or selected an invalid unit in the -// resource data sync configuration.) -// -// TrustedAccessDisabled (You disabled Systems Manager access in the organization -// in AWS Organizations.) -type ResourceDataSyncSourceWithState struct { - _ struct{} `type:"structure"` - - // The field name in SyncSource for the ResourceDataSyncAwsOrganizationsSource - // type. - AwsOrganizationsSource *ResourceDataSyncAwsOrganizationsSource `type:"structure"` - - // Whether to automatically synchronize and aggregate data from new AWS Regions - // when those Regions come online. - IncludeFutureRegions *bool `type:"boolean"` - - // The SyncSource AWS Regions included in the resource data sync. - SourceRegions []*string `type:"list"` - - // The type of data source for the resource data sync. SourceType is either - // AwsOrganizations (if an organization is present in AWS Organizations) or - // singleAccountMultiRegions. - SourceType *string `min:"1" type:"string"` - - // The data type name for including resource data sync state. There are four - // sync states: - // - // OrganizationNotExists: Your organization doesn't exist. - // - // NoPermissions: The system can't locate the service-linked role. This role - // is automatically created when a user creates a resource data sync in Explorer. - // - // InvalidOrganizationalUnit: You specified or selected an invalid unit in the - // resource data sync configuration. - // - // TrustedAccessDisabled: You disabled Systems Manager access in the organization - // in AWS Organizations. - State *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s ResourceDataSyncSourceWithState) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceDataSyncSourceWithState) GoString() string { - return s.String() -} - -// SetAwsOrganizationsSource sets the AwsOrganizationsSource field's value. -func (s *ResourceDataSyncSourceWithState) SetAwsOrganizationsSource(v *ResourceDataSyncAwsOrganizationsSource) *ResourceDataSyncSourceWithState { - s.AwsOrganizationsSource = v - return s -} - -// SetIncludeFutureRegions sets the IncludeFutureRegions field's value. -func (s *ResourceDataSyncSourceWithState) SetIncludeFutureRegions(v bool) *ResourceDataSyncSourceWithState { - s.IncludeFutureRegions = &v - return s -} - -// SetSourceRegions sets the SourceRegions field's value. -func (s *ResourceDataSyncSourceWithState) SetSourceRegions(v []*string) *ResourceDataSyncSourceWithState { - s.SourceRegions = v - return s -} - -// SetSourceType sets the SourceType field's value. -func (s *ResourceDataSyncSourceWithState) SetSourceType(v string) *ResourceDataSyncSourceWithState { - s.SourceType = &v - return s -} - -// SetState sets the State field's value. -func (s *ResourceDataSyncSourceWithState) SetState(v string) *ResourceDataSyncSourceWithState { - s.State = &v - return s -} - -// Error returned if an attempt is made to delete a patch baseline that is registered -// for a patch group. -type ResourceInUseException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s ResourceInUseException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceInUseException) GoString() string { - return s.String() -} - -func newErrorResourceInUseException(v protocol.ResponseMetadata) error { - return &ResourceInUseException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ResourceInUseException) Code() string { - return "ResourceInUseException" -} - -// Message returns the exception's message. -func (s *ResourceInUseException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ResourceInUseException) OrigErr() error { - return nil -} - -func (s *ResourceInUseException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ResourceInUseException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ResourceInUseException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Error returned when the caller has exceeded the default resource quotas. -// For example, too many maintenance windows or patch baselines have been created. -// -// For information about resource quotas in Systems Manager, see Systems Manager -// service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) -// in the AWS General Reference. -type ResourceLimitExceededException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s ResourceLimitExceededException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceLimitExceededException) GoString() string { - return s.String() -} - -func newErrorResourceLimitExceededException(v protocol.ResponseMetadata) error { - return &ResourceLimitExceededException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ResourceLimitExceededException) Code() string { - return "ResourceLimitExceededException" -} - -// Message returns the exception's message. -func (s *ResourceLimitExceededException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ResourceLimitExceededException) OrigErr() error { - return nil -} - -func (s *ResourceLimitExceededException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ResourceLimitExceededException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ResourceLimitExceededException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The inventory item result attribute. -type ResultAttribute struct { - _ struct{} `type:"structure"` - - // Name of the inventory item type. Valid value: AWS:InstanceInformation. Default - // Value: AWS:InstanceInformation. - // - // TypeName is a required field - TypeName *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s ResultAttribute) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResultAttribute) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ResultAttribute) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ResultAttribute"} - if s.TypeName == nil { - invalidParams.Add(request.NewErrParamRequired("TypeName")) - } - if s.TypeName != nil && len(*s.TypeName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TypeName", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetTypeName sets the TypeName field's value. -func (s *ResultAttribute) SetTypeName(v string) *ResultAttribute { - s.TypeName = &v - return s -} - -type ResumeSessionInput struct { - _ struct{} `type:"structure"` - - // The ID of the disconnected session to resume. - // - // SessionId is a required field - SessionId *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s ResumeSessionInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResumeSessionInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ResumeSessionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ResumeSessionInput"} - if s.SessionId == nil { - invalidParams.Add(request.NewErrParamRequired("SessionId")) - } - if s.SessionId != nil && len(*s.SessionId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SessionId", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetSessionId sets the SessionId field's value. -func (s *ResumeSessionInput) SetSessionId(v string) *ResumeSessionInput { - s.SessionId = &v - return s -} - -type ResumeSessionOutput struct { - _ struct{} `type:"structure"` - - // The ID of the session. - SessionId *string `min:"1" type:"string"` - - // A URL back to SSM Agent on the instance that the Session Manager client uses - // to send commands and receive output from the instance. Format: wss://ssmmessages.region.amazonaws.com/v1/data-channel/session-id?stream=(input|output). - // - // region represents the Region identifier for an AWS Region supported by AWS - // Systems Manager, such as us-east-2 for the US East (Ohio) Region. For a list - // of supported region values, see the Region column in Systems Manager service - // endpoints (http://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) - // in the AWS General Reference. - // - // session-id represents the ID of a Session Manager session, such as 1a2b3c4dEXAMPLE. - StreamUrl *string `type:"string"` - - // An encrypted token value containing session and caller information. Used - // to authenticate the connection to the instance. - TokenValue *string `type:"string"` -} - -// String returns the string representation -func (s ResumeSessionOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResumeSessionOutput) GoString() string { - return s.String() -} - -// SetSessionId sets the SessionId field's value. -func (s *ResumeSessionOutput) SetSessionId(v string) *ResumeSessionOutput { - s.SessionId = &v - return s -} - -// SetStreamUrl sets the StreamUrl field's value. -func (s *ResumeSessionOutput) SetStreamUrl(v string) *ResumeSessionOutput { - s.StreamUrl = &v - return s -} - -// SetTokenValue sets the TokenValue field's value. -func (s *ResumeSessionOutput) SetTokenValue(v string) *ResumeSessionOutput { - s.TokenValue = &v - return s -} - -// Information about the result of a document review request. -type ReviewInformation struct { - _ struct{} `type:"structure"` - - // The time that the reviewer took action on the document review request. - ReviewedTime *time.Time `type:"timestamp"` - - // The reviewer assigned to take action on the document review request. - Reviewer *string `type:"string"` - - // The current status of the document review request. - Status *string `type:"string" enum:"ReviewStatus"` -} - -// String returns the string representation -func (s ReviewInformation) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ReviewInformation) GoString() string { - return s.String() -} - -// SetReviewedTime sets the ReviewedTime field's value. -func (s *ReviewInformation) SetReviewedTime(v time.Time) *ReviewInformation { - s.ReviewedTime = &v - return s -} - -// SetReviewer sets the Reviewer field's value. -func (s *ReviewInformation) SetReviewer(v string) *ReviewInformation { - s.Reviewer = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *ReviewInformation) SetStatus(v string) *ReviewInformation { - s.Status = &v - return s -} - -// Information about an Automation runbook (Automation document) used in a runbook -// workflow in Change Manager. -// -// The Automation runbooks specified for the runbook workflow can't run until -// all required approvals for the change request have been received. -type Runbook struct { - _ struct{} `type:"structure"` - - // The name of the Automation runbook (Automation document) used in a runbook - // workflow. - // - // DocumentName is a required field - DocumentName *string `type:"string" required:"true"` - - // The version of the Automation runbook (Automation document) used in a runbook - // workflow. - DocumentVersion *string `type:"string"` - - // The MaxConcurrency value specified by the user when the operation started, - // indicating the maximum number of resources that the runbook operation can - // run on at the same time. - MaxConcurrency *string `min:"1" type:"string"` - - // The MaxErrors value specified by the user when the execution started, indicating - // the maximum number of errors that can occur during the operation before the - // updates are stopped or rolled back. - MaxErrors *string `min:"1" type:"string"` - - // The key-value map of execution parameters, which were supplied when calling - // StartChangeRequestExecution. - Parameters map[string][]*string `min:"1" type:"map"` - - // Information about the AWS Regions and accounts targeted by the current Runbook - // operation. - TargetLocations []*TargetLocation `min:"1" type:"list"` - - // The name of the parameter used as the target resource for the rate-controlled - // runbook workflow. Required if you specify Targets. - TargetParameterName *string `min:"1" type:"string"` - - // A key-value mapping to target resources that the Runbook operation performs - // tasks on. Required if you specify TargetParameterName. - Targets []*Target `type:"list"` -} - -// String returns the string representation -func (s Runbook) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Runbook) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *Runbook) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "Runbook"} - if s.DocumentName == nil { - invalidParams.Add(request.NewErrParamRequired("DocumentName")) - } - if s.MaxConcurrency != nil && len(*s.MaxConcurrency) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxConcurrency", 1)) - } - if s.MaxErrors != nil && len(*s.MaxErrors) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxErrors", 1)) - } - if s.Parameters != nil && len(s.Parameters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Parameters", 1)) - } - if s.TargetLocations != nil && len(s.TargetLocations) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TargetLocations", 1)) - } - if s.TargetParameterName != nil && len(*s.TargetParameterName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TargetParameterName", 1)) - } - if s.TargetLocations != nil { - for i, v := range s.TargetLocations { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetLocations", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Targets != nil { - for i, v := range s.Targets { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDocumentName sets the DocumentName field's value. -func (s *Runbook) SetDocumentName(v string) *Runbook { - s.DocumentName = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *Runbook) SetDocumentVersion(v string) *Runbook { - s.DocumentVersion = &v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *Runbook) SetMaxConcurrency(v string) *Runbook { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *Runbook) SetMaxErrors(v string) *Runbook { - s.MaxErrors = &v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *Runbook) SetParameters(v map[string][]*string) *Runbook { - s.Parameters = v - return s -} - -// SetTargetLocations sets the TargetLocations field's value. -func (s *Runbook) SetTargetLocations(v []*TargetLocation) *Runbook { - s.TargetLocations = v - return s -} - -// SetTargetParameterName sets the TargetParameterName field's value. -func (s *Runbook) SetTargetParameterName(v string) *Runbook { - s.TargetParameterName = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *Runbook) SetTargets(v []*Target) *Runbook { - s.Targets = v - return s -} - -// An S3 bucket where you want to store the results of this request. -type S3OutputLocation struct { - _ struct{} `type:"structure"` - - // The name of the S3 bucket. - OutputS3BucketName *string `min:"3" type:"string"` - - // The S3 bucket subfolder. - OutputS3KeyPrefix *string `type:"string"` - - // (Deprecated) You can no longer specify this parameter. The system ignores - // it. Instead, Systems Manager automatically determines the Region of the S3 - // bucket. - OutputS3Region *string `min:"3" type:"string"` -} - -// String returns the string representation -func (s S3OutputLocation) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s S3OutputLocation) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *S3OutputLocation) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "S3OutputLocation"} - if s.OutputS3BucketName != nil && len(*s.OutputS3BucketName) < 3 { - invalidParams.Add(request.NewErrParamMinLen("OutputS3BucketName", 3)) - } - if s.OutputS3Region != nil && len(*s.OutputS3Region) < 3 { - invalidParams.Add(request.NewErrParamMinLen("OutputS3Region", 3)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetOutputS3BucketName sets the OutputS3BucketName field's value. -func (s *S3OutputLocation) SetOutputS3BucketName(v string) *S3OutputLocation { - s.OutputS3BucketName = &v - return s -} - -// SetOutputS3KeyPrefix sets the OutputS3KeyPrefix field's value. -func (s *S3OutputLocation) SetOutputS3KeyPrefix(v string) *S3OutputLocation { - s.OutputS3KeyPrefix = &v - return s -} - -// SetOutputS3Region sets the OutputS3Region field's value. -func (s *S3OutputLocation) SetOutputS3Region(v string) *S3OutputLocation { - s.OutputS3Region = &v - return s -} - -// A URL for the S3 bucket where you want to store the results of this request. -type S3OutputUrl struct { - _ struct{} `type:"structure"` - - // A URL for an S3 bucket where you want to store the results of this request. - OutputUrl *string `type:"string"` -} - -// String returns the string representation -func (s S3OutputUrl) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s S3OutputUrl) GoString() string { - return s.String() -} - -// SetOutputUrl sets the OutputUrl field's value. -func (s *S3OutputUrl) SetOutputUrl(v string) *S3OutputUrl { - s.OutputUrl = &v - return s -} - -// Information about a scheduled execution for a maintenance window. -type ScheduledWindowExecution struct { - _ struct{} `type:"structure"` - - // The time, in ISO-8601 Extended format, that the maintenance window is scheduled - // to be run. - ExecutionTime *string `type:"string"` - - // The name of the maintenance window to be run. - Name *string `min:"3" type:"string"` - - // The ID of the maintenance window to be run. - WindowId *string `min:"20" type:"string"` -} - -// String returns the string representation -func (s ScheduledWindowExecution) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ScheduledWindowExecution) GoString() string { - return s.String() -} - -// SetExecutionTime sets the ExecutionTime field's value. -func (s *ScheduledWindowExecution) SetExecutionTime(v string) *ScheduledWindowExecution { - s.ExecutionTime = &v - return s -} - -// SetName sets the Name field's value. -func (s *ScheduledWindowExecution) SetName(v string) *ScheduledWindowExecution { - s.Name = &v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *ScheduledWindowExecution) SetWindowId(v string) *ScheduledWindowExecution { - s.WindowId = &v - return s -} - -type SendAutomationSignalInput struct { - _ struct{} `type:"structure"` - - // The unique identifier for an existing Automation execution that you want - // to send the signal to. - // - // AutomationExecutionId is a required field - AutomationExecutionId *string `min:"36" type:"string" required:"true"` - - // The data sent with the signal. The data schema depends on the type of signal - // used in the request. - // - // For Approve and Reject signal types, the payload is an optional comment that - // you can send with the signal type. For example: - // - // Comment="Looks good" - // - // For StartStep and Resume signal types, you must send the name of the Automation - // step to start or resume as the payload. For example: - // - // StepName="step1" - // - // For the StopStep signal type, you must send the step execution ID as the - // payload. For example: - // - // StepExecutionId="97fff367-fc5a-4299-aed8-0123456789ab" - Payload map[string][]*string `min:"1" type:"map"` - - // The type of signal to send to an Automation execution. - // - // SignalType is a required field - SignalType *string `type:"string" required:"true" enum:"SignalType"` -} - -// String returns the string representation -func (s SendAutomationSignalInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s SendAutomationSignalInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *SendAutomationSignalInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "SendAutomationSignalInput"} - if s.AutomationExecutionId == nil { - invalidParams.Add(request.NewErrParamRequired("AutomationExecutionId")) - } - if s.AutomationExecutionId != nil && len(*s.AutomationExecutionId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("AutomationExecutionId", 36)) - } - if s.Payload != nil && len(s.Payload) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Payload", 1)) - } - if s.SignalType == nil { - invalidParams.Add(request.NewErrParamRequired("SignalType")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAutomationExecutionId sets the AutomationExecutionId field's value. -func (s *SendAutomationSignalInput) SetAutomationExecutionId(v string) *SendAutomationSignalInput { - s.AutomationExecutionId = &v - return s -} - -// SetPayload sets the Payload field's value. -func (s *SendAutomationSignalInput) SetPayload(v map[string][]*string) *SendAutomationSignalInput { - s.Payload = v - return s -} - -// SetSignalType sets the SignalType field's value. -func (s *SendAutomationSignalInput) SetSignalType(v string) *SendAutomationSignalInput { - s.SignalType = &v - return s -} - -type SendAutomationSignalOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s SendAutomationSignalOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s SendAutomationSignalOutput) GoString() string { - return s.String() -} - -type SendCommandInput struct { - _ struct{} `type:"structure"` - - // Enables Systems Manager to send Run Command output to Amazon CloudWatch Logs. - CloudWatchOutputConfig *CloudWatchOutputConfig `type:"structure"` - - // User-specified information about the command, such as a brief description - // of what the command should do. - Comment *string `type:"string"` - - // The Sha256 or Sha1 hash created by the system when the document was created. - // - // Sha1 hashes have been deprecated. - DocumentHash *string `type:"string"` - - // Sha256 or Sha1. - // - // Sha1 hashes have been deprecated. - DocumentHashType *string `type:"string" enum:"DocumentHashType"` - - // The name of the Systems Manager document to run. This can be a public document - // or a custom document. To run a shared document belonging to another account, - // specify the document ARN. For more information about how to use shared documents, - // see Using shared SSM documents (https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-using-shared.html) - // in the AWS Systems Manager User Guide. - // - // DocumentName is a required field - DocumentName *string `type:"string" required:"true"` - - // The SSM document version to use in the request. You can specify $DEFAULT, - // $LATEST, or a specific version number. If you run commands by using the AWS - // CLI, then you must escape the first two options by using a backslash. If - // you specify a version number, then you don't need to use the backslash. For - // example: - // - // --document-version "\$DEFAULT" - // - // --document-version "\$LATEST" - // - // --document-version "3" - DocumentVersion *string `type:"string"` - - // The IDs of the instances where the command should run. Specifying instance - // IDs is most useful when you are targeting a limited number of instances, - // though you can specify up to 50 IDs. - // - // To target a larger number of instances, or if you prefer not to list individual - // instance IDs, we recommend using the Targets option instead. Using Targets, - // which accepts tag key-value pairs to identify the instances to send commands - // to, you can a send command to tens, hundreds, or thousands of instances at - // once. - // - // For more information about how to use targets, see Using targets and rate - // controls to send commands to a fleet (https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html) - // in the AWS Systems Manager User Guide. - InstanceIds []*string `type:"list"` - - // (Optional) The maximum number of instances that are allowed to run the command - // at the same time. You can specify a number such as 10 or a percentage such - // as 10%. The default value is 50. For more information about how to use MaxConcurrency, - // see Using concurrency controls (https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-velocity) - // in the AWS Systems Manager User Guide. - MaxConcurrency *string `min:"1" type:"string"` - - // The maximum number of errors allowed without the command failing. When the - // command fails one more time beyond the value of MaxErrors, the systems stops - // sending the command to additional targets. You can specify a number like - // 10 or a percentage like 10%. The default value is 0. For more information - // about how to use MaxErrors, see Using error controls (https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-maxerrors) - // in the AWS Systems Manager User Guide. - MaxErrors *string `min:"1" type:"string"` - - // Configurations for sending notifications. - NotificationConfig *NotificationConfig `type:"structure"` - - // The name of the S3 bucket where command execution responses should be stored. - OutputS3BucketName *string `min:"3" type:"string"` - - // The directory structure within the S3 bucket where the responses should be - // stored. - OutputS3KeyPrefix *string `type:"string"` - - // (Deprecated) You can no longer specify this parameter. The system ignores - // it. Instead, Systems Manager automatically determines the Region of the S3 - // bucket. - OutputS3Region *string `min:"3" type:"string"` - - // The required and optional parameters specified in the document being run. - Parameters map[string][]*string `type:"map"` - - // The ARN of the IAM service role to use to publish Amazon Simple Notification - // Service (Amazon SNS) notifications for Run Command commands. - ServiceRoleArn *string `type:"string"` - - // An array of search criteria that targets instances using a Key,Value combination - // that you specify. Specifying targets is most useful when you want to send - // a command to a large number of instances at once. Using Targets, which accepts - // tag key-value pairs to identify instances, you can send a command to tens, - // hundreds, or thousands of instances at once. - // - // To send a command to a smaller number of instances, you can use the InstanceIds - // option instead. - // - // For more information about how to use targets, see Sending commands to a - // fleet (https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html) - // in the AWS Systems Manager User Guide. - Targets []*Target `type:"list"` - - // If this time is reached and the command has not already started running, - // it will not run. - TimeoutSeconds *int64 `min:"30" type:"integer"` -} - -// String returns the string representation -func (s SendCommandInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s SendCommandInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *SendCommandInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "SendCommandInput"} - if s.DocumentName == nil { - invalidParams.Add(request.NewErrParamRequired("DocumentName")) - } - if s.MaxConcurrency != nil && len(*s.MaxConcurrency) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxConcurrency", 1)) - } - if s.MaxErrors != nil && len(*s.MaxErrors) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxErrors", 1)) - } - if s.OutputS3BucketName != nil && len(*s.OutputS3BucketName) < 3 { - invalidParams.Add(request.NewErrParamMinLen("OutputS3BucketName", 3)) - } - if s.OutputS3Region != nil && len(*s.OutputS3Region) < 3 { - invalidParams.Add(request.NewErrParamMinLen("OutputS3Region", 3)) - } - if s.TimeoutSeconds != nil && *s.TimeoutSeconds < 30 { - invalidParams.Add(request.NewErrParamMinValue("TimeoutSeconds", 30)) - } - if s.CloudWatchOutputConfig != nil { - if err := s.CloudWatchOutputConfig.Validate(); err != nil { - invalidParams.AddNested("CloudWatchOutputConfig", err.(request.ErrInvalidParams)) - } - } - if s.Targets != nil { - for i, v := range s.Targets { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetCloudWatchOutputConfig sets the CloudWatchOutputConfig field's value. -func (s *SendCommandInput) SetCloudWatchOutputConfig(v *CloudWatchOutputConfig) *SendCommandInput { - s.CloudWatchOutputConfig = v - return s -} - -// SetComment sets the Comment field's value. -func (s *SendCommandInput) SetComment(v string) *SendCommandInput { - s.Comment = &v - return s -} - -// SetDocumentHash sets the DocumentHash field's value. -func (s *SendCommandInput) SetDocumentHash(v string) *SendCommandInput { - s.DocumentHash = &v - return s -} - -// SetDocumentHashType sets the DocumentHashType field's value. -func (s *SendCommandInput) SetDocumentHashType(v string) *SendCommandInput { - s.DocumentHashType = &v - return s -} - -// SetDocumentName sets the DocumentName field's value. -func (s *SendCommandInput) SetDocumentName(v string) *SendCommandInput { - s.DocumentName = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *SendCommandInput) SetDocumentVersion(v string) *SendCommandInput { - s.DocumentVersion = &v - return s -} - -// SetInstanceIds sets the InstanceIds field's value. -func (s *SendCommandInput) SetInstanceIds(v []*string) *SendCommandInput { - s.InstanceIds = v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *SendCommandInput) SetMaxConcurrency(v string) *SendCommandInput { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *SendCommandInput) SetMaxErrors(v string) *SendCommandInput { - s.MaxErrors = &v - return s -} - -// SetNotificationConfig sets the NotificationConfig field's value. -func (s *SendCommandInput) SetNotificationConfig(v *NotificationConfig) *SendCommandInput { - s.NotificationConfig = v - return s -} - -// SetOutputS3BucketName sets the OutputS3BucketName field's value. -func (s *SendCommandInput) SetOutputS3BucketName(v string) *SendCommandInput { - s.OutputS3BucketName = &v - return s -} - -// SetOutputS3KeyPrefix sets the OutputS3KeyPrefix field's value. -func (s *SendCommandInput) SetOutputS3KeyPrefix(v string) *SendCommandInput { - s.OutputS3KeyPrefix = &v - return s -} - -// SetOutputS3Region sets the OutputS3Region field's value. -func (s *SendCommandInput) SetOutputS3Region(v string) *SendCommandInput { - s.OutputS3Region = &v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *SendCommandInput) SetParameters(v map[string][]*string) *SendCommandInput { - s.Parameters = v - return s -} - -// SetServiceRoleArn sets the ServiceRoleArn field's value. -func (s *SendCommandInput) SetServiceRoleArn(v string) *SendCommandInput { - s.ServiceRoleArn = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *SendCommandInput) SetTargets(v []*Target) *SendCommandInput { - s.Targets = v - return s -} - -// SetTimeoutSeconds sets the TimeoutSeconds field's value. -func (s *SendCommandInput) SetTimeoutSeconds(v int64) *SendCommandInput { - s.TimeoutSeconds = &v - return s -} - -type SendCommandOutput struct { - _ struct{} `type:"structure"` - - // The request as it was received by Systems Manager. Also provides the command - // ID which can be used future references to this request. - Command *Command `type:"structure"` -} - -// String returns the string representation -func (s SendCommandOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s SendCommandOutput) GoString() string { - return s.String() -} - -// SetCommand sets the Command field's value. -func (s *SendCommandOutput) SetCommand(v *Command) *SendCommandOutput { - s.Command = v - return s -} - -// The service setting data structure. -// -// ServiceSetting is an account-level setting for an AWS service. This setting -// defines how a user interacts with or uses a service or a feature of a service. -// For example, if an AWS service charges money to the account based on feature -// or service usage, then the AWS service team might create a default setting -// of "false". This means the user can't use this feature unless they change -// the setting to "true" and intentionally opt in for a paid feature. -// -// Services map a SettingId object to a setting value. AWS services teams define -// the default value for a SettingId. You can't create a new SettingId, but -// you can overwrite the default value if you have the ssm:UpdateServiceSetting -// permission for the setting. Use the UpdateServiceSetting API action to change -// the default setting. Or, use the ResetServiceSetting to change the value -// back to the original value defined by the AWS service team. -type ServiceSetting struct { - _ struct{} `type:"structure"` - - // The ARN of the service setting. - ARN *string `type:"string"` - - // The last time the service setting was modified. - LastModifiedDate *time.Time `type:"timestamp"` - - // The ARN of the last modified user. This field is populated only if the setting - // value was overwritten. - LastModifiedUser *string `type:"string"` - - // The ID of the service setting. - SettingId *string `min:"1" type:"string"` - - // The value of the service setting. - SettingValue *string `min:"1" type:"string"` - - // The status of the service setting. The value can be Default, Customized or - // PendingUpdate. - // - // * Default: The current setting uses a default value provisioned by the - // AWS service team. - // - // * Customized: The current setting use a custom value specified by the - // customer. - // - // * PendingUpdate: The current setting uses a default or custom value, but - // a setting change request is pending approval. - Status *string `type:"string"` -} - -// String returns the string representation -func (s ServiceSetting) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ServiceSetting) GoString() string { - return s.String() -} - -// SetARN sets the ARN field's value. -func (s *ServiceSetting) SetARN(v string) *ServiceSetting { - s.ARN = &v - return s -} - -// SetLastModifiedDate sets the LastModifiedDate field's value. -func (s *ServiceSetting) SetLastModifiedDate(v time.Time) *ServiceSetting { - s.LastModifiedDate = &v - return s -} - -// SetLastModifiedUser sets the LastModifiedUser field's value. -func (s *ServiceSetting) SetLastModifiedUser(v string) *ServiceSetting { - s.LastModifiedUser = &v - return s -} - -// SetSettingId sets the SettingId field's value. -func (s *ServiceSetting) SetSettingId(v string) *ServiceSetting { - s.SettingId = &v - return s -} - -// SetSettingValue sets the SettingValue field's value. -func (s *ServiceSetting) SetSettingValue(v string) *ServiceSetting { - s.SettingValue = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *ServiceSetting) SetStatus(v string) *ServiceSetting { - s.Status = &v - return s -} - -// The specified service setting was not found. Either the service name or the -// setting has not been provisioned by the AWS service team. -type ServiceSettingNotFound struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s ServiceSettingNotFound) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ServiceSettingNotFound) GoString() string { - return s.String() -} - -func newErrorServiceSettingNotFound(v protocol.ResponseMetadata) error { - return &ServiceSettingNotFound{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ServiceSettingNotFound) Code() string { - return "ServiceSettingNotFound" -} - -// Message returns the exception's message. -func (s *ServiceSettingNotFound) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ServiceSettingNotFound) OrigErr() error { - return nil -} - -func (s *ServiceSettingNotFound) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ServiceSettingNotFound) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ServiceSettingNotFound) RequestID() string { - return s.RespMetadata.RequestID -} - -// Information about a Session Manager connection to an instance. -type Session struct { - _ struct{} `type:"structure"` - - // Reserved for future use. - Details *string `min:"1" type:"string"` - - // The name of the Session Manager SSM document used to define the parameters - // and plugin settings for the session. For example, SSM-SessionManagerRunShell. - DocumentName *string `type:"string"` - - // The date and time, in ISO-8601 Extended format, when the session was terminated. - EndDate *time.Time `type:"timestamp"` - - // Reserved for future use. - OutputUrl *SessionManagerOutputUrl `type:"structure"` - - // The ID of the AWS user account that started the session. - Owner *string `min:"1" type:"string"` - - // The ID of the session. - SessionId *string `min:"1" type:"string"` - - // The date and time, in ISO-8601 Extended format, when the session began. - StartDate *time.Time `type:"timestamp"` - - // The status of the session. For example, "Connected" or "Terminated". - Status *string `type:"string" enum:"SessionStatus"` - - // The instance that the Session Manager session connected to. - Target *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s Session) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Session) GoString() string { - return s.String() -} - -// SetDetails sets the Details field's value. -func (s *Session) SetDetails(v string) *Session { - s.Details = &v - return s -} - -// SetDocumentName sets the DocumentName field's value. -func (s *Session) SetDocumentName(v string) *Session { - s.DocumentName = &v - return s -} - -// SetEndDate sets the EndDate field's value. -func (s *Session) SetEndDate(v time.Time) *Session { - s.EndDate = &v - return s -} - -// SetOutputUrl sets the OutputUrl field's value. -func (s *Session) SetOutputUrl(v *SessionManagerOutputUrl) *Session { - s.OutputUrl = v - return s -} - -// SetOwner sets the Owner field's value. -func (s *Session) SetOwner(v string) *Session { - s.Owner = &v - return s -} - -// SetSessionId sets the SessionId field's value. -func (s *Session) SetSessionId(v string) *Session { - s.SessionId = &v - return s -} - -// SetStartDate sets the StartDate field's value. -func (s *Session) SetStartDate(v time.Time) *Session { - s.StartDate = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *Session) SetStatus(v string) *Session { - s.Status = &v - return s -} - -// SetTarget sets the Target field's value. -func (s *Session) SetTarget(v string) *Session { - s.Target = &v - return s -} - -// Describes a filter for Session Manager information. -type SessionFilter struct { - _ struct{} `type:"structure"` - - // The name of the filter. - // - // Key is a required field - Key *string `locationName:"key" type:"string" required:"true" enum:"SessionFilterKey"` - - // The filter value. Valid values for each filter key are as follows: - // - // * InvokedAfter: Specify a timestamp to limit your results. For example, - // specify 2018-08-29T00:00:00Z to see sessions that started August 29, 2018, - // and later. - // - // * InvokedBefore: Specify a timestamp to limit your results. For example, - // specify 2018-08-29T00:00:00Z to see sessions that started before August - // 29, 2018. - // - // * Target: Specify an instance to which session connections have been made. - // - // * Owner: Specify an AWS user account to see a list of sessions started - // by that user. - // - // * Status: Specify a valid session status to see a list of all sessions - // with that status. Status values you can specify include: Connected Connecting - // Disconnected Terminated Terminating Failed - // - // * SessionId: Specify a session ID to return details about the session. - // - // Value is a required field - Value *string `locationName:"value" min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s SessionFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s SessionFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *SessionFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "SessionFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Value == nil { - invalidParams.Add(request.NewErrParamRequired("Value")) - } - if s.Value != nil && len(*s.Value) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Value", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *SessionFilter) SetKey(v string) *SessionFilter { - s.Key = &v - return s -} - -// SetValue sets the Value field's value. -func (s *SessionFilter) SetValue(v string) *SessionFilter { - s.Value = &v - return s -} - -// Reserved for future use. -type SessionManagerOutputUrl struct { - _ struct{} `type:"structure"` - - // Reserved for future use. - CloudWatchOutputUrl *string `min:"1" type:"string"` - - // Reserved for future use. - S3OutputUrl *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s SessionManagerOutputUrl) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s SessionManagerOutputUrl) GoString() string { - return s.String() -} - -// SetCloudWatchOutputUrl sets the CloudWatchOutputUrl field's value. -func (s *SessionManagerOutputUrl) SetCloudWatchOutputUrl(v string) *SessionManagerOutputUrl { - s.CloudWatchOutputUrl = &v - return s -} - -// SetS3OutputUrl sets the S3OutputUrl field's value. -func (s *SessionManagerOutputUrl) SetS3OutputUrl(v string) *SessionManagerOutputUrl { - s.S3OutputUrl = &v - return s -} - -// The number of managed instances found for each patch severity level defined -// in the request filter. -type SeveritySummary struct { - _ struct{} `type:"structure"` - - // The total number of resources or compliance items that have a severity level - // of critical. Critical severity is determined by the organization that published - // the compliance items. - CriticalCount *int64 `type:"integer"` - - // The total number of resources or compliance items that have a severity level - // of high. High severity is determined by the organization that published the - // compliance items. - HighCount *int64 `type:"integer"` - - // The total number of resources or compliance items that have a severity level - // of informational. Informational severity is determined by the organization - // that published the compliance items. - InformationalCount *int64 `type:"integer"` - - // The total number of resources or compliance items that have a severity level - // of low. Low severity is determined by the organization that published the - // compliance items. - LowCount *int64 `type:"integer"` - - // The total number of resources or compliance items that have a severity level - // of medium. Medium severity is determined by the organization that published - // the compliance items. - MediumCount *int64 `type:"integer"` - - // The total number of resources or compliance items that have a severity level - // of unspecified. Unspecified severity is determined by the organization that - // published the compliance items. - UnspecifiedCount *int64 `type:"integer"` -} - -// String returns the string representation -func (s SeveritySummary) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s SeveritySummary) GoString() string { - return s.String() -} - -// SetCriticalCount sets the CriticalCount field's value. -func (s *SeveritySummary) SetCriticalCount(v int64) *SeveritySummary { - s.CriticalCount = &v - return s -} - -// SetHighCount sets the HighCount field's value. -func (s *SeveritySummary) SetHighCount(v int64) *SeveritySummary { - s.HighCount = &v - return s -} - -// SetInformationalCount sets the InformationalCount field's value. -func (s *SeveritySummary) SetInformationalCount(v int64) *SeveritySummary { - s.InformationalCount = &v - return s -} - -// SetLowCount sets the LowCount field's value. -func (s *SeveritySummary) SetLowCount(v int64) *SeveritySummary { - s.LowCount = &v - return s -} - -// SetMediumCount sets the MediumCount field's value. -func (s *SeveritySummary) SetMediumCount(v int64) *SeveritySummary { - s.MediumCount = &v - return s -} - -// SetUnspecifiedCount sets the UnspecifiedCount field's value. -func (s *SeveritySummary) SetUnspecifiedCount(v int64) *SeveritySummary { - s.UnspecifiedCount = &v - return s -} - -type StartAssociationsOnceInput struct { - _ struct{} `type:"structure"` - - // The association IDs that you want to run immediately and only one time. - // - // AssociationIds is a required field - AssociationIds []*string `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s StartAssociationsOnceInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s StartAssociationsOnceInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *StartAssociationsOnceInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "StartAssociationsOnceInput"} - if s.AssociationIds == nil { - invalidParams.Add(request.NewErrParamRequired("AssociationIds")) - } - if s.AssociationIds != nil && len(s.AssociationIds) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AssociationIds", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAssociationIds sets the AssociationIds field's value. -func (s *StartAssociationsOnceInput) SetAssociationIds(v []*string) *StartAssociationsOnceInput { - s.AssociationIds = v - return s -} - -type StartAssociationsOnceOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s StartAssociationsOnceOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s StartAssociationsOnceOutput) GoString() string { - return s.String() -} - -type StartAutomationExecutionInput struct { - _ struct{} `type:"structure"` - - // User-provided idempotency token. The token must be unique, is case insensitive, - // enforces the UUID format, and can't be reused. - ClientToken *string `min:"36" type:"string"` - - // The name of the Systems Manager document to run. This can be a public document - // or a custom document. To run a shared document belonging to another account, - // specify the document ARN. For more information about how to use shared documents, - // see Using shared SSM documents (https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-using-shared.html) - // in the AWS Systems Manager User Guide. - // - // DocumentName is a required field - DocumentName *string `type:"string" required:"true"` - - // The version of the Automation document to use for this execution. - DocumentVersion *string `type:"string"` - - // The maximum number of targets allowed to run this task in parallel. You can - // specify a number, such as 10, or a percentage, such as 10%. The default value - // is 10. - MaxConcurrency *string `min:"1" type:"string"` - - // The number of errors that are allowed before the system stops running the - // automation on additional targets. You can specify either an absolute number - // of errors, for example 10, or a percentage of the target set, for example - // 10%. If you specify 3, for example, the system stops running the automation - // when the fourth error is received. If you specify 0, then the system stops - // running the automation on additional targets after the first error result - // is returned. If you run an automation on 50 resources and set max-errors - // to 10%, then the system stops running the automation on additional targets - // when the sixth error is received. - // - // Executions that are already running an automation when max-errors is reached - // are allowed to complete, but some of these executions may fail as well. If - // you need to ensure that there won't be more than max-errors failed executions, - // set max-concurrency to 1 so the executions proceed one at a time. - MaxErrors *string `min:"1" type:"string"` - - // The execution mode of the automation. Valid modes include the following: - // Auto and Interactive. The default mode is Auto. - Mode *string `type:"string" enum:"ExecutionMode"` - - // A key-value map of execution parameters, which match the declared parameters - // in the Automation document. - Parameters map[string][]*string `min:"1" type:"map"` - - // Optional metadata that you assign to a resource. You can specify a maximum - // of five tags for an automation. Tags enable you to categorize a resource - // in different ways, such as by purpose, owner, or environment. For example, - // you might want to tag an automation to identify an environment or operating - // system. In this case, you could specify the following key name/value pairs: - // - // * Key=environment,Value=test - // - // * Key=OS,Value=Windows - // - // To add tags to an existing patch baseline, use the AddTagsToResource action. - Tags []*Tag `type:"list"` - - // A location is a combination of AWS Regions and/or AWS accounts where you - // want to run the Automation. Use this action to start an Automation in multiple - // Regions and multiple accounts. For more information, see Running Automation - // workflows in multiple AWS Regions and accounts (https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation-multiple-accounts-and-regions.html) - // in the AWS Systems Manager User Guide. - TargetLocations []*TargetLocation `min:"1" type:"list"` - - // A key-value mapping of document parameters to target resources. Both Targets - // and TargetMaps cannot be specified together. - TargetMaps []map[string][]*string `type:"list"` - - // The name of the parameter used as the target resource for the rate-controlled - // execution. Required if you specify targets. - TargetParameterName *string `min:"1" type:"string"` - - // A key-value mapping to target resources. Required if you specify TargetParameterName. - Targets []*Target `type:"list"` -} - -// String returns the string representation -func (s StartAutomationExecutionInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s StartAutomationExecutionInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *StartAutomationExecutionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "StartAutomationExecutionInput"} - if s.ClientToken != nil && len(*s.ClientToken) < 36 { - invalidParams.Add(request.NewErrParamMinLen("ClientToken", 36)) - } - if s.DocumentName == nil { - invalidParams.Add(request.NewErrParamRequired("DocumentName")) - } - if s.MaxConcurrency != nil && len(*s.MaxConcurrency) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxConcurrency", 1)) - } - if s.MaxErrors != nil && len(*s.MaxErrors) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxErrors", 1)) - } - if s.Parameters != nil && len(s.Parameters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Parameters", 1)) - } - if s.TargetLocations != nil && len(s.TargetLocations) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TargetLocations", 1)) - } - if s.TargetParameterName != nil && len(*s.TargetParameterName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TargetParameterName", 1)) - } - if s.Tags != nil { - for i, v := range s.Tags { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) - } - } - } - if s.TargetLocations != nil { - for i, v := range s.TargetLocations { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetLocations", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Targets != nil { - for i, v := range s.Targets { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetClientToken sets the ClientToken field's value. -func (s *StartAutomationExecutionInput) SetClientToken(v string) *StartAutomationExecutionInput { - s.ClientToken = &v - return s -} - -// SetDocumentName sets the DocumentName field's value. -func (s *StartAutomationExecutionInput) SetDocumentName(v string) *StartAutomationExecutionInput { - s.DocumentName = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *StartAutomationExecutionInput) SetDocumentVersion(v string) *StartAutomationExecutionInput { - s.DocumentVersion = &v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *StartAutomationExecutionInput) SetMaxConcurrency(v string) *StartAutomationExecutionInput { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *StartAutomationExecutionInput) SetMaxErrors(v string) *StartAutomationExecutionInput { - s.MaxErrors = &v - return s -} - -// SetMode sets the Mode field's value. -func (s *StartAutomationExecutionInput) SetMode(v string) *StartAutomationExecutionInput { - s.Mode = &v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *StartAutomationExecutionInput) SetParameters(v map[string][]*string) *StartAutomationExecutionInput { - s.Parameters = v - return s -} - -// SetTags sets the Tags field's value. -func (s *StartAutomationExecutionInput) SetTags(v []*Tag) *StartAutomationExecutionInput { - s.Tags = v - return s -} - -// SetTargetLocations sets the TargetLocations field's value. -func (s *StartAutomationExecutionInput) SetTargetLocations(v []*TargetLocation) *StartAutomationExecutionInput { - s.TargetLocations = v - return s -} - -// SetTargetMaps sets the TargetMaps field's value. -func (s *StartAutomationExecutionInput) SetTargetMaps(v []map[string][]*string) *StartAutomationExecutionInput { - s.TargetMaps = v - return s -} - -// SetTargetParameterName sets the TargetParameterName field's value. -func (s *StartAutomationExecutionInput) SetTargetParameterName(v string) *StartAutomationExecutionInput { - s.TargetParameterName = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *StartAutomationExecutionInput) SetTargets(v []*Target) *StartAutomationExecutionInput { - s.Targets = v - return s -} - -type StartAutomationExecutionOutput struct { - _ struct{} `type:"structure"` - - // The unique ID of a newly scheduled automation execution. - AutomationExecutionId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s StartAutomationExecutionOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s StartAutomationExecutionOutput) GoString() string { - return s.String() -} - -// SetAutomationExecutionId sets the AutomationExecutionId field's value. -func (s *StartAutomationExecutionOutput) SetAutomationExecutionId(v string) *StartAutomationExecutionOutput { - s.AutomationExecutionId = &v - return s -} - -type StartChangeRequestExecutionInput struct { - _ struct{} `type:"structure"` - - // The name of the change request associated with the runbook workflow to be - // run. - ChangeRequestName *string `min:"1" type:"string"` - - // The user-provided idempotency token. The token must be unique, is case insensitive, - // enforces the UUID format, and can't be reused. - ClientToken *string `min:"36" type:"string"` - - // The name of the change template document to run during the runbook workflow. - // - // DocumentName is a required field - DocumentName *string `type:"string" required:"true"` - - // The version of the change template document to run during the runbook workflow. - DocumentVersion *string `type:"string"` - - // A key-value map of parameters that match the declared parameters in the change - // template document. - Parameters map[string][]*string `min:"1" type:"map"` - - // Information about the Automation runbooks (Automation documents) that are - // run during the runbook workflow. - // - // The Automation runbooks specified for the runbook workflow can't run until - // all required approvals for the change request have been received. - // - // Runbooks is a required field - Runbooks []*Runbook `min:"1" type:"list" required:"true"` - - // The date and time specified in the change request to run the Automation runbooks. - // - // The Automation runbooks specified for the runbook workflow can't run until - // all required approvals for the change request have been received. - ScheduledTime *time.Time `type:"timestamp"` - - // Optional metadata that you assign to a resource. You can specify a maximum - // of five tags for a change request. Tags enable you to categorize a resource - // in different ways, such as by purpose, owner, or environment. For example, - // you might want to tag a change request to identify an environment or target - // AWS Region. In this case, you could specify the following key-value pairs: - // - // * Key=Environment,Value=Production - // - // * Key=Region,Value=us-east-2 - Tags []*Tag `type:"list"` -} - -// String returns the string representation -func (s StartChangeRequestExecutionInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s StartChangeRequestExecutionInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *StartChangeRequestExecutionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "StartChangeRequestExecutionInput"} - if s.ChangeRequestName != nil && len(*s.ChangeRequestName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ChangeRequestName", 1)) - } - if s.ClientToken != nil && len(*s.ClientToken) < 36 { - invalidParams.Add(request.NewErrParamMinLen("ClientToken", 36)) - } - if s.DocumentName == nil { - invalidParams.Add(request.NewErrParamRequired("DocumentName")) - } - if s.Parameters != nil && len(s.Parameters) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Parameters", 1)) - } - if s.Runbooks == nil { - invalidParams.Add(request.NewErrParamRequired("Runbooks")) - } - if s.Runbooks != nil && len(s.Runbooks) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Runbooks", 1)) - } - if s.Runbooks != nil { - for i, v := range s.Runbooks { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Runbooks", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Tags != nil { - for i, v := range s.Tags { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetChangeRequestName sets the ChangeRequestName field's value. -func (s *StartChangeRequestExecutionInput) SetChangeRequestName(v string) *StartChangeRequestExecutionInput { - s.ChangeRequestName = &v - return s -} - -// SetClientToken sets the ClientToken field's value. -func (s *StartChangeRequestExecutionInput) SetClientToken(v string) *StartChangeRequestExecutionInput { - s.ClientToken = &v - return s -} - -// SetDocumentName sets the DocumentName field's value. -func (s *StartChangeRequestExecutionInput) SetDocumentName(v string) *StartChangeRequestExecutionInput { - s.DocumentName = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *StartChangeRequestExecutionInput) SetDocumentVersion(v string) *StartChangeRequestExecutionInput { - s.DocumentVersion = &v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *StartChangeRequestExecutionInput) SetParameters(v map[string][]*string) *StartChangeRequestExecutionInput { - s.Parameters = v - return s -} - -// SetRunbooks sets the Runbooks field's value. -func (s *StartChangeRequestExecutionInput) SetRunbooks(v []*Runbook) *StartChangeRequestExecutionInput { - s.Runbooks = v - return s -} - -// SetScheduledTime sets the ScheduledTime field's value. -func (s *StartChangeRequestExecutionInput) SetScheduledTime(v time.Time) *StartChangeRequestExecutionInput { - s.ScheduledTime = &v - return s -} - -// SetTags sets the Tags field's value. -func (s *StartChangeRequestExecutionInput) SetTags(v []*Tag) *StartChangeRequestExecutionInput { - s.Tags = v - return s -} - -type StartChangeRequestExecutionOutput struct { - _ struct{} `type:"structure"` - - // The unique ID of a runbook workflow operation. (A runbook workflow is a type - // of Automation operation.) - AutomationExecutionId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s StartChangeRequestExecutionOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s StartChangeRequestExecutionOutput) GoString() string { - return s.String() -} - -// SetAutomationExecutionId sets the AutomationExecutionId field's value. -func (s *StartChangeRequestExecutionOutput) SetAutomationExecutionId(v string) *StartChangeRequestExecutionOutput { - s.AutomationExecutionId = &v - return s -} - -type StartSessionInput struct { - _ struct{} `type:"structure"` - - // The name of the SSM document to define the parameters and plugin settings - // for the session. For example, SSM-SessionManagerRunShell. You can call the - // GetDocument API to verify the document exists before attempting to start - // a session. If no document name is provided, a shell to the instance is launched - // by default. - DocumentName *string `type:"string"` - - // Reserved for future use. - Parameters map[string][]*string `type:"map"` - - // The instance to connect to for the session. - // - // Target is a required field - Target *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s StartSessionInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s StartSessionInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *StartSessionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "StartSessionInput"} - if s.Target == nil { - invalidParams.Add(request.NewErrParamRequired("Target")) - } - if s.Target != nil && len(*s.Target) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Target", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDocumentName sets the DocumentName field's value. -func (s *StartSessionInput) SetDocumentName(v string) *StartSessionInput { - s.DocumentName = &v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *StartSessionInput) SetParameters(v map[string][]*string) *StartSessionInput { - s.Parameters = v - return s -} - -// SetTarget sets the Target field's value. -func (s *StartSessionInput) SetTarget(v string) *StartSessionInput { - s.Target = &v - return s -} - -type StartSessionOutput struct { - _ struct{} `type:"structure"` - - // The ID of the session. - SessionId *string `min:"1" type:"string"` - - // A URL back to SSM Agent on the instance that the Session Manager client uses - // to send commands and receive output from the instance. Format: wss://ssmmessages.region.amazonaws.com/v1/data-channel/session-id?stream=(input|output) - // - // region represents the Region identifier for an AWS Region supported by AWS - // Systems Manager, such as us-east-2 for the US East (Ohio) Region. For a list - // of supported region values, see the Region column in Systems Manager service - // endpoints (http://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) - // in the AWS General Reference. - // - // session-id represents the ID of a Session Manager session, such as 1a2b3c4dEXAMPLE. - StreamUrl *string `type:"string"` - - // An encrypted token value containing session and caller information. Used - // to authenticate the connection to the instance. - TokenValue *string `type:"string"` -} - -// String returns the string representation -func (s StartSessionOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s StartSessionOutput) GoString() string { - return s.String() -} - -// SetSessionId sets the SessionId field's value. -func (s *StartSessionOutput) SetSessionId(v string) *StartSessionOutput { - s.SessionId = &v - return s -} - -// SetStreamUrl sets the StreamUrl field's value. -func (s *StartSessionOutput) SetStreamUrl(v string) *StartSessionOutput { - s.StreamUrl = &v - return s -} - -// SetTokenValue sets the TokenValue field's value. -func (s *StartSessionOutput) SetTokenValue(v string) *StartSessionOutput { - s.TokenValue = &v - return s -} - -// The updated status is the same as the current status. -type StatusUnchanged struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s StatusUnchanged) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s StatusUnchanged) GoString() string { - return s.String() -} - -func newErrorStatusUnchanged(v protocol.ResponseMetadata) error { - return &StatusUnchanged{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *StatusUnchanged) Code() string { - return "StatusUnchanged" -} - -// Message returns the exception's message. -func (s *StatusUnchanged) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *StatusUnchanged) OrigErr() error { - return nil -} - -func (s *StatusUnchanged) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *StatusUnchanged) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *StatusUnchanged) RequestID() string { - return s.RespMetadata.RequestID -} - -// Detailed information about an the execution state of an Automation step. -type StepExecution struct { - _ struct{} `type:"structure"` - - // The action this step performs. The action determines the behavior of the - // step. - Action *string `type:"string"` - - // If a step has finished execution, this contains the time the execution ended. - // If the step has not yet concluded, this field is not populated. - ExecutionEndTime *time.Time `type:"timestamp"` - - // If a step has begun execution, this contains the time the step started. If - // the step is in Pending status, this field is not populated. - ExecutionStartTime *time.Time `type:"timestamp"` - - // Information about the Automation failure. - FailureDetails *FailureDetails `type:"structure"` - - // If a step failed, this message explains why the execution failed. - FailureMessage *string `type:"string"` - - // Fully-resolved values passed into the step before execution. - Inputs map[string]*string `type:"map"` - - // The flag which can be used to help decide whether the failure of current - // step leads to the Automation failure. - IsCritical *bool `type:"boolean"` - - // The flag which can be used to end automation no matter whether the step succeeds - // or fails. - IsEnd *bool `type:"boolean"` - - // The maximum number of tries to run the action of the step. The default value - // is 1. - MaxAttempts *int64 `type:"integer"` - - // The next step after the step succeeds. - NextStep *string `type:"string"` - - // The action to take if the step fails. The default value is Abort. - OnFailure *string `type:"string"` - - // Returned values from the execution of the step. - Outputs map[string][]*string `min:"1" type:"map"` - - // A user-specified list of parameters to override when running a step. - OverriddenParameters map[string][]*string `min:"1" type:"map"` - - // A message associated with the response code for an execution. - Response *string `type:"string"` - - // The response code returned by the execution of the step. - ResponseCode *string `type:"string"` - - // The unique ID of a step execution. - StepExecutionId *string `type:"string"` - - // The name of this execution step. - StepName *string `type:"string"` - - // The execution status for this step. - StepStatus *string `type:"string" enum:"AutomationExecutionStatus"` - - // The combination of AWS Regions and accounts targeted by the current Automation - // execution. - TargetLocation *TargetLocation `type:"structure"` - - // The targets for the step execution. - Targets []*Target `type:"list"` - - // The timeout seconds of the step. - TimeoutSeconds *int64 `type:"long"` - - // Strategies used when step fails, we support Continue and Abort. Abort will - // fail the automation when the step fails. Continue will ignore the failure - // of current step and allow automation to run the next step. With conditional - // branching, we add step:stepName to support the automation to go to another - // specific step. - ValidNextSteps []*string `type:"list"` -} - -// String returns the string representation -func (s StepExecution) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s StepExecution) GoString() string { - return s.String() -} - -// SetAction sets the Action field's value. -func (s *StepExecution) SetAction(v string) *StepExecution { - s.Action = &v - return s -} - -// SetExecutionEndTime sets the ExecutionEndTime field's value. -func (s *StepExecution) SetExecutionEndTime(v time.Time) *StepExecution { - s.ExecutionEndTime = &v - return s -} - -// SetExecutionStartTime sets the ExecutionStartTime field's value. -func (s *StepExecution) SetExecutionStartTime(v time.Time) *StepExecution { - s.ExecutionStartTime = &v - return s -} - -// SetFailureDetails sets the FailureDetails field's value. -func (s *StepExecution) SetFailureDetails(v *FailureDetails) *StepExecution { - s.FailureDetails = v - return s -} - -// SetFailureMessage sets the FailureMessage field's value. -func (s *StepExecution) SetFailureMessage(v string) *StepExecution { - s.FailureMessage = &v - return s -} - -// SetInputs sets the Inputs field's value. -func (s *StepExecution) SetInputs(v map[string]*string) *StepExecution { - s.Inputs = v - return s -} - -// SetIsCritical sets the IsCritical field's value. -func (s *StepExecution) SetIsCritical(v bool) *StepExecution { - s.IsCritical = &v - return s -} - -// SetIsEnd sets the IsEnd field's value. -func (s *StepExecution) SetIsEnd(v bool) *StepExecution { - s.IsEnd = &v - return s -} - -// SetMaxAttempts sets the MaxAttempts field's value. -func (s *StepExecution) SetMaxAttempts(v int64) *StepExecution { - s.MaxAttempts = &v - return s -} - -// SetNextStep sets the NextStep field's value. -func (s *StepExecution) SetNextStep(v string) *StepExecution { - s.NextStep = &v - return s -} - -// SetOnFailure sets the OnFailure field's value. -func (s *StepExecution) SetOnFailure(v string) *StepExecution { - s.OnFailure = &v - return s -} - -// SetOutputs sets the Outputs field's value. -func (s *StepExecution) SetOutputs(v map[string][]*string) *StepExecution { - s.Outputs = v - return s -} - -// SetOverriddenParameters sets the OverriddenParameters field's value. -func (s *StepExecution) SetOverriddenParameters(v map[string][]*string) *StepExecution { - s.OverriddenParameters = v - return s -} - -// SetResponse sets the Response field's value. -func (s *StepExecution) SetResponse(v string) *StepExecution { - s.Response = &v - return s -} - -// SetResponseCode sets the ResponseCode field's value. -func (s *StepExecution) SetResponseCode(v string) *StepExecution { - s.ResponseCode = &v - return s -} - -// SetStepExecutionId sets the StepExecutionId field's value. -func (s *StepExecution) SetStepExecutionId(v string) *StepExecution { - s.StepExecutionId = &v - return s -} - -// SetStepName sets the StepName field's value. -func (s *StepExecution) SetStepName(v string) *StepExecution { - s.StepName = &v - return s -} - -// SetStepStatus sets the StepStatus field's value. -func (s *StepExecution) SetStepStatus(v string) *StepExecution { - s.StepStatus = &v - return s -} - -// SetTargetLocation sets the TargetLocation field's value. -func (s *StepExecution) SetTargetLocation(v *TargetLocation) *StepExecution { - s.TargetLocation = v - return s -} - -// SetTargets sets the Targets field's value. -func (s *StepExecution) SetTargets(v []*Target) *StepExecution { - s.Targets = v - return s -} - -// SetTimeoutSeconds sets the TimeoutSeconds field's value. -func (s *StepExecution) SetTimeoutSeconds(v int64) *StepExecution { - s.TimeoutSeconds = &v - return s -} - -// SetValidNextSteps sets the ValidNextSteps field's value. -func (s *StepExecution) SetValidNextSteps(v []*string) *StepExecution { - s.ValidNextSteps = v - return s -} - -// A filter to limit the amount of step execution information returned by the -// call. -type StepExecutionFilter struct { - _ struct{} `type:"structure"` - - // One or more keys to limit the results. Valid filter keys include the following: - // StepName, Action, StepExecutionId, StepExecutionStatus, StartTimeBefore, - // StartTimeAfter. - // - // Key is a required field - Key *string `type:"string" required:"true" enum:"StepExecutionFilterKey"` - - // The values of the filter key. - // - // Values is a required field - Values []*string `min:"1" type:"list" required:"true"` -} - -// String returns the string representation -func (s StepExecutionFilter) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s StepExecutionFilter) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *StepExecutionFilter) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "StepExecutionFilter"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Values == nil { - invalidParams.Add(request.NewErrParamRequired("Values")) - } - if s.Values != nil && len(s.Values) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Values", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *StepExecutionFilter) SetKey(v string) *StepExecutionFilter { - s.Key = &v - return s -} - -// SetValues sets the Values field's value. -func (s *StepExecutionFilter) SetValues(v []*string) *StepExecutionFilter { - s.Values = v - return s -} - -type StopAutomationExecutionInput struct { - _ struct{} `type:"structure"` - - // The execution ID of the Automation to stop. - // - // AutomationExecutionId is a required field - AutomationExecutionId *string `min:"36" type:"string" required:"true"` - - // The stop request type. Valid types include the following: Cancel and Complete. - // The default type is Cancel. - Type *string `type:"string" enum:"StopType"` -} - -// String returns the string representation -func (s StopAutomationExecutionInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s StopAutomationExecutionInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *StopAutomationExecutionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "StopAutomationExecutionInput"} - if s.AutomationExecutionId == nil { - invalidParams.Add(request.NewErrParamRequired("AutomationExecutionId")) - } - if s.AutomationExecutionId != nil && len(*s.AutomationExecutionId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("AutomationExecutionId", 36)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAutomationExecutionId sets the AutomationExecutionId field's value. -func (s *StopAutomationExecutionInput) SetAutomationExecutionId(v string) *StopAutomationExecutionInput { - s.AutomationExecutionId = &v - return s -} - -// SetType sets the Type field's value. -func (s *StopAutomationExecutionInput) SetType(v string) *StopAutomationExecutionInput { - s.Type = &v - return s -} - -type StopAutomationExecutionOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s StopAutomationExecutionOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s StopAutomationExecutionOutput) GoString() string { - return s.String() -} - -// The sub-type count exceeded the limit for the inventory type. -type SubTypeCountLimitExceededException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s SubTypeCountLimitExceededException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s SubTypeCountLimitExceededException) GoString() string { - return s.String() -} - -func newErrorSubTypeCountLimitExceededException(v protocol.ResponseMetadata) error { - return &SubTypeCountLimitExceededException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *SubTypeCountLimitExceededException) Code() string { - return "SubTypeCountLimitExceededException" -} - -// Message returns the exception's message. -func (s *SubTypeCountLimitExceededException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *SubTypeCountLimitExceededException) OrigErr() error { - return nil -} - -func (s *SubTypeCountLimitExceededException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *SubTypeCountLimitExceededException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *SubTypeCountLimitExceededException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Metadata that you assign to your AWS resources. Tags enable you to categorize -// your resources in different ways, for example, by purpose, owner, or environment. -// In Systems Manager, you can apply tags to documents, managed instances, maintenance -// windows, Parameter Store parameters, and patch baselines. -type Tag struct { - _ struct{} `type:"structure"` - - // The name of the tag. - // - // Key is a required field - Key *string `min:"1" type:"string" required:"true"` - - // The value of the tag. - // - // Value is a required field - Value *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s Tag) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Tag) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *Tag) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "Tag"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Key", 1)) - } - if s.Value == nil { - invalidParams.Add(request.NewErrParamRequired("Value")) - } - if s.Value != nil && len(*s.Value) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Value", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *Tag) SetKey(v string) *Tag { - s.Key = &v - return s -} - -// SetValue sets the Value field's value. -func (s *Tag) SetValue(v string) *Tag { - s.Value = &v - return s -} - -// An array of search criteria that targets instances using a Key,Value combination -// that you specify. -// -// One or more targets must be specified for maintenance window Run Command-type -// tasks. Depending on the task, targets are optional for other maintenance -// window task types (Automation, AWS Lambda, and AWS Step Functions). For more -// information about running tasks that do not specify targets, see Registering -// maintenance window tasks without targets (https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html) -// in the AWS Systems Manager User Guide. -// -// Supported formats include the following. -// -// * Key=InstanceIds,Values=instance-id-1,instance-id-2,instance-id-3 -// -// * Key=tag:my-tag-key,Values=my-tag-value-1,my-tag-value-2 -// -// * Key=tag-key,Values=my-tag-key-1,my-tag-key-2 -// -// * Run Command and Maintenance window targets only: Key=resource-groups:Name,Values=resource-group-name -// -// * Maintenance window targets only: Key=resource-groups:ResourceTypeFilters,Values=resource-type-1,resource-type-2 -// -// * Automation targets only: Key=ResourceGroup;Values=resource-group-name -// -// For example: -// -// * Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE,i-07782c72faEXAMPLE -// -// * Key=tag:CostCenter,Values=CostCenter1,CostCenter2,CostCenter3 -// -// * Key=tag-key,Values=Name,Instance-Type,CostCenter -// -// * Run Command and Maintenance window targets only: Key=resource-groups:Name,Values=ProductionResourceGroup -// This example demonstrates how to target all resources in the resource -// group ProductionResourceGroup in your maintenance window. -// -// * Maintenance window targets only: Key=resource-groups:ResourceTypeFilters,Values=AWS::EC2::INSTANCE,AWS::EC2::VPC -// This example demonstrates how to target only EC2 instances and VPCs in -// your maintenance window. -// -// * Automation targets only: Key=ResourceGroup,Values=MyResourceGroup -// -// * State Manager association targets only: Key=InstanceIds,Values=* This -// example demonstrates how to target all managed instances in the AWS Region -// where the association was created. -// -// For more information about how to send commands that target instances using -// Key,Value parameters, see Targeting multiple instances (https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-targeting) -// in the AWS Systems Manager User Guide. -type Target struct { - _ struct{} `type:"structure"` - - // User-defined criteria for sending commands that target instances that meet - // the criteria. - Key *string `min:"1" type:"string"` - - // User-defined criteria that maps to Key. For example, if you specified tag:ServerRole, - // you could specify value:WebServer to run a command on instances that include - // EC2 tags of ServerRole,WebServer. - Values []*string `type:"list"` -} - -// String returns the string representation -func (s Target) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Target) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *Target) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "Target"} - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Key", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *Target) SetKey(v string) *Target { - s.Key = &v - return s -} - -// SetValues sets the Values field's value. -func (s *Target) SetValues(v []*string) *Target { - s.Values = v - return s -} - -// You specified the Safe option for the DeregisterTargetFromMaintenanceWindow -// operation, but the target is still referenced in a task. -type TargetInUseException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s TargetInUseException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s TargetInUseException) GoString() string { - return s.String() -} - -func newErrorTargetInUseException(v protocol.ResponseMetadata) error { - return &TargetInUseException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *TargetInUseException) Code() string { - return "TargetInUseException" -} - -// Message returns the exception's message. -func (s *TargetInUseException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *TargetInUseException) OrigErr() error { - return nil -} - -func (s *TargetInUseException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *TargetInUseException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *TargetInUseException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The combination of AWS Regions and accounts targeted by the current Automation -// execution. -type TargetLocation struct { - _ struct{} `type:"structure"` - - // The AWS accounts targeted by the current Automation execution. - Accounts []*string `min:"1" type:"list"` - - // The Automation execution role used by the currently running Automation. If - // not specified, the default value is AWS-SystemsManager-AutomationExecutionRole. - ExecutionRoleName *string `min:"1" type:"string"` - - // The AWS Regions targeted by the current Automation execution. - Regions []*string `min:"1" type:"list"` - - // The maximum number of AWS accounts and AWS regions allowed to run the Automation - // concurrently. - TargetLocationMaxConcurrency *string `min:"1" type:"string"` - - // The maximum number of errors allowed before the system stops queueing additional - // Automation executions for the currently running Automation. - TargetLocationMaxErrors *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s TargetLocation) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s TargetLocation) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *TargetLocation) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "TargetLocation"} - if s.Accounts != nil && len(s.Accounts) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Accounts", 1)) - } - if s.ExecutionRoleName != nil && len(*s.ExecutionRoleName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleName", 1)) - } - if s.Regions != nil && len(s.Regions) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Regions", 1)) - } - if s.TargetLocationMaxConcurrency != nil && len(*s.TargetLocationMaxConcurrency) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TargetLocationMaxConcurrency", 1)) - } - if s.TargetLocationMaxErrors != nil && len(*s.TargetLocationMaxErrors) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TargetLocationMaxErrors", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAccounts sets the Accounts field's value. -func (s *TargetLocation) SetAccounts(v []*string) *TargetLocation { - s.Accounts = v - return s -} - -// SetExecutionRoleName sets the ExecutionRoleName field's value. -func (s *TargetLocation) SetExecutionRoleName(v string) *TargetLocation { - s.ExecutionRoleName = &v - return s -} - -// SetRegions sets the Regions field's value. -func (s *TargetLocation) SetRegions(v []*string) *TargetLocation { - s.Regions = v - return s -} - -// SetTargetLocationMaxConcurrency sets the TargetLocationMaxConcurrency field's value. -func (s *TargetLocation) SetTargetLocationMaxConcurrency(v string) *TargetLocation { - s.TargetLocationMaxConcurrency = &v - return s -} - -// SetTargetLocationMaxErrors sets the TargetLocationMaxErrors field's value. -func (s *TargetLocation) SetTargetLocationMaxErrors(v string) *TargetLocation { - s.TargetLocationMaxErrors = &v - return s -} - -// The specified target instance for the session is not fully configured for -// use with Session Manager. For more information, see Getting started with -// Session Manager (https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started.html) -// in the AWS Systems Manager User Guide. This error is also returned if you -// attempt to start a session on an instance that is located in a different -// account or Region -type TargetNotConnected struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s TargetNotConnected) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s TargetNotConnected) GoString() string { - return s.String() -} - -func newErrorTargetNotConnected(v protocol.ResponseMetadata) error { - return &TargetNotConnected{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *TargetNotConnected) Code() string { - return "TargetNotConnected" -} - -// Message returns the exception's message. -func (s *TargetNotConnected) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *TargetNotConnected) OrigErr() error { - return nil -} - -func (s *TargetNotConnected) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *TargetNotConnected) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *TargetNotConnected) RequestID() string { - return s.RespMetadata.RequestID -} - -type TerminateSessionInput struct { - _ struct{} `type:"structure"` - - // The ID of the session to terminate. - // - // SessionId is a required field - SessionId *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s TerminateSessionInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s TerminateSessionInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *TerminateSessionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "TerminateSessionInput"} - if s.SessionId == nil { - invalidParams.Add(request.NewErrParamRequired("SessionId")) - } - if s.SessionId != nil && len(*s.SessionId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SessionId", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetSessionId sets the SessionId field's value. -func (s *TerminateSessionInput) SetSessionId(v string) *TerminateSessionInput { - s.SessionId = &v - return s -} - -type TerminateSessionOutput struct { - _ struct{} `type:"structure"` - - // The ID of the session that has been terminated. - SessionId *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s TerminateSessionOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s TerminateSessionOutput) GoString() string { - return s.String() -} - -// SetSessionId sets the SessionId field's value. -func (s *TerminateSessionOutput) SetSessionId(v string) *TerminateSessionOutput { - s.SessionId = &v - return s -} - -// The Targets parameter includes too many tags. Remove one or more tags and -// try the command again. -type TooManyTagsError struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s TooManyTagsError) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s TooManyTagsError) GoString() string { - return s.String() -} - -func newErrorTooManyTagsError(v protocol.ResponseMetadata) error { - return &TooManyTagsError{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *TooManyTagsError) Code() string { - return "TooManyTagsError" -} - -// Message returns the exception's message. -func (s *TooManyTagsError) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *TooManyTagsError) OrigErr() error { - return nil -} - -func (s *TooManyTagsError) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *TooManyTagsError) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *TooManyTagsError) RequestID() string { - return s.RespMetadata.RequestID -} - -// There are concurrent updates for a resource that supports one update at a -// time. -type TooManyUpdates struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s TooManyUpdates) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s TooManyUpdates) GoString() string { - return s.String() -} - -func newErrorTooManyUpdates(v protocol.ResponseMetadata) error { - return &TooManyUpdates{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *TooManyUpdates) Code() string { - return "TooManyUpdates" -} - -// Message returns the exception's message. -func (s *TooManyUpdates) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *TooManyUpdates) OrigErr() error { - return nil -} - -func (s *TooManyUpdates) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *TooManyUpdates) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *TooManyUpdates) RequestID() string { - return s.RespMetadata.RequestID -} - -// The size of inventory data has exceeded the total size limit for the resource. -type TotalSizeLimitExceededException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s TotalSizeLimitExceededException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s TotalSizeLimitExceededException) GoString() string { - return s.String() -} - -func newErrorTotalSizeLimitExceededException(v protocol.ResponseMetadata) error { - return &TotalSizeLimitExceededException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *TotalSizeLimitExceededException) Code() string { - return "TotalSizeLimitExceededException" -} - -// Message returns the exception's message. -func (s *TotalSizeLimitExceededException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *TotalSizeLimitExceededException) OrigErr() error { - return nil -} - -func (s *TotalSizeLimitExceededException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *TotalSizeLimitExceededException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *TotalSizeLimitExceededException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The calendar entry contained in the specified Systems Manager document is -// not supported. -type UnsupportedCalendarException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s UnsupportedCalendarException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UnsupportedCalendarException) GoString() string { - return s.String() -} - -func newErrorUnsupportedCalendarException(v protocol.ResponseMetadata) error { - return &UnsupportedCalendarException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *UnsupportedCalendarException) Code() string { - return "UnsupportedCalendarException" -} - -// Message returns the exception's message. -func (s *UnsupportedCalendarException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *UnsupportedCalendarException) OrigErr() error { - return nil -} - -func (s *UnsupportedCalendarException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *UnsupportedCalendarException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *UnsupportedCalendarException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Microsoft application patching is only available on EC2 instances and advanced -// instances. To patch Microsoft applications on on-premises servers and VMs, -// you must enable advanced instances. For more information, see Using the advanced-instances -// tier (https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances-advanced.html) -// in the AWS Systems Manager User Guide. -type UnsupportedFeatureRequiredException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s UnsupportedFeatureRequiredException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UnsupportedFeatureRequiredException) GoString() string { - return s.String() -} - -func newErrorUnsupportedFeatureRequiredException(v protocol.ResponseMetadata) error { - return &UnsupportedFeatureRequiredException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *UnsupportedFeatureRequiredException) Code() string { - return "UnsupportedFeatureRequiredException" -} - -// Message returns the exception's message. -func (s *UnsupportedFeatureRequiredException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *UnsupportedFeatureRequiredException) OrigErr() error { - return nil -} - -func (s *UnsupportedFeatureRequiredException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *UnsupportedFeatureRequiredException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *UnsupportedFeatureRequiredException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The Context attribute that you specified for the InventoryItem is not allowed -// for this inventory type. You can only use the Context attribute with inventory -// types like AWS:ComplianceItem. -type UnsupportedInventoryItemContextException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` - - TypeName *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s UnsupportedInventoryItemContextException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UnsupportedInventoryItemContextException) GoString() string { - return s.String() -} - -func newErrorUnsupportedInventoryItemContextException(v protocol.ResponseMetadata) error { - return &UnsupportedInventoryItemContextException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *UnsupportedInventoryItemContextException) Code() string { - return "UnsupportedInventoryItemContextException" -} - -// Message returns the exception's message. -func (s *UnsupportedInventoryItemContextException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *UnsupportedInventoryItemContextException) OrigErr() error { - return nil -} - -func (s *UnsupportedInventoryItemContextException) Error() string { - return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *UnsupportedInventoryItemContextException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *UnsupportedInventoryItemContextException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Inventory item type schema version has to match supported versions in the -// service. Check output of GetInventorySchema to see the available schema version -// for each type. -type UnsupportedInventorySchemaVersionException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s UnsupportedInventorySchemaVersionException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UnsupportedInventorySchemaVersionException) GoString() string { - return s.String() -} - -func newErrorUnsupportedInventorySchemaVersionException(v protocol.ResponseMetadata) error { - return &UnsupportedInventorySchemaVersionException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *UnsupportedInventorySchemaVersionException) Code() string { - return "UnsupportedInventorySchemaVersionException" -} - -// Message returns the exception's message. -func (s *UnsupportedInventorySchemaVersionException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *UnsupportedInventorySchemaVersionException) OrigErr() error { - return nil -} - -func (s *UnsupportedInventorySchemaVersionException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *UnsupportedInventorySchemaVersionException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *UnsupportedInventorySchemaVersionException) RequestID() string { - return s.RespMetadata.RequestID -} - -// The operating systems you specified is not supported, or the operation is -// not supported for the operating system. -type UnsupportedOperatingSystem struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s UnsupportedOperatingSystem) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UnsupportedOperatingSystem) GoString() string { - return s.String() -} - -func newErrorUnsupportedOperatingSystem(v protocol.ResponseMetadata) error { - return &UnsupportedOperatingSystem{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *UnsupportedOperatingSystem) Code() string { - return "UnsupportedOperatingSystem" -} - -// Message returns the exception's message. -func (s *UnsupportedOperatingSystem) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *UnsupportedOperatingSystem) OrigErr() error { - return nil -} - -func (s *UnsupportedOperatingSystem) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *UnsupportedOperatingSystem) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *UnsupportedOperatingSystem) RequestID() string { - return s.RespMetadata.RequestID -} - -// The parameter type is not supported. -type UnsupportedParameterType struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s UnsupportedParameterType) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UnsupportedParameterType) GoString() string { - return s.String() -} - -func newErrorUnsupportedParameterType(v protocol.ResponseMetadata) error { - return &UnsupportedParameterType{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *UnsupportedParameterType) Code() string { - return "UnsupportedParameterType" -} - -// Message returns the exception's message. -func (s *UnsupportedParameterType) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *UnsupportedParameterType) OrigErr() error { - return nil -} - -func (s *UnsupportedParameterType) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *UnsupportedParameterType) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *UnsupportedParameterType) RequestID() string { - return s.RespMetadata.RequestID -} - -// The document does not support the platform type of the given instance ID(s). -// For example, you sent an document for a Windows instance to a Linux instance. -type UnsupportedPlatformType struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` -} - -// String returns the string representation -func (s UnsupportedPlatformType) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UnsupportedPlatformType) GoString() string { - return s.String() -} - -func newErrorUnsupportedPlatformType(v protocol.ResponseMetadata) error { - return &UnsupportedPlatformType{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *UnsupportedPlatformType) Code() string { - return "UnsupportedPlatformType" -} - -// Message returns the exception's message. -func (s *UnsupportedPlatformType) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *UnsupportedPlatformType) OrigErr() error { - return nil -} - -func (s *UnsupportedPlatformType) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *UnsupportedPlatformType) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *UnsupportedPlatformType) RequestID() string { - return s.RespMetadata.RequestID -} - -type UpdateAssociationInput struct { - _ struct{} `type:"structure"` - - // By default, when you update an association, the system runs it immediately - // after it is updated and then according to the schedule you specified. Specify - // this option if you don't want an association to run immediately after you - // update it. This parameter is not supported for rate expressions. - // - // Also, if you specified this option when you created the association, you - // can reset it. To do so, specify the no-apply-only-at-cron-interval parameter - // when you update the association from the command line. This parameter forces - // the association to run immediately after updating it and according to the - // interval specified. - ApplyOnlyAtCronInterval *bool `type:"boolean"` - - // The ID of the association you want to update. - // - // AssociationId is a required field - AssociationId *string `type:"string" required:"true"` - - // The name of the association that you want to update. - AssociationName *string `type:"string"` - - // This parameter is provided for concurrency control purposes. You must specify - // the latest association version in the service. If you want to ensure that - // this request succeeds, either specify $LATEST, or omit this parameter. - AssociationVersion *string `type:"string"` - - // Specify the target for the association. This target is required for associations - // that use an Automation document and target resources by using rate controls. - AutomationTargetParameterName *string `min:"1" type:"string"` - - // The severity level to assign to the association. - ComplianceSeverity *string `type:"string" enum:"AssociationComplianceSeverity"` - - // The document version you want update for the association. - DocumentVersion *string `type:"string"` - - // The maximum number of targets allowed to run the association at the same - // time. You can specify a number, for example 10, or a percentage of the target - // set, for example 10%. The default value is 100%, which means all targets - // run the association at the same time. - // - // If a new instance starts and attempts to run an association while Systems - // Manager is running MaxConcurrency associations, the association is allowed - // to run. During the next association interval, the new instance will process - // its association within the limit specified for MaxConcurrency. - MaxConcurrency *string `min:"1" type:"string"` - - // The number of errors that are allowed before the system stops sending requests - // to run the association on additional targets. You can specify either an absolute - // number of errors, for example 10, or a percentage of the target set, for - // example 10%. If you specify 3, for example, the system stops sending requests - // when the fourth error is received. If you specify 0, then the system stops - // sending requests after the first error is returned. If you run an association - // on 50 instances and set MaxError to 10%, then the system stops sending the - // request when the sixth error is received. - // - // Executions that are already running an association when MaxErrors is reached - // are allowed to complete, but some of these executions may fail as well. If - // you need to ensure that there won't be more than max-errors failed executions, - // set MaxConcurrency to 1 so that executions proceed one at a time. - MaxErrors *string `min:"1" type:"string"` - - // The name of the SSM document that contains the configuration information - // for the instance. You can specify Command or Automation documents. - // - // You can specify AWS-predefined documents, documents you created, or a document - // that is shared with you from another account. - // - // For SSM documents that are shared with you from other AWS accounts, you must - // specify the complete SSM document ARN, in the following format: - // - // arn:aws:ssm:region:account-id:document/document-name - // - // For example: - // - // arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document - // - // For AWS-predefined documents and SSM documents you created in your account, - // you only need to specify the document name. For example, AWS-ApplyPatchBaseline - // or My-Document. - Name *string `type:"string"` - - // An S3 bucket where you want to store the results of this request. - OutputLocation *InstanceAssociationOutputLocation `type:"structure"` - - // The parameters you want to update for the association. If you create a parameter - // using Parameter Store, you can reference the parameter using {{ssm:parameter-name}} - Parameters map[string][]*string `type:"map"` - - // The cron expression used to schedule the association that you want to update. - ScheduleExpression *string `min:"1" type:"string"` - - // The mode for generating association compliance. You can specify AUTO or MANUAL. - // In AUTO mode, the system uses the status of the association execution to - // determine the compliance status. If the association execution runs successfully, - // then the association is COMPLIANT. If the association execution doesn't run - // successfully, the association is NON-COMPLIANT. - // - // In MANUAL mode, you must specify the AssociationId as a parameter for the - // PutComplianceItems API action. In this case, compliance data is not managed - // by State Manager. It is managed by your direct call to the PutComplianceItems - // API action. - // - // By default, all associations use AUTO mode. - SyncCompliance *string `type:"string" enum:"AssociationSyncCompliance"` - - // A location is a combination of AWS Regions and AWS accounts where you want - // to run the association. Use this action to update an association in multiple - // Regions and multiple accounts. - TargetLocations []*TargetLocation `min:"1" type:"list"` - - // The targets of the association. - Targets []*Target `type:"list"` -} - -// String returns the string representation -func (s UpdateAssociationInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateAssociationInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *UpdateAssociationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdateAssociationInput"} - if s.AssociationId == nil { - invalidParams.Add(request.NewErrParamRequired("AssociationId")) - } - if s.AutomationTargetParameterName != nil && len(*s.AutomationTargetParameterName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AutomationTargetParameterName", 1)) - } - if s.MaxConcurrency != nil && len(*s.MaxConcurrency) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxConcurrency", 1)) - } - if s.MaxErrors != nil && len(*s.MaxErrors) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxErrors", 1)) - } - if s.ScheduleExpression != nil && len(*s.ScheduleExpression) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ScheduleExpression", 1)) - } - if s.TargetLocations != nil && len(s.TargetLocations) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TargetLocations", 1)) - } - if s.OutputLocation != nil { - if err := s.OutputLocation.Validate(); err != nil { - invalidParams.AddNested("OutputLocation", err.(request.ErrInvalidParams)) - } - } - if s.TargetLocations != nil { - for i, v := range s.TargetLocations { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetLocations", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Targets != nil { - for i, v := range s.Targets { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetApplyOnlyAtCronInterval sets the ApplyOnlyAtCronInterval field's value. -func (s *UpdateAssociationInput) SetApplyOnlyAtCronInterval(v bool) *UpdateAssociationInput { - s.ApplyOnlyAtCronInterval = &v - return s -} - -// SetAssociationId sets the AssociationId field's value. -func (s *UpdateAssociationInput) SetAssociationId(v string) *UpdateAssociationInput { - s.AssociationId = &v - return s -} - -// SetAssociationName sets the AssociationName field's value. -func (s *UpdateAssociationInput) SetAssociationName(v string) *UpdateAssociationInput { - s.AssociationName = &v - return s -} - -// SetAssociationVersion sets the AssociationVersion field's value. -func (s *UpdateAssociationInput) SetAssociationVersion(v string) *UpdateAssociationInput { - s.AssociationVersion = &v - return s -} - -// SetAutomationTargetParameterName sets the AutomationTargetParameterName field's value. -func (s *UpdateAssociationInput) SetAutomationTargetParameterName(v string) *UpdateAssociationInput { - s.AutomationTargetParameterName = &v - return s -} - -// SetComplianceSeverity sets the ComplianceSeverity field's value. -func (s *UpdateAssociationInput) SetComplianceSeverity(v string) *UpdateAssociationInput { - s.ComplianceSeverity = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *UpdateAssociationInput) SetDocumentVersion(v string) *UpdateAssociationInput { - s.DocumentVersion = &v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *UpdateAssociationInput) SetMaxConcurrency(v string) *UpdateAssociationInput { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *UpdateAssociationInput) SetMaxErrors(v string) *UpdateAssociationInput { - s.MaxErrors = &v - return s -} - -// SetName sets the Name field's value. -func (s *UpdateAssociationInput) SetName(v string) *UpdateAssociationInput { - s.Name = &v - return s -} - -// SetOutputLocation sets the OutputLocation field's value. -func (s *UpdateAssociationInput) SetOutputLocation(v *InstanceAssociationOutputLocation) *UpdateAssociationInput { - s.OutputLocation = v - return s -} - -// SetParameters sets the Parameters field's value. -func (s *UpdateAssociationInput) SetParameters(v map[string][]*string) *UpdateAssociationInput { - s.Parameters = v - return s -} - -// SetScheduleExpression sets the ScheduleExpression field's value. -func (s *UpdateAssociationInput) SetScheduleExpression(v string) *UpdateAssociationInput { - s.ScheduleExpression = &v - return s -} - -// SetSyncCompliance sets the SyncCompliance field's value. -func (s *UpdateAssociationInput) SetSyncCompliance(v string) *UpdateAssociationInput { - s.SyncCompliance = &v - return s -} - -// SetTargetLocations sets the TargetLocations field's value. -func (s *UpdateAssociationInput) SetTargetLocations(v []*TargetLocation) *UpdateAssociationInput { - s.TargetLocations = v - return s -} - -// SetTargets sets the Targets field's value. -func (s *UpdateAssociationInput) SetTargets(v []*Target) *UpdateAssociationInput { - s.Targets = v - return s -} - -type UpdateAssociationOutput struct { - _ struct{} `type:"structure"` - - // The description of the association that was updated. - AssociationDescription *AssociationDescription `type:"structure"` -} - -// String returns the string representation -func (s UpdateAssociationOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateAssociationOutput) GoString() string { - return s.String() -} - -// SetAssociationDescription sets the AssociationDescription field's value. -func (s *UpdateAssociationOutput) SetAssociationDescription(v *AssociationDescription) *UpdateAssociationOutput { - s.AssociationDescription = v - return s -} - -type UpdateAssociationStatusInput struct { - _ struct{} `type:"structure"` - - // The association status. - // - // AssociationStatus is a required field - AssociationStatus *AssociationStatus `type:"structure" required:"true"` - - // The ID of the instance. - // - // InstanceId is a required field - InstanceId *string `type:"string" required:"true"` - - // The name of the Systems Manager document. - // - // Name is a required field - Name *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s UpdateAssociationStatusInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateAssociationStatusInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *UpdateAssociationStatusInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdateAssociationStatusInput"} - if s.AssociationStatus == nil { - invalidParams.Add(request.NewErrParamRequired("AssociationStatus")) - } - if s.InstanceId == nil { - invalidParams.Add(request.NewErrParamRequired("InstanceId")) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.AssociationStatus != nil { - if err := s.AssociationStatus.Validate(); err != nil { - invalidParams.AddNested("AssociationStatus", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAssociationStatus sets the AssociationStatus field's value. -func (s *UpdateAssociationStatusInput) SetAssociationStatus(v *AssociationStatus) *UpdateAssociationStatusInput { - s.AssociationStatus = v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *UpdateAssociationStatusInput) SetInstanceId(v string) *UpdateAssociationStatusInput { - s.InstanceId = &v - return s -} - -// SetName sets the Name field's value. -func (s *UpdateAssociationStatusInput) SetName(v string) *UpdateAssociationStatusInput { - s.Name = &v - return s -} - -type UpdateAssociationStatusOutput struct { - _ struct{} `type:"structure"` - - // Information about the association. - AssociationDescription *AssociationDescription `type:"structure"` -} - -// String returns the string representation -func (s UpdateAssociationStatusOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateAssociationStatusOutput) GoString() string { - return s.String() -} - -// SetAssociationDescription sets the AssociationDescription field's value. -func (s *UpdateAssociationStatusOutput) SetAssociationDescription(v *AssociationDescription) *UpdateAssociationStatusOutput { - s.AssociationDescription = v - return s -} - -type UpdateDocumentDefaultVersionInput struct { - _ struct{} `type:"structure"` - - // The version of a custom document that you want to set as the default version. - // - // DocumentVersion is a required field - DocumentVersion *string `type:"string" required:"true"` - - // The name of a custom document that you want to set as the default version. - // - // Name is a required field - Name *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s UpdateDocumentDefaultVersionInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateDocumentDefaultVersionInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *UpdateDocumentDefaultVersionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdateDocumentDefaultVersionInput"} - if s.DocumentVersion == nil { - invalidParams.Add(request.NewErrParamRequired("DocumentVersion")) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *UpdateDocumentDefaultVersionInput) SetDocumentVersion(v string) *UpdateDocumentDefaultVersionInput { - s.DocumentVersion = &v - return s -} - -// SetName sets the Name field's value. -func (s *UpdateDocumentDefaultVersionInput) SetName(v string) *UpdateDocumentDefaultVersionInput { - s.Name = &v - return s -} - -type UpdateDocumentDefaultVersionOutput struct { - _ struct{} `type:"structure"` - - // The description of a custom document that you want to set as the default - // version. - Description *DocumentDefaultVersionDescription `type:"structure"` -} - -// String returns the string representation -func (s UpdateDocumentDefaultVersionOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateDocumentDefaultVersionOutput) GoString() string { - return s.String() -} - -// SetDescription sets the Description field's value. -func (s *UpdateDocumentDefaultVersionOutput) SetDescription(v *DocumentDefaultVersionDescription) *UpdateDocumentDefaultVersionOutput { - s.Description = v - return s -} - -type UpdateDocumentInput struct { - _ struct{} `type:"structure"` - - // A list of key and value pairs that describe attachments to a version of a - // document. - Attachments []*AttachmentsSource `type:"list"` - - // A valid JSON or YAML string. - // - // Content is a required field - Content *string `min:"1" type:"string" required:"true"` - - // Specify the document format for the new document version. Systems Manager - // supports JSON and YAML documents. JSON is the default format. - DocumentFormat *string `type:"string" enum:"DocumentFormat"` - - // (Required) The latest version of the document that you want to update. The - // latest document version can be specified using the $LATEST variable or by - // the version number. Updating a previous version of a document is not supported. - DocumentVersion *string `type:"string"` - - // The name of the document that you want to update. - // - // Name is a required field - Name *string `type:"string" required:"true"` - - // Specify a new target type for the document. - TargetType *string `type:"string"` - - // An optional field specifying the version of the artifact you are updating - // with the document. For example, "Release 12, Update 6". This value is unique - // across all versions of a document, and cannot be changed. - VersionName *string `type:"string"` -} - -// String returns the string representation -func (s UpdateDocumentInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateDocumentInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *UpdateDocumentInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdateDocumentInput"} - if s.Content == nil { - invalidParams.Add(request.NewErrParamRequired("Content")) - } - if s.Content != nil && len(*s.Content) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Content", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Attachments != nil { - for i, v := range s.Attachments { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAttachments sets the Attachments field's value. -func (s *UpdateDocumentInput) SetAttachments(v []*AttachmentsSource) *UpdateDocumentInput { - s.Attachments = v - return s -} - -// SetContent sets the Content field's value. -func (s *UpdateDocumentInput) SetContent(v string) *UpdateDocumentInput { - s.Content = &v - return s -} - -// SetDocumentFormat sets the DocumentFormat field's value. -func (s *UpdateDocumentInput) SetDocumentFormat(v string) *UpdateDocumentInput { - s.DocumentFormat = &v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *UpdateDocumentInput) SetDocumentVersion(v string) *UpdateDocumentInput { - s.DocumentVersion = &v - return s -} - -// SetName sets the Name field's value. -func (s *UpdateDocumentInput) SetName(v string) *UpdateDocumentInput { - s.Name = &v - return s -} - -// SetTargetType sets the TargetType field's value. -func (s *UpdateDocumentInput) SetTargetType(v string) *UpdateDocumentInput { - s.TargetType = &v - return s -} - -// SetVersionName sets the VersionName field's value. -func (s *UpdateDocumentInput) SetVersionName(v string) *UpdateDocumentInput { - s.VersionName = &v - return s -} - -type UpdateDocumentMetadataInput struct { - _ struct{} `type:"structure"` - - // The document review details to update. - // - // DocumentReviews is a required field - DocumentReviews *DocumentReviews `type:"structure" required:"true"` - - // The version of a document to update. - DocumentVersion *string `type:"string"` - - // The name of the document for which a version is to be updated. - // - // Name is a required field - Name *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s UpdateDocumentMetadataInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateDocumentMetadataInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *UpdateDocumentMetadataInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdateDocumentMetadataInput"} - if s.DocumentReviews == nil { - invalidParams.Add(request.NewErrParamRequired("DocumentReviews")) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.DocumentReviews != nil { - if err := s.DocumentReviews.Validate(); err != nil { - invalidParams.AddNested("DocumentReviews", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDocumentReviews sets the DocumentReviews field's value. -func (s *UpdateDocumentMetadataInput) SetDocumentReviews(v *DocumentReviews) *UpdateDocumentMetadataInput { - s.DocumentReviews = v - return s -} - -// SetDocumentVersion sets the DocumentVersion field's value. -func (s *UpdateDocumentMetadataInput) SetDocumentVersion(v string) *UpdateDocumentMetadataInput { - s.DocumentVersion = &v - return s -} - -// SetName sets the Name field's value. -func (s *UpdateDocumentMetadataInput) SetName(v string) *UpdateDocumentMetadataInput { - s.Name = &v - return s -} - -type UpdateDocumentMetadataOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s UpdateDocumentMetadataOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateDocumentMetadataOutput) GoString() string { - return s.String() -} - -type UpdateDocumentOutput struct { - _ struct{} `type:"structure"` - - // A description of the document that was updated. - DocumentDescription *DocumentDescription `type:"structure"` -} - -// String returns the string representation -func (s UpdateDocumentOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateDocumentOutput) GoString() string { - return s.String() -} - -// SetDocumentDescription sets the DocumentDescription field's value. -func (s *UpdateDocumentOutput) SetDocumentDescription(v *DocumentDescription) *UpdateDocumentOutput { - s.DocumentDescription = v - return s -} - -type UpdateMaintenanceWindowInput struct { - _ struct{} `type:"structure"` - - // Whether targets must be registered with the maintenance window before tasks - // can be defined for those targets. - AllowUnassociatedTargets *bool `type:"boolean"` - - // The number of hours before the end of the maintenance window that Systems - // Manager stops scheduling new tasks for execution. - Cutoff *int64 `type:"integer"` - - // An optional description for the update request. - Description *string `min:"1" type:"string" sensitive:"true"` - - // The duration of the maintenance window in hours. - Duration *int64 `min:"1" type:"integer"` - - // Whether the maintenance window is enabled. - Enabled *bool `type:"boolean"` - - // The date and time, in ISO-8601 Extended format, for when you want the maintenance - // window to become inactive. EndDate allows you to set a date and time in the - // future when the maintenance window will no longer run. - EndDate *string `type:"string"` - - // The name of the maintenance window. - Name *string `min:"3" type:"string"` - - // If True, then all fields that are required by the CreateMaintenanceWindow - // action are also required for this API request. Optional fields that are not - // specified are set to null. - Replace *bool `type:"boolean"` - - // The schedule of the maintenance window in the form of a cron or rate expression. - Schedule *string `min:"1" type:"string"` - - // The number of days to wait after the date and time specified by a CRON expression - // before running the maintenance window. - // - // For example, the following cron expression schedules a maintenance window - // to run the third Tuesday of every month at 11:30 PM. - // - // cron(30 23 ? * TUE#3 *) - // - // If the schedule offset is 2, the maintenance window won't run until two days - // later. - ScheduleOffset *int64 `min:"1" type:"integer"` - - // The time zone that the scheduled maintenance window executions are based - // on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", - // "UTC", or "Asia/Seoul". For more information, see the Time Zone Database - // (https://www.iana.org/time-zones) on the IANA website. - ScheduleTimezone *string `type:"string"` - - // The time zone that the scheduled maintenance window executions are based - // on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", - // "UTC", or "Asia/Seoul". For more information, see the Time Zone Database - // (https://www.iana.org/time-zones) on the IANA website. - StartDate *string `type:"string"` - - // The ID of the maintenance window to update. - // - // WindowId is a required field - WindowId *string `min:"20" type:"string" required:"true"` -} - -// String returns the string representation -func (s UpdateMaintenanceWindowInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateMaintenanceWindowInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *UpdateMaintenanceWindowInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdateMaintenanceWindowInput"} - if s.Description != nil && len(*s.Description) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Description", 1)) - } - if s.Duration != nil && *s.Duration < 1 { - invalidParams.Add(request.NewErrParamMinValue("Duration", 1)) - } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) - } - if s.Schedule != nil && len(*s.Schedule) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Schedule", 1)) - } - if s.ScheduleOffset != nil && *s.ScheduleOffset < 1 { - invalidParams.Add(request.NewErrParamMinValue("ScheduleOffset", 1)) - } - if s.WindowId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowId")) - } - if s.WindowId != nil && len(*s.WindowId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("WindowId", 20)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAllowUnassociatedTargets sets the AllowUnassociatedTargets field's value. -func (s *UpdateMaintenanceWindowInput) SetAllowUnassociatedTargets(v bool) *UpdateMaintenanceWindowInput { - s.AllowUnassociatedTargets = &v - return s -} - -// SetCutoff sets the Cutoff field's value. -func (s *UpdateMaintenanceWindowInput) SetCutoff(v int64) *UpdateMaintenanceWindowInput { - s.Cutoff = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *UpdateMaintenanceWindowInput) SetDescription(v string) *UpdateMaintenanceWindowInput { - s.Description = &v - return s -} - -// SetDuration sets the Duration field's value. -func (s *UpdateMaintenanceWindowInput) SetDuration(v int64) *UpdateMaintenanceWindowInput { - s.Duration = &v - return s -} - -// SetEnabled sets the Enabled field's value. -func (s *UpdateMaintenanceWindowInput) SetEnabled(v bool) *UpdateMaintenanceWindowInput { - s.Enabled = &v - return s -} - -// SetEndDate sets the EndDate field's value. -func (s *UpdateMaintenanceWindowInput) SetEndDate(v string) *UpdateMaintenanceWindowInput { - s.EndDate = &v - return s -} - -// SetName sets the Name field's value. -func (s *UpdateMaintenanceWindowInput) SetName(v string) *UpdateMaintenanceWindowInput { - s.Name = &v - return s -} - -// SetReplace sets the Replace field's value. -func (s *UpdateMaintenanceWindowInput) SetReplace(v bool) *UpdateMaintenanceWindowInput { - s.Replace = &v - return s -} - -// SetSchedule sets the Schedule field's value. -func (s *UpdateMaintenanceWindowInput) SetSchedule(v string) *UpdateMaintenanceWindowInput { - s.Schedule = &v - return s -} - -// SetScheduleOffset sets the ScheduleOffset field's value. -func (s *UpdateMaintenanceWindowInput) SetScheduleOffset(v int64) *UpdateMaintenanceWindowInput { - s.ScheduleOffset = &v - return s -} - -// SetScheduleTimezone sets the ScheduleTimezone field's value. -func (s *UpdateMaintenanceWindowInput) SetScheduleTimezone(v string) *UpdateMaintenanceWindowInput { - s.ScheduleTimezone = &v - return s -} - -// SetStartDate sets the StartDate field's value. -func (s *UpdateMaintenanceWindowInput) SetStartDate(v string) *UpdateMaintenanceWindowInput { - s.StartDate = &v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *UpdateMaintenanceWindowInput) SetWindowId(v string) *UpdateMaintenanceWindowInput { - s.WindowId = &v - return s -} - -type UpdateMaintenanceWindowOutput struct { - _ struct{} `type:"structure"` - - // Whether targets must be registered with the maintenance window before tasks - // can be defined for those targets. - AllowUnassociatedTargets *bool `type:"boolean"` - - // The number of hours before the end of the maintenance window that Systems - // Manager stops scheduling new tasks for execution. - Cutoff *int64 `type:"integer"` - - // An optional description of the update. - Description *string `min:"1" type:"string" sensitive:"true"` - - // The duration of the maintenance window in hours. - Duration *int64 `min:"1" type:"integer"` - - // Whether the maintenance window is enabled. - Enabled *bool `type:"boolean"` - - // The date and time, in ISO-8601 Extended format, for when the maintenance - // window is scheduled to become inactive. The maintenance window will not run - // after this specified time. - EndDate *string `type:"string"` - - // The name of the maintenance window. - Name *string `min:"3" type:"string"` - - // The schedule of the maintenance window in the form of a cron or rate expression. - Schedule *string `min:"1" type:"string"` - - // The number of days to wait to run a maintenance window after the scheduled - // CRON expression date and time. - ScheduleOffset *int64 `min:"1" type:"integer"` - - // The time zone that the scheduled maintenance window executions are based - // on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", - // "UTC", or "Asia/Seoul". For more information, see the Time Zone Database - // (https://www.iana.org/time-zones) on the IANA website. - ScheduleTimezone *string `type:"string"` - - // The date and time, in ISO-8601 Extended format, for when the maintenance - // window is scheduled to become active. The maintenance window will not run - // before this specified time. - StartDate *string `type:"string"` - - // The ID of the created maintenance window. - WindowId *string `min:"20" type:"string"` -} - -// String returns the string representation -func (s UpdateMaintenanceWindowOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateMaintenanceWindowOutput) GoString() string { - return s.String() -} - -// SetAllowUnassociatedTargets sets the AllowUnassociatedTargets field's value. -func (s *UpdateMaintenanceWindowOutput) SetAllowUnassociatedTargets(v bool) *UpdateMaintenanceWindowOutput { - s.AllowUnassociatedTargets = &v - return s -} - -// SetCutoff sets the Cutoff field's value. -func (s *UpdateMaintenanceWindowOutput) SetCutoff(v int64) *UpdateMaintenanceWindowOutput { - s.Cutoff = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *UpdateMaintenanceWindowOutput) SetDescription(v string) *UpdateMaintenanceWindowOutput { - s.Description = &v - return s -} - -// SetDuration sets the Duration field's value. -func (s *UpdateMaintenanceWindowOutput) SetDuration(v int64) *UpdateMaintenanceWindowOutput { - s.Duration = &v - return s -} - -// SetEnabled sets the Enabled field's value. -func (s *UpdateMaintenanceWindowOutput) SetEnabled(v bool) *UpdateMaintenanceWindowOutput { - s.Enabled = &v - return s -} - -// SetEndDate sets the EndDate field's value. -func (s *UpdateMaintenanceWindowOutput) SetEndDate(v string) *UpdateMaintenanceWindowOutput { - s.EndDate = &v - return s -} - -// SetName sets the Name field's value. -func (s *UpdateMaintenanceWindowOutput) SetName(v string) *UpdateMaintenanceWindowOutput { - s.Name = &v - return s -} - -// SetSchedule sets the Schedule field's value. -func (s *UpdateMaintenanceWindowOutput) SetSchedule(v string) *UpdateMaintenanceWindowOutput { - s.Schedule = &v - return s -} - -// SetScheduleOffset sets the ScheduleOffset field's value. -func (s *UpdateMaintenanceWindowOutput) SetScheduleOffset(v int64) *UpdateMaintenanceWindowOutput { - s.ScheduleOffset = &v - return s -} - -// SetScheduleTimezone sets the ScheduleTimezone field's value. -func (s *UpdateMaintenanceWindowOutput) SetScheduleTimezone(v string) *UpdateMaintenanceWindowOutput { - s.ScheduleTimezone = &v - return s -} - -// SetStartDate sets the StartDate field's value. -func (s *UpdateMaintenanceWindowOutput) SetStartDate(v string) *UpdateMaintenanceWindowOutput { - s.StartDate = &v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *UpdateMaintenanceWindowOutput) SetWindowId(v string) *UpdateMaintenanceWindowOutput { - s.WindowId = &v - return s -} - -type UpdateMaintenanceWindowTargetInput struct { - _ struct{} `type:"structure"` - - // An optional description for the update. - Description *string `min:"1" type:"string" sensitive:"true"` - - // A name for the update. - Name *string `min:"3" type:"string"` - - // User-provided value that will be included in any CloudWatch events raised - // while running tasks for these targets in this maintenance window. - OwnerInformation *string `min:"1" type:"string" sensitive:"true"` - - // If True, then all fields that are required by the RegisterTargetWithMaintenanceWindow - // action are also required for this API request. Optional fields that are not - // specified are set to null. - Replace *bool `type:"boolean"` - - // The targets to add or replace. - Targets []*Target `type:"list"` - - // The maintenance window ID with which to modify the target. - // - // WindowId is a required field - WindowId *string `min:"20" type:"string" required:"true"` - - // The target ID to modify. - // - // WindowTargetId is a required field - WindowTargetId *string `min:"36" type:"string" required:"true"` -} - -// String returns the string representation -func (s UpdateMaintenanceWindowTargetInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateMaintenanceWindowTargetInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *UpdateMaintenanceWindowTargetInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdateMaintenanceWindowTargetInput"} - if s.Description != nil && len(*s.Description) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Description", 1)) - } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) - } - if s.OwnerInformation != nil && len(*s.OwnerInformation) < 1 { - invalidParams.Add(request.NewErrParamMinLen("OwnerInformation", 1)) - } - if s.WindowId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowId")) - } - if s.WindowId != nil && len(*s.WindowId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("WindowId", 20)) - } - if s.WindowTargetId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowTargetId")) - } - if s.WindowTargetId != nil && len(*s.WindowTargetId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("WindowTargetId", 36)) - } - if s.Targets != nil { - for i, v := range s.Targets { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDescription sets the Description field's value. -func (s *UpdateMaintenanceWindowTargetInput) SetDescription(v string) *UpdateMaintenanceWindowTargetInput { - s.Description = &v - return s -} - -// SetName sets the Name field's value. -func (s *UpdateMaintenanceWindowTargetInput) SetName(v string) *UpdateMaintenanceWindowTargetInput { - s.Name = &v - return s -} - -// SetOwnerInformation sets the OwnerInformation field's value. -func (s *UpdateMaintenanceWindowTargetInput) SetOwnerInformation(v string) *UpdateMaintenanceWindowTargetInput { - s.OwnerInformation = &v - return s -} - -// SetReplace sets the Replace field's value. -func (s *UpdateMaintenanceWindowTargetInput) SetReplace(v bool) *UpdateMaintenanceWindowTargetInput { - s.Replace = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *UpdateMaintenanceWindowTargetInput) SetTargets(v []*Target) *UpdateMaintenanceWindowTargetInput { - s.Targets = v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *UpdateMaintenanceWindowTargetInput) SetWindowId(v string) *UpdateMaintenanceWindowTargetInput { - s.WindowId = &v - return s -} - -// SetWindowTargetId sets the WindowTargetId field's value. -func (s *UpdateMaintenanceWindowTargetInput) SetWindowTargetId(v string) *UpdateMaintenanceWindowTargetInput { - s.WindowTargetId = &v - return s -} - -type UpdateMaintenanceWindowTargetOutput struct { - _ struct{} `type:"structure"` - - // The updated description. - Description *string `min:"1" type:"string" sensitive:"true"` - - // The updated name. - Name *string `min:"3" type:"string"` - - // The updated owner. - OwnerInformation *string `min:"1" type:"string" sensitive:"true"` - - // The updated targets. - Targets []*Target `type:"list"` - - // The maintenance window ID specified in the update request. - WindowId *string `min:"20" type:"string"` - - // The target ID specified in the update request. - WindowTargetId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s UpdateMaintenanceWindowTargetOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateMaintenanceWindowTargetOutput) GoString() string { - return s.String() -} - -// SetDescription sets the Description field's value. -func (s *UpdateMaintenanceWindowTargetOutput) SetDescription(v string) *UpdateMaintenanceWindowTargetOutput { - s.Description = &v - return s -} - -// SetName sets the Name field's value. -func (s *UpdateMaintenanceWindowTargetOutput) SetName(v string) *UpdateMaintenanceWindowTargetOutput { - s.Name = &v - return s -} - -// SetOwnerInformation sets the OwnerInformation field's value. -func (s *UpdateMaintenanceWindowTargetOutput) SetOwnerInformation(v string) *UpdateMaintenanceWindowTargetOutput { - s.OwnerInformation = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *UpdateMaintenanceWindowTargetOutput) SetTargets(v []*Target) *UpdateMaintenanceWindowTargetOutput { - s.Targets = v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *UpdateMaintenanceWindowTargetOutput) SetWindowId(v string) *UpdateMaintenanceWindowTargetOutput { - s.WindowId = &v - return s -} - -// SetWindowTargetId sets the WindowTargetId field's value. -func (s *UpdateMaintenanceWindowTargetOutput) SetWindowTargetId(v string) *UpdateMaintenanceWindowTargetOutput { - s.WindowTargetId = &v - return s -} - -type UpdateMaintenanceWindowTaskInput struct { - _ struct{} `type:"structure"` - - // The new task description to specify. - Description *string `min:"1" type:"string" sensitive:"true"` - - // The new logging location in Amazon S3 to specify. - // - // LoggingInfo has been deprecated. To specify an S3 bucket to contain logs, - // instead use the OutputS3BucketName and OutputS3KeyPrefix options in the TaskInvocationParameters - // structure. For information about how Systems Manager handles these options - // for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. - LoggingInfo *LoggingInfo `type:"structure"` - - // The new MaxConcurrency value you want to specify. MaxConcurrency is the number - // of targets that are allowed to run this task in parallel. - // - // For maintenance window tasks without a target specified, you cannot supply - // a value for this option. Instead, the system inserts a placeholder value - // of 1, which may be reported in the response to this command. This value does - // not affect the running of your task and can be ignored. - MaxConcurrency *string `min:"1" type:"string"` - - // The new MaxErrors value to specify. MaxErrors is the maximum number of errors - // that are allowed before the task stops being scheduled. - // - // For maintenance window tasks without a target specified, you cannot supply - // a value for this option. Instead, the system inserts a placeholder value - // of 1, which may be reported in the response to this command. This value does - // not affect the running of your task and can be ignored. - MaxErrors *string `min:"1" type:"string"` - - // The new task name to specify. - Name *string `min:"3" type:"string"` - - // The new task priority to specify. The lower the number, the higher the priority. - // Tasks that have the same priority are scheduled in parallel. - Priority *int64 `type:"integer"` - - // If True, then all fields that are required by the RegisterTaskWithMaintenanceWindow - // action are also required for this API request. Optional fields that are not - // specified are set to null. - Replace *bool `type:"boolean"` - - // The ARN of the IAM service role for Systems Manager to assume when running - // a maintenance window task. If you do not specify a service role ARN, Systems - // Manager uses your account's service-linked role. If no service-linked role - // for Systems Manager exists in your account, it is created when you run RegisterTaskWithMaintenanceWindow. - // - // For more information, see the following topics in the in the AWS Systems - // Manager User Guide: - // - // * Using service-linked roles for Systems Manager (https://docs.aws.amazon.com/systems-manager/latest/userguide/using-service-linked-roles.html#slr-permissions) - // - // * Should I use a service-linked role or a custom service role to run maintenance - // window tasks? (https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-permissions.html#maintenance-window-tasks-service-role) - ServiceRoleArn *string `type:"string"` - - // The targets (either instances or tags) to modify. Instances are specified - // using Key=instanceids,Values=instanceID_1,instanceID_2. Tags are specified - // using Key=tag_name,Values=tag_value. - // - // One or more targets must be specified for maintenance window Run Command-type - // tasks. Depending on the task, targets are optional for other maintenance - // window task types (Automation, AWS Lambda, and AWS Step Functions). For more - // information about running tasks that do not specify targets, see Registering - // maintenance window tasks without targets (https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html) - // in the AWS Systems Manager User Guide. - Targets []*Target `type:"list"` - - // The task ARN to modify. - TaskArn *string `min:"1" type:"string"` - - // The parameters that the task should use during execution. Populate only the - // fields that match the task type. All other fields should be empty. - // - // When you update a maintenance window task that has options specified in TaskInvocationParameters, - // you must provide again all the TaskInvocationParameters values that you want - // to retain. The values you do not specify again are removed. For example, - // suppose that when you registered a Run Command task, you specified TaskInvocationParameters - // values for Comment, NotificationConfig, and OutputS3BucketName. If you update - // the maintenance window task and specify only a different OutputS3BucketName - // value, the values for Comment and NotificationConfig are removed. - TaskInvocationParameters *MaintenanceWindowTaskInvocationParameters `type:"structure"` - - // The parameters to modify. - // - // TaskParameters has been deprecated. To specify parameters to pass to a task - // when it runs, instead use the Parameters option in the TaskInvocationParameters - // structure. For information about how Systems Manager handles these options - // for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. - // - // The map has the following format: - // - // Key: string, between 1 and 255 characters - // - // Value: an array of strings, each string is between 1 and 255 characters - TaskParameters map[string]*MaintenanceWindowTaskParameterValueExpression `type:"map" sensitive:"true"` - - // The maintenance window ID that contains the task to modify. - // - // WindowId is a required field - WindowId *string `min:"20" type:"string" required:"true"` - - // The task ID to modify. - // - // WindowTaskId is a required field - WindowTaskId *string `min:"36" type:"string" required:"true"` -} - -// String returns the string representation -func (s UpdateMaintenanceWindowTaskInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateMaintenanceWindowTaskInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *UpdateMaintenanceWindowTaskInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdateMaintenanceWindowTaskInput"} - if s.Description != nil && len(*s.Description) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Description", 1)) - } - if s.MaxConcurrency != nil && len(*s.MaxConcurrency) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxConcurrency", 1)) - } - if s.MaxErrors != nil && len(*s.MaxErrors) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MaxErrors", 1)) - } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) - } - if s.TaskArn != nil && len(*s.TaskArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("TaskArn", 1)) - } - if s.WindowId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowId")) - } - if s.WindowId != nil && len(*s.WindowId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("WindowId", 20)) - } - if s.WindowTaskId == nil { - invalidParams.Add(request.NewErrParamRequired("WindowTaskId")) - } - if s.WindowTaskId != nil && len(*s.WindowTaskId) < 36 { - invalidParams.Add(request.NewErrParamMinLen("WindowTaskId", 36)) - } - if s.LoggingInfo != nil { - if err := s.LoggingInfo.Validate(); err != nil { - invalidParams.AddNested("LoggingInfo", err.(request.ErrInvalidParams)) - } - } - if s.Targets != nil { - for i, v := range s.Targets { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) - } - } - } - if s.TaskInvocationParameters != nil { - if err := s.TaskInvocationParameters.Validate(); err != nil { - invalidParams.AddNested("TaskInvocationParameters", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDescription sets the Description field's value. -func (s *UpdateMaintenanceWindowTaskInput) SetDescription(v string) *UpdateMaintenanceWindowTaskInput { - s.Description = &v - return s -} - -// SetLoggingInfo sets the LoggingInfo field's value. -func (s *UpdateMaintenanceWindowTaskInput) SetLoggingInfo(v *LoggingInfo) *UpdateMaintenanceWindowTaskInput { - s.LoggingInfo = v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *UpdateMaintenanceWindowTaskInput) SetMaxConcurrency(v string) *UpdateMaintenanceWindowTaskInput { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *UpdateMaintenanceWindowTaskInput) SetMaxErrors(v string) *UpdateMaintenanceWindowTaskInput { - s.MaxErrors = &v - return s -} - -// SetName sets the Name field's value. -func (s *UpdateMaintenanceWindowTaskInput) SetName(v string) *UpdateMaintenanceWindowTaskInput { - s.Name = &v - return s -} - -// SetPriority sets the Priority field's value. -func (s *UpdateMaintenanceWindowTaskInput) SetPriority(v int64) *UpdateMaintenanceWindowTaskInput { - s.Priority = &v - return s -} - -// SetReplace sets the Replace field's value. -func (s *UpdateMaintenanceWindowTaskInput) SetReplace(v bool) *UpdateMaintenanceWindowTaskInput { - s.Replace = &v - return s -} - -// SetServiceRoleArn sets the ServiceRoleArn field's value. -func (s *UpdateMaintenanceWindowTaskInput) SetServiceRoleArn(v string) *UpdateMaintenanceWindowTaskInput { - s.ServiceRoleArn = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *UpdateMaintenanceWindowTaskInput) SetTargets(v []*Target) *UpdateMaintenanceWindowTaskInput { - s.Targets = v - return s -} - -// SetTaskArn sets the TaskArn field's value. -func (s *UpdateMaintenanceWindowTaskInput) SetTaskArn(v string) *UpdateMaintenanceWindowTaskInput { - s.TaskArn = &v - return s -} - -// SetTaskInvocationParameters sets the TaskInvocationParameters field's value. -func (s *UpdateMaintenanceWindowTaskInput) SetTaskInvocationParameters(v *MaintenanceWindowTaskInvocationParameters) *UpdateMaintenanceWindowTaskInput { - s.TaskInvocationParameters = v - return s -} - -// SetTaskParameters sets the TaskParameters field's value. -func (s *UpdateMaintenanceWindowTaskInput) SetTaskParameters(v map[string]*MaintenanceWindowTaskParameterValueExpression) *UpdateMaintenanceWindowTaskInput { - s.TaskParameters = v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *UpdateMaintenanceWindowTaskInput) SetWindowId(v string) *UpdateMaintenanceWindowTaskInput { - s.WindowId = &v - return s -} - -// SetWindowTaskId sets the WindowTaskId field's value. -func (s *UpdateMaintenanceWindowTaskInput) SetWindowTaskId(v string) *UpdateMaintenanceWindowTaskInput { - s.WindowTaskId = &v - return s -} - -type UpdateMaintenanceWindowTaskOutput struct { - _ struct{} `type:"structure"` - - // The updated task description. - Description *string `min:"1" type:"string" sensitive:"true"` - - // The updated logging information in Amazon S3. - // - // LoggingInfo has been deprecated. To specify an S3 bucket to contain logs, - // instead use the OutputS3BucketName and OutputS3KeyPrefix options in the TaskInvocationParameters - // structure. For information about how Systems Manager handles these options - // for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. - LoggingInfo *LoggingInfo `type:"structure"` - - // The updated MaxConcurrency value. - MaxConcurrency *string `min:"1" type:"string"` - - // The updated MaxErrors value. - MaxErrors *string `min:"1" type:"string"` - - // The updated task name. - Name *string `min:"3" type:"string"` - - // The updated priority value. - Priority *int64 `type:"integer"` - - // The ARN of the IAM service role to use to publish Amazon Simple Notification - // Service (Amazon SNS) notifications for maintenance window Run Command tasks. - ServiceRoleArn *string `type:"string"` - - // The updated target values. - Targets []*Target `type:"list"` - - // The updated task ARN value. - TaskArn *string `min:"1" type:"string"` - - // The updated parameter values. - TaskInvocationParameters *MaintenanceWindowTaskInvocationParameters `type:"structure"` - - // The updated parameter values. - // - // TaskParameters has been deprecated. To specify parameters to pass to a task - // when it runs, instead use the Parameters option in the TaskInvocationParameters - // structure. For information about how Systems Manager handles these options - // for the supported maintenance window task types, see MaintenanceWindowTaskInvocationParameters. - TaskParameters map[string]*MaintenanceWindowTaskParameterValueExpression `type:"map" sensitive:"true"` - - // The ID of the maintenance window that was updated. - WindowId *string `min:"20" type:"string"` - - // The task ID of the maintenance window that was updated. - WindowTaskId *string `min:"36" type:"string"` -} - -// String returns the string representation -func (s UpdateMaintenanceWindowTaskOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateMaintenanceWindowTaskOutput) GoString() string { - return s.String() -} - -// SetDescription sets the Description field's value. -func (s *UpdateMaintenanceWindowTaskOutput) SetDescription(v string) *UpdateMaintenanceWindowTaskOutput { - s.Description = &v - return s -} - -// SetLoggingInfo sets the LoggingInfo field's value. -func (s *UpdateMaintenanceWindowTaskOutput) SetLoggingInfo(v *LoggingInfo) *UpdateMaintenanceWindowTaskOutput { - s.LoggingInfo = v - return s -} - -// SetMaxConcurrency sets the MaxConcurrency field's value. -func (s *UpdateMaintenanceWindowTaskOutput) SetMaxConcurrency(v string) *UpdateMaintenanceWindowTaskOutput { - s.MaxConcurrency = &v - return s -} - -// SetMaxErrors sets the MaxErrors field's value. -func (s *UpdateMaintenanceWindowTaskOutput) SetMaxErrors(v string) *UpdateMaintenanceWindowTaskOutput { - s.MaxErrors = &v - return s -} - -// SetName sets the Name field's value. -func (s *UpdateMaintenanceWindowTaskOutput) SetName(v string) *UpdateMaintenanceWindowTaskOutput { - s.Name = &v - return s -} - -// SetPriority sets the Priority field's value. -func (s *UpdateMaintenanceWindowTaskOutput) SetPriority(v int64) *UpdateMaintenanceWindowTaskOutput { - s.Priority = &v - return s -} - -// SetServiceRoleArn sets the ServiceRoleArn field's value. -func (s *UpdateMaintenanceWindowTaskOutput) SetServiceRoleArn(v string) *UpdateMaintenanceWindowTaskOutput { - s.ServiceRoleArn = &v - return s -} - -// SetTargets sets the Targets field's value. -func (s *UpdateMaintenanceWindowTaskOutput) SetTargets(v []*Target) *UpdateMaintenanceWindowTaskOutput { - s.Targets = v - return s -} - -// SetTaskArn sets the TaskArn field's value. -func (s *UpdateMaintenanceWindowTaskOutput) SetTaskArn(v string) *UpdateMaintenanceWindowTaskOutput { - s.TaskArn = &v - return s -} - -// SetTaskInvocationParameters sets the TaskInvocationParameters field's value. -func (s *UpdateMaintenanceWindowTaskOutput) SetTaskInvocationParameters(v *MaintenanceWindowTaskInvocationParameters) *UpdateMaintenanceWindowTaskOutput { - s.TaskInvocationParameters = v - return s -} - -// SetTaskParameters sets the TaskParameters field's value. -func (s *UpdateMaintenanceWindowTaskOutput) SetTaskParameters(v map[string]*MaintenanceWindowTaskParameterValueExpression) *UpdateMaintenanceWindowTaskOutput { - s.TaskParameters = v - return s -} - -// SetWindowId sets the WindowId field's value. -func (s *UpdateMaintenanceWindowTaskOutput) SetWindowId(v string) *UpdateMaintenanceWindowTaskOutput { - s.WindowId = &v - return s -} - -// SetWindowTaskId sets the WindowTaskId field's value. -func (s *UpdateMaintenanceWindowTaskOutput) SetWindowTaskId(v string) *UpdateMaintenanceWindowTaskOutput { - s.WindowTaskId = &v - return s -} - -type UpdateManagedInstanceRoleInput struct { - _ struct{} `type:"structure"` - - // The IAM role you want to assign or change. - // - // IamRole is a required field - IamRole *string `type:"string" required:"true"` - - // The ID of the managed instance where you want to update the role. - // - // InstanceId is a required field - InstanceId *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s UpdateManagedInstanceRoleInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateManagedInstanceRoleInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *UpdateManagedInstanceRoleInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdateManagedInstanceRoleInput"} - if s.IamRole == nil { - invalidParams.Add(request.NewErrParamRequired("IamRole")) - } - if s.InstanceId == nil { - invalidParams.Add(request.NewErrParamRequired("InstanceId")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetIamRole sets the IamRole field's value. -func (s *UpdateManagedInstanceRoleInput) SetIamRole(v string) *UpdateManagedInstanceRoleInput { - s.IamRole = &v - return s -} - -// SetInstanceId sets the InstanceId field's value. -func (s *UpdateManagedInstanceRoleInput) SetInstanceId(v string) *UpdateManagedInstanceRoleInput { - s.InstanceId = &v - return s -} - -type UpdateManagedInstanceRoleOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s UpdateManagedInstanceRoleOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateManagedInstanceRoleOutput) GoString() string { - return s.String() -} - -type UpdateOpsItemInput struct { - _ struct{} `type:"structure"` - - // The time a runbook workflow ended. Currently reported only for the OpsItem - // type /aws/changerequest. - ActualEndTime *time.Time `type:"timestamp"` - - // The time a runbook workflow started. Currently reported only for the OpsItem - // type /aws/changerequest. - ActualStartTime *time.Time `type:"timestamp"` - - // Specify a new category for an OpsItem. - Category *string `min:"1" type:"string"` - - // Update the information about the OpsItem. Provide enough information so that - // users reading this OpsItem for the first time understand the issue. - Description *string `min:"1" type:"string"` - - // The Amazon Resource Name (ARN) of an SNS topic where notifications are sent - // when this OpsItem is edited or changed. - Notifications []*OpsItemNotification `type:"list"` - - // Add new keys or edit existing key-value pairs of the OperationalData map - // in the OpsItem object. - // - // Operational data is custom data that provides useful reference details about - // the OpsItem. For example, you can specify log files, error strings, license - // keys, troubleshooting tips, or other relevant data. You enter operational - // data as key-value pairs. The key has a maximum length of 128 characters. - // The value has a maximum size of 20 KB. - // - // Operational data keys can't begin with the following: amazon, aws, amzn, - // ssm, /amazon, /aws, /amzn, /ssm. - // - // You can choose to make the data searchable by other users in the account - // or you can restrict search access. Searchable data means that all users with - // access to the OpsItem Overview page (as provided by the DescribeOpsItems - // API action) can view and search on the specified data. Operational data that - // is not searchable is only viewable by users who have access to the OpsItem - // (as provided by the GetOpsItem API action). - // - // Use the /aws/resources key in OperationalData to specify a related resource - // in the request. Use the /aws/automations key in OperationalData to associate - // an Automation runbook with the OpsItem. To view AWS CLI example commands - // that use these keys, see Creating OpsItems manually (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-creating-OpsItems.html#OpsCenter-manually-create-OpsItems) - // in the AWS Systems Manager User Guide. - OperationalData map[string]*OpsItemDataValue `type:"map"` - - // Keys that you want to remove from the OperationalData map. - OperationalDataToDelete []*string `type:"list"` - - // The ID of the OpsItem. - // - // OpsItemId is a required field - OpsItemId *string `type:"string" required:"true"` - - // The time specified in a change request for a runbook workflow to end. Currently - // supported only for the OpsItem type /aws/changerequest. - PlannedEndTime *time.Time `type:"timestamp"` - - // The time specified in a change request for a runbook workflow to start. Currently - // supported only for the OpsItem type /aws/changerequest. - PlannedStartTime *time.Time `type:"timestamp"` - - // The importance of this OpsItem in relation to other OpsItems in the system. - Priority *int64 `min:"1" type:"integer"` - - // One or more OpsItems that share something in common with the current OpsItems. - // For example, related OpsItems can include OpsItems with similar error messages, - // impacted resources, or statuses for the impacted resource. - RelatedOpsItems []*RelatedOpsItem `type:"list"` - - // Specify a new severity for an OpsItem. - Severity *string `min:"1" type:"string"` - - // The OpsItem status. Status can be Open, In Progress, or Resolved. For more - // information, see Editing OpsItem details (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-working-with-OpsItems.html#OpsCenter-working-with-OpsItems-editing-details) - // in the AWS Systems Manager User Guide. - Status *string `type:"string" enum:"OpsItemStatus"` - - // A short heading that describes the nature of the OpsItem and the impacted - // resource. - Title *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s UpdateOpsItemInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateOpsItemInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *UpdateOpsItemInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdateOpsItemInput"} - if s.Category != nil && len(*s.Category) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Category", 1)) - } - if s.Description != nil && len(*s.Description) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Description", 1)) - } - if s.OpsItemId == nil { - invalidParams.Add(request.NewErrParamRequired("OpsItemId")) - } - if s.Priority != nil && *s.Priority < 1 { - invalidParams.Add(request.NewErrParamMinValue("Priority", 1)) - } - if s.Severity != nil && len(*s.Severity) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Severity", 1)) - } - if s.Title != nil && len(*s.Title) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Title", 1)) - } - if s.RelatedOpsItems != nil { - for i, v := range s.RelatedOpsItems { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RelatedOpsItems", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetActualEndTime sets the ActualEndTime field's value. -func (s *UpdateOpsItemInput) SetActualEndTime(v time.Time) *UpdateOpsItemInput { - s.ActualEndTime = &v - return s -} - -// SetActualStartTime sets the ActualStartTime field's value. -func (s *UpdateOpsItemInput) SetActualStartTime(v time.Time) *UpdateOpsItemInput { - s.ActualStartTime = &v - return s -} - -// SetCategory sets the Category field's value. -func (s *UpdateOpsItemInput) SetCategory(v string) *UpdateOpsItemInput { - s.Category = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *UpdateOpsItemInput) SetDescription(v string) *UpdateOpsItemInput { - s.Description = &v - return s -} - -// SetNotifications sets the Notifications field's value. -func (s *UpdateOpsItemInput) SetNotifications(v []*OpsItemNotification) *UpdateOpsItemInput { - s.Notifications = v - return s -} - -// SetOperationalData sets the OperationalData field's value. -func (s *UpdateOpsItemInput) SetOperationalData(v map[string]*OpsItemDataValue) *UpdateOpsItemInput { - s.OperationalData = v - return s -} - -// SetOperationalDataToDelete sets the OperationalDataToDelete field's value. -func (s *UpdateOpsItemInput) SetOperationalDataToDelete(v []*string) *UpdateOpsItemInput { - s.OperationalDataToDelete = v - return s -} - -// SetOpsItemId sets the OpsItemId field's value. -func (s *UpdateOpsItemInput) SetOpsItemId(v string) *UpdateOpsItemInput { - s.OpsItemId = &v - return s -} - -// SetPlannedEndTime sets the PlannedEndTime field's value. -func (s *UpdateOpsItemInput) SetPlannedEndTime(v time.Time) *UpdateOpsItemInput { - s.PlannedEndTime = &v - return s -} - -// SetPlannedStartTime sets the PlannedStartTime field's value. -func (s *UpdateOpsItemInput) SetPlannedStartTime(v time.Time) *UpdateOpsItemInput { - s.PlannedStartTime = &v - return s -} - -// SetPriority sets the Priority field's value. -func (s *UpdateOpsItemInput) SetPriority(v int64) *UpdateOpsItemInput { - s.Priority = &v - return s -} - -// SetRelatedOpsItems sets the RelatedOpsItems field's value. -func (s *UpdateOpsItemInput) SetRelatedOpsItems(v []*RelatedOpsItem) *UpdateOpsItemInput { - s.RelatedOpsItems = v - return s -} - -// SetSeverity sets the Severity field's value. -func (s *UpdateOpsItemInput) SetSeverity(v string) *UpdateOpsItemInput { - s.Severity = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *UpdateOpsItemInput) SetStatus(v string) *UpdateOpsItemInput { - s.Status = &v - return s -} - -// SetTitle sets the Title field's value. -func (s *UpdateOpsItemInput) SetTitle(v string) *UpdateOpsItemInput { - s.Title = &v - return s -} - -type UpdateOpsItemOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s UpdateOpsItemOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateOpsItemOutput) GoString() string { - return s.String() -} - -type UpdateOpsMetadataInput struct { - _ struct{} `type:"structure"` - - // The metadata keys to delete from the OpsMetadata object. - KeysToDelete []*string `min:"1" type:"list"` - - // Metadata to add to an OpsMetadata object. - MetadataToUpdate map[string]*MetadataValue `min:"1" type:"map"` - - // The Amazon Resoure Name (ARN) of the OpsMetadata Object to update. - // - // OpsMetadataArn is a required field - OpsMetadataArn *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s UpdateOpsMetadataInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateOpsMetadataInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *UpdateOpsMetadataInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdateOpsMetadataInput"} - if s.KeysToDelete != nil && len(s.KeysToDelete) < 1 { - invalidParams.Add(request.NewErrParamMinLen("KeysToDelete", 1)) - } - if s.MetadataToUpdate != nil && len(s.MetadataToUpdate) < 1 { - invalidParams.Add(request.NewErrParamMinLen("MetadataToUpdate", 1)) - } - if s.OpsMetadataArn == nil { - invalidParams.Add(request.NewErrParamRequired("OpsMetadataArn")) - } - if s.OpsMetadataArn != nil && len(*s.OpsMetadataArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("OpsMetadataArn", 1)) - } - if s.MetadataToUpdate != nil { - for i, v := range s.MetadataToUpdate { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetadataToUpdate", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKeysToDelete sets the KeysToDelete field's value. -func (s *UpdateOpsMetadataInput) SetKeysToDelete(v []*string) *UpdateOpsMetadataInput { - s.KeysToDelete = v - return s -} - -// SetMetadataToUpdate sets the MetadataToUpdate field's value. -func (s *UpdateOpsMetadataInput) SetMetadataToUpdate(v map[string]*MetadataValue) *UpdateOpsMetadataInput { - s.MetadataToUpdate = v - return s -} - -// SetOpsMetadataArn sets the OpsMetadataArn field's value. -func (s *UpdateOpsMetadataInput) SetOpsMetadataArn(v string) *UpdateOpsMetadataInput { - s.OpsMetadataArn = &v - return s -} - -type UpdateOpsMetadataOutput struct { - _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) of the OpsMetadata Object that was updated. - OpsMetadataArn *string `min:"1" type:"string"` -} - -// String returns the string representation -func (s UpdateOpsMetadataOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateOpsMetadataOutput) GoString() string { - return s.String() -} - -// SetOpsMetadataArn sets the OpsMetadataArn field's value. -func (s *UpdateOpsMetadataOutput) SetOpsMetadataArn(v string) *UpdateOpsMetadataOutput { - s.OpsMetadataArn = &v - return s -} - -type UpdatePatchBaselineInput struct { - _ struct{} `type:"structure"` - - // A set of rules used to include patches in the baseline. - ApprovalRules *PatchRuleGroup `type:"structure"` - - // A list of explicitly approved patches for the baseline. - // - // For information about accepted formats for lists of approved patches and - // rejected patches, see About package name formats for approved and rejected - // patch lists (https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html) - // in the AWS Systems Manager User Guide. - ApprovedPatches []*string `type:"list"` - - // Assigns a new compliance severity level to an existing patch baseline. - ApprovedPatchesComplianceLevel *string `type:"string" enum:"PatchComplianceLevel"` - - // Indicates whether the list of approved patches includes non-security updates - // that should be applied to the instances. The default value is 'false'. Applies - // to Linux instances only. - ApprovedPatchesEnableNonSecurity *bool `type:"boolean"` - - // The ID of the patch baseline to update. - // - // BaselineId is a required field - BaselineId *string `min:"20" type:"string" required:"true"` - - // A description of the patch baseline. - Description *string `min:"1" type:"string"` - - // A set of global filters used to include patches in the baseline. - GlobalFilters *PatchFilterGroup `type:"structure"` - - // The name of the patch baseline. - Name *string `min:"3" type:"string"` - - // A list of explicitly rejected patches for the baseline. - // - // For information about accepted formats for lists of approved patches and - // rejected patches, see About package name formats for approved and rejected - // patch lists (https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html) - // in the AWS Systems Manager User Guide. - RejectedPatches []*string `type:"list"` - - // The action for Patch Manager to take on patches included in the RejectedPackages - // list. - // - // * ALLOW_AS_DEPENDENCY: A package in the Rejected patches list is installed - // only if it is a dependency of another package. It is considered compliant - // with the patch baseline, and its status is reported as InstalledOther. - // This is the default action if no option is specified. - // - // * BLOCK: Packages in the RejectedPatches list, and packages that include - // them as dependencies, are not installed under any circumstances. If a - // package was installed before it was added to the Rejected patches list, - // it is considered non-compliant with the patch baseline, and its status - // is reported as InstalledRejected. - RejectedPatchesAction *string `type:"string" enum:"PatchAction"` - - // If True, then all fields that are required by the CreatePatchBaseline action - // are also required for this API request. Optional fields that are not specified - // are set to null. - Replace *bool `type:"boolean"` - - // Information about the patches to use to update the instances, including target - // operating systems and source repositories. Applies to Linux instances only. - Sources []*PatchSource `type:"list"` -} - -// String returns the string representation -func (s UpdatePatchBaselineInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdatePatchBaselineInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *UpdatePatchBaselineInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdatePatchBaselineInput"} - if s.BaselineId == nil { - invalidParams.Add(request.NewErrParamRequired("BaselineId")) - } - if s.BaselineId != nil && len(*s.BaselineId) < 20 { - invalidParams.Add(request.NewErrParamMinLen("BaselineId", 20)) - } - if s.Description != nil && len(*s.Description) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Description", 1)) - } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) - } - if s.ApprovalRules != nil { - if err := s.ApprovalRules.Validate(); err != nil { - invalidParams.AddNested("ApprovalRules", err.(request.ErrInvalidParams)) - } - } - if s.GlobalFilters != nil { - if err := s.GlobalFilters.Validate(); err != nil { - invalidParams.AddNested("GlobalFilters", err.(request.ErrInvalidParams)) - } - } - if s.Sources != nil { - for i, v := range s.Sources { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Sources", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetApprovalRules sets the ApprovalRules field's value. -func (s *UpdatePatchBaselineInput) SetApprovalRules(v *PatchRuleGroup) *UpdatePatchBaselineInput { - s.ApprovalRules = v - return s -} - -// SetApprovedPatches sets the ApprovedPatches field's value. -func (s *UpdatePatchBaselineInput) SetApprovedPatches(v []*string) *UpdatePatchBaselineInput { - s.ApprovedPatches = v - return s -} - -// SetApprovedPatchesComplianceLevel sets the ApprovedPatchesComplianceLevel field's value. -func (s *UpdatePatchBaselineInput) SetApprovedPatchesComplianceLevel(v string) *UpdatePatchBaselineInput { - s.ApprovedPatchesComplianceLevel = &v - return s -} - -// SetApprovedPatchesEnableNonSecurity sets the ApprovedPatchesEnableNonSecurity field's value. -func (s *UpdatePatchBaselineInput) SetApprovedPatchesEnableNonSecurity(v bool) *UpdatePatchBaselineInput { - s.ApprovedPatchesEnableNonSecurity = &v - return s -} - -// SetBaselineId sets the BaselineId field's value. -func (s *UpdatePatchBaselineInput) SetBaselineId(v string) *UpdatePatchBaselineInput { - s.BaselineId = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *UpdatePatchBaselineInput) SetDescription(v string) *UpdatePatchBaselineInput { - s.Description = &v - return s -} - -// SetGlobalFilters sets the GlobalFilters field's value. -func (s *UpdatePatchBaselineInput) SetGlobalFilters(v *PatchFilterGroup) *UpdatePatchBaselineInput { - s.GlobalFilters = v - return s -} - -// SetName sets the Name field's value. -func (s *UpdatePatchBaselineInput) SetName(v string) *UpdatePatchBaselineInput { - s.Name = &v - return s -} - -// SetRejectedPatches sets the RejectedPatches field's value. -func (s *UpdatePatchBaselineInput) SetRejectedPatches(v []*string) *UpdatePatchBaselineInput { - s.RejectedPatches = v - return s -} - -// SetRejectedPatchesAction sets the RejectedPatchesAction field's value. -func (s *UpdatePatchBaselineInput) SetRejectedPatchesAction(v string) *UpdatePatchBaselineInput { - s.RejectedPatchesAction = &v - return s -} - -// SetReplace sets the Replace field's value. -func (s *UpdatePatchBaselineInput) SetReplace(v bool) *UpdatePatchBaselineInput { - s.Replace = &v - return s -} - -// SetSources sets the Sources field's value. -func (s *UpdatePatchBaselineInput) SetSources(v []*PatchSource) *UpdatePatchBaselineInput { - s.Sources = v - return s -} - -type UpdatePatchBaselineOutput struct { - _ struct{} `type:"structure"` - - // A set of rules used to include patches in the baseline. - ApprovalRules *PatchRuleGroup `type:"structure"` - - // A list of explicitly approved patches for the baseline. - ApprovedPatches []*string `type:"list"` - - // The compliance severity level assigned to the patch baseline after the update - // completed. - ApprovedPatchesComplianceLevel *string `type:"string" enum:"PatchComplianceLevel"` - - // Indicates whether the list of approved patches includes non-security updates - // that should be applied to the instances. The default value is 'false'. Applies - // to Linux instances only. - ApprovedPatchesEnableNonSecurity *bool `type:"boolean"` - - // The ID of the deleted patch baseline. - BaselineId *string `min:"20" type:"string"` - - // The date when the patch baseline was created. - CreatedDate *time.Time `type:"timestamp"` - - // A description of the Patch Baseline. - Description *string `min:"1" type:"string"` - - // A set of global filters used to exclude patches from the baseline. - GlobalFilters *PatchFilterGroup `type:"structure"` - - // The date when the patch baseline was last modified. - ModifiedDate *time.Time `type:"timestamp"` - - // The name of the patch baseline. - Name *string `min:"3" type:"string"` - - // The operating system rule used by the updated patch baseline. - OperatingSystem *string `type:"string" enum:"OperatingSystem"` - - // A list of explicitly rejected patches for the baseline. - RejectedPatches []*string `type:"list"` - - // The action specified to take on patches included in the RejectedPatches list. - // A patch can be allowed only if it is a dependency of another package, or - // blocked entirely along with packages that include it as a dependency. - RejectedPatchesAction *string `type:"string" enum:"PatchAction"` - - // Information about the patches to use to update the instances, including target - // operating systems and source repositories. Applies to Linux instances only. - Sources []*PatchSource `type:"list"` -} - -// String returns the string representation -func (s UpdatePatchBaselineOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdatePatchBaselineOutput) GoString() string { - return s.String() -} - -// SetApprovalRules sets the ApprovalRules field's value. -func (s *UpdatePatchBaselineOutput) SetApprovalRules(v *PatchRuleGroup) *UpdatePatchBaselineOutput { - s.ApprovalRules = v - return s -} - -// SetApprovedPatches sets the ApprovedPatches field's value. -func (s *UpdatePatchBaselineOutput) SetApprovedPatches(v []*string) *UpdatePatchBaselineOutput { - s.ApprovedPatches = v - return s -} - -// SetApprovedPatchesComplianceLevel sets the ApprovedPatchesComplianceLevel field's value. -func (s *UpdatePatchBaselineOutput) SetApprovedPatchesComplianceLevel(v string) *UpdatePatchBaselineOutput { - s.ApprovedPatchesComplianceLevel = &v - return s -} - -// SetApprovedPatchesEnableNonSecurity sets the ApprovedPatchesEnableNonSecurity field's value. -func (s *UpdatePatchBaselineOutput) SetApprovedPatchesEnableNonSecurity(v bool) *UpdatePatchBaselineOutput { - s.ApprovedPatchesEnableNonSecurity = &v - return s -} - -// SetBaselineId sets the BaselineId field's value. -func (s *UpdatePatchBaselineOutput) SetBaselineId(v string) *UpdatePatchBaselineOutput { - s.BaselineId = &v - return s -} - -// SetCreatedDate sets the CreatedDate field's value. -func (s *UpdatePatchBaselineOutput) SetCreatedDate(v time.Time) *UpdatePatchBaselineOutput { - s.CreatedDate = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *UpdatePatchBaselineOutput) SetDescription(v string) *UpdatePatchBaselineOutput { - s.Description = &v - return s -} - -// SetGlobalFilters sets the GlobalFilters field's value. -func (s *UpdatePatchBaselineOutput) SetGlobalFilters(v *PatchFilterGroup) *UpdatePatchBaselineOutput { - s.GlobalFilters = v - return s -} - -// SetModifiedDate sets the ModifiedDate field's value. -func (s *UpdatePatchBaselineOutput) SetModifiedDate(v time.Time) *UpdatePatchBaselineOutput { - s.ModifiedDate = &v - return s -} - -// SetName sets the Name field's value. -func (s *UpdatePatchBaselineOutput) SetName(v string) *UpdatePatchBaselineOutput { - s.Name = &v - return s -} - -// SetOperatingSystem sets the OperatingSystem field's value. -func (s *UpdatePatchBaselineOutput) SetOperatingSystem(v string) *UpdatePatchBaselineOutput { - s.OperatingSystem = &v - return s -} - -// SetRejectedPatches sets the RejectedPatches field's value. -func (s *UpdatePatchBaselineOutput) SetRejectedPatches(v []*string) *UpdatePatchBaselineOutput { - s.RejectedPatches = v - return s -} - -// SetRejectedPatchesAction sets the RejectedPatchesAction field's value. -func (s *UpdatePatchBaselineOutput) SetRejectedPatchesAction(v string) *UpdatePatchBaselineOutput { - s.RejectedPatchesAction = &v - return s -} - -// SetSources sets the Sources field's value. -func (s *UpdatePatchBaselineOutput) SetSources(v []*PatchSource) *UpdatePatchBaselineOutput { - s.Sources = v - return s -} - -type UpdateResourceDataSyncInput struct { - _ struct{} `type:"structure"` - - // The name of the resource data sync you want to update. - // - // SyncName is a required field - SyncName *string `min:"1" type:"string" required:"true"` - - // Specify information about the data sources to synchronize. - // - // SyncSource is a required field - SyncSource *ResourceDataSyncSource `type:"structure" required:"true"` - - // The type of resource data sync. The supported SyncType is SyncFromSource. - // - // SyncType is a required field - SyncType *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s UpdateResourceDataSyncInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateResourceDataSyncInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *UpdateResourceDataSyncInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdateResourceDataSyncInput"} - if s.SyncName == nil { - invalidParams.Add(request.NewErrParamRequired("SyncName")) - } - if s.SyncName != nil && len(*s.SyncName) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SyncName", 1)) - } - if s.SyncSource == nil { - invalidParams.Add(request.NewErrParamRequired("SyncSource")) - } - if s.SyncType == nil { - invalidParams.Add(request.NewErrParamRequired("SyncType")) - } - if s.SyncType != nil && len(*s.SyncType) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SyncType", 1)) - } - if s.SyncSource != nil { - if err := s.SyncSource.Validate(); err != nil { - invalidParams.AddNested("SyncSource", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetSyncName sets the SyncName field's value. -func (s *UpdateResourceDataSyncInput) SetSyncName(v string) *UpdateResourceDataSyncInput { - s.SyncName = &v - return s -} - -// SetSyncSource sets the SyncSource field's value. -func (s *UpdateResourceDataSyncInput) SetSyncSource(v *ResourceDataSyncSource) *UpdateResourceDataSyncInput { - s.SyncSource = v - return s -} - -// SetSyncType sets the SyncType field's value. -func (s *UpdateResourceDataSyncInput) SetSyncType(v string) *UpdateResourceDataSyncInput { - s.SyncType = &v - return s -} - -type UpdateResourceDataSyncOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s UpdateResourceDataSyncOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateResourceDataSyncOutput) GoString() string { - return s.String() -} - -// The request body of the UpdateServiceSetting API action. -type UpdateServiceSettingInput struct { - _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) of the service setting to reset. For example, - // arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/high-throughput-enabled. - // The setting ID can be one of the following. - // - // * /ssm/automation/customer-script-log-destination - // - // * /ssm/automation/customer-script-log-group-name - // - // * /ssm/parameter-store/default-parameter-tier - // - // * /ssm/parameter-store/high-throughput-enabled - // - // * /ssm/managed-instance/activation-tier - // - // SettingId is a required field - SettingId *string `min:"1" type:"string" required:"true"` - - // The new value to specify for the service setting. For the /ssm/parameter-store/default-parameter-tier - // setting ID, the setting value can be one of the following. - // - // * Standard - // - // * Advanced - // - // * Intelligent-Tiering - // - // For the /ssm/parameter-store/high-throughput-enabled, and /ssm/managed-instance/activation-tier - // setting IDs, the setting value can be true or false. - // - // For the /ssm/automation/customer-script-log-destination setting ID, the setting - // value can be CloudWatch. - // - // For the /ssm/automation/customer-script-log-group-name setting ID, the setting - // value can be the name of a CloudWatch Logs log group. - // - // SettingValue is a required field - SettingValue *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s UpdateServiceSettingInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateServiceSettingInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *UpdateServiceSettingInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "UpdateServiceSettingInput"} - if s.SettingId == nil { - invalidParams.Add(request.NewErrParamRequired("SettingId")) - } - if s.SettingId != nil && len(*s.SettingId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SettingId", 1)) - } - if s.SettingValue == nil { - invalidParams.Add(request.NewErrParamRequired("SettingValue")) - } - if s.SettingValue != nil && len(*s.SettingValue) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SettingValue", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetSettingId sets the SettingId field's value. -func (s *UpdateServiceSettingInput) SetSettingId(v string) *UpdateServiceSettingInput { - s.SettingId = &v - return s -} - -// SetSettingValue sets the SettingValue field's value. -func (s *UpdateServiceSettingInput) SetSettingValue(v string) *UpdateServiceSettingInput { - s.SettingValue = &v - return s -} - -// The result body of the UpdateServiceSetting API action. -type UpdateServiceSettingOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s UpdateServiceSettingOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UpdateServiceSettingOutput) GoString() string { - return s.String() -} - -const ( - // AssociationComplianceSeverityCritical is a AssociationComplianceSeverity enum value - AssociationComplianceSeverityCritical = "CRITICAL" - - // AssociationComplianceSeverityHigh is a AssociationComplianceSeverity enum value - AssociationComplianceSeverityHigh = "HIGH" - - // AssociationComplianceSeverityMedium is a AssociationComplianceSeverity enum value - AssociationComplianceSeverityMedium = "MEDIUM" - - // AssociationComplianceSeverityLow is a AssociationComplianceSeverity enum value - AssociationComplianceSeverityLow = "LOW" - - // AssociationComplianceSeverityUnspecified is a AssociationComplianceSeverity enum value - AssociationComplianceSeverityUnspecified = "UNSPECIFIED" -) - -// AssociationComplianceSeverity_Values returns all elements of the AssociationComplianceSeverity enum -func AssociationComplianceSeverity_Values() []string { - return []string{ - AssociationComplianceSeverityCritical, - AssociationComplianceSeverityHigh, - AssociationComplianceSeverityMedium, - AssociationComplianceSeverityLow, - AssociationComplianceSeverityUnspecified, - } -} - -const ( - // AssociationExecutionFilterKeyExecutionId is a AssociationExecutionFilterKey enum value - AssociationExecutionFilterKeyExecutionId = "ExecutionId" - - // AssociationExecutionFilterKeyStatus is a AssociationExecutionFilterKey enum value - AssociationExecutionFilterKeyStatus = "Status" - - // AssociationExecutionFilterKeyCreatedTime is a AssociationExecutionFilterKey enum value - AssociationExecutionFilterKeyCreatedTime = "CreatedTime" -) - -// AssociationExecutionFilterKey_Values returns all elements of the AssociationExecutionFilterKey enum -func AssociationExecutionFilterKey_Values() []string { - return []string{ - AssociationExecutionFilterKeyExecutionId, - AssociationExecutionFilterKeyStatus, - AssociationExecutionFilterKeyCreatedTime, - } -} - -const ( - // AssociationExecutionTargetsFilterKeyStatus is a AssociationExecutionTargetsFilterKey enum value - AssociationExecutionTargetsFilterKeyStatus = "Status" - - // AssociationExecutionTargetsFilterKeyResourceId is a AssociationExecutionTargetsFilterKey enum value - AssociationExecutionTargetsFilterKeyResourceId = "ResourceId" - - // AssociationExecutionTargetsFilterKeyResourceType is a AssociationExecutionTargetsFilterKey enum value - AssociationExecutionTargetsFilterKeyResourceType = "ResourceType" -) - -// AssociationExecutionTargetsFilterKey_Values returns all elements of the AssociationExecutionTargetsFilterKey enum -func AssociationExecutionTargetsFilterKey_Values() []string { - return []string{ - AssociationExecutionTargetsFilterKeyStatus, - AssociationExecutionTargetsFilterKeyResourceId, - AssociationExecutionTargetsFilterKeyResourceType, - } -} - -const ( - // AssociationFilterKeyInstanceId is a AssociationFilterKey enum value - AssociationFilterKeyInstanceId = "InstanceId" - - // AssociationFilterKeyName is a AssociationFilterKey enum value - AssociationFilterKeyName = "Name" - - // AssociationFilterKeyAssociationId is a AssociationFilterKey enum value - AssociationFilterKeyAssociationId = "AssociationId" - - // AssociationFilterKeyAssociationStatusName is a AssociationFilterKey enum value - AssociationFilterKeyAssociationStatusName = "AssociationStatusName" - - // AssociationFilterKeyLastExecutedBefore is a AssociationFilterKey enum value - AssociationFilterKeyLastExecutedBefore = "LastExecutedBefore" - - // AssociationFilterKeyLastExecutedAfter is a AssociationFilterKey enum value - AssociationFilterKeyLastExecutedAfter = "LastExecutedAfter" - - // AssociationFilterKeyAssociationName is a AssociationFilterKey enum value - AssociationFilterKeyAssociationName = "AssociationName" - - // AssociationFilterKeyResourceGroupName is a AssociationFilterKey enum value - AssociationFilterKeyResourceGroupName = "ResourceGroupName" -) - -// AssociationFilterKey_Values returns all elements of the AssociationFilterKey enum -func AssociationFilterKey_Values() []string { - return []string{ - AssociationFilterKeyInstanceId, - AssociationFilterKeyName, - AssociationFilterKeyAssociationId, - AssociationFilterKeyAssociationStatusName, - AssociationFilterKeyLastExecutedBefore, - AssociationFilterKeyLastExecutedAfter, - AssociationFilterKeyAssociationName, - AssociationFilterKeyResourceGroupName, - } -} - -const ( - // AssociationFilterOperatorTypeEqual is a AssociationFilterOperatorType enum value - AssociationFilterOperatorTypeEqual = "EQUAL" - - // AssociationFilterOperatorTypeLessThan is a AssociationFilterOperatorType enum value - AssociationFilterOperatorTypeLessThan = "LESS_THAN" - - // AssociationFilterOperatorTypeGreaterThan is a AssociationFilterOperatorType enum value - AssociationFilterOperatorTypeGreaterThan = "GREATER_THAN" -) - -// AssociationFilterOperatorType_Values returns all elements of the AssociationFilterOperatorType enum -func AssociationFilterOperatorType_Values() []string { - return []string{ - AssociationFilterOperatorTypeEqual, - AssociationFilterOperatorTypeLessThan, - AssociationFilterOperatorTypeGreaterThan, - } -} - -const ( - // AssociationStatusNamePending is a AssociationStatusName enum value - AssociationStatusNamePending = "Pending" - - // AssociationStatusNameSuccess is a AssociationStatusName enum value - AssociationStatusNameSuccess = "Success" - - // AssociationStatusNameFailed is a AssociationStatusName enum value - AssociationStatusNameFailed = "Failed" -) - -// AssociationStatusName_Values returns all elements of the AssociationStatusName enum -func AssociationStatusName_Values() []string { - return []string{ - AssociationStatusNamePending, - AssociationStatusNameSuccess, - AssociationStatusNameFailed, - } -} - -const ( - // AssociationSyncComplianceAuto is a AssociationSyncCompliance enum value - AssociationSyncComplianceAuto = "AUTO" - - // AssociationSyncComplianceManual is a AssociationSyncCompliance enum value - AssociationSyncComplianceManual = "MANUAL" -) - -// AssociationSyncCompliance_Values returns all elements of the AssociationSyncCompliance enum -func AssociationSyncCompliance_Values() []string { - return []string{ - AssociationSyncComplianceAuto, - AssociationSyncComplianceManual, - } -} - -const ( - // AttachmentHashTypeSha256 is a AttachmentHashType enum value - AttachmentHashTypeSha256 = "Sha256" -) - -// AttachmentHashType_Values returns all elements of the AttachmentHashType enum -func AttachmentHashType_Values() []string { - return []string{ - AttachmentHashTypeSha256, - } -} - -const ( - // AttachmentsSourceKeySourceUrl is a AttachmentsSourceKey enum value - AttachmentsSourceKeySourceUrl = "SourceUrl" - - // AttachmentsSourceKeyS3fileUrl is a AttachmentsSourceKey enum value - AttachmentsSourceKeyS3fileUrl = "S3FileUrl" - - // AttachmentsSourceKeyAttachmentReference is a AttachmentsSourceKey enum value - AttachmentsSourceKeyAttachmentReference = "AttachmentReference" -) - -// AttachmentsSourceKey_Values returns all elements of the AttachmentsSourceKey enum -func AttachmentsSourceKey_Values() []string { - return []string{ - AttachmentsSourceKeySourceUrl, - AttachmentsSourceKeyS3fileUrl, - AttachmentsSourceKeyAttachmentReference, - } -} - -const ( - // AutomationExecutionFilterKeyDocumentNamePrefix is a AutomationExecutionFilterKey enum value - AutomationExecutionFilterKeyDocumentNamePrefix = "DocumentNamePrefix" - - // AutomationExecutionFilterKeyExecutionStatus is a AutomationExecutionFilterKey enum value - AutomationExecutionFilterKeyExecutionStatus = "ExecutionStatus" - - // AutomationExecutionFilterKeyExecutionId is a AutomationExecutionFilterKey enum value - AutomationExecutionFilterKeyExecutionId = "ExecutionId" - - // AutomationExecutionFilterKeyParentExecutionId is a AutomationExecutionFilterKey enum value - AutomationExecutionFilterKeyParentExecutionId = "ParentExecutionId" - - // AutomationExecutionFilterKeyCurrentAction is a AutomationExecutionFilterKey enum value - AutomationExecutionFilterKeyCurrentAction = "CurrentAction" - - // AutomationExecutionFilterKeyStartTimeBefore is a AutomationExecutionFilterKey enum value - AutomationExecutionFilterKeyStartTimeBefore = "StartTimeBefore" - - // AutomationExecutionFilterKeyStartTimeAfter is a AutomationExecutionFilterKey enum value - AutomationExecutionFilterKeyStartTimeAfter = "StartTimeAfter" - - // AutomationExecutionFilterKeyAutomationType is a AutomationExecutionFilterKey enum value - AutomationExecutionFilterKeyAutomationType = "AutomationType" - - // AutomationExecutionFilterKeyTagKey is a AutomationExecutionFilterKey enum value - AutomationExecutionFilterKeyTagKey = "TagKey" - - // AutomationExecutionFilterKeyTargetResourceGroup is a AutomationExecutionFilterKey enum value - AutomationExecutionFilterKeyTargetResourceGroup = "TargetResourceGroup" - - // AutomationExecutionFilterKeyAutomationSubtype is a AutomationExecutionFilterKey enum value - AutomationExecutionFilterKeyAutomationSubtype = "AutomationSubtype" - - // AutomationExecutionFilterKeyOpsItemId is a AutomationExecutionFilterKey enum value - AutomationExecutionFilterKeyOpsItemId = "OpsItemId" -) - -// AutomationExecutionFilterKey_Values returns all elements of the AutomationExecutionFilterKey enum -func AutomationExecutionFilterKey_Values() []string { - return []string{ - AutomationExecutionFilterKeyDocumentNamePrefix, - AutomationExecutionFilterKeyExecutionStatus, - AutomationExecutionFilterKeyExecutionId, - AutomationExecutionFilterKeyParentExecutionId, - AutomationExecutionFilterKeyCurrentAction, - AutomationExecutionFilterKeyStartTimeBefore, - AutomationExecutionFilterKeyStartTimeAfter, - AutomationExecutionFilterKeyAutomationType, - AutomationExecutionFilterKeyTagKey, - AutomationExecutionFilterKeyTargetResourceGroup, - AutomationExecutionFilterKeyAutomationSubtype, - AutomationExecutionFilterKeyOpsItemId, - } -} - -const ( - // AutomationExecutionStatusPending is a AutomationExecutionStatus enum value - AutomationExecutionStatusPending = "Pending" - - // AutomationExecutionStatusInProgress is a AutomationExecutionStatus enum value - AutomationExecutionStatusInProgress = "InProgress" - - // AutomationExecutionStatusWaiting is a AutomationExecutionStatus enum value - AutomationExecutionStatusWaiting = "Waiting" - - // AutomationExecutionStatusSuccess is a AutomationExecutionStatus enum value - AutomationExecutionStatusSuccess = "Success" - - // AutomationExecutionStatusTimedOut is a AutomationExecutionStatus enum value - AutomationExecutionStatusTimedOut = "TimedOut" - - // AutomationExecutionStatusCancelling is a AutomationExecutionStatus enum value - AutomationExecutionStatusCancelling = "Cancelling" - - // AutomationExecutionStatusCancelled is a AutomationExecutionStatus enum value - AutomationExecutionStatusCancelled = "Cancelled" - - // AutomationExecutionStatusFailed is a AutomationExecutionStatus enum value - AutomationExecutionStatusFailed = "Failed" - - // AutomationExecutionStatusPendingApproval is a AutomationExecutionStatus enum value - AutomationExecutionStatusPendingApproval = "PendingApproval" - - // AutomationExecutionStatusApproved is a AutomationExecutionStatus enum value - AutomationExecutionStatusApproved = "Approved" - - // AutomationExecutionStatusRejected is a AutomationExecutionStatus enum value - AutomationExecutionStatusRejected = "Rejected" - - // AutomationExecutionStatusScheduled is a AutomationExecutionStatus enum value - AutomationExecutionStatusScheduled = "Scheduled" - - // AutomationExecutionStatusRunbookInProgress is a AutomationExecutionStatus enum value - AutomationExecutionStatusRunbookInProgress = "RunbookInProgress" - - // AutomationExecutionStatusPendingChangeCalendarOverride is a AutomationExecutionStatus enum value - AutomationExecutionStatusPendingChangeCalendarOverride = "PendingChangeCalendarOverride" - - // AutomationExecutionStatusChangeCalendarOverrideApproved is a AutomationExecutionStatus enum value - AutomationExecutionStatusChangeCalendarOverrideApproved = "ChangeCalendarOverrideApproved" - - // AutomationExecutionStatusChangeCalendarOverrideRejected is a AutomationExecutionStatus enum value - AutomationExecutionStatusChangeCalendarOverrideRejected = "ChangeCalendarOverrideRejected" - - // AutomationExecutionStatusCompletedWithSuccess is a AutomationExecutionStatus enum value - AutomationExecutionStatusCompletedWithSuccess = "CompletedWithSuccess" - - // AutomationExecutionStatusCompletedWithFailure is a AutomationExecutionStatus enum value - AutomationExecutionStatusCompletedWithFailure = "CompletedWithFailure" -) - -// AutomationExecutionStatus_Values returns all elements of the AutomationExecutionStatus enum -func AutomationExecutionStatus_Values() []string { - return []string{ - AutomationExecutionStatusPending, - AutomationExecutionStatusInProgress, - AutomationExecutionStatusWaiting, - AutomationExecutionStatusSuccess, - AutomationExecutionStatusTimedOut, - AutomationExecutionStatusCancelling, - AutomationExecutionStatusCancelled, - AutomationExecutionStatusFailed, - AutomationExecutionStatusPendingApproval, - AutomationExecutionStatusApproved, - AutomationExecutionStatusRejected, - AutomationExecutionStatusScheduled, - AutomationExecutionStatusRunbookInProgress, - AutomationExecutionStatusPendingChangeCalendarOverride, - AutomationExecutionStatusChangeCalendarOverrideApproved, - AutomationExecutionStatusChangeCalendarOverrideRejected, - AutomationExecutionStatusCompletedWithSuccess, - AutomationExecutionStatusCompletedWithFailure, - } -} - -const ( - // AutomationSubtypeChangeRequest is a AutomationSubtype enum value - AutomationSubtypeChangeRequest = "ChangeRequest" -) - -// AutomationSubtype_Values returns all elements of the AutomationSubtype enum -func AutomationSubtype_Values() []string { - return []string{ - AutomationSubtypeChangeRequest, - } -} - -const ( - // AutomationTypeCrossAccount is a AutomationType enum value - AutomationTypeCrossAccount = "CrossAccount" - - // AutomationTypeLocal is a AutomationType enum value - AutomationTypeLocal = "Local" -) - -// AutomationType_Values returns all elements of the AutomationType enum -func AutomationType_Values() []string { - return []string{ - AutomationTypeCrossAccount, - AutomationTypeLocal, - } -} - -const ( - // CalendarStateOpen is a CalendarState enum value - CalendarStateOpen = "OPEN" - - // CalendarStateClosed is a CalendarState enum value - CalendarStateClosed = "CLOSED" -) - -// CalendarState_Values returns all elements of the CalendarState enum -func CalendarState_Values() []string { - return []string{ - CalendarStateOpen, - CalendarStateClosed, - } -} - -const ( - // CommandFilterKeyInvokedAfter is a CommandFilterKey enum value - CommandFilterKeyInvokedAfter = "InvokedAfter" - - // CommandFilterKeyInvokedBefore is a CommandFilterKey enum value - CommandFilterKeyInvokedBefore = "InvokedBefore" - - // CommandFilterKeyStatus is a CommandFilterKey enum value - CommandFilterKeyStatus = "Status" - - // CommandFilterKeyExecutionStage is a CommandFilterKey enum value - CommandFilterKeyExecutionStage = "ExecutionStage" - - // CommandFilterKeyDocumentName is a CommandFilterKey enum value - CommandFilterKeyDocumentName = "DocumentName" -) - -// CommandFilterKey_Values returns all elements of the CommandFilterKey enum -func CommandFilterKey_Values() []string { - return []string{ - CommandFilterKeyInvokedAfter, - CommandFilterKeyInvokedBefore, - CommandFilterKeyStatus, - CommandFilterKeyExecutionStage, - CommandFilterKeyDocumentName, - } -} - -const ( - // CommandInvocationStatusPending is a CommandInvocationStatus enum value - CommandInvocationStatusPending = "Pending" - - // CommandInvocationStatusInProgress is a CommandInvocationStatus enum value - CommandInvocationStatusInProgress = "InProgress" - - // CommandInvocationStatusDelayed is a CommandInvocationStatus enum value - CommandInvocationStatusDelayed = "Delayed" - - // CommandInvocationStatusSuccess is a CommandInvocationStatus enum value - CommandInvocationStatusSuccess = "Success" - - // CommandInvocationStatusCancelled is a CommandInvocationStatus enum value - CommandInvocationStatusCancelled = "Cancelled" - - // CommandInvocationStatusTimedOut is a CommandInvocationStatus enum value - CommandInvocationStatusTimedOut = "TimedOut" - - // CommandInvocationStatusFailed is a CommandInvocationStatus enum value - CommandInvocationStatusFailed = "Failed" - - // CommandInvocationStatusCancelling is a CommandInvocationStatus enum value - CommandInvocationStatusCancelling = "Cancelling" -) - -// CommandInvocationStatus_Values returns all elements of the CommandInvocationStatus enum -func CommandInvocationStatus_Values() []string { - return []string{ - CommandInvocationStatusPending, - CommandInvocationStatusInProgress, - CommandInvocationStatusDelayed, - CommandInvocationStatusSuccess, - CommandInvocationStatusCancelled, - CommandInvocationStatusTimedOut, - CommandInvocationStatusFailed, - CommandInvocationStatusCancelling, - } -} - -const ( - // CommandPluginStatusPending is a CommandPluginStatus enum value - CommandPluginStatusPending = "Pending" - - // CommandPluginStatusInProgress is a CommandPluginStatus enum value - CommandPluginStatusInProgress = "InProgress" - - // CommandPluginStatusSuccess is a CommandPluginStatus enum value - CommandPluginStatusSuccess = "Success" - - // CommandPluginStatusTimedOut is a CommandPluginStatus enum value - CommandPluginStatusTimedOut = "TimedOut" - - // CommandPluginStatusCancelled is a CommandPluginStatus enum value - CommandPluginStatusCancelled = "Cancelled" - - // CommandPluginStatusFailed is a CommandPluginStatus enum value - CommandPluginStatusFailed = "Failed" -) - -// CommandPluginStatus_Values returns all elements of the CommandPluginStatus enum -func CommandPluginStatus_Values() []string { - return []string{ - CommandPluginStatusPending, - CommandPluginStatusInProgress, - CommandPluginStatusSuccess, - CommandPluginStatusTimedOut, - CommandPluginStatusCancelled, - CommandPluginStatusFailed, - } -} - -const ( - // CommandStatusPending is a CommandStatus enum value - CommandStatusPending = "Pending" - - // CommandStatusInProgress is a CommandStatus enum value - CommandStatusInProgress = "InProgress" - - // CommandStatusSuccess is a CommandStatus enum value - CommandStatusSuccess = "Success" - - // CommandStatusCancelled is a CommandStatus enum value - CommandStatusCancelled = "Cancelled" - - // CommandStatusFailed is a CommandStatus enum value - CommandStatusFailed = "Failed" - - // CommandStatusTimedOut is a CommandStatus enum value - CommandStatusTimedOut = "TimedOut" - - // CommandStatusCancelling is a CommandStatus enum value - CommandStatusCancelling = "Cancelling" -) - -// CommandStatus_Values returns all elements of the CommandStatus enum -func CommandStatus_Values() []string { - return []string{ - CommandStatusPending, - CommandStatusInProgress, - CommandStatusSuccess, - CommandStatusCancelled, - CommandStatusFailed, - CommandStatusTimedOut, - CommandStatusCancelling, - } -} - -const ( - // ComplianceQueryOperatorTypeEqual is a ComplianceQueryOperatorType enum value - ComplianceQueryOperatorTypeEqual = "EQUAL" - - // ComplianceQueryOperatorTypeNotEqual is a ComplianceQueryOperatorType enum value - ComplianceQueryOperatorTypeNotEqual = "NOT_EQUAL" - - // ComplianceQueryOperatorTypeBeginWith is a ComplianceQueryOperatorType enum value - ComplianceQueryOperatorTypeBeginWith = "BEGIN_WITH" - - // ComplianceQueryOperatorTypeLessThan is a ComplianceQueryOperatorType enum value - ComplianceQueryOperatorTypeLessThan = "LESS_THAN" - - // ComplianceQueryOperatorTypeGreaterThan is a ComplianceQueryOperatorType enum value - ComplianceQueryOperatorTypeGreaterThan = "GREATER_THAN" -) - -// ComplianceQueryOperatorType_Values returns all elements of the ComplianceQueryOperatorType enum -func ComplianceQueryOperatorType_Values() []string { - return []string{ - ComplianceQueryOperatorTypeEqual, - ComplianceQueryOperatorTypeNotEqual, - ComplianceQueryOperatorTypeBeginWith, - ComplianceQueryOperatorTypeLessThan, - ComplianceQueryOperatorTypeGreaterThan, - } -} - -const ( - // ComplianceSeverityCritical is a ComplianceSeverity enum value - ComplianceSeverityCritical = "CRITICAL" - - // ComplianceSeverityHigh is a ComplianceSeverity enum value - ComplianceSeverityHigh = "HIGH" - - // ComplianceSeverityMedium is a ComplianceSeverity enum value - ComplianceSeverityMedium = "MEDIUM" - - // ComplianceSeverityLow is a ComplianceSeverity enum value - ComplianceSeverityLow = "LOW" - - // ComplianceSeverityInformational is a ComplianceSeverity enum value - ComplianceSeverityInformational = "INFORMATIONAL" - - // ComplianceSeverityUnspecified is a ComplianceSeverity enum value - ComplianceSeverityUnspecified = "UNSPECIFIED" -) - -// ComplianceSeverity_Values returns all elements of the ComplianceSeverity enum -func ComplianceSeverity_Values() []string { - return []string{ - ComplianceSeverityCritical, - ComplianceSeverityHigh, - ComplianceSeverityMedium, - ComplianceSeverityLow, - ComplianceSeverityInformational, - ComplianceSeverityUnspecified, - } -} - -const ( - // ComplianceStatusCompliant is a ComplianceStatus enum value - ComplianceStatusCompliant = "COMPLIANT" - - // ComplianceStatusNonCompliant is a ComplianceStatus enum value - ComplianceStatusNonCompliant = "NON_COMPLIANT" -) - -// ComplianceStatus_Values returns all elements of the ComplianceStatus enum -func ComplianceStatus_Values() []string { - return []string{ - ComplianceStatusCompliant, - ComplianceStatusNonCompliant, - } -} - -const ( - // ComplianceUploadTypeComplete is a ComplianceUploadType enum value - ComplianceUploadTypeComplete = "COMPLETE" - - // ComplianceUploadTypePartial is a ComplianceUploadType enum value - ComplianceUploadTypePartial = "PARTIAL" -) - -// ComplianceUploadType_Values returns all elements of the ComplianceUploadType enum -func ComplianceUploadType_Values() []string { - return []string{ - ComplianceUploadTypeComplete, - ComplianceUploadTypePartial, - } -} - -const ( - // ConnectionStatusConnected is a ConnectionStatus enum value - ConnectionStatusConnected = "Connected" - - // ConnectionStatusNotConnected is a ConnectionStatus enum value - ConnectionStatusNotConnected = "NotConnected" -) - -// ConnectionStatus_Values returns all elements of the ConnectionStatus enum -func ConnectionStatus_Values() []string { - return []string{ - ConnectionStatusConnected, - ConnectionStatusNotConnected, - } -} - -const ( - // DescribeActivationsFilterKeysActivationIds is a DescribeActivationsFilterKeys enum value - DescribeActivationsFilterKeysActivationIds = "ActivationIds" - - // DescribeActivationsFilterKeysDefaultInstanceName is a DescribeActivationsFilterKeys enum value - DescribeActivationsFilterKeysDefaultInstanceName = "DefaultInstanceName" - - // DescribeActivationsFilterKeysIamRole is a DescribeActivationsFilterKeys enum value - DescribeActivationsFilterKeysIamRole = "IamRole" -) - -// DescribeActivationsFilterKeys_Values returns all elements of the DescribeActivationsFilterKeys enum -func DescribeActivationsFilterKeys_Values() []string { - return []string{ - DescribeActivationsFilterKeysActivationIds, - DescribeActivationsFilterKeysDefaultInstanceName, - DescribeActivationsFilterKeysIamRole, - } -} - -const ( - // DocumentFilterKeyName is a DocumentFilterKey enum value - DocumentFilterKeyName = "Name" - - // DocumentFilterKeyOwner is a DocumentFilterKey enum value - DocumentFilterKeyOwner = "Owner" - - // DocumentFilterKeyPlatformTypes is a DocumentFilterKey enum value - DocumentFilterKeyPlatformTypes = "PlatformTypes" - - // DocumentFilterKeyDocumentType is a DocumentFilterKey enum value - DocumentFilterKeyDocumentType = "DocumentType" -) - -// DocumentFilterKey_Values returns all elements of the DocumentFilterKey enum -func DocumentFilterKey_Values() []string { - return []string{ - DocumentFilterKeyName, - DocumentFilterKeyOwner, - DocumentFilterKeyPlatformTypes, - DocumentFilterKeyDocumentType, - } -} - -const ( - // DocumentFormatYaml is a DocumentFormat enum value - DocumentFormatYaml = "YAML" - - // DocumentFormatJson is a DocumentFormat enum value - DocumentFormatJson = "JSON" - - // DocumentFormatText is a DocumentFormat enum value - DocumentFormatText = "TEXT" -) - -// DocumentFormat_Values returns all elements of the DocumentFormat enum -func DocumentFormat_Values() []string { - return []string{ - DocumentFormatYaml, - DocumentFormatJson, - DocumentFormatText, - } -} - -const ( - // DocumentHashTypeSha256 is a DocumentHashType enum value - DocumentHashTypeSha256 = "Sha256" - - // DocumentHashTypeSha1 is a DocumentHashType enum value - DocumentHashTypeSha1 = "Sha1" -) - -// DocumentHashType_Values returns all elements of the DocumentHashType enum -func DocumentHashType_Values() []string { - return []string{ - DocumentHashTypeSha256, - DocumentHashTypeSha1, - } -} - -const ( - // DocumentMetadataEnumDocumentReviews is a DocumentMetadataEnum enum value - DocumentMetadataEnumDocumentReviews = "DocumentReviews" -) - -// DocumentMetadataEnum_Values returns all elements of the DocumentMetadataEnum enum -func DocumentMetadataEnum_Values() []string { - return []string{ - DocumentMetadataEnumDocumentReviews, - } -} - -const ( - // DocumentParameterTypeString is a DocumentParameterType enum value - DocumentParameterTypeString = "String" - - // DocumentParameterTypeStringList is a DocumentParameterType enum value - DocumentParameterTypeStringList = "StringList" -) - -// DocumentParameterType_Values returns all elements of the DocumentParameterType enum -func DocumentParameterType_Values() []string { - return []string{ - DocumentParameterTypeString, - DocumentParameterTypeStringList, - } -} - -const ( - // DocumentPermissionTypeShare is a DocumentPermissionType enum value - DocumentPermissionTypeShare = "Share" -) - -// DocumentPermissionType_Values returns all elements of the DocumentPermissionType enum -func DocumentPermissionType_Values() []string { - return []string{ - DocumentPermissionTypeShare, - } -} - -const ( - // DocumentReviewActionSendForReview is a DocumentReviewAction enum value - DocumentReviewActionSendForReview = "SendForReview" - - // DocumentReviewActionUpdateReview is a DocumentReviewAction enum value - DocumentReviewActionUpdateReview = "UpdateReview" - - // DocumentReviewActionApprove is a DocumentReviewAction enum value - DocumentReviewActionApprove = "Approve" - - // DocumentReviewActionReject is a DocumentReviewAction enum value - DocumentReviewActionReject = "Reject" -) - -// DocumentReviewAction_Values returns all elements of the DocumentReviewAction enum -func DocumentReviewAction_Values() []string { - return []string{ - DocumentReviewActionSendForReview, - DocumentReviewActionUpdateReview, - DocumentReviewActionApprove, - DocumentReviewActionReject, - } -} - -const ( - // DocumentReviewCommentTypeComment is a DocumentReviewCommentType enum value - DocumentReviewCommentTypeComment = "Comment" -) - -// DocumentReviewCommentType_Values returns all elements of the DocumentReviewCommentType enum -func DocumentReviewCommentType_Values() []string { - return []string{ - DocumentReviewCommentTypeComment, - } -} - -// The status of a document. -const ( - // DocumentStatusCreating is a DocumentStatus enum value - DocumentStatusCreating = "Creating" - - // DocumentStatusActive is a DocumentStatus enum value - DocumentStatusActive = "Active" - - // DocumentStatusUpdating is a DocumentStatus enum value - DocumentStatusUpdating = "Updating" - - // DocumentStatusDeleting is a DocumentStatus enum value - DocumentStatusDeleting = "Deleting" - - // DocumentStatusFailed is a DocumentStatus enum value - DocumentStatusFailed = "Failed" -) - -// DocumentStatus_Values returns all elements of the DocumentStatus enum -func DocumentStatus_Values() []string { - return []string{ - DocumentStatusCreating, - DocumentStatusActive, - DocumentStatusUpdating, - DocumentStatusDeleting, - DocumentStatusFailed, - } -} - -const ( - // DocumentTypeCommand is a DocumentType enum value - DocumentTypeCommand = "Command" - - // DocumentTypePolicy is a DocumentType enum value - DocumentTypePolicy = "Policy" - - // DocumentTypeAutomation is a DocumentType enum value - DocumentTypeAutomation = "Automation" - - // DocumentTypeSession is a DocumentType enum value - DocumentTypeSession = "Session" - - // DocumentTypePackage is a DocumentType enum value - DocumentTypePackage = "Package" - - // DocumentTypeApplicationConfiguration is a DocumentType enum value - DocumentTypeApplicationConfiguration = "ApplicationConfiguration" - - // DocumentTypeApplicationConfigurationSchema is a DocumentType enum value - DocumentTypeApplicationConfigurationSchema = "ApplicationConfigurationSchema" - - // DocumentTypeDeploymentStrategy is a DocumentType enum value - DocumentTypeDeploymentStrategy = "DeploymentStrategy" - - // DocumentTypeChangeCalendar is a DocumentType enum value - DocumentTypeChangeCalendar = "ChangeCalendar" - - // DocumentTypeAutomationChangeTemplate is a DocumentType enum value - DocumentTypeAutomationChangeTemplate = "Automation.ChangeTemplate" -) - -// DocumentType_Values returns all elements of the DocumentType enum -func DocumentType_Values() []string { - return []string{ - DocumentTypeCommand, - DocumentTypePolicy, - DocumentTypeAutomation, - DocumentTypeSession, - DocumentTypePackage, - DocumentTypeApplicationConfiguration, - DocumentTypeApplicationConfigurationSchema, - DocumentTypeDeploymentStrategy, - DocumentTypeChangeCalendar, - DocumentTypeAutomationChangeTemplate, - } -} - -const ( - // ExecutionModeAuto is a ExecutionMode enum value - ExecutionModeAuto = "Auto" - - // ExecutionModeInteractive is a ExecutionMode enum value - ExecutionModeInteractive = "Interactive" -) - -// ExecutionMode_Values returns all elements of the ExecutionMode enum -func ExecutionMode_Values() []string { - return []string{ - ExecutionModeAuto, - ExecutionModeInteractive, - } -} - -const ( - // FaultClient is a Fault enum value - FaultClient = "Client" - - // FaultServer is a Fault enum value - FaultServer = "Server" - - // FaultUnknown is a Fault enum value - FaultUnknown = "Unknown" -) - -// Fault_Values returns all elements of the Fault enum -func Fault_Values() []string { - return []string{ - FaultClient, - FaultServer, - FaultUnknown, - } -} - -const ( - // InstanceInformationFilterKeyInstanceIds is a InstanceInformationFilterKey enum value - InstanceInformationFilterKeyInstanceIds = "InstanceIds" - - // InstanceInformationFilterKeyAgentVersion is a InstanceInformationFilterKey enum value - InstanceInformationFilterKeyAgentVersion = "AgentVersion" - - // InstanceInformationFilterKeyPingStatus is a InstanceInformationFilterKey enum value - InstanceInformationFilterKeyPingStatus = "PingStatus" - - // InstanceInformationFilterKeyPlatformTypes is a InstanceInformationFilterKey enum value - InstanceInformationFilterKeyPlatformTypes = "PlatformTypes" - - // InstanceInformationFilterKeyActivationIds is a InstanceInformationFilterKey enum value - InstanceInformationFilterKeyActivationIds = "ActivationIds" - - // InstanceInformationFilterKeyIamRole is a InstanceInformationFilterKey enum value - InstanceInformationFilterKeyIamRole = "IamRole" - - // InstanceInformationFilterKeyResourceType is a InstanceInformationFilterKey enum value - InstanceInformationFilterKeyResourceType = "ResourceType" - - // InstanceInformationFilterKeyAssociationStatus is a InstanceInformationFilterKey enum value - InstanceInformationFilterKeyAssociationStatus = "AssociationStatus" -) - -// InstanceInformationFilterKey_Values returns all elements of the InstanceInformationFilterKey enum -func InstanceInformationFilterKey_Values() []string { - return []string{ - InstanceInformationFilterKeyInstanceIds, - InstanceInformationFilterKeyAgentVersion, - InstanceInformationFilterKeyPingStatus, - InstanceInformationFilterKeyPlatformTypes, - InstanceInformationFilterKeyActivationIds, - InstanceInformationFilterKeyIamRole, - InstanceInformationFilterKeyResourceType, - InstanceInformationFilterKeyAssociationStatus, - } -} - -const ( - // InstancePatchStateOperatorTypeEqual is a InstancePatchStateOperatorType enum value - InstancePatchStateOperatorTypeEqual = "Equal" - - // InstancePatchStateOperatorTypeNotEqual is a InstancePatchStateOperatorType enum value - InstancePatchStateOperatorTypeNotEqual = "NotEqual" - - // InstancePatchStateOperatorTypeLessThan is a InstancePatchStateOperatorType enum value - InstancePatchStateOperatorTypeLessThan = "LessThan" - - // InstancePatchStateOperatorTypeGreaterThan is a InstancePatchStateOperatorType enum value - InstancePatchStateOperatorTypeGreaterThan = "GreaterThan" -) - -// InstancePatchStateOperatorType_Values returns all elements of the InstancePatchStateOperatorType enum -func InstancePatchStateOperatorType_Values() []string { - return []string{ - InstancePatchStateOperatorTypeEqual, - InstancePatchStateOperatorTypeNotEqual, - InstancePatchStateOperatorTypeLessThan, - InstancePatchStateOperatorTypeGreaterThan, - } -} - -const ( - // InventoryAttributeDataTypeString is a InventoryAttributeDataType enum value - InventoryAttributeDataTypeString = "string" - - // InventoryAttributeDataTypeNumber is a InventoryAttributeDataType enum value - InventoryAttributeDataTypeNumber = "number" -) - -// InventoryAttributeDataType_Values returns all elements of the InventoryAttributeDataType enum -func InventoryAttributeDataType_Values() []string { - return []string{ - InventoryAttributeDataTypeString, - InventoryAttributeDataTypeNumber, - } -} - -const ( - // InventoryDeletionStatusInProgress is a InventoryDeletionStatus enum value - InventoryDeletionStatusInProgress = "InProgress" - - // InventoryDeletionStatusComplete is a InventoryDeletionStatus enum value - InventoryDeletionStatusComplete = "Complete" -) - -// InventoryDeletionStatus_Values returns all elements of the InventoryDeletionStatus enum -func InventoryDeletionStatus_Values() []string { - return []string{ - InventoryDeletionStatusInProgress, - InventoryDeletionStatusComplete, - } -} - -const ( - // InventoryQueryOperatorTypeEqual is a InventoryQueryOperatorType enum value - InventoryQueryOperatorTypeEqual = "Equal" - - // InventoryQueryOperatorTypeNotEqual is a InventoryQueryOperatorType enum value - InventoryQueryOperatorTypeNotEqual = "NotEqual" - - // InventoryQueryOperatorTypeBeginWith is a InventoryQueryOperatorType enum value - InventoryQueryOperatorTypeBeginWith = "BeginWith" - - // InventoryQueryOperatorTypeLessThan is a InventoryQueryOperatorType enum value - InventoryQueryOperatorTypeLessThan = "LessThan" - - // InventoryQueryOperatorTypeGreaterThan is a InventoryQueryOperatorType enum value - InventoryQueryOperatorTypeGreaterThan = "GreaterThan" - - // InventoryQueryOperatorTypeExists is a InventoryQueryOperatorType enum value - InventoryQueryOperatorTypeExists = "Exists" -) - -// InventoryQueryOperatorType_Values returns all elements of the InventoryQueryOperatorType enum -func InventoryQueryOperatorType_Values() []string { - return []string{ - InventoryQueryOperatorTypeEqual, - InventoryQueryOperatorTypeNotEqual, - InventoryQueryOperatorTypeBeginWith, - InventoryQueryOperatorTypeLessThan, - InventoryQueryOperatorTypeGreaterThan, - InventoryQueryOperatorTypeExists, - } -} - -const ( - // InventorySchemaDeleteOptionDisableSchema is a InventorySchemaDeleteOption enum value - InventorySchemaDeleteOptionDisableSchema = "DisableSchema" - - // InventorySchemaDeleteOptionDeleteSchema is a InventorySchemaDeleteOption enum value - InventorySchemaDeleteOptionDeleteSchema = "DeleteSchema" -) - -// InventorySchemaDeleteOption_Values returns all elements of the InventorySchemaDeleteOption enum -func InventorySchemaDeleteOption_Values() []string { - return []string{ - InventorySchemaDeleteOptionDisableSchema, - InventorySchemaDeleteOptionDeleteSchema, - } -} - -const ( - // LastResourceDataSyncStatusSuccessful is a LastResourceDataSyncStatus enum value - LastResourceDataSyncStatusSuccessful = "Successful" - - // LastResourceDataSyncStatusFailed is a LastResourceDataSyncStatus enum value - LastResourceDataSyncStatusFailed = "Failed" - - // LastResourceDataSyncStatusInProgress is a LastResourceDataSyncStatus enum value - LastResourceDataSyncStatusInProgress = "InProgress" -) - -// LastResourceDataSyncStatus_Values returns all elements of the LastResourceDataSyncStatus enum -func LastResourceDataSyncStatus_Values() []string { - return []string{ - LastResourceDataSyncStatusSuccessful, - LastResourceDataSyncStatusFailed, - LastResourceDataSyncStatusInProgress, - } -} - -const ( - // MaintenanceWindowExecutionStatusPending is a MaintenanceWindowExecutionStatus enum value - MaintenanceWindowExecutionStatusPending = "PENDING" - - // MaintenanceWindowExecutionStatusInProgress is a MaintenanceWindowExecutionStatus enum value - MaintenanceWindowExecutionStatusInProgress = "IN_PROGRESS" - - // MaintenanceWindowExecutionStatusSuccess is a MaintenanceWindowExecutionStatus enum value - MaintenanceWindowExecutionStatusSuccess = "SUCCESS" - - // MaintenanceWindowExecutionStatusFailed is a MaintenanceWindowExecutionStatus enum value - MaintenanceWindowExecutionStatusFailed = "FAILED" - - // MaintenanceWindowExecutionStatusTimedOut is a MaintenanceWindowExecutionStatus enum value - MaintenanceWindowExecutionStatusTimedOut = "TIMED_OUT" - - // MaintenanceWindowExecutionStatusCancelling is a MaintenanceWindowExecutionStatus enum value - MaintenanceWindowExecutionStatusCancelling = "CANCELLING" - - // MaintenanceWindowExecutionStatusCancelled is a MaintenanceWindowExecutionStatus enum value - MaintenanceWindowExecutionStatusCancelled = "CANCELLED" - - // MaintenanceWindowExecutionStatusSkippedOverlapping is a MaintenanceWindowExecutionStatus enum value - MaintenanceWindowExecutionStatusSkippedOverlapping = "SKIPPED_OVERLAPPING" -) - -// MaintenanceWindowExecutionStatus_Values returns all elements of the MaintenanceWindowExecutionStatus enum -func MaintenanceWindowExecutionStatus_Values() []string { - return []string{ - MaintenanceWindowExecutionStatusPending, - MaintenanceWindowExecutionStatusInProgress, - MaintenanceWindowExecutionStatusSuccess, - MaintenanceWindowExecutionStatusFailed, - MaintenanceWindowExecutionStatusTimedOut, - MaintenanceWindowExecutionStatusCancelling, - MaintenanceWindowExecutionStatusCancelled, - MaintenanceWindowExecutionStatusSkippedOverlapping, - } -} - -const ( - // MaintenanceWindowResourceTypeInstance is a MaintenanceWindowResourceType enum value - MaintenanceWindowResourceTypeInstance = "INSTANCE" - - // MaintenanceWindowResourceTypeResourceGroup is a MaintenanceWindowResourceType enum value - MaintenanceWindowResourceTypeResourceGroup = "RESOURCE_GROUP" -) - -// MaintenanceWindowResourceType_Values returns all elements of the MaintenanceWindowResourceType enum -func MaintenanceWindowResourceType_Values() []string { - return []string{ - MaintenanceWindowResourceTypeInstance, - MaintenanceWindowResourceTypeResourceGroup, - } -} - -const ( - // MaintenanceWindowTaskTypeRunCommand is a MaintenanceWindowTaskType enum value - MaintenanceWindowTaskTypeRunCommand = "RUN_COMMAND" - - // MaintenanceWindowTaskTypeAutomation is a MaintenanceWindowTaskType enum value - MaintenanceWindowTaskTypeAutomation = "AUTOMATION" - - // MaintenanceWindowTaskTypeStepFunctions is a MaintenanceWindowTaskType enum value - MaintenanceWindowTaskTypeStepFunctions = "STEP_FUNCTIONS" - - // MaintenanceWindowTaskTypeLambda is a MaintenanceWindowTaskType enum value - MaintenanceWindowTaskTypeLambda = "LAMBDA" -) - -// MaintenanceWindowTaskType_Values returns all elements of the MaintenanceWindowTaskType enum -func MaintenanceWindowTaskType_Values() []string { - return []string{ - MaintenanceWindowTaskTypeRunCommand, - MaintenanceWindowTaskTypeAutomation, - MaintenanceWindowTaskTypeStepFunctions, - MaintenanceWindowTaskTypeLambda, - } -} - -const ( - // NotificationEventAll is a NotificationEvent enum value - NotificationEventAll = "All" - - // NotificationEventInProgress is a NotificationEvent enum value - NotificationEventInProgress = "InProgress" - - // NotificationEventSuccess is a NotificationEvent enum value - NotificationEventSuccess = "Success" - - // NotificationEventTimedOut is a NotificationEvent enum value - NotificationEventTimedOut = "TimedOut" - - // NotificationEventCancelled is a NotificationEvent enum value - NotificationEventCancelled = "Cancelled" - - // NotificationEventFailed is a NotificationEvent enum value - NotificationEventFailed = "Failed" -) - -// NotificationEvent_Values returns all elements of the NotificationEvent enum -func NotificationEvent_Values() []string { - return []string{ - NotificationEventAll, - NotificationEventInProgress, - NotificationEventSuccess, - NotificationEventTimedOut, - NotificationEventCancelled, - NotificationEventFailed, - } -} - -const ( - // NotificationTypeCommand is a NotificationType enum value - NotificationTypeCommand = "Command" - - // NotificationTypeInvocation is a NotificationType enum value - NotificationTypeInvocation = "Invocation" -) - -// NotificationType_Values returns all elements of the NotificationType enum -func NotificationType_Values() []string { - return []string{ - NotificationTypeCommand, - NotificationTypeInvocation, - } -} - -const ( - // OperatingSystemWindows is a OperatingSystem enum value - OperatingSystemWindows = "WINDOWS" - - // OperatingSystemAmazonLinux is a OperatingSystem enum value - OperatingSystemAmazonLinux = "AMAZON_LINUX" - - // OperatingSystemAmazonLinux2 is a OperatingSystem enum value - OperatingSystemAmazonLinux2 = "AMAZON_LINUX_2" - - // OperatingSystemUbuntu is a OperatingSystem enum value - OperatingSystemUbuntu = "UBUNTU" - - // OperatingSystemRedhatEnterpriseLinux is a OperatingSystem enum value - OperatingSystemRedhatEnterpriseLinux = "REDHAT_ENTERPRISE_LINUX" - - // OperatingSystemSuse is a OperatingSystem enum value - OperatingSystemSuse = "SUSE" - - // OperatingSystemCentos is a OperatingSystem enum value - OperatingSystemCentos = "CENTOS" - - // OperatingSystemOracleLinux is a OperatingSystem enum value - OperatingSystemOracleLinux = "ORACLE_LINUX" - - // OperatingSystemDebian is a OperatingSystem enum value - OperatingSystemDebian = "DEBIAN" - - // OperatingSystemMacos is a OperatingSystem enum value - OperatingSystemMacos = "MACOS" -) - -// OperatingSystem_Values returns all elements of the OperatingSystem enum -func OperatingSystem_Values() []string { - return []string{ - OperatingSystemWindows, - OperatingSystemAmazonLinux, - OperatingSystemAmazonLinux2, - OperatingSystemUbuntu, - OperatingSystemRedhatEnterpriseLinux, - OperatingSystemSuse, - OperatingSystemCentos, - OperatingSystemOracleLinux, - OperatingSystemDebian, - OperatingSystemMacos, - } -} - -const ( - // OpsFilterOperatorTypeEqual is a OpsFilterOperatorType enum value - OpsFilterOperatorTypeEqual = "Equal" - - // OpsFilterOperatorTypeNotEqual is a OpsFilterOperatorType enum value - OpsFilterOperatorTypeNotEqual = "NotEqual" - - // OpsFilterOperatorTypeBeginWith is a OpsFilterOperatorType enum value - OpsFilterOperatorTypeBeginWith = "BeginWith" - - // OpsFilterOperatorTypeLessThan is a OpsFilterOperatorType enum value - OpsFilterOperatorTypeLessThan = "LessThan" - - // OpsFilterOperatorTypeGreaterThan is a OpsFilterOperatorType enum value - OpsFilterOperatorTypeGreaterThan = "GreaterThan" - - // OpsFilterOperatorTypeExists is a OpsFilterOperatorType enum value - OpsFilterOperatorTypeExists = "Exists" -) - -// OpsFilterOperatorType_Values returns all elements of the OpsFilterOperatorType enum -func OpsFilterOperatorType_Values() []string { - return []string{ - OpsFilterOperatorTypeEqual, - OpsFilterOperatorTypeNotEqual, - OpsFilterOperatorTypeBeginWith, - OpsFilterOperatorTypeLessThan, - OpsFilterOperatorTypeGreaterThan, - OpsFilterOperatorTypeExists, - } -} - -const ( - // OpsItemDataTypeSearchableString is a OpsItemDataType enum value - OpsItemDataTypeSearchableString = "SearchableString" - - // OpsItemDataTypeString is a OpsItemDataType enum value - OpsItemDataTypeString = "String" -) - -// OpsItemDataType_Values returns all elements of the OpsItemDataType enum -func OpsItemDataType_Values() []string { - return []string{ - OpsItemDataTypeSearchableString, - OpsItemDataTypeString, - } -} - -const ( - // OpsItemEventFilterKeyOpsItemId is a OpsItemEventFilterKey enum value - OpsItemEventFilterKeyOpsItemId = "OpsItemId" -) - -// OpsItemEventFilterKey_Values returns all elements of the OpsItemEventFilterKey enum -func OpsItemEventFilterKey_Values() []string { - return []string{ - OpsItemEventFilterKeyOpsItemId, - } -} - -const ( - // OpsItemEventFilterOperatorEqual is a OpsItemEventFilterOperator enum value - OpsItemEventFilterOperatorEqual = "Equal" -) - -// OpsItemEventFilterOperator_Values returns all elements of the OpsItemEventFilterOperator enum -func OpsItemEventFilterOperator_Values() []string { - return []string{ - OpsItemEventFilterOperatorEqual, - } -} - -const ( - // OpsItemFilterKeyStatus is a OpsItemFilterKey enum value - OpsItemFilterKeyStatus = "Status" - - // OpsItemFilterKeyCreatedBy is a OpsItemFilterKey enum value - OpsItemFilterKeyCreatedBy = "CreatedBy" - - // OpsItemFilterKeySource is a OpsItemFilterKey enum value - OpsItemFilterKeySource = "Source" - - // OpsItemFilterKeyPriority is a OpsItemFilterKey enum value - OpsItemFilterKeyPriority = "Priority" - - // OpsItemFilterKeyTitle is a OpsItemFilterKey enum value - OpsItemFilterKeyTitle = "Title" - - // OpsItemFilterKeyOpsItemId is a OpsItemFilterKey enum value - OpsItemFilterKeyOpsItemId = "OpsItemId" - - // OpsItemFilterKeyCreatedTime is a OpsItemFilterKey enum value - OpsItemFilterKeyCreatedTime = "CreatedTime" - - // OpsItemFilterKeyLastModifiedTime is a OpsItemFilterKey enum value - OpsItemFilterKeyLastModifiedTime = "LastModifiedTime" - - // OpsItemFilterKeyActualStartTime is a OpsItemFilterKey enum value - OpsItemFilterKeyActualStartTime = "ActualStartTime" - - // OpsItemFilterKeyActualEndTime is a OpsItemFilterKey enum value - OpsItemFilterKeyActualEndTime = "ActualEndTime" - - // OpsItemFilterKeyPlannedStartTime is a OpsItemFilterKey enum value - OpsItemFilterKeyPlannedStartTime = "PlannedStartTime" - - // OpsItemFilterKeyPlannedEndTime is a OpsItemFilterKey enum value - OpsItemFilterKeyPlannedEndTime = "PlannedEndTime" - - // OpsItemFilterKeyOperationalData is a OpsItemFilterKey enum value - OpsItemFilterKeyOperationalData = "OperationalData" - - // OpsItemFilterKeyOperationalDataKey is a OpsItemFilterKey enum value - OpsItemFilterKeyOperationalDataKey = "OperationalDataKey" - - // OpsItemFilterKeyOperationalDataValue is a OpsItemFilterKey enum value - OpsItemFilterKeyOperationalDataValue = "OperationalDataValue" - - // OpsItemFilterKeyResourceId is a OpsItemFilterKey enum value - OpsItemFilterKeyResourceId = "ResourceId" - - // OpsItemFilterKeyAutomationId is a OpsItemFilterKey enum value - OpsItemFilterKeyAutomationId = "AutomationId" - - // OpsItemFilterKeyCategory is a OpsItemFilterKey enum value - OpsItemFilterKeyCategory = "Category" - - // OpsItemFilterKeySeverity is a OpsItemFilterKey enum value - OpsItemFilterKeySeverity = "Severity" - - // OpsItemFilterKeyOpsItemType is a OpsItemFilterKey enum value - OpsItemFilterKeyOpsItemType = "OpsItemType" - - // OpsItemFilterKeyChangeRequestByRequesterArn is a OpsItemFilterKey enum value - OpsItemFilterKeyChangeRequestByRequesterArn = "ChangeRequestByRequesterArn" - - // OpsItemFilterKeyChangeRequestByRequesterName is a OpsItemFilterKey enum value - OpsItemFilterKeyChangeRequestByRequesterName = "ChangeRequestByRequesterName" - - // OpsItemFilterKeyChangeRequestByApproverArn is a OpsItemFilterKey enum value - OpsItemFilterKeyChangeRequestByApproverArn = "ChangeRequestByApproverArn" - - // OpsItemFilterKeyChangeRequestByApproverName is a OpsItemFilterKey enum value - OpsItemFilterKeyChangeRequestByApproverName = "ChangeRequestByApproverName" - - // OpsItemFilterKeyChangeRequestByTemplate is a OpsItemFilterKey enum value - OpsItemFilterKeyChangeRequestByTemplate = "ChangeRequestByTemplate" - - // OpsItemFilterKeyChangeRequestByTargetsResourceGroup is a OpsItemFilterKey enum value - OpsItemFilterKeyChangeRequestByTargetsResourceGroup = "ChangeRequestByTargetsResourceGroup" -) - -// OpsItemFilterKey_Values returns all elements of the OpsItemFilterKey enum -func OpsItemFilterKey_Values() []string { - return []string{ - OpsItemFilterKeyStatus, - OpsItemFilterKeyCreatedBy, - OpsItemFilterKeySource, - OpsItemFilterKeyPriority, - OpsItemFilterKeyTitle, - OpsItemFilterKeyOpsItemId, - OpsItemFilterKeyCreatedTime, - OpsItemFilterKeyLastModifiedTime, - OpsItemFilterKeyActualStartTime, - OpsItemFilterKeyActualEndTime, - OpsItemFilterKeyPlannedStartTime, - OpsItemFilterKeyPlannedEndTime, - OpsItemFilterKeyOperationalData, - OpsItemFilterKeyOperationalDataKey, - OpsItemFilterKeyOperationalDataValue, - OpsItemFilterKeyResourceId, - OpsItemFilterKeyAutomationId, - OpsItemFilterKeyCategory, - OpsItemFilterKeySeverity, - OpsItemFilterKeyOpsItemType, - OpsItemFilterKeyChangeRequestByRequesterArn, - OpsItemFilterKeyChangeRequestByRequesterName, - OpsItemFilterKeyChangeRequestByApproverArn, - OpsItemFilterKeyChangeRequestByApproverName, - OpsItemFilterKeyChangeRequestByTemplate, - OpsItemFilterKeyChangeRequestByTargetsResourceGroup, - } -} - -const ( - // OpsItemFilterOperatorEqual is a OpsItemFilterOperator enum value - OpsItemFilterOperatorEqual = "Equal" - - // OpsItemFilterOperatorContains is a OpsItemFilterOperator enum value - OpsItemFilterOperatorContains = "Contains" - - // OpsItemFilterOperatorGreaterThan is a OpsItemFilterOperator enum value - OpsItemFilterOperatorGreaterThan = "GreaterThan" - - // OpsItemFilterOperatorLessThan is a OpsItemFilterOperator enum value - OpsItemFilterOperatorLessThan = "LessThan" -) - -// OpsItemFilterOperator_Values returns all elements of the OpsItemFilterOperator enum -func OpsItemFilterOperator_Values() []string { - return []string{ - OpsItemFilterOperatorEqual, - OpsItemFilterOperatorContains, - OpsItemFilterOperatorGreaterThan, - OpsItemFilterOperatorLessThan, - } -} - -const ( - // OpsItemStatusOpen is a OpsItemStatus enum value - OpsItemStatusOpen = "Open" - - // OpsItemStatusInProgress is a OpsItemStatus enum value - OpsItemStatusInProgress = "InProgress" - - // OpsItemStatusResolved is a OpsItemStatus enum value - OpsItemStatusResolved = "Resolved" - - // OpsItemStatusPending is a OpsItemStatus enum value - OpsItemStatusPending = "Pending" - - // OpsItemStatusTimedOut is a OpsItemStatus enum value - OpsItemStatusTimedOut = "TimedOut" - - // OpsItemStatusCancelling is a OpsItemStatus enum value - OpsItemStatusCancelling = "Cancelling" - - // OpsItemStatusCancelled is a OpsItemStatus enum value - OpsItemStatusCancelled = "Cancelled" - - // OpsItemStatusFailed is a OpsItemStatus enum value - OpsItemStatusFailed = "Failed" - - // OpsItemStatusCompletedWithSuccess is a OpsItemStatus enum value - OpsItemStatusCompletedWithSuccess = "CompletedWithSuccess" - - // OpsItemStatusCompletedWithFailure is a OpsItemStatus enum value - OpsItemStatusCompletedWithFailure = "CompletedWithFailure" - - // OpsItemStatusScheduled is a OpsItemStatus enum value - OpsItemStatusScheduled = "Scheduled" - - // OpsItemStatusRunbookInProgress is a OpsItemStatus enum value - OpsItemStatusRunbookInProgress = "RunbookInProgress" - - // OpsItemStatusPendingChangeCalendarOverride is a OpsItemStatus enum value - OpsItemStatusPendingChangeCalendarOverride = "PendingChangeCalendarOverride" - - // OpsItemStatusChangeCalendarOverrideApproved is a OpsItemStatus enum value - OpsItemStatusChangeCalendarOverrideApproved = "ChangeCalendarOverrideApproved" - - // OpsItemStatusChangeCalendarOverrideRejected is a OpsItemStatus enum value - OpsItemStatusChangeCalendarOverrideRejected = "ChangeCalendarOverrideRejected" - - // OpsItemStatusPendingApproval is a OpsItemStatus enum value - OpsItemStatusPendingApproval = "PendingApproval" - - // OpsItemStatusApproved is a OpsItemStatus enum value - OpsItemStatusApproved = "Approved" - - // OpsItemStatusRejected is a OpsItemStatus enum value - OpsItemStatusRejected = "Rejected" -) - -// OpsItemStatus_Values returns all elements of the OpsItemStatus enum -func OpsItemStatus_Values() []string { - return []string{ - OpsItemStatusOpen, - OpsItemStatusInProgress, - OpsItemStatusResolved, - OpsItemStatusPending, - OpsItemStatusTimedOut, - OpsItemStatusCancelling, - OpsItemStatusCancelled, - OpsItemStatusFailed, - OpsItemStatusCompletedWithSuccess, - OpsItemStatusCompletedWithFailure, - OpsItemStatusScheduled, - OpsItemStatusRunbookInProgress, - OpsItemStatusPendingChangeCalendarOverride, - OpsItemStatusChangeCalendarOverrideApproved, - OpsItemStatusChangeCalendarOverrideRejected, - OpsItemStatusPendingApproval, - OpsItemStatusApproved, - OpsItemStatusRejected, - } -} - -const ( - // ParameterTierStandard is a ParameterTier enum value - ParameterTierStandard = "Standard" - - // ParameterTierAdvanced is a ParameterTier enum value - ParameterTierAdvanced = "Advanced" - - // ParameterTierIntelligentTiering is a ParameterTier enum value - ParameterTierIntelligentTiering = "Intelligent-Tiering" -) - -// ParameterTier_Values returns all elements of the ParameterTier enum -func ParameterTier_Values() []string { - return []string{ - ParameterTierStandard, - ParameterTierAdvanced, - ParameterTierIntelligentTiering, - } -} - -const ( - // ParameterTypeString is a ParameterType enum value - ParameterTypeString = "String" - - // ParameterTypeStringList is a ParameterType enum value - ParameterTypeStringList = "StringList" - - // ParameterTypeSecureString is a ParameterType enum value - ParameterTypeSecureString = "SecureString" -) - -// ParameterType_Values returns all elements of the ParameterType enum -func ParameterType_Values() []string { - return []string{ - ParameterTypeString, - ParameterTypeStringList, - ParameterTypeSecureString, - } -} - -const ( - // ParametersFilterKeyName is a ParametersFilterKey enum value - ParametersFilterKeyName = "Name" - - // ParametersFilterKeyType is a ParametersFilterKey enum value - ParametersFilterKeyType = "Type" - - // ParametersFilterKeyKeyId is a ParametersFilterKey enum value - ParametersFilterKeyKeyId = "KeyId" -) - -// ParametersFilterKey_Values returns all elements of the ParametersFilterKey enum -func ParametersFilterKey_Values() []string { - return []string{ - ParametersFilterKeyName, - ParametersFilterKeyType, - ParametersFilterKeyKeyId, - } -} - -const ( - // PatchActionAllowAsDependency is a PatchAction enum value - PatchActionAllowAsDependency = "ALLOW_AS_DEPENDENCY" - - // PatchActionBlock is a PatchAction enum value - PatchActionBlock = "BLOCK" -) - -// PatchAction_Values returns all elements of the PatchAction enum -func PatchAction_Values() []string { - return []string{ - PatchActionAllowAsDependency, - PatchActionBlock, - } -} - -const ( - // PatchComplianceDataStateInstalled is a PatchComplianceDataState enum value - PatchComplianceDataStateInstalled = "INSTALLED" - - // PatchComplianceDataStateInstalledOther is a PatchComplianceDataState enum value - PatchComplianceDataStateInstalledOther = "INSTALLED_OTHER" - - // PatchComplianceDataStateInstalledPendingReboot is a PatchComplianceDataState enum value - PatchComplianceDataStateInstalledPendingReboot = "INSTALLED_PENDING_REBOOT" - - // PatchComplianceDataStateInstalledRejected is a PatchComplianceDataState enum value - PatchComplianceDataStateInstalledRejected = "INSTALLED_REJECTED" - - // PatchComplianceDataStateMissing is a PatchComplianceDataState enum value - PatchComplianceDataStateMissing = "MISSING" - - // PatchComplianceDataStateNotApplicable is a PatchComplianceDataState enum value - PatchComplianceDataStateNotApplicable = "NOT_APPLICABLE" - - // PatchComplianceDataStateFailed is a PatchComplianceDataState enum value - PatchComplianceDataStateFailed = "FAILED" -) - -// PatchComplianceDataState_Values returns all elements of the PatchComplianceDataState enum -func PatchComplianceDataState_Values() []string { - return []string{ - PatchComplianceDataStateInstalled, - PatchComplianceDataStateInstalledOther, - PatchComplianceDataStateInstalledPendingReboot, - PatchComplianceDataStateInstalledRejected, - PatchComplianceDataStateMissing, - PatchComplianceDataStateNotApplicable, - PatchComplianceDataStateFailed, - } -} - -const ( - // PatchComplianceLevelCritical is a PatchComplianceLevel enum value - PatchComplianceLevelCritical = "CRITICAL" - - // PatchComplianceLevelHigh is a PatchComplianceLevel enum value - PatchComplianceLevelHigh = "HIGH" - - // PatchComplianceLevelMedium is a PatchComplianceLevel enum value - PatchComplianceLevelMedium = "MEDIUM" - - // PatchComplianceLevelLow is a PatchComplianceLevel enum value - PatchComplianceLevelLow = "LOW" - - // PatchComplianceLevelInformational is a PatchComplianceLevel enum value - PatchComplianceLevelInformational = "INFORMATIONAL" - - // PatchComplianceLevelUnspecified is a PatchComplianceLevel enum value - PatchComplianceLevelUnspecified = "UNSPECIFIED" -) - -// PatchComplianceLevel_Values returns all elements of the PatchComplianceLevel enum -func PatchComplianceLevel_Values() []string { - return []string{ - PatchComplianceLevelCritical, - PatchComplianceLevelHigh, - PatchComplianceLevelMedium, - PatchComplianceLevelLow, - PatchComplianceLevelInformational, - PatchComplianceLevelUnspecified, - } -} - -const ( - // PatchDeploymentStatusApproved is a PatchDeploymentStatus enum value - PatchDeploymentStatusApproved = "APPROVED" - - // PatchDeploymentStatusPendingApproval is a PatchDeploymentStatus enum value - PatchDeploymentStatusPendingApproval = "PENDING_APPROVAL" - - // PatchDeploymentStatusExplicitApproved is a PatchDeploymentStatus enum value - PatchDeploymentStatusExplicitApproved = "EXPLICIT_APPROVED" - - // PatchDeploymentStatusExplicitRejected is a PatchDeploymentStatus enum value - PatchDeploymentStatusExplicitRejected = "EXPLICIT_REJECTED" -) - -// PatchDeploymentStatus_Values returns all elements of the PatchDeploymentStatus enum -func PatchDeploymentStatus_Values() []string { - return []string{ - PatchDeploymentStatusApproved, - PatchDeploymentStatusPendingApproval, - PatchDeploymentStatusExplicitApproved, - PatchDeploymentStatusExplicitRejected, - } -} - -const ( - // PatchFilterKeyArch is a PatchFilterKey enum value - PatchFilterKeyArch = "ARCH" - - // PatchFilterKeyAdvisoryId is a PatchFilterKey enum value - PatchFilterKeyAdvisoryId = "ADVISORY_ID" - - // PatchFilterKeyBugzillaId is a PatchFilterKey enum value - PatchFilterKeyBugzillaId = "BUGZILLA_ID" - - // PatchFilterKeyPatchSet is a PatchFilterKey enum value - PatchFilterKeyPatchSet = "PATCH_SET" - - // PatchFilterKeyProduct is a PatchFilterKey enum value - PatchFilterKeyProduct = "PRODUCT" - - // PatchFilterKeyProductFamily is a PatchFilterKey enum value - PatchFilterKeyProductFamily = "PRODUCT_FAMILY" - - // PatchFilterKeyClassification is a PatchFilterKey enum value - PatchFilterKeyClassification = "CLASSIFICATION" - - // PatchFilterKeyCveId is a PatchFilterKey enum value - PatchFilterKeyCveId = "CVE_ID" - - // PatchFilterKeyEpoch is a PatchFilterKey enum value - PatchFilterKeyEpoch = "EPOCH" - - // PatchFilterKeyMsrcSeverity is a PatchFilterKey enum value - PatchFilterKeyMsrcSeverity = "MSRC_SEVERITY" - - // PatchFilterKeyName is a PatchFilterKey enum value - PatchFilterKeyName = "NAME" - - // PatchFilterKeyPatchId is a PatchFilterKey enum value - PatchFilterKeyPatchId = "PATCH_ID" - - // PatchFilterKeySection is a PatchFilterKey enum value - PatchFilterKeySection = "SECTION" - - // PatchFilterKeyPriority is a PatchFilterKey enum value - PatchFilterKeyPriority = "PRIORITY" - - // PatchFilterKeyRepository is a PatchFilterKey enum value - PatchFilterKeyRepository = "REPOSITORY" - - // PatchFilterKeyRelease is a PatchFilterKey enum value - PatchFilterKeyRelease = "RELEASE" - - // PatchFilterKeySeverity is a PatchFilterKey enum value - PatchFilterKeySeverity = "SEVERITY" - - // PatchFilterKeySecurity is a PatchFilterKey enum value - PatchFilterKeySecurity = "SECURITY" - - // PatchFilterKeyVersion is a PatchFilterKey enum value - PatchFilterKeyVersion = "VERSION" -) - -// PatchFilterKey_Values returns all elements of the PatchFilterKey enum -func PatchFilterKey_Values() []string { - return []string{ - PatchFilterKeyArch, - PatchFilterKeyAdvisoryId, - PatchFilterKeyBugzillaId, - PatchFilterKeyPatchSet, - PatchFilterKeyProduct, - PatchFilterKeyProductFamily, - PatchFilterKeyClassification, - PatchFilterKeyCveId, - PatchFilterKeyEpoch, - PatchFilterKeyMsrcSeverity, - PatchFilterKeyName, - PatchFilterKeyPatchId, - PatchFilterKeySection, - PatchFilterKeyPriority, - PatchFilterKeyRepository, - PatchFilterKeyRelease, - PatchFilterKeySeverity, - PatchFilterKeySecurity, - PatchFilterKeyVersion, - } -} - -const ( - // PatchOperationTypeScan is a PatchOperationType enum value - PatchOperationTypeScan = "Scan" - - // PatchOperationTypeInstall is a PatchOperationType enum value - PatchOperationTypeInstall = "Install" -) - -// PatchOperationType_Values returns all elements of the PatchOperationType enum -func PatchOperationType_Values() []string { - return []string{ - PatchOperationTypeScan, - PatchOperationTypeInstall, - } -} - -const ( - // PatchPropertyProduct is a PatchProperty enum value - PatchPropertyProduct = "PRODUCT" - - // PatchPropertyProductFamily is a PatchProperty enum value - PatchPropertyProductFamily = "PRODUCT_FAMILY" - - // PatchPropertyClassification is a PatchProperty enum value - PatchPropertyClassification = "CLASSIFICATION" - - // PatchPropertyMsrcSeverity is a PatchProperty enum value - PatchPropertyMsrcSeverity = "MSRC_SEVERITY" - - // PatchPropertyPriority is a PatchProperty enum value - PatchPropertyPriority = "PRIORITY" - - // PatchPropertySeverity is a PatchProperty enum value - PatchPropertySeverity = "SEVERITY" -) - -// PatchProperty_Values returns all elements of the PatchProperty enum -func PatchProperty_Values() []string { - return []string{ - PatchPropertyProduct, - PatchPropertyProductFamily, - PatchPropertyClassification, - PatchPropertyMsrcSeverity, - PatchPropertyPriority, - PatchPropertySeverity, - } -} - -const ( - // PatchSetOs is a PatchSet enum value - PatchSetOs = "OS" - - // PatchSetApplication is a PatchSet enum value - PatchSetApplication = "APPLICATION" -) - -// PatchSet_Values returns all elements of the PatchSet enum -func PatchSet_Values() []string { - return []string{ - PatchSetOs, - PatchSetApplication, - } -} - -const ( - // PingStatusOnline is a PingStatus enum value - PingStatusOnline = "Online" - - // PingStatusConnectionLost is a PingStatus enum value - PingStatusConnectionLost = "ConnectionLost" - - // PingStatusInactive is a PingStatus enum value - PingStatusInactive = "Inactive" -) - -// PingStatus_Values returns all elements of the PingStatus enum -func PingStatus_Values() []string { - return []string{ - PingStatusOnline, - PingStatusConnectionLost, - PingStatusInactive, - } -} - -const ( - // PlatformTypeWindows is a PlatformType enum value - PlatformTypeWindows = "Windows" - - // PlatformTypeLinux is a PlatformType enum value - PlatformTypeLinux = "Linux" -) - -// PlatformType_Values returns all elements of the PlatformType enum -func PlatformType_Values() []string { - return []string{ - PlatformTypeWindows, - PlatformTypeLinux, - } -} - -const ( - // RebootOptionRebootIfNeeded is a RebootOption enum value - RebootOptionRebootIfNeeded = "RebootIfNeeded" - - // RebootOptionNoReboot is a RebootOption enum value - RebootOptionNoReboot = "NoReboot" -) - -// RebootOption_Values returns all elements of the RebootOption enum -func RebootOption_Values() []string { - return []string{ - RebootOptionRebootIfNeeded, - RebootOptionNoReboot, - } -} - -const ( - // ResourceDataSyncS3FormatJsonSerDe is a ResourceDataSyncS3Format enum value - ResourceDataSyncS3FormatJsonSerDe = "JsonSerDe" -) - -// ResourceDataSyncS3Format_Values returns all elements of the ResourceDataSyncS3Format enum -func ResourceDataSyncS3Format_Values() []string { - return []string{ - ResourceDataSyncS3FormatJsonSerDe, - } -} - -const ( - // ResourceTypeManagedInstance is a ResourceType enum value - ResourceTypeManagedInstance = "ManagedInstance" - - // ResourceTypeDocument is a ResourceType enum value - ResourceTypeDocument = "Document" - - // ResourceTypeEc2instance is a ResourceType enum value - ResourceTypeEc2instance = "EC2Instance" -) - -// ResourceType_Values returns all elements of the ResourceType enum -func ResourceType_Values() []string { - return []string{ - ResourceTypeManagedInstance, - ResourceTypeDocument, - ResourceTypeEc2instance, - } -} - -const ( - // ResourceTypeForTaggingDocument is a ResourceTypeForTagging enum value - ResourceTypeForTaggingDocument = "Document" - - // ResourceTypeForTaggingManagedInstance is a ResourceTypeForTagging enum value - ResourceTypeForTaggingManagedInstance = "ManagedInstance" - - // ResourceTypeForTaggingMaintenanceWindow is a ResourceTypeForTagging enum value - ResourceTypeForTaggingMaintenanceWindow = "MaintenanceWindow" - - // ResourceTypeForTaggingParameter is a ResourceTypeForTagging enum value - ResourceTypeForTaggingParameter = "Parameter" - - // ResourceTypeForTaggingPatchBaseline is a ResourceTypeForTagging enum value - ResourceTypeForTaggingPatchBaseline = "PatchBaseline" - - // ResourceTypeForTaggingOpsItem is a ResourceTypeForTagging enum value - ResourceTypeForTaggingOpsItem = "OpsItem" -) - -// ResourceTypeForTagging_Values returns all elements of the ResourceTypeForTagging enum -func ResourceTypeForTagging_Values() []string { - return []string{ - ResourceTypeForTaggingDocument, - ResourceTypeForTaggingManagedInstance, - ResourceTypeForTaggingMaintenanceWindow, - ResourceTypeForTaggingParameter, - ResourceTypeForTaggingPatchBaseline, - ResourceTypeForTaggingOpsItem, - } -} - -const ( - // ReviewStatusApproved is a ReviewStatus enum value - ReviewStatusApproved = "APPROVED" - - // ReviewStatusNotReviewed is a ReviewStatus enum value - ReviewStatusNotReviewed = "NOT_REVIEWED" - - // ReviewStatusPending is a ReviewStatus enum value - ReviewStatusPending = "PENDING" - - // ReviewStatusRejected is a ReviewStatus enum value - ReviewStatusRejected = "REJECTED" -) - -// ReviewStatus_Values returns all elements of the ReviewStatus enum -func ReviewStatus_Values() []string { - return []string{ - ReviewStatusApproved, - ReviewStatusNotReviewed, - ReviewStatusPending, - ReviewStatusRejected, - } -} - -const ( - // SessionFilterKeyInvokedAfter is a SessionFilterKey enum value - SessionFilterKeyInvokedAfter = "InvokedAfter" - - // SessionFilterKeyInvokedBefore is a SessionFilterKey enum value - SessionFilterKeyInvokedBefore = "InvokedBefore" - - // SessionFilterKeyTarget is a SessionFilterKey enum value - SessionFilterKeyTarget = "Target" - - // SessionFilterKeyOwner is a SessionFilterKey enum value - SessionFilterKeyOwner = "Owner" - - // SessionFilterKeyStatus is a SessionFilterKey enum value - SessionFilterKeyStatus = "Status" - - // SessionFilterKeySessionId is a SessionFilterKey enum value - SessionFilterKeySessionId = "SessionId" -) - -// SessionFilterKey_Values returns all elements of the SessionFilterKey enum -func SessionFilterKey_Values() []string { - return []string{ - SessionFilterKeyInvokedAfter, - SessionFilterKeyInvokedBefore, - SessionFilterKeyTarget, - SessionFilterKeyOwner, - SessionFilterKeyStatus, - SessionFilterKeySessionId, - } -} - -const ( - // SessionStateActive is a SessionState enum value - SessionStateActive = "Active" - - // SessionStateHistory is a SessionState enum value - SessionStateHistory = "History" -) - -// SessionState_Values returns all elements of the SessionState enum -func SessionState_Values() []string { - return []string{ - SessionStateActive, - SessionStateHistory, - } -} - -const ( - // SessionStatusConnected is a SessionStatus enum value - SessionStatusConnected = "Connected" - - // SessionStatusConnecting is a SessionStatus enum value - SessionStatusConnecting = "Connecting" - - // SessionStatusDisconnected is a SessionStatus enum value - SessionStatusDisconnected = "Disconnected" - - // SessionStatusTerminated is a SessionStatus enum value - SessionStatusTerminated = "Terminated" - - // SessionStatusTerminating is a SessionStatus enum value - SessionStatusTerminating = "Terminating" - - // SessionStatusFailed is a SessionStatus enum value - SessionStatusFailed = "Failed" -) - -// SessionStatus_Values returns all elements of the SessionStatus enum -func SessionStatus_Values() []string { - return []string{ - SessionStatusConnected, - SessionStatusConnecting, - SessionStatusDisconnected, - SessionStatusTerminated, - SessionStatusTerminating, - SessionStatusFailed, - } -} - -const ( - // SignalTypeApprove is a SignalType enum value - SignalTypeApprove = "Approve" - - // SignalTypeReject is a SignalType enum value - SignalTypeReject = "Reject" - - // SignalTypeStartStep is a SignalType enum value - SignalTypeStartStep = "StartStep" - - // SignalTypeStopStep is a SignalType enum value - SignalTypeStopStep = "StopStep" - - // SignalTypeResume is a SignalType enum value - SignalTypeResume = "Resume" -) - -// SignalType_Values returns all elements of the SignalType enum -func SignalType_Values() []string { - return []string{ - SignalTypeApprove, - SignalTypeReject, - SignalTypeStartStep, - SignalTypeStopStep, - SignalTypeResume, - } -} - -const ( - // StepExecutionFilterKeyStartTimeBefore is a StepExecutionFilterKey enum value - StepExecutionFilterKeyStartTimeBefore = "StartTimeBefore" - - // StepExecutionFilterKeyStartTimeAfter is a StepExecutionFilterKey enum value - StepExecutionFilterKeyStartTimeAfter = "StartTimeAfter" - - // StepExecutionFilterKeyStepExecutionStatus is a StepExecutionFilterKey enum value - StepExecutionFilterKeyStepExecutionStatus = "StepExecutionStatus" - - // StepExecutionFilterKeyStepExecutionId is a StepExecutionFilterKey enum value - StepExecutionFilterKeyStepExecutionId = "StepExecutionId" - - // StepExecutionFilterKeyStepName is a StepExecutionFilterKey enum value - StepExecutionFilterKeyStepName = "StepName" - - // StepExecutionFilterKeyAction is a StepExecutionFilterKey enum value - StepExecutionFilterKeyAction = "Action" -) - -// StepExecutionFilterKey_Values returns all elements of the StepExecutionFilterKey enum -func StepExecutionFilterKey_Values() []string { - return []string{ - StepExecutionFilterKeyStartTimeBefore, - StepExecutionFilterKeyStartTimeAfter, - StepExecutionFilterKeyStepExecutionStatus, - StepExecutionFilterKeyStepExecutionId, - StepExecutionFilterKeyStepName, - StepExecutionFilterKeyAction, - } -} - -const ( - // StopTypeComplete is a StopType enum value - StopTypeComplete = "Complete" - - // StopTypeCancel is a StopType enum value - StopTypeCancel = "Cancel" -) - -// StopType_Values returns all elements of the StopType enum -func StopType_Values() []string { - return []string{ - StopTypeComplete, - StopTypeCancel, - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/service/ssm/doc.go b/vendor/github.com/aws/aws-sdk-go/service/ssm/doc.go deleted file mode 100644 index 2fe2457..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/ssm/doc.go +++ /dev/null @@ -1,46 +0,0 @@ -// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. - -// Package ssm provides the client and types for making API -// requests to Amazon Simple Systems Manager (SSM). -// -// AWS Systems Manager is a collection of capabilities that helps you automate -// management tasks such as collecting system inventory, applying operating -// system (OS) patches, automating the creation of Amazon Machine Images (AMIs), -// and configuring operating systems (OSs) and applications at scale. Systems -// Manager lets you remotely and securely manage the configuration of your managed -// instances. A managed instance is any Amazon Elastic Compute Cloud instance -// (EC2 instance), or any on-premises server or virtual machine (VM) in your -// hybrid environment that has been configured for Systems Manager. -// -// This reference is intended to be used with the AWS Systems Manager User Guide -// (https://docs.aws.amazon.com/systems-manager/latest/userguide/). -// -// To get started, verify prerequisites and configure managed instances. For -// more information, see Setting up AWS Systems Manager (https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html) -// in the AWS Systems Manager User Guide. -// -// For information about other API actions you can perform on EC2 instances, -// see the Amazon EC2 API Reference (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/). -// For information about how to use a Query API, see Making API requests (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/making-api-requests.html). -// -// See https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06 for more information on this service. -// -// See ssm package documentation for more information. -// https://docs.aws.amazon.com/sdk-for-go/api/service/ssm/ -// -// Using the Client -// -// To contact Amazon Simple Systems Manager (SSM) with the SDK use the New function to create -// a new service client. With that client you can make API requests to the service. -// These clients are safe to use concurrently. -// -// See the SDK's documentation for more information on how to use the SDK. -// https://docs.aws.amazon.com/sdk-for-go/api/ -// -// See aws.Config documentation for more information on configuring SDK clients. -// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config -// -// See the Amazon Simple Systems Manager (SSM) client SSM for more -// information on creating client for this service. -// https://docs.aws.amazon.com/sdk-for-go/api/service/ssm/#New -package ssm diff --git a/vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go b/vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go deleted file mode 100644 index d060be8..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go +++ /dev/null @@ -1,969 +0,0 @@ -// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. - -package ssm - -import ( - "github.com/aws/aws-sdk-go/private/protocol" -) - -const ( - - // ErrCodeAlreadyExistsException for service response error code - // "AlreadyExistsException". - // - // Error returned if an attempt is made to register a patch group with a patch - // baseline that is already registered with a different patch baseline. - ErrCodeAlreadyExistsException = "AlreadyExistsException" - - // ErrCodeAssociatedInstances for service response error code - // "AssociatedInstances". - // - // You must disassociate a document from all instances before you can delete - // it. - ErrCodeAssociatedInstances = "AssociatedInstances" - - // ErrCodeAssociationAlreadyExists for service response error code - // "AssociationAlreadyExists". - // - // The specified association already exists. - ErrCodeAssociationAlreadyExists = "AssociationAlreadyExists" - - // ErrCodeAssociationDoesNotExist for service response error code - // "AssociationDoesNotExist". - // - // The specified association does not exist. - ErrCodeAssociationDoesNotExist = "AssociationDoesNotExist" - - // ErrCodeAssociationExecutionDoesNotExist for service response error code - // "AssociationExecutionDoesNotExist". - // - // The specified execution ID does not exist. Verify the ID number and try again. - ErrCodeAssociationExecutionDoesNotExist = "AssociationExecutionDoesNotExist" - - // ErrCodeAssociationLimitExceeded for service response error code - // "AssociationLimitExceeded". - // - // You can have at most 2,000 active associations. - ErrCodeAssociationLimitExceeded = "AssociationLimitExceeded" - - // ErrCodeAssociationVersionLimitExceeded for service response error code - // "AssociationVersionLimitExceeded". - // - // You have reached the maximum number versions allowed for an association. - // Each association has a limit of 1,000 versions. - ErrCodeAssociationVersionLimitExceeded = "AssociationVersionLimitExceeded" - - // ErrCodeAutomationDefinitionNotApprovedException for service response error code - // "AutomationDefinitionNotApprovedException". - // - // Indicates that the Change Manager change template used in the change request - // was rejected or is still in a pending state. - ErrCodeAutomationDefinitionNotApprovedException = "AutomationDefinitionNotApprovedException" - - // ErrCodeAutomationDefinitionNotFoundException for service response error code - // "AutomationDefinitionNotFoundException". - // - // An Automation document with the specified name could not be found. - ErrCodeAutomationDefinitionNotFoundException = "AutomationDefinitionNotFoundException" - - // ErrCodeAutomationDefinitionVersionNotFoundException for service response error code - // "AutomationDefinitionVersionNotFoundException". - // - // An Automation document with the specified name and version could not be found. - ErrCodeAutomationDefinitionVersionNotFoundException = "AutomationDefinitionVersionNotFoundException" - - // ErrCodeAutomationExecutionLimitExceededException for service response error code - // "AutomationExecutionLimitExceededException". - // - // The number of simultaneously running Automation executions exceeded the allowable - // limit. - ErrCodeAutomationExecutionLimitExceededException = "AutomationExecutionLimitExceededException" - - // ErrCodeAutomationExecutionNotFoundException for service response error code - // "AutomationExecutionNotFoundException". - // - // There is no automation execution information for the requested automation - // execution ID. - ErrCodeAutomationExecutionNotFoundException = "AutomationExecutionNotFoundException" - - // ErrCodeAutomationStepNotFoundException for service response error code - // "AutomationStepNotFoundException". - // - // The specified step name and execution ID don't exist. Verify the information - // and try again. - ErrCodeAutomationStepNotFoundException = "AutomationStepNotFoundException" - - // ErrCodeComplianceTypeCountLimitExceededException for service response error code - // "ComplianceTypeCountLimitExceededException". - // - // You specified too many custom compliance types. You can specify a maximum - // of 10 different types. - ErrCodeComplianceTypeCountLimitExceededException = "ComplianceTypeCountLimitExceededException" - - // ErrCodeCustomSchemaCountLimitExceededException for service response error code - // "CustomSchemaCountLimitExceededException". - // - // You have exceeded the limit for custom schemas. Delete one or more custom - // schemas and try again. - ErrCodeCustomSchemaCountLimitExceededException = "CustomSchemaCountLimitExceededException" - - // ErrCodeDocumentAlreadyExists for service response error code - // "DocumentAlreadyExists". - // - // The specified document already exists. - ErrCodeDocumentAlreadyExists = "DocumentAlreadyExists" - - // ErrCodeDocumentLimitExceeded for service response error code - // "DocumentLimitExceeded". - // - // You can have at most 500 active Systems Manager documents. - ErrCodeDocumentLimitExceeded = "DocumentLimitExceeded" - - // ErrCodeDocumentPermissionLimit for service response error code - // "DocumentPermissionLimit". - // - // The document cannot be shared with more AWS user accounts. You can share - // a document with a maximum of 20 accounts. You can publicly share up to five - // documents. If you need to increase this limit, contact AWS Support. - ErrCodeDocumentPermissionLimit = "DocumentPermissionLimit" - - // ErrCodeDocumentVersionLimitExceeded for service response error code - // "DocumentVersionLimitExceeded". - // - // The document has too many versions. Delete one or more document versions - // and try again. - ErrCodeDocumentVersionLimitExceeded = "DocumentVersionLimitExceeded" - - // ErrCodeDoesNotExistException for service response error code - // "DoesNotExistException". - // - // Error returned when the ID specified for a resource, such as a maintenance - // window or Patch baseline, doesn't exist. - // - // For information about resource quotas in Systems Manager, see Systems Manager - // service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) - // in the AWS General Reference. - ErrCodeDoesNotExistException = "DoesNotExistException" - - // ErrCodeDuplicateDocumentContent for service response error code - // "DuplicateDocumentContent". - // - // The content of the association document matches another document. Change - // the content of the document and try again. - ErrCodeDuplicateDocumentContent = "DuplicateDocumentContent" - - // ErrCodeDuplicateDocumentVersionName for service response error code - // "DuplicateDocumentVersionName". - // - // The version name has already been used in this document. Specify a different - // version name, and then try again. - ErrCodeDuplicateDocumentVersionName = "DuplicateDocumentVersionName" - - // ErrCodeDuplicateInstanceId for service response error code - // "DuplicateInstanceId". - // - // You cannot specify an instance ID in more than one association. - ErrCodeDuplicateInstanceId = "DuplicateInstanceId" - - // ErrCodeFeatureNotAvailableException for service response error code - // "FeatureNotAvailableException". - // - // You attempted to register a LAMBDA or STEP_FUNCTIONS task in a region where - // the corresponding service is not available. - ErrCodeFeatureNotAvailableException = "FeatureNotAvailableException" - - // ErrCodeHierarchyLevelLimitExceededException for service response error code - // "HierarchyLevelLimitExceededException". - // - // A hierarchy can have a maximum of 15 levels. For more information, see Requirements - // and constraints for parameter names (https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html) - // in the AWS Systems Manager User Guide. - ErrCodeHierarchyLevelLimitExceededException = "HierarchyLevelLimitExceededException" - - // ErrCodeHierarchyTypeMismatchException for service response error code - // "HierarchyTypeMismatchException". - // - // Parameter Store does not support changing a parameter type in a hierarchy. - // For example, you can't change a parameter from a String type to a SecureString - // type. You must create a new, unique parameter. - ErrCodeHierarchyTypeMismatchException = "HierarchyTypeMismatchException" - - // ErrCodeIdempotentParameterMismatch for service response error code - // "IdempotentParameterMismatch". - // - // Error returned when an idempotent operation is retried and the parameters - // don't match the original call to the API with the same idempotency token. - ErrCodeIdempotentParameterMismatch = "IdempotentParameterMismatch" - - // ErrCodeIncompatiblePolicyException for service response error code - // "IncompatiblePolicyException". - // - // There is a conflict in the policies specified for this parameter. You can't, - // for example, specify two Expiration policies for a parameter. Review your - // policies, and try again. - ErrCodeIncompatiblePolicyException = "IncompatiblePolicyException" - - // ErrCodeInternalServerError for service response error code - // "InternalServerError". - // - // An error occurred on the server side. - ErrCodeInternalServerError = "InternalServerError" - - // ErrCodeInvalidActivation for service response error code - // "InvalidActivation". - // - // The activation is not valid. The activation might have been deleted, or the - // ActivationId and the ActivationCode do not match. - ErrCodeInvalidActivation = "InvalidActivation" - - // ErrCodeInvalidActivationId for service response error code - // "InvalidActivationId". - // - // The activation ID is not valid. Verify the you entered the correct ActivationId - // or ActivationCode and try again. - ErrCodeInvalidActivationId = "InvalidActivationId" - - // ErrCodeInvalidAggregatorException for service response error code - // "InvalidAggregatorException". - // - // The specified aggregator is not valid for inventory groups. Verify that the - // aggregator uses a valid inventory type such as AWS:Application or AWS:InstanceInformation. - ErrCodeInvalidAggregatorException = "InvalidAggregatorException" - - // ErrCodeInvalidAllowedPatternException for service response error code - // "InvalidAllowedPatternException". - // - // The request does not meet the regular expression requirement. - ErrCodeInvalidAllowedPatternException = "InvalidAllowedPatternException" - - // ErrCodeInvalidAssociation for service response error code - // "InvalidAssociation". - // - // The association is not valid or does not exist. - ErrCodeInvalidAssociation = "InvalidAssociation" - - // ErrCodeInvalidAssociationVersion for service response error code - // "InvalidAssociationVersion". - // - // The version you specified is not valid. Use ListAssociationVersions to view - // all versions of an association according to the association ID. Or, use the - // $LATEST parameter to view the latest version of the association. - ErrCodeInvalidAssociationVersion = "InvalidAssociationVersion" - - // ErrCodeInvalidAutomationExecutionParametersException for service response error code - // "InvalidAutomationExecutionParametersException". - // - // The supplied parameters for invoking the specified Automation document are - // incorrect. For example, they may not match the set of parameters permitted - // for the specified Automation document. - ErrCodeInvalidAutomationExecutionParametersException = "InvalidAutomationExecutionParametersException" - - // ErrCodeInvalidAutomationSignalException for service response error code - // "InvalidAutomationSignalException". - // - // The signal is not valid for the current Automation execution. - ErrCodeInvalidAutomationSignalException = "InvalidAutomationSignalException" - - // ErrCodeInvalidAutomationStatusUpdateException for service response error code - // "InvalidAutomationStatusUpdateException". - // - // The specified update status operation is not valid. - ErrCodeInvalidAutomationStatusUpdateException = "InvalidAutomationStatusUpdateException" - - // ErrCodeInvalidCommandId for service response error code - // "InvalidCommandId". - ErrCodeInvalidCommandId = "InvalidCommandId" - - // ErrCodeInvalidDeleteInventoryParametersException for service response error code - // "InvalidDeleteInventoryParametersException". - // - // One or more of the parameters specified for the delete operation is not valid. - // Verify all parameters and try again. - ErrCodeInvalidDeleteInventoryParametersException = "InvalidDeleteInventoryParametersException" - - // ErrCodeInvalidDeletionIdException for service response error code - // "InvalidDeletionIdException". - // - // The ID specified for the delete operation does not exist or is not valid. - // Verify the ID and try again. - ErrCodeInvalidDeletionIdException = "InvalidDeletionIdException" - - // ErrCodeInvalidDocument for service response error code - // "InvalidDocument". - // - // The specified document does not exist. - ErrCodeInvalidDocument = "InvalidDocument" - - // ErrCodeInvalidDocumentContent for service response error code - // "InvalidDocumentContent". - // - // The content for the document is not valid. - ErrCodeInvalidDocumentContent = "InvalidDocumentContent" - - // ErrCodeInvalidDocumentOperation for service response error code - // "InvalidDocumentOperation". - // - // You attempted to delete a document while it is still shared. You must stop - // sharing the document before you can delete it. - ErrCodeInvalidDocumentOperation = "InvalidDocumentOperation" - - // ErrCodeInvalidDocumentSchemaVersion for service response error code - // "InvalidDocumentSchemaVersion". - // - // The version of the document schema is not supported. - ErrCodeInvalidDocumentSchemaVersion = "InvalidDocumentSchemaVersion" - - // ErrCodeInvalidDocumentType for service response error code - // "InvalidDocumentType". - // - // The document type is not valid. Valid document types are described in the - // DocumentType property. - ErrCodeInvalidDocumentType = "InvalidDocumentType" - - // ErrCodeInvalidDocumentVersion for service response error code - // "InvalidDocumentVersion". - // - // The document version is not valid or does not exist. - ErrCodeInvalidDocumentVersion = "InvalidDocumentVersion" - - // ErrCodeInvalidFilter for service response error code - // "InvalidFilter". - // - // The filter name is not valid. Verify the you entered the correct name and - // try again. - ErrCodeInvalidFilter = "InvalidFilter" - - // ErrCodeInvalidFilterKey for service response error code - // "InvalidFilterKey". - // - // The specified key is not valid. - ErrCodeInvalidFilterKey = "InvalidFilterKey" - - // ErrCodeInvalidFilterOption for service response error code - // "InvalidFilterOption". - // - // The specified filter option is not valid. Valid options are Equals and BeginsWith. - // For Path filter, valid options are Recursive and OneLevel. - ErrCodeInvalidFilterOption = "InvalidFilterOption" - - // ErrCodeInvalidFilterValue for service response error code - // "InvalidFilterValue". - // - // The filter value is not valid. Verify the value and try again. - ErrCodeInvalidFilterValue = "InvalidFilterValue" - - // ErrCodeInvalidInstanceId for service response error code - // "InvalidInstanceId". - // - // The following problems can cause this exception: - // - // You do not have permission to access the instance. - // - // SSM Agent is not running. Verify that SSM Agent is running. - // - // SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent. - // - // The instance is not in valid state. Valid states are: Running, Pending, Stopped, - // Stopping. Invalid states are: Shutting-down and Terminated. - ErrCodeInvalidInstanceId = "InvalidInstanceId" - - // ErrCodeInvalidInstanceInformationFilterValue for service response error code - // "InvalidInstanceInformationFilterValue". - // - // The specified filter value is not valid. - ErrCodeInvalidInstanceInformationFilterValue = "InvalidInstanceInformationFilterValue" - - // ErrCodeInvalidInventoryGroupException for service response error code - // "InvalidInventoryGroupException". - // - // The specified inventory group is not valid. - ErrCodeInvalidInventoryGroupException = "InvalidInventoryGroupException" - - // ErrCodeInvalidInventoryItemContextException for service response error code - // "InvalidInventoryItemContextException". - // - // You specified invalid keys or values in the Context attribute for InventoryItem. - // Verify the keys and values, and try again. - ErrCodeInvalidInventoryItemContextException = "InvalidInventoryItemContextException" - - // ErrCodeInvalidInventoryRequestException for service response error code - // "InvalidInventoryRequestException". - // - // The request is not valid. - ErrCodeInvalidInventoryRequestException = "InvalidInventoryRequestException" - - // ErrCodeInvalidItemContentException for service response error code - // "InvalidItemContentException". - // - // One or more content items is not valid. - ErrCodeInvalidItemContentException = "InvalidItemContentException" - - // ErrCodeInvalidKeyId for service response error code - // "InvalidKeyId". - // - // The query key ID is not valid. - ErrCodeInvalidKeyId = "InvalidKeyId" - - // ErrCodeInvalidNextToken for service response error code - // "InvalidNextToken". - // - // The specified token is not valid. - ErrCodeInvalidNextToken = "InvalidNextToken" - - // ErrCodeInvalidNotificationConfig for service response error code - // "InvalidNotificationConfig". - // - // One or more configuration items is not valid. Verify that a valid Amazon - // Resource Name (ARN) was provided for an Amazon SNS topic. - ErrCodeInvalidNotificationConfig = "InvalidNotificationConfig" - - // ErrCodeInvalidOptionException for service response error code - // "InvalidOptionException". - // - // The delete inventory option specified is not valid. Verify the option and - // try again. - ErrCodeInvalidOptionException = "InvalidOptionException" - - // ErrCodeInvalidOutputFolder for service response error code - // "InvalidOutputFolder". - // - // The S3 bucket does not exist. - ErrCodeInvalidOutputFolder = "InvalidOutputFolder" - - // ErrCodeInvalidOutputLocation for service response error code - // "InvalidOutputLocation". - // - // The output location is not valid or does not exist. - ErrCodeInvalidOutputLocation = "InvalidOutputLocation" - - // ErrCodeInvalidParameters for service response error code - // "InvalidParameters". - // - // You must specify values for all required parameters in the Systems Manager - // document. You can only supply values to parameters defined in the Systems - // Manager document. - ErrCodeInvalidParameters = "InvalidParameters" - - // ErrCodeInvalidPermissionType for service response error code - // "InvalidPermissionType". - // - // The permission type is not supported. Share is the only supported permission - // type. - ErrCodeInvalidPermissionType = "InvalidPermissionType" - - // ErrCodeInvalidPluginName for service response error code - // "InvalidPluginName". - // - // The plugin name is not valid. - ErrCodeInvalidPluginName = "InvalidPluginName" - - // ErrCodeInvalidPolicyAttributeException for service response error code - // "InvalidPolicyAttributeException". - // - // A policy attribute or its value is invalid. - ErrCodeInvalidPolicyAttributeException = "InvalidPolicyAttributeException" - - // ErrCodeInvalidPolicyTypeException for service response error code - // "InvalidPolicyTypeException". - // - // The policy type is not supported. Parameter Store supports the following - // policy types: Expiration, ExpirationNotification, and NoChangeNotification. - ErrCodeInvalidPolicyTypeException = "InvalidPolicyTypeException" - - // ErrCodeInvalidResourceId for service response error code - // "InvalidResourceId". - // - // The resource ID is not valid. Verify that you entered the correct ID and - // try again. - ErrCodeInvalidResourceId = "InvalidResourceId" - - // ErrCodeInvalidResourceType for service response error code - // "InvalidResourceType". - // - // The resource type is not valid. For example, if you are attempting to tag - // an instance, the instance must be a registered, managed instance. - ErrCodeInvalidResourceType = "InvalidResourceType" - - // ErrCodeInvalidResultAttributeException for service response error code - // "InvalidResultAttributeException". - // - // The specified inventory item result attribute is not valid. - ErrCodeInvalidResultAttributeException = "InvalidResultAttributeException" - - // ErrCodeInvalidRole for service response error code - // "InvalidRole". - // - // The role name can't contain invalid characters. Also verify that you specified - // an IAM role for notifications that includes the required trust policy. For - // information about configuring the IAM role for Run Command notifications, - // see Configuring Amazon SNS Notifications for Run Command (https://docs.aws.amazon.com/systems-manager/latest/userguide/rc-sns-notifications.html) - // in the AWS Systems Manager User Guide. - ErrCodeInvalidRole = "InvalidRole" - - // ErrCodeInvalidSchedule for service response error code - // "InvalidSchedule". - // - // The schedule is invalid. Verify your cron or rate expression and try again. - ErrCodeInvalidSchedule = "InvalidSchedule" - - // ErrCodeInvalidTarget for service response error code - // "InvalidTarget". - // - // The target is not valid or does not exist. It might not be configured for - // Systems Manager or you might not have permission to perform the operation. - ErrCodeInvalidTarget = "InvalidTarget" - - // ErrCodeInvalidTypeNameException for service response error code - // "InvalidTypeNameException". - // - // The parameter type name is not valid. - ErrCodeInvalidTypeNameException = "InvalidTypeNameException" - - // ErrCodeInvalidUpdate for service response error code - // "InvalidUpdate". - // - // The update is not valid. - ErrCodeInvalidUpdate = "InvalidUpdate" - - // ErrCodeInvocationDoesNotExist for service response error code - // "InvocationDoesNotExist". - // - // The command ID and instance ID you specified did not match any invocations. - // Verify the command ID and the instance ID and try again. - ErrCodeInvocationDoesNotExist = "InvocationDoesNotExist" - - // ErrCodeItemContentMismatchException for service response error code - // "ItemContentMismatchException". - // - // The inventory item has invalid content. - ErrCodeItemContentMismatchException = "ItemContentMismatchException" - - // ErrCodeItemSizeLimitExceededException for service response error code - // "ItemSizeLimitExceededException". - // - // The inventory item size has exceeded the size limit. - ErrCodeItemSizeLimitExceededException = "ItemSizeLimitExceededException" - - // ErrCodeMaxDocumentSizeExceeded for service response error code - // "MaxDocumentSizeExceeded". - // - // The size limit of a document is 64 KB. - ErrCodeMaxDocumentSizeExceeded = "MaxDocumentSizeExceeded" - - // ErrCodeOpsItemAlreadyExistsException for service response error code - // "OpsItemAlreadyExistsException". - // - // The OpsItem already exists. - ErrCodeOpsItemAlreadyExistsException = "OpsItemAlreadyExistsException" - - // ErrCodeOpsItemInvalidParameterException for service response error code - // "OpsItemInvalidParameterException". - // - // A specified parameter argument isn't valid. Verify the available arguments - // and try again. - ErrCodeOpsItemInvalidParameterException = "OpsItemInvalidParameterException" - - // ErrCodeOpsItemLimitExceededException for service response error code - // "OpsItemLimitExceededException". - // - // The request caused OpsItems to exceed one or more quotas. For information - // about OpsItem quotas, see What are the resource limits for OpsCenter? (https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-learn-more.html#OpsCenter-learn-more-limits). - ErrCodeOpsItemLimitExceededException = "OpsItemLimitExceededException" - - // ErrCodeOpsItemNotFoundException for service response error code - // "OpsItemNotFoundException". - // - // The specified OpsItem ID doesn't exist. Verify the ID and try again. - ErrCodeOpsItemNotFoundException = "OpsItemNotFoundException" - - // ErrCodeOpsMetadataAlreadyExistsException for service response error code - // "OpsMetadataAlreadyExistsException". - // - // An OpsMetadata object already exists for the selected resource. - ErrCodeOpsMetadataAlreadyExistsException = "OpsMetadataAlreadyExistsException" - - // ErrCodeOpsMetadataInvalidArgumentException for service response error code - // "OpsMetadataInvalidArgumentException". - // - // One of the arguments passed is invalid. - ErrCodeOpsMetadataInvalidArgumentException = "OpsMetadataInvalidArgumentException" - - // ErrCodeOpsMetadataKeyLimitExceededException for service response error code - // "OpsMetadataKeyLimitExceededException". - // - // The OpsMetadata object exceeds the maximum number of OpsMetadata keys that - // you can assign to an application in Application Manager. - ErrCodeOpsMetadataKeyLimitExceededException = "OpsMetadataKeyLimitExceededException" - - // ErrCodeOpsMetadataLimitExceededException for service response error code - // "OpsMetadataLimitExceededException". - // - // Your account reached the maximum number of OpsMetadata objects allowed by - // Application Manager. The maximum is 200 OpsMetadata objects. Delete one or - // more OpsMetadata object and try again. - ErrCodeOpsMetadataLimitExceededException = "OpsMetadataLimitExceededException" - - // ErrCodeOpsMetadataNotFoundException for service response error code - // "OpsMetadataNotFoundException". - // - // The OpsMetadata object does not exist. - ErrCodeOpsMetadataNotFoundException = "OpsMetadataNotFoundException" - - // ErrCodeOpsMetadataTooManyUpdatesException for service response error code - // "OpsMetadataTooManyUpdatesException". - // - // The system is processing too many concurrent updates. Wait a few moments - // and try again. - ErrCodeOpsMetadataTooManyUpdatesException = "OpsMetadataTooManyUpdatesException" - - // ErrCodeParameterAlreadyExists for service response error code - // "ParameterAlreadyExists". - // - // The parameter already exists. You can't create duplicate parameters. - ErrCodeParameterAlreadyExists = "ParameterAlreadyExists" - - // ErrCodeParameterLimitExceeded for service response error code - // "ParameterLimitExceeded". - // - // You have exceeded the number of parameters for this AWS account. Delete one - // or more parameters and try again. - ErrCodeParameterLimitExceeded = "ParameterLimitExceeded" - - // ErrCodeParameterMaxVersionLimitExceeded for service response error code - // "ParameterMaxVersionLimitExceeded". - // - // Parameter Store retains the 100 most recently created versions of a parameter. - // After this number of versions has been created, Parameter Store deletes the - // oldest version when a new one is created. However, if the oldest version - // has a label attached to it, Parameter Store will not delete the version and - // instead presents this error message: - // - // An error occurred (ParameterMaxVersionLimitExceeded) when calling the PutParameter - // operation: You attempted to create a new version of parameter-name by calling - // the PutParameter API with the overwrite flag. Version version-number, the - // oldest version, can't be deleted because it has a label associated with it. - // Move the label to another version of the parameter, and try again. - // - // This safeguard is to prevent parameter versions with mission critical labels - // assigned to them from being deleted. To continue creating new parameters, - // first move the label from the oldest version of the parameter to a newer - // one for use in your operations. For information about moving parameter labels, - // see Move a parameter label (console) (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-console-move) - // or Move a parameter label (CLI) (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-cli-move) - // in the AWS Systems Manager User Guide. - ErrCodeParameterMaxVersionLimitExceeded = "ParameterMaxVersionLimitExceeded" - - // ErrCodeParameterNotFound for service response error code - // "ParameterNotFound". - // - // The parameter could not be found. Verify the name and try again. - ErrCodeParameterNotFound = "ParameterNotFound" - - // ErrCodeParameterPatternMismatchException for service response error code - // "ParameterPatternMismatchException". - // - // The parameter name is not valid. - ErrCodeParameterPatternMismatchException = "ParameterPatternMismatchException" - - // ErrCodeParameterVersionLabelLimitExceeded for service response error code - // "ParameterVersionLabelLimitExceeded". - // - // A parameter version can have a maximum of ten labels. - ErrCodeParameterVersionLabelLimitExceeded = "ParameterVersionLabelLimitExceeded" - - // ErrCodeParameterVersionNotFound for service response error code - // "ParameterVersionNotFound". - // - // The specified parameter version was not found. Verify the parameter name - // and version, and try again. - ErrCodeParameterVersionNotFound = "ParameterVersionNotFound" - - // ErrCodePoliciesLimitExceededException for service response error code - // "PoliciesLimitExceededException". - // - // You specified more than the maximum number of allowed policies for the parameter. - // The maximum is 10. - ErrCodePoliciesLimitExceededException = "PoliciesLimitExceededException" - - // ErrCodeResourceDataSyncAlreadyExistsException for service response error code - // "ResourceDataSyncAlreadyExistsException". - // - // A sync configuration with the same name already exists. - ErrCodeResourceDataSyncAlreadyExistsException = "ResourceDataSyncAlreadyExistsException" - - // ErrCodeResourceDataSyncConflictException for service response error code - // "ResourceDataSyncConflictException". - // - // Another UpdateResourceDataSync request is being processed. Wait a few minutes - // and try again. - ErrCodeResourceDataSyncConflictException = "ResourceDataSyncConflictException" - - // ErrCodeResourceDataSyncCountExceededException for service response error code - // "ResourceDataSyncCountExceededException". - // - // You have exceeded the allowed maximum sync configurations. - ErrCodeResourceDataSyncCountExceededException = "ResourceDataSyncCountExceededException" - - // ErrCodeResourceDataSyncInvalidConfigurationException for service response error code - // "ResourceDataSyncInvalidConfigurationException". - // - // The specified sync configuration is invalid. - ErrCodeResourceDataSyncInvalidConfigurationException = "ResourceDataSyncInvalidConfigurationException" - - // ErrCodeResourceDataSyncNotFoundException for service response error code - // "ResourceDataSyncNotFoundException". - // - // The specified sync name was not found. - ErrCodeResourceDataSyncNotFoundException = "ResourceDataSyncNotFoundException" - - // ErrCodeResourceInUseException for service response error code - // "ResourceInUseException". - // - // Error returned if an attempt is made to delete a patch baseline that is registered - // for a patch group. - ErrCodeResourceInUseException = "ResourceInUseException" - - // ErrCodeResourceLimitExceededException for service response error code - // "ResourceLimitExceededException". - // - // Error returned when the caller has exceeded the default resource quotas. - // For example, too many maintenance windows or patch baselines have been created. - // - // For information about resource quotas in Systems Manager, see Systems Manager - // service quotas (http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) - // in the AWS General Reference. - ErrCodeResourceLimitExceededException = "ResourceLimitExceededException" - - // ErrCodeServiceSettingNotFound for service response error code - // "ServiceSettingNotFound". - // - // The specified service setting was not found. Either the service name or the - // setting has not been provisioned by the AWS service team. - ErrCodeServiceSettingNotFound = "ServiceSettingNotFound" - - // ErrCodeStatusUnchanged for service response error code - // "StatusUnchanged". - // - // The updated status is the same as the current status. - ErrCodeStatusUnchanged = "StatusUnchanged" - - // ErrCodeSubTypeCountLimitExceededException for service response error code - // "SubTypeCountLimitExceededException". - // - // The sub-type count exceeded the limit for the inventory type. - ErrCodeSubTypeCountLimitExceededException = "SubTypeCountLimitExceededException" - - // ErrCodeTargetInUseException for service response error code - // "TargetInUseException". - // - // You specified the Safe option for the DeregisterTargetFromMaintenanceWindow - // operation, but the target is still referenced in a task. - ErrCodeTargetInUseException = "TargetInUseException" - - // ErrCodeTargetNotConnected for service response error code - // "TargetNotConnected". - // - // The specified target instance for the session is not fully configured for - // use with Session Manager. For more information, see Getting started with - // Session Manager (https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started.html) - // in the AWS Systems Manager User Guide. This error is also returned if you - // attempt to start a session on an instance that is located in a different - // account or Region - ErrCodeTargetNotConnected = "TargetNotConnected" - - // ErrCodeTooManyTagsError for service response error code - // "TooManyTagsError". - // - // The Targets parameter includes too many tags. Remove one or more tags and - // try the command again. - ErrCodeTooManyTagsError = "TooManyTagsError" - - // ErrCodeTooManyUpdates for service response error code - // "TooManyUpdates". - // - // There are concurrent updates for a resource that supports one update at a - // time. - ErrCodeTooManyUpdates = "TooManyUpdates" - - // ErrCodeTotalSizeLimitExceededException for service response error code - // "TotalSizeLimitExceededException". - // - // The size of inventory data has exceeded the total size limit for the resource. - ErrCodeTotalSizeLimitExceededException = "TotalSizeLimitExceededException" - - // ErrCodeUnsupportedCalendarException for service response error code - // "UnsupportedCalendarException". - // - // The calendar entry contained in the specified Systems Manager document is - // not supported. - ErrCodeUnsupportedCalendarException = "UnsupportedCalendarException" - - // ErrCodeUnsupportedFeatureRequiredException for service response error code - // "UnsupportedFeatureRequiredException". - // - // Microsoft application patching is only available on EC2 instances and advanced - // instances. To patch Microsoft applications on on-premises servers and VMs, - // you must enable advanced instances. For more information, see Using the advanced-instances - // tier (https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances-advanced.html) - // in the AWS Systems Manager User Guide. - ErrCodeUnsupportedFeatureRequiredException = "UnsupportedFeatureRequiredException" - - // ErrCodeUnsupportedInventoryItemContextException for service response error code - // "UnsupportedInventoryItemContextException". - // - // The Context attribute that you specified for the InventoryItem is not allowed - // for this inventory type. You can only use the Context attribute with inventory - // types like AWS:ComplianceItem. - ErrCodeUnsupportedInventoryItemContextException = "UnsupportedInventoryItemContextException" - - // ErrCodeUnsupportedInventorySchemaVersionException for service response error code - // "UnsupportedInventorySchemaVersionException". - // - // Inventory item type schema version has to match supported versions in the - // service. Check output of GetInventorySchema to see the available schema version - // for each type. - ErrCodeUnsupportedInventorySchemaVersionException = "UnsupportedInventorySchemaVersionException" - - // ErrCodeUnsupportedOperatingSystem for service response error code - // "UnsupportedOperatingSystem". - // - // The operating systems you specified is not supported, or the operation is - // not supported for the operating system. - ErrCodeUnsupportedOperatingSystem = "UnsupportedOperatingSystem" - - // ErrCodeUnsupportedParameterType for service response error code - // "UnsupportedParameterType". - // - // The parameter type is not supported. - ErrCodeUnsupportedParameterType = "UnsupportedParameterType" - - // ErrCodeUnsupportedPlatformType for service response error code - // "UnsupportedPlatformType". - // - // The document does not support the platform type of the given instance ID(s). - // For example, you sent an document for a Windows instance to a Linux instance. - ErrCodeUnsupportedPlatformType = "UnsupportedPlatformType" -) - -var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ - "AlreadyExistsException": newErrorAlreadyExistsException, - "AssociatedInstances": newErrorAssociatedInstances, - "AssociationAlreadyExists": newErrorAssociationAlreadyExists, - "AssociationDoesNotExist": newErrorAssociationDoesNotExist, - "AssociationExecutionDoesNotExist": newErrorAssociationExecutionDoesNotExist, - "AssociationLimitExceeded": newErrorAssociationLimitExceeded, - "AssociationVersionLimitExceeded": newErrorAssociationVersionLimitExceeded, - "AutomationDefinitionNotApprovedException": newErrorAutomationDefinitionNotApprovedException, - "AutomationDefinitionNotFoundException": newErrorAutomationDefinitionNotFoundException, - "AutomationDefinitionVersionNotFoundException": newErrorAutomationDefinitionVersionNotFoundException, - "AutomationExecutionLimitExceededException": newErrorAutomationExecutionLimitExceededException, - "AutomationExecutionNotFoundException": newErrorAutomationExecutionNotFoundException, - "AutomationStepNotFoundException": newErrorAutomationStepNotFoundException, - "ComplianceTypeCountLimitExceededException": newErrorComplianceTypeCountLimitExceededException, - "CustomSchemaCountLimitExceededException": newErrorCustomSchemaCountLimitExceededException, - "DocumentAlreadyExists": newErrorDocumentAlreadyExists, - "DocumentLimitExceeded": newErrorDocumentLimitExceeded, - "DocumentPermissionLimit": newErrorDocumentPermissionLimit, - "DocumentVersionLimitExceeded": newErrorDocumentVersionLimitExceeded, - "DoesNotExistException": newErrorDoesNotExistException, - "DuplicateDocumentContent": newErrorDuplicateDocumentContent, - "DuplicateDocumentVersionName": newErrorDuplicateDocumentVersionName, - "DuplicateInstanceId": newErrorDuplicateInstanceId, - "FeatureNotAvailableException": newErrorFeatureNotAvailableException, - "HierarchyLevelLimitExceededException": newErrorHierarchyLevelLimitExceededException, - "HierarchyTypeMismatchException": newErrorHierarchyTypeMismatchException, - "IdempotentParameterMismatch": newErrorIdempotentParameterMismatch, - "IncompatiblePolicyException": newErrorIncompatiblePolicyException, - "InternalServerError": newErrorInternalServerError, - "InvalidActivation": newErrorInvalidActivation, - "InvalidActivationId": newErrorInvalidActivationId, - "InvalidAggregatorException": newErrorInvalidAggregatorException, - "InvalidAllowedPatternException": newErrorInvalidAllowedPatternException, - "InvalidAssociation": newErrorInvalidAssociation, - "InvalidAssociationVersion": newErrorInvalidAssociationVersion, - "InvalidAutomationExecutionParametersException": newErrorInvalidAutomationExecutionParametersException, - "InvalidAutomationSignalException": newErrorInvalidAutomationSignalException, - "InvalidAutomationStatusUpdateException": newErrorInvalidAutomationStatusUpdateException, - "InvalidCommandId": newErrorInvalidCommandId, - "InvalidDeleteInventoryParametersException": newErrorInvalidDeleteInventoryParametersException, - "InvalidDeletionIdException": newErrorInvalidDeletionIdException, - "InvalidDocument": newErrorInvalidDocument, - "InvalidDocumentContent": newErrorInvalidDocumentContent, - "InvalidDocumentOperation": newErrorInvalidDocumentOperation, - "InvalidDocumentSchemaVersion": newErrorInvalidDocumentSchemaVersion, - "InvalidDocumentType": newErrorInvalidDocumentType, - "InvalidDocumentVersion": newErrorInvalidDocumentVersion, - "InvalidFilter": newErrorInvalidFilter, - "InvalidFilterKey": newErrorInvalidFilterKey, - "InvalidFilterOption": newErrorInvalidFilterOption, - "InvalidFilterValue": newErrorInvalidFilterValue, - "InvalidInstanceId": newErrorInvalidInstanceId, - "InvalidInstanceInformationFilterValue": newErrorInvalidInstanceInformationFilterValue, - "InvalidInventoryGroupException": newErrorInvalidInventoryGroupException, - "InvalidInventoryItemContextException": newErrorInvalidInventoryItemContextException, - "InvalidInventoryRequestException": newErrorInvalidInventoryRequestException, - "InvalidItemContentException": newErrorInvalidItemContentException, - "InvalidKeyId": newErrorInvalidKeyId, - "InvalidNextToken": newErrorInvalidNextToken, - "InvalidNotificationConfig": newErrorInvalidNotificationConfig, - "InvalidOptionException": newErrorInvalidOptionException, - "InvalidOutputFolder": newErrorInvalidOutputFolder, - "InvalidOutputLocation": newErrorInvalidOutputLocation, - "InvalidParameters": newErrorInvalidParameters, - "InvalidPermissionType": newErrorInvalidPermissionType, - "InvalidPluginName": newErrorInvalidPluginName, - "InvalidPolicyAttributeException": newErrorInvalidPolicyAttributeException, - "InvalidPolicyTypeException": newErrorInvalidPolicyTypeException, - "InvalidResourceId": newErrorInvalidResourceId, - "InvalidResourceType": newErrorInvalidResourceType, - "InvalidResultAttributeException": newErrorInvalidResultAttributeException, - "InvalidRole": newErrorInvalidRole, - "InvalidSchedule": newErrorInvalidSchedule, - "InvalidTarget": newErrorInvalidTarget, - "InvalidTypeNameException": newErrorInvalidTypeNameException, - "InvalidUpdate": newErrorInvalidUpdate, - "InvocationDoesNotExist": newErrorInvocationDoesNotExist, - "ItemContentMismatchException": newErrorItemContentMismatchException, - "ItemSizeLimitExceededException": newErrorItemSizeLimitExceededException, - "MaxDocumentSizeExceeded": newErrorMaxDocumentSizeExceeded, - "OpsItemAlreadyExistsException": newErrorOpsItemAlreadyExistsException, - "OpsItemInvalidParameterException": newErrorOpsItemInvalidParameterException, - "OpsItemLimitExceededException": newErrorOpsItemLimitExceededException, - "OpsItemNotFoundException": newErrorOpsItemNotFoundException, - "OpsMetadataAlreadyExistsException": newErrorOpsMetadataAlreadyExistsException, - "OpsMetadataInvalidArgumentException": newErrorOpsMetadataInvalidArgumentException, - "OpsMetadataKeyLimitExceededException": newErrorOpsMetadataKeyLimitExceededException, - "OpsMetadataLimitExceededException": newErrorOpsMetadataLimitExceededException, - "OpsMetadataNotFoundException": newErrorOpsMetadataNotFoundException, - "OpsMetadataTooManyUpdatesException": newErrorOpsMetadataTooManyUpdatesException, - "ParameterAlreadyExists": newErrorParameterAlreadyExists, - "ParameterLimitExceeded": newErrorParameterLimitExceeded, - "ParameterMaxVersionLimitExceeded": newErrorParameterMaxVersionLimitExceeded, - "ParameterNotFound": newErrorParameterNotFound, - "ParameterPatternMismatchException": newErrorParameterPatternMismatchException, - "ParameterVersionLabelLimitExceeded": newErrorParameterVersionLabelLimitExceeded, - "ParameterVersionNotFound": newErrorParameterVersionNotFound, - "PoliciesLimitExceededException": newErrorPoliciesLimitExceededException, - "ResourceDataSyncAlreadyExistsException": newErrorResourceDataSyncAlreadyExistsException, - "ResourceDataSyncConflictException": newErrorResourceDataSyncConflictException, - "ResourceDataSyncCountExceededException": newErrorResourceDataSyncCountExceededException, - "ResourceDataSyncInvalidConfigurationException": newErrorResourceDataSyncInvalidConfigurationException, - "ResourceDataSyncNotFoundException": newErrorResourceDataSyncNotFoundException, - "ResourceInUseException": newErrorResourceInUseException, - "ResourceLimitExceededException": newErrorResourceLimitExceededException, - "ServiceSettingNotFound": newErrorServiceSettingNotFound, - "StatusUnchanged": newErrorStatusUnchanged, - "SubTypeCountLimitExceededException": newErrorSubTypeCountLimitExceededException, - "TargetInUseException": newErrorTargetInUseException, - "TargetNotConnected": newErrorTargetNotConnected, - "TooManyTagsError": newErrorTooManyTagsError, - "TooManyUpdates": newErrorTooManyUpdates, - "TotalSizeLimitExceededException": newErrorTotalSizeLimitExceededException, - "UnsupportedCalendarException": newErrorUnsupportedCalendarException, - "UnsupportedFeatureRequiredException": newErrorUnsupportedFeatureRequiredException, - "UnsupportedInventoryItemContextException": newErrorUnsupportedInventoryItemContextException, - "UnsupportedInventorySchemaVersionException": newErrorUnsupportedInventorySchemaVersionException, - "UnsupportedOperatingSystem": newErrorUnsupportedOperatingSystem, - "UnsupportedParameterType": newErrorUnsupportedParameterType, - "UnsupportedPlatformType": newErrorUnsupportedPlatformType, -} diff --git a/vendor/github.com/aws/aws-sdk-go/service/ssm/service.go b/vendor/github.com/aws/aws-sdk-go/service/ssm/service.go deleted file mode 100644 index 9d09702..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/ssm/service.go +++ /dev/null @@ -1,103 +0,0 @@ -// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. - -package ssm - -import ( - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/client" - "github.com/aws/aws-sdk-go/aws/client/metadata" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/aws/signer/v4" - "github.com/aws/aws-sdk-go/private/protocol" - "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" -) - -// SSM provides the API operation methods for making requests to -// Amazon Simple Systems Manager (SSM). See this package's package overview docs -// for details on the service. -// -// SSM methods are safe to use concurrently. It is not safe to -// modify mutate any of the struct's properties though. -type SSM struct { - *client.Client -} - -// Used for custom client initialization logic -var initClient func(*client.Client) - -// Used for custom request initialization logic -var initRequest func(*request.Request) - -// Service information constants -const ( - ServiceName = "ssm" // Name of service. - EndpointsID = ServiceName // ID to lookup a service endpoint with. - ServiceID = "SSM" // ServiceID is a unique identifier of a specific service. -) - -// New creates a new instance of the SSM client with a session. -// If additional configuration is needed for the client instance use the optional -// aws.Config parameter to add your extra config. -// -// Example: -// mySession := session.Must(session.NewSession()) -// -// // Create a SSM client from just a session. -// svc := ssm.New(mySession) -// -// // Create a SSM client with additional configuration -// svc := ssm.New(mySession, aws.NewConfig().WithRegion("us-west-2")) -func New(p client.ConfigProvider, cfgs ...*aws.Config) *SSM { - c := p.ClientConfig(EndpointsID, cfgs...) - return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName) -} - -// newClient creates, initializes and returns a new service client instance. -func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *SSM { - svc := &SSM{ - Client: client.New( - cfg, - metadata.ClientInfo{ - ServiceName: ServiceName, - ServiceID: ServiceID, - SigningName: signingName, - SigningRegion: signingRegion, - PartitionID: partitionID, - Endpoint: endpoint, - APIVersion: "2014-11-06", - JSONVersion: "1.1", - TargetPrefix: "AmazonSSM", - }, - handlers, - ), - } - - // Handlers - svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) - svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler) - svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler) - svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler) - svc.Handlers.UnmarshalError.PushBackNamed( - protocol.NewUnmarshalErrorHandler(jsonrpc.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), - ) - - // Run custom client initialization if present - if initClient != nil { - initClient(svc.Client) - } - - return svc -} - -// newRequest creates a new request for a SSM operation and runs any -// custom request initialization. -func (c *SSM) newRequest(op *request.Operation, params, data interface{}) *request.Request { - req := c.NewRequest(op, params, data) - - // Run custom request initialization if present - if initRequest != nil { - initRequest(req) - } - - return req -} diff --git a/vendor/github.com/aws/aws-sdk-go/service/ssm/waiters.go b/vendor/github.com/aws/aws-sdk-go/service/ssm/waiters.go deleted file mode 100644 index 4bc0d14..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/ssm/waiters.go +++ /dev/null @@ -1,91 +0,0 @@ -// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. - -package ssm - -import ( - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/request" -) - -// WaitUntilCommandExecuted uses the Amazon SSM API operation -// GetCommandInvocation to wait for a condition to be met before returning. -// If the condition is not met within the max attempt window, an error will -// be returned. -func (c *SSM) WaitUntilCommandExecuted(input *GetCommandInvocationInput) error { - return c.WaitUntilCommandExecutedWithContext(aws.BackgroundContext(), input) -} - -// WaitUntilCommandExecutedWithContext is an extended version of WaitUntilCommandExecuted. -// With the support for passing in a context and options to configure the -// Waiter and the underlying request options. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSM) WaitUntilCommandExecutedWithContext(ctx aws.Context, input *GetCommandInvocationInput, opts ...request.WaiterOption) error { - w := request.Waiter{ - Name: "WaitUntilCommandExecuted", - MaxAttempts: 20, - Delay: request.ConstantWaiterDelay(5 * time.Second), - Acceptors: []request.WaiterAcceptor{ - { - State: request.RetryWaiterState, - Matcher: request.PathWaiterMatch, Argument: "Status", - Expected: "Pending", - }, - { - State: request.RetryWaiterState, - Matcher: request.PathWaiterMatch, Argument: "Status", - Expected: "InProgress", - }, - { - State: request.RetryWaiterState, - Matcher: request.PathWaiterMatch, Argument: "Status", - Expected: "Delayed", - }, - { - State: request.SuccessWaiterState, - Matcher: request.PathWaiterMatch, Argument: "Status", - Expected: "Success", - }, - { - State: request.FailureWaiterState, - Matcher: request.PathWaiterMatch, Argument: "Status", - Expected: "Cancelled", - }, - { - State: request.FailureWaiterState, - Matcher: request.PathWaiterMatch, Argument: "Status", - Expected: "TimedOut", - }, - { - State: request.FailureWaiterState, - Matcher: request.PathWaiterMatch, Argument: "Status", - Expected: "Failed", - }, - { - State: request.FailureWaiterState, - Matcher: request.PathWaiterMatch, Argument: "Status", - Expected: "Cancelling", - }, - }, - Logger: c.Config.Logger, - NewRequest: func(opts []request.Option) (*request.Request, error) { - var inCpy *GetCommandInvocationInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.GetCommandInvocationRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - w.ApplyOptions(opts...) - - return w.WaitWithContext(ctx) -} diff --git a/vendor/github.com/aws/aws-sdk-go/service/sso/api.go b/vendor/github.com/aws/aws-sdk-go/service/sso/api.go deleted file mode 100644 index 4498f28..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/sso/api.go +++ /dev/null @@ -1,1210 +0,0 @@ -// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. - -package sso - -import ( - "fmt" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awsutil" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/private/protocol" - "github.com/aws/aws-sdk-go/private/protocol/restjson" -) - -const opGetRoleCredentials = "GetRoleCredentials" - -// GetRoleCredentialsRequest generates a "aws/request.Request" representing the -// client's request for the GetRoleCredentials operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetRoleCredentials for more information on using the GetRoleCredentials -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetRoleCredentialsRequest method. -// req, resp := client.GetRoleCredentialsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/GetRoleCredentials -func (c *SSO) GetRoleCredentialsRequest(input *GetRoleCredentialsInput) (req *request.Request, output *GetRoleCredentialsOutput) { - op := &request.Operation{ - Name: opGetRoleCredentials, - HTTPMethod: "GET", - HTTPPath: "/federation/credentials", - } - - if input == nil { - input = &GetRoleCredentialsInput{} - } - - output = &GetRoleCredentialsOutput{} - req = c.newRequest(op, input, output) - req.Config.Credentials = credentials.AnonymousCredentials - return -} - -// GetRoleCredentials API operation for AWS Single Sign-On. -// -// Returns the STS short-term credentials for a given role name that is assigned -// to the user. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for AWS Single Sign-On's -// API operation GetRoleCredentials for usage and error information. -// -// Returned Error Types: -// * InvalidRequestException -// Indicates that a problem occurred with the input to the request. For example, -// a required parameter might be missing or out of range. -// -// * UnauthorizedException -// Indicates that the request is not authorized. This can happen due to an invalid -// access token in the request. -// -// * TooManyRequestsException -// Indicates that the request is being made too frequently and is more than -// what the server can handle. -// -// * ResourceNotFoundException -// The specified resource doesn't exist. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/GetRoleCredentials -func (c *SSO) GetRoleCredentials(input *GetRoleCredentialsInput) (*GetRoleCredentialsOutput, error) { - req, out := c.GetRoleCredentialsRequest(input) - return out, req.Send() -} - -// GetRoleCredentialsWithContext is the same as GetRoleCredentials with the addition of -// the ability to pass a context and additional request options. -// -// See GetRoleCredentials for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSO) GetRoleCredentialsWithContext(ctx aws.Context, input *GetRoleCredentialsInput, opts ...request.Option) (*GetRoleCredentialsOutput, error) { - req, out := c.GetRoleCredentialsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opListAccountRoles = "ListAccountRoles" - -// ListAccountRolesRequest generates a "aws/request.Request" representing the -// client's request for the ListAccountRoles operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListAccountRoles for more information on using the ListAccountRoles -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListAccountRolesRequest method. -// req, resp := client.ListAccountRolesRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/ListAccountRoles -func (c *SSO) ListAccountRolesRequest(input *ListAccountRolesInput) (req *request.Request, output *ListAccountRolesOutput) { - op := &request.Operation{ - Name: opListAccountRoles, - HTTPMethod: "GET", - HTTPPath: "/assignment/roles", - Paginator: &request.Paginator{ - InputTokens: []string{"nextToken"}, - OutputTokens: []string{"nextToken"}, - LimitToken: "maxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &ListAccountRolesInput{} - } - - output = &ListAccountRolesOutput{} - req = c.newRequest(op, input, output) - req.Config.Credentials = credentials.AnonymousCredentials - return -} - -// ListAccountRoles API operation for AWS Single Sign-On. -// -// Lists all roles that are assigned to the user for a given AWS account. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for AWS Single Sign-On's -// API operation ListAccountRoles for usage and error information. -// -// Returned Error Types: -// * InvalidRequestException -// Indicates that a problem occurred with the input to the request. For example, -// a required parameter might be missing or out of range. -// -// * UnauthorizedException -// Indicates that the request is not authorized. This can happen due to an invalid -// access token in the request. -// -// * TooManyRequestsException -// Indicates that the request is being made too frequently and is more than -// what the server can handle. -// -// * ResourceNotFoundException -// The specified resource doesn't exist. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/ListAccountRoles -func (c *SSO) ListAccountRoles(input *ListAccountRolesInput) (*ListAccountRolesOutput, error) { - req, out := c.ListAccountRolesRequest(input) - return out, req.Send() -} - -// ListAccountRolesWithContext is the same as ListAccountRoles with the addition of -// the ability to pass a context and additional request options. -// -// See ListAccountRoles for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSO) ListAccountRolesWithContext(ctx aws.Context, input *ListAccountRolesInput, opts ...request.Option) (*ListAccountRolesOutput, error) { - req, out := c.ListAccountRolesRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// ListAccountRolesPages iterates over the pages of a ListAccountRoles operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListAccountRoles method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListAccountRoles operation. -// pageNum := 0 -// err := client.ListAccountRolesPages(params, -// func(page *sso.ListAccountRolesOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSO) ListAccountRolesPages(input *ListAccountRolesInput, fn func(*ListAccountRolesOutput, bool) bool) error { - return c.ListAccountRolesPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListAccountRolesPagesWithContext same as ListAccountRolesPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSO) ListAccountRolesPagesWithContext(ctx aws.Context, input *ListAccountRolesInput, fn func(*ListAccountRolesOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListAccountRolesInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListAccountRolesRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListAccountRolesOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListAccounts = "ListAccounts" - -// ListAccountsRequest generates a "aws/request.Request" representing the -// client's request for the ListAccounts operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ListAccounts for more information on using the ListAccounts -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ListAccountsRequest method. -// req, resp := client.ListAccountsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/ListAccounts -func (c *SSO) ListAccountsRequest(input *ListAccountsInput) (req *request.Request, output *ListAccountsOutput) { - op := &request.Operation{ - Name: opListAccounts, - HTTPMethod: "GET", - HTTPPath: "/assignment/accounts", - Paginator: &request.Paginator{ - InputTokens: []string{"nextToken"}, - OutputTokens: []string{"nextToken"}, - LimitToken: "maxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &ListAccountsInput{} - } - - output = &ListAccountsOutput{} - req = c.newRequest(op, input, output) - req.Config.Credentials = credentials.AnonymousCredentials - return -} - -// ListAccounts API operation for AWS Single Sign-On. -// -// Lists all AWS accounts assigned to the user. These AWS accounts are assigned -// by the administrator of the account. For more information, see Assign User -// Access (https://docs.aws.amazon.com/singlesignon/latest/userguide/useraccess.html#assignusers) -// in the AWS SSO User Guide. This operation returns a paginated response. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for AWS Single Sign-On's -// API operation ListAccounts for usage and error information. -// -// Returned Error Types: -// * InvalidRequestException -// Indicates that a problem occurred with the input to the request. For example, -// a required parameter might be missing or out of range. -// -// * UnauthorizedException -// Indicates that the request is not authorized. This can happen due to an invalid -// access token in the request. -// -// * TooManyRequestsException -// Indicates that the request is being made too frequently and is more than -// what the server can handle. -// -// * ResourceNotFoundException -// The specified resource doesn't exist. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/ListAccounts -func (c *SSO) ListAccounts(input *ListAccountsInput) (*ListAccountsOutput, error) { - req, out := c.ListAccountsRequest(input) - return out, req.Send() -} - -// ListAccountsWithContext is the same as ListAccounts with the addition of -// the ability to pass a context and additional request options. -// -// See ListAccounts for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSO) ListAccountsWithContext(ctx aws.Context, input *ListAccountsInput, opts ...request.Option) (*ListAccountsOutput, error) { - req, out := c.ListAccountsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// ListAccountsPages iterates over the pages of a ListAccounts operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListAccounts method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListAccounts operation. -// pageNum := 0 -// err := client.ListAccountsPages(params, -// func(page *sso.ListAccountsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *SSO) ListAccountsPages(input *ListAccountsInput, fn func(*ListAccountsOutput, bool) bool) error { - return c.ListAccountsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListAccountsPagesWithContext same as ListAccountsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSO) ListAccountsPagesWithContext(ctx aws.Context, input *ListAccountsInput, fn func(*ListAccountsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListAccountsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListAccountsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListAccountsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opLogout = "Logout" - -// LogoutRequest generates a "aws/request.Request" representing the -// client's request for the Logout operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See Logout for more information on using the Logout -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the LogoutRequest method. -// req, resp := client.LogoutRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/Logout -func (c *SSO) LogoutRequest(input *LogoutInput) (req *request.Request, output *LogoutOutput) { - op := &request.Operation{ - Name: opLogout, - HTTPMethod: "POST", - HTTPPath: "/logout", - } - - if input == nil { - input = &LogoutInput{} - } - - output = &LogoutOutput{} - req = c.newRequest(op, input, output) - req.Config.Credentials = credentials.AnonymousCredentials - req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) - return -} - -// Logout API operation for AWS Single Sign-On. -// -// Removes the client- and server-side session that is associated with the user. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for AWS Single Sign-On's -// API operation Logout for usage and error information. -// -// Returned Error Types: -// * InvalidRequestException -// Indicates that a problem occurred with the input to the request. For example, -// a required parameter might be missing or out of range. -// -// * UnauthorizedException -// Indicates that the request is not authorized. This can happen due to an invalid -// access token in the request. -// -// * TooManyRequestsException -// Indicates that the request is being made too frequently and is more than -// what the server can handle. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10/Logout -func (c *SSO) Logout(input *LogoutInput) (*LogoutOutput, error) { - req, out := c.LogoutRequest(input) - return out, req.Send() -} - -// LogoutWithContext is the same as Logout with the addition of -// the ability to pass a context and additional request options. -// -// See Logout for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *SSO) LogoutWithContext(ctx aws.Context, input *LogoutInput, opts ...request.Option) (*LogoutOutput, error) { - req, out := c.LogoutRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// Provides information about your AWS account. -type AccountInfo struct { - _ struct{} `type:"structure"` - - // The identifier of the AWS account that is assigned to the user. - AccountId *string `locationName:"accountId" type:"string"` - - // The display name of the AWS account that is assigned to the user. - AccountName *string `locationName:"accountName" type:"string"` - - // The email address of the AWS account that is assigned to the user. - EmailAddress *string `locationName:"emailAddress" min:"1" type:"string"` -} - -// String returns the string representation -func (s AccountInfo) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AccountInfo) GoString() string { - return s.String() -} - -// SetAccountId sets the AccountId field's value. -func (s *AccountInfo) SetAccountId(v string) *AccountInfo { - s.AccountId = &v - return s -} - -// SetAccountName sets the AccountName field's value. -func (s *AccountInfo) SetAccountName(v string) *AccountInfo { - s.AccountName = &v - return s -} - -// SetEmailAddress sets the EmailAddress field's value. -func (s *AccountInfo) SetEmailAddress(v string) *AccountInfo { - s.EmailAddress = &v - return s -} - -type GetRoleCredentialsInput struct { - _ struct{} `type:"structure"` - - // The token issued by the CreateToken API call. For more information, see CreateToken - // (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html) - // in the AWS SSO OIDC API Reference Guide. - // - // AccessToken is a required field - AccessToken *string `location:"header" locationName:"x-amz-sso_bearer_token" type:"string" required:"true" sensitive:"true"` - - // The identifier for the AWS account that is assigned to the user. - // - // AccountId is a required field - AccountId *string `location:"querystring" locationName:"account_id" type:"string" required:"true"` - - // The friendly name of the role that is assigned to the user. - // - // RoleName is a required field - RoleName *string `location:"querystring" locationName:"role_name" type:"string" required:"true"` -} - -// String returns the string representation -func (s GetRoleCredentialsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetRoleCredentialsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetRoleCredentialsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetRoleCredentialsInput"} - if s.AccessToken == nil { - invalidParams.Add(request.NewErrParamRequired("AccessToken")) - } - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.RoleName == nil { - invalidParams.Add(request.NewErrParamRequired("RoleName")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAccessToken sets the AccessToken field's value. -func (s *GetRoleCredentialsInput) SetAccessToken(v string) *GetRoleCredentialsInput { - s.AccessToken = &v - return s -} - -// SetAccountId sets the AccountId field's value. -func (s *GetRoleCredentialsInput) SetAccountId(v string) *GetRoleCredentialsInput { - s.AccountId = &v - return s -} - -// SetRoleName sets the RoleName field's value. -func (s *GetRoleCredentialsInput) SetRoleName(v string) *GetRoleCredentialsInput { - s.RoleName = &v - return s -} - -type GetRoleCredentialsOutput struct { - _ struct{} `type:"structure"` - - // The credentials for the role that is assigned to the user. - RoleCredentials *RoleCredentials `locationName:"roleCredentials" type:"structure"` -} - -// String returns the string representation -func (s GetRoleCredentialsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetRoleCredentialsOutput) GoString() string { - return s.String() -} - -// SetRoleCredentials sets the RoleCredentials field's value. -func (s *GetRoleCredentialsOutput) SetRoleCredentials(v *RoleCredentials) *GetRoleCredentialsOutput { - s.RoleCredentials = v - return s -} - -// Indicates that a problem occurred with the input to the request. For example, -// a required parameter might be missing or out of range. -type InvalidRequestException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s InvalidRequestException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s InvalidRequestException) GoString() string { - return s.String() -} - -func newErrorInvalidRequestException(v protocol.ResponseMetadata) error { - return &InvalidRequestException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *InvalidRequestException) Code() string { - return "InvalidRequestException" -} - -// Message returns the exception's message. -func (s *InvalidRequestException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *InvalidRequestException) OrigErr() error { - return nil -} - -func (s *InvalidRequestException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *InvalidRequestException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *InvalidRequestException) RequestID() string { - return s.RespMetadata.RequestID -} - -type ListAccountRolesInput struct { - _ struct{} `type:"structure"` - - // The token issued by the CreateToken API call. For more information, see CreateToken - // (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html) - // in the AWS SSO OIDC API Reference Guide. - // - // AccessToken is a required field - AccessToken *string `location:"header" locationName:"x-amz-sso_bearer_token" type:"string" required:"true" sensitive:"true"` - - // The identifier for the AWS account that is assigned to the user. - // - // AccountId is a required field - AccountId *string `location:"querystring" locationName:"account_id" type:"string" required:"true"` - - // The number of items that clients can request per page. - MaxResults *int64 `location:"querystring" locationName:"max_result" min:"1" type:"integer"` - - // The page token from the previous response output when you request subsequent - // pages. - NextToken *string `location:"querystring" locationName:"next_token" type:"string"` -} - -// String returns the string representation -func (s ListAccountRolesInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListAccountRolesInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListAccountRolesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListAccountRolesInput"} - if s.AccessToken == nil { - invalidParams.Add(request.NewErrParamRequired("AccessToken")) - } - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAccessToken sets the AccessToken field's value. -func (s *ListAccountRolesInput) SetAccessToken(v string) *ListAccountRolesInput { - s.AccessToken = &v - return s -} - -// SetAccountId sets the AccountId field's value. -func (s *ListAccountRolesInput) SetAccountId(v string) *ListAccountRolesInput { - s.AccountId = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListAccountRolesInput) SetMaxResults(v int64) *ListAccountRolesInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListAccountRolesInput) SetNextToken(v string) *ListAccountRolesInput { - s.NextToken = &v - return s -} - -type ListAccountRolesOutput struct { - _ struct{} `type:"structure"` - - // The page token client that is used to retrieve the list of accounts. - NextToken *string `locationName:"nextToken" type:"string"` - - // A paginated response with the list of roles and the next token if more results - // are available. - RoleList []*RoleInfo `locationName:"roleList" type:"list"` -} - -// String returns the string representation -func (s ListAccountRolesOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListAccountRolesOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *ListAccountRolesOutput) SetNextToken(v string) *ListAccountRolesOutput { - s.NextToken = &v - return s -} - -// SetRoleList sets the RoleList field's value. -func (s *ListAccountRolesOutput) SetRoleList(v []*RoleInfo) *ListAccountRolesOutput { - s.RoleList = v - return s -} - -type ListAccountsInput struct { - _ struct{} `type:"structure"` - - // The token issued by the CreateToken API call. For more information, see CreateToken - // (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html) - // in the AWS SSO OIDC API Reference Guide. - // - // AccessToken is a required field - AccessToken *string `location:"header" locationName:"x-amz-sso_bearer_token" type:"string" required:"true" sensitive:"true"` - - // This is the number of items clients can request per page. - MaxResults *int64 `location:"querystring" locationName:"max_result" min:"1" type:"integer"` - - // (Optional) When requesting subsequent pages, this is the page token from - // the previous response output. - NextToken *string `location:"querystring" locationName:"next_token" type:"string"` -} - -// String returns the string representation -func (s ListAccountsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListAccountsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListAccountsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListAccountsInput"} - if s.AccessToken == nil { - invalidParams.Add(request.NewErrParamRequired("AccessToken")) - } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAccessToken sets the AccessToken field's value. -func (s *ListAccountsInput) SetAccessToken(v string) *ListAccountsInput { - s.AccessToken = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListAccountsInput) SetMaxResults(v int64) *ListAccountsInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListAccountsInput) SetNextToken(v string) *ListAccountsInput { - s.NextToken = &v - return s -} - -type ListAccountsOutput struct { - _ struct{} `type:"structure"` - - // A paginated response with the list of account information and the next token - // if more results are available. - AccountList []*AccountInfo `locationName:"accountList" type:"list"` - - // The page token client that is used to retrieve the list of accounts. - NextToken *string `locationName:"nextToken" type:"string"` -} - -// String returns the string representation -func (s ListAccountsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ListAccountsOutput) GoString() string { - return s.String() -} - -// SetAccountList sets the AccountList field's value. -func (s *ListAccountsOutput) SetAccountList(v []*AccountInfo) *ListAccountsOutput { - s.AccountList = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListAccountsOutput) SetNextToken(v string) *ListAccountsOutput { - s.NextToken = &v - return s -} - -type LogoutInput struct { - _ struct{} `type:"structure"` - - // The token issued by the CreateToken API call. For more information, see CreateToken - // (https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateToken.html) - // in the AWS SSO OIDC API Reference Guide. - // - // AccessToken is a required field - AccessToken *string `location:"header" locationName:"x-amz-sso_bearer_token" type:"string" required:"true" sensitive:"true"` -} - -// String returns the string representation -func (s LogoutInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s LogoutInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *LogoutInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "LogoutInput"} - if s.AccessToken == nil { - invalidParams.Add(request.NewErrParamRequired("AccessToken")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAccessToken sets the AccessToken field's value. -func (s *LogoutInput) SetAccessToken(v string) *LogoutInput { - s.AccessToken = &v - return s -} - -type LogoutOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s LogoutOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s LogoutOutput) GoString() string { - return s.String() -} - -// The specified resource doesn't exist. -type ResourceNotFoundException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s ResourceNotFoundException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ResourceNotFoundException) GoString() string { - return s.String() -} - -func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { - return &ResourceNotFoundException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *ResourceNotFoundException) Code() string { - return "ResourceNotFoundException" -} - -// Message returns the exception's message. -func (s *ResourceNotFoundException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ResourceNotFoundException) OrigErr() error { - return nil -} - -func (s *ResourceNotFoundException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *ResourceNotFoundException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *ResourceNotFoundException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Provides information about the role credentials that are assigned to the -// user. -type RoleCredentials struct { - _ struct{} `type:"structure"` - - // The identifier used for the temporary security credentials. For more information, - // see Using Temporary Security Credentials to Request Access to AWS Resources - // (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) - // in the AWS IAM User Guide. - AccessKeyId *string `locationName:"accessKeyId" type:"string"` - - // The date on which temporary security credentials expire. - Expiration *int64 `locationName:"expiration" type:"long"` - - // The key that is used to sign the request. For more information, see Using - // Temporary Security Credentials to Request Access to AWS Resources (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) - // in the AWS IAM User Guide. - SecretAccessKey *string `locationName:"secretAccessKey" type:"string" sensitive:"true"` - - // The token used for temporary credentials. For more information, see Using - // Temporary Security Credentials to Request Access to AWS Resources (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) - // in the AWS IAM User Guide. - SessionToken *string `locationName:"sessionToken" type:"string" sensitive:"true"` -} - -// String returns the string representation -func (s RoleCredentials) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s RoleCredentials) GoString() string { - return s.String() -} - -// SetAccessKeyId sets the AccessKeyId field's value. -func (s *RoleCredentials) SetAccessKeyId(v string) *RoleCredentials { - s.AccessKeyId = &v - return s -} - -// SetExpiration sets the Expiration field's value. -func (s *RoleCredentials) SetExpiration(v int64) *RoleCredentials { - s.Expiration = &v - return s -} - -// SetSecretAccessKey sets the SecretAccessKey field's value. -func (s *RoleCredentials) SetSecretAccessKey(v string) *RoleCredentials { - s.SecretAccessKey = &v - return s -} - -// SetSessionToken sets the SessionToken field's value. -func (s *RoleCredentials) SetSessionToken(v string) *RoleCredentials { - s.SessionToken = &v - return s -} - -// Provides information about the role that is assigned to the user. -type RoleInfo struct { - _ struct{} `type:"structure"` - - // The identifier of the AWS account assigned to the user. - AccountId *string `locationName:"accountId" type:"string"` - - // The friendly name of the role that is assigned to the user. - RoleName *string `locationName:"roleName" type:"string"` -} - -// String returns the string representation -func (s RoleInfo) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s RoleInfo) GoString() string { - return s.String() -} - -// SetAccountId sets the AccountId field's value. -func (s *RoleInfo) SetAccountId(v string) *RoleInfo { - s.AccountId = &v - return s -} - -// SetRoleName sets the RoleName field's value. -func (s *RoleInfo) SetRoleName(v string) *RoleInfo { - s.RoleName = &v - return s -} - -// Indicates that the request is being made too frequently and is more than -// what the server can handle. -type TooManyRequestsException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s TooManyRequestsException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s TooManyRequestsException) GoString() string { - return s.String() -} - -func newErrorTooManyRequestsException(v protocol.ResponseMetadata) error { - return &TooManyRequestsException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *TooManyRequestsException) Code() string { - return "TooManyRequestsException" -} - -// Message returns the exception's message. -func (s *TooManyRequestsException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *TooManyRequestsException) OrigErr() error { - return nil -} - -func (s *TooManyRequestsException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *TooManyRequestsException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *TooManyRequestsException) RequestID() string { - return s.RespMetadata.RequestID -} - -// Indicates that the request is not authorized. This can happen due to an invalid -// access token in the request. -type UnauthorizedException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"message" type:"string"` -} - -// String returns the string representation -func (s UnauthorizedException) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s UnauthorizedException) GoString() string { - return s.String() -} - -func newErrorUnauthorizedException(v protocol.ResponseMetadata) error { - return &UnauthorizedException{ - RespMetadata: v, - } -} - -// Code returns the exception type name. -func (s *UnauthorizedException) Code() string { - return "UnauthorizedException" -} - -// Message returns the exception's message. -func (s *UnauthorizedException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" -} - -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *UnauthorizedException) OrigErr() error { - return nil -} - -func (s *UnauthorizedException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) -} - -// Status code returns the HTTP status code for the request's response error. -func (s *UnauthorizedException) StatusCode() int { - return s.RespMetadata.StatusCode -} - -// RequestID returns the service's response RequestID for request. -func (s *UnauthorizedException) RequestID() string { - return s.RespMetadata.RequestID -} diff --git a/vendor/github.com/aws/aws-sdk-go/service/sso/doc.go b/vendor/github.com/aws/aws-sdk-go/service/sso/doc.go deleted file mode 100644 index 92d82b2..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/sso/doc.go +++ /dev/null @@ -1,44 +0,0 @@ -// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. - -// Package sso provides the client and types for making API -// requests to AWS Single Sign-On. -// -// AWS Single Sign-On Portal is a web service that makes it easy for you to -// assign user access to AWS SSO resources such as the user portal. Users can -// get AWS account applications and roles assigned to them and get federated -// into the application. -// -// For general information about AWS SSO, see What is AWS Single Sign-On? (https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) -// in the AWS SSO User Guide. -// -// This API reference guide describes the AWS SSO Portal operations that you -// can call programatically and includes detailed information on data types -// and errors. -// -// AWS provides SDKs that consist of libraries and sample code for various programming -// languages and platforms, such as Java, Ruby, .Net, iOS, or Android. The SDKs -// provide a convenient way to create programmatic access to AWS SSO and other -// AWS services. For more information about the AWS SDKs, including how to download -// and install them, see Tools for Amazon Web Services (http://aws.amazon.com/tools/). -// -// See https://docs.aws.amazon.com/goto/WebAPI/sso-2019-06-10 for more information on this service. -// -// See sso package documentation for more information. -// https://docs.aws.amazon.com/sdk-for-go/api/service/sso/ -// -// Using the Client -// -// To contact AWS Single Sign-On with the SDK use the New function to create -// a new service client. With that client you can make API requests to the service. -// These clients are safe to use concurrently. -// -// See the SDK's documentation for more information on how to use the SDK. -// https://docs.aws.amazon.com/sdk-for-go/api/ -// -// See aws.Config documentation for more information on configuring SDK clients. -// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config -// -// See the AWS Single Sign-On client SSO for more -// information on creating client for this service. -// https://docs.aws.amazon.com/sdk-for-go/api/service/sso/#New -package sso diff --git a/vendor/github.com/aws/aws-sdk-go/service/sso/errors.go b/vendor/github.com/aws/aws-sdk-go/service/sso/errors.go deleted file mode 100644 index 77a6792..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/sso/errors.go +++ /dev/null @@ -1,44 +0,0 @@ -// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. - -package sso - -import ( - "github.com/aws/aws-sdk-go/private/protocol" -) - -const ( - - // ErrCodeInvalidRequestException for service response error code - // "InvalidRequestException". - // - // Indicates that a problem occurred with the input to the request. For example, - // a required parameter might be missing or out of range. - ErrCodeInvalidRequestException = "InvalidRequestException" - - // ErrCodeResourceNotFoundException for service response error code - // "ResourceNotFoundException". - // - // The specified resource doesn't exist. - ErrCodeResourceNotFoundException = "ResourceNotFoundException" - - // ErrCodeTooManyRequestsException for service response error code - // "TooManyRequestsException". - // - // Indicates that the request is being made too frequently and is more than - // what the server can handle. - ErrCodeTooManyRequestsException = "TooManyRequestsException" - - // ErrCodeUnauthorizedException for service response error code - // "UnauthorizedException". - // - // Indicates that the request is not authorized. This can happen due to an invalid - // access token in the request. - ErrCodeUnauthorizedException = "UnauthorizedException" -) - -var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ - "InvalidRequestException": newErrorInvalidRequestException, - "ResourceNotFoundException": newErrorResourceNotFoundException, - "TooManyRequestsException": newErrorTooManyRequestsException, - "UnauthorizedException": newErrorUnauthorizedException, -} diff --git a/vendor/github.com/aws/aws-sdk-go/service/sso/service.go b/vendor/github.com/aws/aws-sdk-go/service/sso/service.go deleted file mode 100644 index 3517533..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/sso/service.go +++ /dev/null @@ -1,104 +0,0 @@ -// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. - -package sso - -import ( - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/client" - "github.com/aws/aws-sdk-go/aws/client/metadata" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/aws/signer/v4" - "github.com/aws/aws-sdk-go/private/protocol" - "github.com/aws/aws-sdk-go/private/protocol/restjson" -) - -// SSO provides the API operation methods for making requests to -// AWS Single Sign-On. See this package's package overview docs -// for details on the service. -// -// SSO methods are safe to use concurrently. It is not safe to -// modify mutate any of the struct's properties though. -type SSO struct { - *client.Client -} - -// Used for custom client initialization logic -var initClient func(*client.Client) - -// Used for custom request initialization logic -var initRequest func(*request.Request) - -// Service information constants -const ( - ServiceName = "SSO" // Name of service. - EndpointsID = "portal.sso" // ID to lookup a service endpoint with. - ServiceID = "SSO" // ServiceID is a unique identifier of a specific service. -) - -// New creates a new instance of the SSO client with a session. -// If additional configuration is needed for the client instance use the optional -// aws.Config parameter to add your extra config. -// -// Example: -// mySession := session.Must(session.NewSession()) -// -// // Create a SSO client from just a session. -// svc := sso.New(mySession) -// -// // Create a SSO client with additional configuration -// svc := sso.New(mySession, aws.NewConfig().WithRegion("us-west-2")) -func New(p client.ConfigProvider, cfgs ...*aws.Config) *SSO { - c := p.ClientConfig(EndpointsID, cfgs...) - if c.SigningNameDerived || len(c.SigningName) == 0 { - c.SigningName = "awsssoportal" - } - return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName) -} - -// newClient creates, initializes and returns a new service client instance. -func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *SSO { - svc := &SSO{ - Client: client.New( - cfg, - metadata.ClientInfo{ - ServiceName: ServiceName, - ServiceID: ServiceID, - SigningName: signingName, - SigningRegion: signingRegion, - PartitionID: partitionID, - Endpoint: endpoint, - APIVersion: "2019-06-10", - }, - handlers, - ), - } - - // Handlers - svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) - svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) - svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) - svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) - svc.Handlers.UnmarshalError.PushBackNamed( - protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), - ) - - // Run custom client initialization if present - if initClient != nil { - initClient(svc.Client) - } - - return svc -} - -// newRequest creates a new request for a SSO operation and runs any -// custom request initialization. -func (c *SSO) newRequest(op *request.Operation, params, data interface{}) *request.Request { - req := c.NewRequest(op, params, data) - - // Run custom request initialization if present - if initRequest != nil { - initRequest(req) - } - - return req -} diff --git a/vendor/github.com/aws/aws-sdk-go/service/sso/ssoiface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/sso/ssoiface/interface.go deleted file mode 100644 index 4cac247..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/sso/ssoiface/interface.go +++ /dev/null @@ -1,86 +0,0 @@ -// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. - -// Package ssoiface provides an interface to enable mocking the AWS Single Sign-On service client -// for testing your code. -// -// It is important to note that this interface will have breaking changes -// when the service model is updated and adds new API operations, paginators, -// and waiters. -package ssoiface - -import ( - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/service/sso" -) - -// SSOAPI provides an interface to enable mocking the -// sso.SSO service client's API operation, -// paginators, and waiters. This make unit testing your code that calls out -// to the SDK's service client's calls easier. -// -// The best way to use this interface is so the SDK's service client's calls -// can be stubbed out for unit testing your code with the SDK without needing -// to inject custom request handlers into the SDK's request pipeline. -// -// // myFunc uses an SDK service client to make a request to -// // AWS Single Sign-On. -// func myFunc(svc ssoiface.SSOAPI) bool { -// // Make svc.GetRoleCredentials request -// } -// -// func main() { -// sess := session.New() -// svc := sso.New(sess) -// -// myFunc(svc) -// } -// -// In your _test.go file: -// -// // Define a mock struct to be used in your unit tests of myFunc. -// type mockSSOClient struct { -// ssoiface.SSOAPI -// } -// func (m *mockSSOClient) GetRoleCredentials(input *sso.GetRoleCredentialsInput) (*sso.GetRoleCredentialsOutput, error) { -// // mock response/functionality -// } -// -// func TestMyFunc(t *testing.T) { -// // Setup Test -// mockSvc := &mockSSOClient{} -// -// myfunc(mockSvc) -// -// // Verify myFunc's functionality -// } -// -// It is important to note that this interface will have breaking changes -// when the service model is updated and adds new API operations, paginators, -// and waiters. Its suggested to use the pattern above for testing, or using -// tooling to generate mocks to satisfy the interfaces. -type SSOAPI interface { - GetRoleCredentials(*sso.GetRoleCredentialsInput) (*sso.GetRoleCredentialsOutput, error) - GetRoleCredentialsWithContext(aws.Context, *sso.GetRoleCredentialsInput, ...request.Option) (*sso.GetRoleCredentialsOutput, error) - GetRoleCredentialsRequest(*sso.GetRoleCredentialsInput) (*request.Request, *sso.GetRoleCredentialsOutput) - - ListAccountRoles(*sso.ListAccountRolesInput) (*sso.ListAccountRolesOutput, error) - ListAccountRolesWithContext(aws.Context, *sso.ListAccountRolesInput, ...request.Option) (*sso.ListAccountRolesOutput, error) - ListAccountRolesRequest(*sso.ListAccountRolesInput) (*request.Request, *sso.ListAccountRolesOutput) - - ListAccountRolesPages(*sso.ListAccountRolesInput, func(*sso.ListAccountRolesOutput, bool) bool) error - ListAccountRolesPagesWithContext(aws.Context, *sso.ListAccountRolesInput, func(*sso.ListAccountRolesOutput, bool) bool, ...request.Option) error - - ListAccounts(*sso.ListAccountsInput) (*sso.ListAccountsOutput, error) - ListAccountsWithContext(aws.Context, *sso.ListAccountsInput, ...request.Option) (*sso.ListAccountsOutput, error) - ListAccountsRequest(*sso.ListAccountsInput) (*request.Request, *sso.ListAccountsOutput) - - ListAccountsPages(*sso.ListAccountsInput, func(*sso.ListAccountsOutput, bool) bool) error - ListAccountsPagesWithContext(aws.Context, *sso.ListAccountsInput, func(*sso.ListAccountsOutput, bool) bool, ...request.Option) error - - Logout(*sso.LogoutInput) (*sso.LogoutOutput, error) - LogoutWithContext(aws.Context, *sso.LogoutInput, ...request.Option) (*sso.LogoutOutput, error) - LogoutRequest(*sso.LogoutInput) (*request.Request, *sso.LogoutOutput) -} - -var _ SSOAPI = (*sso.SSO)(nil) diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go deleted file mode 100644 index bfc4372..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go +++ /dev/null @@ -1,3119 +0,0 @@ -// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. - -package sts - -import ( - "fmt" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awsutil" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/request" -) - -const opAssumeRole = "AssumeRole" - -// AssumeRoleRequest generates a "aws/request.Request" representing the -// client's request for the AssumeRole operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See AssumeRole for more information on using the AssumeRole -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the AssumeRoleRequest method. -// req, resp := client.AssumeRoleRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole -func (c *STS) AssumeRoleRequest(input *AssumeRoleInput) (req *request.Request, output *AssumeRoleOutput) { - op := &request.Operation{ - Name: opAssumeRole, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &AssumeRoleInput{} - } - - output = &AssumeRoleOutput{} - req = c.newRequest(op, input, output) - return -} - -// AssumeRole API operation for AWS Security Token Service. -// -// Returns a set of temporary security credentials that you can use to access -// AWS resources that you might not normally have access to. These temporary -// credentials consist of an access key ID, a secret access key, and a security -// token. Typically, you use AssumeRole within your account or for cross-account -// access. For a comparison of AssumeRole with other API operations that produce -// temporary credentials, see Requesting Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) -// and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) -// in the IAM User Guide. -// -// You cannot use AWS account root user credentials to call AssumeRole. You -// must use credentials for an IAM user or an IAM role to call AssumeRole. -// -// For cross-account access, imagine that you own multiple accounts and need -// to access resources in each account. You could create long-term credentials -// in each account to access those resources. However, managing all those credentials -// and remembering which one can access which account can be time consuming. -// Instead, you can create one set of long-term credentials in one account. -// Then use temporary security credentials to access all the other accounts -// by assuming roles in those accounts. For more information about roles, see -// IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) -// in the IAM User Guide. -// -// Session Duration -// -// By default, the temporary security credentials created by AssumeRole last -// for one hour. However, you can use the optional DurationSeconds parameter -// to specify the duration of your session. You can provide a value from 900 -// seconds (15 minutes) up to the maximum session duration setting for the role. -// This setting can have a value from 1 hour to 12 hours. To learn how to view -// the maximum value for your role, see View the Maximum Session Duration Setting -// for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) -// in the IAM User Guide. The maximum session duration limit applies when you -// use the AssumeRole* API operations or the assume-role* CLI commands. However -// the limit does not apply when you use those operations to create a console -// URL. For more information, see Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) -// in the IAM User Guide. -// -// Permissions -// -// The temporary security credentials created by AssumeRole can be used to make -// API calls to any AWS service with the following exception: You cannot call -// the AWS STS GetFederationToken or GetSessionToken API operations. -// -// (Optional) You can pass inline or managed session policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// to this operation. You can pass a single JSON policy document to use as an -// inline session policy. You can also specify up to 10 managed policies to -// use as managed session policies. The plain text that you use for both inline -// and managed session policies can't exceed 2,048 characters. Passing policies -// to this operation returns new temporary credentials. The resulting session's -// permissions are the intersection of the role's identity-based policy and -// the session policies. You can use the role's temporary credentials in subsequent -// AWS API calls to access resources in the account that owns the role. You -// cannot use session policies to grant more permissions than those allowed -// by the identity-based policy of the role that is being assumed. For more -// information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// in the IAM User Guide. -// -// To assume a role from a different account, your AWS account must be trusted -// by the role. The trust relationship is defined in the role's trust policy -// when the role is created. That trust policy states which accounts are allowed -// to delegate that access to users in the account. -// -// A user who wants to access a role in a different account must also have permissions -// that are delegated from the user account administrator. The administrator -// must attach a policy that allows the user to call AssumeRole for the ARN -// of the role in the other account. If the user is in the same account as the -// role, then you can do either of the following: -// -// * Attach a policy to the user (identical to the previous user in a different -// account). -// -// * Add the user as a principal directly in the role's trust policy. -// -// In this case, the trust policy acts as an IAM resource-based policy. Users -// in the same account as the role do not need explicit permission to assume -// the role. For more information about trust policies and resource-based policies, -// see IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) -// in the IAM User Guide. -// -// Tags -// -// (Optional) You can pass tag key-value pairs to your session. These tags are -// called session tags. For more information about session tags, see Passing -// Session Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) -// in the IAM User Guide. -// -// An administrator must grant you the permissions necessary to pass session -// tags. The administrator can also create granular permissions to allow you -// to pass only specific session tags. For more information, see Tutorial: Using -// Tags for Attribute-Based Access Control (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) -// in the IAM User Guide. -// -// You can set the session tags as transitive. Transitive tags persist during -// role chaining. For more information, see Chaining Roles with Session Tags -// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining) -// in the IAM User Guide. -// -// Using MFA with AssumeRole -// -// (Optional) You can include multi-factor authentication (MFA) information -// when you call AssumeRole. This is useful for cross-account scenarios to ensure -// that the user that assumes the role has been authenticated with an AWS MFA -// device. In that scenario, the trust policy of the role being assumed includes -// a condition that tests for MFA authentication. If the caller does not include -// valid MFA information, the request to assume the role is denied. The condition -// in a trust policy that tests for MFA authentication might look like the following -// example. -// -// "Condition": {"Bool": {"aws:MultiFactorAuthPresent": true}} -// -// For more information, see Configuring MFA-Protected API Access (https://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html) -// in the IAM User Guide guide. -// -// To use MFA with AssumeRole, you pass values for the SerialNumber and TokenCode -// parameters. The SerialNumber value identifies the user's hardware or virtual -// MFA device. The TokenCode is the time-based one-time password (TOTP) that -// the MFA device produces. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for AWS Security Token Service's -// API operation AssumeRole for usage and error information. -// -// Returned Error Codes: -// * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument" -// The request was rejected because the policy document was malformed. The error -// message describes the specific error. -// -// * ErrCodePackedPolicyTooLargeException "PackedPolicyTooLarge" -// The request was rejected because the total packed size of the session policies -// and session tags combined was too large. An AWS conversion compresses the -// session policy document, session policy ARNs, and session tags into a packed -// binary format that has a separate limit. The error message indicates by percentage -// how close the policies and tags are to the upper size limit. For more information, -// see Passing Session Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) -// in the IAM User Guide. -// -// You could receive this error even though you meet other defined session policy -// and session tag limits. For more information, see IAM and STS Entity Character -// Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) -// in the IAM User Guide. -// -// * ErrCodeRegionDisabledException "RegionDisabledException" -// STS is not activated in the requested region for the account that is being -// asked to generate credentials. The account administrator must use the IAM -// console to activate STS in that region. For more information, see Activating -// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) -// in the IAM User Guide. -// -// * ErrCodeExpiredTokenException "ExpiredTokenException" -// The web identity token that was passed is expired or is not valid. Get a -// new identity token from the identity provider and then retry the request. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole -func (c *STS) AssumeRole(input *AssumeRoleInput) (*AssumeRoleOutput, error) { - req, out := c.AssumeRoleRequest(input) - return out, req.Send() -} - -// AssumeRoleWithContext is the same as AssumeRole with the addition of -// the ability to pass a context and additional request options. -// -// See AssumeRole for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *STS) AssumeRoleWithContext(ctx aws.Context, input *AssumeRoleInput, opts ...request.Option) (*AssumeRoleOutput, error) { - req, out := c.AssumeRoleRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opAssumeRoleWithSAML = "AssumeRoleWithSAML" - -// AssumeRoleWithSAMLRequest generates a "aws/request.Request" representing the -// client's request for the AssumeRoleWithSAML operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See AssumeRoleWithSAML for more information on using the AssumeRoleWithSAML -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the AssumeRoleWithSAMLRequest method. -// req, resp := client.AssumeRoleWithSAMLRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAML -func (c *STS) AssumeRoleWithSAMLRequest(input *AssumeRoleWithSAMLInput) (req *request.Request, output *AssumeRoleWithSAMLOutput) { - op := &request.Operation{ - Name: opAssumeRoleWithSAML, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &AssumeRoleWithSAMLInput{} - } - - output = &AssumeRoleWithSAMLOutput{} - req = c.newRequest(op, input, output) - req.Config.Credentials = credentials.AnonymousCredentials - return -} - -// AssumeRoleWithSAML API operation for AWS Security Token Service. -// -// Returns a set of temporary security credentials for users who have been authenticated -// via a SAML authentication response. This operation provides a mechanism for -// tying an enterprise identity store or directory to role-based AWS access -// without user-specific credentials or configuration. For a comparison of AssumeRoleWithSAML -// with the other API operations that produce temporary credentials, see Requesting -// Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) -// and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) -// in the IAM User Guide. -// -// The temporary security credentials returned by this operation consist of -// an access key ID, a secret access key, and a security token. Applications -// can use these temporary security credentials to sign calls to AWS services. -// -// Session Duration -// -// By default, the temporary security credentials created by AssumeRoleWithSAML -// last for one hour. However, you can use the optional DurationSeconds parameter -// to specify the duration of your session. Your role session lasts for the -// duration that you specify, or until the time specified in the SAML authentication -// response's SessionNotOnOrAfter value, whichever is shorter. You can provide -// a DurationSeconds value from 900 seconds (15 minutes) up to the maximum session -// duration setting for the role. This setting can have a value from 1 hour -// to 12 hours. To learn how to view the maximum value for your role, see View -// the Maximum Session Duration Setting for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) -// in the IAM User Guide. The maximum session duration limit applies when you -// use the AssumeRole* API operations or the assume-role* CLI commands. However -// the limit does not apply when you use those operations to create a console -// URL. For more information, see Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) -// in the IAM User Guide. -// -// Permissions -// -// The temporary security credentials created by AssumeRoleWithSAML can be used -// to make API calls to any AWS service with the following exception: you cannot -// call the STS GetFederationToken or GetSessionToken API operations. -// -// (Optional) You can pass inline or managed session policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// to this operation. You can pass a single JSON policy document to use as an -// inline session policy. You can also specify up to 10 managed policies to -// use as managed session policies. The plain text that you use for both inline -// and managed session policies can't exceed 2,048 characters. Passing policies -// to this operation returns new temporary credentials. The resulting session's -// permissions are the intersection of the role's identity-based policy and -// the session policies. You can use the role's temporary credentials in subsequent -// AWS API calls to access resources in the account that owns the role. You -// cannot use session policies to grant more permissions than those allowed -// by the identity-based policy of the role that is being assumed. For more -// information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// in the IAM User Guide. -// -// Calling AssumeRoleWithSAML does not require the use of AWS security credentials. -// The identity of the caller is validated by using keys in the metadata document -// that is uploaded for the SAML provider entity for your identity provider. -// -// Calling AssumeRoleWithSAML can result in an entry in your AWS CloudTrail -// logs. The entry includes the value in the NameID element of the SAML assertion. -// We recommend that you use a NameIDType that is not associated with any personally -// identifiable information (PII). For example, you could instead use the persistent -// identifier (urn:oasis:names:tc:SAML:2.0:nameid-format:persistent). -// -// Tags -// -// (Optional) You can configure your IdP to pass attributes into your SAML assertion -// as session tags. Each session tag consists of a key name and an associated -// value. For more information about session tags, see Passing Session Tags -// in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) -// in the IAM User Guide. -// -// You can pass up to 50 session tags. The plain text session tag keys can’t -// exceed 128 characters and the values can’t exceed 256 characters. For these -// and additional limits, see IAM and STS Character Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) -// in the IAM User Guide. -// -// An AWS conversion compresses the passed session policies and session tags -// into a packed binary format that has a separate limit. Your request can fail -// for this limit even if your plain text meets the other requirements. The -// PackedPolicySize response element indicates by percentage how close the policies -// and tags for your request are to the upper size limit. -// -// You can pass a session tag with the same key as a tag that is attached to -// the role. When you do, session tags override the role's tags with the same -// key. -// -// An administrator must grant you the permissions necessary to pass session -// tags. The administrator can also create granular permissions to allow you -// to pass only specific session tags. For more information, see Tutorial: Using -// Tags for Attribute-Based Access Control (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) -// in the IAM User Guide. -// -// You can set the session tags as transitive. Transitive tags persist during -// role chaining. For more information, see Chaining Roles with Session Tags -// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining) -// in the IAM User Guide. -// -// SAML Configuration -// -// Before your application can call AssumeRoleWithSAML, you must configure your -// SAML identity provider (IdP) to issue the claims required by AWS. Additionally, -// you must use AWS Identity and Access Management (IAM) to create a SAML provider -// entity in your AWS account that represents your identity provider. You must -// also create an IAM role that specifies this SAML provider in its trust policy. -// -// For more information, see the following resources: -// -// * About SAML 2.0-based Federation (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) -// in the IAM User Guide. -// -// * Creating SAML Identity Providers (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html) -// in the IAM User Guide. -// -// * Configuring a Relying Party and Claims (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html) -// in the IAM User Guide. -// -// * Creating a Role for SAML 2.0 Federation (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html) -// in the IAM User Guide. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for AWS Security Token Service's -// API operation AssumeRoleWithSAML for usage and error information. -// -// Returned Error Codes: -// * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument" -// The request was rejected because the policy document was malformed. The error -// message describes the specific error. -// -// * ErrCodePackedPolicyTooLargeException "PackedPolicyTooLarge" -// The request was rejected because the total packed size of the session policies -// and session tags combined was too large. An AWS conversion compresses the -// session policy document, session policy ARNs, and session tags into a packed -// binary format that has a separate limit. The error message indicates by percentage -// how close the policies and tags are to the upper size limit. For more information, -// see Passing Session Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) -// in the IAM User Guide. -// -// You could receive this error even though you meet other defined session policy -// and session tag limits. For more information, see IAM and STS Entity Character -// Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) -// in the IAM User Guide. -// -// * ErrCodeIDPRejectedClaimException "IDPRejectedClaim" -// The identity provider (IdP) reported that authentication failed. This might -// be because the claim is invalid. -// -// If this error is returned for the AssumeRoleWithWebIdentity operation, it -// can also mean that the claim has expired or has been explicitly revoked. -// -// * ErrCodeInvalidIdentityTokenException "InvalidIdentityToken" -// The web identity token that was passed could not be validated by AWS. Get -// a new identity token from the identity provider and then retry the request. -// -// * ErrCodeExpiredTokenException "ExpiredTokenException" -// The web identity token that was passed is expired or is not valid. Get a -// new identity token from the identity provider and then retry the request. -// -// * ErrCodeRegionDisabledException "RegionDisabledException" -// STS is not activated in the requested region for the account that is being -// asked to generate credentials. The account administrator must use the IAM -// console to activate STS in that region. For more information, see Activating -// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) -// in the IAM User Guide. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAML -func (c *STS) AssumeRoleWithSAML(input *AssumeRoleWithSAMLInput) (*AssumeRoleWithSAMLOutput, error) { - req, out := c.AssumeRoleWithSAMLRequest(input) - return out, req.Send() -} - -// AssumeRoleWithSAMLWithContext is the same as AssumeRoleWithSAML with the addition of -// the ability to pass a context and additional request options. -// -// See AssumeRoleWithSAML for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *STS) AssumeRoleWithSAMLWithContext(ctx aws.Context, input *AssumeRoleWithSAMLInput, opts ...request.Option) (*AssumeRoleWithSAMLOutput, error) { - req, out := c.AssumeRoleWithSAMLRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opAssumeRoleWithWebIdentity = "AssumeRoleWithWebIdentity" - -// AssumeRoleWithWebIdentityRequest generates a "aws/request.Request" representing the -// client's request for the AssumeRoleWithWebIdentity operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See AssumeRoleWithWebIdentity for more information on using the AssumeRoleWithWebIdentity -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the AssumeRoleWithWebIdentityRequest method. -// req, resp := client.AssumeRoleWithWebIdentityRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentity -func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityInput) (req *request.Request, output *AssumeRoleWithWebIdentityOutput) { - op := &request.Operation{ - Name: opAssumeRoleWithWebIdentity, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &AssumeRoleWithWebIdentityInput{} - } - - output = &AssumeRoleWithWebIdentityOutput{} - req = c.newRequest(op, input, output) - req.Config.Credentials = credentials.AnonymousCredentials - return -} - -// AssumeRoleWithWebIdentity API operation for AWS Security Token Service. -// -// Returns a set of temporary security credentials for users who have been authenticated -// in a mobile or web application with a web identity provider. Example providers -// include Amazon Cognito, Login with Amazon, Facebook, Google, or any OpenID -// Connect-compatible identity provider. -// -// For mobile applications, we recommend that you use Amazon Cognito. You can -// use Amazon Cognito with the AWS SDK for iOS Developer Guide (http://aws.amazon.com/sdkforios/) -// and the AWS SDK for Android Developer Guide (http://aws.amazon.com/sdkforandroid/) -// to uniquely identify a user. You can also supply the user with a consistent -// identity throughout the lifetime of an application. -// -// To learn more about Amazon Cognito, see Amazon Cognito Overview (https://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-auth.html#d0e840) -// in AWS SDK for Android Developer Guide and Amazon Cognito Overview (https://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html#d0e664) -// in the AWS SDK for iOS Developer Guide. -// -// Calling AssumeRoleWithWebIdentity does not require the use of AWS security -// credentials. Therefore, you can distribute an application (for example, on -// mobile devices) that requests temporary security credentials without including -// long-term AWS credentials in the application. You also don't need to deploy -// server-based proxy services that use long-term AWS credentials. Instead, -// the identity of the caller is validated by using a token from the web identity -// provider. For a comparison of AssumeRoleWithWebIdentity with the other API -// operations that produce temporary credentials, see Requesting Temporary Security -// Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) -// and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) -// in the IAM User Guide. -// -// The temporary security credentials returned by this API consist of an access -// key ID, a secret access key, and a security token. Applications can use these -// temporary security credentials to sign calls to AWS service API operations. -// -// Session Duration -// -// By default, the temporary security credentials created by AssumeRoleWithWebIdentity -// last for one hour. However, you can use the optional DurationSeconds parameter -// to specify the duration of your session. You can provide a value from 900 -// seconds (15 minutes) up to the maximum session duration setting for the role. -// This setting can have a value from 1 hour to 12 hours. To learn how to view -// the maximum value for your role, see View the Maximum Session Duration Setting -// for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) -// in the IAM User Guide. The maximum session duration limit applies when you -// use the AssumeRole* API operations or the assume-role* CLI commands. However -// the limit does not apply when you use those operations to create a console -// URL. For more information, see Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) -// in the IAM User Guide. -// -// Permissions -// -// The temporary security credentials created by AssumeRoleWithWebIdentity can -// be used to make API calls to any AWS service with the following exception: -// you cannot call the STS GetFederationToken or GetSessionToken API operations. -// -// (Optional) You can pass inline or managed session policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// to this operation. You can pass a single JSON policy document to use as an -// inline session policy. You can also specify up to 10 managed policies to -// use as managed session policies. The plain text that you use for both inline -// and managed session policies can't exceed 2,048 characters. Passing policies -// to this operation returns new temporary credentials. The resulting session's -// permissions are the intersection of the role's identity-based policy and -// the session policies. You can use the role's temporary credentials in subsequent -// AWS API calls to access resources in the account that owns the role. You -// cannot use session policies to grant more permissions than those allowed -// by the identity-based policy of the role that is being assumed. For more -// information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// in the IAM User Guide. -// -// Tags -// -// (Optional) You can configure your IdP to pass attributes into your web identity -// token as session tags. Each session tag consists of a key name and an associated -// value. For more information about session tags, see Passing Session Tags -// in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) -// in the IAM User Guide. -// -// You can pass up to 50 session tags. The plain text session tag keys can’t -// exceed 128 characters and the values can’t exceed 256 characters. For these -// and additional limits, see IAM and STS Character Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) -// in the IAM User Guide. -// -// An AWS conversion compresses the passed session policies and session tags -// into a packed binary format that has a separate limit. Your request can fail -// for this limit even if your plain text meets the other requirements. The -// PackedPolicySize response element indicates by percentage how close the policies -// and tags for your request are to the upper size limit. -// -// You can pass a session tag with the same key as a tag that is attached to -// the role. When you do, the session tag overrides the role tag with the same -// key. -// -// An administrator must grant you the permissions necessary to pass session -// tags. The administrator can also create granular permissions to allow you -// to pass only specific session tags. For more information, see Tutorial: Using -// Tags for Attribute-Based Access Control (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) -// in the IAM User Guide. -// -// You can set the session tags as transitive. Transitive tags persist during -// role chaining. For more information, see Chaining Roles with Session Tags -// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining) -// in the IAM User Guide. -// -// Identities -// -// Before your application can call AssumeRoleWithWebIdentity, you must have -// an identity token from a supported identity provider and create a role that -// the application can assume. The role that your application assumes must trust -// the identity provider that is associated with the identity token. In other -// words, the identity provider must be specified in the role's trust policy. -// -// Calling AssumeRoleWithWebIdentity can result in an entry in your AWS CloudTrail -// logs. The entry includes the Subject (http://openid.net/specs/openid-connect-core-1_0.html#Claims) -// of the provided Web Identity Token. We recommend that you avoid using any -// personally identifiable information (PII) in this field. For example, you -// could instead use a GUID or a pairwise identifier, as suggested in the OIDC -// specification (http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes). -// -// For more information about how to use web identity federation and the AssumeRoleWithWebIdentity -// API, see the following resources: -// -// * Using Web Identity Federation API Operations for Mobile Apps (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html) -// and Federation Through a Web-based Identity Provider (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity). -// -// * Web Identity Federation Playground (https://aws.amazon.com/blogs/aws/the-aws-web-identity-federation-playground/). -// Walk through the process of authenticating through Login with Amazon, -// Facebook, or Google, getting temporary security credentials, and then -// using those credentials to make a request to AWS. -// -// * AWS SDK for iOS Developer Guide (http://aws.amazon.com/sdkforios/) and -// AWS SDK for Android Developer Guide (http://aws.amazon.com/sdkforandroid/). -// These toolkits contain sample apps that show how to invoke the identity -// providers. The toolkits then show how to use the information from these -// providers to get and use temporary security credentials. -// -// * Web Identity Federation with Mobile Applications (http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications). -// This article discusses web identity federation and shows an example of -// how to use web identity federation to get access to content in Amazon -// S3. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for AWS Security Token Service's -// API operation AssumeRoleWithWebIdentity for usage and error information. -// -// Returned Error Codes: -// * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument" -// The request was rejected because the policy document was malformed. The error -// message describes the specific error. -// -// * ErrCodePackedPolicyTooLargeException "PackedPolicyTooLarge" -// The request was rejected because the total packed size of the session policies -// and session tags combined was too large. An AWS conversion compresses the -// session policy document, session policy ARNs, and session tags into a packed -// binary format that has a separate limit. The error message indicates by percentage -// how close the policies and tags are to the upper size limit. For more information, -// see Passing Session Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) -// in the IAM User Guide. -// -// You could receive this error even though you meet other defined session policy -// and session tag limits. For more information, see IAM and STS Entity Character -// Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) -// in the IAM User Guide. -// -// * ErrCodeIDPRejectedClaimException "IDPRejectedClaim" -// The identity provider (IdP) reported that authentication failed. This might -// be because the claim is invalid. -// -// If this error is returned for the AssumeRoleWithWebIdentity operation, it -// can also mean that the claim has expired or has been explicitly revoked. -// -// * ErrCodeIDPCommunicationErrorException "IDPCommunicationError" -// The request could not be fulfilled because the identity provider (IDP) that -// was asked to verify the incoming identity token could not be reached. This -// is often a transient error caused by network conditions. Retry the request -// a limited number of times so that you don't exceed the request rate. If the -// error persists, the identity provider might be down or not responding. -// -// * ErrCodeInvalidIdentityTokenException "InvalidIdentityToken" -// The web identity token that was passed could not be validated by AWS. Get -// a new identity token from the identity provider and then retry the request. -// -// * ErrCodeExpiredTokenException "ExpiredTokenException" -// The web identity token that was passed is expired or is not valid. Get a -// new identity token from the identity provider and then retry the request. -// -// * ErrCodeRegionDisabledException "RegionDisabledException" -// STS is not activated in the requested region for the account that is being -// asked to generate credentials. The account administrator must use the IAM -// console to activate STS in that region. For more information, see Activating -// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) -// in the IAM User Guide. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentity -func (c *STS) AssumeRoleWithWebIdentity(input *AssumeRoleWithWebIdentityInput) (*AssumeRoleWithWebIdentityOutput, error) { - req, out := c.AssumeRoleWithWebIdentityRequest(input) - return out, req.Send() -} - -// AssumeRoleWithWebIdentityWithContext is the same as AssumeRoleWithWebIdentity with the addition of -// the ability to pass a context and additional request options. -// -// See AssumeRoleWithWebIdentity for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *STS) AssumeRoleWithWebIdentityWithContext(ctx aws.Context, input *AssumeRoleWithWebIdentityInput, opts ...request.Option) (*AssumeRoleWithWebIdentityOutput, error) { - req, out := c.AssumeRoleWithWebIdentityRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opDecodeAuthorizationMessage = "DecodeAuthorizationMessage" - -// DecodeAuthorizationMessageRequest generates a "aws/request.Request" representing the -// client's request for the DecodeAuthorizationMessage operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DecodeAuthorizationMessage for more information on using the DecodeAuthorizationMessage -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DecodeAuthorizationMessageRequest method. -// req, resp := client.DecodeAuthorizationMessageRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessage -func (c *STS) DecodeAuthorizationMessageRequest(input *DecodeAuthorizationMessageInput) (req *request.Request, output *DecodeAuthorizationMessageOutput) { - op := &request.Operation{ - Name: opDecodeAuthorizationMessage, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &DecodeAuthorizationMessageInput{} - } - - output = &DecodeAuthorizationMessageOutput{} - req = c.newRequest(op, input, output) - return -} - -// DecodeAuthorizationMessage API operation for AWS Security Token Service. -// -// Decodes additional information about the authorization status of a request -// from an encoded message returned in response to an AWS request. -// -// For example, if a user is not authorized to perform an operation that he -// or she has requested, the request returns a Client.UnauthorizedOperation -// response (an HTTP 403 response). Some AWS operations additionally return -// an encoded message that can provide details about this authorization failure. -// -// Only certain AWS operations return an encoded authorization message. The -// documentation for an individual operation indicates whether that operation -// returns an encoded message in addition to returning an HTTP code. -// -// The message is encoded because the details of the authorization status can -// constitute privileged information that the user who requested the operation -// should not see. To decode an authorization status message, a user must be -// granted permissions via an IAM policy to request the DecodeAuthorizationMessage -// (sts:DecodeAuthorizationMessage) action. -// -// The decoded message includes the following type of information: -// -// * Whether the request was denied due to an explicit deny or due to the -// absence of an explicit allow. For more information, see Determining Whether -// a Request is Allowed or Denied (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow) -// in the IAM User Guide. -// -// * The principal who made the request. -// -// * The requested action. -// -// * The requested resource. -// -// * The values of condition keys in the context of the user's request. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for AWS Security Token Service's -// API operation DecodeAuthorizationMessage for usage and error information. -// -// Returned Error Codes: -// * ErrCodeInvalidAuthorizationMessageException "InvalidAuthorizationMessageException" -// The error returned if the message passed to DecodeAuthorizationMessage was -// invalid. This can happen if the token contains invalid characters, such as -// linebreaks. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessage -func (c *STS) DecodeAuthorizationMessage(input *DecodeAuthorizationMessageInput) (*DecodeAuthorizationMessageOutput, error) { - req, out := c.DecodeAuthorizationMessageRequest(input) - return out, req.Send() -} - -// DecodeAuthorizationMessageWithContext is the same as DecodeAuthorizationMessage with the addition of -// the ability to pass a context and additional request options. -// -// See DecodeAuthorizationMessage for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *STS) DecodeAuthorizationMessageWithContext(ctx aws.Context, input *DecodeAuthorizationMessageInput, opts ...request.Option) (*DecodeAuthorizationMessageOutput, error) { - req, out := c.DecodeAuthorizationMessageRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetAccessKeyInfo = "GetAccessKeyInfo" - -// GetAccessKeyInfoRequest generates a "aws/request.Request" representing the -// client's request for the GetAccessKeyInfo operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetAccessKeyInfo for more information on using the GetAccessKeyInfo -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetAccessKeyInfoRequest method. -// req, resp := client.GetAccessKeyInfoRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetAccessKeyInfo -func (c *STS) GetAccessKeyInfoRequest(input *GetAccessKeyInfoInput) (req *request.Request, output *GetAccessKeyInfoOutput) { - op := &request.Operation{ - Name: opGetAccessKeyInfo, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetAccessKeyInfoInput{} - } - - output = &GetAccessKeyInfoOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetAccessKeyInfo API operation for AWS Security Token Service. -// -// Returns the account identifier for the specified access key ID. -// -// Access keys consist of two parts: an access key ID (for example, AKIAIOSFODNN7EXAMPLE) -// and a secret access key (for example, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY). -// For more information about access keys, see Managing Access Keys for IAM -// Users (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) -// in the IAM User Guide. -// -// When you pass an access key ID to this operation, it returns the ID of the -// AWS account to which the keys belong. Access key IDs beginning with AKIA -// are long-term credentials for an IAM user or the AWS account root user. Access -// key IDs beginning with ASIA are temporary credentials that are created using -// STS operations. If the account in the response belongs to you, you can sign -// in as the root user and review your root user access keys. Then, you can -// pull a credentials report (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html) -// to learn which IAM user owns the keys. To learn who requested the temporary -// credentials for an ASIA access key, view the STS events in your CloudTrail -// logs (https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html) -// in the IAM User Guide. -// -// This operation does not indicate the state of the access key. The key might -// be active, inactive, or deleted. Active keys might not have permissions to -// perform an operation. Providing a deleted access key might return an error -// that the key doesn't exist. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for AWS Security Token Service's -// API operation GetAccessKeyInfo for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetAccessKeyInfo -func (c *STS) GetAccessKeyInfo(input *GetAccessKeyInfoInput) (*GetAccessKeyInfoOutput, error) { - req, out := c.GetAccessKeyInfoRequest(input) - return out, req.Send() -} - -// GetAccessKeyInfoWithContext is the same as GetAccessKeyInfo with the addition of -// the ability to pass a context and additional request options. -// -// See GetAccessKeyInfo for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *STS) GetAccessKeyInfoWithContext(ctx aws.Context, input *GetAccessKeyInfoInput, opts ...request.Option) (*GetAccessKeyInfoOutput, error) { - req, out := c.GetAccessKeyInfoRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetCallerIdentity = "GetCallerIdentity" - -// GetCallerIdentityRequest generates a "aws/request.Request" representing the -// client's request for the GetCallerIdentity operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetCallerIdentity for more information on using the GetCallerIdentity -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetCallerIdentityRequest method. -// req, resp := client.GetCallerIdentityRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentity -func (c *STS) GetCallerIdentityRequest(input *GetCallerIdentityInput) (req *request.Request, output *GetCallerIdentityOutput) { - op := &request.Operation{ - Name: opGetCallerIdentity, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetCallerIdentityInput{} - } - - output = &GetCallerIdentityOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetCallerIdentity API operation for AWS Security Token Service. -// -// Returns details about the IAM user or role whose credentials are used to -// call the operation. -// -// No permissions are required to perform this operation. If an administrator -// adds a policy to your IAM user or role that explicitly denies access to the -// sts:GetCallerIdentity action, you can still perform this operation. Permissions -// are not required because the same information is returned when an IAM user -// or role is denied access. To view an example response, see I Am Not Authorized -// to Perform: iam:DeleteVirtualMFADevice (https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_access-denied-delete-mfa) -// in the IAM User Guide. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for AWS Security Token Service's -// API operation GetCallerIdentity for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentity -func (c *STS) GetCallerIdentity(input *GetCallerIdentityInput) (*GetCallerIdentityOutput, error) { - req, out := c.GetCallerIdentityRequest(input) - return out, req.Send() -} - -// GetCallerIdentityWithContext is the same as GetCallerIdentity with the addition of -// the ability to pass a context and additional request options. -// -// See GetCallerIdentity for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *STS) GetCallerIdentityWithContext(ctx aws.Context, input *GetCallerIdentityInput, opts ...request.Option) (*GetCallerIdentityOutput, error) { - req, out := c.GetCallerIdentityRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetFederationToken = "GetFederationToken" - -// GetFederationTokenRequest generates a "aws/request.Request" representing the -// client's request for the GetFederationToken operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetFederationToken for more information on using the GetFederationToken -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetFederationTokenRequest method. -// req, resp := client.GetFederationTokenRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationToken -func (c *STS) GetFederationTokenRequest(input *GetFederationTokenInput) (req *request.Request, output *GetFederationTokenOutput) { - op := &request.Operation{ - Name: opGetFederationToken, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetFederationTokenInput{} - } - - output = &GetFederationTokenOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetFederationToken API operation for AWS Security Token Service. -// -// Returns a set of temporary security credentials (consisting of an access -// key ID, a secret access key, and a security token) for a federated user. -// A typical use is in a proxy application that gets temporary security credentials -// on behalf of distributed applications inside a corporate network. You must -// call the GetFederationToken operation using the long-term security credentials -// of an IAM user. As a result, this call is appropriate in contexts where those -// credentials can be safely stored, usually in a server-based application. -// For a comparison of GetFederationToken with the other API operations that -// produce temporary credentials, see Requesting Temporary Security Credentials -// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) -// and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) -// in the IAM User Guide. -// -// You can create a mobile-based or browser-based app that can authenticate -// users using a web identity provider like Login with Amazon, Facebook, Google, -// or an OpenID Connect-compatible identity provider. In this case, we recommend -// that you use Amazon Cognito (http://aws.amazon.com/cognito/) or AssumeRoleWithWebIdentity. -// For more information, see Federation Through a Web-based Identity Provider -// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity) -// in the IAM User Guide. -// -// You can also call GetFederationToken using the security credentials of an -// AWS account root user, but we do not recommend it. Instead, we recommend -// that you create an IAM user for the purpose of the proxy application. Then -// attach a policy to the IAM user that limits federated users to only the actions -// and resources that they need to access. For more information, see IAM Best -// Practices (https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) -// in the IAM User Guide. -// -// Session duration -// -// The temporary credentials are valid for the specified duration, from 900 -// seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours). The default -// session duration is 43,200 seconds (12 hours). Temporary credentials that -// are obtained by using AWS account root user credentials have a maximum duration -// of 3,600 seconds (1 hour). -// -// Permissions -// -// You can use the temporary credentials created by GetFederationToken in any -// AWS service except the following: -// -// * You cannot call any IAM operations using the AWS CLI or the AWS API. -// -// * You cannot call any STS operations except GetCallerIdentity. -// -// You must pass an inline or managed session policy (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// to this operation. You can pass a single JSON policy document to use as an -// inline session policy. You can also specify up to 10 managed policies to -// use as managed session policies. The plain text that you use for both inline -// and managed session policies can't exceed 2,048 characters. -// -// Though the session policy parameters are optional, if you do not pass a policy, -// then the resulting federated user session has no permissions. When you pass -// session policies, the session permissions are the intersection of the IAM -// user policies and the session policies that you pass. This gives you a way -// to further restrict the permissions for a federated user. You cannot use -// session policies to grant more permissions than those that are defined in -// the permissions policy of the IAM user. For more information, see Session -// Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) -// in the IAM User Guide. For information about using GetFederationToken to -// create temporary security credentials, see GetFederationToken—Federation -// Through a Custom Identity Broker (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken). -// -// You can use the credentials to access a resource that has a resource-based -// policy. If that policy specifically references the federated user session -// in the Principal element of the policy, the session has the permissions allowed -// by the policy. These permissions are granted in addition to the permissions -// granted by the session policies. -// -// Tags -// -// (Optional) You can pass tag key-value pairs to your session. These are called -// session tags. For more information about session tags, see Passing Session -// Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) -// in the IAM User Guide. -// -// An administrator must grant you the permissions necessary to pass session -// tags. The administrator can also create granular permissions to allow you -// to pass only specific session tags. For more information, see Tutorial: Using -// Tags for Attribute-Based Access Control (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) -// in the IAM User Guide. -// -// Tag key–value pairs are not case sensitive, but case is preserved. This -// means that you cannot have separate Department and department tag keys. Assume -// that the user that you are federating has the Department=Marketing tag and -// you pass the department=engineering session tag. Department and department -// are not saved as separate tags, and the session tag passed in the request -// takes precedence over the user tag. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for AWS Security Token Service's -// API operation GetFederationToken for usage and error information. -// -// Returned Error Codes: -// * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocument" -// The request was rejected because the policy document was malformed. The error -// message describes the specific error. -// -// * ErrCodePackedPolicyTooLargeException "PackedPolicyTooLarge" -// The request was rejected because the total packed size of the session policies -// and session tags combined was too large. An AWS conversion compresses the -// session policy document, session policy ARNs, and session tags into a packed -// binary format that has a separate limit. The error message indicates by percentage -// how close the policies and tags are to the upper size limit. For more information, -// see Passing Session Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) -// in the IAM User Guide. -// -// You could receive this error even though you meet other defined session policy -// and session tag limits. For more information, see IAM and STS Entity Character -// Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) -// in the IAM User Guide. -// -// * ErrCodeRegionDisabledException "RegionDisabledException" -// STS is not activated in the requested region for the account that is being -// asked to generate credentials. The account administrator must use the IAM -// console to activate STS in that region. For more information, see Activating -// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) -// in the IAM User Guide. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationToken -func (c *STS) GetFederationToken(input *GetFederationTokenInput) (*GetFederationTokenOutput, error) { - req, out := c.GetFederationTokenRequest(input) - return out, req.Send() -} - -// GetFederationTokenWithContext is the same as GetFederationToken with the addition of -// the ability to pass a context and additional request options. -// -// See GetFederationToken for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *STS) GetFederationTokenWithContext(ctx aws.Context, input *GetFederationTokenInput, opts ...request.Option) (*GetFederationTokenOutput, error) { - req, out := c.GetFederationTokenRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -const opGetSessionToken = "GetSessionToken" - -// GetSessionTokenRequest generates a "aws/request.Request" representing the -// client's request for the GetSessionToken operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See GetSessionToken for more information on using the GetSessionToken -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the GetSessionTokenRequest method. -// req, resp := client.GetSessionTokenRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionToken -func (c *STS) GetSessionTokenRequest(input *GetSessionTokenInput) (req *request.Request, output *GetSessionTokenOutput) { - op := &request.Operation{ - Name: opGetSessionToken, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &GetSessionTokenInput{} - } - - output = &GetSessionTokenOutput{} - req = c.newRequest(op, input, output) - return -} - -// GetSessionToken API operation for AWS Security Token Service. -// -// Returns a set of temporary credentials for an AWS account or IAM user. The -// credentials consist of an access key ID, a secret access key, and a security -// token. Typically, you use GetSessionToken if you want to use MFA to protect -// programmatic calls to specific AWS API operations like Amazon EC2 StopInstances. -// MFA-enabled IAM users would need to call GetSessionToken and submit an MFA -// code that is associated with their MFA device. Using the temporary security -// credentials that are returned from the call, IAM users can then make programmatic -// calls to API operations that require MFA authentication. If you do not supply -// a correct MFA code, then the API returns an access denied error. For a comparison -// of GetSessionToken with the other API operations that produce temporary credentials, -// see Requesting Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) -// and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) -// in the IAM User Guide. -// -// Session Duration -// -// The GetSessionToken operation must be called by using the long-term AWS security -// credentials of the AWS account root user or an IAM user. Credentials that -// are created by IAM users are valid for the duration that you specify. This -// duration can range from 900 seconds (15 minutes) up to a maximum of 129,600 -// seconds (36 hours), with a default of 43,200 seconds (12 hours). Credentials -// based on account credentials can range from 900 seconds (15 minutes) up to -// 3,600 seconds (1 hour), with a default of 1 hour. -// -// Permissions -// -// The temporary security credentials created by GetSessionToken can be used -// to make API calls to any AWS service with the following exceptions: -// -// * You cannot call any IAM API operations unless MFA authentication information -// is included in the request. -// -// * You cannot call any STS API except AssumeRole or GetCallerIdentity. -// -// We recommend that you do not call GetSessionToken with AWS account root user -// credentials. Instead, follow our best practices (https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users) -// by creating one or more IAM users, giving them the necessary permissions, -// and using IAM users for everyday interaction with AWS. -// -// The credentials that are returned by GetSessionToken are based on permissions -// associated with the user whose credentials were used to call the operation. -// If GetSessionToken is called using AWS account root user credentials, the -// temporary credentials have root user permissions. Similarly, if GetSessionToken -// is called using the credentials of an IAM user, the temporary credentials -// have the same permissions as the IAM user. -// -// For more information about using GetSessionToken to create temporary credentials, -// go to Temporary Credentials for Users in Untrusted Environments (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken) -// in the IAM User Guide. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for AWS Security Token Service's -// API operation GetSessionToken for usage and error information. -// -// Returned Error Codes: -// * ErrCodeRegionDisabledException "RegionDisabledException" -// STS is not activated in the requested region for the account that is being -// asked to generate credentials. The account administrator must use the IAM -// console to activate STS in that region. For more information, see Activating -// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) -// in the IAM User Guide. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionToken -func (c *STS) GetSessionToken(input *GetSessionTokenInput) (*GetSessionTokenOutput, error) { - req, out := c.GetSessionTokenRequest(input) - return out, req.Send() -} - -// GetSessionTokenWithContext is the same as GetSessionToken with the addition of -// the ability to pass a context and additional request options. -// -// See GetSessionToken for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *STS) GetSessionTokenWithContext(ctx aws.Context, input *GetSessionTokenInput, opts ...request.Option) (*GetSessionTokenOutput, error) { - req, out := c.GetSessionTokenRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -type AssumeRoleInput struct { - _ struct{} `type:"structure"` - - // The duration, in seconds, of the role session. The value can range from 900 - // seconds (15 minutes) up to the maximum session duration setting for the role. - // This setting can have a value from 1 hour to 12 hours. If you specify a value - // higher than this setting, the operation fails. For example, if you specify - // a session duration of 12 hours, but your administrator set the maximum session - // duration to 6 hours, your operation fails. To learn how to view the maximum - // value for your role, see View the Maximum Session Duration Setting for a - // Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) - // in the IAM User Guide. - // - // By default, the value is set to 3600 seconds. - // - // The DurationSeconds parameter is separate from the duration of a console - // session that you might request using the returned credentials. The request - // to the federation endpoint for a console sign-in token takes a SessionDuration - // parameter that specifies the maximum length of the console session. For more - // information, see Creating a URL that Enables Federated Users to Access the - // AWS Management Console (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html) - // in the IAM User Guide. - DurationSeconds *int64 `min:"900" type:"integer"` - - // A unique identifier that might be required when you assume a role in another - // account. If the administrator of the account to which the role belongs provided - // you with an external ID, then provide that value in the ExternalId parameter. - // This value can be any string, such as a passphrase or account number. A cross-account - // role is usually set up to trust everyone in an account. Therefore, the administrator - // of the trusting account might send an external ID to the administrator of - // the trusted account. That way, only someone with the ID can assume the role, - // rather than everyone in the account. For more information about the external - // ID, see How to Use an External ID When Granting Access to Your AWS Resources - // to a Third Party (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) - // in the IAM User Guide. - // - // The regex used to validate this parameter is a string of characters consisting - // of upper- and lower-case alphanumeric characters with no spaces. You can - // also include underscores or any of the following characters: =,.@:/- - ExternalId *string `min:"2" type:"string"` - - // An IAM policy in JSON format that you want to use as an inline session policy. - // - // This parameter is optional. Passing policies to this operation returns new - // temporary credentials. The resulting session's permissions are the intersection - // of the role's identity-based policy and the session policies. You can use - // the role's temporary credentials in subsequent AWS API calls to access resources - // in the account that owns the role. You cannot use session policies to grant - // more permissions than those allowed by the identity-based policy of the role - // that is being assumed. For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. - // - // The plain text that you use for both inline and managed session policies - // can't exceed 2,048 characters. The JSON policy characters can be any ASCII - // character from the space character to the end of the valid character list - // (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A), - // and carriage return (\u000D) characters. - // - // An AWS conversion compresses the passed session policies and session tags - // into a packed binary format that has a separate limit. Your request can fail - // for this limit even if your plain text meets the other requirements. The - // PackedPolicySize response element indicates by percentage how close the policies - // and tags for your request are to the upper size limit. - Policy *string `min:"1" type:"string"` - - // The Amazon Resource Names (ARNs) of the IAM managed policies that you want - // to use as managed session policies. The policies must exist in the same account - // as the role. - // - // This parameter is optional. You can provide up to 10 managed policy ARNs. - // However, the plain text that you use for both inline and managed session - // policies can't exceed 2,048 characters. For more information about ARNs, - // see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. - // - // An AWS conversion compresses the passed session policies and session tags - // into a packed binary format that has a separate limit. Your request can fail - // for this limit even if your plain text meets the other requirements. The - // PackedPolicySize response element indicates by percentage how close the policies - // and tags for your request are to the upper size limit. - // - // Passing policies to this operation returns new temporary credentials. The - // resulting session's permissions are the intersection of the role's identity-based - // policy and the session policies. You can use the role's temporary credentials - // in subsequent AWS API calls to access resources in the account that owns - // the role. You cannot use session policies to grant more permissions than - // those allowed by the identity-based policy of the role that is being assumed. - // For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. - PolicyArns []*PolicyDescriptorType `type:"list"` - - // The Amazon Resource Name (ARN) of the role to assume. - // - // RoleArn is a required field - RoleArn *string `min:"20" type:"string" required:"true"` - - // An identifier for the assumed role session. - // - // Use the role session name to uniquely identify a session when the same role - // is assumed by different principals or for different reasons. In cross-account - // scenarios, the role session name is visible to, and can be logged by the - // account that owns the role. The role session name is also used in the ARN - // of the assumed role principal. This means that subsequent cross-account API - // requests that use the temporary security credentials will expose the role - // session name to the external account in their AWS CloudTrail logs. - // - // The regex used to validate this parameter is a string of characters consisting - // of upper- and lower-case alphanumeric characters with no spaces. You can - // also include underscores or any of the following characters: =,.@- - // - // RoleSessionName is a required field - RoleSessionName *string `min:"2" type:"string" required:"true"` - - // The identification number of the MFA device that is associated with the user - // who is making the AssumeRole call. Specify this value if the trust policy - // of the role being assumed includes a condition that requires MFA authentication. - // The value is either the serial number for a hardware device (such as GAHT12345678) - // or an Amazon Resource Name (ARN) for a virtual device (such as arn:aws:iam::123456789012:mfa/user). - // - // The regex used to validate this parameter is a string of characters consisting - // of upper- and lower-case alphanumeric characters with no spaces. You can - // also include underscores or any of the following characters: =,.@- - SerialNumber *string `min:"9" type:"string"` - - // A list of session tags that you want to pass. Each session tag consists of - // a key name and an associated value. For more information about session tags, - // see Tagging AWS STS Sessions (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) - // in the IAM User Guide. - // - // This parameter is optional. You can pass up to 50 session tags. The plain - // text session tag keys can’t exceed 128 characters, and the values can’t - // exceed 256 characters. For these and additional limits, see IAM and STS Character - // Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) - // in the IAM User Guide. - // - // An AWS conversion compresses the passed session policies and session tags - // into a packed binary format that has a separate limit. Your request can fail - // for this limit even if your plain text meets the other requirements. The - // PackedPolicySize response element indicates by percentage how close the policies - // and tags for your request are to the upper size limit. - // - // You can pass a session tag with the same key as a tag that is already attached - // to the role. When you do, session tags override a role tag with the same - // key. - // - // Tag key–value pairs are not case sensitive, but case is preserved. This - // means that you cannot have separate Department and department tag keys. Assume - // that the role has the Department=Marketing tag and you pass the department=engineering - // session tag. Department and department are not saved as separate tags, and - // the session tag passed in the request takes precedence over the role tag. - // - // Additionally, if you used temporary credentials to perform this operation, - // the new session inherits any transitive session tags from the calling session. - // If you pass a session tag with the same key as an inherited tag, the operation - // fails. To view the inherited tags for a session, see the AWS CloudTrail logs. - // For more information, see Viewing Session Tags in CloudTrail (https://docs.aws.amazon.com/IAM/latest/UserGuide/session-tags.html#id_session-tags_ctlogs) - // in the IAM User Guide. - Tags []*Tag `type:"list"` - - // The value provided by the MFA device, if the trust policy of the role being - // assumed requires MFA (that is, if the policy includes a condition that tests - // for MFA). If the role being assumed requires MFA and if the TokenCode value - // is missing or expired, the AssumeRole call returns an "access denied" error. - // - // The format for this parameter, as described by its regex pattern, is a sequence - // of six numeric digits. - TokenCode *string `min:"6" type:"string"` - - // A list of keys for session tags that you want to set as transitive. If you - // set a tag key as transitive, the corresponding key and value passes to subsequent - // sessions in a role chain. For more information, see Chaining Roles with Session - // Tags (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining) - // in the IAM User Guide. - // - // This parameter is optional. When you set session tags as transitive, the - // session policy and session tags packed binary limit is not affected. - // - // If you choose not to specify a transitive tag key, then no tags are passed - // from this session to any subsequent sessions. - TransitiveTagKeys []*string `type:"list"` -} - -// String returns the string representation -func (s AssumeRoleInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssumeRoleInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *AssumeRoleInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AssumeRoleInput"} - if s.DurationSeconds != nil && *s.DurationSeconds < 900 { - invalidParams.Add(request.NewErrParamMinValue("DurationSeconds", 900)) - } - if s.ExternalId != nil && len(*s.ExternalId) < 2 { - invalidParams.Add(request.NewErrParamMinLen("ExternalId", 2)) - } - if s.Policy != nil && len(*s.Policy) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Policy", 1)) - } - if s.RoleArn == nil { - invalidParams.Add(request.NewErrParamRequired("RoleArn")) - } - if s.RoleArn != nil && len(*s.RoleArn) < 20 { - invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20)) - } - if s.RoleSessionName == nil { - invalidParams.Add(request.NewErrParamRequired("RoleSessionName")) - } - if s.RoleSessionName != nil && len(*s.RoleSessionName) < 2 { - invalidParams.Add(request.NewErrParamMinLen("RoleSessionName", 2)) - } - if s.SerialNumber != nil && len(*s.SerialNumber) < 9 { - invalidParams.Add(request.NewErrParamMinLen("SerialNumber", 9)) - } - if s.TokenCode != nil && len(*s.TokenCode) < 6 { - invalidParams.Add(request.NewErrParamMinLen("TokenCode", 6)) - } - if s.PolicyArns != nil { - for i, v := range s.PolicyArns { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PolicyArns", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Tags != nil { - for i, v := range s.Tags { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDurationSeconds sets the DurationSeconds field's value. -func (s *AssumeRoleInput) SetDurationSeconds(v int64) *AssumeRoleInput { - s.DurationSeconds = &v - return s -} - -// SetExternalId sets the ExternalId field's value. -func (s *AssumeRoleInput) SetExternalId(v string) *AssumeRoleInput { - s.ExternalId = &v - return s -} - -// SetPolicy sets the Policy field's value. -func (s *AssumeRoleInput) SetPolicy(v string) *AssumeRoleInput { - s.Policy = &v - return s -} - -// SetPolicyArns sets the PolicyArns field's value. -func (s *AssumeRoleInput) SetPolicyArns(v []*PolicyDescriptorType) *AssumeRoleInput { - s.PolicyArns = v - return s -} - -// SetRoleArn sets the RoleArn field's value. -func (s *AssumeRoleInput) SetRoleArn(v string) *AssumeRoleInput { - s.RoleArn = &v - return s -} - -// SetRoleSessionName sets the RoleSessionName field's value. -func (s *AssumeRoleInput) SetRoleSessionName(v string) *AssumeRoleInput { - s.RoleSessionName = &v - return s -} - -// SetSerialNumber sets the SerialNumber field's value. -func (s *AssumeRoleInput) SetSerialNumber(v string) *AssumeRoleInput { - s.SerialNumber = &v - return s -} - -// SetTags sets the Tags field's value. -func (s *AssumeRoleInput) SetTags(v []*Tag) *AssumeRoleInput { - s.Tags = v - return s -} - -// SetTokenCode sets the TokenCode field's value. -func (s *AssumeRoleInput) SetTokenCode(v string) *AssumeRoleInput { - s.TokenCode = &v - return s -} - -// SetTransitiveTagKeys sets the TransitiveTagKeys field's value. -func (s *AssumeRoleInput) SetTransitiveTagKeys(v []*string) *AssumeRoleInput { - s.TransitiveTagKeys = v - return s -} - -// Contains the response to a successful AssumeRole request, including temporary -// AWS credentials that can be used to make AWS requests. -type AssumeRoleOutput struct { - _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) and the assumed role ID, which are identifiers - // that you can use to refer to the resulting temporary security credentials. - // For example, you can reference these credentials as a principal in a resource-based - // policy by using the ARN or assumed role ID. The ARN and ID include the RoleSessionName - // that you specified when you called AssumeRole. - AssumedRoleUser *AssumedRoleUser `type:"structure"` - - // The temporary security credentials, which include an access key ID, a secret - // access key, and a security (or session) token. - // - // The size of the security token that STS API operations return is not fixed. - // We strongly recommend that you make no assumptions about the maximum size. - Credentials *Credentials `type:"structure"` - - // A percentage value that indicates the packed size of the session policies - // and session tags combined passed in the request. The request fails if the - // packed size is greater than 100 percent, which means the policies and tags - // exceeded the allowed space. - PackedPolicySize *int64 `type:"integer"` -} - -// String returns the string representation -func (s AssumeRoleOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssumeRoleOutput) GoString() string { - return s.String() -} - -// SetAssumedRoleUser sets the AssumedRoleUser field's value. -func (s *AssumeRoleOutput) SetAssumedRoleUser(v *AssumedRoleUser) *AssumeRoleOutput { - s.AssumedRoleUser = v - return s -} - -// SetCredentials sets the Credentials field's value. -func (s *AssumeRoleOutput) SetCredentials(v *Credentials) *AssumeRoleOutput { - s.Credentials = v - return s -} - -// SetPackedPolicySize sets the PackedPolicySize field's value. -func (s *AssumeRoleOutput) SetPackedPolicySize(v int64) *AssumeRoleOutput { - s.PackedPolicySize = &v - return s -} - -type AssumeRoleWithSAMLInput struct { - _ struct{} `type:"structure"` - - // The duration, in seconds, of the role session. Your role session lasts for - // the duration that you specify for the DurationSeconds parameter, or until - // the time specified in the SAML authentication response's SessionNotOnOrAfter - // value, whichever is shorter. You can provide a DurationSeconds value from - // 900 seconds (15 minutes) up to the maximum session duration setting for the - // role. This setting can have a value from 1 hour to 12 hours. If you specify - // a value higher than this setting, the operation fails. For example, if you - // specify a session duration of 12 hours, but your administrator set the maximum - // session duration to 6 hours, your operation fails. To learn how to view the - // maximum value for your role, see View the Maximum Session Duration Setting - // for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) - // in the IAM User Guide. - // - // By default, the value is set to 3600 seconds. - // - // The DurationSeconds parameter is separate from the duration of a console - // session that you might request using the returned credentials. The request - // to the federation endpoint for a console sign-in token takes a SessionDuration - // parameter that specifies the maximum length of the console session. For more - // information, see Creating a URL that Enables Federated Users to Access the - // AWS Management Console (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html) - // in the IAM User Guide. - DurationSeconds *int64 `min:"900" type:"integer"` - - // An IAM policy in JSON format that you want to use as an inline session policy. - // - // This parameter is optional. Passing policies to this operation returns new - // temporary credentials. The resulting session's permissions are the intersection - // of the role's identity-based policy and the session policies. You can use - // the role's temporary credentials in subsequent AWS API calls to access resources - // in the account that owns the role. You cannot use session policies to grant - // more permissions than those allowed by the identity-based policy of the role - // that is being assumed. For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. - // - // The plain text that you use for both inline and managed session policies - // can't exceed 2,048 characters. The JSON policy characters can be any ASCII - // character from the space character to the end of the valid character list - // (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A), - // and carriage return (\u000D) characters. - // - // An AWS conversion compresses the passed session policies and session tags - // into a packed binary format that has a separate limit. Your request can fail - // for this limit even if your plain text meets the other requirements. The - // PackedPolicySize response element indicates by percentage how close the policies - // and tags for your request are to the upper size limit. - Policy *string `min:"1" type:"string"` - - // The Amazon Resource Names (ARNs) of the IAM managed policies that you want - // to use as managed session policies. The policies must exist in the same account - // as the role. - // - // This parameter is optional. You can provide up to 10 managed policy ARNs. - // However, the plain text that you use for both inline and managed session - // policies can't exceed 2,048 characters. For more information about ARNs, - // see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. - // - // An AWS conversion compresses the passed session policies and session tags - // into a packed binary format that has a separate limit. Your request can fail - // for this limit even if your plain text meets the other requirements. The - // PackedPolicySize response element indicates by percentage how close the policies - // and tags for your request are to the upper size limit. - // - // Passing policies to this operation returns new temporary credentials. The - // resulting session's permissions are the intersection of the role's identity-based - // policy and the session policies. You can use the role's temporary credentials - // in subsequent AWS API calls to access resources in the account that owns - // the role. You cannot use session policies to grant more permissions than - // those allowed by the identity-based policy of the role that is being assumed. - // For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. - PolicyArns []*PolicyDescriptorType `type:"list"` - - // The Amazon Resource Name (ARN) of the SAML provider in IAM that describes - // the IdP. - // - // PrincipalArn is a required field - PrincipalArn *string `min:"20" type:"string" required:"true"` - - // The Amazon Resource Name (ARN) of the role that the caller is assuming. - // - // RoleArn is a required field - RoleArn *string `min:"20" type:"string" required:"true"` - - // The base-64 encoded SAML authentication response provided by the IdP. - // - // For more information, see Configuring a Relying Party and Adding Claims (https://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml-IdP-tasks.html) - // in the IAM User Guide. - // - // SAMLAssertion is a required field - SAMLAssertion *string `min:"4" type:"string" required:"true"` -} - -// String returns the string representation -func (s AssumeRoleWithSAMLInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssumeRoleWithSAMLInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *AssumeRoleWithSAMLInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AssumeRoleWithSAMLInput"} - if s.DurationSeconds != nil && *s.DurationSeconds < 900 { - invalidParams.Add(request.NewErrParamMinValue("DurationSeconds", 900)) - } - if s.Policy != nil && len(*s.Policy) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Policy", 1)) - } - if s.PrincipalArn == nil { - invalidParams.Add(request.NewErrParamRequired("PrincipalArn")) - } - if s.PrincipalArn != nil && len(*s.PrincipalArn) < 20 { - invalidParams.Add(request.NewErrParamMinLen("PrincipalArn", 20)) - } - if s.RoleArn == nil { - invalidParams.Add(request.NewErrParamRequired("RoleArn")) - } - if s.RoleArn != nil && len(*s.RoleArn) < 20 { - invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20)) - } - if s.SAMLAssertion == nil { - invalidParams.Add(request.NewErrParamRequired("SAMLAssertion")) - } - if s.SAMLAssertion != nil && len(*s.SAMLAssertion) < 4 { - invalidParams.Add(request.NewErrParamMinLen("SAMLAssertion", 4)) - } - if s.PolicyArns != nil { - for i, v := range s.PolicyArns { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PolicyArns", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDurationSeconds sets the DurationSeconds field's value. -func (s *AssumeRoleWithSAMLInput) SetDurationSeconds(v int64) *AssumeRoleWithSAMLInput { - s.DurationSeconds = &v - return s -} - -// SetPolicy sets the Policy field's value. -func (s *AssumeRoleWithSAMLInput) SetPolicy(v string) *AssumeRoleWithSAMLInput { - s.Policy = &v - return s -} - -// SetPolicyArns sets the PolicyArns field's value. -func (s *AssumeRoleWithSAMLInput) SetPolicyArns(v []*PolicyDescriptorType) *AssumeRoleWithSAMLInput { - s.PolicyArns = v - return s -} - -// SetPrincipalArn sets the PrincipalArn field's value. -func (s *AssumeRoleWithSAMLInput) SetPrincipalArn(v string) *AssumeRoleWithSAMLInput { - s.PrincipalArn = &v - return s -} - -// SetRoleArn sets the RoleArn field's value. -func (s *AssumeRoleWithSAMLInput) SetRoleArn(v string) *AssumeRoleWithSAMLInput { - s.RoleArn = &v - return s -} - -// SetSAMLAssertion sets the SAMLAssertion field's value. -func (s *AssumeRoleWithSAMLInput) SetSAMLAssertion(v string) *AssumeRoleWithSAMLInput { - s.SAMLAssertion = &v - return s -} - -// Contains the response to a successful AssumeRoleWithSAML request, including -// temporary AWS credentials that can be used to make AWS requests. -type AssumeRoleWithSAMLOutput struct { - _ struct{} `type:"structure"` - - // The identifiers for the temporary security credentials that the operation - // returns. - AssumedRoleUser *AssumedRoleUser `type:"structure"` - - // The value of the Recipient attribute of the SubjectConfirmationData element - // of the SAML assertion. - Audience *string `type:"string"` - - // The temporary security credentials, which include an access key ID, a secret - // access key, and a security (or session) token. - // - // The size of the security token that STS API operations return is not fixed. - // We strongly recommend that you make no assumptions about the maximum size. - Credentials *Credentials `type:"structure"` - - // The value of the Issuer element of the SAML assertion. - Issuer *string `type:"string"` - - // A hash value based on the concatenation of the Issuer response value, the - // AWS account ID, and the friendly name (the last part of the ARN) of the SAML - // provider in IAM. The combination of NameQualifier and Subject can be used - // to uniquely identify a federated user. - // - // The following pseudocode shows how the hash value is calculated: - // - // BASE64 ( SHA1 ( "https://example.com/saml" + "123456789012" + "/MySAMLIdP" - // ) ) - NameQualifier *string `type:"string"` - - // A percentage value that indicates the packed size of the session policies - // and session tags combined passed in the request. The request fails if the - // packed size is greater than 100 percent, which means the policies and tags - // exceeded the allowed space. - PackedPolicySize *int64 `type:"integer"` - - // The value of the NameID element in the Subject element of the SAML assertion. - Subject *string `type:"string"` - - // The format of the name ID, as defined by the Format attribute in the NameID - // element of the SAML assertion. Typical examples of the format are transient - // or persistent. - // - // If the format includes the prefix urn:oasis:names:tc:SAML:2.0:nameid-format, - // that prefix is removed. For example, urn:oasis:names:tc:SAML:2.0:nameid-format:transient - // is returned as transient. If the format includes any other prefix, the format - // is returned with no modifications. - SubjectType *string `type:"string"` -} - -// String returns the string representation -func (s AssumeRoleWithSAMLOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssumeRoleWithSAMLOutput) GoString() string { - return s.String() -} - -// SetAssumedRoleUser sets the AssumedRoleUser field's value. -func (s *AssumeRoleWithSAMLOutput) SetAssumedRoleUser(v *AssumedRoleUser) *AssumeRoleWithSAMLOutput { - s.AssumedRoleUser = v - return s -} - -// SetAudience sets the Audience field's value. -func (s *AssumeRoleWithSAMLOutput) SetAudience(v string) *AssumeRoleWithSAMLOutput { - s.Audience = &v - return s -} - -// SetCredentials sets the Credentials field's value. -func (s *AssumeRoleWithSAMLOutput) SetCredentials(v *Credentials) *AssumeRoleWithSAMLOutput { - s.Credentials = v - return s -} - -// SetIssuer sets the Issuer field's value. -func (s *AssumeRoleWithSAMLOutput) SetIssuer(v string) *AssumeRoleWithSAMLOutput { - s.Issuer = &v - return s -} - -// SetNameQualifier sets the NameQualifier field's value. -func (s *AssumeRoleWithSAMLOutput) SetNameQualifier(v string) *AssumeRoleWithSAMLOutput { - s.NameQualifier = &v - return s -} - -// SetPackedPolicySize sets the PackedPolicySize field's value. -func (s *AssumeRoleWithSAMLOutput) SetPackedPolicySize(v int64) *AssumeRoleWithSAMLOutput { - s.PackedPolicySize = &v - return s -} - -// SetSubject sets the Subject field's value. -func (s *AssumeRoleWithSAMLOutput) SetSubject(v string) *AssumeRoleWithSAMLOutput { - s.Subject = &v - return s -} - -// SetSubjectType sets the SubjectType field's value. -func (s *AssumeRoleWithSAMLOutput) SetSubjectType(v string) *AssumeRoleWithSAMLOutput { - s.SubjectType = &v - return s -} - -type AssumeRoleWithWebIdentityInput struct { - _ struct{} `type:"structure"` - - // The duration, in seconds, of the role session. The value can range from 900 - // seconds (15 minutes) up to the maximum session duration setting for the role. - // This setting can have a value from 1 hour to 12 hours. If you specify a value - // higher than this setting, the operation fails. For example, if you specify - // a session duration of 12 hours, but your administrator set the maximum session - // duration to 6 hours, your operation fails. To learn how to view the maximum - // value for your role, see View the Maximum Session Duration Setting for a - // Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) - // in the IAM User Guide. - // - // By default, the value is set to 3600 seconds. - // - // The DurationSeconds parameter is separate from the duration of a console - // session that you might request using the returned credentials. The request - // to the federation endpoint for a console sign-in token takes a SessionDuration - // parameter that specifies the maximum length of the console session. For more - // information, see Creating a URL that Enables Federated Users to Access the - // AWS Management Console (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html) - // in the IAM User Guide. - DurationSeconds *int64 `min:"900" type:"integer"` - - // An IAM policy in JSON format that you want to use as an inline session policy. - // - // This parameter is optional. Passing policies to this operation returns new - // temporary credentials. The resulting session's permissions are the intersection - // of the role's identity-based policy and the session policies. You can use - // the role's temporary credentials in subsequent AWS API calls to access resources - // in the account that owns the role. You cannot use session policies to grant - // more permissions than those allowed by the identity-based policy of the role - // that is being assumed. For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. - // - // The plain text that you use for both inline and managed session policies - // can't exceed 2,048 characters. The JSON policy characters can be any ASCII - // character from the space character to the end of the valid character list - // (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A), - // and carriage return (\u000D) characters. - // - // An AWS conversion compresses the passed session policies and session tags - // into a packed binary format that has a separate limit. Your request can fail - // for this limit even if your plain text meets the other requirements. The - // PackedPolicySize response element indicates by percentage how close the policies - // and tags for your request are to the upper size limit. - Policy *string `min:"1" type:"string"` - - // The Amazon Resource Names (ARNs) of the IAM managed policies that you want - // to use as managed session policies. The policies must exist in the same account - // as the role. - // - // This parameter is optional. You can provide up to 10 managed policy ARNs. - // However, the plain text that you use for both inline and managed session - // policies can't exceed 2,048 characters. For more information about ARNs, - // see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. - // - // An AWS conversion compresses the passed session policies and session tags - // into a packed binary format that has a separate limit. Your request can fail - // for this limit even if your plain text meets the other requirements. The - // PackedPolicySize response element indicates by percentage how close the policies - // and tags for your request are to the upper size limit. - // - // Passing policies to this operation returns new temporary credentials. The - // resulting session's permissions are the intersection of the role's identity-based - // policy and the session policies. You can use the role's temporary credentials - // in subsequent AWS API calls to access resources in the account that owns - // the role. You cannot use session policies to grant more permissions than - // those allowed by the identity-based policy of the role that is being assumed. - // For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. - PolicyArns []*PolicyDescriptorType `type:"list"` - - // The fully qualified host component of the domain name of the identity provider. - // - // Specify this value only for OAuth 2.0 access tokens. Currently www.amazon.com - // and graph.facebook.com are the only supported identity providers for OAuth - // 2.0 access tokens. Do not include URL schemes and port numbers. - // - // Do not specify this value for OpenID Connect ID tokens. - ProviderId *string `min:"4" type:"string"` - - // The Amazon Resource Name (ARN) of the role that the caller is assuming. - // - // RoleArn is a required field - RoleArn *string `min:"20" type:"string" required:"true"` - - // An identifier for the assumed role session. Typically, you pass the name - // or identifier that is associated with the user who is using your application. - // That way, the temporary security credentials that your application will use - // are associated with that user. This session name is included as part of the - // ARN and assumed role ID in the AssumedRoleUser response element. - // - // The regex used to validate this parameter is a string of characters consisting - // of upper- and lower-case alphanumeric characters with no spaces. You can - // also include underscores or any of the following characters: =,.@- - // - // RoleSessionName is a required field - RoleSessionName *string `min:"2" type:"string" required:"true"` - - // The OAuth 2.0 access token or OpenID Connect ID token that is provided by - // the identity provider. Your application must get this token by authenticating - // the user who is using your application with a web identity provider before - // the application makes an AssumeRoleWithWebIdentity call. - // - // WebIdentityToken is a required field - WebIdentityToken *string `min:"4" type:"string" required:"true"` -} - -// String returns the string representation -func (s AssumeRoleWithWebIdentityInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssumeRoleWithWebIdentityInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *AssumeRoleWithWebIdentityInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AssumeRoleWithWebIdentityInput"} - if s.DurationSeconds != nil && *s.DurationSeconds < 900 { - invalidParams.Add(request.NewErrParamMinValue("DurationSeconds", 900)) - } - if s.Policy != nil && len(*s.Policy) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Policy", 1)) - } - if s.ProviderId != nil && len(*s.ProviderId) < 4 { - invalidParams.Add(request.NewErrParamMinLen("ProviderId", 4)) - } - if s.RoleArn == nil { - invalidParams.Add(request.NewErrParamRequired("RoleArn")) - } - if s.RoleArn != nil && len(*s.RoleArn) < 20 { - invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20)) - } - if s.RoleSessionName == nil { - invalidParams.Add(request.NewErrParamRequired("RoleSessionName")) - } - if s.RoleSessionName != nil && len(*s.RoleSessionName) < 2 { - invalidParams.Add(request.NewErrParamMinLen("RoleSessionName", 2)) - } - if s.WebIdentityToken == nil { - invalidParams.Add(request.NewErrParamRequired("WebIdentityToken")) - } - if s.WebIdentityToken != nil && len(*s.WebIdentityToken) < 4 { - invalidParams.Add(request.NewErrParamMinLen("WebIdentityToken", 4)) - } - if s.PolicyArns != nil { - for i, v := range s.PolicyArns { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PolicyArns", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDurationSeconds sets the DurationSeconds field's value. -func (s *AssumeRoleWithWebIdentityInput) SetDurationSeconds(v int64) *AssumeRoleWithWebIdentityInput { - s.DurationSeconds = &v - return s -} - -// SetPolicy sets the Policy field's value. -func (s *AssumeRoleWithWebIdentityInput) SetPolicy(v string) *AssumeRoleWithWebIdentityInput { - s.Policy = &v - return s -} - -// SetPolicyArns sets the PolicyArns field's value. -func (s *AssumeRoleWithWebIdentityInput) SetPolicyArns(v []*PolicyDescriptorType) *AssumeRoleWithWebIdentityInput { - s.PolicyArns = v - return s -} - -// SetProviderId sets the ProviderId field's value. -func (s *AssumeRoleWithWebIdentityInput) SetProviderId(v string) *AssumeRoleWithWebIdentityInput { - s.ProviderId = &v - return s -} - -// SetRoleArn sets the RoleArn field's value. -func (s *AssumeRoleWithWebIdentityInput) SetRoleArn(v string) *AssumeRoleWithWebIdentityInput { - s.RoleArn = &v - return s -} - -// SetRoleSessionName sets the RoleSessionName field's value. -func (s *AssumeRoleWithWebIdentityInput) SetRoleSessionName(v string) *AssumeRoleWithWebIdentityInput { - s.RoleSessionName = &v - return s -} - -// SetWebIdentityToken sets the WebIdentityToken field's value. -func (s *AssumeRoleWithWebIdentityInput) SetWebIdentityToken(v string) *AssumeRoleWithWebIdentityInput { - s.WebIdentityToken = &v - return s -} - -// Contains the response to a successful AssumeRoleWithWebIdentity request, -// including temporary AWS credentials that can be used to make AWS requests. -type AssumeRoleWithWebIdentityOutput struct { - _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) and the assumed role ID, which are identifiers - // that you can use to refer to the resulting temporary security credentials. - // For example, you can reference these credentials as a principal in a resource-based - // policy by using the ARN or assumed role ID. The ARN and ID include the RoleSessionName - // that you specified when you called AssumeRole. - AssumedRoleUser *AssumedRoleUser `type:"structure"` - - // The intended audience (also known as client ID) of the web identity token. - // This is traditionally the client identifier issued to the application that - // requested the web identity token. - Audience *string `type:"string"` - - // The temporary security credentials, which include an access key ID, a secret - // access key, and a security token. - // - // The size of the security token that STS API operations return is not fixed. - // We strongly recommend that you make no assumptions about the maximum size. - Credentials *Credentials `type:"structure"` - - // A percentage value that indicates the packed size of the session policies - // and session tags combined passed in the request. The request fails if the - // packed size is greater than 100 percent, which means the policies and tags - // exceeded the allowed space. - PackedPolicySize *int64 `type:"integer"` - - // The issuing authority of the web identity token presented. For OpenID Connect - // ID tokens, this contains the value of the iss field. For OAuth 2.0 access - // tokens, this contains the value of the ProviderId parameter that was passed - // in the AssumeRoleWithWebIdentity request. - Provider *string `type:"string"` - - // The unique user identifier that is returned by the identity provider. This - // identifier is associated with the WebIdentityToken that was submitted with - // the AssumeRoleWithWebIdentity call. The identifier is typically unique to - // the user and the application that acquired the WebIdentityToken (pairwise - // identifier). For OpenID Connect ID tokens, this field contains the value - // returned by the identity provider as the token's sub (Subject) claim. - SubjectFromWebIdentityToken *string `min:"6" type:"string"` -} - -// String returns the string representation -func (s AssumeRoleWithWebIdentityOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssumeRoleWithWebIdentityOutput) GoString() string { - return s.String() -} - -// SetAssumedRoleUser sets the AssumedRoleUser field's value. -func (s *AssumeRoleWithWebIdentityOutput) SetAssumedRoleUser(v *AssumedRoleUser) *AssumeRoleWithWebIdentityOutput { - s.AssumedRoleUser = v - return s -} - -// SetAudience sets the Audience field's value. -func (s *AssumeRoleWithWebIdentityOutput) SetAudience(v string) *AssumeRoleWithWebIdentityOutput { - s.Audience = &v - return s -} - -// SetCredentials sets the Credentials field's value. -func (s *AssumeRoleWithWebIdentityOutput) SetCredentials(v *Credentials) *AssumeRoleWithWebIdentityOutput { - s.Credentials = v - return s -} - -// SetPackedPolicySize sets the PackedPolicySize field's value. -func (s *AssumeRoleWithWebIdentityOutput) SetPackedPolicySize(v int64) *AssumeRoleWithWebIdentityOutput { - s.PackedPolicySize = &v - return s -} - -// SetProvider sets the Provider field's value. -func (s *AssumeRoleWithWebIdentityOutput) SetProvider(v string) *AssumeRoleWithWebIdentityOutput { - s.Provider = &v - return s -} - -// SetSubjectFromWebIdentityToken sets the SubjectFromWebIdentityToken field's value. -func (s *AssumeRoleWithWebIdentityOutput) SetSubjectFromWebIdentityToken(v string) *AssumeRoleWithWebIdentityOutput { - s.SubjectFromWebIdentityToken = &v - return s -} - -// The identifiers for the temporary security credentials that the operation -// returns. -type AssumedRoleUser struct { - _ struct{} `type:"structure"` - - // The ARN of the temporary security credentials that are returned from the - // AssumeRole action. For more information about ARNs and how to use them in - // policies, see IAM Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) - // in the IAM User Guide. - // - // Arn is a required field - Arn *string `min:"20" type:"string" required:"true"` - - // A unique identifier that contains the role ID and the role session name of - // the role that is being assumed. The role ID is generated by AWS when the - // role is created. - // - // AssumedRoleId is a required field - AssumedRoleId *string `min:"2" type:"string" required:"true"` -} - -// String returns the string representation -func (s AssumedRoleUser) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AssumedRoleUser) GoString() string { - return s.String() -} - -// SetArn sets the Arn field's value. -func (s *AssumedRoleUser) SetArn(v string) *AssumedRoleUser { - s.Arn = &v - return s -} - -// SetAssumedRoleId sets the AssumedRoleId field's value. -func (s *AssumedRoleUser) SetAssumedRoleId(v string) *AssumedRoleUser { - s.AssumedRoleId = &v - return s -} - -// AWS credentials for API authentication. -type Credentials struct { - _ struct{} `type:"structure"` - - // The access key ID that identifies the temporary security credentials. - // - // AccessKeyId is a required field - AccessKeyId *string `min:"16" type:"string" required:"true"` - - // The date on which the current credentials expire. - // - // Expiration is a required field - Expiration *time.Time `type:"timestamp" required:"true"` - - // The secret access key that can be used to sign requests. - // - // SecretAccessKey is a required field - SecretAccessKey *string `type:"string" required:"true"` - - // The token that users must pass to the service API to use the temporary credentials. - // - // SessionToken is a required field - SessionToken *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s Credentials) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Credentials) GoString() string { - return s.String() -} - -// SetAccessKeyId sets the AccessKeyId field's value. -func (s *Credentials) SetAccessKeyId(v string) *Credentials { - s.AccessKeyId = &v - return s -} - -// SetExpiration sets the Expiration field's value. -func (s *Credentials) SetExpiration(v time.Time) *Credentials { - s.Expiration = &v - return s -} - -// SetSecretAccessKey sets the SecretAccessKey field's value. -func (s *Credentials) SetSecretAccessKey(v string) *Credentials { - s.SecretAccessKey = &v - return s -} - -// SetSessionToken sets the SessionToken field's value. -func (s *Credentials) SetSessionToken(v string) *Credentials { - s.SessionToken = &v - return s -} - -type DecodeAuthorizationMessageInput struct { - _ struct{} `type:"structure"` - - // The encoded message that was returned with the response. - // - // EncodedMessage is a required field - EncodedMessage *string `min:"1" type:"string" required:"true"` -} - -// String returns the string representation -func (s DecodeAuthorizationMessageInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DecodeAuthorizationMessageInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DecodeAuthorizationMessageInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DecodeAuthorizationMessageInput"} - if s.EncodedMessage == nil { - invalidParams.Add(request.NewErrParamRequired("EncodedMessage")) - } - if s.EncodedMessage != nil && len(*s.EncodedMessage) < 1 { - invalidParams.Add(request.NewErrParamMinLen("EncodedMessage", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetEncodedMessage sets the EncodedMessage field's value. -func (s *DecodeAuthorizationMessageInput) SetEncodedMessage(v string) *DecodeAuthorizationMessageInput { - s.EncodedMessage = &v - return s -} - -// A document that contains additional information about the authorization status -// of a request from an encoded message that is returned in response to an AWS -// request. -type DecodeAuthorizationMessageOutput struct { - _ struct{} `type:"structure"` - - // An XML document that contains the decoded message. - DecodedMessage *string `type:"string"` -} - -// String returns the string representation -func (s DecodeAuthorizationMessageOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DecodeAuthorizationMessageOutput) GoString() string { - return s.String() -} - -// SetDecodedMessage sets the DecodedMessage field's value. -func (s *DecodeAuthorizationMessageOutput) SetDecodedMessage(v string) *DecodeAuthorizationMessageOutput { - s.DecodedMessage = &v - return s -} - -// Identifiers for the federated user that is associated with the credentials. -type FederatedUser struct { - _ struct{} `type:"structure"` - - // The ARN that specifies the federated user that is associated with the credentials. - // For more information about ARNs and how to use them in policies, see IAM - // Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) - // in the IAM User Guide. - // - // Arn is a required field - Arn *string `min:"20" type:"string" required:"true"` - - // The string that identifies the federated user associated with the credentials, - // similar to the unique ID of an IAM user. - // - // FederatedUserId is a required field - FederatedUserId *string `min:"2" type:"string" required:"true"` -} - -// String returns the string representation -func (s FederatedUser) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s FederatedUser) GoString() string { - return s.String() -} - -// SetArn sets the Arn field's value. -func (s *FederatedUser) SetArn(v string) *FederatedUser { - s.Arn = &v - return s -} - -// SetFederatedUserId sets the FederatedUserId field's value. -func (s *FederatedUser) SetFederatedUserId(v string) *FederatedUser { - s.FederatedUserId = &v - return s -} - -type GetAccessKeyInfoInput struct { - _ struct{} `type:"structure"` - - // The identifier of an access key. - // - // This parameter allows (through its regex pattern) a string of characters - // that can consist of any upper- or lowercase letter or digit. - // - // AccessKeyId is a required field - AccessKeyId *string `min:"16" type:"string" required:"true"` -} - -// String returns the string representation -func (s GetAccessKeyInfoInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetAccessKeyInfoInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetAccessKeyInfoInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetAccessKeyInfoInput"} - if s.AccessKeyId == nil { - invalidParams.Add(request.NewErrParamRequired("AccessKeyId")) - } - if s.AccessKeyId != nil && len(*s.AccessKeyId) < 16 { - invalidParams.Add(request.NewErrParamMinLen("AccessKeyId", 16)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAccessKeyId sets the AccessKeyId field's value. -func (s *GetAccessKeyInfoInput) SetAccessKeyId(v string) *GetAccessKeyInfoInput { - s.AccessKeyId = &v - return s -} - -type GetAccessKeyInfoOutput struct { - _ struct{} `type:"structure"` - - // The number used to identify the AWS account. - Account *string `type:"string"` -} - -// String returns the string representation -func (s GetAccessKeyInfoOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetAccessKeyInfoOutput) GoString() string { - return s.String() -} - -// SetAccount sets the Account field's value. -func (s *GetAccessKeyInfoOutput) SetAccount(v string) *GetAccessKeyInfoOutput { - s.Account = &v - return s -} - -type GetCallerIdentityInput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation -func (s GetCallerIdentityInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetCallerIdentityInput) GoString() string { - return s.String() -} - -// Contains the response to a successful GetCallerIdentity request, including -// information about the entity making the request. -type GetCallerIdentityOutput struct { - _ struct{} `type:"structure"` - - // The AWS account ID number of the account that owns or contains the calling - // entity. - Account *string `type:"string"` - - // The AWS ARN associated with the calling entity. - Arn *string `min:"20" type:"string"` - - // The unique identifier of the calling entity. The exact value depends on the - // type of entity that is making the call. The values returned are those listed - // in the aws:userid column in the Principal table (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable) - // found on the Policy Variables reference page in the IAM User Guide. - UserId *string `type:"string"` -} - -// String returns the string representation -func (s GetCallerIdentityOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetCallerIdentityOutput) GoString() string { - return s.String() -} - -// SetAccount sets the Account field's value. -func (s *GetCallerIdentityOutput) SetAccount(v string) *GetCallerIdentityOutput { - s.Account = &v - return s -} - -// SetArn sets the Arn field's value. -func (s *GetCallerIdentityOutput) SetArn(v string) *GetCallerIdentityOutput { - s.Arn = &v - return s -} - -// SetUserId sets the UserId field's value. -func (s *GetCallerIdentityOutput) SetUserId(v string) *GetCallerIdentityOutput { - s.UserId = &v - return s -} - -type GetFederationTokenInput struct { - _ struct{} `type:"structure"` - - // The duration, in seconds, that the session should last. Acceptable durations - // for federation sessions range from 900 seconds (15 minutes) to 129,600 seconds - // (36 hours), with 43,200 seconds (12 hours) as the default. Sessions obtained - // using AWS account root user credentials are restricted to a maximum of 3,600 - // seconds (one hour). If the specified duration is longer than one hour, the - // session obtained by using root user credentials defaults to one hour. - DurationSeconds *int64 `min:"900" type:"integer"` - - // The name of the federated user. The name is used as an identifier for the - // temporary security credentials (such as Bob). For example, you can reference - // the federated user name in a resource-based policy, such as in an Amazon - // S3 bucket policy. - // - // The regex used to validate this parameter is a string of characters consisting - // of upper- and lower-case alphanumeric characters with no spaces. You can - // also include underscores or any of the following characters: =,.@- - // - // Name is a required field - Name *string `min:"2" type:"string" required:"true"` - - // An IAM policy in JSON format that you want to use as an inline session policy. - // - // You must pass an inline or managed session policy (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // to this operation. You can pass a single JSON policy document to use as an - // inline session policy. You can also specify up to 10 managed policies to - // use as managed session policies. - // - // This parameter is optional. However, if you do not pass any session policies, - // then the resulting federated user session has no permissions. - // - // When you pass session policies, the session permissions are the intersection - // of the IAM user policies and the session policies that you pass. This gives - // you a way to further restrict the permissions for a federated user. You cannot - // use session policies to grant more permissions than those that are defined - // in the permissions policy of the IAM user. For more information, see Session - // Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. - // - // The resulting credentials can be used to access a resource that has a resource-based - // policy. If that policy specifically references the federated user session - // in the Principal element of the policy, the session has the permissions allowed - // by the policy. These permissions are granted in addition to the permissions - // that are granted by the session policies. - // - // The plain text that you use for both inline and managed session policies - // can't exceed 2,048 characters. The JSON policy characters can be any ASCII - // character from the space character to the end of the valid character list - // (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A), - // and carriage return (\u000D) characters. - // - // An AWS conversion compresses the passed session policies and session tags - // into a packed binary format that has a separate limit. Your request can fail - // for this limit even if your plain text meets the other requirements. The - // PackedPolicySize response element indicates by percentage how close the policies - // and tags for your request are to the upper size limit. - Policy *string `min:"1" type:"string"` - - // The Amazon Resource Names (ARNs) of the IAM managed policies that you want - // to use as a managed session policy. The policies must exist in the same account - // as the IAM user that is requesting federated access. - // - // You must pass an inline or managed session policy (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // to this operation. You can pass a single JSON policy document to use as an - // inline session policy. You can also specify up to 10 managed policies to - // use as managed session policies. The plain text that you use for both inline - // and managed session policies can't exceed 2,048 characters. You can provide - // up to 10 managed policy ARNs. For more information about ARNs, see Amazon - // Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. - // - // This parameter is optional. However, if you do not pass any session policies, - // then the resulting federated user session has no permissions. - // - // When you pass session policies, the session permissions are the intersection - // of the IAM user policies and the session policies that you pass. This gives - // you a way to further restrict the permissions for a federated user. You cannot - // use session policies to grant more permissions than those that are defined - // in the permissions policy of the IAM user. For more information, see Session - // Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) - // in the IAM User Guide. - // - // The resulting credentials can be used to access a resource that has a resource-based - // policy. If that policy specifically references the federated user session - // in the Principal element of the policy, the session has the permissions allowed - // by the policy. These permissions are granted in addition to the permissions - // that are granted by the session policies. - // - // An AWS conversion compresses the passed session policies and session tags - // into a packed binary format that has a separate limit. Your request can fail - // for this limit even if your plain text meets the other requirements. The - // PackedPolicySize response element indicates by percentage how close the policies - // and tags for your request are to the upper size limit. - PolicyArns []*PolicyDescriptorType `type:"list"` - - // A list of session tags. Each session tag consists of a key name and an associated - // value. For more information about session tags, see Passing Session Tags - // in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) - // in the IAM User Guide. - // - // This parameter is optional. You can pass up to 50 session tags. The plain - // text session tag keys can’t exceed 128 characters and the values can’t - // exceed 256 characters. For these and additional limits, see IAM and STS Character - // Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) - // in the IAM User Guide. - // - // An AWS conversion compresses the passed session policies and session tags - // into a packed binary format that has a separate limit. Your request can fail - // for this limit even if your plain text meets the other requirements. The - // PackedPolicySize response element indicates by percentage how close the policies - // and tags for your request are to the upper size limit. - // - // You can pass a session tag with the same key as a tag that is already attached - // to the user you are federating. When you do, session tags override a user - // tag with the same key. - // - // Tag key–value pairs are not case sensitive, but case is preserved. This - // means that you cannot have separate Department and department tag keys. Assume - // that the role has the Department=Marketing tag and you pass the department=engineering - // session tag. Department and department are not saved as separate tags, and - // the session tag passed in the request takes precedence over the role tag. - Tags []*Tag `type:"list"` -} - -// String returns the string representation -func (s GetFederationTokenInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetFederationTokenInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetFederationTokenInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetFederationTokenInput"} - if s.DurationSeconds != nil && *s.DurationSeconds < 900 { - invalidParams.Add(request.NewErrParamMinValue("DurationSeconds", 900)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 2 { - invalidParams.Add(request.NewErrParamMinLen("Name", 2)) - } - if s.Policy != nil && len(*s.Policy) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Policy", 1)) - } - if s.PolicyArns != nil { - for i, v := range s.PolicyArns { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PolicyArns", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Tags != nil { - for i, v := range s.Tags { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDurationSeconds sets the DurationSeconds field's value. -func (s *GetFederationTokenInput) SetDurationSeconds(v int64) *GetFederationTokenInput { - s.DurationSeconds = &v - return s -} - -// SetName sets the Name field's value. -func (s *GetFederationTokenInput) SetName(v string) *GetFederationTokenInput { - s.Name = &v - return s -} - -// SetPolicy sets the Policy field's value. -func (s *GetFederationTokenInput) SetPolicy(v string) *GetFederationTokenInput { - s.Policy = &v - return s -} - -// SetPolicyArns sets the PolicyArns field's value. -func (s *GetFederationTokenInput) SetPolicyArns(v []*PolicyDescriptorType) *GetFederationTokenInput { - s.PolicyArns = v - return s -} - -// SetTags sets the Tags field's value. -func (s *GetFederationTokenInput) SetTags(v []*Tag) *GetFederationTokenInput { - s.Tags = v - return s -} - -// Contains the response to a successful GetFederationToken request, including -// temporary AWS credentials that can be used to make AWS requests. -type GetFederationTokenOutput struct { - _ struct{} `type:"structure"` - - // The temporary security credentials, which include an access key ID, a secret - // access key, and a security (or session) token. - // - // The size of the security token that STS API operations return is not fixed. - // We strongly recommend that you make no assumptions about the maximum size. - Credentials *Credentials `type:"structure"` - - // Identifiers for the federated user associated with the credentials (such - // as arn:aws:sts::123456789012:federated-user/Bob or 123456789012:Bob). You - // can use the federated user's ARN in your resource-based policies, such as - // an Amazon S3 bucket policy. - FederatedUser *FederatedUser `type:"structure"` - - // A percentage value that indicates the packed size of the session policies - // and session tags combined passed in the request. The request fails if the - // packed size is greater than 100 percent, which means the policies and tags - // exceeded the allowed space. - PackedPolicySize *int64 `type:"integer"` -} - -// String returns the string representation -func (s GetFederationTokenOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetFederationTokenOutput) GoString() string { - return s.String() -} - -// SetCredentials sets the Credentials field's value. -func (s *GetFederationTokenOutput) SetCredentials(v *Credentials) *GetFederationTokenOutput { - s.Credentials = v - return s -} - -// SetFederatedUser sets the FederatedUser field's value. -func (s *GetFederationTokenOutput) SetFederatedUser(v *FederatedUser) *GetFederationTokenOutput { - s.FederatedUser = v - return s -} - -// SetPackedPolicySize sets the PackedPolicySize field's value. -func (s *GetFederationTokenOutput) SetPackedPolicySize(v int64) *GetFederationTokenOutput { - s.PackedPolicySize = &v - return s -} - -type GetSessionTokenInput struct { - _ struct{} `type:"structure"` - - // The duration, in seconds, that the credentials should remain valid. Acceptable - // durations for IAM user sessions range from 900 seconds (15 minutes) to 129,600 - // seconds (36 hours), with 43,200 seconds (12 hours) as the default. Sessions - // for AWS account owners are restricted to a maximum of 3,600 seconds (one - // hour). If the duration is longer than one hour, the session for AWS account - // owners defaults to one hour. - DurationSeconds *int64 `min:"900" type:"integer"` - - // The identification number of the MFA device that is associated with the IAM - // user who is making the GetSessionToken call. Specify this value if the IAM - // user has a policy that requires MFA authentication. The value is either the - // serial number for a hardware device (such as GAHT12345678) or an Amazon Resource - // Name (ARN) for a virtual device (such as arn:aws:iam::123456789012:mfa/user). - // You can find the device for an IAM user by going to the AWS Management Console - // and viewing the user's security credentials. - // - // The regex used to validate this parameter is a string of characters consisting - // of upper- and lower-case alphanumeric characters with no spaces. You can - // also include underscores or any of the following characters: =,.@:/- - SerialNumber *string `min:"9" type:"string"` - - // The value provided by the MFA device, if MFA is required. If any policy requires - // the IAM user to submit an MFA code, specify this value. If MFA authentication - // is required, the user must provide a code when requesting a set of temporary - // security credentials. A user who fails to provide the code receives an "access - // denied" response when requesting resources that require MFA authentication. - // - // The format for this parameter, as described by its regex pattern, is a sequence - // of six numeric digits. - TokenCode *string `min:"6" type:"string"` -} - -// String returns the string representation -func (s GetSessionTokenInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetSessionTokenInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetSessionTokenInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetSessionTokenInput"} - if s.DurationSeconds != nil && *s.DurationSeconds < 900 { - invalidParams.Add(request.NewErrParamMinValue("DurationSeconds", 900)) - } - if s.SerialNumber != nil && len(*s.SerialNumber) < 9 { - invalidParams.Add(request.NewErrParamMinLen("SerialNumber", 9)) - } - if s.TokenCode != nil && len(*s.TokenCode) < 6 { - invalidParams.Add(request.NewErrParamMinLen("TokenCode", 6)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDurationSeconds sets the DurationSeconds field's value. -func (s *GetSessionTokenInput) SetDurationSeconds(v int64) *GetSessionTokenInput { - s.DurationSeconds = &v - return s -} - -// SetSerialNumber sets the SerialNumber field's value. -func (s *GetSessionTokenInput) SetSerialNumber(v string) *GetSessionTokenInput { - s.SerialNumber = &v - return s -} - -// SetTokenCode sets the TokenCode field's value. -func (s *GetSessionTokenInput) SetTokenCode(v string) *GetSessionTokenInput { - s.TokenCode = &v - return s -} - -// Contains the response to a successful GetSessionToken request, including -// temporary AWS credentials that can be used to make AWS requests. -type GetSessionTokenOutput struct { - _ struct{} `type:"structure"` - - // The temporary security credentials, which include an access key ID, a secret - // access key, and a security (or session) token. - // - // The size of the security token that STS API operations return is not fixed. - // We strongly recommend that you make no assumptions about the maximum size. - Credentials *Credentials `type:"structure"` -} - -// String returns the string representation -func (s GetSessionTokenOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s GetSessionTokenOutput) GoString() string { - return s.String() -} - -// SetCredentials sets the Credentials field's value. -func (s *GetSessionTokenOutput) SetCredentials(v *Credentials) *GetSessionTokenOutput { - s.Credentials = v - return s -} - -// A reference to the IAM managed policy that is passed as a session policy -// for a role session or a federated user session. -type PolicyDescriptorType struct { - _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) of the IAM managed policy to use as a session - // policy for the role. For more information about ARNs, see Amazon Resource - // Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. - Arn *string `locationName:"arn" min:"20" type:"string"` -} - -// String returns the string representation -func (s PolicyDescriptorType) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s PolicyDescriptorType) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *PolicyDescriptorType) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "PolicyDescriptorType"} - if s.Arn != nil && len(*s.Arn) < 20 { - invalidParams.Add(request.NewErrParamMinLen("Arn", 20)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetArn sets the Arn field's value. -func (s *PolicyDescriptorType) SetArn(v string) *PolicyDescriptorType { - s.Arn = &v - return s -} - -// You can pass custom key-value pair attributes when you assume a role or federate -// a user. These are called session tags. You can then use the session tags -// to control access to resources. For more information, see Tagging AWS STS -// Sessions (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) -// in the IAM User Guide. -type Tag struct { - _ struct{} `type:"structure"` - - // The key for a session tag. - // - // You can pass up to 50 session tags. The plain text session tag keys can’t - // exceed 128 characters. For these and additional limits, see IAM and STS Character - // Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) - // in the IAM User Guide. - // - // Key is a required field - Key *string `min:"1" type:"string" required:"true"` - - // The value for a session tag. - // - // You can pass up to 50 session tags. The plain text session tag values can’t - // exceed 256 characters. For these and additional limits, see IAM and STS Character - // Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length) - // in the IAM User Guide. - // - // Value is a required field - Value *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s Tag) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Tag) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *Tag) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "Tag"} - if s.Key == nil { - invalidParams.Add(request.NewErrParamRequired("Key")) - } - if s.Key != nil && len(*s.Key) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Key", 1)) - } - if s.Value == nil { - invalidParams.Add(request.NewErrParamRequired("Value")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetKey sets the Key field's value. -func (s *Tag) SetKey(v string) *Tag { - s.Key = &v - return s -} - -// SetValue sets the Value field's value. -func (s *Tag) SetValue(v string) *Tag { - s.Value = &v - return s -} diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/customizations.go b/vendor/github.com/aws/aws-sdk-go/service/sts/customizations.go deleted file mode 100644 index d5307fc..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/sts/customizations.go +++ /dev/null @@ -1,11 +0,0 @@ -package sts - -import "github.com/aws/aws-sdk-go/aws/request" - -func init() { - initRequest = customizeRequest -} - -func customizeRequest(r *request.Request) { - r.RetryErrorCodes = append(r.RetryErrorCodes, ErrCodeIDPCommunicationErrorException) -} diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/doc.go b/vendor/github.com/aws/aws-sdk-go/service/sts/doc.go deleted file mode 100644 index cb1debb..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/sts/doc.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. - -// Package sts provides the client and types for making API -// requests to AWS Security Token Service. -// -// AWS Security Token Service (STS) enables you to request temporary, limited-privilege -// credentials for AWS Identity and Access Management (IAM) users or for users -// that you authenticate (federated users). This guide provides descriptions -// of the STS API. For more information about using this service, see Temporary -// Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html). -// -// See https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15 for more information on this service. -// -// See sts package documentation for more information. -// https://docs.aws.amazon.com/sdk-for-go/api/service/sts/ -// -// Using the Client -// -// To contact AWS Security Token Service with the SDK use the New function to create -// a new service client. With that client you can make API requests to the service. -// These clients are safe to use concurrently. -// -// See the SDK's documentation for more information on how to use the SDK. -// https://docs.aws.amazon.com/sdk-for-go/api/ -// -// See aws.Config documentation for more information on configuring SDK clients. -// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config -// -// See the AWS Security Token Service client STS for more -// information on creating client for this service. -// https://docs.aws.amazon.com/sdk-for-go/api/service/sts/#New -package sts diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/errors.go b/vendor/github.com/aws/aws-sdk-go/service/sts/errors.go deleted file mode 100644 index a233f54..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/sts/errors.go +++ /dev/null @@ -1,82 +0,0 @@ -// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. - -package sts - -const ( - - // ErrCodeExpiredTokenException for service response error code - // "ExpiredTokenException". - // - // The web identity token that was passed is expired or is not valid. Get a - // new identity token from the identity provider and then retry the request. - ErrCodeExpiredTokenException = "ExpiredTokenException" - - // ErrCodeIDPCommunicationErrorException for service response error code - // "IDPCommunicationError". - // - // The request could not be fulfilled because the identity provider (IDP) that - // was asked to verify the incoming identity token could not be reached. This - // is often a transient error caused by network conditions. Retry the request - // a limited number of times so that you don't exceed the request rate. If the - // error persists, the identity provider might be down or not responding. - ErrCodeIDPCommunicationErrorException = "IDPCommunicationError" - - // ErrCodeIDPRejectedClaimException for service response error code - // "IDPRejectedClaim". - // - // The identity provider (IdP) reported that authentication failed. This might - // be because the claim is invalid. - // - // If this error is returned for the AssumeRoleWithWebIdentity operation, it - // can also mean that the claim has expired or has been explicitly revoked. - ErrCodeIDPRejectedClaimException = "IDPRejectedClaim" - - // ErrCodeInvalidAuthorizationMessageException for service response error code - // "InvalidAuthorizationMessageException". - // - // The error returned if the message passed to DecodeAuthorizationMessage was - // invalid. This can happen if the token contains invalid characters, such as - // linebreaks. - ErrCodeInvalidAuthorizationMessageException = "InvalidAuthorizationMessageException" - - // ErrCodeInvalidIdentityTokenException for service response error code - // "InvalidIdentityToken". - // - // The web identity token that was passed could not be validated by AWS. Get - // a new identity token from the identity provider and then retry the request. - ErrCodeInvalidIdentityTokenException = "InvalidIdentityToken" - - // ErrCodeMalformedPolicyDocumentException for service response error code - // "MalformedPolicyDocument". - // - // The request was rejected because the policy document was malformed. The error - // message describes the specific error. - ErrCodeMalformedPolicyDocumentException = "MalformedPolicyDocument" - - // ErrCodePackedPolicyTooLargeException for service response error code - // "PackedPolicyTooLarge". - // - // The request was rejected because the total packed size of the session policies - // and session tags combined was too large. An AWS conversion compresses the - // session policy document, session policy ARNs, and session tags into a packed - // binary format that has a separate limit. The error message indicates by percentage - // how close the policies and tags are to the upper size limit. For more information, - // see Passing Session Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) - // in the IAM User Guide. - // - // You could receive this error even though you meet other defined session policy - // and session tag limits. For more information, see IAM and STS Entity Character - // Limits (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) - // in the IAM User Guide. - ErrCodePackedPolicyTooLargeException = "PackedPolicyTooLarge" - - // ErrCodeRegionDisabledException for service response error code - // "RegionDisabledException". - // - // STS is not activated in the requested region for the account that is being - // asked to generate credentials. The account administrator must use the IAM - // console to activate STS in that region. For more information, see Activating - // and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) - // in the IAM User Guide. - ErrCodeRegionDisabledException = "RegionDisabledException" -) diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/service.go b/vendor/github.com/aws/aws-sdk-go/service/sts/service.go deleted file mode 100644 index d34a685..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/sts/service.go +++ /dev/null @@ -1,98 +0,0 @@ -// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. - -package sts - -import ( - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/client" - "github.com/aws/aws-sdk-go/aws/client/metadata" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/aws/signer/v4" - "github.com/aws/aws-sdk-go/private/protocol/query" -) - -// STS provides the API operation methods for making requests to -// AWS Security Token Service. See this package's package overview docs -// for details on the service. -// -// STS methods are safe to use concurrently. It is not safe to -// modify mutate any of the struct's properties though. -type STS struct { - *client.Client -} - -// Used for custom client initialization logic -var initClient func(*client.Client) - -// Used for custom request initialization logic -var initRequest func(*request.Request) - -// Service information constants -const ( - ServiceName = "sts" // Name of service. - EndpointsID = ServiceName // ID to lookup a service endpoint with. - ServiceID = "STS" // ServiceID is a unique identifier of a specific service. -) - -// New creates a new instance of the STS client with a session. -// If additional configuration is needed for the client instance use the optional -// aws.Config parameter to add your extra config. -// -// Example: -// mySession := session.Must(session.NewSession()) -// -// // Create a STS client from just a session. -// svc := sts.New(mySession) -// -// // Create a STS client with additional configuration -// svc := sts.New(mySession, aws.NewConfig().WithRegion("us-west-2")) -func New(p client.ConfigProvider, cfgs ...*aws.Config) *STS { - c := p.ClientConfig(EndpointsID, cfgs...) - return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName) -} - -// newClient creates, initializes and returns a new service client instance. -func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *STS { - svc := &STS{ - Client: client.New( - cfg, - metadata.ClientInfo{ - ServiceName: ServiceName, - ServiceID: ServiceID, - SigningName: signingName, - SigningRegion: signingRegion, - PartitionID: partitionID, - Endpoint: endpoint, - APIVersion: "2011-06-15", - }, - handlers, - ), - } - - // Handlers - svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) - svc.Handlers.Build.PushBackNamed(query.BuildHandler) - svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler) - svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler) - svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler) - - // Run custom client initialization if present - if initClient != nil { - initClient(svc.Client) - } - - return svc -} - -// newRequest creates a new request for a STS operation and runs any -// custom request initialization. -func (c *STS) newRequest(op *request.Operation, params, data interface{}) *request.Request { - req := c.NewRequest(op, params, data) - - // Run custom request initialization if present - if initRequest != nil { - initRequest(req) - } - - return req -} diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/stsiface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/sts/stsiface/interface.go deleted file mode 100644 index e2e1d6e..0000000 --- a/vendor/github.com/aws/aws-sdk-go/service/sts/stsiface/interface.go +++ /dev/null @@ -1,96 +0,0 @@ -// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. - -// Package stsiface provides an interface to enable mocking the AWS Security Token Service service client -// for testing your code. -// -// It is important to note that this interface will have breaking changes -// when the service model is updated and adds new API operations, paginators, -// and waiters. -package stsiface - -import ( - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/service/sts" -) - -// STSAPI provides an interface to enable mocking the -// sts.STS service client's API operation, -// paginators, and waiters. This make unit testing your code that calls out -// to the SDK's service client's calls easier. -// -// The best way to use this interface is so the SDK's service client's calls -// can be stubbed out for unit testing your code with the SDK without needing -// to inject custom request handlers into the SDK's request pipeline. -// -// // myFunc uses an SDK service client to make a request to -// // AWS Security Token Service. -// func myFunc(svc stsiface.STSAPI) bool { -// // Make svc.AssumeRole request -// } -// -// func main() { -// sess := session.New() -// svc := sts.New(sess) -// -// myFunc(svc) -// } -// -// In your _test.go file: -// -// // Define a mock struct to be used in your unit tests of myFunc. -// type mockSTSClient struct { -// stsiface.STSAPI -// } -// func (m *mockSTSClient) AssumeRole(input *sts.AssumeRoleInput) (*sts.AssumeRoleOutput, error) { -// // mock response/functionality -// } -// -// func TestMyFunc(t *testing.T) { -// // Setup Test -// mockSvc := &mockSTSClient{} -// -// myfunc(mockSvc) -// -// // Verify myFunc's functionality -// } -// -// It is important to note that this interface will have breaking changes -// when the service model is updated and adds new API operations, paginators, -// and waiters. Its suggested to use the pattern above for testing, or using -// tooling to generate mocks to satisfy the interfaces. -type STSAPI interface { - AssumeRole(*sts.AssumeRoleInput) (*sts.AssumeRoleOutput, error) - AssumeRoleWithContext(aws.Context, *sts.AssumeRoleInput, ...request.Option) (*sts.AssumeRoleOutput, error) - AssumeRoleRequest(*sts.AssumeRoleInput) (*request.Request, *sts.AssumeRoleOutput) - - AssumeRoleWithSAML(*sts.AssumeRoleWithSAMLInput) (*sts.AssumeRoleWithSAMLOutput, error) - AssumeRoleWithSAMLWithContext(aws.Context, *sts.AssumeRoleWithSAMLInput, ...request.Option) (*sts.AssumeRoleWithSAMLOutput, error) - AssumeRoleWithSAMLRequest(*sts.AssumeRoleWithSAMLInput) (*request.Request, *sts.AssumeRoleWithSAMLOutput) - - AssumeRoleWithWebIdentity(*sts.AssumeRoleWithWebIdentityInput) (*sts.AssumeRoleWithWebIdentityOutput, error) - AssumeRoleWithWebIdentityWithContext(aws.Context, *sts.AssumeRoleWithWebIdentityInput, ...request.Option) (*sts.AssumeRoleWithWebIdentityOutput, error) - AssumeRoleWithWebIdentityRequest(*sts.AssumeRoleWithWebIdentityInput) (*request.Request, *sts.AssumeRoleWithWebIdentityOutput) - - DecodeAuthorizationMessage(*sts.DecodeAuthorizationMessageInput) (*sts.DecodeAuthorizationMessageOutput, error) - DecodeAuthorizationMessageWithContext(aws.Context, *sts.DecodeAuthorizationMessageInput, ...request.Option) (*sts.DecodeAuthorizationMessageOutput, error) - DecodeAuthorizationMessageRequest(*sts.DecodeAuthorizationMessageInput) (*request.Request, *sts.DecodeAuthorizationMessageOutput) - - GetAccessKeyInfo(*sts.GetAccessKeyInfoInput) (*sts.GetAccessKeyInfoOutput, error) - GetAccessKeyInfoWithContext(aws.Context, *sts.GetAccessKeyInfoInput, ...request.Option) (*sts.GetAccessKeyInfoOutput, error) - GetAccessKeyInfoRequest(*sts.GetAccessKeyInfoInput) (*request.Request, *sts.GetAccessKeyInfoOutput) - - GetCallerIdentity(*sts.GetCallerIdentityInput) (*sts.GetCallerIdentityOutput, error) - GetCallerIdentityWithContext(aws.Context, *sts.GetCallerIdentityInput, ...request.Option) (*sts.GetCallerIdentityOutput, error) - GetCallerIdentityRequest(*sts.GetCallerIdentityInput) (*request.Request, *sts.GetCallerIdentityOutput) - - GetFederationToken(*sts.GetFederationTokenInput) (*sts.GetFederationTokenOutput, error) - GetFederationTokenWithContext(aws.Context, *sts.GetFederationTokenInput, ...request.Option) (*sts.GetFederationTokenOutput, error) - GetFederationTokenRequest(*sts.GetFederationTokenInput) (*request.Request, *sts.GetFederationTokenOutput) - - GetSessionToken(*sts.GetSessionTokenInput) (*sts.GetSessionTokenOutput, error) - GetSessionTokenWithContext(aws.Context, *sts.GetSessionTokenInput, ...request.Option) (*sts.GetSessionTokenOutput, error) - GetSessionTokenRequest(*sts.GetSessionTokenInput) (*request.Request, *sts.GetSessionTokenOutput) -} - -var _ STSAPI = (*sts.STS)(nil) diff --git a/vendor/github.com/dustin/go-humanize/.travis.yml b/vendor/github.com/dustin/go-humanize/.travis.yml deleted file mode 100644 index ba95cdd..0000000 --- a/vendor/github.com/dustin/go-humanize/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -sudo: false -language: go -go: - - 1.3.x - - 1.5.x - - 1.6.x - - 1.7.x - - 1.8.x - - 1.9.x - - master -matrix: - allow_failures: - - go: master - fast_finish: true -install: - - # Do nothing. This is needed to prevent default install action "go get -t -v ./..." from happening here (we want it to happen inside script step). -script: - - go get -t -v ./... - - diff -u <(echo -n) <(gofmt -d -s .) - - go tool vet . - - go test -v -race ./... diff --git a/vendor/github.com/dustin/go-humanize/LICENSE b/vendor/github.com/dustin/go-humanize/LICENSE deleted file mode 100644 index 8d9a94a..0000000 --- a/vendor/github.com/dustin/go-humanize/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2005-2008 Dustin Sallings - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - diff --git a/vendor/github.com/dustin/go-humanize/README.markdown b/vendor/github.com/dustin/go-humanize/README.markdown deleted file mode 100644 index 91b4ae5..0000000 --- a/vendor/github.com/dustin/go-humanize/README.markdown +++ /dev/null @@ -1,124 +0,0 @@ -# Humane Units [![Build Status](https://travis-ci.org/dustin/go-humanize.svg?branch=master)](https://travis-ci.org/dustin/go-humanize) [![GoDoc](https://godoc.org/github.com/dustin/go-humanize?status.svg)](https://godoc.org/github.com/dustin/go-humanize) - -Just a few functions for helping humanize times and sizes. - -`go get` it as `github.com/dustin/go-humanize`, import it as -`"github.com/dustin/go-humanize"`, use it as `humanize`. - -See [godoc](https://godoc.org/github.com/dustin/go-humanize) for -complete documentation. - -## Sizes - -This lets you take numbers like `82854982` and convert them to useful -strings like, `83 MB` or `79 MiB` (whichever you prefer). - -Example: - -```go -fmt.Printf("That file is %s.", humanize.Bytes(82854982)) // That file is 83 MB. -``` - -## Times - -This lets you take a `time.Time` and spit it out in relative terms. -For example, `12 seconds ago` or `3 days from now`. - -Example: - -```go -fmt.Printf("This was touched %s.", humanize.Time(someTimeInstance)) // This was touched 7 hours ago. -``` - -Thanks to Kyle Lemons for the time implementation from an IRC -conversation one day. It's pretty neat. - -## Ordinals - -From a [mailing list discussion][odisc] where a user wanted to be able -to label ordinals. - - 0 -> 0th - 1 -> 1st - 2 -> 2nd - 3 -> 3rd - 4 -> 4th - [...] - -Example: - -```go -fmt.Printf("You're my %s best friend.", humanize.Ordinal(193)) // You are my 193rd best friend. -``` - -## Commas - -Want to shove commas into numbers? Be my guest. - - 0 -> 0 - 100 -> 100 - 1000 -> 1,000 - 1000000000 -> 1,000,000,000 - -100000 -> -100,000 - -Example: - -```go -fmt.Printf("You owe $%s.\n", humanize.Comma(6582491)) // You owe $6,582,491. -``` - -## Ftoa - -Nicer float64 formatter that removes trailing zeros. - -```go -fmt.Printf("%f", 2.24) // 2.240000 -fmt.Printf("%s", humanize.Ftoa(2.24)) // 2.24 -fmt.Printf("%f", 2.0) // 2.000000 -fmt.Printf("%s", humanize.Ftoa(2.0)) // 2 -``` - -## SI notation - -Format numbers with [SI notation][sinotation]. - -Example: - -```go -humanize.SI(0.00000000223, "M") // 2.23 nM -``` - -## English-specific functions - -The following functions are in the `humanize/english` subpackage. - -### Plurals - -Simple English pluralization - -```go -english.PluralWord(1, "object", "") // object -english.PluralWord(42, "object", "") // objects -english.PluralWord(2, "bus", "") // buses -english.PluralWord(99, "locus", "loci") // loci - -english.Plural(1, "object", "") // 1 object -english.Plural(42, "object", "") // 42 objects -english.Plural(2, "bus", "") // 2 buses -english.Plural(99, "locus", "loci") // 99 loci -``` - -### Word series - -Format comma-separated words lists with conjuctions: - -```go -english.WordSeries([]string{"foo"}, "and") // foo -english.WordSeries([]string{"foo", "bar"}, "and") // foo and bar -english.WordSeries([]string{"foo", "bar", "baz"}, "and") // foo, bar and baz - -english.OxfordWordSeries([]string{"foo", "bar", "baz"}, "and") // foo, bar, and baz -``` - -[odisc]: https://groups.google.com/d/topic/golang-nuts/l8NhI74jl-4/discussion -[sinotation]: http://en.wikipedia.org/wiki/Metric_prefix diff --git a/vendor/github.com/dustin/go-humanize/big.go b/vendor/github.com/dustin/go-humanize/big.go deleted file mode 100644 index f49dc33..0000000 --- a/vendor/github.com/dustin/go-humanize/big.go +++ /dev/null @@ -1,31 +0,0 @@ -package humanize - -import ( - "math/big" -) - -// order of magnitude (to a max order) -func oomm(n, b *big.Int, maxmag int) (float64, int) { - mag := 0 - m := &big.Int{} - for n.Cmp(b) >= 0 { - n.DivMod(n, b, m) - mag++ - if mag == maxmag && maxmag >= 0 { - break - } - } - return float64(n.Int64()) + (float64(m.Int64()) / float64(b.Int64())), mag -} - -// total order of magnitude -// (same as above, but with no upper limit) -func oom(n, b *big.Int) (float64, int) { - mag := 0 - m := &big.Int{} - for n.Cmp(b) >= 0 { - n.DivMod(n, b, m) - mag++ - } - return float64(n.Int64()) + (float64(m.Int64()) / float64(b.Int64())), mag -} diff --git a/vendor/github.com/dustin/go-humanize/bigbytes.go b/vendor/github.com/dustin/go-humanize/bigbytes.go deleted file mode 100644 index 1a2bf61..0000000 --- a/vendor/github.com/dustin/go-humanize/bigbytes.go +++ /dev/null @@ -1,173 +0,0 @@ -package humanize - -import ( - "fmt" - "math/big" - "strings" - "unicode" -) - -var ( - bigIECExp = big.NewInt(1024) - - // BigByte is one byte in bit.Ints - BigByte = big.NewInt(1) - // BigKiByte is 1,024 bytes in bit.Ints - BigKiByte = (&big.Int{}).Mul(BigByte, bigIECExp) - // BigMiByte is 1,024 k bytes in bit.Ints - BigMiByte = (&big.Int{}).Mul(BigKiByte, bigIECExp) - // BigGiByte is 1,024 m bytes in bit.Ints - BigGiByte = (&big.Int{}).Mul(BigMiByte, bigIECExp) - // BigTiByte is 1,024 g bytes in bit.Ints - BigTiByte = (&big.Int{}).Mul(BigGiByte, bigIECExp) - // BigPiByte is 1,024 t bytes in bit.Ints - BigPiByte = (&big.Int{}).Mul(BigTiByte, bigIECExp) - // BigEiByte is 1,024 p bytes in bit.Ints - BigEiByte = (&big.Int{}).Mul(BigPiByte, bigIECExp) - // BigZiByte is 1,024 e bytes in bit.Ints - BigZiByte = (&big.Int{}).Mul(BigEiByte, bigIECExp) - // BigYiByte is 1,024 z bytes in bit.Ints - BigYiByte = (&big.Int{}).Mul(BigZiByte, bigIECExp) -) - -var ( - bigSIExp = big.NewInt(1000) - - // BigSIByte is one SI byte in big.Ints - BigSIByte = big.NewInt(1) - // BigKByte is 1,000 SI bytes in big.Ints - BigKByte = (&big.Int{}).Mul(BigSIByte, bigSIExp) - // BigMByte is 1,000 SI k bytes in big.Ints - BigMByte = (&big.Int{}).Mul(BigKByte, bigSIExp) - // BigGByte is 1,000 SI m bytes in big.Ints - BigGByte = (&big.Int{}).Mul(BigMByte, bigSIExp) - // BigTByte is 1,000 SI g bytes in big.Ints - BigTByte = (&big.Int{}).Mul(BigGByte, bigSIExp) - // BigPByte is 1,000 SI t bytes in big.Ints - BigPByte = (&big.Int{}).Mul(BigTByte, bigSIExp) - // BigEByte is 1,000 SI p bytes in big.Ints - BigEByte = (&big.Int{}).Mul(BigPByte, bigSIExp) - // BigZByte is 1,000 SI e bytes in big.Ints - BigZByte = (&big.Int{}).Mul(BigEByte, bigSIExp) - // BigYByte is 1,000 SI z bytes in big.Ints - BigYByte = (&big.Int{}).Mul(BigZByte, bigSIExp) -) - -var bigBytesSizeTable = map[string]*big.Int{ - "b": BigByte, - "kib": BigKiByte, - "kb": BigKByte, - "mib": BigMiByte, - "mb": BigMByte, - "gib": BigGiByte, - "gb": BigGByte, - "tib": BigTiByte, - "tb": BigTByte, - "pib": BigPiByte, - "pb": BigPByte, - "eib": BigEiByte, - "eb": BigEByte, - "zib": BigZiByte, - "zb": BigZByte, - "yib": BigYiByte, - "yb": BigYByte, - // Without suffix - "": BigByte, - "ki": BigKiByte, - "k": BigKByte, - "mi": BigMiByte, - "m": BigMByte, - "gi": BigGiByte, - "g": BigGByte, - "ti": BigTiByte, - "t": BigTByte, - "pi": BigPiByte, - "p": BigPByte, - "ei": BigEiByte, - "e": BigEByte, - "z": BigZByte, - "zi": BigZiByte, - "y": BigYByte, - "yi": BigYiByte, -} - -var ten = big.NewInt(10) - -func humanateBigBytes(s, base *big.Int, sizes []string) string { - if s.Cmp(ten) < 0 { - return fmt.Sprintf("%d B", s) - } - c := (&big.Int{}).Set(s) - val, mag := oomm(c, base, len(sizes)-1) - suffix := sizes[mag] - f := "%.0f %s" - if val < 10 { - f = "%.1f %s" - } - - return fmt.Sprintf(f, val, suffix) - -} - -// BigBytes produces a human readable representation of an SI size. -// -// See also: ParseBigBytes. -// -// BigBytes(82854982) -> 83 MB -func BigBytes(s *big.Int) string { - sizes := []string{"B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"} - return humanateBigBytes(s, bigSIExp, sizes) -} - -// BigIBytes produces a human readable representation of an IEC size. -// -// See also: ParseBigBytes. -// -// BigIBytes(82854982) -> 79 MiB -func BigIBytes(s *big.Int) string { - sizes := []string{"B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"} - return humanateBigBytes(s, bigIECExp, sizes) -} - -// ParseBigBytes parses a string representation of bytes into the number -// of bytes it represents. -// -// See also: BigBytes, BigIBytes. -// -// ParseBigBytes("42 MB") -> 42000000, nil -// ParseBigBytes("42 mib") -> 44040192, nil -func ParseBigBytes(s string) (*big.Int, error) { - lastDigit := 0 - hasComma := false - for _, r := range s { - if !(unicode.IsDigit(r) || r == '.' || r == ',') { - break - } - if r == ',' { - hasComma = true - } - lastDigit++ - } - - num := s[:lastDigit] - if hasComma { - num = strings.Replace(num, ",", "", -1) - } - - val := &big.Rat{} - _, err := fmt.Sscanf(num, "%f", val) - if err != nil { - return nil, err - } - - extra := strings.ToLower(strings.TrimSpace(s[lastDigit:])) - if m, ok := bigBytesSizeTable[extra]; ok { - mv := (&big.Rat{}).SetInt(m) - val.Mul(val, mv) - rv := &big.Int{} - rv.Div(val.Num(), val.Denom()) - return rv, nil - } - - return nil, fmt.Errorf("unhandled size name: %v", extra) -} diff --git a/vendor/github.com/dustin/go-humanize/bytes.go b/vendor/github.com/dustin/go-humanize/bytes.go deleted file mode 100644 index 0b498f4..0000000 --- a/vendor/github.com/dustin/go-humanize/bytes.go +++ /dev/null @@ -1,143 +0,0 @@ -package humanize - -import ( - "fmt" - "math" - "strconv" - "strings" - "unicode" -) - -// IEC Sizes. -// kibis of bits -const ( - Byte = 1 << (iota * 10) - KiByte - MiByte - GiByte - TiByte - PiByte - EiByte -) - -// SI Sizes. -const ( - IByte = 1 - KByte = IByte * 1000 - MByte = KByte * 1000 - GByte = MByte * 1000 - TByte = GByte * 1000 - PByte = TByte * 1000 - EByte = PByte * 1000 -) - -var bytesSizeTable = map[string]uint64{ - "b": Byte, - "kib": KiByte, - "kb": KByte, - "mib": MiByte, - "mb": MByte, - "gib": GiByte, - "gb": GByte, - "tib": TiByte, - "tb": TByte, - "pib": PiByte, - "pb": PByte, - "eib": EiByte, - "eb": EByte, - // Without suffix - "": Byte, - "ki": KiByte, - "k": KByte, - "mi": MiByte, - "m": MByte, - "gi": GiByte, - "g": GByte, - "ti": TiByte, - "t": TByte, - "pi": PiByte, - "p": PByte, - "ei": EiByte, - "e": EByte, -} - -func logn(n, b float64) float64 { - return math.Log(n) / math.Log(b) -} - -func humanateBytes(s uint64, base float64, sizes []string) string { - if s < 10 { - return fmt.Sprintf("%d B", s) - } - e := math.Floor(logn(float64(s), base)) - suffix := sizes[int(e)] - val := math.Floor(float64(s)/math.Pow(base, e)*10+0.5) / 10 - f := "%.0f %s" - if val < 10 { - f = "%.1f %s" - } - - return fmt.Sprintf(f, val, suffix) -} - -// Bytes produces a human readable representation of an SI size. -// -// See also: ParseBytes. -// -// Bytes(82854982) -> 83 MB -func Bytes(s uint64) string { - sizes := []string{"B", "kB", "MB", "GB", "TB", "PB", "EB"} - return humanateBytes(s, 1000, sizes) -} - -// IBytes produces a human readable representation of an IEC size. -// -// See also: ParseBytes. -// -// IBytes(82854982) -> 79 MiB -func IBytes(s uint64) string { - sizes := []string{"B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB"} - return humanateBytes(s, 1024, sizes) -} - -// ParseBytes parses a string representation of bytes into the number -// of bytes it represents. -// -// See Also: Bytes, IBytes. -// -// ParseBytes("42 MB") -> 42000000, nil -// ParseBytes("42 mib") -> 44040192, nil -func ParseBytes(s string) (uint64, error) { - lastDigit := 0 - hasComma := false - for _, r := range s { - if !(unicode.IsDigit(r) || r == '.' || r == ',') { - break - } - if r == ',' { - hasComma = true - } - lastDigit++ - } - - num := s[:lastDigit] - if hasComma { - num = strings.Replace(num, ",", "", -1) - } - - f, err := strconv.ParseFloat(num, 64) - if err != nil { - return 0, err - } - - extra := strings.ToLower(strings.TrimSpace(s[lastDigit:])) - if m, ok := bytesSizeTable[extra]; ok { - f *= float64(m) - if f >= math.MaxUint64 { - return 0, fmt.Errorf("too large: %v", s) - } - return uint64(f), nil - } - - return 0, fmt.Errorf("unhandled size name: %v", extra) -} diff --git a/vendor/github.com/dustin/go-humanize/comma.go b/vendor/github.com/dustin/go-humanize/comma.go deleted file mode 100644 index 520ae3e..0000000 --- a/vendor/github.com/dustin/go-humanize/comma.go +++ /dev/null @@ -1,116 +0,0 @@ -package humanize - -import ( - "bytes" - "math" - "math/big" - "strconv" - "strings" -) - -// Comma produces a string form of the given number in base 10 with -// commas after every three orders of magnitude. -// -// e.g. Comma(834142) -> 834,142 -func Comma(v int64) string { - sign := "" - - // Min int64 can't be negated to a usable value, so it has to be special cased. - if v == math.MinInt64 { - return "-9,223,372,036,854,775,808" - } - - if v < 0 { - sign = "-" - v = 0 - v - } - - parts := []string{"", "", "", "", "", "", ""} - j := len(parts) - 1 - - for v > 999 { - parts[j] = strconv.FormatInt(v%1000, 10) - switch len(parts[j]) { - case 2: - parts[j] = "0" + parts[j] - case 1: - parts[j] = "00" + parts[j] - } - v = v / 1000 - j-- - } - parts[j] = strconv.Itoa(int(v)) - return sign + strings.Join(parts[j:], ",") -} - -// Commaf produces a string form of the given number in base 10 with -// commas after every three orders of magnitude. -// -// e.g. Commaf(834142.32) -> 834,142.32 -func Commaf(v float64) string { - buf := &bytes.Buffer{} - if v < 0 { - buf.Write([]byte{'-'}) - v = 0 - v - } - - comma := []byte{','} - - parts := strings.Split(strconv.FormatFloat(v, 'f', -1, 64), ".") - pos := 0 - if len(parts[0])%3 != 0 { - pos += len(parts[0]) % 3 - buf.WriteString(parts[0][:pos]) - buf.Write(comma) - } - for ; pos < len(parts[0]); pos += 3 { - buf.WriteString(parts[0][pos : pos+3]) - buf.Write(comma) - } - buf.Truncate(buf.Len() - 1) - - if len(parts) > 1 { - buf.Write([]byte{'.'}) - buf.WriteString(parts[1]) - } - return buf.String() -} - -// CommafWithDigits works like the Commaf but limits the resulting -// string to the given number of decimal places. -// -// e.g. CommafWithDigits(834142.32, 1) -> 834,142.3 -func CommafWithDigits(f float64, decimals int) string { - return stripTrailingDigits(Commaf(f), decimals) -} - -// BigComma produces a string form of the given big.Int in base 10 -// with commas after every three orders of magnitude. -func BigComma(b *big.Int) string { - sign := "" - if b.Sign() < 0 { - sign = "-" - b.Abs(b) - } - - athousand := big.NewInt(1000) - c := (&big.Int{}).Set(b) - _, m := oom(c, athousand) - parts := make([]string, m+1) - j := len(parts) - 1 - - mod := &big.Int{} - for b.Cmp(athousand) >= 0 { - b.DivMod(b, athousand, mod) - parts[j] = strconv.FormatInt(mod.Int64(), 10) - switch len(parts[j]) { - case 2: - parts[j] = "0" + parts[j] - case 1: - parts[j] = "00" + parts[j] - } - j-- - } - parts[j] = strconv.Itoa(int(b.Int64())) - return sign + strings.Join(parts[j:], ",") -} diff --git a/vendor/github.com/dustin/go-humanize/commaf.go b/vendor/github.com/dustin/go-humanize/commaf.go deleted file mode 100644 index 620690d..0000000 --- a/vendor/github.com/dustin/go-humanize/commaf.go +++ /dev/null @@ -1,40 +0,0 @@ -// +build go1.6 - -package humanize - -import ( - "bytes" - "math/big" - "strings" -) - -// BigCommaf produces a string form of the given big.Float in base 10 -// with commas after every three orders of magnitude. -func BigCommaf(v *big.Float) string { - buf := &bytes.Buffer{} - if v.Sign() < 0 { - buf.Write([]byte{'-'}) - v.Abs(v) - } - - comma := []byte{','} - - parts := strings.Split(v.Text('f', -1), ".") - pos := 0 - if len(parts[0])%3 != 0 { - pos += len(parts[0]) % 3 - buf.WriteString(parts[0][:pos]) - buf.Write(comma) - } - for ; pos < len(parts[0]); pos += 3 { - buf.WriteString(parts[0][pos : pos+3]) - buf.Write(comma) - } - buf.Truncate(buf.Len() - 1) - - if len(parts) > 1 { - buf.Write([]byte{'.'}) - buf.WriteString(parts[1]) - } - return buf.String() -} diff --git a/vendor/github.com/dustin/go-humanize/ftoa.go b/vendor/github.com/dustin/go-humanize/ftoa.go deleted file mode 100644 index 1c62b64..0000000 --- a/vendor/github.com/dustin/go-humanize/ftoa.go +++ /dev/null @@ -1,46 +0,0 @@ -package humanize - -import ( - "strconv" - "strings" -) - -func stripTrailingZeros(s string) string { - offset := len(s) - 1 - for offset > 0 { - if s[offset] == '.' { - offset-- - break - } - if s[offset] != '0' { - break - } - offset-- - } - return s[:offset+1] -} - -func stripTrailingDigits(s string, digits int) string { - if i := strings.Index(s, "."); i >= 0 { - if digits <= 0 { - return s[:i] - } - i++ - if i+digits >= len(s) { - return s - } - return s[:i+digits] - } - return s -} - -// Ftoa converts a float to a string with no trailing zeros. -func Ftoa(num float64) string { - return stripTrailingZeros(strconv.FormatFloat(num, 'f', 6, 64)) -} - -// FtoaWithDigits converts a float to a string but limits the resulting string -// to the given number of decimal places, and no trailing zeros. -func FtoaWithDigits(num float64, digits int) string { - return stripTrailingZeros(stripTrailingDigits(strconv.FormatFloat(num, 'f', 6, 64), digits)) -} diff --git a/vendor/github.com/dustin/go-humanize/humanize.go b/vendor/github.com/dustin/go-humanize/humanize.go deleted file mode 100644 index a2c2da3..0000000 --- a/vendor/github.com/dustin/go-humanize/humanize.go +++ /dev/null @@ -1,8 +0,0 @@ -/* -Package humanize converts boring ugly numbers to human-friendly strings and back. - -Durations can be turned into strings such as "3 days ago", numbers -representing sizes like 82854982 into useful strings like, "83 MB" or -"79 MiB" (whichever you prefer). -*/ -package humanize diff --git a/vendor/github.com/dustin/go-humanize/number.go b/vendor/github.com/dustin/go-humanize/number.go deleted file mode 100644 index dec6186..0000000 --- a/vendor/github.com/dustin/go-humanize/number.go +++ /dev/null @@ -1,192 +0,0 @@ -package humanize - -/* -Slightly adapted from the source to fit go-humanize. - -Author: https://github.com/gorhill -Source: https://gist.github.com/gorhill/5285193 - -*/ - -import ( - "math" - "strconv" -) - -var ( - renderFloatPrecisionMultipliers = [...]float64{ - 1, - 10, - 100, - 1000, - 10000, - 100000, - 1000000, - 10000000, - 100000000, - 1000000000, - } - - renderFloatPrecisionRounders = [...]float64{ - 0.5, - 0.05, - 0.005, - 0.0005, - 0.00005, - 0.000005, - 0.0000005, - 0.00000005, - 0.000000005, - 0.0000000005, - } -) - -// FormatFloat produces a formatted number as string based on the following user-specified criteria: -// * thousands separator -// * decimal separator -// * decimal precision -// -// Usage: s := RenderFloat(format, n) -// The format parameter tells how to render the number n. -// -// See examples: http://play.golang.org/p/LXc1Ddm1lJ -// -// Examples of format strings, given n = 12345.6789: -// "#,###.##" => "12,345.67" -// "#,###." => "12,345" -// "#,###" => "12345,678" -// "#\u202F###,##" => "12 345,68" -// "#.###,###### => 12.345,678900 -// "" (aka default format) => 12,345.67 -// -// The highest precision allowed is 9 digits after the decimal symbol. -// There is also a version for integer number, FormatInteger(), -// which is convenient for calls within template. -func FormatFloat(format string, n float64) string { - // Special cases: - // NaN = "NaN" - // +Inf = "+Infinity" - // -Inf = "-Infinity" - if math.IsNaN(n) { - return "NaN" - } - if n > math.MaxFloat64 { - return "Infinity" - } - if n < -math.MaxFloat64 { - return "-Infinity" - } - - // default format - precision := 2 - decimalStr := "." - thousandStr := "," - positiveStr := "" - negativeStr := "-" - - if len(format) > 0 { - format := []rune(format) - - // If there is an explicit format directive, - // then default values are these: - precision = 9 - thousandStr = "" - - // collect indices of meaningful formatting directives - formatIndx := []int{} - for i, char := range format { - if char != '#' && char != '0' { - formatIndx = append(formatIndx, i) - } - } - - if len(formatIndx) > 0 { - // Directive at index 0: - // Must be a '+' - // Raise an error if not the case - // index: 0123456789 - // +0.000,000 - // +000,000.0 - // +0000.00 - // +0000 - if formatIndx[0] == 0 { - if format[formatIndx[0]] != '+' { - panic("RenderFloat(): invalid positive sign directive") - } - positiveStr = "+" - formatIndx = formatIndx[1:] - } - - // Two directives: - // First is thousands separator - // Raise an error if not followed by 3-digit - // 0123456789 - // 0.000,000 - // 000,000.00 - if len(formatIndx) == 2 { - if (formatIndx[1] - formatIndx[0]) != 4 { - panic("RenderFloat(): thousands separator directive must be followed by 3 digit-specifiers") - } - thousandStr = string(format[formatIndx[0]]) - formatIndx = formatIndx[1:] - } - - // One directive: - // Directive is decimal separator - // The number of digit-specifier following the separator indicates wanted precision - // 0123456789 - // 0.00 - // 000,0000 - if len(formatIndx) == 1 { - decimalStr = string(format[formatIndx[0]]) - precision = len(format) - formatIndx[0] - 1 - } - } - } - - // generate sign part - var signStr string - if n >= 0.000000001 { - signStr = positiveStr - } else if n <= -0.000000001 { - signStr = negativeStr - n = -n - } else { - signStr = "" - n = 0.0 - } - - // split number into integer and fractional parts - intf, fracf := math.Modf(n + renderFloatPrecisionRounders[precision]) - - // generate integer part string - intStr := strconv.FormatInt(int64(intf), 10) - - // add thousand separator if required - if len(thousandStr) > 0 { - for i := len(intStr); i > 3; { - i -= 3 - intStr = intStr[:i] + thousandStr + intStr[i:] - } - } - - // no fractional part, we can leave now - if precision == 0 { - return signStr + intStr - } - - // generate fractional part - fracStr := strconv.Itoa(int(fracf * renderFloatPrecisionMultipliers[precision])) - // may need padding - if len(fracStr) < precision { - fracStr = "000000000000000"[:precision-len(fracStr)] + fracStr - } - - return signStr + intStr + decimalStr + fracStr -} - -// FormatInteger produces a formatted number as string. -// See FormatFloat. -func FormatInteger(format string, n int) string { - return FormatFloat(format, float64(n)) -} diff --git a/vendor/github.com/dustin/go-humanize/ordinals.go b/vendor/github.com/dustin/go-humanize/ordinals.go deleted file mode 100644 index 43d88a8..0000000 --- a/vendor/github.com/dustin/go-humanize/ordinals.go +++ /dev/null @@ -1,25 +0,0 @@ -package humanize - -import "strconv" - -// Ordinal gives you the input number in a rank/ordinal format. -// -// Ordinal(3) -> 3rd -func Ordinal(x int) string { - suffix := "th" - switch x % 10 { - case 1: - if x%100 != 11 { - suffix = "st" - } - case 2: - if x%100 != 12 { - suffix = "nd" - } - case 3: - if x%100 != 13 { - suffix = "rd" - } - } - return strconv.Itoa(x) + suffix -} diff --git a/vendor/github.com/dustin/go-humanize/si.go b/vendor/github.com/dustin/go-humanize/si.go deleted file mode 100644 index ae659e0..0000000 --- a/vendor/github.com/dustin/go-humanize/si.go +++ /dev/null @@ -1,123 +0,0 @@ -package humanize - -import ( - "errors" - "math" - "regexp" - "strconv" -) - -var siPrefixTable = map[float64]string{ - -24: "y", // yocto - -21: "z", // zepto - -18: "a", // atto - -15: "f", // femto - -12: "p", // pico - -9: "n", // nano - -6: "µ", // micro - -3: "m", // milli - 0: "", - 3: "k", // kilo - 6: "M", // mega - 9: "G", // giga - 12: "T", // tera - 15: "P", // peta - 18: "E", // exa - 21: "Z", // zetta - 24: "Y", // yotta -} - -var revSIPrefixTable = revfmap(siPrefixTable) - -// revfmap reverses the map and precomputes the power multiplier -func revfmap(in map[float64]string) map[string]float64 { - rv := map[string]float64{} - for k, v := range in { - rv[v] = math.Pow(10, k) - } - return rv -} - -var riParseRegex *regexp.Regexp - -func init() { - ri := `^([\-0-9.]+)\s?([` - for _, v := range siPrefixTable { - ri += v - } - ri += `]?)(.*)` - - riParseRegex = regexp.MustCompile(ri) -} - -// ComputeSI finds the most appropriate SI prefix for the given number -// and returns the prefix along with the value adjusted to be within -// that prefix. -// -// See also: SI, ParseSI. -// -// e.g. ComputeSI(2.2345e-12) -> (2.2345, "p") -func ComputeSI(input float64) (float64, string) { - if input == 0 { - return 0, "" - } - mag := math.Abs(input) - exponent := math.Floor(logn(mag, 10)) - exponent = math.Floor(exponent/3) * 3 - - value := mag / math.Pow(10, exponent) - - // Handle special case where value is exactly 1000.0 - // Should return 1 M instead of 1000 k - if value == 1000.0 { - exponent += 3 - value = mag / math.Pow(10, exponent) - } - - value = math.Copysign(value, input) - - prefix := siPrefixTable[exponent] - return value, prefix -} - -// SI returns a string with default formatting. -// -// SI uses Ftoa to format float value, removing trailing zeros. -// -// See also: ComputeSI, ParseSI. -// -// e.g. SI(1000000, "B") -> 1 MB -// e.g. SI(2.2345e-12, "F") -> 2.2345 pF -func SI(input float64, unit string) string { - value, prefix := ComputeSI(input) - return Ftoa(value) + " " + prefix + unit -} - -// SIWithDigits works like SI but limits the resulting string to the -// given number of decimal places. -// -// e.g. SIWithDigits(1000000, 0, "B") -> 1 MB -// e.g. SIWithDigits(2.2345e-12, 2, "F") -> 2.23 pF -func SIWithDigits(input float64, decimals int, unit string) string { - value, prefix := ComputeSI(input) - return FtoaWithDigits(value, decimals) + " " + prefix + unit -} - -var errInvalid = errors.New("invalid input") - -// ParseSI parses an SI string back into the number and unit. -// -// See also: SI, ComputeSI. -// -// e.g. ParseSI("2.2345 pF") -> (2.2345e-12, "F", nil) -func ParseSI(input string) (float64, string, error) { - found := riParseRegex.FindStringSubmatch(input) - if len(found) != 4 { - return 0, "", errInvalid - } - mag := revSIPrefixTable[found[2]] - unit := found[3] - - base, err := strconv.ParseFloat(found[1], 64) - return base * mag, unit, err -} diff --git a/vendor/github.com/dustin/go-humanize/times.go b/vendor/github.com/dustin/go-humanize/times.go deleted file mode 100644 index dd3fbf5..0000000 --- a/vendor/github.com/dustin/go-humanize/times.go +++ /dev/null @@ -1,117 +0,0 @@ -package humanize - -import ( - "fmt" - "math" - "sort" - "time" -) - -// Seconds-based time units -const ( - Day = 24 * time.Hour - Week = 7 * Day - Month = 30 * Day - Year = 12 * Month - LongTime = 37 * Year -) - -// Time formats a time into a relative string. -// -// Time(someT) -> "3 weeks ago" -func Time(then time.Time) string { - return RelTime(then, time.Now(), "ago", "from now") -} - -// A RelTimeMagnitude struct contains a relative time point at which -// the relative format of time will switch to a new format string. A -// slice of these in ascending order by their "D" field is passed to -// CustomRelTime to format durations. -// -// The Format field is a string that may contain a "%s" which will be -// replaced with the appropriate signed label (e.g. "ago" or "from -// now") and a "%d" that will be replaced by the quantity. -// -// The DivBy field is the amount of time the time difference must be -// divided by in order to display correctly. -// -// e.g. if D is 2*time.Minute and you want to display "%d minutes %s" -// DivBy should be time.Minute so whatever the duration is will be -// expressed in minutes. -type RelTimeMagnitude struct { - D time.Duration - Format string - DivBy time.Duration -} - -var defaultMagnitudes = []RelTimeMagnitude{ - {time.Second, "now", time.Second}, - {2 * time.Second, "1 second %s", 1}, - {time.Minute, "%d seconds %s", time.Second}, - {2 * time.Minute, "1 minute %s", 1}, - {time.Hour, "%d minutes %s", time.Minute}, - {2 * time.Hour, "1 hour %s", 1}, - {Day, "%d hours %s", time.Hour}, - {2 * Day, "1 day %s", 1}, - {Week, "%d days %s", Day}, - {2 * Week, "1 week %s", 1}, - {Month, "%d weeks %s", Week}, - {2 * Month, "1 month %s", 1}, - {Year, "%d months %s", Month}, - {18 * Month, "1 year %s", 1}, - {2 * Year, "2 years %s", 1}, - {LongTime, "%d years %s", Year}, - {math.MaxInt64, "a long while %s", 1}, -} - -// RelTime formats a time into a relative string. -// -// It takes two times and two labels. In addition to the generic time -// delta string (e.g. 5 minutes), the labels are used applied so that -// the label corresponding to the smaller time is applied. -// -// RelTime(timeInPast, timeInFuture, "earlier", "later") -> "3 weeks earlier" -func RelTime(a, b time.Time, albl, blbl string) string { - return CustomRelTime(a, b, albl, blbl, defaultMagnitudes) -} - -// CustomRelTime formats a time into a relative string. -// -// It takes two times two labels and a table of relative time formats. -// In addition to the generic time delta string (e.g. 5 minutes), the -// labels are used applied so that the label corresponding to the -// smaller time is applied. -func CustomRelTime(a, b time.Time, albl, blbl string, magnitudes []RelTimeMagnitude) string { - lbl := albl - diff := b.Sub(a) - - if a.After(b) { - lbl = blbl - diff = a.Sub(b) - } - - n := sort.Search(len(magnitudes), func(i int) bool { - return magnitudes[i].D > diff - }) - - if n >= len(magnitudes) { - n = len(magnitudes) - 1 - } - mag := magnitudes[n] - args := []interface{}{} - escaped := false - for _, ch := range mag.Format { - if escaped { - switch ch { - case 's': - args = append(args, lbl) - case 'd': - args = append(args, diff/mag.DivBy) - } - escaped = false - } else { - escaped = ch == '%' - } - } - return fmt.Sprintf(mag.Format, args...) -} diff --git a/vendor/github.com/go-chat-bot/bot/.gitignore b/vendor/github.com/go-chat-bot/bot/.gitignore deleted file mode 100644 index 7e8b8d7..0000000 --- a/vendor/github.com/go-chat-bot/bot/.gitignore +++ /dev/null @@ -1,41 +0,0 @@ -go-bot -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so -pkg/ - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.test - -# Sublime Text - -*.sublime-* - -# vim swap files -*.swp - -# test coverage report files -*.out -*.html - -# go deps storage -src/github.com/* -src/gopkg.in/* - diff --git a/vendor/github.com/go-chat-bot/bot/LICENCE b/vendor/github.com/go-chat-bot/bot/LICENCE deleted file mode 100644 index 2a718a6..0000000 --- a/vendor/github.com/go-chat-bot/bot/LICENCE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Fábio Gomes - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/go-chat-bot/bot/README.md b/vendor/github.com/go-chat-bot/bot/README.md deleted file mode 100644 index 16e3557..0000000 --- a/vendor/github.com/go-chat-bot/bot/README.md +++ /dev/null @@ -1,237 +0,0 @@ -# go-bot - -[![Circle CI](https://circleci.com/gh/go-chat-bot/bot/tree/master.svg?style=svg)](https://circleci.com/gh/go-chat-bot/bot/tree/master) [![GoDoc](https://godoc.org/github.com/go-chat-bot/bot?status.png)](https://godoc.org/github.com/go-chat-bot/bot) [![Coverage Status](https://coveralls.io/repos/github/go-chat-bot/bot/badge.svg?branch=master)](https://coveralls.io/github/go-chat-bot/bot?branch=master) ![Go report](https://goreportcard.com/badge/github.com/go-chat-bot/bot) [![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com) - -IRC, Slack & Telegram bot written in [Go][go] using [go-ircevent][go-ircevent] for IRC connectivity, [nlopes/slack](https://github.com/nlopes/slack) for Slack and [Syfaro/telegram-bot-api](https://github.com/Syfaro/telegram-bot-api) for Telegram. - -![2016-01-17 11 21 38 036](https://cloud.githubusercontent.com/assets/1084729/12377689/5bf7d5f2-bd0d-11e5-87d9-525481f01c3a.gif) - -## Plugins - -Please see the [plugins repository](https://github.com/go-chat-bot/plugins) for a complete list of plugins. - -You can also write your own, it's really simple. - -## Compiling and testing the bot and plugins (Debug) - -This project uses the new [Go 1.11 modules](https://github.com/golang/go/wiki/Modules) if you have Go 1.11 installed, just clone the project and follow the instructions bellow, when you build Go will automatically download all dependencies. - -To test the bot, use the [debug](https://github.com/go-chat-bot/bot/tree/master/debug) console app. - -- Clone this repository or use `go get github.com/go-chat-bot/bot` -- Build everything: `go build ./...` -- Build and execute the debug app: - - `cd debug` - - `go build` - - `./debug` -- This will open a console where you can type commands -- Type `!help` to see the list of available commands - -### Testing your plugin - -- Add your plugin to `debug/main.go` import list -- Build the debug app -- Execute it and test with the interactive console - -## Protocols - -### Slack - -To deploy your go-bot to Slack, you need to: - -* [Create a new bot user](https://my.slack.com/services/new/bot) integration on Slack and get your token -* Import the package `github.com/go-chat-bot/bot/slack` -* Import the commands you would like to use -* Call `slack.Run(token)` - -Here is a full example reading the Slack token from the `SLACK_TOKEN` env var: - -```Go -package main - -import ( - "os" - - "github.com/go-chat-bot/bot/slack" - _ "github.com/go-chat-bot/plugins/catfacts" - _ "github.com/go-chat-bot/plugins/catgif" - _ "github.com/go-chat-bot/plugins/chucknorris" - // Import all the commands you wish to use -) - -func main() { - slack.Run(os.Getenv("SLACK_TOKEN")) -} -``` - -### IRC - -To deploy your own go-bot to IRC, you need to: - -* Import the package `github.com/go-chat-bot/bot/irc` -* Import the commands you would like to use -* Fill the Config struct -* Call `irc.Run(config)` - -Here is a full example: -```Go -package main - -import ( - "github.com/go-chat-bot/bot/irc" - _ "github.com/go-chat-bot/plugins/catfacts" - _ "github.com/go-chat-bot/plugins/catgif" - _ "github.com/go-chat-bot/plugins/chucknorris" - // Import all the commands you wish to use - "os" - "strings" -) - -func main() { - irc.Run(&irc.Config{ - Server: os.Getenv("IRC_SERVER"), - Channels: strings.Split(os.Getenv("IRC_CHANNELS"), ","), - User: os.Getenv("IRC_USER"), - Nick: os.Getenv("IRC_NICK"), - Password: os.Getenv("IRC_PASSWORD"), - UseTLS: true, - Debug: os.Getenv("DEBUG") != "",}) -} -``` - -To join channels with passwords just put the password after the channel name separated by a space: - - Channels: []string{"#mychannel mypassword", "#go-bot"} - -### Telegram - -To deploy your go-bot to Telegram, you need to: - -* Follow Telegram instructions to [create a new bot user](https://core.telegram.org/bots#3-how-do-i-create-a-bot) and get your token -* Import the package `github.com/go-chat-bot/bot/telegram` -* Import the commands you would like to use -* Call `telegram.Run(token, debug)` - -Here is a full example reading the telegram token from the `TELEGRAM_TOKEN` env var: - -```Go -package main - -import ( - "os" - - "github.com/go-chat-bot/bot/telegram" - _ "github.com/go-chat-bot/plugins/catfacts" - _ "github.com/go-chat-bot/plugins/catgif" - _ "github.com/go-chat-bot/plugins/chucknorris" - // Import all the commands you wish to use -) - -func main() { - telegram.Run(os.Getenv("TELEGRAM_TOKEN"), os.Getenv("DEBUG") != "") -} -``` - -### Rocket.chat - -To deploy your go-bot to Rocket.chat, you need to: - -* Import the package `github.com/go-chat-bot/bot/rocket` -* Import the commands you would like to use -* Call `rocket.Run(config)` - -Here is a full example: - -```Go -package main - -import ( - "os" - - "github.com/go-chat-bot/bot/rocket" - _ "github.com/go-chat-bot/plugins/godoc" - _ "github.com/go-chat-bot/plugins/catfacts" - _ "github.com/go-chat-bot/plugins/catgif" - _ "github.com/go-chat-bot/plugins/chucknorris" -) - -func main() { - config := &rocket.Config{ - Server: os.Getenv("ROCKET_SERVER"), - Port: os.Getenv("ROCKET_PORT"), - User: os.Getenv("ROCKET_USER"), - Email: os.Getenv("ROCKET_EMAIL"), - Password: os.Getenv("ROCKET_PASSWORD"), - UseTLS: false, - Debug: os.Getenv("DEBUG") != "", - } - rocket.Run(config) -} -``` - -### Google Chat - -To deploy your go-bot to Google Chat (also known as Hangouts Chat, not plain -Hangouts) you will first need to follow documentation to [setup pub/sub -project](https://developers.google.com/hangouts/chat/how-tos/pub-sub) in Google -Cloud. This will enable your bot to receive messages even when it is behind a -firewall. - -Condensed, the steps you will need to take are as follows: -* Create new project in google cloud console - * ID of the project will be used in Config.PubSubProject -* Create service credentials for this project - * Path to downloaded credentials file should be in env variable GOOGLE_APPLICATION_CREDENTIALS - * Choose "Pub/Sub Editor" role for the credential -* Enable Pub/Sub API in cloud console -* Create new topic in the Pub/Sub (say "google-chat") - * Use the value of "Topic Name" (**not** "Topic ID") for Config.TopicName (e.g. /project//topics/) -* Modify permissions on created topic so that - "chat-api-push@system.gserviceaccount.com" has Pub/Sub Publisher permissions -* Enable hangouts chat api in Cloud Console -* Go to hangouts chat API config in the Cloud Console and fill in info - * Connection settings - use Pub/Sub and fill in topic string you created - above - -Config.SubscriptionName should be unique for each environment or you'll not -process messages correctly. If you encounter issues make sure your credentials -are correct and permissions for topics/queues are set up correctly. - -Config.WelcomeMessage is sent each time the bot joins a new room or private chat. - -Full example is here: -```Go -package main - -import ( - "os" - - "github.com/go-chat-bot/bot/google-chat" - _ "github.com/go-chat-bot/plugins/godoc" - _ "github.com/go-chat-bot/plugins/catfacts" - _ "github.com/go-chat-bot/plugins/catgif" - _ "github.com/go-chat-bot/plugins/chucknorris" -) - -func main() { - googlechat.Run(&googlechat.Config{ - PubSubProject: os.Getenv("HANGOUTS_PROJECT"), - TopicName: os.Getenv("HANGOUTS_TOPIC"), - SubscriptionName: os.Getenv("HANGOUTS_SUB"), - WelcomeMessage: os.Getenv("HANGOUTS_WELCOME"), -} - -``` - -## Deploying your own bot - -To see an example project on how to deploy your bot, please see my own configuration: - -- **IRC**: https://github.com/fabioxgn/go-bot-heroku -- **Slack**: https://github.com/fabioxgn/go-bot-slack - -[go]: http://golang.org -[go-ircevent]: https://github.com/thoj/go-ircevent -[slack]: http://slack.com -[giphy.com]: http://giphy.com -[thecatapi.com]: http://thecatapi.com diff --git a/vendor/github.com/go-chat-bot/bot/bot.go b/vendor/github.com/go-chat-bot/bot/bot.go deleted file mode 100644 index 4266096..0000000 --- a/vendor/github.com/go-chat-bot/bot/bot.go +++ /dev/null @@ -1,275 +0,0 @@ -// Package bot provides a simple to use IRC, Slack and Telegram bot -package bot - -import ( - "errors" - "log" - "math/rand" - "time" - - "github.com/robfig/cron/v3" -) - -const ( - // CmdPrefix is the prefix used to identify a command. - // !hello would be identified as a command - CmdPrefix = "!" - - // MsgBuffer is the max number of messages which can be buffered - // while waiting to flush them to the chat service. - MsgBuffer = 100 -) - -// Bot handles the bot instance -type Bot struct { - handlers *Handlers - cron *cron.Cron - disabledCmds []string - msgsToSend chan responseMessage - done chan struct{} - - // Protocol and Server are used by MesssageStreams to - // determine if this is the correct bot to send a message on - // see: - // https://github.com/go-chat-bot/bot/issues/37#issuecomment-277661159 - // https://github.com/go-chat-bot/bot/issues/97#issuecomment-442827599 - Protocol string - // Server and Protocol are used by MesssageStreams to - // determine if this is the correct bot to send a message on - // see: - // https://github.com/go-chat-bot/bot/issues/37#issuecomment-277661159 - // https://github.com/go-chat-bot/bot/issues/97#issuecomment-442827599 - Server string -} - -// Config configuration for this Bot instance -type Config struct { - // Protocol and Server are used by MesssageStreams to - /// determine if this is the correct bot to send a message on - Protocol string - // Server and Protocol are used by MesssageStreams to - // determine if this is the correct bot to send a message on - Server string -} - -type responseMessage struct { - target, message string - sender *User - protoParams interface{} -} - -// OutgoingMessage collects all the information for a message to go out. -type OutgoingMessage struct { - Target string - Message string - Sender *User - ProtoParams interface{} -} - -// ResponseHandler must be implemented by the protocol to handle the bot responses -type ResponseHandler func(target, message string, sender *User) - -// ResponseHandlerV2 may be implemented by the protocol to handle the bot responses -type ResponseHandlerV2 func(OutgoingMessage) - -// ErrorHandler will be called when an error happens -type ErrorHandler func(msg string, err error) - -// Handlers that must be registered to receive callbacks from the bot -type Handlers struct { - Response ResponseHandler - ResponseV2 ResponseHandlerV2 - Errored ErrorHandler -} - -func logErrorHandler(msg string, err error) { - log.Printf("%s: %s", msg, err.Error()) -} - -// New configures a new bot instance -func New(h *Handlers, bc *Config) *Bot { - if h.Errored == nil { - h.Errored = logErrorHandler - } - - b := &Bot{ - handlers: h, - cron: cron.New(), - msgsToSend: make(chan responseMessage, MsgBuffer), - done: make(chan struct{}), - Protocol: bc.Protocol, - Server: bc.Server, - } - - // Launch the background goroutine that isolates the possibly non-threadsafe - // message sending logic of the underlying transport layer. - go b.processMessages() - - b.startMessageStreams() - - b.startPeriodicCommands() - return b -} - -func (b *Bot) startMessageStreams() { - for _, v := range messageStreamConfigs { - - go func(b *Bot, config *messageStreamConfig) { - msMap.Lock() - ms := &MessageStream{ - Data: make(chan MessageStreamMessage), - Done: make(chan bool), - } - var err = config.msgFunc(ms) - if err != nil { - b.errored("MessageStream "+config.streamName+" failed ", err) - } - msKey := messageStreamKey{ - Protocol: b.Protocol, - Server: b.Server, - StreamName: config.streamName, - } - // thread safe write - msMap.messageStreams[msKey] = ms - msMap.Unlock() - b.handleMessageStream(config.streamName, ms) - }(b, v) - } -} - -func (b *Bot) startPeriodicCommands() { - for _, config := range periodicCommands { - func(b *Bot, config PeriodicConfig) { - b.cron.AddFunc(config.CronSpec, func() { - switch config.Version { - case v1: - for _, channel := range config.Channels { - message, err := config.CmdFunc(channel) - if err != nil { - b.errored("Periodic command failed ", err) - } else if message != "" { - b.SendMessage(OutgoingMessage{ - Target: channel, - Message: message, - }) - } - } - case v2: - results, err := config.CmdFuncV2() - if err != nil { - b.errored("Periodic command failed ", err) - return - } - for _, result := range results { - b.SendMessage(OutgoingMessage{ - Target: result.Channel, - Message: result.Message, - ProtoParams: result.ProtoParams, - }) - } - } - }) - }(b, config) - } - if len(b.cron.Entries()) > 0 { - b.cron.Start() - } -} - -// MessageReceived must be called by the protocol upon receiving a message -func (b *Bot) MessageReceived(channel *ChannelData, message *Message, sender *User) { - command, err := parse(message, channel, sender) - if err != nil { - b.SendMessage(OutgoingMessage{ - Target: channel.Channel, - Message: err.Error(), - Sender: sender, - }) - return - } - - if command == nil { - b.executePassiveCommands(&PassiveCmd{ - Raw: message.Text, - MessageData: message, - Channel: channel.Channel, - ChannelData: channel, - User: sender, - }) - return - } - - if b.isDisabled(command.Command) { - return - } - - switch command.Command { - case helpCommand: - b.help(command) - default: - b.handleCmd(command) - } -} - -// SendMessage queues a message. -func (b *Bot) SendMessage(om OutgoingMessage) { - message := b.executeFilterCommands(&FilterCmd{ - Target: om.Target, - Message: om.Message, - User: om.Sender, - }) - if message == "" { - return - } - - select { - case b.msgsToSend <- responseMessage{ - target: om.Target, - message: message, - sender: om.Sender, - protoParams: om.ProtoParams, - }: - default: - b.errored("Failed to queue message to send.", errors.New("Too busy")) - } -} - -func (b *Bot) sendResponse(resp responseMessage) { - if b.handlers.ResponseV2 != nil { - b.handlers.ResponseV2(OutgoingMessage{ - Message: resp.message, - ProtoParams: resp.protoParams, - Sender: resp.sender, - Target: resp.target, - }) - return - } - b.handlers.Response(resp.target, resp.message, resp.sender) -} - -func (b *Bot) errored(msg string, err error) { - if b.handlers.Errored != nil { - b.handlers.Errored(msg, err) - } -} - -func (b *Bot) processMessages() { - for { - select { - case msg := <-b.msgsToSend: - b.sendResponse(msg) - case <-b.done: - return - } - } -} - -// Close will shut down the message sending capabilities of this bot. Call -// this when you are done using the bot. -func (b *Bot) Close() { - close(b.done) -} - -func init() { - rand.Seed(time.Now().UnixNano()) -} diff --git a/vendor/github.com/go-chat-bot/bot/cmd.go b/vendor/github.com/go-chat-bot/bot/cmd.go deleted file mode 100644 index d8467e8..0000000 --- a/vendor/github.com/go-chat-bot/bot/cmd.go +++ /dev/null @@ -1,485 +0,0 @@ -package bot - -import ( - "errors" - "fmt" - "sync" -) - -var ( - // ErrProtocolServerMismatch server && proto must match - ErrProtocolServerMismatch = errors.New("the specified protocol and server do not correspond to this bot instance") - errNoChannelSpecified = errors.New("no channel was specified for this message") -) - -// Cmd holds the parsed user's input for easier handling of commands -type Cmd struct { - Raw string // Raw is full string passed to the command - Channel string // Channel where the command was called - ChannelData *ChannelData // More info about the channel, including network - User *User // User who sent the message - Message string // Full string without the prefix - MessageData *Message // Message with extra flags - Command string // Command is the first argument passed to the bot - RawArgs string // Raw arguments after the command - Args []string // Arguments as array -} - -// ChannelData holds the improved channel info, which includes protocol and server -type ChannelData struct { - Protocol string // What protocol the message was sent on (irc, slack, telegram) - Server string // The server hostname the message was sent on - Channel string // The channel name the message appeared in - HumanName string // The human readable name of the channel. - IsPrivate bool // Whether the channel is a group or private chat -} - -// URI gives back an URI-fied string containing protocol, server and channel. -func (c *ChannelData) URI() string { - return fmt.Sprintf("%s://%s/%s", c.Protocol, c.Server, c.Channel) -} - -// Message holds the message info - for IRC and Slack networks, this can include whether the message was an action. -type Message struct { - Text string // The actual content of this Message - IsAction bool // True if this was a '/me does something' message - ProtoMsg interface{} // The underlying object that we got from the protocol pkg -} - -// FilterCmd holds information about what is output being filtered - message and -// channel where it is being sent -type FilterCmd struct { - Target string // Channel or user the message is being sent to - Message string // Message text being sent - User *User // User who triggered original message -} - -// PassiveCmd holds the information which will be passed to passive commands when receiving a message -type PassiveCmd struct { - Raw string // Raw message sent to the channel - MessageData *Message // Message with extra - Channel string // Channel which the message was sent to - ChannelData *ChannelData // Channel and network info - User *User // User who sent this message -} - -// PeriodicConfig holds a cron specification for periodically notifying the configured channels -type PeriodicConfig struct { - Version int - CronSpec string // CronSpec that schedules some function - Channels []string // A list of channels to notify, ignored for V2 - CmdFunc func(channel string) (string, error) // func to be executed at the period specified on CronSpec - CmdFuncV2 func() ([]CmdResult, error) // func v2 to be executed at the period specified on CronSpec -} - -// User holds user id, nick and real name -type User struct { - ID string - Nick string - RealName string - IsBot bool -} - -// MessageStream allows event information to be transmitted to an arbitrary channel -// https://github.com/go-chat-bot/bot/issues/97 -type MessageStream struct { - Data chan MessageStreamMessage - // Done is almost never called, usually the bot should just leave the chan open - Done chan bool -} - -// MessageStreamMessage the actual Message passed back to MessageStream in a chan -type MessageStreamMessage struct { - Message string - ChannelData *ChannelData -} - -type customCommand struct { - Version int - Cmd string - CmdFuncV1 activeCmdFuncV1 - CmdFuncV2 activeCmdFuncV2 - CmdFuncV3 activeCmdFuncV3 - PassiveFuncV1 passiveCmdFuncV1 - PassiveFuncV2 passiveCmdFuncV2 - FilterFuncV1 filterCmdFuncV1 - Description string - ExampleArgs string -} - -// CmdResult is the result message of V2 commands -type CmdResult struct { - Channel string // The channel where the bot should send the message - Message string // The message to be sent - ProtoParams interface{} -} - -// CmdResultV3 is the result message of V3 commands -type CmdResultV3 struct { - Channel string - Message chan string - Done chan bool - ProtoParams interface{} -} - -const ( - v1 = iota - v2 - v3 - pv1 - pv2 - fv1 -) - -const ( - commandNotAvailable = "Command %v not available." - noCommandsAvailable = "No commands available." - errorExecutingCommand = "Error executing %s: %s" -) - -type passiveCmdFuncV1 func(cmd *PassiveCmd) (string, error) -type passiveCmdFuncV2 func(cmd *PassiveCmd) (CmdResultV3, error) - -type activeCmdFuncV1 func(cmd *Cmd) (string, error) -type activeCmdFuncV2 func(cmd *Cmd) (CmdResult, error) -type activeCmdFuncV3 func(cmd *Cmd) (CmdResultV3, error) - -type filterCmdFuncV1 func(cmd *FilterCmd) (string, error) - -type messageStreamFunc func(ms *MessageStream) error - -type messageStreamSyncMap struct { - sync.RWMutex - messageStreams map[messageStreamKey]*MessageStream -} -type messageStreamKey struct { - StreamName string - Server string - Protocol string -} - -// messageStreamConfig holds the registered function for the streamname -type messageStreamConfig struct { - version int - streamName string - msgFunc messageStreamFunc -} - -var ( - commands = make(map[string]*customCommand) - passiveCommands = make(map[string]*customCommand) - filterCommands = make(map[string]*customCommand) - periodicCommands = make(map[string]PeriodicConfig) - - messageStreamConfigs []*messageStreamConfig - - msMap = &messageStreamSyncMap{ - messageStreams: make(map[messageStreamKey]*MessageStream), - } -) - -// RegisterCommand adds a new command to the bot. -// The command(s) should be registered in the Init() func of your package -// command: String which the user will use to execute the command, example: reverse -// decription: Description of the command to use in !help, example: Reverses a string -// exampleArgs: Example args to be displayed in !help , example: string to be reversed -// cmdFunc: Function which will be executed. It will received a parsed command as a Cmd value -func RegisterCommand(command, description, exampleArgs string, cmdFunc activeCmdFuncV1) { - commands[command] = &customCommand{ - Version: v1, - Cmd: command, - CmdFuncV1: cmdFunc, - Description: description, - ExampleArgs: exampleArgs, - } -} - -// RegisterCommandV2 adds a new command to the bot. -// It is the same as RegisterCommand but the command can specify the channel to reply to -func RegisterCommandV2(command, description, exampleArgs string, cmdFunc activeCmdFuncV2) { - commands[command] = &customCommand{ - Version: v2, - Cmd: command, - CmdFuncV2: cmdFunc, - Description: description, - ExampleArgs: exampleArgs, - } -} - -// RegisterCommandV3 adds a new command to the bot. -// It is the same as RegisterCommand but the command return a chan -func RegisterCommandV3(command, description, exampleArgs string, cmdFunc activeCmdFuncV3) { - commands[command] = &customCommand{ - Version: v3, - Cmd: command, - CmdFuncV3: cmdFunc, - Description: description, - ExampleArgs: exampleArgs, - } -} - -// RegisterMessageStream adds a new message stream to the bot. -// The command should be registered in the Init() func of your package -// MessageStreams send messages to a channel -// streamName: String used to identify the command, for internal use only (ex: webhook) -// messageStreamFunc: Function which will be executed. It will received a MessageStream with a chan to push -func RegisterMessageStream(streamName string, msgFunc messageStreamFunc) { - messageStreamConfigs = append(messageStreamConfigs, &messageStreamConfig{ - version: v1, - streamName: streamName, - msgFunc: msgFunc, - }) -} - -// RegisterPassiveCommand adds a new passive command to the bot. -// The command should be registered in the Init() func of your package -// Passive commands receives all the text posted to a channel without any parsing -// command: String used to identify the command, for internal use only (ex: logs) -// cmdFunc: Function which will be executed. It will received the raw message, channel and nick -func RegisterPassiveCommand(command string, cmdFunc passiveCmdFuncV1) { - passiveCommands[command] = &customCommand{ - Version: pv1, - Cmd: command, - PassiveFuncV1: cmdFunc, - } -} - -// RegisterPassiveCommandV2 adds a new passive command to the bot. -// The command should be registered in the Init() func of your package -// Passive commands receives all the text posted to a channel without any parsing -// command: String used to identify the command, for internal use only (ex: logs) -// cmdFunc: Function which will be executed. It will received the raw message, channel and nick -func RegisterPassiveCommandV2(command string, cmdFunc passiveCmdFuncV2) { - passiveCommands[command] = &customCommand{ - Version: pv2, - Cmd: command, - PassiveFuncV2: cmdFunc, - } -} - -// RegisterFilterCommand adds a command that is run every time bot is about to -// send a message. The comand should be registered in the Init() func of your -// package. -// Filter commands receive message and its destination and should return -// modified version. Returning empty string prevents message being sent -// completely -// command: String used to identify the command, for internal use only (ex: silence) -// cmdFunc: Function which will be executed. It will receive the message, target -// channel and nick who triggered original message -func RegisterFilterCommand(command string, cmdFunc filterCmdFuncV1) { - filterCommands[command] = &customCommand{ - Version: fv1, - Cmd: command, - FilterFuncV1: cmdFunc, - } -} - -// RegisterPeriodicCommand adds a command that is run periodically. -// The command should be registered in the Init() func of your package -// config: PeriodicConfig which specify CronSpec and a channel list -// cmdFunc: A function with single string argument (channel) which gets triggered periodically -func RegisterPeriodicCommand(command string, config PeriodicConfig) { - config.Version = v1 - periodicCommands[command] = config -} - -// RegisterPeriodicCommandV2 adds a command that is run periodically. -// The command should be registered in the Init() func of your package -// config: PeriodicConfig which specifies CronSpec -// cmdFuncV2: A no-arg function which gets triggered periodically -// It should return slice of CmdResults (channel and message to send to it) -func RegisterPeriodicCommandV2(command string, config PeriodicConfig) { - config.Version = v2 - periodicCommands[command] = config -} - -// Disable allows disabling commands that were registered. -// It is useful when running multiple bot instances to disabled some plugins like url which -// is already present on some protocols. -func (b *Bot) Disable(cmds []string) { - b.disabledCmds = append(b.disabledCmds, cmds...) -} - -func (b *Bot) executePassiveCommands(cmd *PassiveCmd) { - var wg sync.WaitGroup - - for k, v := range passiveCommands { - if b.isDisabled(k) { - continue - } - - wg.Add(1) - - go func(cmdFunc *customCommand) { - defer wg.Done() - - switch cmdFunc.Version { - case pv1: - result, err := cmdFunc.PassiveFuncV1(cmd) - if err != nil { - b.errored(fmt.Sprintf("Error executing %s", cmdFunc.Cmd), err) - } else { - b.SendMessage(OutgoingMessage{ - Target: cmd.Channel, - Message: result, - Sender: cmd.User, - }) - } - case pv2: - result, err := cmdFunc.PassiveFuncV2(cmd) - if err != nil { - b.errored(fmt.Sprintf("Error executing %s", cmdFunc.Cmd), err) - return - } - for { - select { - case message := <-result.Message: - if message != "" { - b.SendMessage(OutgoingMessage{ - Target: result.Channel, - Message: message, - Sender: cmd.User, - ProtoParams: result.ProtoParams, - }) - } - case <-result.Done: - return - } - } - default: - } - }(v) - } - wg.Wait() -} - -func (b *Bot) executeFilterCommands(cmd *FilterCmd) string { - for k, filter := range filterCommands { - switch filter.Version { - case fv1: - filtered, err := filter.FilterFuncV1(cmd) - if err != nil { - b.errored(fmt.Sprintf("Error executing filter %s", k), err) - continue - } - cmd.Message = filtered - } - } - return cmd.Message -} - -func (b *Bot) isDisabled(cmd string) bool { - for _, c := range b.disabledCmds { - if c == cmd { - return true - } - } - return false -} - -func (b *Bot) handleCmd(c *Cmd) { - cmd := commands[c.Command] - - if cmd == nil { - b.errored(fmt.Sprintf("Command not found %v", c.Command), errors.New("Command not found")) - return - } - - switch cmd.Version { - case v1: - message, err := cmd.CmdFuncV1(c) - b.checkCmdError(err, c) - if message != "" { - b.SendMessage(OutgoingMessage{ - Target: c.Channel, - Message: message, - Sender: c.User, - }) - } - case v2: - result, err := cmd.CmdFuncV2(c) - b.checkCmdError(err, c) - if result.Channel == "" { - result.Channel = c.Channel - } - - if result.Message != "" { - b.SendMessage(OutgoingMessage{ - Target: result.Channel, - Message: result.Message, - Sender: c.User, - ProtoParams: result.ProtoParams, - }) - } - case v3: - result, err := cmd.CmdFuncV3(c) - b.checkCmdError(err, c) - if result.Channel == "" { - result.Channel = c.Channel - } - for { - select { - case message := <-result.Message: - if message != "" { - b.SendMessage(OutgoingMessage{ - Target: result.Channel, - Message: message, - Sender: c.User, - ProtoParams: result.ProtoParams, - }) - } - case <-result.Done: - return - } - } - } -} - -func (b *Bot) checkCmdError(err error, c *Cmd) { - if err != nil { - errorMsg := fmt.Sprintf(errorExecutingCommand, c.Command, err.Error()) - b.errored(errorMsg, err) - b.SendMessage(OutgoingMessage{ - Target: c.Channel, - Message: errorMsg, - Sender: c.User, - }) - } -} - -// handleMessageStream -// if there are two bots (telegram, irc) and three messsages(a, b, c) then there will be six entries in messageStreams[key] -// when a message is sent into a chan it has a good chance of arriving at the wrong bot instance -// for every message we check to see if it matched this b.Protocol and b.Server -// if it doesn't we lookup the entry in messageStreams[key] send it to *that* Data chan -func (b *Bot) handleMessageStream(streamName string, ms *MessageStream) { - for { - select { - case d := <-ms.Data: - - if d.ChannelData.Protocol != b.Protocol || d.ChannelData.Server != b.Server { - // then lookup who it *should* be sent to and send it back into *that* chan - key := messageStreamKey{Protocol: d.ChannelData.Protocol, Server: d.ChannelData.Server, StreamName: streamName} - msMap.RLock() - msMap.messageStreams[key].Data <- d - msMap.RUnlock() - continue - } - - // this message is meant for us! - - if d.ChannelData.Channel == "" { - b.errored("handleMessageStream: "+d.Message, errNoChannelSpecified) - continue - } - if d.Message != "" { - b.SendMessage(OutgoingMessage{ - Target: d.ChannelData.Channel, - Message: d.Message, - }) - } - case <-ms.Done: - return - } - } -} diff --git a/vendor/github.com/go-chat-bot/bot/coverage.sh b/vendor/github.com/go-chat-bot/bot/coverage.sh deleted file mode 100644 index 4b04a29..0000000 --- a/vendor/github.com/go-chat-bot/bot/coverage.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -go test -coverprofile cover.out -go tool cover -html=cover.out -o cover.html diff --git a/vendor/github.com/go-chat-bot/bot/go.mod b/vendor/github.com/go-chat-bot/bot/go.mod deleted file mode 100644 index ac1180c..0000000 --- a/vendor/github.com/go-chat-bot/bot/go.mod +++ /dev/null @@ -1,40 +0,0 @@ -module github.com/go-chat-bot/bot - -require ( - cloud.google.com/go v0.38.0 - github.com/Jeffail/gabs v1.4.0 // indirect - github.com/andygrunwald/go-jira v1.5.0 // indirect - github.com/beevik/guid v0.0.0-20170504223318-d0ea8faecee0 // indirect - github.com/cloudfoundry/gosigar v1.1.0 // indirect - github.com/detached/gorocket v0.0.0-20170629192631-d44bbd3f26d2 // indirect - github.com/fatih/structs v1.0.0 // indirect - github.com/go-chat-bot/plugins v0.0.0-20181006134258-491b3f9878d6 - github.com/go-chat-bot/plugins-br v0.0.0-20200917130500-b69d8e0f9584 - github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible // indirect - github.com/google/go-cmp v0.3.1 // indirect - github.com/google/go-querystring v1.0.0 // indirect - github.com/gopackage/ddp v0.0.0-20170117053602-652027933df4 // indirect - github.com/gorilla/websocket v1.4.0 // indirect - github.com/martinusso/go-docs v0.0.0-20161215163720-81905d575a58 // indirect - github.com/mattn/go-shellwords v1.0.6 - github.com/mozillazg/go-unidecode v0.1.1 - github.com/onsi/ginkgo v1.10.1 // indirect - github.com/onsi/gomega v1.7.0 // indirect - github.com/pyinx/gorocket v0.0.0-20170810024322-78ae1353729f - github.com/robfig/cron/v3 v3.0.0 - github.com/slack-go/slack v0.6.4 - github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337 // indirect - github.com/stretchr/testify v1.4.0 // indirect - github.com/technoweenie/multipartstreamer v1.0.1 // indirect - github.com/thoj/go-ircevent v0.0.0-20180816043103-14f3614f28c3 - github.com/trivago/tgo v1.0.5 // indirect - go.opencensus.io v0.22.1 // indirect - golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 - golang.org/x/sys v0.0.0-20190912141932-bc967efca4b8 // indirect - google.golang.org/api v0.10.0 // indirect - google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51 // indirect - google.golang.org/grpc v1.23.1 // indirect - gopkg.in/telegram-bot-api.v3 v3.0.0 -) - -go 1.13 diff --git a/vendor/github.com/go-chat-bot/bot/go.sum b/vendor/github.com/go-chat-bot/bot/go.sum deleted file mode 100644 index 9764270..0000000 --- a/vendor/github.com/go-chat-bot/bot/go.sum +++ /dev/null @@ -1,196 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0 h1:eOI3/cP2VTU6uZLDYAoic+eyzzB9YyGmJ7eIjl8rOPg= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0 h1:ROfEUZz+Gh5pa62DJWXSaonyu3StP6EA6lPEXPI6mCo= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/Jeffail/gabs v1.4.0 h1://5fYRRTq1edjfIrQGvdkcd22pkYUrHZ5YC/H2GJVAo= -github.com/Jeffail/gabs v1.4.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= -github.com/andygrunwald/go-jira v1.5.0 h1:/1CyYLNdwus7TvB/DHyD3udb52K12aYL9m7WaGAO9m4= -github.com/andygrunwald/go-jira v1.5.0/go.mod h1:yNYQrX3nGSrVdcVsM2mWz2pm7tTeDtYfRyVEkc3VUiY= -github.com/beevik/guid v0.0.0-20170504223318-d0ea8faecee0 h1:oLd/YLOTOgA4D4aAUhIE8vhl/LAP1ZJrj0mDQpl7GB8= -github.com/beevik/guid v0.0.0-20170504223318-d0ea8faecee0/go.mod h1:XzXWuOd1wJ63MtICHh5+PnvCuxsB/d58T8TswEhI/9I= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudfoundry/gosigar v1.1.0 h1:V/dVCzhKOdIU3WRB5inQU20s4yIgL9Dxx/Mhi0SF8eM= -github.com/cloudfoundry/gosigar v1.1.0/go.mod h1:3qLfc2GlfmwOx2+ZDaRGH3Y9fwQ0sQeaAleo2GV5pH0= -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/detached/gorocket v0.0.0-20170629192631-d44bbd3f26d2 h1:zwp9mAr+YvsgLCFIVJ3/m61Z+NRX35jbD0HBa62ryHY= -github.com/detached/gorocket v0.0.0-20170629192631-d44bbd3f26d2/go.mod h1:w5eKhlAkZwY6VBm2Sa1Evdte2+Fqhc+dnSk7/KTN5FM= -github.com/fatih/structs v1.0.0 h1:BrX964Rv5uQ3wwS+KRUAJCBBw5PQmgJfJ6v4yly5QwU= -github.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/go-chat-bot/plugins v0.0.0-20181006134258-491b3f9878d6 h1:qNYjVQnDwznjLk+OnNdczA5SXwEa/RwjPTZSQCKofF4= -github.com/go-chat-bot/plugins v0.0.0-20181006134258-491b3f9878d6/go.mod h1:Ga63x4EC4NFYr/KGzhn8D8fLj89sfJA/dpBsuowiHOQ= -github.com/go-chat-bot/plugins v0.0.0-20200616122335-c0aba236acdb h1:k2HBEaNC/+9L6d8iA+ls7EMIS6u2SRwhXlxTgfRIEvk= -github.com/go-chat-bot/plugins-br v0.0.0-20200917130500-b69d8e0f9584 h1:6i1FuHDlNZ6OtsEeE6GKa7e078pbXafYbnvo1PG3WHw= -github.com/go-chat-bot/plugins-br v0.0.0-20200917130500-b69d8e0f9584/go.mod h1:KU0Ieo/D/HBwPY6n3tLWanM5GemW6iWXdbgm96qRW2Q= -github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible h1:2cauKuaELYAEARXRkq2LrJ0yDDv1rW7+wrTEdVL3uaU= -github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible/go.mod h1:qf9acutJ8cwBUhm1bqgz6Bei9/C/c93FPDljKWwsOgM= -github.com/go-test/deep v1.0.4 h1:u2CU3YKy9I2pmu9pX0eq50wCgjfGIt539SqR7FbHiho= -github.com/go-test/deep v1.0.4/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 h1:ZgQEtGgCBiWRM39fZuwSd1LwSqqSW0hOdXCYYDX0R3I= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= -github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gopackage/ddp v0.0.0-20170117053602-652027933df4 h1:4EZlYQIiyecYJlUbVkFXCXHz1QPhVXcHnQKAzBTPfQo= -github.com/gopackage/ddp v0.0.0-20170117053602-652027933df4/go.mod h1:lEO7XoHJ/xNRBCxrn4h/CEB67h0kW1B0t4ooP2yrjUA= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024 h1:rBMNdlhTLzJjJSDIjNEXX1Pz3Hmwmz91v+zycvx9PJc= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/martinusso/go-docs v0.0.0-20161215163720-81905d575a58 h1:VmcrkkMjTdCGOsuuMnn7P2X9dGh3meUNASx6kHIpe7A= -github.com/martinusso/go-docs v0.0.0-20161215163720-81905d575a58/go.mod h1:QymHbiLXXhrSGV5xTWYfEBt9mau3hHwVOT9Y7tpolJU= -github.com/mattn/go-shellwords v1.0.6 h1:9Jok5pILi5S1MnDirGVTufYGtksUs/V2BWUP3ZkeUUI= -github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= -github.com/mozillazg/go-unidecode v0.1.1 h1:uiRy1s4TUqLbcROUrnCN/V85Jlli2AmDF6EeAXOeMHE= -github.com/mozillazg/go-unidecode v0.1.1/go.mod h1:fYMdhyjni9ZeEmS6OE/GJHDLsF8TQvIVDwYR/drR26Q= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.1 h1:q/mM8GF/n0shIN8SaAZ0V+jnLPzen6WIVZdiwrRlMlo= -github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= -github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pyinx/gorocket v0.0.0-20170810024322-78ae1353729f h1:N1r6pSlez3lLsqaNHbtrHW9ZuzrilETIabr9jPNj3Zs= -github.com/pyinx/gorocket v0.0.0-20170810024322-78ae1353729f/go.mod h1:nh/AiOs8vRCaqnSOHVzyta23ZLm5ck/st4brrxtQJEo= -github.com/robfig/cron/v3 v3.0.0 h1:kQ6Cb7aHOHTSzNVNEhmp8EcWKLb4CbiMW9h9VyIhO4E= -github.com/robfig/cron/v3 v3.0.0/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= -github.com/slack-go/slack v0.6.4 h1:cxOqFgM5RW6mdEyDqAJutFk3qiORK9oHRKi5bPqkY9o= -github.com/slack-go/slack v0.6.4/go.mod h1:sGRjv3w+ERAUMMMbldHObQPBcNSyVB7KLKYfnwUFBfw= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337 h1:WN9BUFbdyOsSH/XohnWpXOlq9NBD5sGAB2FciQMUEe8= -github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/technoweenie/multipartstreamer v1.0.1 h1:XRztA5MXiR1TIRHxH2uNxXxaIkKQDeX7m2XsSOlQEnM= -github.com/technoweenie/multipartstreamer v1.0.1/go.mod h1:jNVxdtShOxzAsukZwTSw6MDx5eUJoiEBsSvzDU9uzog= -github.com/thoj/go-ircevent v0.0.0-20180816043103-14f3614f28c3 h1:389FrrKIAlxqQMTscCQ7VH3JAVuxb/pe53v2LBiA7z8= -github.com/thoj/go-ircevent v0.0.0-20180816043103-14f3614f28c3/go.mod h1:QYOctLs5qEsaIrA/PKEc4YqAv2SozbxNEX0vMPs84p4= -github.com/trivago/tgo v1.0.5 h1:ihzy8zFF/LPsd8oxsjYOE8CmyOTNViyFCy0EaFreUIk= -github.com/trivago/tgo v1.0.5/go.mod h1:w4dpD+3tzNIIiIfkWWa85w5/B77tlvdZckQ+6PkFnhc= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.1 h1:8dP3SGL7MPB94crU3bEPplMPe83FI4EouesJUeFHv50= -go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422 h1:QzoH/1pFpZguR8NrRHLcO6jKqfv2zpuSqZLgdm7ZmjI= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e h1:bRhVy7zSSasaqNksaRZiA5EEI+Ei4I1nO5Jh72wfHlg= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190912141932-bc967efca4b8 h1:41hwlulw1prEMBxLQSlMSux1zxJf07B3WPsdjJlKZxE= -golang.org/x/sys v0.0.0-20190912141932-bc967efca4b8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.10.0 h1:7tmAxx3oKE98VMZ+SBZzvYYWRQ9HODBxmC8mXUsraSQ= -google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51 h1:Ex1mq5jaJof+kRnYi3SlYJ8KKa9Ao3NHyIT5XJ1gF6U= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.23.1 h1:q4XQuHFC6I28BKZpo6IYyb3mNO+l7lSOxRuYTCiDfXk= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/telegram-bot-api.v3 v3.0.0 h1:Y6QmqOMwRKv5NUdlvzEBtEZChjsrqdTS6O858cvuCww= -gopkg.in/telegram-bot-api.v3 v3.0.0/go.mod h1:WxP4rAHcQNrXhQLGIK9aVLkpygV4Qq8YS3yjjJ/0VLA= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a h1:LJwr7TCTghdatWv40WobzlKXc9c4s8oGa7QKJUtHhWA= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/vendor/github.com/go-chat-bot/bot/help.go b/vendor/github.com/go-chat-bot/bot/help.go deleted file mode 100644 index 4bf2f10..0000000 --- a/vendor/github.com/go-chat-bot/bot/help.go +++ /dev/null @@ -1,65 +0,0 @@ -package bot - -import ( - "fmt" - "strings" -) - -const ( - helpDescripton = "Description: %s" - helpUsage = "Usage: %s%s %s" - availableCommands = "Available commands: %v" - helpAboutCommand = "Type: '%shelp ' to see details about a specific command." - helpCommand = "help" -) - -func (b *Bot) help(c *Cmd) { - msg := &Message{ - Text: CmdPrefix + c.RawArgs, - } - cmd, _ := parse(msg, c.ChannelData, c.User) - if cmd == nil { - b.showAvailabeCommands(c.Channel, c.User) - return - } - - command := commands[cmd.Command] - if command == nil { - b.showAvailabeCommands(c.Channel, c.User) - return - } - - b.showHelp(cmd, command) -} - -func (b *Bot) showHelp(c *Cmd, help *customCommand) { - if help.Description != "" { - b.SendMessage(OutgoingMessage{ - Target: c.Channel, - Message: fmt.Sprintf(helpDescripton, help.Description), - Sender: c.User, - }) - } - b.SendMessage(OutgoingMessage{ - Target: c.Channel, - Message: fmt.Sprintf(helpUsage, CmdPrefix, c.Command, help.ExampleArgs), - Sender: c.User, - }) -} - -func (b *Bot) showAvailabeCommands(channel string, sender *User) { - var cmds []string - for k := range commands { - cmds = append(cmds, k) - } - b.SendMessage(OutgoingMessage{ - Target: channel, - Message: fmt.Sprintf(helpAboutCommand, CmdPrefix), - Sender: sender, - }) - b.SendMessage(OutgoingMessage{ - Target: channel, - Message: fmt.Sprintf(availableCommands, strings.Join(cmds, ", ")), - Sender: sender, - }) -} diff --git a/vendor/github.com/go-chat-bot/bot/parser.go b/vendor/github.com/go-chat-bot/bot/parser.go deleted file mode 100644 index 6873fd5..0000000 --- a/vendor/github.com/go-chat-bot/bot/parser.go +++ /dev/null @@ -1,64 +0,0 @@ -package bot - -import ( - "errors" - "regexp" - "strings" - "unicode" - - "github.com/mattn/go-shellwords" - unidecode "github.com/mozillazg/go-unidecode" -) - -var ( - re = regexp.MustCompile("\\s+") // Matches one or more spaces -) - -func parse(m *Message, channel *ChannelData, user *User) (*Cmd, error) { - s := strings.TrimSpace(m.Text) - - if !strings.HasPrefix(s, CmdPrefix) { - return nil, nil - } - - c := &Cmd{ - Channel: strings.TrimSpace(channel.Channel), - ChannelData: channel, - Message: strings.TrimSpace(strings.TrimPrefix(s, CmdPrefix)), - Raw: m.Text, - User: user, - } - - // check if we have the command and not only the prefix - if c.Message == "" { - return nil, nil - } - - firstOccurrence := true - firstUnicodeSpace := func(c rune) bool { - isFirstSpace := unicode.IsSpace(c) && firstOccurrence - if isFirstSpace { - firstOccurrence = false - } - return isFirstSpace - } - - // get the command - pieces := strings.FieldsFunc(c.Message, firstUnicodeSpace) - c.Command = strings.ToLower(unidecode.Unidecode(pieces[0])) - - if len(pieces) > 1 { - // get the arguments and remove extra spaces - c.RawArgs = strings.TrimSpace(pieces[1]) - parsedArgs, err := shellwords.Parse(c.RawArgs) - if err != nil { - return nil, errors.New("Error parsing arguments: " + err.Error()) - } - c.Args = parsedArgs - } - - m.Text = c.Message - c.MessageData = m - - return c, nil -} diff --git a/vendor/github.com/go-chat-bot/plugins/cmd/README.md b/vendor/github.com/go-chat-bot/plugins/cmd/README.md deleted file mode 100644 index 7dd253b..0000000 --- a/vendor/github.com/go-chat-bot/plugins/cmd/README.md +++ /dev/null @@ -1,6 +0,0 @@ -### WARNING - -This plugin enables *anyone* to run almost any command on your system as the -user running the bot. Depending on your environment this can be considered a big -security hole. If in doubt - do *NOT* use this plugin. - diff --git a/vendor/github.com/go-chat-bot/plugins/cmd/cmd.go b/vendor/github.com/go-chat-bot/plugins/cmd/cmd.go deleted file mode 100644 index aadea2d..0000000 --- a/vendor/github.com/go-chat-bot/plugins/cmd/cmd.go +++ /dev/null @@ -1,72 +0,0 @@ -package cmd - -import ( - "bytes" - "errors" - "os/exec" - - "github.com/go-chat-bot/bot" -) - -var ( - disableCmds = map[string]bool{"shutdown": true, "reboot": true, "init": true, "rm": true, "top": true, "htop": true, "iotop": true} - errDisableCmd = errors.New("command is disabled") -) - -func cmd(command *bot.Cmd) (string, error) { - if _, ok := disableCmds[command.Args[0]]; ok { - return "", errDisableCmd - } - cmd := exec.Command("/bin/bash", "-c", command.RawArgs) - data, err := cmd.CombinedOutput() - return string(data), err -} - -func cmdV3(command *bot.Cmd) (result bot.CmdResultV3, err error) { - result = bot.CmdResultV3{Message: make(chan string), Done: make(chan bool)} - if _, ok := disableCmds[command.Args[0]]; ok { - err = errDisableCmd - return - } - - cmd := exec.Command("/bin/bash", "-c", command.RawArgs) - var b bytes.Buffer - cmd.Stdout = &b - cmd.Stderr = &b - err = cmd.Start() - if err != nil { - return - } - done := false - go func() { - cmd.Wait() - done = true - result.Done <- true - }() - go func() { - for { - line, _ := b.ReadString('\n') - if line != "" { - result.Message <- line - } - if done { - break - } - - } - }() - return -} - -func init() { - bot.RegisterCommand( - "cmd", - "run cmd on system", - "pwd", - cmd) - bot.RegisterCommandV3( - "cmdv3", - "run cmd on system", - "pwd", - cmdV3) -} diff --git a/vendor/github.com/gorilla/websocket/.gitignore b/vendor/github.com/gorilla/websocket/.gitignore deleted file mode 100644 index cd3fcd1..0000000 --- a/vendor/github.com/gorilla/websocket/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe - -.idea/ -*.iml diff --git a/vendor/github.com/gorilla/websocket/AUTHORS b/vendor/github.com/gorilla/websocket/AUTHORS deleted file mode 100644 index 1931f40..0000000 --- a/vendor/github.com/gorilla/websocket/AUTHORS +++ /dev/null @@ -1,9 +0,0 @@ -# This is the official list of Gorilla WebSocket authors for copyright -# purposes. -# -# Please keep the list sorted. - -Gary Burd -Google LLC (https://opensource.google.com/) -Joachim Bauch - diff --git a/vendor/github.com/gorilla/websocket/LICENSE b/vendor/github.com/gorilla/websocket/LICENSE deleted file mode 100644 index 9171c97..0000000 --- a/vendor/github.com/gorilla/websocket/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2013 The Gorilla WebSocket Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/gorilla/websocket/README.md b/vendor/github.com/gorilla/websocket/README.md deleted file mode 100644 index 19aa2e7..0000000 --- a/vendor/github.com/gorilla/websocket/README.md +++ /dev/null @@ -1,64 +0,0 @@ -# Gorilla WebSocket - -[![GoDoc](https://godoc.org/github.com/gorilla/websocket?status.svg)](https://godoc.org/github.com/gorilla/websocket) -[![CircleCI](https://circleci.com/gh/gorilla/websocket.svg?style=svg)](https://circleci.com/gh/gorilla/websocket) - -Gorilla WebSocket is a [Go](http://golang.org/) implementation of the -[WebSocket](http://www.rfc-editor.org/rfc/rfc6455.txt) protocol. - -### Documentation - -* [API Reference](https://pkg.go.dev/github.com/gorilla/websocket?tab=doc) -* [Chat example](https://github.com/gorilla/websocket/tree/master/examples/chat) -* [Command example](https://github.com/gorilla/websocket/tree/master/examples/command) -* [Client and server example](https://github.com/gorilla/websocket/tree/master/examples/echo) -* [File watch example](https://github.com/gorilla/websocket/tree/master/examples/filewatch) - -### Status - -The Gorilla WebSocket package provides a complete and tested implementation of -the [WebSocket](http://www.rfc-editor.org/rfc/rfc6455.txt) protocol. The -package API is stable. - -### Installation - - go get github.com/gorilla/websocket - -### Protocol Compliance - -The Gorilla WebSocket package passes the server tests in the [Autobahn Test -Suite](https://github.com/crossbario/autobahn-testsuite) using the application in the [examples/autobahn -subdirectory](https://github.com/gorilla/websocket/tree/master/examples/autobahn). - -### Gorilla WebSocket compared with other packages - - - - - - - - - - - - - - - - - - -
github.com/gorillagolang.org/x/net
RFC 6455 Features
Passes Autobahn Test SuiteYesNo
Receive fragmented messageYesNo, see note 1
Send close messageYesNo
Send pings and receive pongsYesNo
Get the type of a received data messageYesYes, see note 2
Other Features
Compression ExtensionsExperimentalNo
Read message using io.ReaderYesNo, see note 3
Write message using io.WriteCloserYesNo, see note 3
- -Notes: - -1. Large messages are fragmented in [Chrome's new WebSocket implementation](http://www.ietf.org/mail-archive/web/hybi/current/msg10503.html). -2. The application can get the type of a received data message by implementing - a [Codec marshal](http://godoc.org/golang.org/x/net/websocket#Codec.Marshal) - function. -3. The go.net io.Reader and io.Writer operate across WebSocket frame boundaries. - Read returns when the input buffer is full or a frame boundary is - encountered. Each call to Write sends a single frame message. The Gorilla - io.Reader and io.WriteCloser operate on a single WebSocket message. - diff --git a/vendor/github.com/gorilla/websocket/client.go b/vendor/github.com/gorilla/websocket/client.go deleted file mode 100644 index 962c06a..0000000 --- a/vendor/github.com/gorilla/websocket/client.go +++ /dev/null @@ -1,395 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "bytes" - "context" - "crypto/tls" - "errors" - "io" - "io/ioutil" - "net" - "net/http" - "net/http/httptrace" - "net/url" - "strings" - "time" -) - -// ErrBadHandshake is returned when the server response to opening handshake is -// invalid. -var ErrBadHandshake = errors.New("websocket: bad handshake") - -var errInvalidCompression = errors.New("websocket: invalid compression negotiation") - -// NewClient creates a new client connection using the given net connection. -// The URL u specifies the host and request URI. Use requestHeader to specify -// the origin (Origin), subprotocols (Sec-WebSocket-Protocol) and cookies -// (Cookie). Use the response.Header to get the selected subprotocol -// (Sec-WebSocket-Protocol) and cookies (Set-Cookie). -// -// If the WebSocket handshake fails, ErrBadHandshake is returned along with a -// non-nil *http.Response so that callers can handle redirects, authentication, -// etc. -// -// Deprecated: Use Dialer instead. -func NewClient(netConn net.Conn, u *url.URL, requestHeader http.Header, readBufSize, writeBufSize int) (c *Conn, response *http.Response, err error) { - d := Dialer{ - ReadBufferSize: readBufSize, - WriteBufferSize: writeBufSize, - NetDial: func(net, addr string) (net.Conn, error) { - return netConn, nil - }, - } - return d.Dial(u.String(), requestHeader) -} - -// A Dialer contains options for connecting to WebSocket server. -type Dialer struct { - // NetDial specifies the dial function for creating TCP connections. If - // NetDial is nil, net.Dial is used. - NetDial func(network, addr string) (net.Conn, error) - - // NetDialContext specifies the dial function for creating TCP connections. If - // NetDialContext is nil, net.DialContext is used. - NetDialContext func(ctx context.Context, network, addr string) (net.Conn, error) - - // Proxy specifies a function to return a proxy for a given - // Request. If the function returns a non-nil error, the - // request is aborted with the provided error. - // If Proxy is nil or returns a nil *URL, no proxy is used. - Proxy func(*http.Request) (*url.URL, error) - - // TLSClientConfig specifies the TLS configuration to use with tls.Client. - // If nil, the default configuration is used. - TLSClientConfig *tls.Config - - // HandshakeTimeout specifies the duration for the handshake to complete. - HandshakeTimeout time.Duration - - // ReadBufferSize and WriteBufferSize specify I/O buffer sizes in bytes. If a buffer - // size is zero, then a useful default size is used. The I/O buffer sizes - // do not limit the size of the messages that can be sent or received. - ReadBufferSize, WriteBufferSize int - - // WriteBufferPool is a pool of buffers for write operations. If the value - // is not set, then write buffers are allocated to the connection for the - // lifetime of the connection. - // - // A pool is most useful when the application has a modest volume of writes - // across a large number of connections. - // - // Applications should use a single pool for each unique value of - // WriteBufferSize. - WriteBufferPool BufferPool - - // Subprotocols specifies the client's requested subprotocols. - Subprotocols []string - - // EnableCompression specifies if the client should attempt to negotiate - // per message compression (RFC 7692). Setting this value to true does not - // guarantee that compression will be supported. Currently only "no context - // takeover" modes are supported. - EnableCompression bool - - // Jar specifies the cookie jar. - // If Jar is nil, cookies are not sent in requests and ignored - // in responses. - Jar http.CookieJar -} - -// Dial creates a new client connection by calling DialContext with a background context. -func (d *Dialer) Dial(urlStr string, requestHeader http.Header) (*Conn, *http.Response, error) { - return d.DialContext(context.Background(), urlStr, requestHeader) -} - -var errMalformedURL = errors.New("malformed ws or wss URL") - -func hostPortNoPort(u *url.URL) (hostPort, hostNoPort string) { - hostPort = u.Host - hostNoPort = u.Host - if i := strings.LastIndex(u.Host, ":"); i > strings.LastIndex(u.Host, "]") { - hostNoPort = hostNoPort[:i] - } else { - switch u.Scheme { - case "wss": - hostPort += ":443" - case "https": - hostPort += ":443" - default: - hostPort += ":80" - } - } - return hostPort, hostNoPort -} - -// DefaultDialer is a dialer with all fields set to the default values. -var DefaultDialer = &Dialer{ - Proxy: http.ProxyFromEnvironment, - HandshakeTimeout: 45 * time.Second, -} - -// nilDialer is dialer to use when receiver is nil. -var nilDialer = *DefaultDialer - -// DialContext creates a new client connection. Use requestHeader to specify the -// origin (Origin), subprotocols (Sec-WebSocket-Protocol) and cookies (Cookie). -// Use the response.Header to get the selected subprotocol -// (Sec-WebSocket-Protocol) and cookies (Set-Cookie). -// -// The context will be used in the request and in the Dialer. -// -// If the WebSocket handshake fails, ErrBadHandshake is returned along with a -// non-nil *http.Response so that callers can handle redirects, authentication, -// etcetera. The response body may not contain the entire response and does not -// need to be closed by the application. -func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader http.Header) (*Conn, *http.Response, error) { - if d == nil { - d = &nilDialer - } - - challengeKey, err := generateChallengeKey() - if err != nil { - return nil, nil, err - } - - u, err := url.Parse(urlStr) - if err != nil { - return nil, nil, err - } - - switch u.Scheme { - case "ws": - u.Scheme = "http" - case "wss": - u.Scheme = "https" - default: - return nil, nil, errMalformedURL - } - - if u.User != nil { - // User name and password are not allowed in websocket URIs. - return nil, nil, errMalformedURL - } - - req := &http.Request{ - Method: "GET", - URL: u, - Proto: "HTTP/1.1", - ProtoMajor: 1, - ProtoMinor: 1, - Header: make(http.Header), - Host: u.Host, - } - req = req.WithContext(ctx) - - // Set the cookies present in the cookie jar of the dialer - if d.Jar != nil { - for _, cookie := range d.Jar.Cookies(u) { - req.AddCookie(cookie) - } - } - - // Set the request headers using the capitalization for names and values in - // RFC examples. Although the capitalization shouldn't matter, there are - // servers that depend on it. The Header.Set method is not used because the - // method canonicalizes the header names. - req.Header["Upgrade"] = []string{"websocket"} - req.Header["Connection"] = []string{"Upgrade"} - req.Header["Sec-WebSocket-Key"] = []string{challengeKey} - req.Header["Sec-WebSocket-Version"] = []string{"13"} - if len(d.Subprotocols) > 0 { - req.Header["Sec-WebSocket-Protocol"] = []string{strings.Join(d.Subprotocols, ", ")} - } - for k, vs := range requestHeader { - switch { - case k == "Host": - if len(vs) > 0 { - req.Host = vs[0] - } - case k == "Upgrade" || - k == "Connection" || - k == "Sec-Websocket-Key" || - k == "Sec-Websocket-Version" || - k == "Sec-Websocket-Extensions" || - (k == "Sec-Websocket-Protocol" && len(d.Subprotocols) > 0): - return nil, nil, errors.New("websocket: duplicate header not allowed: " + k) - case k == "Sec-Websocket-Protocol": - req.Header["Sec-WebSocket-Protocol"] = vs - default: - req.Header[k] = vs - } - } - - if d.EnableCompression { - req.Header["Sec-WebSocket-Extensions"] = []string{"permessage-deflate; server_no_context_takeover; client_no_context_takeover"} - } - - if d.HandshakeTimeout != 0 { - var cancel func() - ctx, cancel = context.WithTimeout(ctx, d.HandshakeTimeout) - defer cancel() - } - - // Get network dial function. - var netDial func(network, add string) (net.Conn, error) - - if d.NetDialContext != nil { - netDial = func(network, addr string) (net.Conn, error) { - return d.NetDialContext(ctx, network, addr) - } - } else if d.NetDial != nil { - netDial = d.NetDial - } else { - netDialer := &net.Dialer{} - netDial = func(network, addr string) (net.Conn, error) { - return netDialer.DialContext(ctx, network, addr) - } - } - - // If needed, wrap the dial function to set the connection deadline. - if deadline, ok := ctx.Deadline(); ok { - forwardDial := netDial - netDial = func(network, addr string) (net.Conn, error) { - c, err := forwardDial(network, addr) - if err != nil { - return nil, err - } - err = c.SetDeadline(deadline) - if err != nil { - c.Close() - return nil, err - } - return c, nil - } - } - - // If needed, wrap the dial function to connect through a proxy. - if d.Proxy != nil { - proxyURL, err := d.Proxy(req) - if err != nil { - return nil, nil, err - } - if proxyURL != nil { - dialer, err := proxy_FromURL(proxyURL, netDialerFunc(netDial)) - if err != nil { - return nil, nil, err - } - netDial = dialer.Dial - } - } - - hostPort, hostNoPort := hostPortNoPort(u) - trace := httptrace.ContextClientTrace(ctx) - if trace != nil && trace.GetConn != nil { - trace.GetConn(hostPort) - } - - netConn, err := netDial("tcp", hostPort) - if trace != nil && trace.GotConn != nil { - trace.GotConn(httptrace.GotConnInfo{ - Conn: netConn, - }) - } - if err != nil { - return nil, nil, err - } - - defer func() { - if netConn != nil { - netConn.Close() - } - }() - - if u.Scheme == "https" { - cfg := cloneTLSConfig(d.TLSClientConfig) - if cfg.ServerName == "" { - cfg.ServerName = hostNoPort - } - tlsConn := tls.Client(netConn, cfg) - netConn = tlsConn - - var err error - if trace != nil { - err = doHandshakeWithTrace(trace, tlsConn, cfg) - } else { - err = doHandshake(tlsConn, cfg) - } - - if err != nil { - return nil, nil, err - } - } - - conn := newConn(netConn, false, d.ReadBufferSize, d.WriteBufferSize, d.WriteBufferPool, nil, nil) - - if err := req.Write(netConn); err != nil { - return nil, nil, err - } - - if trace != nil && trace.GotFirstResponseByte != nil { - if peek, err := conn.br.Peek(1); err == nil && len(peek) == 1 { - trace.GotFirstResponseByte() - } - } - - resp, err := http.ReadResponse(conn.br, req) - if err != nil { - return nil, nil, err - } - - if d.Jar != nil { - if rc := resp.Cookies(); len(rc) > 0 { - d.Jar.SetCookies(u, rc) - } - } - - if resp.StatusCode != 101 || - !strings.EqualFold(resp.Header.Get("Upgrade"), "websocket") || - !strings.EqualFold(resp.Header.Get("Connection"), "upgrade") || - resp.Header.Get("Sec-Websocket-Accept") != computeAcceptKey(challengeKey) { - // Before closing the network connection on return from this - // function, slurp up some of the response to aid application - // debugging. - buf := make([]byte, 1024) - n, _ := io.ReadFull(resp.Body, buf) - resp.Body = ioutil.NopCloser(bytes.NewReader(buf[:n])) - return nil, resp, ErrBadHandshake - } - - for _, ext := range parseExtensions(resp.Header) { - if ext[""] != "permessage-deflate" { - continue - } - _, snct := ext["server_no_context_takeover"] - _, cnct := ext["client_no_context_takeover"] - if !snct || !cnct { - return nil, resp, errInvalidCompression - } - conn.newCompressionWriter = compressNoContextTakeover - conn.newDecompressionReader = decompressNoContextTakeover - break - } - - resp.Body = ioutil.NopCloser(bytes.NewReader([]byte{})) - conn.subprotocol = resp.Header.Get("Sec-Websocket-Protocol") - - netConn.SetDeadline(time.Time{}) - netConn = nil // to avoid close in defer. - return conn, resp, nil -} - -func doHandshake(tlsConn *tls.Conn, cfg *tls.Config) error { - if err := tlsConn.Handshake(); err != nil { - return err - } - if !cfg.InsecureSkipVerify { - if err := tlsConn.VerifyHostname(cfg.ServerName); err != nil { - return err - } - } - return nil -} diff --git a/vendor/github.com/gorilla/websocket/client_clone.go b/vendor/github.com/gorilla/websocket/client_clone.go deleted file mode 100644 index 4f0d943..0000000 --- a/vendor/github.com/gorilla/websocket/client_clone.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build go1.8 - -package websocket - -import "crypto/tls" - -func cloneTLSConfig(cfg *tls.Config) *tls.Config { - if cfg == nil { - return &tls.Config{} - } - return cfg.Clone() -} diff --git a/vendor/github.com/gorilla/websocket/client_clone_legacy.go b/vendor/github.com/gorilla/websocket/client_clone_legacy.go deleted file mode 100644 index babb007..0000000 --- a/vendor/github.com/gorilla/websocket/client_clone_legacy.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !go1.8 - -package websocket - -import "crypto/tls" - -// cloneTLSConfig clones all public fields except the fields -// SessionTicketsDisabled and SessionTicketKey. This avoids copying the -// sync.Mutex in the sync.Once and makes it safe to call cloneTLSConfig on a -// config in active use. -func cloneTLSConfig(cfg *tls.Config) *tls.Config { - if cfg == nil { - return &tls.Config{} - } - return &tls.Config{ - Rand: cfg.Rand, - Time: cfg.Time, - Certificates: cfg.Certificates, - NameToCertificate: cfg.NameToCertificate, - GetCertificate: cfg.GetCertificate, - RootCAs: cfg.RootCAs, - NextProtos: cfg.NextProtos, - ServerName: cfg.ServerName, - ClientAuth: cfg.ClientAuth, - ClientCAs: cfg.ClientCAs, - InsecureSkipVerify: cfg.InsecureSkipVerify, - CipherSuites: cfg.CipherSuites, - PreferServerCipherSuites: cfg.PreferServerCipherSuites, - ClientSessionCache: cfg.ClientSessionCache, - MinVersion: cfg.MinVersion, - MaxVersion: cfg.MaxVersion, - CurvePreferences: cfg.CurvePreferences, - } -} diff --git a/vendor/github.com/gorilla/websocket/compression.go b/vendor/github.com/gorilla/websocket/compression.go deleted file mode 100644 index 813ffb1..0000000 --- a/vendor/github.com/gorilla/websocket/compression.go +++ /dev/null @@ -1,148 +0,0 @@ -// Copyright 2017 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "compress/flate" - "errors" - "io" - "strings" - "sync" -) - -const ( - minCompressionLevel = -2 // flate.HuffmanOnly not defined in Go < 1.6 - maxCompressionLevel = flate.BestCompression - defaultCompressionLevel = 1 -) - -var ( - flateWriterPools [maxCompressionLevel - minCompressionLevel + 1]sync.Pool - flateReaderPool = sync.Pool{New: func() interface{} { - return flate.NewReader(nil) - }} -) - -func decompressNoContextTakeover(r io.Reader) io.ReadCloser { - const tail = - // Add four bytes as specified in RFC - "\x00\x00\xff\xff" + - // Add final block to squelch unexpected EOF error from flate reader. - "\x01\x00\x00\xff\xff" - - fr, _ := flateReaderPool.Get().(io.ReadCloser) - fr.(flate.Resetter).Reset(io.MultiReader(r, strings.NewReader(tail)), nil) - return &flateReadWrapper{fr} -} - -func isValidCompressionLevel(level int) bool { - return minCompressionLevel <= level && level <= maxCompressionLevel -} - -func compressNoContextTakeover(w io.WriteCloser, level int) io.WriteCloser { - p := &flateWriterPools[level-minCompressionLevel] - tw := &truncWriter{w: w} - fw, _ := p.Get().(*flate.Writer) - if fw == nil { - fw, _ = flate.NewWriter(tw, level) - } else { - fw.Reset(tw) - } - return &flateWriteWrapper{fw: fw, tw: tw, p: p} -} - -// truncWriter is an io.Writer that writes all but the last four bytes of the -// stream to another io.Writer. -type truncWriter struct { - w io.WriteCloser - n int - p [4]byte -} - -func (w *truncWriter) Write(p []byte) (int, error) { - n := 0 - - // fill buffer first for simplicity. - if w.n < len(w.p) { - n = copy(w.p[w.n:], p) - p = p[n:] - w.n += n - if len(p) == 0 { - return n, nil - } - } - - m := len(p) - if m > len(w.p) { - m = len(w.p) - } - - if nn, err := w.w.Write(w.p[:m]); err != nil { - return n + nn, err - } - - copy(w.p[:], w.p[m:]) - copy(w.p[len(w.p)-m:], p[len(p)-m:]) - nn, err := w.w.Write(p[:len(p)-m]) - return n + nn, err -} - -type flateWriteWrapper struct { - fw *flate.Writer - tw *truncWriter - p *sync.Pool -} - -func (w *flateWriteWrapper) Write(p []byte) (int, error) { - if w.fw == nil { - return 0, errWriteClosed - } - return w.fw.Write(p) -} - -func (w *flateWriteWrapper) Close() error { - if w.fw == nil { - return errWriteClosed - } - err1 := w.fw.Flush() - w.p.Put(w.fw) - w.fw = nil - if w.tw.p != [4]byte{0, 0, 0xff, 0xff} { - return errors.New("websocket: internal error, unexpected bytes at end of flate stream") - } - err2 := w.tw.w.Close() - if err1 != nil { - return err1 - } - return err2 -} - -type flateReadWrapper struct { - fr io.ReadCloser -} - -func (r *flateReadWrapper) Read(p []byte) (int, error) { - if r.fr == nil { - return 0, io.ErrClosedPipe - } - n, err := r.fr.Read(p) - if err == io.EOF { - // Preemptively place the reader back in the pool. This helps with - // scenarios where the application does not call NextReader() soon after - // this final read. - r.Close() - } - return n, err -} - -func (r *flateReadWrapper) Close() error { - if r.fr == nil { - return io.ErrClosedPipe - } - err := r.fr.Close() - flateReaderPool.Put(r.fr) - r.fr = nil - return err -} diff --git a/vendor/github.com/gorilla/websocket/conn.go b/vendor/github.com/gorilla/websocket/conn.go deleted file mode 100644 index ca46d2f..0000000 --- a/vendor/github.com/gorilla/websocket/conn.go +++ /dev/null @@ -1,1201 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "bufio" - "encoding/binary" - "errors" - "io" - "io/ioutil" - "math/rand" - "net" - "strconv" - "sync" - "time" - "unicode/utf8" -) - -const ( - // Frame header byte 0 bits from Section 5.2 of RFC 6455 - finalBit = 1 << 7 - rsv1Bit = 1 << 6 - rsv2Bit = 1 << 5 - rsv3Bit = 1 << 4 - - // Frame header byte 1 bits from Section 5.2 of RFC 6455 - maskBit = 1 << 7 - - maxFrameHeaderSize = 2 + 8 + 4 // Fixed header + length + mask - maxControlFramePayloadSize = 125 - - writeWait = time.Second - - defaultReadBufferSize = 4096 - defaultWriteBufferSize = 4096 - - continuationFrame = 0 - noFrame = -1 -) - -// Close codes defined in RFC 6455, section 11.7. -const ( - CloseNormalClosure = 1000 - CloseGoingAway = 1001 - CloseProtocolError = 1002 - CloseUnsupportedData = 1003 - CloseNoStatusReceived = 1005 - CloseAbnormalClosure = 1006 - CloseInvalidFramePayloadData = 1007 - ClosePolicyViolation = 1008 - CloseMessageTooBig = 1009 - CloseMandatoryExtension = 1010 - CloseInternalServerErr = 1011 - CloseServiceRestart = 1012 - CloseTryAgainLater = 1013 - CloseTLSHandshake = 1015 -) - -// The message types are defined in RFC 6455, section 11.8. -const ( - // TextMessage denotes a text data message. The text message payload is - // interpreted as UTF-8 encoded text data. - TextMessage = 1 - - // BinaryMessage denotes a binary data message. - BinaryMessage = 2 - - // CloseMessage denotes a close control message. The optional message - // payload contains a numeric code and text. Use the FormatCloseMessage - // function to format a close message payload. - CloseMessage = 8 - - // PingMessage denotes a ping control message. The optional message payload - // is UTF-8 encoded text. - PingMessage = 9 - - // PongMessage denotes a pong control message. The optional message payload - // is UTF-8 encoded text. - PongMessage = 10 -) - -// ErrCloseSent is returned when the application writes a message to the -// connection after sending a close message. -var ErrCloseSent = errors.New("websocket: close sent") - -// ErrReadLimit is returned when reading a message that is larger than the -// read limit set for the connection. -var ErrReadLimit = errors.New("websocket: read limit exceeded") - -// netError satisfies the net Error interface. -type netError struct { - msg string - temporary bool - timeout bool -} - -func (e *netError) Error() string { return e.msg } -func (e *netError) Temporary() bool { return e.temporary } -func (e *netError) Timeout() bool { return e.timeout } - -// CloseError represents a close message. -type CloseError struct { - // Code is defined in RFC 6455, section 11.7. - Code int - - // Text is the optional text payload. - Text string -} - -func (e *CloseError) Error() string { - s := []byte("websocket: close ") - s = strconv.AppendInt(s, int64(e.Code), 10) - switch e.Code { - case CloseNormalClosure: - s = append(s, " (normal)"...) - case CloseGoingAway: - s = append(s, " (going away)"...) - case CloseProtocolError: - s = append(s, " (protocol error)"...) - case CloseUnsupportedData: - s = append(s, " (unsupported data)"...) - case CloseNoStatusReceived: - s = append(s, " (no status)"...) - case CloseAbnormalClosure: - s = append(s, " (abnormal closure)"...) - case CloseInvalidFramePayloadData: - s = append(s, " (invalid payload data)"...) - case ClosePolicyViolation: - s = append(s, " (policy violation)"...) - case CloseMessageTooBig: - s = append(s, " (message too big)"...) - case CloseMandatoryExtension: - s = append(s, " (mandatory extension missing)"...) - case CloseInternalServerErr: - s = append(s, " (internal server error)"...) - case CloseTLSHandshake: - s = append(s, " (TLS handshake error)"...) - } - if e.Text != "" { - s = append(s, ": "...) - s = append(s, e.Text...) - } - return string(s) -} - -// IsCloseError returns boolean indicating whether the error is a *CloseError -// with one of the specified codes. -func IsCloseError(err error, codes ...int) bool { - if e, ok := err.(*CloseError); ok { - for _, code := range codes { - if e.Code == code { - return true - } - } - } - return false -} - -// IsUnexpectedCloseError returns boolean indicating whether the error is a -// *CloseError with a code not in the list of expected codes. -func IsUnexpectedCloseError(err error, expectedCodes ...int) bool { - if e, ok := err.(*CloseError); ok { - for _, code := range expectedCodes { - if e.Code == code { - return false - } - } - return true - } - return false -} - -var ( - errWriteTimeout = &netError{msg: "websocket: write timeout", timeout: true, temporary: true} - errUnexpectedEOF = &CloseError{Code: CloseAbnormalClosure, Text: io.ErrUnexpectedEOF.Error()} - errBadWriteOpCode = errors.New("websocket: bad write message type") - errWriteClosed = errors.New("websocket: write closed") - errInvalidControlFrame = errors.New("websocket: invalid control frame") -) - -func newMaskKey() [4]byte { - n := rand.Uint32() - return [4]byte{byte(n), byte(n >> 8), byte(n >> 16), byte(n >> 24)} -} - -func hideTempErr(err error) error { - if e, ok := err.(net.Error); ok && e.Temporary() { - err = &netError{msg: e.Error(), timeout: e.Timeout()} - } - return err -} - -func isControl(frameType int) bool { - return frameType == CloseMessage || frameType == PingMessage || frameType == PongMessage -} - -func isData(frameType int) bool { - return frameType == TextMessage || frameType == BinaryMessage -} - -var validReceivedCloseCodes = map[int]bool{ - // see http://www.iana.org/assignments/websocket/websocket.xhtml#close-code-number - - CloseNormalClosure: true, - CloseGoingAway: true, - CloseProtocolError: true, - CloseUnsupportedData: true, - CloseNoStatusReceived: false, - CloseAbnormalClosure: false, - CloseInvalidFramePayloadData: true, - ClosePolicyViolation: true, - CloseMessageTooBig: true, - CloseMandatoryExtension: true, - CloseInternalServerErr: true, - CloseServiceRestart: true, - CloseTryAgainLater: true, - CloseTLSHandshake: false, -} - -func isValidReceivedCloseCode(code int) bool { - return validReceivedCloseCodes[code] || (code >= 3000 && code <= 4999) -} - -// BufferPool represents a pool of buffers. The *sync.Pool type satisfies this -// interface. The type of the value stored in a pool is not specified. -type BufferPool interface { - // Get gets a value from the pool or returns nil if the pool is empty. - Get() interface{} - // Put adds a value to the pool. - Put(interface{}) -} - -// writePoolData is the type added to the write buffer pool. This wrapper is -// used to prevent applications from peeking at and depending on the values -// added to the pool. -type writePoolData struct{ buf []byte } - -// The Conn type represents a WebSocket connection. -type Conn struct { - conn net.Conn - isServer bool - subprotocol string - - // Write fields - mu chan struct{} // used as mutex to protect write to conn - writeBuf []byte // frame is constructed in this buffer. - writePool BufferPool - writeBufSize int - writeDeadline time.Time - writer io.WriteCloser // the current writer returned to the application - isWriting bool // for best-effort concurrent write detection - - writeErrMu sync.Mutex - writeErr error - - enableWriteCompression bool - compressionLevel int - newCompressionWriter func(io.WriteCloser, int) io.WriteCloser - - // Read fields - reader io.ReadCloser // the current reader returned to the application - readErr error - br *bufio.Reader - // bytes remaining in current frame. - // set setReadRemaining to safely update this value and prevent overflow - readRemaining int64 - readFinal bool // true the current message has more frames. - readLength int64 // Message size. - readLimit int64 // Maximum message size. - readMaskPos int - readMaskKey [4]byte - handlePong func(string) error - handlePing func(string) error - handleClose func(int, string) error - readErrCount int - messageReader *messageReader // the current low-level reader - - readDecompress bool // whether last read frame had RSV1 set - newDecompressionReader func(io.Reader) io.ReadCloser -} - -func newConn(conn net.Conn, isServer bool, readBufferSize, writeBufferSize int, writeBufferPool BufferPool, br *bufio.Reader, writeBuf []byte) *Conn { - - if br == nil { - if readBufferSize == 0 { - readBufferSize = defaultReadBufferSize - } else if readBufferSize < maxControlFramePayloadSize { - // must be large enough for control frame - readBufferSize = maxControlFramePayloadSize - } - br = bufio.NewReaderSize(conn, readBufferSize) - } - - if writeBufferSize <= 0 { - writeBufferSize = defaultWriteBufferSize - } - writeBufferSize += maxFrameHeaderSize - - if writeBuf == nil && writeBufferPool == nil { - writeBuf = make([]byte, writeBufferSize) - } - - mu := make(chan struct{}, 1) - mu <- struct{}{} - c := &Conn{ - isServer: isServer, - br: br, - conn: conn, - mu: mu, - readFinal: true, - writeBuf: writeBuf, - writePool: writeBufferPool, - writeBufSize: writeBufferSize, - enableWriteCompression: true, - compressionLevel: defaultCompressionLevel, - } - c.SetCloseHandler(nil) - c.SetPingHandler(nil) - c.SetPongHandler(nil) - return c -} - -// setReadRemaining tracks the number of bytes remaining on the connection. If n -// overflows, an ErrReadLimit is returned. -func (c *Conn) setReadRemaining(n int64) error { - if n < 0 { - return ErrReadLimit - } - - c.readRemaining = n - return nil -} - -// Subprotocol returns the negotiated protocol for the connection. -func (c *Conn) Subprotocol() string { - return c.subprotocol -} - -// Close closes the underlying network connection without sending or waiting -// for a close message. -func (c *Conn) Close() error { - return c.conn.Close() -} - -// LocalAddr returns the local network address. -func (c *Conn) LocalAddr() net.Addr { - return c.conn.LocalAddr() -} - -// RemoteAddr returns the remote network address. -func (c *Conn) RemoteAddr() net.Addr { - return c.conn.RemoteAddr() -} - -// Write methods - -func (c *Conn) writeFatal(err error) error { - err = hideTempErr(err) - c.writeErrMu.Lock() - if c.writeErr == nil { - c.writeErr = err - } - c.writeErrMu.Unlock() - return err -} - -func (c *Conn) read(n int) ([]byte, error) { - p, err := c.br.Peek(n) - if err == io.EOF { - err = errUnexpectedEOF - } - c.br.Discard(len(p)) - return p, err -} - -func (c *Conn) write(frameType int, deadline time.Time, buf0, buf1 []byte) error { - <-c.mu - defer func() { c.mu <- struct{}{} }() - - c.writeErrMu.Lock() - err := c.writeErr - c.writeErrMu.Unlock() - if err != nil { - return err - } - - c.conn.SetWriteDeadline(deadline) - if len(buf1) == 0 { - _, err = c.conn.Write(buf0) - } else { - err = c.writeBufs(buf0, buf1) - } - if err != nil { - return c.writeFatal(err) - } - if frameType == CloseMessage { - c.writeFatal(ErrCloseSent) - } - return nil -} - -// WriteControl writes a control message with the given deadline. The allowed -// message types are CloseMessage, PingMessage and PongMessage. -func (c *Conn) WriteControl(messageType int, data []byte, deadline time.Time) error { - if !isControl(messageType) { - return errBadWriteOpCode - } - if len(data) > maxControlFramePayloadSize { - return errInvalidControlFrame - } - - b0 := byte(messageType) | finalBit - b1 := byte(len(data)) - if !c.isServer { - b1 |= maskBit - } - - buf := make([]byte, 0, maxFrameHeaderSize+maxControlFramePayloadSize) - buf = append(buf, b0, b1) - - if c.isServer { - buf = append(buf, data...) - } else { - key := newMaskKey() - buf = append(buf, key[:]...) - buf = append(buf, data...) - maskBytes(key, 0, buf[6:]) - } - - d := 1000 * time.Hour - if !deadline.IsZero() { - d = deadline.Sub(time.Now()) - if d < 0 { - return errWriteTimeout - } - } - - timer := time.NewTimer(d) - select { - case <-c.mu: - timer.Stop() - case <-timer.C: - return errWriteTimeout - } - defer func() { c.mu <- struct{}{} }() - - c.writeErrMu.Lock() - err := c.writeErr - c.writeErrMu.Unlock() - if err != nil { - return err - } - - c.conn.SetWriteDeadline(deadline) - _, err = c.conn.Write(buf) - if err != nil { - return c.writeFatal(err) - } - if messageType == CloseMessage { - c.writeFatal(ErrCloseSent) - } - return err -} - -// beginMessage prepares a connection and message writer for a new message. -func (c *Conn) beginMessage(mw *messageWriter, messageType int) error { - // Close previous writer if not already closed by the application. It's - // probably better to return an error in this situation, but we cannot - // change this without breaking existing applications. - if c.writer != nil { - c.writer.Close() - c.writer = nil - } - - if !isControl(messageType) && !isData(messageType) { - return errBadWriteOpCode - } - - c.writeErrMu.Lock() - err := c.writeErr - c.writeErrMu.Unlock() - if err != nil { - return err - } - - mw.c = c - mw.frameType = messageType - mw.pos = maxFrameHeaderSize - - if c.writeBuf == nil { - wpd, ok := c.writePool.Get().(writePoolData) - if ok { - c.writeBuf = wpd.buf - } else { - c.writeBuf = make([]byte, c.writeBufSize) - } - } - return nil -} - -// NextWriter returns a writer for the next message to send. The writer's Close -// method flushes the complete message to the network. -// -// There can be at most one open writer on a connection. NextWriter closes the -// previous writer if the application has not already done so. -// -// All message types (TextMessage, BinaryMessage, CloseMessage, PingMessage and -// PongMessage) are supported. -func (c *Conn) NextWriter(messageType int) (io.WriteCloser, error) { - var mw messageWriter - if err := c.beginMessage(&mw, messageType); err != nil { - return nil, err - } - c.writer = &mw - if c.newCompressionWriter != nil && c.enableWriteCompression && isData(messageType) { - w := c.newCompressionWriter(c.writer, c.compressionLevel) - mw.compress = true - c.writer = w - } - return c.writer, nil -} - -type messageWriter struct { - c *Conn - compress bool // whether next call to flushFrame should set RSV1 - pos int // end of data in writeBuf. - frameType int // type of the current frame. - err error -} - -func (w *messageWriter) endMessage(err error) error { - if w.err != nil { - return err - } - c := w.c - w.err = err - c.writer = nil - if c.writePool != nil { - c.writePool.Put(writePoolData{buf: c.writeBuf}) - c.writeBuf = nil - } - return err -} - -// flushFrame writes buffered data and extra as a frame to the network. The -// final argument indicates that this is the last frame in the message. -func (w *messageWriter) flushFrame(final bool, extra []byte) error { - c := w.c - length := w.pos - maxFrameHeaderSize + len(extra) - - // Check for invalid control frames. - if isControl(w.frameType) && - (!final || length > maxControlFramePayloadSize) { - return w.endMessage(errInvalidControlFrame) - } - - b0 := byte(w.frameType) - if final { - b0 |= finalBit - } - if w.compress { - b0 |= rsv1Bit - } - w.compress = false - - b1 := byte(0) - if !c.isServer { - b1 |= maskBit - } - - // Assume that the frame starts at beginning of c.writeBuf. - framePos := 0 - if c.isServer { - // Adjust up if mask not included in the header. - framePos = 4 - } - - switch { - case length >= 65536: - c.writeBuf[framePos] = b0 - c.writeBuf[framePos+1] = b1 | 127 - binary.BigEndian.PutUint64(c.writeBuf[framePos+2:], uint64(length)) - case length > 125: - framePos += 6 - c.writeBuf[framePos] = b0 - c.writeBuf[framePos+1] = b1 | 126 - binary.BigEndian.PutUint16(c.writeBuf[framePos+2:], uint16(length)) - default: - framePos += 8 - c.writeBuf[framePos] = b0 - c.writeBuf[framePos+1] = b1 | byte(length) - } - - if !c.isServer { - key := newMaskKey() - copy(c.writeBuf[maxFrameHeaderSize-4:], key[:]) - maskBytes(key, 0, c.writeBuf[maxFrameHeaderSize:w.pos]) - if len(extra) > 0 { - return w.endMessage(c.writeFatal(errors.New("websocket: internal error, extra used in client mode"))) - } - } - - // Write the buffers to the connection with best-effort detection of - // concurrent writes. See the concurrency section in the package - // documentation for more info. - - if c.isWriting { - panic("concurrent write to websocket connection") - } - c.isWriting = true - - err := c.write(w.frameType, c.writeDeadline, c.writeBuf[framePos:w.pos], extra) - - if !c.isWriting { - panic("concurrent write to websocket connection") - } - c.isWriting = false - - if err != nil { - return w.endMessage(err) - } - - if final { - w.endMessage(errWriteClosed) - return nil - } - - // Setup for next frame. - w.pos = maxFrameHeaderSize - w.frameType = continuationFrame - return nil -} - -func (w *messageWriter) ncopy(max int) (int, error) { - n := len(w.c.writeBuf) - w.pos - if n <= 0 { - if err := w.flushFrame(false, nil); err != nil { - return 0, err - } - n = len(w.c.writeBuf) - w.pos - } - if n > max { - n = max - } - return n, nil -} - -func (w *messageWriter) Write(p []byte) (int, error) { - if w.err != nil { - return 0, w.err - } - - if len(p) > 2*len(w.c.writeBuf) && w.c.isServer { - // Don't buffer large messages. - err := w.flushFrame(false, p) - if err != nil { - return 0, err - } - return len(p), nil - } - - nn := len(p) - for len(p) > 0 { - n, err := w.ncopy(len(p)) - if err != nil { - return 0, err - } - copy(w.c.writeBuf[w.pos:], p[:n]) - w.pos += n - p = p[n:] - } - return nn, nil -} - -func (w *messageWriter) WriteString(p string) (int, error) { - if w.err != nil { - return 0, w.err - } - - nn := len(p) - for len(p) > 0 { - n, err := w.ncopy(len(p)) - if err != nil { - return 0, err - } - copy(w.c.writeBuf[w.pos:], p[:n]) - w.pos += n - p = p[n:] - } - return nn, nil -} - -func (w *messageWriter) ReadFrom(r io.Reader) (nn int64, err error) { - if w.err != nil { - return 0, w.err - } - for { - if w.pos == len(w.c.writeBuf) { - err = w.flushFrame(false, nil) - if err != nil { - break - } - } - var n int - n, err = r.Read(w.c.writeBuf[w.pos:]) - w.pos += n - nn += int64(n) - if err != nil { - if err == io.EOF { - err = nil - } - break - } - } - return nn, err -} - -func (w *messageWriter) Close() error { - if w.err != nil { - return w.err - } - return w.flushFrame(true, nil) -} - -// WritePreparedMessage writes prepared message into connection. -func (c *Conn) WritePreparedMessage(pm *PreparedMessage) error { - frameType, frameData, err := pm.frame(prepareKey{ - isServer: c.isServer, - compress: c.newCompressionWriter != nil && c.enableWriteCompression && isData(pm.messageType), - compressionLevel: c.compressionLevel, - }) - if err != nil { - return err - } - if c.isWriting { - panic("concurrent write to websocket connection") - } - c.isWriting = true - err = c.write(frameType, c.writeDeadline, frameData, nil) - if !c.isWriting { - panic("concurrent write to websocket connection") - } - c.isWriting = false - return err -} - -// WriteMessage is a helper method for getting a writer using NextWriter, -// writing the message and closing the writer. -func (c *Conn) WriteMessage(messageType int, data []byte) error { - - if c.isServer && (c.newCompressionWriter == nil || !c.enableWriteCompression) { - // Fast path with no allocations and single frame. - - var mw messageWriter - if err := c.beginMessage(&mw, messageType); err != nil { - return err - } - n := copy(c.writeBuf[mw.pos:], data) - mw.pos += n - data = data[n:] - return mw.flushFrame(true, data) - } - - w, err := c.NextWriter(messageType) - if err != nil { - return err - } - if _, err = w.Write(data); err != nil { - return err - } - return w.Close() -} - -// SetWriteDeadline sets the write deadline on the underlying network -// connection. After a write has timed out, the websocket state is corrupt and -// all future writes will return an error. A zero value for t means writes will -// not time out. -func (c *Conn) SetWriteDeadline(t time.Time) error { - c.writeDeadline = t - return nil -} - -// Read methods - -func (c *Conn) advanceFrame() (int, error) { - // 1. Skip remainder of previous frame. - - if c.readRemaining > 0 { - if _, err := io.CopyN(ioutil.Discard, c.br, c.readRemaining); err != nil { - return noFrame, err - } - } - - // 2. Read and parse first two bytes of frame header. - - p, err := c.read(2) - if err != nil { - return noFrame, err - } - - final := p[0]&finalBit != 0 - frameType := int(p[0] & 0xf) - mask := p[1]&maskBit != 0 - c.setReadRemaining(int64(p[1] & 0x7f)) - - c.readDecompress = false - if c.newDecompressionReader != nil && (p[0]&rsv1Bit) != 0 { - c.readDecompress = true - p[0] &^= rsv1Bit - } - - if rsv := p[0] & (rsv1Bit | rsv2Bit | rsv3Bit); rsv != 0 { - return noFrame, c.handleProtocolError("unexpected reserved bits 0x" + strconv.FormatInt(int64(rsv), 16)) - } - - switch frameType { - case CloseMessage, PingMessage, PongMessage: - if c.readRemaining > maxControlFramePayloadSize { - return noFrame, c.handleProtocolError("control frame length > 125") - } - if !final { - return noFrame, c.handleProtocolError("control frame not final") - } - case TextMessage, BinaryMessage: - if !c.readFinal { - return noFrame, c.handleProtocolError("message start before final message frame") - } - c.readFinal = final - case continuationFrame: - if c.readFinal { - return noFrame, c.handleProtocolError("continuation after final message frame") - } - c.readFinal = final - default: - return noFrame, c.handleProtocolError("unknown opcode " + strconv.Itoa(frameType)) - } - - // 3. Read and parse frame length as per - // https://tools.ietf.org/html/rfc6455#section-5.2 - // - // The length of the "Payload data", in bytes: if 0-125, that is the payload - // length. - // - If 126, the following 2 bytes interpreted as a 16-bit unsigned - // integer are the payload length. - // - If 127, the following 8 bytes interpreted as - // a 64-bit unsigned integer (the most significant bit MUST be 0) are the - // payload length. Multibyte length quantities are expressed in network byte - // order. - - switch c.readRemaining { - case 126: - p, err := c.read(2) - if err != nil { - return noFrame, err - } - - if err := c.setReadRemaining(int64(binary.BigEndian.Uint16(p))); err != nil { - return noFrame, err - } - case 127: - p, err := c.read(8) - if err != nil { - return noFrame, err - } - - if err := c.setReadRemaining(int64(binary.BigEndian.Uint64(p))); err != nil { - return noFrame, err - } - } - - // 4. Handle frame masking. - - if mask != c.isServer { - return noFrame, c.handleProtocolError("incorrect mask flag") - } - - if mask { - c.readMaskPos = 0 - p, err := c.read(len(c.readMaskKey)) - if err != nil { - return noFrame, err - } - copy(c.readMaskKey[:], p) - } - - // 5. For text and binary messages, enforce read limit and return. - - if frameType == continuationFrame || frameType == TextMessage || frameType == BinaryMessage { - - c.readLength += c.readRemaining - // Don't allow readLength to overflow in the presence of a large readRemaining - // counter. - if c.readLength < 0 { - return noFrame, ErrReadLimit - } - - if c.readLimit > 0 && c.readLength > c.readLimit { - c.WriteControl(CloseMessage, FormatCloseMessage(CloseMessageTooBig, ""), time.Now().Add(writeWait)) - return noFrame, ErrReadLimit - } - - return frameType, nil - } - - // 6. Read control frame payload. - - var payload []byte - if c.readRemaining > 0 { - payload, err = c.read(int(c.readRemaining)) - c.setReadRemaining(0) - if err != nil { - return noFrame, err - } - if c.isServer { - maskBytes(c.readMaskKey, 0, payload) - } - } - - // 7. Process control frame payload. - - switch frameType { - case PongMessage: - if err := c.handlePong(string(payload)); err != nil { - return noFrame, err - } - case PingMessage: - if err := c.handlePing(string(payload)); err != nil { - return noFrame, err - } - case CloseMessage: - closeCode := CloseNoStatusReceived - closeText := "" - if len(payload) >= 2 { - closeCode = int(binary.BigEndian.Uint16(payload)) - if !isValidReceivedCloseCode(closeCode) { - return noFrame, c.handleProtocolError("invalid close code") - } - closeText = string(payload[2:]) - if !utf8.ValidString(closeText) { - return noFrame, c.handleProtocolError("invalid utf8 payload in close frame") - } - } - if err := c.handleClose(closeCode, closeText); err != nil { - return noFrame, err - } - return noFrame, &CloseError{Code: closeCode, Text: closeText} - } - - return frameType, nil -} - -func (c *Conn) handleProtocolError(message string) error { - c.WriteControl(CloseMessage, FormatCloseMessage(CloseProtocolError, message), time.Now().Add(writeWait)) - return errors.New("websocket: " + message) -} - -// NextReader returns the next data message received from the peer. The -// returned messageType is either TextMessage or BinaryMessage. -// -// There can be at most one open reader on a connection. NextReader discards -// the previous message if the application has not already consumed it. -// -// Applications must break out of the application's read loop when this method -// returns a non-nil error value. Errors returned from this method are -// permanent. Once this method returns a non-nil error, all subsequent calls to -// this method return the same error. -func (c *Conn) NextReader() (messageType int, r io.Reader, err error) { - // Close previous reader, only relevant for decompression. - if c.reader != nil { - c.reader.Close() - c.reader = nil - } - - c.messageReader = nil - c.readLength = 0 - - for c.readErr == nil { - frameType, err := c.advanceFrame() - if err != nil { - c.readErr = hideTempErr(err) - break - } - - if frameType == TextMessage || frameType == BinaryMessage { - c.messageReader = &messageReader{c} - c.reader = c.messageReader - if c.readDecompress { - c.reader = c.newDecompressionReader(c.reader) - } - return frameType, c.reader, nil - } - } - - // Applications that do handle the error returned from this method spin in - // tight loop on connection failure. To help application developers detect - // this error, panic on repeated reads to the failed connection. - c.readErrCount++ - if c.readErrCount >= 1000 { - panic("repeated read on failed websocket connection") - } - - return noFrame, nil, c.readErr -} - -type messageReader struct{ c *Conn } - -func (r *messageReader) Read(b []byte) (int, error) { - c := r.c - if c.messageReader != r { - return 0, io.EOF - } - - for c.readErr == nil { - - if c.readRemaining > 0 { - if int64(len(b)) > c.readRemaining { - b = b[:c.readRemaining] - } - n, err := c.br.Read(b) - c.readErr = hideTempErr(err) - if c.isServer { - c.readMaskPos = maskBytes(c.readMaskKey, c.readMaskPos, b[:n]) - } - rem := c.readRemaining - rem -= int64(n) - c.setReadRemaining(rem) - if c.readRemaining > 0 && c.readErr == io.EOF { - c.readErr = errUnexpectedEOF - } - return n, c.readErr - } - - if c.readFinal { - c.messageReader = nil - return 0, io.EOF - } - - frameType, err := c.advanceFrame() - switch { - case err != nil: - c.readErr = hideTempErr(err) - case frameType == TextMessage || frameType == BinaryMessage: - c.readErr = errors.New("websocket: internal error, unexpected text or binary in Reader") - } - } - - err := c.readErr - if err == io.EOF && c.messageReader == r { - err = errUnexpectedEOF - } - return 0, err -} - -func (r *messageReader) Close() error { - return nil -} - -// ReadMessage is a helper method for getting a reader using NextReader and -// reading from that reader to a buffer. -func (c *Conn) ReadMessage() (messageType int, p []byte, err error) { - var r io.Reader - messageType, r, err = c.NextReader() - if err != nil { - return messageType, nil, err - } - p, err = ioutil.ReadAll(r) - return messageType, p, err -} - -// SetReadDeadline sets the read deadline on the underlying network connection. -// After a read has timed out, the websocket connection state is corrupt and -// all future reads will return an error. A zero value for t means reads will -// not time out. -func (c *Conn) SetReadDeadline(t time.Time) error { - return c.conn.SetReadDeadline(t) -} - -// SetReadLimit sets the maximum size in bytes for a message read from the peer. If a -// message exceeds the limit, the connection sends a close message to the peer -// and returns ErrReadLimit to the application. -func (c *Conn) SetReadLimit(limit int64) { - c.readLimit = limit -} - -// CloseHandler returns the current close handler -func (c *Conn) CloseHandler() func(code int, text string) error { - return c.handleClose -} - -// SetCloseHandler sets the handler for close messages received from the peer. -// The code argument to h is the received close code or CloseNoStatusReceived -// if the close message is empty. The default close handler sends a close -// message back to the peer. -// -// The handler function is called from the NextReader, ReadMessage and message -// reader Read methods. The application must read the connection to process -// close messages as described in the section on Control Messages above. -// -// The connection read methods return a CloseError when a close message is -// received. Most applications should handle close messages as part of their -// normal error handling. Applications should only set a close handler when the -// application must perform some action before sending a close message back to -// the peer. -func (c *Conn) SetCloseHandler(h func(code int, text string) error) { - if h == nil { - h = func(code int, text string) error { - message := FormatCloseMessage(code, "") - c.WriteControl(CloseMessage, message, time.Now().Add(writeWait)) - return nil - } - } - c.handleClose = h -} - -// PingHandler returns the current ping handler -func (c *Conn) PingHandler() func(appData string) error { - return c.handlePing -} - -// SetPingHandler sets the handler for ping messages received from the peer. -// The appData argument to h is the PING message application data. The default -// ping handler sends a pong to the peer. -// -// The handler function is called from the NextReader, ReadMessage and message -// reader Read methods. The application must read the connection to process -// ping messages as described in the section on Control Messages above. -func (c *Conn) SetPingHandler(h func(appData string) error) { - if h == nil { - h = func(message string) error { - err := c.WriteControl(PongMessage, []byte(message), time.Now().Add(writeWait)) - if err == ErrCloseSent { - return nil - } else if e, ok := err.(net.Error); ok && e.Temporary() { - return nil - } - return err - } - } - c.handlePing = h -} - -// PongHandler returns the current pong handler -func (c *Conn) PongHandler() func(appData string) error { - return c.handlePong -} - -// SetPongHandler sets the handler for pong messages received from the peer. -// The appData argument to h is the PONG message application data. The default -// pong handler does nothing. -// -// The handler function is called from the NextReader, ReadMessage and message -// reader Read methods. The application must read the connection to process -// pong messages as described in the section on Control Messages above. -func (c *Conn) SetPongHandler(h func(appData string) error) { - if h == nil { - h = func(string) error { return nil } - } - c.handlePong = h -} - -// UnderlyingConn returns the internal net.Conn. This can be used to further -// modifications to connection specific flags. -func (c *Conn) UnderlyingConn() net.Conn { - return c.conn -} - -// EnableWriteCompression enables and disables write compression of -// subsequent text and binary messages. This function is a noop if -// compression was not negotiated with the peer. -func (c *Conn) EnableWriteCompression(enable bool) { - c.enableWriteCompression = enable -} - -// SetCompressionLevel sets the flate compression level for subsequent text and -// binary messages. This function is a noop if compression was not negotiated -// with the peer. See the compress/flate package for a description of -// compression levels. -func (c *Conn) SetCompressionLevel(level int) error { - if !isValidCompressionLevel(level) { - return errors.New("websocket: invalid compression level") - } - c.compressionLevel = level - return nil -} - -// FormatCloseMessage formats closeCode and text as a WebSocket close message. -// An empty message is returned for code CloseNoStatusReceived. -func FormatCloseMessage(closeCode int, text string) []byte { - if closeCode == CloseNoStatusReceived { - // Return empty message because it's illegal to send - // CloseNoStatusReceived. Return non-nil value in case application - // checks for nil. - return []byte{} - } - buf := make([]byte, 2+len(text)) - binary.BigEndian.PutUint16(buf, uint16(closeCode)) - copy(buf[2:], text) - return buf -} diff --git a/vendor/github.com/gorilla/websocket/conn_write.go b/vendor/github.com/gorilla/websocket/conn_write.go deleted file mode 100644 index a509a21..0000000 --- a/vendor/github.com/gorilla/websocket/conn_write.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2016 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build go1.8 - -package websocket - -import "net" - -func (c *Conn) writeBufs(bufs ...[]byte) error { - b := net.Buffers(bufs) - _, err := b.WriteTo(c.conn) - return err -} diff --git a/vendor/github.com/gorilla/websocket/conn_write_legacy.go b/vendor/github.com/gorilla/websocket/conn_write_legacy.go deleted file mode 100644 index 37edaff..0000000 --- a/vendor/github.com/gorilla/websocket/conn_write_legacy.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2016 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !go1.8 - -package websocket - -func (c *Conn) writeBufs(bufs ...[]byte) error { - for _, buf := range bufs { - if len(buf) > 0 { - if _, err := c.conn.Write(buf); err != nil { - return err - } - } - } - return nil -} diff --git a/vendor/github.com/gorilla/websocket/doc.go b/vendor/github.com/gorilla/websocket/doc.go deleted file mode 100644 index 8db0cef..0000000 --- a/vendor/github.com/gorilla/websocket/doc.go +++ /dev/null @@ -1,227 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package websocket implements the WebSocket protocol defined in RFC 6455. -// -// Overview -// -// The Conn type represents a WebSocket connection. A server application calls -// the Upgrader.Upgrade method from an HTTP request handler to get a *Conn: -// -// var upgrader = websocket.Upgrader{ -// ReadBufferSize: 1024, -// WriteBufferSize: 1024, -// } -// -// func handler(w http.ResponseWriter, r *http.Request) { -// conn, err := upgrader.Upgrade(w, r, nil) -// if err != nil { -// log.Println(err) -// return -// } -// ... Use conn to send and receive messages. -// } -// -// Call the connection's WriteMessage and ReadMessage methods to send and -// receive messages as a slice of bytes. This snippet of code shows how to echo -// messages using these methods: -// -// for { -// messageType, p, err := conn.ReadMessage() -// if err != nil { -// log.Println(err) -// return -// } -// if err := conn.WriteMessage(messageType, p); err != nil { -// log.Println(err) -// return -// } -// } -// -// In above snippet of code, p is a []byte and messageType is an int with value -// websocket.BinaryMessage or websocket.TextMessage. -// -// An application can also send and receive messages using the io.WriteCloser -// and io.Reader interfaces. To send a message, call the connection NextWriter -// method to get an io.WriteCloser, write the message to the writer and close -// the writer when done. To receive a message, call the connection NextReader -// method to get an io.Reader and read until io.EOF is returned. This snippet -// shows how to echo messages using the NextWriter and NextReader methods: -// -// for { -// messageType, r, err := conn.NextReader() -// if err != nil { -// return -// } -// w, err := conn.NextWriter(messageType) -// if err != nil { -// return err -// } -// if _, err := io.Copy(w, r); err != nil { -// return err -// } -// if err := w.Close(); err != nil { -// return err -// } -// } -// -// Data Messages -// -// The WebSocket protocol distinguishes between text and binary data messages. -// Text messages are interpreted as UTF-8 encoded text. The interpretation of -// binary messages is left to the application. -// -// This package uses the TextMessage and BinaryMessage integer constants to -// identify the two data message types. The ReadMessage and NextReader methods -// return the type of the received message. The messageType argument to the -// WriteMessage and NextWriter methods specifies the type of a sent message. -// -// It is the application's responsibility to ensure that text messages are -// valid UTF-8 encoded text. -// -// Control Messages -// -// The WebSocket protocol defines three types of control messages: close, ping -// and pong. Call the connection WriteControl, WriteMessage or NextWriter -// methods to send a control message to the peer. -// -// Connections handle received close messages by calling the handler function -// set with the SetCloseHandler method and by returning a *CloseError from the -// NextReader, ReadMessage or the message Read method. The default close -// handler sends a close message to the peer. -// -// Connections handle received ping messages by calling the handler function -// set with the SetPingHandler method. The default ping handler sends a pong -// message to the peer. -// -// Connections handle received pong messages by calling the handler function -// set with the SetPongHandler method. The default pong handler does nothing. -// If an application sends ping messages, then the application should set a -// pong handler to receive the corresponding pong. -// -// The control message handler functions are called from the NextReader, -// ReadMessage and message reader Read methods. The default close and ping -// handlers can block these methods for a short time when the handler writes to -// the connection. -// -// The application must read the connection to process close, ping and pong -// messages sent from the peer. If the application is not otherwise interested -// in messages from the peer, then the application should start a goroutine to -// read and discard messages from the peer. A simple example is: -// -// func readLoop(c *websocket.Conn) { -// for { -// if _, _, err := c.NextReader(); err != nil { -// c.Close() -// break -// } -// } -// } -// -// Concurrency -// -// Connections support one concurrent reader and one concurrent writer. -// -// Applications are responsible for ensuring that no more than one goroutine -// calls the write methods (NextWriter, SetWriteDeadline, WriteMessage, -// WriteJSON, EnableWriteCompression, SetCompressionLevel) concurrently and -// that no more than one goroutine calls the read methods (NextReader, -// SetReadDeadline, ReadMessage, ReadJSON, SetPongHandler, SetPingHandler) -// concurrently. -// -// The Close and WriteControl methods can be called concurrently with all other -// methods. -// -// Origin Considerations -// -// Web browsers allow Javascript applications to open a WebSocket connection to -// any host. It's up to the server to enforce an origin policy using the Origin -// request header sent by the browser. -// -// The Upgrader calls the function specified in the CheckOrigin field to check -// the origin. If the CheckOrigin function returns false, then the Upgrade -// method fails the WebSocket handshake with HTTP status 403. -// -// If the CheckOrigin field is nil, then the Upgrader uses a safe default: fail -// the handshake if the Origin request header is present and the Origin host is -// not equal to the Host request header. -// -// The deprecated package-level Upgrade function does not perform origin -// checking. The application is responsible for checking the Origin header -// before calling the Upgrade function. -// -// Buffers -// -// Connections buffer network input and output to reduce the number -// of system calls when reading or writing messages. -// -// Write buffers are also used for constructing WebSocket frames. See RFC 6455, -// Section 5 for a discussion of message framing. A WebSocket frame header is -// written to the network each time a write buffer is flushed to the network. -// Decreasing the size of the write buffer can increase the amount of framing -// overhead on the connection. -// -// The buffer sizes in bytes are specified by the ReadBufferSize and -// WriteBufferSize fields in the Dialer and Upgrader. The Dialer uses a default -// size of 4096 when a buffer size field is set to zero. The Upgrader reuses -// buffers created by the HTTP server when a buffer size field is set to zero. -// The HTTP server buffers have a size of 4096 at the time of this writing. -// -// The buffer sizes do not limit the size of a message that can be read or -// written by a connection. -// -// Buffers are held for the lifetime of the connection by default. If the -// Dialer or Upgrader WriteBufferPool field is set, then a connection holds the -// write buffer only when writing a message. -// -// Applications should tune the buffer sizes to balance memory use and -// performance. Increasing the buffer size uses more memory, but can reduce the -// number of system calls to read or write the network. In the case of writing, -// increasing the buffer size can reduce the number of frame headers written to -// the network. -// -// Some guidelines for setting buffer parameters are: -// -// Limit the buffer sizes to the maximum expected message size. Buffers larger -// than the largest message do not provide any benefit. -// -// Depending on the distribution of message sizes, setting the buffer size to -// a value less than the maximum expected message size can greatly reduce memory -// use with a small impact on performance. Here's an example: If 99% of the -// messages are smaller than 256 bytes and the maximum message size is 512 -// bytes, then a buffer size of 256 bytes will result in 1.01 more system calls -// than a buffer size of 512 bytes. The memory savings is 50%. -// -// A write buffer pool is useful when the application has a modest number -// writes over a large number of connections. when buffers are pooled, a larger -// buffer size has a reduced impact on total memory use and has the benefit of -// reducing system calls and frame overhead. -// -// Compression EXPERIMENTAL -// -// Per message compression extensions (RFC 7692) are experimentally supported -// by this package in a limited capacity. Setting the EnableCompression option -// to true in Dialer or Upgrader will attempt to negotiate per message deflate -// support. -// -// var upgrader = websocket.Upgrader{ -// EnableCompression: true, -// } -// -// If compression was successfully negotiated with the connection's peer, any -// message received in compressed form will be automatically decompressed. -// All Read methods will return uncompressed bytes. -// -// Per message compression of messages written to a connection can be enabled -// or disabled by calling the corresponding Conn method: -// -// conn.EnableWriteCompression(false) -// -// Currently this package does not support compression with "context takeover". -// This means that messages must be compressed and decompressed in isolation, -// without retaining sliding window or dictionary state across messages. For -// more details refer to RFC 7692. -// -// Use of compression is experimental and may result in decreased performance. -package websocket diff --git a/vendor/github.com/gorilla/websocket/go.mod b/vendor/github.com/gorilla/websocket/go.mod deleted file mode 100644 index 1a7afd5..0000000 --- a/vendor/github.com/gorilla/websocket/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/gorilla/websocket - -go 1.12 diff --git a/vendor/github.com/gorilla/websocket/go.sum b/vendor/github.com/gorilla/websocket/go.sum deleted file mode 100644 index e69de29..0000000 diff --git a/vendor/github.com/gorilla/websocket/join.go b/vendor/github.com/gorilla/websocket/join.go deleted file mode 100644 index c64f8c8..0000000 --- a/vendor/github.com/gorilla/websocket/join.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2019 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "io" - "strings" -) - -// JoinMessages concatenates received messages to create a single io.Reader. -// The string term is appended to each message. The returned reader does not -// support concurrent calls to the Read method. -func JoinMessages(c *Conn, term string) io.Reader { - return &joinReader{c: c, term: term} -} - -type joinReader struct { - c *Conn - term string - r io.Reader -} - -func (r *joinReader) Read(p []byte) (int, error) { - if r.r == nil { - var err error - _, r.r, err = r.c.NextReader() - if err != nil { - return 0, err - } - if r.term != "" { - r.r = io.MultiReader(r.r, strings.NewReader(r.term)) - } - } - n, err := r.r.Read(p) - if err == io.EOF { - err = nil - r.r = nil - } - return n, err -} diff --git a/vendor/github.com/gorilla/websocket/json.go b/vendor/github.com/gorilla/websocket/json.go deleted file mode 100644 index dc2c1f6..0000000 --- a/vendor/github.com/gorilla/websocket/json.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "encoding/json" - "io" -) - -// WriteJSON writes the JSON encoding of v as a message. -// -// Deprecated: Use c.WriteJSON instead. -func WriteJSON(c *Conn, v interface{}) error { - return c.WriteJSON(v) -} - -// WriteJSON writes the JSON encoding of v as a message. -// -// See the documentation for encoding/json Marshal for details about the -// conversion of Go values to JSON. -func (c *Conn) WriteJSON(v interface{}) error { - w, err := c.NextWriter(TextMessage) - if err != nil { - return err - } - err1 := json.NewEncoder(w).Encode(v) - err2 := w.Close() - if err1 != nil { - return err1 - } - return err2 -} - -// ReadJSON reads the next JSON-encoded message from the connection and stores -// it in the value pointed to by v. -// -// Deprecated: Use c.ReadJSON instead. -func ReadJSON(c *Conn, v interface{}) error { - return c.ReadJSON(v) -} - -// ReadJSON reads the next JSON-encoded message from the connection and stores -// it in the value pointed to by v. -// -// See the documentation for the encoding/json Unmarshal function for details -// about the conversion of JSON to a Go value. -func (c *Conn) ReadJSON(v interface{}) error { - _, r, err := c.NextReader() - if err != nil { - return err - } - err = json.NewDecoder(r).Decode(v) - if err == io.EOF { - // One value is expected in the message. - err = io.ErrUnexpectedEOF - } - return err -} diff --git a/vendor/github.com/gorilla/websocket/mask.go b/vendor/github.com/gorilla/websocket/mask.go deleted file mode 100644 index 577fce9..0000000 --- a/vendor/github.com/gorilla/websocket/mask.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2016 The Gorilla WebSocket Authors. All rights reserved. Use of -// this source code is governed by a BSD-style license that can be found in the -// LICENSE file. - -// +build !appengine - -package websocket - -import "unsafe" - -const wordSize = int(unsafe.Sizeof(uintptr(0))) - -func maskBytes(key [4]byte, pos int, b []byte) int { - // Mask one byte at a time for small buffers. - if len(b) < 2*wordSize { - for i := range b { - b[i] ^= key[pos&3] - pos++ - } - return pos & 3 - } - - // Mask one byte at a time to word boundary. - if n := int(uintptr(unsafe.Pointer(&b[0]))) % wordSize; n != 0 { - n = wordSize - n - for i := range b[:n] { - b[i] ^= key[pos&3] - pos++ - } - b = b[n:] - } - - // Create aligned word size key. - var k [wordSize]byte - for i := range k { - k[i] = key[(pos+i)&3] - } - kw := *(*uintptr)(unsafe.Pointer(&k)) - - // Mask one word at a time. - n := (len(b) / wordSize) * wordSize - for i := 0; i < n; i += wordSize { - *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&b[0])) + uintptr(i))) ^= kw - } - - // Mask one byte at a time for remaining bytes. - b = b[n:] - for i := range b { - b[i] ^= key[pos&3] - pos++ - } - - return pos & 3 -} diff --git a/vendor/github.com/gorilla/websocket/mask_safe.go b/vendor/github.com/gorilla/websocket/mask_safe.go deleted file mode 100644 index 2aac060..0000000 --- a/vendor/github.com/gorilla/websocket/mask_safe.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2016 The Gorilla WebSocket Authors. All rights reserved. Use of -// this source code is governed by a BSD-style license that can be found in the -// LICENSE file. - -// +build appengine - -package websocket - -func maskBytes(key [4]byte, pos int, b []byte) int { - for i := range b { - b[i] ^= key[pos&3] - pos++ - } - return pos & 3 -} diff --git a/vendor/github.com/gorilla/websocket/prepared.go b/vendor/github.com/gorilla/websocket/prepared.go deleted file mode 100644 index c854225..0000000 --- a/vendor/github.com/gorilla/websocket/prepared.go +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2017 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "bytes" - "net" - "sync" - "time" -) - -// PreparedMessage caches on the wire representations of a message payload. -// Use PreparedMessage to efficiently send a message payload to multiple -// connections. PreparedMessage is especially useful when compression is used -// because the CPU and memory expensive compression operation can be executed -// once for a given set of compression options. -type PreparedMessage struct { - messageType int - data []byte - mu sync.Mutex - frames map[prepareKey]*preparedFrame -} - -// prepareKey defines a unique set of options to cache prepared frames in PreparedMessage. -type prepareKey struct { - isServer bool - compress bool - compressionLevel int -} - -// preparedFrame contains data in wire representation. -type preparedFrame struct { - once sync.Once - data []byte -} - -// NewPreparedMessage returns an initialized PreparedMessage. You can then send -// it to connection using WritePreparedMessage method. Valid wire -// representation will be calculated lazily only once for a set of current -// connection options. -func NewPreparedMessage(messageType int, data []byte) (*PreparedMessage, error) { - pm := &PreparedMessage{ - messageType: messageType, - frames: make(map[prepareKey]*preparedFrame), - data: data, - } - - // Prepare a plain server frame. - _, frameData, err := pm.frame(prepareKey{isServer: true, compress: false}) - if err != nil { - return nil, err - } - - // To protect against caller modifying the data argument, remember the data - // copied to the plain server frame. - pm.data = frameData[len(frameData)-len(data):] - return pm, nil -} - -func (pm *PreparedMessage) frame(key prepareKey) (int, []byte, error) { - pm.mu.Lock() - frame, ok := pm.frames[key] - if !ok { - frame = &preparedFrame{} - pm.frames[key] = frame - } - pm.mu.Unlock() - - var err error - frame.once.Do(func() { - // Prepare a frame using a 'fake' connection. - // TODO: Refactor code in conn.go to allow more direct construction of - // the frame. - mu := make(chan struct{}, 1) - mu <- struct{}{} - var nc prepareConn - c := &Conn{ - conn: &nc, - mu: mu, - isServer: key.isServer, - compressionLevel: key.compressionLevel, - enableWriteCompression: true, - writeBuf: make([]byte, defaultWriteBufferSize+maxFrameHeaderSize), - } - if key.compress { - c.newCompressionWriter = compressNoContextTakeover - } - err = c.WriteMessage(pm.messageType, pm.data) - frame.data = nc.buf.Bytes() - }) - return pm.messageType, frame.data, err -} - -type prepareConn struct { - buf bytes.Buffer - net.Conn -} - -func (pc *prepareConn) Write(p []byte) (int, error) { return pc.buf.Write(p) } -func (pc *prepareConn) SetWriteDeadline(t time.Time) error { return nil } diff --git a/vendor/github.com/gorilla/websocket/proxy.go b/vendor/github.com/gorilla/websocket/proxy.go deleted file mode 100644 index e87a8c9..0000000 --- a/vendor/github.com/gorilla/websocket/proxy.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2017 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "bufio" - "encoding/base64" - "errors" - "net" - "net/http" - "net/url" - "strings" -) - -type netDialerFunc func(network, addr string) (net.Conn, error) - -func (fn netDialerFunc) Dial(network, addr string) (net.Conn, error) { - return fn(network, addr) -} - -func init() { - proxy_RegisterDialerType("http", func(proxyURL *url.URL, forwardDialer proxy_Dialer) (proxy_Dialer, error) { - return &httpProxyDialer{proxyURL: proxyURL, forwardDial: forwardDialer.Dial}, nil - }) -} - -type httpProxyDialer struct { - proxyURL *url.URL - forwardDial func(network, addr string) (net.Conn, error) -} - -func (hpd *httpProxyDialer) Dial(network string, addr string) (net.Conn, error) { - hostPort, _ := hostPortNoPort(hpd.proxyURL) - conn, err := hpd.forwardDial(network, hostPort) - if err != nil { - return nil, err - } - - connectHeader := make(http.Header) - if user := hpd.proxyURL.User; user != nil { - proxyUser := user.Username() - if proxyPassword, passwordSet := user.Password(); passwordSet { - credential := base64.StdEncoding.EncodeToString([]byte(proxyUser + ":" + proxyPassword)) - connectHeader.Set("Proxy-Authorization", "Basic "+credential) - } - } - - connectReq := &http.Request{ - Method: "CONNECT", - URL: &url.URL{Opaque: addr}, - Host: addr, - Header: connectHeader, - } - - if err := connectReq.Write(conn); err != nil { - conn.Close() - return nil, err - } - - // Read response. It's OK to use and discard buffered reader here becaue - // the remote server does not speak until spoken to. - br := bufio.NewReader(conn) - resp, err := http.ReadResponse(br, connectReq) - if err != nil { - conn.Close() - return nil, err - } - - if resp.StatusCode != 200 { - conn.Close() - f := strings.SplitN(resp.Status, " ", 2) - return nil, errors.New(f[1]) - } - return conn, nil -} diff --git a/vendor/github.com/gorilla/websocket/server.go b/vendor/github.com/gorilla/websocket/server.go deleted file mode 100644 index 887d558..0000000 --- a/vendor/github.com/gorilla/websocket/server.go +++ /dev/null @@ -1,363 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "bufio" - "errors" - "io" - "net/http" - "net/url" - "strings" - "time" -) - -// HandshakeError describes an error with the handshake from the peer. -type HandshakeError struct { - message string -} - -func (e HandshakeError) Error() string { return e.message } - -// Upgrader specifies parameters for upgrading an HTTP connection to a -// WebSocket connection. -type Upgrader struct { - // HandshakeTimeout specifies the duration for the handshake to complete. - HandshakeTimeout time.Duration - - // ReadBufferSize and WriteBufferSize specify I/O buffer sizes in bytes. If a buffer - // size is zero, then buffers allocated by the HTTP server are used. The - // I/O buffer sizes do not limit the size of the messages that can be sent - // or received. - ReadBufferSize, WriteBufferSize int - - // WriteBufferPool is a pool of buffers for write operations. If the value - // is not set, then write buffers are allocated to the connection for the - // lifetime of the connection. - // - // A pool is most useful when the application has a modest volume of writes - // across a large number of connections. - // - // Applications should use a single pool for each unique value of - // WriteBufferSize. - WriteBufferPool BufferPool - - // Subprotocols specifies the server's supported protocols in order of - // preference. If this field is not nil, then the Upgrade method negotiates a - // subprotocol by selecting the first match in this list with a protocol - // requested by the client. If there's no match, then no protocol is - // negotiated (the Sec-Websocket-Protocol header is not included in the - // handshake response). - Subprotocols []string - - // Error specifies the function for generating HTTP error responses. If Error - // is nil, then http.Error is used to generate the HTTP response. - Error func(w http.ResponseWriter, r *http.Request, status int, reason error) - - // CheckOrigin returns true if the request Origin header is acceptable. If - // CheckOrigin is nil, then a safe default is used: return false if the - // Origin request header is present and the origin host is not equal to - // request Host header. - // - // A CheckOrigin function should carefully validate the request origin to - // prevent cross-site request forgery. - CheckOrigin func(r *http.Request) bool - - // EnableCompression specify if the server should attempt to negotiate per - // message compression (RFC 7692). Setting this value to true does not - // guarantee that compression will be supported. Currently only "no context - // takeover" modes are supported. - EnableCompression bool -} - -func (u *Upgrader) returnError(w http.ResponseWriter, r *http.Request, status int, reason string) (*Conn, error) { - err := HandshakeError{reason} - if u.Error != nil { - u.Error(w, r, status, err) - } else { - w.Header().Set("Sec-Websocket-Version", "13") - http.Error(w, http.StatusText(status), status) - } - return nil, err -} - -// checkSameOrigin returns true if the origin is not set or is equal to the request host. -func checkSameOrigin(r *http.Request) bool { - origin := r.Header["Origin"] - if len(origin) == 0 { - return true - } - u, err := url.Parse(origin[0]) - if err != nil { - return false - } - return equalASCIIFold(u.Host, r.Host) -} - -func (u *Upgrader) selectSubprotocol(r *http.Request, responseHeader http.Header) string { - if u.Subprotocols != nil { - clientProtocols := Subprotocols(r) - for _, serverProtocol := range u.Subprotocols { - for _, clientProtocol := range clientProtocols { - if clientProtocol == serverProtocol { - return clientProtocol - } - } - } - } else if responseHeader != nil { - return responseHeader.Get("Sec-Websocket-Protocol") - } - return "" -} - -// Upgrade upgrades the HTTP server connection to the WebSocket protocol. -// -// The responseHeader is included in the response to the client's upgrade -// request. Use the responseHeader to specify cookies (Set-Cookie) and the -// application negotiated subprotocol (Sec-WebSocket-Protocol). -// -// If the upgrade fails, then Upgrade replies to the client with an HTTP error -// response. -func (u *Upgrader) Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header) (*Conn, error) { - const badHandshake = "websocket: the client is not using the websocket protocol: " - - if !tokenListContainsValue(r.Header, "Connection", "upgrade") { - return u.returnError(w, r, http.StatusBadRequest, badHandshake+"'upgrade' token not found in 'Connection' header") - } - - if !tokenListContainsValue(r.Header, "Upgrade", "websocket") { - return u.returnError(w, r, http.StatusBadRequest, badHandshake+"'websocket' token not found in 'Upgrade' header") - } - - if r.Method != "GET" { - return u.returnError(w, r, http.StatusMethodNotAllowed, badHandshake+"request method is not GET") - } - - if !tokenListContainsValue(r.Header, "Sec-Websocket-Version", "13") { - return u.returnError(w, r, http.StatusBadRequest, "websocket: unsupported version: 13 not found in 'Sec-Websocket-Version' header") - } - - if _, ok := responseHeader["Sec-Websocket-Extensions"]; ok { - return u.returnError(w, r, http.StatusInternalServerError, "websocket: application specific 'Sec-WebSocket-Extensions' headers are unsupported") - } - - checkOrigin := u.CheckOrigin - if checkOrigin == nil { - checkOrigin = checkSameOrigin - } - if !checkOrigin(r) { - return u.returnError(w, r, http.StatusForbidden, "websocket: request origin not allowed by Upgrader.CheckOrigin") - } - - challengeKey := r.Header.Get("Sec-Websocket-Key") - if challengeKey == "" { - return u.returnError(w, r, http.StatusBadRequest, "websocket: not a websocket handshake: 'Sec-WebSocket-Key' header is missing or blank") - } - - subprotocol := u.selectSubprotocol(r, responseHeader) - - // Negotiate PMCE - var compress bool - if u.EnableCompression { - for _, ext := range parseExtensions(r.Header) { - if ext[""] != "permessage-deflate" { - continue - } - compress = true - break - } - } - - h, ok := w.(http.Hijacker) - if !ok { - return u.returnError(w, r, http.StatusInternalServerError, "websocket: response does not implement http.Hijacker") - } - var brw *bufio.ReadWriter - netConn, brw, err := h.Hijack() - if err != nil { - return u.returnError(w, r, http.StatusInternalServerError, err.Error()) - } - - if brw.Reader.Buffered() > 0 { - netConn.Close() - return nil, errors.New("websocket: client sent data before handshake is complete") - } - - var br *bufio.Reader - if u.ReadBufferSize == 0 && bufioReaderSize(netConn, brw.Reader) > 256 { - // Reuse hijacked buffered reader as connection reader. - br = brw.Reader - } - - buf := bufioWriterBuffer(netConn, brw.Writer) - - var writeBuf []byte - if u.WriteBufferPool == nil && u.WriteBufferSize == 0 && len(buf) >= maxFrameHeaderSize+256 { - // Reuse hijacked write buffer as connection buffer. - writeBuf = buf - } - - c := newConn(netConn, true, u.ReadBufferSize, u.WriteBufferSize, u.WriteBufferPool, br, writeBuf) - c.subprotocol = subprotocol - - if compress { - c.newCompressionWriter = compressNoContextTakeover - c.newDecompressionReader = decompressNoContextTakeover - } - - // Use larger of hijacked buffer and connection write buffer for header. - p := buf - if len(c.writeBuf) > len(p) { - p = c.writeBuf - } - p = p[:0] - - p = append(p, "HTTP/1.1 101 Switching Protocols\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: "...) - p = append(p, computeAcceptKey(challengeKey)...) - p = append(p, "\r\n"...) - if c.subprotocol != "" { - p = append(p, "Sec-WebSocket-Protocol: "...) - p = append(p, c.subprotocol...) - p = append(p, "\r\n"...) - } - if compress { - p = append(p, "Sec-WebSocket-Extensions: permessage-deflate; server_no_context_takeover; client_no_context_takeover\r\n"...) - } - for k, vs := range responseHeader { - if k == "Sec-Websocket-Protocol" { - continue - } - for _, v := range vs { - p = append(p, k...) - p = append(p, ": "...) - for i := 0; i < len(v); i++ { - b := v[i] - if b <= 31 { - // prevent response splitting. - b = ' ' - } - p = append(p, b) - } - p = append(p, "\r\n"...) - } - } - p = append(p, "\r\n"...) - - // Clear deadlines set by HTTP server. - netConn.SetDeadline(time.Time{}) - - if u.HandshakeTimeout > 0 { - netConn.SetWriteDeadline(time.Now().Add(u.HandshakeTimeout)) - } - if _, err = netConn.Write(p); err != nil { - netConn.Close() - return nil, err - } - if u.HandshakeTimeout > 0 { - netConn.SetWriteDeadline(time.Time{}) - } - - return c, nil -} - -// Upgrade upgrades the HTTP server connection to the WebSocket protocol. -// -// Deprecated: Use websocket.Upgrader instead. -// -// Upgrade does not perform origin checking. The application is responsible for -// checking the Origin header before calling Upgrade. An example implementation -// of the same origin policy check is: -// -// if req.Header.Get("Origin") != "http://"+req.Host { -// http.Error(w, "Origin not allowed", http.StatusForbidden) -// return -// } -// -// If the endpoint supports subprotocols, then the application is responsible -// for negotiating the protocol used on the connection. Use the Subprotocols() -// function to get the subprotocols requested by the client. Use the -// Sec-Websocket-Protocol response header to specify the subprotocol selected -// by the application. -// -// The responseHeader is included in the response to the client's upgrade -// request. Use the responseHeader to specify cookies (Set-Cookie) and the -// negotiated subprotocol (Sec-Websocket-Protocol). -// -// The connection buffers IO to the underlying network connection. The -// readBufSize and writeBufSize parameters specify the size of the buffers to -// use. Messages can be larger than the buffers. -// -// If the request is not a valid WebSocket handshake, then Upgrade returns an -// error of type HandshakeError. Applications should handle this error by -// replying to the client with an HTTP error response. -func Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header, readBufSize, writeBufSize int) (*Conn, error) { - u := Upgrader{ReadBufferSize: readBufSize, WriteBufferSize: writeBufSize} - u.Error = func(w http.ResponseWriter, r *http.Request, status int, reason error) { - // don't return errors to maintain backwards compatibility - } - u.CheckOrigin = func(r *http.Request) bool { - // allow all connections by default - return true - } - return u.Upgrade(w, r, responseHeader) -} - -// Subprotocols returns the subprotocols requested by the client in the -// Sec-Websocket-Protocol header. -func Subprotocols(r *http.Request) []string { - h := strings.TrimSpace(r.Header.Get("Sec-Websocket-Protocol")) - if h == "" { - return nil - } - protocols := strings.Split(h, ",") - for i := range protocols { - protocols[i] = strings.TrimSpace(protocols[i]) - } - return protocols -} - -// IsWebSocketUpgrade returns true if the client requested upgrade to the -// WebSocket protocol. -func IsWebSocketUpgrade(r *http.Request) bool { - return tokenListContainsValue(r.Header, "Connection", "upgrade") && - tokenListContainsValue(r.Header, "Upgrade", "websocket") -} - -// bufioReaderSize size returns the size of a bufio.Reader. -func bufioReaderSize(originalReader io.Reader, br *bufio.Reader) int { - // This code assumes that peek on a reset reader returns - // bufio.Reader.buf[:0]. - // TODO: Use bufio.Reader.Size() after Go 1.10 - br.Reset(originalReader) - if p, err := br.Peek(0); err == nil { - return cap(p) - } - return 0 -} - -// writeHook is an io.Writer that records the last slice passed to it vio -// io.Writer.Write. -type writeHook struct { - p []byte -} - -func (wh *writeHook) Write(p []byte) (int, error) { - wh.p = p - return len(p), nil -} - -// bufioWriterBuffer grabs the buffer from a bufio.Writer. -func bufioWriterBuffer(originalWriter io.Writer, bw *bufio.Writer) []byte { - // This code assumes that bufio.Writer.buf[:1] is passed to the - // bufio.Writer's underlying writer. - var wh writeHook - bw.Reset(&wh) - bw.WriteByte(0) - bw.Flush() - - bw.Reset(originalWriter) - - return wh.p[:cap(wh.p)] -} diff --git a/vendor/github.com/gorilla/websocket/trace.go b/vendor/github.com/gorilla/websocket/trace.go deleted file mode 100644 index 834f122..0000000 --- a/vendor/github.com/gorilla/websocket/trace.go +++ /dev/null @@ -1,19 +0,0 @@ -// +build go1.8 - -package websocket - -import ( - "crypto/tls" - "net/http/httptrace" -) - -func doHandshakeWithTrace(trace *httptrace.ClientTrace, tlsConn *tls.Conn, cfg *tls.Config) error { - if trace.TLSHandshakeStart != nil { - trace.TLSHandshakeStart() - } - err := doHandshake(tlsConn, cfg) - if trace.TLSHandshakeDone != nil { - trace.TLSHandshakeDone(tlsConn.ConnectionState(), err) - } - return err -} diff --git a/vendor/github.com/gorilla/websocket/trace_17.go b/vendor/github.com/gorilla/websocket/trace_17.go deleted file mode 100644 index 77d05a0..0000000 --- a/vendor/github.com/gorilla/websocket/trace_17.go +++ /dev/null @@ -1,12 +0,0 @@ -// +build !go1.8 - -package websocket - -import ( - "crypto/tls" - "net/http/httptrace" -) - -func doHandshakeWithTrace(trace *httptrace.ClientTrace, tlsConn *tls.Conn, cfg *tls.Config) error { - return doHandshake(tlsConn, cfg) -} diff --git a/vendor/github.com/gorilla/websocket/util.go b/vendor/github.com/gorilla/websocket/util.go deleted file mode 100644 index 7bf2f66..0000000 --- a/vendor/github.com/gorilla/websocket/util.go +++ /dev/null @@ -1,283 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "crypto/rand" - "crypto/sha1" - "encoding/base64" - "io" - "net/http" - "strings" - "unicode/utf8" -) - -var keyGUID = []byte("258EAFA5-E914-47DA-95CA-C5AB0DC85B11") - -func computeAcceptKey(challengeKey string) string { - h := sha1.New() - h.Write([]byte(challengeKey)) - h.Write(keyGUID) - return base64.StdEncoding.EncodeToString(h.Sum(nil)) -} - -func generateChallengeKey() (string, error) { - p := make([]byte, 16) - if _, err := io.ReadFull(rand.Reader, p); err != nil { - return "", err - } - return base64.StdEncoding.EncodeToString(p), nil -} - -// Token octets per RFC 2616. -var isTokenOctet = [256]bool{ - '!': true, - '#': true, - '$': true, - '%': true, - '&': true, - '\'': true, - '*': true, - '+': true, - '-': true, - '.': true, - '0': true, - '1': true, - '2': true, - '3': true, - '4': true, - '5': true, - '6': true, - '7': true, - '8': true, - '9': true, - 'A': true, - 'B': true, - 'C': true, - 'D': true, - 'E': true, - 'F': true, - 'G': true, - 'H': true, - 'I': true, - 'J': true, - 'K': true, - 'L': true, - 'M': true, - 'N': true, - 'O': true, - 'P': true, - 'Q': true, - 'R': true, - 'S': true, - 'T': true, - 'U': true, - 'W': true, - 'V': true, - 'X': true, - 'Y': true, - 'Z': true, - '^': true, - '_': true, - '`': true, - 'a': true, - 'b': true, - 'c': true, - 'd': true, - 'e': true, - 'f': true, - 'g': true, - 'h': true, - 'i': true, - 'j': true, - 'k': true, - 'l': true, - 'm': true, - 'n': true, - 'o': true, - 'p': true, - 'q': true, - 'r': true, - 's': true, - 't': true, - 'u': true, - 'v': true, - 'w': true, - 'x': true, - 'y': true, - 'z': true, - '|': true, - '~': true, -} - -// skipSpace returns a slice of the string s with all leading RFC 2616 linear -// whitespace removed. -func skipSpace(s string) (rest string) { - i := 0 - for ; i < len(s); i++ { - if b := s[i]; b != ' ' && b != '\t' { - break - } - } - return s[i:] -} - -// nextToken returns the leading RFC 2616 token of s and the string following -// the token. -func nextToken(s string) (token, rest string) { - i := 0 - for ; i < len(s); i++ { - if !isTokenOctet[s[i]] { - break - } - } - return s[:i], s[i:] -} - -// nextTokenOrQuoted returns the leading token or quoted string per RFC 2616 -// and the string following the token or quoted string. -func nextTokenOrQuoted(s string) (value string, rest string) { - if !strings.HasPrefix(s, "\"") { - return nextToken(s) - } - s = s[1:] - for i := 0; i < len(s); i++ { - switch s[i] { - case '"': - return s[:i], s[i+1:] - case '\\': - p := make([]byte, len(s)-1) - j := copy(p, s[:i]) - escape := true - for i = i + 1; i < len(s); i++ { - b := s[i] - switch { - case escape: - escape = false - p[j] = b - j++ - case b == '\\': - escape = true - case b == '"': - return string(p[:j]), s[i+1:] - default: - p[j] = b - j++ - } - } - return "", "" - } - } - return "", "" -} - -// equalASCIIFold returns true if s is equal to t with ASCII case folding as -// defined in RFC 4790. -func equalASCIIFold(s, t string) bool { - for s != "" && t != "" { - sr, size := utf8.DecodeRuneInString(s) - s = s[size:] - tr, size := utf8.DecodeRuneInString(t) - t = t[size:] - if sr == tr { - continue - } - if 'A' <= sr && sr <= 'Z' { - sr = sr + 'a' - 'A' - } - if 'A' <= tr && tr <= 'Z' { - tr = tr + 'a' - 'A' - } - if sr != tr { - return false - } - } - return s == t -} - -// tokenListContainsValue returns true if the 1#token header with the given -// name contains a token equal to value with ASCII case folding. -func tokenListContainsValue(header http.Header, name string, value string) bool { -headers: - for _, s := range header[name] { - for { - var t string - t, s = nextToken(skipSpace(s)) - if t == "" { - continue headers - } - s = skipSpace(s) - if s != "" && s[0] != ',' { - continue headers - } - if equalASCIIFold(t, value) { - return true - } - if s == "" { - continue headers - } - s = s[1:] - } - } - return false -} - -// parseExtensions parses WebSocket extensions from a header. -func parseExtensions(header http.Header) []map[string]string { - // From RFC 6455: - // - // Sec-WebSocket-Extensions = extension-list - // extension-list = 1#extension - // extension = extension-token *( ";" extension-param ) - // extension-token = registered-token - // registered-token = token - // extension-param = token [ "=" (token | quoted-string) ] - // ;When using the quoted-string syntax variant, the value - // ;after quoted-string unescaping MUST conform to the - // ;'token' ABNF. - - var result []map[string]string -headers: - for _, s := range header["Sec-Websocket-Extensions"] { - for { - var t string - t, s = nextToken(skipSpace(s)) - if t == "" { - continue headers - } - ext := map[string]string{"": t} - for { - s = skipSpace(s) - if !strings.HasPrefix(s, ";") { - break - } - var k string - k, s = nextToken(skipSpace(s[1:])) - if k == "" { - continue headers - } - s = skipSpace(s) - var v string - if strings.HasPrefix(s, "=") { - v, s = nextTokenOrQuoted(skipSpace(s[1:])) - s = skipSpace(s) - } - if s != "" && s[0] != ',' && s[0] != ';' { - continue headers - } - ext[k] = v - } - if s != "" && s[0] != ',' { - continue headers - } - result = append(result, ext) - if s == "" { - continue headers - } - s = s[1:] - } - } - return result -} diff --git a/vendor/github.com/gorilla/websocket/x_net_proxy.go b/vendor/github.com/gorilla/websocket/x_net_proxy.go deleted file mode 100644 index 2e668f6..0000000 --- a/vendor/github.com/gorilla/websocket/x_net_proxy.go +++ /dev/null @@ -1,473 +0,0 @@ -// Code generated by golang.org/x/tools/cmd/bundle. DO NOT EDIT. -//go:generate bundle -o x_net_proxy.go golang.org/x/net/proxy - -// Package proxy provides support for a variety of protocols to proxy network -// data. -// - -package websocket - -import ( - "errors" - "io" - "net" - "net/url" - "os" - "strconv" - "strings" - "sync" -) - -type proxy_direct struct{} - -// Direct is a direct proxy: one that makes network connections directly. -var proxy_Direct = proxy_direct{} - -func (proxy_direct) Dial(network, addr string) (net.Conn, error) { - return net.Dial(network, addr) -} - -// A PerHost directs connections to a default Dialer unless the host name -// requested matches one of a number of exceptions. -type proxy_PerHost struct { - def, bypass proxy_Dialer - - bypassNetworks []*net.IPNet - bypassIPs []net.IP - bypassZones []string - bypassHosts []string -} - -// NewPerHost returns a PerHost Dialer that directs connections to either -// defaultDialer or bypass, depending on whether the connection matches one of -// the configured rules. -func proxy_NewPerHost(defaultDialer, bypass proxy_Dialer) *proxy_PerHost { - return &proxy_PerHost{ - def: defaultDialer, - bypass: bypass, - } -} - -// Dial connects to the address addr on the given network through either -// defaultDialer or bypass. -func (p *proxy_PerHost) Dial(network, addr string) (c net.Conn, err error) { - host, _, err := net.SplitHostPort(addr) - if err != nil { - return nil, err - } - - return p.dialerForRequest(host).Dial(network, addr) -} - -func (p *proxy_PerHost) dialerForRequest(host string) proxy_Dialer { - if ip := net.ParseIP(host); ip != nil { - for _, net := range p.bypassNetworks { - if net.Contains(ip) { - return p.bypass - } - } - for _, bypassIP := range p.bypassIPs { - if bypassIP.Equal(ip) { - return p.bypass - } - } - return p.def - } - - for _, zone := range p.bypassZones { - if strings.HasSuffix(host, zone) { - return p.bypass - } - if host == zone[1:] { - // For a zone ".example.com", we match "example.com" - // too. - return p.bypass - } - } - for _, bypassHost := range p.bypassHosts { - if bypassHost == host { - return p.bypass - } - } - return p.def -} - -// AddFromString parses a string that contains comma-separated values -// specifying hosts that should use the bypass proxy. Each value is either an -// IP address, a CIDR range, a zone (*.example.com) or a host name -// (localhost). A best effort is made to parse the string and errors are -// ignored. -func (p *proxy_PerHost) AddFromString(s string) { - hosts := strings.Split(s, ",") - for _, host := range hosts { - host = strings.TrimSpace(host) - if len(host) == 0 { - continue - } - if strings.Contains(host, "/") { - // We assume that it's a CIDR address like 127.0.0.0/8 - if _, net, err := net.ParseCIDR(host); err == nil { - p.AddNetwork(net) - } - continue - } - if ip := net.ParseIP(host); ip != nil { - p.AddIP(ip) - continue - } - if strings.HasPrefix(host, "*.") { - p.AddZone(host[1:]) - continue - } - p.AddHost(host) - } -} - -// AddIP specifies an IP address that will use the bypass proxy. Note that -// this will only take effect if a literal IP address is dialed. A connection -// to a named host will never match an IP. -func (p *proxy_PerHost) AddIP(ip net.IP) { - p.bypassIPs = append(p.bypassIPs, ip) -} - -// AddNetwork specifies an IP range that will use the bypass proxy. Note that -// this will only take effect if a literal IP address is dialed. A connection -// to a named host will never match. -func (p *proxy_PerHost) AddNetwork(net *net.IPNet) { - p.bypassNetworks = append(p.bypassNetworks, net) -} - -// AddZone specifies a DNS suffix that will use the bypass proxy. A zone of -// "example.com" matches "example.com" and all of its subdomains. -func (p *proxy_PerHost) AddZone(zone string) { - if strings.HasSuffix(zone, ".") { - zone = zone[:len(zone)-1] - } - if !strings.HasPrefix(zone, ".") { - zone = "." + zone - } - p.bypassZones = append(p.bypassZones, zone) -} - -// AddHost specifies a host name that will use the bypass proxy. -func (p *proxy_PerHost) AddHost(host string) { - if strings.HasSuffix(host, ".") { - host = host[:len(host)-1] - } - p.bypassHosts = append(p.bypassHosts, host) -} - -// A Dialer is a means to establish a connection. -type proxy_Dialer interface { - // Dial connects to the given address via the proxy. - Dial(network, addr string) (c net.Conn, err error) -} - -// Auth contains authentication parameters that specific Dialers may require. -type proxy_Auth struct { - User, Password string -} - -// FromEnvironment returns the dialer specified by the proxy related variables in -// the environment. -func proxy_FromEnvironment() proxy_Dialer { - allProxy := proxy_allProxyEnv.Get() - if len(allProxy) == 0 { - return proxy_Direct - } - - proxyURL, err := url.Parse(allProxy) - if err != nil { - return proxy_Direct - } - proxy, err := proxy_FromURL(proxyURL, proxy_Direct) - if err != nil { - return proxy_Direct - } - - noProxy := proxy_noProxyEnv.Get() - if len(noProxy) == 0 { - return proxy - } - - perHost := proxy_NewPerHost(proxy, proxy_Direct) - perHost.AddFromString(noProxy) - return perHost -} - -// proxySchemes is a map from URL schemes to a function that creates a Dialer -// from a URL with such a scheme. -var proxy_proxySchemes map[string]func(*url.URL, proxy_Dialer) (proxy_Dialer, error) - -// RegisterDialerType takes a URL scheme and a function to generate Dialers from -// a URL with that scheme and a forwarding Dialer. Registered schemes are used -// by FromURL. -func proxy_RegisterDialerType(scheme string, f func(*url.URL, proxy_Dialer) (proxy_Dialer, error)) { - if proxy_proxySchemes == nil { - proxy_proxySchemes = make(map[string]func(*url.URL, proxy_Dialer) (proxy_Dialer, error)) - } - proxy_proxySchemes[scheme] = f -} - -// FromURL returns a Dialer given a URL specification and an underlying -// Dialer for it to make network requests. -func proxy_FromURL(u *url.URL, forward proxy_Dialer) (proxy_Dialer, error) { - var auth *proxy_Auth - if u.User != nil { - auth = new(proxy_Auth) - auth.User = u.User.Username() - if p, ok := u.User.Password(); ok { - auth.Password = p - } - } - - switch u.Scheme { - case "socks5": - return proxy_SOCKS5("tcp", u.Host, auth, forward) - } - - // If the scheme doesn't match any of the built-in schemes, see if it - // was registered by another package. - if proxy_proxySchemes != nil { - if f, ok := proxy_proxySchemes[u.Scheme]; ok { - return f(u, forward) - } - } - - return nil, errors.New("proxy: unknown scheme: " + u.Scheme) -} - -var ( - proxy_allProxyEnv = &proxy_envOnce{ - names: []string{"ALL_PROXY", "all_proxy"}, - } - proxy_noProxyEnv = &proxy_envOnce{ - names: []string{"NO_PROXY", "no_proxy"}, - } -) - -// envOnce looks up an environment variable (optionally by multiple -// names) once. It mitigates expensive lookups on some platforms -// (e.g. Windows). -// (Borrowed from net/http/transport.go) -type proxy_envOnce struct { - names []string - once sync.Once - val string -} - -func (e *proxy_envOnce) Get() string { - e.once.Do(e.init) - return e.val -} - -func (e *proxy_envOnce) init() { - for _, n := range e.names { - e.val = os.Getenv(n) - if e.val != "" { - return - } - } -} - -// SOCKS5 returns a Dialer that makes SOCKSv5 connections to the given address -// with an optional username and password. See RFC 1928 and RFC 1929. -func proxy_SOCKS5(network, addr string, auth *proxy_Auth, forward proxy_Dialer) (proxy_Dialer, error) { - s := &proxy_socks5{ - network: network, - addr: addr, - forward: forward, - } - if auth != nil { - s.user = auth.User - s.password = auth.Password - } - - return s, nil -} - -type proxy_socks5 struct { - user, password string - network, addr string - forward proxy_Dialer -} - -const proxy_socks5Version = 5 - -const ( - proxy_socks5AuthNone = 0 - proxy_socks5AuthPassword = 2 -) - -const proxy_socks5Connect = 1 - -const ( - proxy_socks5IP4 = 1 - proxy_socks5Domain = 3 - proxy_socks5IP6 = 4 -) - -var proxy_socks5Errors = []string{ - "", - "general failure", - "connection forbidden", - "network unreachable", - "host unreachable", - "connection refused", - "TTL expired", - "command not supported", - "address type not supported", -} - -// Dial connects to the address addr on the given network via the SOCKS5 proxy. -func (s *proxy_socks5) Dial(network, addr string) (net.Conn, error) { - switch network { - case "tcp", "tcp6", "tcp4": - default: - return nil, errors.New("proxy: no support for SOCKS5 proxy connections of type " + network) - } - - conn, err := s.forward.Dial(s.network, s.addr) - if err != nil { - return nil, err - } - if err := s.connect(conn, addr); err != nil { - conn.Close() - return nil, err - } - return conn, nil -} - -// connect takes an existing connection to a socks5 proxy server, -// and commands the server to extend that connection to target, -// which must be a canonical address with a host and port. -func (s *proxy_socks5) connect(conn net.Conn, target string) error { - host, portStr, err := net.SplitHostPort(target) - if err != nil { - return err - } - - port, err := strconv.Atoi(portStr) - if err != nil { - return errors.New("proxy: failed to parse port number: " + portStr) - } - if port < 1 || port > 0xffff { - return errors.New("proxy: port number out of range: " + portStr) - } - - // the size here is just an estimate - buf := make([]byte, 0, 6+len(host)) - - buf = append(buf, proxy_socks5Version) - if len(s.user) > 0 && len(s.user) < 256 && len(s.password) < 256 { - buf = append(buf, 2 /* num auth methods */, proxy_socks5AuthNone, proxy_socks5AuthPassword) - } else { - buf = append(buf, 1 /* num auth methods */, proxy_socks5AuthNone) - } - - if _, err := conn.Write(buf); err != nil { - return errors.New("proxy: failed to write greeting to SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - if _, err := io.ReadFull(conn, buf[:2]); err != nil { - return errors.New("proxy: failed to read greeting from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - if buf[0] != 5 { - return errors.New("proxy: SOCKS5 proxy at " + s.addr + " has unexpected version " + strconv.Itoa(int(buf[0]))) - } - if buf[1] == 0xff { - return errors.New("proxy: SOCKS5 proxy at " + s.addr + " requires authentication") - } - - // See RFC 1929 - if buf[1] == proxy_socks5AuthPassword { - buf = buf[:0] - buf = append(buf, 1 /* password protocol version */) - buf = append(buf, uint8(len(s.user))) - buf = append(buf, s.user...) - buf = append(buf, uint8(len(s.password))) - buf = append(buf, s.password...) - - if _, err := conn.Write(buf); err != nil { - return errors.New("proxy: failed to write authentication request to SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - if _, err := io.ReadFull(conn, buf[:2]); err != nil { - return errors.New("proxy: failed to read authentication reply from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - if buf[1] != 0 { - return errors.New("proxy: SOCKS5 proxy at " + s.addr + " rejected username/password") - } - } - - buf = buf[:0] - buf = append(buf, proxy_socks5Version, proxy_socks5Connect, 0 /* reserved */) - - if ip := net.ParseIP(host); ip != nil { - if ip4 := ip.To4(); ip4 != nil { - buf = append(buf, proxy_socks5IP4) - ip = ip4 - } else { - buf = append(buf, proxy_socks5IP6) - } - buf = append(buf, ip...) - } else { - if len(host) > 255 { - return errors.New("proxy: destination host name too long: " + host) - } - buf = append(buf, proxy_socks5Domain) - buf = append(buf, byte(len(host))) - buf = append(buf, host...) - } - buf = append(buf, byte(port>>8), byte(port)) - - if _, err := conn.Write(buf); err != nil { - return errors.New("proxy: failed to write connect request to SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - if _, err := io.ReadFull(conn, buf[:4]); err != nil { - return errors.New("proxy: failed to read connect reply from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - failure := "unknown error" - if int(buf[1]) < len(proxy_socks5Errors) { - failure = proxy_socks5Errors[buf[1]] - } - - if len(failure) > 0 { - return errors.New("proxy: SOCKS5 proxy at " + s.addr + " failed to connect: " + failure) - } - - bytesToDiscard := 0 - switch buf[3] { - case proxy_socks5IP4: - bytesToDiscard = net.IPv4len - case proxy_socks5IP6: - bytesToDiscard = net.IPv6len - case proxy_socks5Domain: - _, err := io.ReadFull(conn, buf[:1]) - if err != nil { - return errors.New("proxy: failed to read domain length from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - bytesToDiscard = int(buf[0]) - default: - return errors.New("proxy: got unknown address type " + strconv.Itoa(int(buf[3])) + " from SOCKS5 proxy at " + s.addr) - } - - if cap(buf) < bytesToDiscard { - buf = make([]byte, bytesToDiscard) - } else { - buf = buf[:bytesToDiscard] - } - if _, err := io.ReadFull(conn, buf); err != nil { - return errors.New("proxy: failed to read address from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - // Also need to discard the port number - if _, err := io.ReadFull(conn, buf[:2]); err != nil { - return errors.New("proxy: failed to read port from SOCKS5 proxy at " + s.addr + ": " + err.Error()) - } - - return nil -} diff --git a/vendor/github.com/jmespath/go-jmespath/.gitignore b/vendor/github.com/jmespath/go-jmespath/.gitignore deleted file mode 100644 index 5091fb0..0000000 --- a/vendor/github.com/jmespath/go-jmespath/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/jpgo -jmespath-fuzz.zip -cpu.out -go-jmespath.test diff --git a/vendor/github.com/jmespath/go-jmespath/.travis.yml b/vendor/github.com/jmespath/go-jmespath/.travis.yml deleted file mode 100644 index c56f37c..0000000 --- a/vendor/github.com/jmespath/go-jmespath/.travis.yml +++ /dev/null @@ -1,28 +0,0 @@ -language: go - -sudo: false - -go: - - 1.5.x - - 1.6.x - - 1.7.x - - 1.8.x - - 1.9.x - - 1.10.x - - 1.11.x - - 1.12.x - - 1.13.x - - 1.14.x - - 1.15.x - - tip - -allow_failures: - - go: tip - -script: make build - -matrix: - include: - - language: go - go: 1.15.x - script: make test diff --git a/vendor/github.com/jmespath/go-jmespath/LICENSE b/vendor/github.com/jmespath/go-jmespath/LICENSE deleted file mode 100644 index b03310a..0000000 --- a/vendor/github.com/jmespath/go-jmespath/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2015 James Saryerwinnie - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/vendor/github.com/jmespath/go-jmespath/Makefile b/vendor/github.com/jmespath/go-jmespath/Makefile deleted file mode 100644 index fb38ec2..0000000 --- a/vendor/github.com/jmespath/go-jmespath/Makefile +++ /dev/null @@ -1,51 +0,0 @@ - -CMD = jpgo - -SRC_PKGS=./ ./cmd/... ./fuzz/... - -help: - @echo "Please use \`make ' where is one of" - @echo " test to run all the tests" - @echo " build to build the library and jp executable" - @echo " generate to run codegen" - - -generate: - go generate ${SRC_PKGS} - -build: - rm -f $(CMD) - go build ${SRC_PKGS} - rm -f cmd/$(CMD)/$(CMD) && cd cmd/$(CMD)/ && go build ./... - mv cmd/$(CMD)/$(CMD) . - -test: test-internal-testify - echo "making tests ${SRC_PKGS}" - go test -v ${SRC_PKGS} - -check: - go vet ${SRC_PKGS} - @echo "golint ${SRC_PKGS}" - @lint=`golint ${SRC_PKGS}`; \ - lint=`echo "$$lint" | grep -v "astnodetype_string.go" | grep -v "toktype_string.go"`; \ - echo "$$lint"; \ - if [ "$$lint" != "" ]; then exit 1; fi - -htmlc: - go test -coverprofile="/tmp/jpcov" && go tool cover -html="/tmp/jpcov" && unlink /tmp/jpcov - -buildfuzz: - go-fuzz-build github.com/jmespath/go-jmespath/fuzz - -fuzz: buildfuzz - go-fuzz -bin=./jmespath-fuzz.zip -workdir=fuzz/testdata - -bench: - go test -bench . -cpuprofile cpu.out - -pprof-cpu: - go tool pprof ./go-jmespath.test ./cpu.out - -test-internal-testify: - cd internal/testify && go test ./... - diff --git a/vendor/github.com/jmespath/go-jmespath/README.md b/vendor/github.com/jmespath/go-jmespath/README.md deleted file mode 100644 index 110ad79..0000000 --- a/vendor/github.com/jmespath/go-jmespath/README.md +++ /dev/null @@ -1,87 +0,0 @@ -# go-jmespath - A JMESPath implementation in Go - -[![Build Status](https://img.shields.io/travis/jmespath/go-jmespath.svg)](https://travis-ci.org/jmespath/go-jmespath) - - - -go-jmespath is a GO implementation of JMESPath, -which is a query language for JSON. It will take a JSON -document and transform it into another JSON document -through a JMESPath expression. - -Using go-jmespath is really easy. There's a single function -you use, `jmespath.search`: - - -```go -> import "github.com/jmespath/go-jmespath" -> -> var jsondata = []byte(`{"foo": {"bar": {"baz": [0, 1, 2, 3, 4]}}}`) // your data -> var data interface{} -> err := json.Unmarshal(jsondata, &data) -> result, err := jmespath.Search("foo.bar.baz[2]", data) -result = 2 -``` - -In the example we gave the ``search`` function input data of -`{"foo": {"bar": {"baz": [0, 1, 2, 3, 4]}}}` as well as the JMESPath -expression `foo.bar.baz[2]`, and the `search` function evaluated -the expression against the input data to produce the result ``2``. - -The JMESPath language can do a lot more than select an element -from a list. Here are a few more examples: - -```go -> var jsondata = []byte(`{"foo": {"bar": {"baz": [0, 1, 2, 3, 4]}}}`) // your data -> var data interface{} -> err := json.Unmarshal(jsondata, &data) -> result, err := jmespath.search("foo.bar", data) -result = { "baz": [ 0, 1, 2, 3, 4 ] } - - -> var jsondata = []byte(`{"foo": [{"first": "a", "last": "b"}, - {"first": "c", "last": "d"}]}`) // your data -> var data interface{} -> err := json.Unmarshal(jsondata, &data) -> result, err := jmespath.search({"foo[*].first", data) -result [ 'a', 'c' ] - - -> var jsondata = []byte(`{"foo": [{"age": 20}, {"age": 25}, - {"age": 30}, {"age": 35}, - {"age": 40}]}`) // your data -> var data interface{} -> err := json.Unmarshal(jsondata, &data) -> result, err := jmespath.search("foo[?age > `30`]") -result = [ { age: 35 }, { age: 40 } ] -``` - -You can also pre-compile your query. This is usefull if -you are going to run multiple searches with it: - -```go - > var jsondata = []byte(`{"foo": "bar"}`) - > var data interface{} - > err := json.Unmarshal(jsondata, &data) - > precompiled, err := Compile("foo") - > if err != nil{ - > // ... handle the error - > } - > result, err := precompiled.Search(data) - result = "bar" -``` - -## More Resources - -The example above only show a small amount of what -a JMESPath expression can do. If you want to take a -tour of the language, the *best* place to go is the -[JMESPath Tutorial](http://jmespath.org/tutorial.html). - -One of the best things about JMESPath is that it is -implemented in many different programming languages including -python, ruby, php, lua, etc. To see a complete list of libraries, -check out the [JMESPath libraries page](http://jmespath.org/libraries.html). - -And finally, the full JMESPath specification can be found -on the [JMESPath site](http://jmespath.org/specification.html). diff --git a/vendor/github.com/jmespath/go-jmespath/api.go b/vendor/github.com/jmespath/go-jmespath/api.go deleted file mode 100644 index 010efe9..0000000 --- a/vendor/github.com/jmespath/go-jmespath/api.go +++ /dev/null @@ -1,49 +0,0 @@ -package jmespath - -import "strconv" - -// JMESPath is the representation of a compiled JMES path query. A JMESPath is -// safe for concurrent use by multiple goroutines. -type JMESPath struct { - ast ASTNode - intr *treeInterpreter -} - -// Compile parses a JMESPath expression and returns, if successful, a JMESPath -// object that can be used to match against data. -func Compile(expression string) (*JMESPath, error) { - parser := NewParser() - ast, err := parser.Parse(expression) - if err != nil { - return nil, err - } - jmespath := &JMESPath{ast: ast, intr: newInterpreter()} - return jmespath, nil -} - -// MustCompile is like Compile but panics if the expression cannot be parsed. -// It simplifies safe initialization of global variables holding compiled -// JMESPaths. -func MustCompile(expression string) *JMESPath { - jmespath, err := Compile(expression) - if err != nil { - panic(`jmespath: Compile(` + strconv.Quote(expression) + `): ` + err.Error()) - } - return jmespath -} - -// Search evaluates a JMESPath expression against input data and returns the result. -func (jp *JMESPath) Search(data interface{}) (interface{}, error) { - return jp.intr.Execute(jp.ast, data) -} - -// Search evaluates a JMESPath expression against input data and returns the result. -func Search(expression string, data interface{}) (interface{}, error) { - intr := newInterpreter() - parser := NewParser() - ast, err := parser.Parse(expression) - if err != nil { - return nil, err - } - return intr.Execute(ast, data) -} diff --git a/vendor/github.com/jmespath/go-jmespath/astnodetype_string.go b/vendor/github.com/jmespath/go-jmespath/astnodetype_string.go deleted file mode 100644 index 1cd2d23..0000000 --- a/vendor/github.com/jmespath/go-jmespath/astnodetype_string.go +++ /dev/null @@ -1,16 +0,0 @@ -// generated by stringer -type astNodeType; DO NOT EDIT - -package jmespath - -import "fmt" - -const _astNodeType_name = "ASTEmptyASTComparatorASTCurrentNodeASTExpRefASTFunctionExpressionASTFieldASTFilterProjectionASTFlattenASTIdentityASTIndexASTIndexExpressionASTKeyValPairASTLiteralASTMultiSelectHashASTMultiSelectListASTOrExpressionASTAndExpressionASTNotExpressionASTPipeASTProjectionASTSubexpressionASTSliceASTValueProjection" - -var _astNodeType_index = [...]uint16{0, 8, 21, 35, 44, 65, 73, 92, 102, 113, 121, 139, 152, 162, 180, 198, 213, 229, 245, 252, 265, 281, 289, 307} - -func (i astNodeType) String() string { - if i < 0 || i >= astNodeType(len(_astNodeType_index)-1) { - return fmt.Sprintf("astNodeType(%d)", i) - } - return _astNodeType_name[_astNodeType_index[i]:_astNodeType_index[i+1]] -} diff --git a/vendor/github.com/jmespath/go-jmespath/functions.go b/vendor/github.com/jmespath/go-jmespath/functions.go deleted file mode 100644 index 9b7cd89..0000000 --- a/vendor/github.com/jmespath/go-jmespath/functions.go +++ /dev/null @@ -1,842 +0,0 @@ -package jmespath - -import ( - "encoding/json" - "errors" - "fmt" - "math" - "reflect" - "sort" - "strconv" - "strings" - "unicode/utf8" -) - -type jpFunction func(arguments []interface{}) (interface{}, error) - -type jpType string - -const ( - jpUnknown jpType = "unknown" - jpNumber jpType = "number" - jpString jpType = "string" - jpArray jpType = "array" - jpObject jpType = "object" - jpArrayNumber jpType = "array[number]" - jpArrayString jpType = "array[string]" - jpExpref jpType = "expref" - jpAny jpType = "any" -) - -type functionEntry struct { - name string - arguments []argSpec - handler jpFunction - hasExpRef bool -} - -type argSpec struct { - types []jpType - variadic bool -} - -type byExprString struct { - intr *treeInterpreter - node ASTNode - items []interface{} - hasError bool -} - -func (a *byExprString) Len() int { - return len(a.items) -} -func (a *byExprString) Swap(i, j int) { - a.items[i], a.items[j] = a.items[j], a.items[i] -} -func (a *byExprString) Less(i, j int) bool { - first, err := a.intr.Execute(a.node, a.items[i]) - if err != nil { - a.hasError = true - // Return a dummy value. - return true - } - ith, ok := first.(string) - if !ok { - a.hasError = true - return true - } - second, err := a.intr.Execute(a.node, a.items[j]) - if err != nil { - a.hasError = true - // Return a dummy value. - return true - } - jth, ok := second.(string) - if !ok { - a.hasError = true - return true - } - return ith < jth -} - -type byExprFloat struct { - intr *treeInterpreter - node ASTNode - items []interface{} - hasError bool -} - -func (a *byExprFloat) Len() int { - return len(a.items) -} -func (a *byExprFloat) Swap(i, j int) { - a.items[i], a.items[j] = a.items[j], a.items[i] -} -func (a *byExprFloat) Less(i, j int) bool { - first, err := a.intr.Execute(a.node, a.items[i]) - if err != nil { - a.hasError = true - // Return a dummy value. - return true - } - ith, ok := first.(float64) - if !ok { - a.hasError = true - return true - } - second, err := a.intr.Execute(a.node, a.items[j]) - if err != nil { - a.hasError = true - // Return a dummy value. - return true - } - jth, ok := second.(float64) - if !ok { - a.hasError = true - return true - } - return ith < jth -} - -type functionCaller struct { - functionTable map[string]functionEntry -} - -func newFunctionCaller() *functionCaller { - caller := &functionCaller{} - caller.functionTable = map[string]functionEntry{ - "length": { - name: "length", - arguments: []argSpec{ - {types: []jpType{jpString, jpArray, jpObject}}, - }, - handler: jpfLength, - }, - "starts_with": { - name: "starts_with", - arguments: []argSpec{ - {types: []jpType{jpString}}, - {types: []jpType{jpString}}, - }, - handler: jpfStartsWith, - }, - "abs": { - name: "abs", - arguments: []argSpec{ - {types: []jpType{jpNumber}}, - }, - handler: jpfAbs, - }, - "avg": { - name: "avg", - arguments: []argSpec{ - {types: []jpType{jpArrayNumber}}, - }, - handler: jpfAvg, - }, - "ceil": { - name: "ceil", - arguments: []argSpec{ - {types: []jpType{jpNumber}}, - }, - handler: jpfCeil, - }, - "contains": { - name: "contains", - arguments: []argSpec{ - {types: []jpType{jpArray, jpString}}, - {types: []jpType{jpAny}}, - }, - handler: jpfContains, - }, - "ends_with": { - name: "ends_with", - arguments: []argSpec{ - {types: []jpType{jpString}}, - {types: []jpType{jpString}}, - }, - handler: jpfEndsWith, - }, - "floor": { - name: "floor", - arguments: []argSpec{ - {types: []jpType{jpNumber}}, - }, - handler: jpfFloor, - }, - "map": { - name: "amp", - arguments: []argSpec{ - {types: []jpType{jpExpref}}, - {types: []jpType{jpArray}}, - }, - handler: jpfMap, - hasExpRef: true, - }, - "max": { - name: "max", - arguments: []argSpec{ - {types: []jpType{jpArrayNumber, jpArrayString}}, - }, - handler: jpfMax, - }, - "merge": { - name: "merge", - arguments: []argSpec{ - {types: []jpType{jpObject}, variadic: true}, - }, - handler: jpfMerge, - }, - "max_by": { - name: "max_by", - arguments: []argSpec{ - {types: []jpType{jpArray}}, - {types: []jpType{jpExpref}}, - }, - handler: jpfMaxBy, - hasExpRef: true, - }, - "sum": { - name: "sum", - arguments: []argSpec{ - {types: []jpType{jpArrayNumber}}, - }, - handler: jpfSum, - }, - "min": { - name: "min", - arguments: []argSpec{ - {types: []jpType{jpArrayNumber, jpArrayString}}, - }, - handler: jpfMin, - }, - "min_by": { - name: "min_by", - arguments: []argSpec{ - {types: []jpType{jpArray}}, - {types: []jpType{jpExpref}}, - }, - handler: jpfMinBy, - hasExpRef: true, - }, - "type": { - name: "type", - arguments: []argSpec{ - {types: []jpType{jpAny}}, - }, - handler: jpfType, - }, - "keys": { - name: "keys", - arguments: []argSpec{ - {types: []jpType{jpObject}}, - }, - handler: jpfKeys, - }, - "values": { - name: "values", - arguments: []argSpec{ - {types: []jpType{jpObject}}, - }, - handler: jpfValues, - }, - "sort": { - name: "sort", - arguments: []argSpec{ - {types: []jpType{jpArrayString, jpArrayNumber}}, - }, - handler: jpfSort, - }, - "sort_by": { - name: "sort_by", - arguments: []argSpec{ - {types: []jpType{jpArray}}, - {types: []jpType{jpExpref}}, - }, - handler: jpfSortBy, - hasExpRef: true, - }, - "join": { - name: "join", - arguments: []argSpec{ - {types: []jpType{jpString}}, - {types: []jpType{jpArrayString}}, - }, - handler: jpfJoin, - }, - "reverse": { - name: "reverse", - arguments: []argSpec{ - {types: []jpType{jpArray, jpString}}, - }, - handler: jpfReverse, - }, - "to_array": { - name: "to_array", - arguments: []argSpec{ - {types: []jpType{jpAny}}, - }, - handler: jpfToArray, - }, - "to_string": { - name: "to_string", - arguments: []argSpec{ - {types: []jpType{jpAny}}, - }, - handler: jpfToString, - }, - "to_number": { - name: "to_number", - arguments: []argSpec{ - {types: []jpType{jpAny}}, - }, - handler: jpfToNumber, - }, - "not_null": { - name: "not_null", - arguments: []argSpec{ - {types: []jpType{jpAny}, variadic: true}, - }, - handler: jpfNotNull, - }, - } - return caller -} - -func (e *functionEntry) resolveArgs(arguments []interface{}) ([]interface{}, error) { - if len(e.arguments) == 0 { - return arguments, nil - } - if !e.arguments[len(e.arguments)-1].variadic { - if len(e.arguments) != len(arguments) { - return nil, errors.New("incorrect number of args") - } - for i, spec := range e.arguments { - userArg := arguments[i] - err := spec.typeCheck(userArg) - if err != nil { - return nil, err - } - } - return arguments, nil - } - if len(arguments) < len(e.arguments) { - return nil, errors.New("Invalid arity.") - } - return arguments, nil -} - -func (a *argSpec) typeCheck(arg interface{}) error { - for _, t := range a.types { - switch t { - case jpNumber: - if _, ok := arg.(float64); ok { - return nil - } - case jpString: - if _, ok := arg.(string); ok { - return nil - } - case jpArray: - if isSliceType(arg) { - return nil - } - case jpObject: - if _, ok := arg.(map[string]interface{}); ok { - return nil - } - case jpArrayNumber: - if _, ok := toArrayNum(arg); ok { - return nil - } - case jpArrayString: - if _, ok := toArrayStr(arg); ok { - return nil - } - case jpAny: - return nil - case jpExpref: - if _, ok := arg.(expRef); ok { - return nil - } - } - } - return fmt.Errorf("Invalid type for: %v, expected: %#v", arg, a.types) -} - -func (f *functionCaller) CallFunction(name string, arguments []interface{}, intr *treeInterpreter) (interface{}, error) { - entry, ok := f.functionTable[name] - if !ok { - return nil, errors.New("unknown function: " + name) - } - resolvedArgs, err := entry.resolveArgs(arguments) - if err != nil { - return nil, err - } - if entry.hasExpRef { - var extra []interface{} - extra = append(extra, intr) - resolvedArgs = append(extra, resolvedArgs...) - } - return entry.handler(resolvedArgs) -} - -func jpfAbs(arguments []interface{}) (interface{}, error) { - num := arguments[0].(float64) - return math.Abs(num), nil -} - -func jpfLength(arguments []interface{}) (interface{}, error) { - arg := arguments[0] - if c, ok := arg.(string); ok { - return float64(utf8.RuneCountInString(c)), nil - } else if isSliceType(arg) { - v := reflect.ValueOf(arg) - return float64(v.Len()), nil - } else if c, ok := arg.(map[string]interface{}); ok { - return float64(len(c)), nil - } - return nil, errors.New("could not compute length()") -} - -func jpfStartsWith(arguments []interface{}) (interface{}, error) { - search := arguments[0].(string) - prefix := arguments[1].(string) - return strings.HasPrefix(search, prefix), nil -} - -func jpfAvg(arguments []interface{}) (interface{}, error) { - // We've already type checked the value so we can safely use - // type assertions. - args := arguments[0].([]interface{}) - length := float64(len(args)) - numerator := 0.0 - for _, n := range args { - numerator += n.(float64) - } - return numerator / length, nil -} -func jpfCeil(arguments []interface{}) (interface{}, error) { - val := arguments[0].(float64) - return math.Ceil(val), nil -} -func jpfContains(arguments []interface{}) (interface{}, error) { - search := arguments[0] - el := arguments[1] - if searchStr, ok := search.(string); ok { - if elStr, ok := el.(string); ok { - return strings.Index(searchStr, elStr) != -1, nil - } - return false, nil - } - // Otherwise this is a generic contains for []interface{} - general := search.([]interface{}) - for _, item := range general { - if item == el { - return true, nil - } - } - return false, nil -} -func jpfEndsWith(arguments []interface{}) (interface{}, error) { - search := arguments[0].(string) - suffix := arguments[1].(string) - return strings.HasSuffix(search, suffix), nil -} -func jpfFloor(arguments []interface{}) (interface{}, error) { - val := arguments[0].(float64) - return math.Floor(val), nil -} -func jpfMap(arguments []interface{}) (interface{}, error) { - intr := arguments[0].(*treeInterpreter) - exp := arguments[1].(expRef) - node := exp.ref - arr := arguments[2].([]interface{}) - mapped := make([]interface{}, 0, len(arr)) - for _, value := range arr { - current, err := intr.Execute(node, value) - if err != nil { - return nil, err - } - mapped = append(mapped, current) - } - return mapped, nil -} -func jpfMax(arguments []interface{}) (interface{}, error) { - if items, ok := toArrayNum(arguments[0]); ok { - if len(items) == 0 { - return nil, nil - } - if len(items) == 1 { - return items[0], nil - } - best := items[0] - for _, item := range items[1:] { - if item > best { - best = item - } - } - return best, nil - } - // Otherwise we're dealing with a max() of strings. - items, _ := toArrayStr(arguments[0]) - if len(items) == 0 { - return nil, nil - } - if len(items) == 1 { - return items[0], nil - } - best := items[0] - for _, item := range items[1:] { - if item > best { - best = item - } - } - return best, nil -} -func jpfMerge(arguments []interface{}) (interface{}, error) { - final := make(map[string]interface{}) - for _, m := range arguments { - mapped := m.(map[string]interface{}) - for key, value := range mapped { - final[key] = value - } - } - return final, nil -} -func jpfMaxBy(arguments []interface{}) (interface{}, error) { - intr := arguments[0].(*treeInterpreter) - arr := arguments[1].([]interface{}) - exp := arguments[2].(expRef) - node := exp.ref - if len(arr) == 0 { - return nil, nil - } else if len(arr) == 1 { - return arr[0], nil - } - start, err := intr.Execute(node, arr[0]) - if err != nil { - return nil, err - } - switch t := start.(type) { - case float64: - bestVal := t - bestItem := arr[0] - for _, item := range arr[1:] { - result, err := intr.Execute(node, item) - if err != nil { - return nil, err - } - current, ok := result.(float64) - if !ok { - return nil, errors.New("invalid type, must be number") - } - if current > bestVal { - bestVal = current - bestItem = item - } - } - return bestItem, nil - case string: - bestVal := t - bestItem := arr[0] - for _, item := range arr[1:] { - result, err := intr.Execute(node, item) - if err != nil { - return nil, err - } - current, ok := result.(string) - if !ok { - return nil, errors.New("invalid type, must be string") - } - if current > bestVal { - bestVal = current - bestItem = item - } - } - return bestItem, nil - default: - return nil, errors.New("invalid type, must be number of string") - } -} -func jpfSum(arguments []interface{}) (interface{}, error) { - items, _ := toArrayNum(arguments[0]) - sum := 0.0 - for _, item := range items { - sum += item - } - return sum, nil -} - -func jpfMin(arguments []interface{}) (interface{}, error) { - if items, ok := toArrayNum(arguments[0]); ok { - if len(items) == 0 { - return nil, nil - } - if len(items) == 1 { - return items[0], nil - } - best := items[0] - for _, item := range items[1:] { - if item < best { - best = item - } - } - return best, nil - } - items, _ := toArrayStr(arguments[0]) - if len(items) == 0 { - return nil, nil - } - if len(items) == 1 { - return items[0], nil - } - best := items[0] - for _, item := range items[1:] { - if item < best { - best = item - } - } - return best, nil -} - -func jpfMinBy(arguments []interface{}) (interface{}, error) { - intr := arguments[0].(*treeInterpreter) - arr := arguments[1].([]interface{}) - exp := arguments[2].(expRef) - node := exp.ref - if len(arr) == 0 { - return nil, nil - } else if len(arr) == 1 { - return arr[0], nil - } - start, err := intr.Execute(node, arr[0]) - if err != nil { - return nil, err - } - if t, ok := start.(float64); ok { - bestVal := t - bestItem := arr[0] - for _, item := range arr[1:] { - result, err := intr.Execute(node, item) - if err != nil { - return nil, err - } - current, ok := result.(float64) - if !ok { - return nil, errors.New("invalid type, must be number") - } - if current < bestVal { - bestVal = current - bestItem = item - } - } - return bestItem, nil - } else if t, ok := start.(string); ok { - bestVal := t - bestItem := arr[0] - for _, item := range arr[1:] { - result, err := intr.Execute(node, item) - if err != nil { - return nil, err - } - current, ok := result.(string) - if !ok { - return nil, errors.New("invalid type, must be string") - } - if current < bestVal { - bestVal = current - bestItem = item - } - } - return bestItem, nil - } else { - return nil, errors.New("invalid type, must be number of string") - } -} -func jpfType(arguments []interface{}) (interface{}, error) { - arg := arguments[0] - if _, ok := arg.(float64); ok { - return "number", nil - } - if _, ok := arg.(string); ok { - return "string", nil - } - if _, ok := arg.([]interface{}); ok { - return "array", nil - } - if _, ok := arg.(map[string]interface{}); ok { - return "object", nil - } - if arg == nil { - return "null", nil - } - if arg == true || arg == false { - return "boolean", nil - } - return nil, errors.New("unknown type") -} -func jpfKeys(arguments []interface{}) (interface{}, error) { - arg := arguments[0].(map[string]interface{}) - collected := make([]interface{}, 0, len(arg)) - for key := range arg { - collected = append(collected, key) - } - return collected, nil -} -func jpfValues(arguments []interface{}) (interface{}, error) { - arg := arguments[0].(map[string]interface{}) - collected := make([]interface{}, 0, len(arg)) - for _, value := range arg { - collected = append(collected, value) - } - return collected, nil -} -func jpfSort(arguments []interface{}) (interface{}, error) { - if items, ok := toArrayNum(arguments[0]); ok { - d := sort.Float64Slice(items) - sort.Stable(d) - final := make([]interface{}, len(d)) - for i, val := range d { - final[i] = val - } - return final, nil - } - // Otherwise we're dealing with sort()'ing strings. - items, _ := toArrayStr(arguments[0]) - d := sort.StringSlice(items) - sort.Stable(d) - final := make([]interface{}, len(d)) - for i, val := range d { - final[i] = val - } - return final, nil -} -func jpfSortBy(arguments []interface{}) (interface{}, error) { - intr := arguments[0].(*treeInterpreter) - arr := arguments[1].([]interface{}) - exp := arguments[2].(expRef) - node := exp.ref - if len(arr) == 0 { - return arr, nil - } else if len(arr) == 1 { - return arr, nil - } - start, err := intr.Execute(node, arr[0]) - if err != nil { - return nil, err - } - if _, ok := start.(float64); ok { - sortable := &byExprFloat{intr, node, arr, false} - sort.Stable(sortable) - if sortable.hasError { - return nil, errors.New("error in sort_by comparison") - } - return arr, nil - } else if _, ok := start.(string); ok { - sortable := &byExprString{intr, node, arr, false} - sort.Stable(sortable) - if sortable.hasError { - return nil, errors.New("error in sort_by comparison") - } - return arr, nil - } else { - return nil, errors.New("invalid type, must be number of string") - } -} -func jpfJoin(arguments []interface{}) (interface{}, error) { - sep := arguments[0].(string) - // We can't just do arguments[1].([]string), we have to - // manually convert each item to a string. - arrayStr := []string{} - for _, item := range arguments[1].([]interface{}) { - arrayStr = append(arrayStr, item.(string)) - } - return strings.Join(arrayStr, sep), nil -} -func jpfReverse(arguments []interface{}) (interface{}, error) { - if s, ok := arguments[0].(string); ok { - r := []rune(s) - for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 { - r[i], r[j] = r[j], r[i] - } - return string(r), nil - } - items := arguments[0].([]interface{}) - length := len(items) - reversed := make([]interface{}, length) - for i, item := range items { - reversed[length-(i+1)] = item - } - return reversed, nil -} -func jpfToArray(arguments []interface{}) (interface{}, error) { - if _, ok := arguments[0].([]interface{}); ok { - return arguments[0], nil - } - return arguments[:1:1], nil -} -func jpfToString(arguments []interface{}) (interface{}, error) { - if v, ok := arguments[0].(string); ok { - return v, nil - } - result, err := json.Marshal(arguments[0]) - if err != nil { - return nil, err - } - return string(result), nil -} -func jpfToNumber(arguments []interface{}) (interface{}, error) { - arg := arguments[0] - if v, ok := arg.(float64); ok { - return v, nil - } - if v, ok := arg.(string); ok { - conv, err := strconv.ParseFloat(v, 64) - if err != nil { - return nil, nil - } - return conv, nil - } - if _, ok := arg.([]interface{}); ok { - return nil, nil - } - if _, ok := arg.(map[string]interface{}); ok { - return nil, nil - } - if arg == nil { - return nil, nil - } - if arg == true || arg == false { - return nil, nil - } - return nil, errors.New("unknown type") -} -func jpfNotNull(arguments []interface{}) (interface{}, error) { - for _, arg := range arguments { - if arg != nil { - return arg, nil - } - } - return nil, nil -} diff --git a/vendor/github.com/jmespath/go-jmespath/go.mod b/vendor/github.com/jmespath/go-jmespath/go.mod deleted file mode 100644 index 4d448e8..0000000 --- a/vendor/github.com/jmespath/go-jmespath/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module github.com/jmespath/go-jmespath - -go 1.14 - -require github.com/jmespath/go-jmespath/internal/testify v1.5.1 diff --git a/vendor/github.com/jmespath/go-jmespath/go.sum b/vendor/github.com/jmespath/go-jmespath/go.sum deleted file mode 100644 index d2db411..0000000 --- a/vendor/github.com/jmespath/go-jmespath/go.sum +++ /dev/null @@ -1,11 +0,0 @@ -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/jmespath/go-jmespath/interpreter.go b/vendor/github.com/jmespath/go-jmespath/interpreter.go deleted file mode 100644 index 13c7460..0000000 --- a/vendor/github.com/jmespath/go-jmespath/interpreter.go +++ /dev/null @@ -1,418 +0,0 @@ -package jmespath - -import ( - "errors" - "reflect" - "unicode" - "unicode/utf8" -) - -/* This is a tree based interpreter. It walks the AST and directly - interprets the AST to search through a JSON document. -*/ - -type treeInterpreter struct { - fCall *functionCaller -} - -func newInterpreter() *treeInterpreter { - interpreter := treeInterpreter{} - interpreter.fCall = newFunctionCaller() - return &interpreter -} - -type expRef struct { - ref ASTNode -} - -// Execute takes an ASTNode and input data and interprets the AST directly. -// It will produce the result of applying the JMESPath expression associated -// with the ASTNode to the input data "value". -func (intr *treeInterpreter) Execute(node ASTNode, value interface{}) (interface{}, error) { - switch node.nodeType { - case ASTComparator: - left, err := intr.Execute(node.children[0], value) - if err != nil { - return nil, err - } - right, err := intr.Execute(node.children[1], value) - if err != nil { - return nil, err - } - switch node.value { - case tEQ: - return objsEqual(left, right), nil - case tNE: - return !objsEqual(left, right), nil - } - leftNum, ok := left.(float64) - if !ok { - return nil, nil - } - rightNum, ok := right.(float64) - if !ok { - return nil, nil - } - switch node.value { - case tGT: - return leftNum > rightNum, nil - case tGTE: - return leftNum >= rightNum, nil - case tLT: - return leftNum < rightNum, nil - case tLTE: - return leftNum <= rightNum, nil - } - case ASTExpRef: - return expRef{ref: node.children[0]}, nil - case ASTFunctionExpression: - resolvedArgs := []interface{}{} - for _, arg := range node.children { - current, err := intr.Execute(arg, value) - if err != nil { - return nil, err - } - resolvedArgs = append(resolvedArgs, current) - } - return intr.fCall.CallFunction(node.value.(string), resolvedArgs, intr) - case ASTField: - if m, ok := value.(map[string]interface{}); ok { - key := node.value.(string) - return m[key], nil - } - return intr.fieldFromStruct(node.value.(string), value) - case ASTFilterProjection: - left, err := intr.Execute(node.children[0], value) - if err != nil { - return nil, nil - } - sliceType, ok := left.([]interface{}) - if !ok { - if isSliceType(left) { - return intr.filterProjectionWithReflection(node, left) - } - return nil, nil - } - compareNode := node.children[2] - collected := []interface{}{} - for _, element := range sliceType { - result, err := intr.Execute(compareNode, element) - if err != nil { - return nil, err - } - if !isFalse(result) { - current, err := intr.Execute(node.children[1], element) - if err != nil { - return nil, err - } - if current != nil { - collected = append(collected, current) - } - } - } - return collected, nil - case ASTFlatten: - left, err := intr.Execute(node.children[0], value) - if err != nil { - return nil, nil - } - sliceType, ok := left.([]interface{}) - if !ok { - // If we can't type convert to []interface{}, there's - // a chance this could still work via reflection if we're - // dealing with user provided types. - if isSliceType(left) { - return intr.flattenWithReflection(left) - } - return nil, nil - } - flattened := []interface{}{} - for _, element := range sliceType { - if elementSlice, ok := element.([]interface{}); ok { - flattened = append(flattened, elementSlice...) - } else if isSliceType(element) { - reflectFlat := []interface{}{} - v := reflect.ValueOf(element) - for i := 0; i < v.Len(); i++ { - reflectFlat = append(reflectFlat, v.Index(i).Interface()) - } - flattened = append(flattened, reflectFlat...) - } else { - flattened = append(flattened, element) - } - } - return flattened, nil - case ASTIdentity, ASTCurrentNode: - return value, nil - case ASTIndex: - if sliceType, ok := value.([]interface{}); ok { - index := node.value.(int) - if index < 0 { - index += len(sliceType) - } - if index < len(sliceType) && index >= 0 { - return sliceType[index], nil - } - return nil, nil - } - // Otherwise try via reflection. - rv := reflect.ValueOf(value) - if rv.Kind() == reflect.Slice { - index := node.value.(int) - if index < 0 { - index += rv.Len() - } - if index < rv.Len() && index >= 0 { - v := rv.Index(index) - return v.Interface(), nil - } - } - return nil, nil - case ASTKeyValPair: - return intr.Execute(node.children[0], value) - case ASTLiteral: - return node.value, nil - case ASTMultiSelectHash: - if value == nil { - return nil, nil - } - collected := make(map[string]interface{}) - for _, child := range node.children { - current, err := intr.Execute(child, value) - if err != nil { - return nil, err - } - key := child.value.(string) - collected[key] = current - } - return collected, nil - case ASTMultiSelectList: - if value == nil { - return nil, nil - } - collected := []interface{}{} - for _, child := range node.children { - current, err := intr.Execute(child, value) - if err != nil { - return nil, err - } - collected = append(collected, current) - } - return collected, nil - case ASTOrExpression: - matched, err := intr.Execute(node.children[0], value) - if err != nil { - return nil, err - } - if isFalse(matched) { - matched, err = intr.Execute(node.children[1], value) - if err != nil { - return nil, err - } - } - return matched, nil - case ASTAndExpression: - matched, err := intr.Execute(node.children[0], value) - if err != nil { - return nil, err - } - if isFalse(matched) { - return matched, nil - } - return intr.Execute(node.children[1], value) - case ASTNotExpression: - matched, err := intr.Execute(node.children[0], value) - if err != nil { - return nil, err - } - if isFalse(matched) { - return true, nil - } - return false, nil - case ASTPipe: - result := value - var err error - for _, child := range node.children { - result, err = intr.Execute(child, result) - if err != nil { - return nil, err - } - } - return result, nil - case ASTProjection: - left, err := intr.Execute(node.children[0], value) - if err != nil { - return nil, err - } - sliceType, ok := left.([]interface{}) - if !ok { - if isSliceType(left) { - return intr.projectWithReflection(node, left) - } - return nil, nil - } - collected := []interface{}{} - var current interface{} - for _, element := range sliceType { - current, err = intr.Execute(node.children[1], element) - if err != nil { - return nil, err - } - if current != nil { - collected = append(collected, current) - } - } - return collected, nil - case ASTSubexpression, ASTIndexExpression: - left, err := intr.Execute(node.children[0], value) - if err != nil { - return nil, err - } - return intr.Execute(node.children[1], left) - case ASTSlice: - sliceType, ok := value.([]interface{}) - if !ok { - if isSliceType(value) { - return intr.sliceWithReflection(node, value) - } - return nil, nil - } - parts := node.value.([]*int) - sliceParams := make([]sliceParam, 3) - for i, part := range parts { - if part != nil { - sliceParams[i].Specified = true - sliceParams[i].N = *part - } - } - return slice(sliceType, sliceParams) - case ASTValueProjection: - left, err := intr.Execute(node.children[0], value) - if err != nil { - return nil, nil - } - mapType, ok := left.(map[string]interface{}) - if !ok { - return nil, nil - } - values := make([]interface{}, len(mapType)) - for _, value := range mapType { - values = append(values, value) - } - collected := []interface{}{} - for _, element := range values { - current, err := intr.Execute(node.children[1], element) - if err != nil { - return nil, err - } - if current != nil { - collected = append(collected, current) - } - } - return collected, nil - } - return nil, errors.New("Unknown AST node: " + node.nodeType.String()) -} - -func (intr *treeInterpreter) fieldFromStruct(key string, value interface{}) (interface{}, error) { - rv := reflect.ValueOf(value) - first, n := utf8.DecodeRuneInString(key) - fieldName := string(unicode.ToUpper(first)) + key[n:] - if rv.Kind() == reflect.Struct { - v := rv.FieldByName(fieldName) - if !v.IsValid() { - return nil, nil - } - return v.Interface(), nil - } else if rv.Kind() == reflect.Ptr { - // Handle multiple levels of indirection? - if rv.IsNil() { - return nil, nil - } - rv = rv.Elem() - v := rv.FieldByName(fieldName) - if !v.IsValid() { - return nil, nil - } - return v.Interface(), nil - } - return nil, nil -} - -func (intr *treeInterpreter) flattenWithReflection(value interface{}) (interface{}, error) { - v := reflect.ValueOf(value) - flattened := []interface{}{} - for i := 0; i < v.Len(); i++ { - element := v.Index(i).Interface() - if reflect.TypeOf(element).Kind() == reflect.Slice { - // Then insert the contents of the element - // slice into the flattened slice, - // i.e flattened = append(flattened, mySlice...) - elementV := reflect.ValueOf(element) - for j := 0; j < elementV.Len(); j++ { - flattened = append( - flattened, elementV.Index(j).Interface()) - } - } else { - flattened = append(flattened, element) - } - } - return flattened, nil -} - -func (intr *treeInterpreter) sliceWithReflection(node ASTNode, value interface{}) (interface{}, error) { - v := reflect.ValueOf(value) - parts := node.value.([]*int) - sliceParams := make([]sliceParam, 3) - for i, part := range parts { - if part != nil { - sliceParams[i].Specified = true - sliceParams[i].N = *part - } - } - final := []interface{}{} - for i := 0; i < v.Len(); i++ { - element := v.Index(i).Interface() - final = append(final, element) - } - return slice(final, sliceParams) -} - -func (intr *treeInterpreter) filterProjectionWithReflection(node ASTNode, value interface{}) (interface{}, error) { - compareNode := node.children[2] - collected := []interface{}{} - v := reflect.ValueOf(value) - for i := 0; i < v.Len(); i++ { - element := v.Index(i).Interface() - result, err := intr.Execute(compareNode, element) - if err != nil { - return nil, err - } - if !isFalse(result) { - current, err := intr.Execute(node.children[1], element) - if err != nil { - return nil, err - } - if current != nil { - collected = append(collected, current) - } - } - } - return collected, nil -} - -func (intr *treeInterpreter) projectWithReflection(node ASTNode, value interface{}) (interface{}, error) { - collected := []interface{}{} - v := reflect.ValueOf(value) - for i := 0; i < v.Len(); i++ { - element := v.Index(i).Interface() - result, err := intr.Execute(node.children[1], element) - if err != nil { - return nil, err - } - if result != nil { - collected = append(collected, result) - } - } - return collected, nil -} diff --git a/vendor/github.com/jmespath/go-jmespath/lexer.go b/vendor/github.com/jmespath/go-jmespath/lexer.go deleted file mode 100644 index 817900c..0000000 --- a/vendor/github.com/jmespath/go-jmespath/lexer.go +++ /dev/null @@ -1,420 +0,0 @@ -package jmespath - -import ( - "bytes" - "encoding/json" - "fmt" - "strconv" - "strings" - "unicode/utf8" -) - -type token struct { - tokenType tokType - value string - position int - length int -} - -type tokType int - -const eof = -1 - -// Lexer contains information about the expression being tokenized. -type Lexer struct { - expression string // The expression provided by the user. - currentPos int // The current position in the string. - lastWidth int // The width of the current rune. This - buf bytes.Buffer // Internal buffer used for building up values. -} - -// SyntaxError is the main error used whenever a lexing or parsing error occurs. -type SyntaxError struct { - msg string // Error message displayed to user - Expression string // Expression that generated a SyntaxError - Offset int // The location in the string where the error occurred -} - -func (e SyntaxError) Error() string { - // In the future, it would be good to underline the specific - // location where the error occurred. - return "SyntaxError: " + e.msg -} - -// HighlightLocation will show where the syntax error occurred. -// It will place a "^" character on a line below the expression -// at the point where the syntax error occurred. -func (e SyntaxError) HighlightLocation() string { - return e.Expression + "\n" + strings.Repeat(" ", e.Offset) + "^" -} - -//go:generate stringer -type=tokType -const ( - tUnknown tokType = iota - tStar - tDot - tFilter - tFlatten - tLparen - tRparen - tLbracket - tRbracket - tLbrace - tRbrace - tOr - tPipe - tNumber - tUnquotedIdentifier - tQuotedIdentifier - tComma - tColon - tLT - tLTE - tGT - tGTE - tEQ - tNE - tJSONLiteral - tStringLiteral - tCurrent - tExpref - tAnd - tNot - tEOF -) - -var basicTokens = map[rune]tokType{ - '.': tDot, - '*': tStar, - ',': tComma, - ':': tColon, - '{': tLbrace, - '}': tRbrace, - ']': tRbracket, // tLbracket not included because it could be "[]" - '(': tLparen, - ')': tRparen, - '@': tCurrent, -} - -// Bit mask for [a-zA-Z_] shifted down 64 bits to fit in a single uint64. -// When using this bitmask just be sure to shift the rune down 64 bits -// before checking against identifierStartBits. -const identifierStartBits uint64 = 576460745995190270 - -// Bit mask for [a-zA-Z0-9], 128 bits -> 2 uint64s. -var identifierTrailingBits = [2]uint64{287948901175001088, 576460745995190270} - -var whiteSpace = map[rune]bool{ - ' ': true, '\t': true, '\n': true, '\r': true, -} - -func (t token) String() string { - return fmt.Sprintf("Token{%+v, %s, %d, %d}", - t.tokenType, t.value, t.position, t.length) -} - -// NewLexer creates a new JMESPath lexer. -func NewLexer() *Lexer { - lexer := Lexer{} - return &lexer -} - -func (lexer *Lexer) next() rune { - if lexer.currentPos >= len(lexer.expression) { - lexer.lastWidth = 0 - return eof - } - r, w := utf8.DecodeRuneInString(lexer.expression[lexer.currentPos:]) - lexer.lastWidth = w - lexer.currentPos += w - return r -} - -func (lexer *Lexer) back() { - lexer.currentPos -= lexer.lastWidth -} - -func (lexer *Lexer) peek() rune { - t := lexer.next() - lexer.back() - return t -} - -// tokenize takes an expression and returns corresponding tokens. -func (lexer *Lexer) tokenize(expression string) ([]token, error) { - var tokens []token - lexer.expression = expression - lexer.currentPos = 0 - lexer.lastWidth = 0 -loop: - for { - r := lexer.next() - if identifierStartBits&(1<<(uint64(r)-64)) > 0 { - t := lexer.consumeUnquotedIdentifier() - tokens = append(tokens, t) - } else if val, ok := basicTokens[r]; ok { - // Basic single char token. - t := token{ - tokenType: val, - value: string(r), - position: lexer.currentPos - lexer.lastWidth, - length: 1, - } - tokens = append(tokens, t) - } else if r == '-' || (r >= '0' && r <= '9') { - t := lexer.consumeNumber() - tokens = append(tokens, t) - } else if r == '[' { - t := lexer.consumeLBracket() - tokens = append(tokens, t) - } else if r == '"' { - t, err := lexer.consumeQuotedIdentifier() - if err != nil { - return tokens, err - } - tokens = append(tokens, t) - } else if r == '\'' { - t, err := lexer.consumeRawStringLiteral() - if err != nil { - return tokens, err - } - tokens = append(tokens, t) - } else if r == '`' { - t, err := lexer.consumeLiteral() - if err != nil { - return tokens, err - } - tokens = append(tokens, t) - } else if r == '|' { - t := lexer.matchOrElse(r, '|', tOr, tPipe) - tokens = append(tokens, t) - } else if r == '<' { - t := lexer.matchOrElse(r, '=', tLTE, tLT) - tokens = append(tokens, t) - } else if r == '>' { - t := lexer.matchOrElse(r, '=', tGTE, tGT) - tokens = append(tokens, t) - } else if r == '!' { - t := lexer.matchOrElse(r, '=', tNE, tNot) - tokens = append(tokens, t) - } else if r == '=' { - t := lexer.matchOrElse(r, '=', tEQ, tUnknown) - tokens = append(tokens, t) - } else if r == '&' { - t := lexer.matchOrElse(r, '&', tAnd, tExpref) - tokens = append(tokens, t) - } else if r == eof { - break loop - } else if _, ok := whiteSpace[r]; ok { - // Ignore whitespace - } else { - return tokens, lexer.syntaxError(fmt.Sprintf("Unknown char: %s", strconv.QuoteRuneToASCII(r))) - } - } - tokens = append(tokens, token{tEOF, "", len(lexer.expression), 0}) - return tokens, nil -} - -// Consume characters until the ending rune "r" is reached. -// If the end of the expression is reached before seeing the -// terminating rune "r", then an error is returned. -// If no error occurs then the matching substring is returned. -// The returned string will not include the ending rune. -func (lexer *Lexer) consumeUntil(end rune) (string, error) { - start := lexer.currentPos - current := lexer.next() - for current != end && current != eof { - if current == '\\' && lexer.peek() != eof { - lexer.next() - } - current = lexer.next() - } - if lexer.lastWidth == 0 { - // Then we hit an EOF so we never reached the closing - // delimiter. - return "", SyntaxError{ - msg: "Unclosed delimiter: " + string(end), - Expression: lexer.expression, - Offset: len(lexer.expression), - } - } - return lexer.expression[start : lexer.currentPos-lexer.lastWidth], nil -} - -func (lexer *Lexer) consumeLiteral() (token, error) { - start := lexer.currentPos - value, err := lexer.consumeUntil('`') - if err != nil { - return token{}, err - } - value = strings.Replace(value, "\\`", "`", -1) - return token{ - tokenType: tJSONLiteral, - value: value, - position: start, - length: len(value), - }, nil -} - -func (lexer *Lexer) consumeRawStringLiteral() (token, error) { - start := lexer.currentPos - currentIndex := start - current := lexer.next() - for current != '\'' && lexer.peek() != eof { - if current == '\\' && lexer.peek() == '\'' { - chunk := lexer.expression[currentIndex : lexer.currentPos-1] - lexer.buf.WriteString(chunk) - lexer.buf.WriteString("'") - lexer.next() - currentIndex = lexer.currentPos - } - current = lexer.next() - } - if lexer.lastWidth == 0 { - // Then we hit an EOF so we never reached the closing - // delimiter. - return token{}, SyntaxError{ - msg: "Unclosed delimiter: '", - Expression: lexer.expression, - Offset: len(lexer.expression), - } - } - if currentIndex < lexer.currentPos { - lexer.buf.WriteString(lexer.expression[currentIndex : lexer.currentPos-1]) - } - value := lexer.buf.String() - // Reset the buffer so it can reused again. - lexer.buf.Reset() - return token{ - tokenType: tStringLiteral, - value: value, - position: start, - length: len(value), - }, nil -} - -func (lexer *Lexer) syntaxError(msg string) SyntaxError { - return SyntaxError{ - msg: msg, - Expression: lexer.expression, - Offset: lexer.currentPos - 1, - } -} - -// Checks for a two char token, otherwise matches a single character -// token. This is used whenever a two char token overlaps a single -// char token, e.g. "||" -> tPipe, "|" -> tOr. -func (lexer *Lexer) matchOrElse(first rune, second rune, matchedType tokType, singleCharType tokType) token { - start := lexer.currentPos - lexer.lastWidth - nextRune := lexer.next() - var t token - if nextRune == second { - t = token{ - tokenType: matchedType, - value: string(first) + string(second), - position: start, - length: 2, - } - } else { - lexer.back() - t = token{ - tokenType: singleCharType, - value: string(first), - position: start, - length: 1, - } - } - return t -} - -func (lexer *Lexer) consumeLBracket() token { - // There's three options here: - // 1. A filter expression "[?" - // 2. A flatten operator "[]" - // 3. A bare rbracket "[" - start := lexer.currentPos - lexer.lastWidth - nextRune := lexer.next() - var t token - if nextRune == '?' { - t = token{ - tokenType: tFilter, - value: "[?", - position: start, - length: 2, - } - } else if nextRune == ']' { - t = token{ - tokenType: tFlatten, - value: "[]", - position: start, - length: 2, - } - } else { - t = token{ - tokenType: tLbracket, - value: "[", - position: start, - length: 1, - } - lexer.back() - } - return t -} - -func (lexer *Lexer) consumeQuotedIdentifier() (token, error) { - start := lexer.currentPos - value, err := lexer.consumeUntil('"') - if err != nil { - return token{}, err - } - var decoded string - asJSON := []byte("\"" + value + "\"") - if err := json.Unmarshal([]byte(asJSON), &decoded); err != nil { - return token{}, err - } - return token{ - tokenType: tQuotedIdentifier, - value: decoded, - position: start - 1, - length: len(decoded), - }, nil -} - -func (lexer *Lexer) consumeUnquotedIdentifier() token { - // Consume runes until we reach the end of an unquoted - // identifier. - start := lexer.currentPos - lexer.lastWidth - for { - r := lexer.next() - if r < 0 || r > 128 || identifierTrailingBits[uint64(r)/64]&(1<<(uint64(r)%64)) == 0 { - lexer.back() - break - } - } - value := lexer.expression[start:lexer.currentPos] - return token{ - tokenType: tUnquotedIdentifier, - value: value, - position: start, - length: lexer.currentPos - start, - } -} - -func (lexer *Lexer) consumeNumber() token { - // Consume runes until we reach something that's not a number. - start := lexer.currentPos - lexer.lastWidth - for { - r := lexer.next() - if r < '0' || r > '9' { - lexer.back() - break - } - } - value := lexer.expression[start:lexer.currentPos] - return token{ - tokenType: tNumber, - value: value, - position: start, - length: lexer.currentPos - start, - } -} diff --git a/vendor/github.com/jmespath/go-jmespath/parser.go b/vendor/github.com/jmespath/go-jmespath/parser.go deleted file mode 100644 index 4abc303..0000000 --- a/vendor/github.com/jmespath/go-jmespath/parser.go +++ /dev/null @@ -1,603 +0,0 @@ -package jmespath - -import ( - "encoding/json" - "fmt" - "strconv" - "strings" -) - -type astNodeType int - -//go:generate stringer -type astNodeType -const ( - ASTEmpty astNodeType = iota - ASTComparator - ASTCurrentNode - ASTExpRef - ASTFunctionExpression - ASTField - ASTFilterProjection - ASTFlatten - ASTIdentity - ASTIndex - ASTIndexExpression - ASTKeyValPair - ASTLiteral - ASTMultiSelectHash - ASTMultiSelectList - ASTOrExpression - ASTAndExpression - ASTNotExpression - ASTPipe - ASTProjection - ASTSubexpression - ASTSlice - ASTValueProjection -) - -// ASTNode represents the abstract syntax tree of a JMESPath expression. -type ASTNode struct { - nodeType astNodeType - value interface{} - children []ASTNode -} - -func (node ASTNode) String() string { - return node.PrettyPrint(0) -} - -// PrettyPrint will pretty print the parsed AST. -// The AST is an implementation detail and this pretty print -// function is provided as a convenience method to help with -// debugging. You should not rely on its output as the internal -// structure of the AST may change at any time. -func (node ASTNode) PrettyPrint(indent int) string { - spaces := strings.Repeat(" ", indent) - output := fmt.Sprintf("%s%s {\n", spaces, node.nodeType) - nextIndent := indent + 2 - if node.value != nil { - if converted, ok := node.value.(fmt.Stringer); ok { - // Account for things like comparator nodes - // that are enums with a String() method. - output += fmt.Sprintf("%svalue: %s\n", strings.Repeat(" ", nextIndent), converted.String()) - } else { - output += fmt.Sprintf("%svalue: %#v\n", strings.Repeat(" ", nextIndent), node.value) - } - } - lastIndex := len(node.children) - if lastIndex > 0 { - output += fmt.Sprintf("%schildren: {\n", strings.Repeat(" ", nextIndent)) - childIndent := nextIndent + 2 - for _, elem := range node.children { - output += elem.PrettyPrint(childIndent) - } - } - output += fmt.Sprintf("%s}\n", spaces) - return output -} - -var bindingPowers = map[tokType]int{ - tEOF: 0, - tUnquotedIdentifier: 0, - tQuotedIdentifier: 0, - tRbracket: 0, - tRparen: 0, - tComma: 0, - tRbrace: 0, - tNumber: 0, - tCurrent: 0, - tExpref: 0, - tColon: 0, - tPipe: 1, - tOr: 2, - tAnd: 3, - tEQ: 5, - tLT: 5, - tLTE: 5, - tGT: 5, - tGTE: 5, - tNE: 5, - tFlatten: 9, - tStar: 20, - tFilter: 21, - tDot: 40, - tNot: 45, - tLbrace: 50, - tLbracket: 55, - tLparen: 60, -} - -// Parser holds state about the current expression being parsed. -type Parser struct { - expression string - tokens []token - index int -} - -// NewParser creates a new JMESPath parser. -func NewParser() *Parser { - p := Parser{} - return &p -} - -// Parse will compile a JMESPath expression. -func (p *Parser) Parse(expression string) (ASTNode, error) { - lexer := NewLexer() - p.expression = expression - p.index = 0 - tokens, err := lexer.tokenize(expression) - if err != nil { - return ASTNode{}, err - } - p.tokens = tokens - parsed, err := p.parseExpression(0) - if err != nil { - return ASTNode{}, err - } - if p.current() != tEOF { - return ASTNode{}, p.syntaxError(fmt.Sprintf( - "Unexpected token at the end of the expression: %s", p.current())) - } - return parsed, nil -} - -func (p *Parser) parseExpression(bindingPower int) (ASTNode, error) { - var err error - leftToken := p.lookaheadToken(0) - p.advance() - leftNode, err := p.nud(leftToken) - if err != nil { - return ASTNode{}, err - } - currentToken := p.current() - for bindingPower < bindingPowers[currentToken] { - p.advance() - leftNode, err = p.led(currentToken, leftNode) - if err != nil { - return ASTNode{}, err - } - currentToken = p.current() - } - return leftNode, nil -} - -func (p *Parser) parseIndexExpression() (ASTNode, error) { - if p.lookahead(0) == tColon || p.lookahead(1) == tColon { - return p.parseSliceExpression() - } - indexStr := p.lookaheadToken(0).value - parsedInt, err := strconv.Atoi(indexStr) - if err != nil { - return ASTNode{}, err - } - indexNode := ASTNode{nodeType: ASTIndex, value: parsedInt} - p.advance() - if err := p.match(tRbracket); err != nil { - return ASTNode{}, err - } - return indexNode, nil -} - -func (p *Parser) parseSliceExpression() (ASTNode, error) { - parts := []*int{nil, nil, nil} - index := 0 - current := p.current() - for current != tRbracket && index < 3 { - if current == tColon { - index++ - p.advance() - } else if current == tNumber { - parsedInt, err := strconv.Atoi(p.lookaheadToken(0).value) - if err != nil { - return ASTNode{}, err - } - parts[index] = &parsedInt - p.advance() - } else { - return ASTNode{}, p.syntaxError( - "Expected tColon or tNumber" + ", received: " + p.current().String()) - } - current = p.current() - } - if err := p.match(tRbracket); err != nil { - return ASTNode{}, err - } - return ASTNode{ - nodeType: ASTSlice, - value: parts, - }, nil -} - -func (p *Parser) match(tokenType tokType) error { - if p.current() == tokenType { - p.advance() - return nil - } - return p.syntaxError("Expected " + tokenType.String() + ", received: " + p.current().String()) -} - -func (p *Parser) led(tokenType tokType, node ASTNode) (ASTNode, error) { - switch tokenType { - case tDot: - if p.current() != tStar { - right, err := p.parseDotRHS(bindingPowers[tDot]) - return ASTNode{ - nodeType: ASTSubexpression, - children: []ASTNode{node, right}, - }, err - } - p.advance() - right, err := p.parseProjectionRHS(bindingPowers[tDot]) - return ASTNode{ - nodeType: ASTValueProjection, - children: []ASTNode{node, right}, - }, err - case tPipe: - right, err := p.parseExpression(bindingPowers[tPipe]) - return ASTNode{nodeType: ASTPipe, children: []ASTNode{node, right}}, err - case tOr: - right, err := p.parseExpression(bindingPowers[tOr]) - return ASTNode{nodeType: ASTOrExpression, children: []ASTNode{node, right}}, err - case tAnd: - right, err := p.parseExpression(bindingPowers[tAnd]) - return ASTNode{nodeType: ASTAndExpression, children: []ASTNode{node, right}}, err - case tLparen: - name := node.value - var args []ASTNode - for p.current() != tRparen { - expression, err := p.parseExpression(0) - if err != nil { - return ASTNode{}, err - } - if p.current() == tComma { - if err := p.match(tComma); err != nil { - return ASTNode{}, err - } - } - args = append(args, expression) - } - if err := p.match(tRparen); err != nil { - return ASTNode{}, err - } - return ASTNode{ - nodeType: ASTFunctionExpression, - value: name, - children: args, - }, nil - case tFilter: - return p.parseFilter(node) - case tFlatten: - left := ASTNode{nodeType: ASTFlatten, children: []ASTNode{node}} - right, err := p.parseProjectionRHS(bindingPowers[tFlatten]) - return ASTNode{ - nodeType: ASTProjection, - children: []ASTNode{left, right}, - }, err - case tEQ, tNE, tGT, tGTE, tLT, tLTE: - right, err := p.parseExpression(bindingPowers[tokenType]) - if err != nil { - return ASTNode{}, err - } - return ASTNode{ - nodeType: ASTComparator, - value: tokenType, - children: []ASTNode{node, right}, - }, nil - case tLbracket: - tokenType := p.current() - var right ASTNode - var err error - if tokenType == tNumber || tokenType == tColon { - right, err = p.parseIndexExpression() - if err != nil { - return ASTNode{}, err - } - return p.projectIfSlice(node, right) - } - // Otherwise this is a projection. - if err := p.match(tStar); err != nil { - return ASTNode{}, err - } - if err := p.match(tRbracket); err != nil { - return ASTNode{}, err - } - right, err = p.parseProjectionRHS(bindingPowers[tStar]) - if err != nil { - return ASTNode{}, err - } - return ASTNode{ - nodeType: ASTProjection, - children: []ASTNode{node, right}, - }, nil - } - return ASTNode{}, p.syntaxError("Unexpected token: " + tokenType.String()) -} - -func (p *Parser) nud(token token) (ASTNode, error) { - switch token.tokenType { - case tJSONLiteral: - var parsed interface{} - err := json.Unmarshal([]byte(token.value), &parsed) - if err != nil { - return ASTNode{}, err - } - return ASTNode{nodeType: ASTLiteral, value: parsed}, nil - case tStringLiteral: - return ASTNode{nodeType: ASTLiteral, value: token.value}, nil - case tUnquotedIdentifier: - return ASTNode{ - nodeType: ASTField, - value: token.value, - }, nil - case tQuotedIdentifier: - node := ASTNode{nodeType: ASTField, value: token.value} - if p.current() == tLparen { - return ASTNode{}, p.syntaxErrorToken("Can't have quoted identifier as function name.", token) - } - return node, nil - case tStar: - left := ASTNode{nodeType: ASTIdentity} - var right ASTNode - var err error - if p.current() == tRbracket { - right = ASTNode{nodeType: ASTIdentity} - } else { - right, err = p.parseProjectionRHS(bindingPowers[tStar]) - } - return ASTNode{nodeType: ASTValueProjection, children: []ASTNode{left, right}}, err - case tFilter: - return p.parseFilter(ASTNode{nodeType: ASTIdentity}) - case tLbrace: - return p.parseMultiSelectHash() - case tFlatten: - left := ASTNode{ - nodeType: ASTFlatten, - children: []ASTNode{{nodeType: ASTIdentity}}, - } - right, err := p.parseProjectionRHS(bindingPowers[tFlatten]) - if err != nil { - return ASTNode{}, err - } - return ASTNode{nodeType: ASTProjection, children: []ASTNode{left, right}}, nil - case tLbracket: - tokenType := p.current() - //var right ASTNode - if tokenType == tNumber || tokenType == tColon { - right, err := p.parseIndexExpression() - if err != nil { - return ASTNode{}, nil - } - return p.projectIfSlice(ASTNode{nodeType: ASTIdentity}, right) - } else if tokenType == tStar && p.lookahead(1) == tRbracket { - p.advance() - p.advance() - right, err := p.parseProjectionRHS(bindingPowers[tStar]) - if err != nil { - return ASTNode{}, err - } - return ASTNode{ - nodeType: ASTProjection, - children: []ASTNode{{nodeType: ASTIdentity}, right}, - }, nil - } else { - return p.parseMultiSelectList() - } - case tCurrent: - return ASTNode{nodeType: ASTCurrentNode}, nil - case tExpref: - expression, err := p.parseExpression(bindingPowers[tExpref]) - if err != nil { - return ASTNode{}, err - } - return ASTNode{nodeType: ASTExpRef, children: []ASTNode{expression}}, nil - case tNot: - expression, err := p.parseExpression(bindingPowers[tNot]) - if err != nil { - return ASTNode{}, err - } - return ASTNode{nodeType: ASTNotExpression, children: []ASTNode{expression}}, nil - case tLparen: - expression, err := p.parseExpression(0) - if err != nil { - return ASTNode{}, err - } - if err := p.match(tRparen); err != nil { - return ASTNode{}, err - } - return expression, nil - case tEOF: - return ASTNode{}, p.syntaxErrorToken("Incomplete expression", token) - } - - return ASTNode{}, p.syntaxErrorToken("Invalid token: "+token.tokenType.String(), token) -} - -func (p *Parser) parseMultiSelectList() (ASTNode, error) { - var expressions []ASTNode - for { - expression, err := p.parseExpression(0) - if err != nil { - return ASTNode{}, err - } - expressions = append(expressions, expression) - if p.current() == tRbracket { - break - } - err = p.match(tComma) - if err != nil { - return ASTNode{}, err - } - } - err := p.match(tRbracket) - if err != nil { - return ASTNode{}, err - } - return ASTNode{ - nodeType: ASTMultiSelectList, - children: expressions, - }, nil -} - -func (p *Parser) parseMultiSelectHash() (ASTNode, error) { - var children []ASTNode - for { - keyToken := p.lookaheadToken(0) - if err := p.match(tUnquotedIdentifier); err != nil { - if err := p.match(tQuotedIdentifier); err != nil { - return ASTNode{}, p.syntaxError("Expected tQuotedIdentifier or tUnquotedIdentifier") - } - } - keyName := keyToken.value - err := p.match(tColon) - if err != nil { - return ASTNode{}, err - } - value, err := p.parseExpression(0) - if err != nil { - return ASTNode{}, err - } - node := ASTNode{ - nodeType: ASTKeyValPair, - value: keyName, - children: []ASTNode{value}, - } - children = append(children, node) - if p.current() == tComma { - err := p.match(tComma) - if err != nil { - return ASTNode{}, nil - } - } else if p.current() == tRbrace { - err := p.match(tRbrace) - if err != nil { - return ASTNode{}, nil - } - break - } - } - return ASTNode{ - nodeType: ASTMultiSelectHash, - children: children, - }, nil -} - -func (p *Parser) projectIfSlice(left ASTNode, right ASTNode) (ASTNode, error) { - indexExpr := ASTNode{ - nodeType: ASTIndexExpression, - children: []ASTNode{left, right}, - } - if right.nodeType == ASTSlice { - right, err := p.parseProjectionRHS(bindingPowers[tStar]) - return ASTNode{ - nodeType: ASTProjection, - children: []ASTNode{indexExpr, right}, - }, err - } - return indexExpr, nil -} -func (p *Parser) parseFilter(node ASTNode) (ASTNode, error) { - var right, condition ASTNode - var err error - condition, err = p.parseExpression(0) - if err != nil { - return ASTNode{}, err - } - if err := p.match(tRbracket); err != nil { - return ASTNode{}, err - } - if p.current() == tFlatten { - right = ASTNode{nodeType: ASTIdentity} - } else { - right, err = p.parseProjectionRHS(bindingPowers[tFilter]) - if err != nil { - return ASTNode{}, err - } - } - - return ASTNode{ - nodeType: ASTFilterProjection, - children: []ASTNode{node, right, condition}, - }, nil -} - -func (p *Parser) parseDotRHS(bindingPower int) (ASTNode, error) { - lookahead := p.current() - if tokensOneOf([]tokType{tQuotedIdentifier, tUnquotedIdentifier, tStar}, lookahead) { - return p.parseExpression(bindingPower) - } else if lookahead == tLbracket { - if err := p.match(tLbracket); err != nil { - return ASTNode{}, err - } - return p.parseMultiSelectList() - } else if lookahead == tLbrace { - if err := p.match(tLbrace); err != nil { - return ASTNode{}, err - } - return p.parseMultiSelectHash() - } - return ASTNode{}, p.syntaxError("Expected identifier, lbracket, or lbrace") -} - -func (p *Parser) parseProjectionRHS(bindingPower int) (ASTNode, error) { - current := p.current() - if bindingPowers[current] < 10 { - return ASTNode{nodeType: ASTIdentity}, nil - } else if current == tLbracket { - return p.parseExpression(bindingPower) - } else if current == tFilter { - return p.parseExpression(bindingPower) - } else if current == tDot { - err := p.match(tDot) - if err != nil { - return ASTNode{}, err - } - return p.parseDotRHS(bindingPower) - } else { - return ASTNode{}, p.syntaxError("Error") - } -} - -func (p *Parser) lookahead(number int) tokType { - return p.lookaheadToken(number).tokenType -} - -func (p *Parser) current() tokType { - return p.lookahead(0) -} - -func (p *Parser) lookaheadToken(number int) token { - return p.tokens[p.index+number] -} - -func (p *Parser) advance() { - p.index++ -} - -func tokensOneOf(elements []tokType, token tokType) bool { - for _, elem := range elements { - if elem == token { - return true - } - } - return false -} - -func (p *Parser) syntaxError(msg string) SyntaxError { - return SyntaxError{ - msg: msg, - Expression: p.expression, - Offset: p.lookaheadToken(0).position, - } -} - -// Create a SyntaxError based on the provided token. -// This differs from syntaxError() which creates a SyntaxError -// based on the current lookahead token. -func (p *Parser) syntaxErrorToken(msg string, t token) SyntaxError { - return SyntaxError{ - msg: msg, - Expression: p.expression, - Offset: t.position, - } -} diff --git a/vendor/github.com/jmespath/go-jmespath/toktype_string.go b/vendor/github.com/jmespath/go-jmespath/toktype_string.go deleted file mode 100644 index dae79cb..0000000 --- a/vendor/github.com/jmespath/go-jmespath/toktype_string.go +++ /dev/null @@ -1,16 +0,0 @@ -// generated by stringer -type=tokType; DO NOT EDIT - -package jmespath - -import "fmt" - -const _tokType_name = "tUnknowntStartDottFiltertFlattentLparentRparentLbrackettRbrackettLbracetRbracetOrtPipetNumbertUnquotedIdentifiertQuotedIdentifiertCommatColontLTtLTEtGTtGTEtEQtNEtJSONLiteraltStringLiteraltCurrenttExpreftAndtNottEOF" - -var _tokType_index = [...]uint8{0, 8, 13, 17, 24, 32, 39, 46, 55, 64, 71, 78, 81, 86, 93, 112, 129, 135, 141, 144, 148, 151, 155, 158, 161, 173, 187, 195, 202, 206, 210, 214} - -func (i tokType) String() string { - if i < 0 || i >= tokType(len(_tokType_index)-1) { - return fmt.Sprintf("tokType(%d)", i) - } - return _tokType_name[_tokType_index[i]:_tokType_index[i+1]] -} diff --git a/vendor/github.com/jmespath/go-jmespath/util.go b/vendor/github.com/jmespath/go-jmespath/util.go deleted file mode 100644 index ddc1b7d..0000000 --- a/vendor/github.com/jmespath/go-jmespath/util.go +++ /dev/null @@ -1,185 +0,0 @@ -package jmespath - -import ( - "errors" - "reflect" -) - -// IsFalse determines if an object is false based on the JMESPath spec. -// JMESPath defines false values to be any of: -// - An empty string array, or hash. -// - The boolean value false. -// - nil -func isFalse(value interface{}) bool { - switch v := value.(type) { - case bool: - return !v - case []interface{}: - return len(v) == 0 - case map[string]interface{}: - return len(v) == 0 - case string: - return len(v) == 0 - case nil: - return true - } - // Try the reflection cases before returning false. - rv := reflect.ValueOf(value) - switch rv.Kind() { - case reflect.Struct: - // A struct type will never be false, even if - // all of its values are the zero type. - return false - case reflect.Slice, reflect.Map: - return rv.Len() == 0 - case reflect.Ptr: - if rv.IsNil() { - return true - } - // If it's a pointer type, we'll try to deref the pointer - // and evaluate the pointer value for isFalse. - element := rv.Elem() - return isFalse(element.Interface()) - } - return false -} - -// ObjsEqual is a generic object equality check. -// It will take two arbitrary objects and recursively determine -// if they are equal. -func objsEqual(left interface{}, right interface{}) bool { - return reflect.DeepEqual(left, right) -} - -// SliceParam refers to a single part of a slice. -// A slice consists of a start, a stop, and a step, similar to -// python slices. -type sliceParam struct { - N int - Specified bool -} - -// Slice supports [start:stop:step] style slicing that's supported in JMESPath. -func slice(slice []interface{}, parts []sliceParam) ([]interface{}, error) { - computed, err := computeSliceParams(len(slice), parts) - if err != nil { - return nil, err - } - start, stop, step := computed[0], computed[1], computed[2] - result := []interface{}{} - if step > 0 { - for i := start; i < stop; i += step { - result = append(result, slice[i]) - } - } else { - for i := start; i > stop; i += step { - result = append(result, slice[i]) - } - } - return result, nil -} - -func computeSliceParams(length int, parts []sliceParam) ([]int, error) { - var start, stop, step int - if !parts[2].Specified { - step = 1 - } else if parts[2].N == 0 { - return nil, errors.New("Invalid slice, step cannot be 0") - } else { - step = parts[2].N - } - var stepValueNegative bool - if step < 0 { - stepValueNegative = true - } else { - stepValueNegative = false - } - - if !parts[0].Specified { - if stepValueNegative { - start = length - 1 - } else { - start = 0 - } - } else { - start = capSlice(length, parts[0].N, step) - } - - if !parts[1].Specified { - if stepValueNegative { - stop = -1 - } else { - stop = length - } - } else { - stop = capSlice(length, parts[1].N, step) - } - return []int{start, stop, step}, nil -} - -func capSlice(length int, actual int, step int) int { - if actual < 0 { - actual += length - if actual < 0 { - if step < 0 { - actual = -1 - } else { - actual = 0 - } - } - } else if actual >= length { - if step < 0 { - actual = length - 1 - } else { - actual = length - } - } - return actual -} - -// ToArrayNum converts an empty interface type to a slice of float64. -// If any element in the array cannot be converted, then nil is returned -// along with a second value of false. -func toArrayNum(data interface{}) ([]float64, bool) { - // Is there a better way to do this with reflect? - if d, ok := data.([]interface{}); ok { - result := make([]float64, len(d)) - for i, el := range d { - item, ok := el.(float64) - if !ok { - return nil, false - } - result[i] = item - } - return result, true - } - return nil, false -} - -// ToArrayStr converts an empty interface type to a slice of strings. -// If any element in the array cannot be converted, then nil is returned -// along with a second value of false. If the input data could be entirely -// converted, then the converted data, along with a second value of true, -// will be returned. -func toArrayStr(data interface{}) ([]string, bool) { - // Is there a better way to do this with reflect? - if d, ok := data.([]interface{}); ok { - result := make([]string, len(d)) - for i, el := range d { - item, ok := el.(string) - if !ok { - return nil, false - } - result[i] = item - } - return result, true - } - return nil, false -} - -func isSliceType(v interface{}) bool { - if v == nil { - return false - } - return reflect.TypeOf(v).Kind() == reflect.Slice -} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/.gitignore b/vendor/github.com/lucasb-eyer/go-colorful/.gitignore deleted file mode 100644 index 0aa2c92..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/.gitignore +++ /dev/null @@ -1,101 +0,0 @@ -# Created by https://www.toptal.com/developers/gitignore/api/code,go,linux,macos,windows -# Edit at https://www.toptal.com/developers/gitignore?templates=code,go,linux,macos,windows - -### Code ### -.vscode/* -!.vscode/tasks.json -!.vscode/launch.json -*.code-workspace - -### Go ### -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -# vendor/ - -### Go Patch ### -/vendor/ -/Godeps/ - -### Linux ### -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -### macOS ### -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -### Windows ### -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -# End of https://www.toptal.com/developers/gitignore/api/code,go,linux,macos,windows diff --git a/vendor/github.com/lucasb-eyer/go-colorful/CHANGELOG.md b/vendor/github.com/lucasb-eyer/go-colorful/CHANGELOG.md deleted file mode 100644 index 84f9c7b..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/CHANGELOG.md +++ /dev/null @@ -1,42 +0,0 @@ -# Changelog -All notable changes to this project will be documented in this file. - -This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -The format of this file is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -but only releases after v1.0.3 properly adhere to it. - - -## [1.2.0] - 2021-01-27 -### Added -- HSLuv and HPLuv color spaces (#41, #51) -- CIE LCh(uv) color space, called `LuvLCh` in code (#51) -- JSON and envconfig serialization support for `HexColor` (#42) -- `DistanceLinearRGB` (#53) - -### Fixed -- RGB to/from XYZ conversion is more accurate (#51) -- A bug in `XYZToLuvWhiteRef` that only applied to very small values was fixed (#51) -- `BlendHCL` output is clamped so that it's not invalid (#46) -- Properly documented `DistanceCIE76` (#40) -- Some small godoc fixes - - -## [1.0.3] - 2019-11-11 -- Remove SQLMock dependency - - -## [1.0.2] - 2019-04-07 -- Fixes SQLMock dependency - - -## [1.0.1] - 2019-03-24 -- Adds support for Go Modules - - -## [1.0.0] - 2018-05-26 -- API Breaking change in `MakeColor`: instead of `panic`ing when alpha is zero, it now returns a secondary, boolean return value indicating success. See [the color.Color interface](#the-colorcolor-interface) section and [this FAQ entry](#q-why-would-makecolor-ever-fail) for details. - - -## [0.9.0] - 2018-05-26 -- Initial version number after having ignored versioning for a long time :) diff --git a/vendor/github.com/lucasb-eyer/go-colorful/LICENSE b/vendor/github.com/lucasb-eyer/go-colorful/LICENSE deleted file mode 100644 index 4e402a0..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ -Copyright (c) 2013 Lucas Beyer - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/lucasb-eyer/go-colorful/README.md b/vendor/github.com/lucasb-eyer/go-colorful/README.md deleted file mode 100644 index 8b9bd49..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/README.md +++ /dev/null @@ -1,482 +0,0 @@ -go-colorful -=========== - -[![go reportcard](https://goreportcard.com/badge/github.com/lucasb-eyer/go-colorful)](https://goreportcard.com/report/github.com/lucasb-eyer/go-colorful) - -A library for playing with colors in Go. Supports Go 1.13 onwards. - -Why? -==== -I love games. I make games. I love detail and I get lost in detail. -One such detail popped up during the development of [Memory Which Does Not Suck](https://github.com/lucasb-eyer/mwdns/), -when we wanted the server to assign the players random colors. Sometimes -two players got very similar colors, which bugged me. The very same evening, -[I want hue](http://tools.medialab.sciences-po.fr/iwanthue/) was the top post -on HackerNews' frontpage and showed me how to Do It Right™. Last but not -least, there was no library for handling color spaces available in go. Colorful -does just that and implements Go's `color.Color` interface. - -What? -===== -Go-Colorful stores colors in RGB and provides methods from converting these to various color-spaces. Currently supported colorspaces are: - -- **RGB:** All three of Red, Green and Blue in [0..1]. -- **HSL:** Hue in [0..360], Saturation and Luminance in [0..1]. For legacy reasons; please forget that it exists. -- **HSV:** Hue in [0..360], Saturation and Value in [0..1]. You're better off using HCL, see below. -- **Hex RGB:** The "internet" color format, as in #FF00FF. -- **Linear RGB:** See [gamma correct rendering](http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/). -- **CIE-XYZ:** CIE's standard color space, almost in [0..1]. -- **CIE-xyY:** encodes chromacity in x and y and luminance in Y, all in [0..1] -- **CIE-L\*a\*b\*:** A *perceptually uniform* color space, i.e. distances are meaningful. L\* in [0..1] and a\*, b\* almost in [-1..1]. -- **CIE-L\*u\*v\*:** Very similar to CIE-L\*a\*b\*, there is [no consensus](http://en.wikipedia.org/wiki/CIELUV#Historical_background) on which one is "better". -- **CIE-L\*C\*h° (HCL):** This is generally the [most useful](http://vis4.net/blog/posts/avoid-equidistant-hsv-colors/) one; CIE-L\*a\*b\* space in polar coordinates, i.e. a *better* HSV. H° is in [0..360], C\* almost in [-1..1] and L\* as in CIE-L\*a\*b\*. -- **CIE LCh(uv):** Called `LuvLCh` in code, this is a cylindrical transformation of the CIE-L\*u\*v\* color space. Like HCL above: H° is in [0..360], C\* almost in [-1..1] and L\* as in CIE-L\*u\*v\*. -- **HSLuv:** The better alternative to HSL, see [here](https://www.hsluv.org/) and [here](https://www.kuon.ch/post/2020-03-08-hsluv/). Hue in [0..360], Saturation and Luminance in [0..1]. -- **HPLuv:** A variant of HSLuv. The color space is smoother, but only pastel colors can be included. Because the valid colors are limited, it's easy to get invalid Saturation values way above 1.0, indicating the color can't be represented in HPLuv beccause it's not pastel. - -For the colorspaces where it makes sense (XYZ, Lab, Luv, HCl), the -[D65](http://en.wikipedia.org/wiki/Illuminant_D65) is used as reference white -by default but methods for using your own reference white are provided. - -A coordinate being *almost in* a range means that generally it is, but for very -bright colors and depending on the reference white, it might overflow this -range slightly. For example, C\* of #0000ff is 1.338. - -Unit-tests are provided. - -Nice, but what's it useful for? -------------------------------- - -- Converting color spaces. Some people like to do that. -- Blending (interpolating) between colors in a "natural" look by using the right colorspace. -- Generating random colors under some constraints (e.g. colors of the same shade, or shades of one color.) -- Generating gorgeous random palettes with distinct colors of a same temperature. - -What not (yet)? -=============== -There are a few features which are currently missing and might be useful. -I just haven't implemented them yet because I didn't have the need for it. -Pull requests welcome. - -- Sorting colors (potentially using above mentioned distances) - -So which colorspace should I use? -================================= -It depends on what you want to do. I think the folks from *I want hue* are -on-spot when they say that RGB fits to how *screens produce* color, CIE L\*a\*b\* -fits how *humans perceive* color and HCL fits how *humans think* colors. - -Whenever you'd use HSV, rather go for CIE-L\*C\*h°. for fixed lightness L\* and -chroma C\* values, the hue angle h° rotates through colors of the same -perceived brightness and intensity. - -How? -==== - -### Installing -Installing the library is as easy as - -```bash -$ go get github.com/lucasb-eyer/go-colorful -``` - -The package can then be used through an - -```go -import "github.com/lucasb-eyer/go-colorful" -``` - -### Basic usage - -Create a beautiful blue color using different source space: - -```go -// Any of the following should be the same -c := colorful.Color{0.313725, 0.478431, 0.721569} -c, err := colorful.Hex("#517AB8") -if err != nil { - log.Fatal(err) -} -c = colorful.Hsv(216.0, 0.56, 0.722) -c = colorful.Xyz(0.189165, 0.190837, 0.480248) -c = colorful.Xyy(0.219895, 0.221839, 0.190837) -c = colorful.Lab(0.507850, 0.040585,-0.370945) -c = colorful.Luv(0.507849,-0.194172,-0.567924) -c = colorful.Hcl(276.2440, 0.373160, 0.507849) -fmt.Printf("RGB values: %v, %v, %v", c.R, c.G, c.B) -``` - -And then converting this color back into various color spaces: - -```go -hex := c.Hex() -h, s, v := c.Hsv() -x, y, z := c.Xyz() -x, y, Y := c.Xyy() -l, a, b := c.Lab() -l, u, v := c.Luv() -h, c, l := c.Hcl() -``` - -Note that, because of Go's unfortunate choice of requiring an initial uppercase, -the name of the functions relating to the xyY space are just off. If you have -any good suggestion, please open an issue. (I don't consider XyY good.) - -### The `color.Color` interface -Because a `colorful.Color` implements Go's `color.Color` interface (found in the -`image/color` package), it can be used anywhere that expects a `color.Color`. - -Furthermore, you can convert anything that implements the `color.Color` interface -into a `colorful.Color` using the `MakeColor` function: - -```go -c, ok := colorful.MakeColor(color.Gray16{12345}) -``` - -**Caveat:** Be aware that this latter conversion (using `MakeColor`) hits a -corner-case when alpha is exactly zero. Because `color.Color` uses pre-multiplied -alpha colors, this means the RGB values are lost (set to 0) and it's impossible -to recover them. In such a case `MakeColor` will return `false` as its second value. - -### Comparing colors -In the RGB color space, the Euclidian distance between colors *doesn't* correspond -to visual/perceptual distance. This means that two pairs of colors which have the -same distance in RGB space can look much further apart. This is fixed by the -CIE-L\*a\*b\*, CIE-L\*u\*v\* and CIE-L\*C\*h° color spaces. -Thus you should only compare colors in any of these space. -(Note that the distance in CIE-L\*a\*b\* and CIE-L\*C\*h° are the same, since it's the same space but in cylindrical coordinates) - -![Color distance comparison](doc/colordist/colordist.png) - -The two colors shown on the top look much more different than the two shown on -the bottom. Still, in RGB space, their distance is the same. -Here is a little example program which shows the distances between the top two -and bottom two colors in RGB, CIE-L\*a\*b\* and CIE-L\*u\*v\* space. You can find it in `doc/colordist/colordist.go`. - -```go -package main - -import "fmt" -import "github.com/lucasb-eyer/go-colorful" - -func main() { - c1a := colorful.Color{150.0 / 255.0, 10.0 / 255.0, 150.0 / 255.0} - c1b := colorful.Color{53.0 / 255.0, 10.0 / 255.0, 150.0 / 255.0} - c2a := colorful.Color{10.0 / 255.0, 150.0 / 255.0, 50.0 / 255.0} - c2b := colorful.Color{99.9 / 255.0, 150.0 / 255.0, 10.0 / 255.0} - - fmt.Printf("DistanceRgb: c1: %v\tand c2: %v\n", c1a.DistanceRgb(c1b), c2a.DistanceRgb(c2b)) - fmt.Printf("DistanceLab: c1: %v\tand c2: %v\n", c1a.DistanceLab(c1b), c2a.DistanceLab(c2b)) - fmt.Printf("DistanceLuv: c1: %v\tand c2: %v\n", c1a.DistanceLuv(c1b), c2a.DistanceLuv(c2b)) - fmt.Printf("DistanceCIE76: c1: %v\tand c2: %v\n", c1a.DistanceCIE76(c1b), c2a.DistanceCIE76(c2b)) - fmt.Printf("DistanceCIE94: c1: %v\tand c2: %v\n", c1a.DistanceCIE94(c1b), c2a.DistanceCIE94(c2b)) - fmt.Printf("DistanceCIEDE2000: c1: %v\tand c2: %v\n", c1a.DistanceCIEDE2000(c1b), c2a.DistanceCIEDE2000(c2b)) -} -``` - -Running the above program shows that you should always prefer any of the CIE distances: - -```bash -$ go run colordist.go -DistanceRgb: c1: 0.3803921568627451 and c2: 0.3858713931171159 -DistanceLab: c1: 0.32048458312798056 and c2: 0.24397151758565272 -DistanceLuv: c1: 0.5134369614199698 and c2: 0.2568692839860636 -DistanceCIE76: c1: 0.32048458312798056 and c2: 0.24397151758565272 -DistanceCIE94: c1: 0.19799168128511324 and c2: 0.12207136371167401 -DistanceCIEDE2000: c1: 0.17274551120971166 and c2: 0.10665210031428465 -``` - -It also shows that `DistanceLab` is more formally known as `DistanceCIE76` and -has been superseded by the slightly more accurate, but much more expensive -`DistanceCIE94` and `DistanceCIEDE2000`. - -Note that `AlmostEqualRgb` is provided mainly for (unit-)testing purposes. Use -it only if you really know what you're doing. It will eat your cat. - -### Blending colors -Blending is highly connected to distance, since it basically "walks through" the -colorspace thus, if the colorspace maps distances well, the walk is "smooth". - -Colorful comes with blending functions in RGB, HSV and any of the LAB spaces. -Of course, you'd rather want to use the blending functions of the LAB spaces since -these spaces map distances well but, just in case, here is an example showing -you how the blendings (`#fdffcc` to `#242a42`) are done in the various spaces: - -![Blending colors in different spaces.](doc/colorblend/colorblend.png) - -What you see is that HSV is really bad: it adds some green, which is not present -in the original colors at all! RGB is much better, but it stays light a little -too long. LUV and LAB both hit the right lightness but LAB has a little more -color. HCL works in the same vein as HSV (both cylindrical interpolations) but -it does it right in that there is no green appearing and the lighthness changes -in a linear manner. - -While this seems all good, you need to know one thing: When interpolating in any -of the CIE color spaces, you might get invalid RGB colors! This is important if -the starting and ending colors are user-input or random. An example of where this -happens is when blending between `#eeef61` and `#1e3140`: - -![Invalid RGB colors may crop up when blending in CIE spaces.](doc/colorblend/invalid.png) - -You can test whether a color is a valid RGB color by calling the `IsValid` method -and indeed, calling IsValid will return false for the redish colors on the bottom. -One way to "fix" this is to get a valid color close to the invalid one by calling -`Clamped`, which always returns a nearby valid color. Doing this, we get the -following result, which is satisfactory: - -![Fixing invalid RGB colors by clamping them to the valid range.](doc/colorblend/clamped.png) - -The following is the code creating the above three images; it can be found in `doc/colorblend/colorblend.go` - -```go -package main - -import "fmt" -import "github.com/lucasb-eyer/go-colorful" -import "image" -import "image/draw" -import "image/png" -import "os" - -func main() { - blocks := 10 - blockw := 40 - img := image.NewRGBA(image.Rect(0,0,blocks*blockw,200)) - - c1, _ := colorful.Hex("#fdffcc") - c2, _ := colorful.Hex("#242a42") - - // Use these colors to get invalid RGB in the gradient. - //c1, _ := colorful.Hex("#EEEF61") - //c2, _ := colorful.Hex("#1E3140") - - for i := 0 ; i < blocks ; i++ { - draw.Draw(img, image.Rect(i*blockw, 0,(i+1)*blockw, 40), &image.Uniform{c1.BlendHsv(c2, float64(i)/float64(blocks-1))}, image.Point{}, draw.Src) - draw.Draw(img, image.Rect(i*blockw, 40,(i+1)*blockw, 80), &image.Uniform{c1.BlendLuv(c2, float64(i)/float64(blocks-1))}, image.Point{}, draw.Src) - draw.Draw(img, image.Rect(i*blockw, 80,(i+1)*blockw,120), &image.Uniform{c1.BlendRgb(c2, float64(i)/float64(blocks-1))}, image.Point{}, draw.Src) - draw.Draw(img, image.Rect(i*blockw,120,(i+1)*blockw,160), &image.Uniform{c1.BlendLab(c2, float64(i)/float64(blocks-1))}, image.Point{}, draw.Src) - draw.Draw(img, image.Rect(i*blockw,160,(i+1)*blockw,200), &image.Uniform{c1.BlendHcl(c2, float64(i)/float64(blocks-1))}, image.Point{}, draw.Src) - - // This can be used to "fix" invalid colors in the gradient. - //draw.Draw(img, image.Rect(i*blockw,160,(i+1)*blockw,200), &image.Uniform{c1.BlendHcl(c2, float64(i)/float64(blocks-1)).Clamped()}, image.Point{}, draw.Src) - } - - toimg, err := os.Create("colorblend.png") - if err != nil { - fmt.Printf("Error: %v", err) - return - } - defer toimg.Close() - - png.Encode(toimg, img) -} -``` - -#### Generating color gradients -A very common reason to blend colors is creating gradients. There is an example -program in [doc/gradientgen.go](doc/gradientgen/gradientgen.go); it doesn't use any API -which hasn't been used in the previous example code, so I won't bother pasting -the code in here. Just look at that gorgeous gradient it generated in HCL space: - -!["Spectral" colorbrewer gradient in HCL space.](doc/gradientgen/gradientgen.png) - -### Getting random colors -It is sometimes necessary to generate random colors. You could simply do this -on your own by generating colors with random values. By restricting the random -values to a range smaller than [0..1] and using a space such as CIE-H\*C\*l° or -HSV, you can generate both random shades of a color or random colors of a -lightness: - -```go -random_blue := colorful.Hcl(180.0+rand.Float64()*50.0, 0.2+rand.Float64()*0.8, 0.3+rand.Float64()*0.7) -random_dark := colorful.Hcl(rand.Float64()*360.0, rand.Float64(), rand.Float64()*0.4) -random_light := colorful.Hcl(rand.Float64()*360.0, rand.Float64(), 0.6+rand.Float64()*0.4) -``` - -Since getting random "warm" and "happy" colors is quite a common task, there -are some helper functions: - -```go -colorful.WarmColor() -colorful.HappyColor() -colorful.FastWarmColor() -colorful.FastHappyColor() -``` - -The ones prefixed by `Fast` are faster but less coherent since they use the HSV -space as opposed to the regular ones which use CIE-L\*C\*h° space. The -following picture shows the warm colors in the top two rows and happy colors -in the bottom two rows. Within these, the first is the regular one and the -second is the fast one. - -![Warm, fast warm, happy and fast happy random colors, respectively.](doc/colorgens/colorgens.png) - -Don't forget to initialize the random seed! You can see the code used for -generating this picture in `doc/colorgens/colorgens.go`. - -### Getting random palettes -As soon as you need to generate more than one random color, you probably want -them to be distinguishible. Playing against an opponent which has almost the -same blue as I do is not fun. This is where random palettes can help. - -These palettes are generated using an algorithm which ensures that all colors -on the palette are as distinguishible as possible. Again, there is a `Fast` -method which works in HSV and is less perceptually uniform and a non-`Fast` -method which works in CIE spaces. For more theory on `SoftPalette`, check out -[I want hue](http://tools.medialab.sciences-po.fr/iwanthue/theory.php). Yet -again, there is a `Happy` and a `Warm` version, which do what you expect, but -now there is an additional `Soft` version, which is more configurable: you can -give a constraint on the color space in order to get colors within a certain *feel*. - -Let's start with the simple methods first, all they take is the amount of -colors to generate, which could, for example, be the player count. They return -an array of `colorful.Color` objects: - -```go -pal1, err1 := colorful.WarmPalette(10) -pal2 := colorful.FastWarmPalette(10) -pal3, err3 := colorful.HappyPalette(10) -pal4 := colorful.FastHappyPalette(10) -pal5, err5 := colorful.SoftPalette(10) -``` - -Note that the non-fast methods *may* fail if you ask for way too many colors. -Let's move on to the advanced one, namely `SoftPaletteEx`. Besides the color -count, this function takes a `SoftPaletteSettings` object as argument. The -interesting part here is its `CheckColor` member, which is a boolean function -taking three floating points as arguments: `l`, `a` and `b`. This function -should return `true` for colors which lie within the region you want and `false` -otherwise. The other members are `Iteration`, which should be within [5..100] -where higher means slower but more exact palette, and `ManySamples` which you -should set to `true` in case your `CheckColor` constraint rejects a large part -of the color space. - -For example, to create a palette of 10 brownish colors, you'd call it like this: - -```go -func isbrowny(l, a, b float64) bool { - h, c, L := colorful.LabToHcl(l, a, b) - return 10.0 < h && h < 50.0 && 0.1 < c && c < 0.5 && L < 0.5 -} -// Since the above function is pretty restrictive, we set ManySamples to true. -brownies := colorful.SoftPaletteEx(10, colorful.SoftPaletteSettings{isbrowny, 50, true}) -``` - -The following picture shows the palettes generated by all of these methods -(sourcecode in `doc/palettegens/palettegens.go`), in the order they were presented, i.e. -from top to bottom: `Warm`, `FastWarm`, `Happy`, `FastHappy`, `Soft`, -`SoftEx(isbrowny)`. All of them contain some randomness, so YMMV. - -![All example palettes](doc/palettegens/palettegens.png) - -Again, the code used for generating the above image is available as [doc/palettegens/palettegens.go](https://github.com/lucasb-eyer/go-colorful/blob/master/doc/palettegens/palettegens.go). - -### Sorting colors -TODO: Sort using dist fn. - -### Using linear RGB for computations -There are two methods for transforming RGB<->Linear RGB: a fast and almost precise one, -and a slow and precise one. - -```go -r, g, b := colorful.Hex("#FF0000").FastLinearRgb() -``` - -TODO: describe some more. - -### Want to use some other reference point? - -```go -c := colorful.LabWhiteRef(0.507850, 0.040585,-0.370945, colorful.D50) -l, a, b := c.LabWhiteRef(colorful.D50) -``` - -### Reading and writing colors from databases - -The type `HexColor` makes it easy to store colors as strings in a database. It -implements the [https://godoc.org/database/sql#Scanner](database/sql.Scanner) -and [database/sql/driver.Value](https://godoc.org/database/sql/driver.Value) -interfaces which provide automatic type conversion. - -Example: - -```go -var hc HexColor -_, err := db.QueryRow("SELECT '#ff0000';").Scan(&hc) -// hc == HexColor{R: 1, G: 0, B: 0}; err == nil -``` - -FAQ -=== - -### Q: I get all f!@#ed up values! Your library sucks! -A: You probably provided values in the wrong range. For example, RGB values are -expected to reside between 0 and 1, *not* between 0 and 255. Normalize your colors. - -### Q: Lab/Luv/HCl seem broken! Your library sucks! -They look like this: - - - -A: You're likely trying to generate and display colors that can't be represented by RGB, -and thus monitors. When you're trying to convert, say, `HCL(190.0, 1.0, 1.0).RGB255()`, -you're asking for RGB values of `(-2105.254 300.680 286.185)`, which clearly don't exist, -and the `RGB255` function just casts these numbers to `uint8`, creating wrap-around and -what looks like a completely broken gradient. What you want to do, is either use more -reasonable values of colors which actually exist in RGB, or just `Clamp()` the resulting -color to its nearest existing one, living with the consequences: -`HCL(190.0, 1.0, 1.0).Clamp().RGB255()`. It will look something like this: - - - -[Here's an issue going in-depth about this](https://github.com/lucasb-eyer/go-colorful/issues/14), -as well as [my answer](https://github.com/lucasb-eyer/go-colorful/issues/14#issuecomment-324205385), -both with code and pretty pictures. Also note that this was somewhat covered above in the -["Blending colors" section](https://github.com/lucasb-eyer/go-colorful#blending-colors). - -### Q: In a tight loop, conversion to Lab/Luv/HCl/... are slooooow! -A: Yes, they are. -This library aims for correctness, readability, and modularity; it wasn't written with speed in mind. -A large part of the slowness comes from these conversions going through `LinearRgb` which uses powers. -I implemented a fast approximation to `LinearRgb` called `FastLinearRgb` by using Taylor approximations. -The approximation is roughly 5x faster and precise up to roughly 0.5%, -the major caveat being that if the input values are outside the range 0-1, accuracy drops dramatically. -You can use these in your conversions as follows: - -```go -col := // Get your color somehow -l, a, b := XyzToLab(LinearRgbToXyz(col.LinearRgb())) -``` - -If you need faster versions of `Distance*` and `Blend*` that make use of this fast approximation, -feel free to implement them and open a pull-request, I'll happily accept. - -The derivation of these functions can be followed in [this Jupyter notebook](doc/LinearRGB Approximations.ipynb). -Here's the main figure showing the approximation quality: - -![approximation quality](doc/approx-quality.png) - -More speed could be gained by using SIMD instructions in many places. -You can also get more speed for specific conversions by approximating the full conversion function, -but that is outside the scope of this library. -Thanks to [@ZirconiumX](https://github.com/ZirconiumX) for starting this investigation, -see [issue #18](https://github.com/lucasb-eyer/go-colorful/issues/18) for details. - -### Q: Why would `MakeColor` ever fail!? -A: `MakeColor` fails when the alpha channel is zero. In that case, the -conversion is undefined. See [issue 21](https://github.com/lucasb-eyer/go-colorful/issues/21) -as well as the short caveat note in the ["The `color.Color` interface"](README.md#the-colorcolor-interface) -section above. - -Who? -==== - -This library was developed by Lucas Beyer with contributions from -Bastien Dejean (@baskerville), Phil Kulak (@pkulak) and Christian Muehlhaeuser (@muesli). - -It is now maintained by makeworld (@makeworld-the-better-one). - - -## License - -This repo is under the MIT license, see [LICENSE](LICENSE) for details. diff --git a/vendor/github.com/lucasb-eyer/go-colorful/colorgens.go b/vendor/github.com/lucasb-eyer/go-colorful/colorgens.go deleted file mode 100644 index 2e2e49e..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/colorgens.go +++ /dev/null @@ -1,55 +0,0 @@ -// Various ways to generate single random colors - -package colorful - -import ( - "math/rand" -) - -// Creates a random dark, "warm" color through a restricted HSV space. -func FastWarmColor() Color { - return Hsv( - rand.Float64()*360.0, - 0.5+rand.Float64()*0.3, - 0.3+rand.Float64()*0.3) -} - -// Creates a random dark, "warm" color through restricted HCL space. -// This is slower than FastWarmColor but will likely give you colors which have -// the same "warmness" if you run it many times. -func WarmColor() (c Color) { - for c = randomWarm(); !c.IsValid(); c = randomWarm() { - } - return -} - -func randomWarm() Color { - return Hcl( - rand.Float64()*360.0, - 0.1+rand.Float64()*0.3, - 0.2+rand.Float64()*0.3) -} - -// Creates a random bright, "pimpy" color through a restricted HSV space. -func FastHappyColor() Color { - return Hsv( - rand.Float64()*360.0, - 0.7+rand.Float64()*0.3, - 0.6+rand.Float64()*0.3) -} - -// Creates a random bright, "pimpy" color through restricted HCL space. -// This is slower than FastHappyColor but will likely give you colors which -// have the same "brightness" if you run it many times. -func HappyColor() (c Color) { - for c = randomPimp(); !c.IsValid(); c = randomPimp() { - } - return -} - -func randomPimp() Color { - return Hcl( - rand.Float64()*360.0, - 0.5+rand.Float64()*0.3, - 0.5+rand.Float64()*0.3) -} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/colors.go b/vendor/github.com/lucasb-eyer/go-colorful/colors.go deleted file mode 100644 index 0d5bffe..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/colors.go +++ /dev/null @@ -1,979 +0,0 @@ -// The colorful package provides all kinds of functions for working with colors. -package colorful - -import ( - "fmt" - "image/color" - "math" -) - -// A color is stored internally using sRGB (standard RGB) values in the range 0-1 -type Color struct { - R, G, B float64 -} - -// Implement the Go color.Color interface. -func (col Color) RGBA() (r, g, b, a uint32) { - r = uint32(col.R*65535.0 + 0.5) - g = uint32(col.G*65535.0 + 0.5) - b = uint32(col.B*65535.0 + 0.5) - a = 0xFFFF - return -} - -// Constructs a colorful.Color from something implementing color.Color -func MakeColor(col color.Color) (Color, bool) { - r, g, b, a := col.RGBA() - if a == 0 { - return Color{0, 0, 0}, false - } - - // Since color.Color is alpha pre-multiplied, we need to divide the - // RGB values by alpha again in order to get back the original RGB. - r *= 0xffff - r /= a - g *= 0xffff - g /= a - b *= 0xffff - b /= a - - return Color{float64(r) / 65535.0, float64(g) / 65535.0, float64(b) / 65535.0}, true -} - -// Might come in handy sometimes to reduce boilerplate code. -func (col Color) RGB255() (r, g, b uint8) { - r = uint8(col.R*255.0 + 0.5) - g = uint8(col.G*255.0 + 0.5) - b = uint8(col.B*255.0 + 0.5) - return -} - -// Used to simplify HSLuv testing. -func (col Color) values() (float64, float64, float64) { - return col.R, col.G, col.B -} - -// This is the tolerance used when comparing colors using AlmostEqualRgb. -const Delta = 1.0 / 255.0 - -// This is the default reference white point. -var D65 = [3]float64{0.95047, 1.00000, 1.08883} - -// And another one. -var D50 = [3]float64{0.96422, 1.00000, 0.82521} - -// Checks whether the color exists in RGB space, i.e. all values are in [0..1] -func (c Color) IsValid() bool { - return 0.0 <= c.R && c.R <= 1.0 && - 0.0 <= c.G && c.G <= 1.0 && - 0.0 <= c.B && c.B <= 1.0 -} - -// clamp01 clamps from 0 to 1. -func clamp01(v float64) float64 { - return math.Max(0.0, math.Min(v, 1.0)) -} - -// Returns Clamps the color into valid range, clamping each value to [0..1] -// If the color is valid already, this is a no-op. -func (c Color) Clamped() Color { - return Color{clamp01(c.R), clamp01(c.G), clamp01(c.B)} -} - -func sq(v float64) float64 { - return v * v -} - -func cub(v float64) float64 { - return v * v * v -} - -// DistanceRgb computes the distance between two colors in RGB space. -// This is not a good measure! Rather do it in Lab space. -func (c1 Color) DistanceRgb(c2 Color) float64 { - return math.Sqrt(sq(c1.R-c2.R) + sq(c1.G-c2.G) + sq(c1.B-c2.B)) -} - -// DistanceLinearRGB computes the distance between two colors in linear RGB -// space. This is not useful for measuring how humans perceive color, but -// might be useful for other things, like dithering. -func (c1 Color) DistanceLinearRGB(c2 Color) float64 { - r1, g1, b1 := c1.LinearRgb() - r2, g2, b2 := c2.LinearRgb() - return math.Sqrt(sq(r1-r2) + sq(g1-g2) + sq(b1-b2)) -} - -// Check for equality between colors within the tolerance Delta (1/255). -func (c1 Color) AlmostEqualRgb(c2 Color) bool { - return math.Abs(c1.R-c2.R)+ - math.Abs(c1.G-c2.G)+ - math.Abs(c1.B-c2.B) < 3.0*Delta -} - -// You don't really want to use this, do you? Go for BlendLab, BlendLuv or BlendHcl. -func (c1 Color) BlendRgb(c2 Color, t float64) Color { - return Color{c1.R + t*(c2.R-c1.R), - c1.G + t*(c2.G-c1.G), - c1.B + t*(c2.B-c1.B)} -} - -// Utility used by Hxx color-spaces for interpolating between two angles in [0,360]. -func interp_angle(a0, a1, t float64) float64 { - // Based on the answer here: http://stackoverflow.com/a/14498790/2366315 - // With potential proof that it works here: http://math.stackexchange.com/a/2144499 - delta := math.Mod(math.Mod(a1-a0, 360.0)+540, 360.0) - 180.0 - return math.Mod(a0+t*delta+360.0, 360.0) -} - -/// HSV /// -/////////// -// From http://en.wikipedia.org/wiki/HSL_and_HSV -// Note that h is in [0..360] and s,v in [0..1] - -// Hsv returns the Hue [0..360], Saturation and Value [0..1] of the color. -func (col Color) Hsv() (h, s, v float64) { - min := math.Min(math.Min(col.R, col.G), col.B) - v = math.Max(math.Max(col.R, col.G), col.B) - C := v - min - - s = 0.0 - if v != 0.0 { - s = C / v - } - - h = 0.0 // We use 0 instead of undefined as in wp. - if min != v { - if v == col.R { - h = math.Mod((col.G-col.B)/C, 6.0) - } - if v == col.G { - h = (col.B-col.R)/C + 2.0 - } - if v == col.B { - h = (col.R-col.G)/C + 4.0 - } - h *= 60.0 - if h < 0.0 { - h += 360.0 - } - } - return -} - -// Hsv creates a new Color given a Hue in [0..360], a Saturation and a Value in [0..1] -func Hsv(H, S, V float64) Color { - Hp := H / 60.0 - C := V * S - X := C * (1.0 - math.Abs(math.Mod(Hp, 2.0)-1.0)) - - m := V - C - r, g, b := 0.0, 0.0, 0.0 - - switch { - case 0.0 <= Hp && Hp < 1.0: - r = C - g = X - case 1.0 <= Hp && Hp < 2.0: - r = X - g = C - case 2.0 <= Hp && Hp < 3.0: - g = C - b = X - case 3.0 <= Hp && Hp < 4.0: - g = X - b = C - case 4.0 <= Hp && Hp < 5.0: - r = X - b = C - case 5.0 <= Hp && Hp < 6.0: - r = C - b = X - } - - return Color{m + r, m + g, m + b} -} - -// You don't really want to use this, do you? Go for BlendLab, BlendLuv or BlendHcl. -func (c1 Color) BlendHsv(c2 Color, t float64) Color { - h1, s1, v1 := c1.Hsv() - h2, s2, v2 := c2.Hsv() - - // We know that h are both in [0..360] - return Hsv(interp_angle(h1, h2, t), s1+t*(s2-s1), v1+t*(v2-v1)) -} - -/// HSL /// -/////////// - -// Hsl returns the Hue [0..360], Saturation [0..1], and Luminance (lightness) [0..1] of the color. -func (col Color) Hsl() (h, s, l float64) { - min := math.Min(math.Min(col.R, col.G), col.B) - max := math.Max(math.Max(col.R, col.G), col.B) - - l = (max + min) / 2 - - if min == max { - s = 0 - h = 0 - } else { - if l < 0.5 { - s = (max - min) / (max + min) - } else { - s = (max - min) / (2.0 - max - min) - } - - if max == col.R { - h = (col.G - col.B) / (max - min) - } else if max == col.G { - h = 2.0 + (col.B-col.R)/(max-min) - } else { - h = 4.0 + (col.R-col.G)/(max-min) - } - - h *= 60 - - if h < 0 { - h += 360 - } - } - - return -} - -// Hsl creates a new Color given a Hue in [0..360], a Saturation [0..1], and a Luminance (lightness) in [0..1] -func Hsl(h, s, l float64) Color { - if s == 0 { - return Color{l, l, l} - } - - var r, g, b float64 - var t1 float64 - var t2 float64 - var tr float64 - var tg float64 - var tb float64 - - if l < 0.5 { - t1 = l * (1.0 + s) - } else { - t1 = l + s - l*s - } - - t2 = 2*l - t1 - h /= 360 - tr = h + 1.0/3.0 - tg = h - tb = h - 1.0/3.0 - - if tr < 0 { - tr++ - } - if tr > 1 { - tr-- - } - if tg < 0 { - tg++ - } - if tg > 1 { - tg-- - } - if tb < 0 { - tb++ - } - if tb > 1 { - tb-- - } - - // Red - if 6*tr < 1 { - r = t2 + (t1-t2)*6*tr - } else if 2*tr < 1 { - r = t1 - } else if 3*tr < 2 { - r = t2 + (t1-t2)*(2.0/3.0-tr)*6 - } else { - r = t2 - } - - // Green - if 6*tg < 1 { - g = t2 + (t1-t2)*6*tg - } else if 2*tg < 1 { - g = t1 - } else if 3*tg < 2 { - g = t2 + (t1-t2)*(2.0/3.0-tg)*6 - } else { - g = t2 - } - - // Blue - if 6*tb < 1 { - b = t2 + (t1-t2)*6*tb - } else if 2*tb < 1 { - b = t1 - } else if 3*tb < 2 { - b = t2 + (t1-t2)*(2.0/3.0-tb)*6 - } else { - b = t2 - } - - return Color{r, g, b} -} - -/// Hex /// -/////////// - -// Hex returns the hex "html" representation of the color, as in #ff0080. -func (col Color) Hex() string { - // Add 0.5 for rounding - return fmt.Sprintf("#%02x%02x%02x", uint8(col.R*255.0+0.5), uint8(col.G*255.0+0.5), uint8(col.B*255.0+0.5)) -} - -// Hex parses a "html" hex color-string, either in the 3 "#f0c" or 6 "#ff1034" digits form. -func Hex(scol string) (Color, error) { - format := "#%02x%02x%02x" - factor := 1.0 / 255.0 - if len(scol) == 4 { - format = "#%1x%1x%1x" - factor = 1.0 / 15.0 - } - - var r, g, b uint8 - n, err := fmt.Sscanf(scol, format, &r, &g, &b) - if err != nil { - return Color{}, err - } - if n != 3 { - return Color{}, fmt.Errorf("color: %v is not a hex-color", scol) - } - - return Color{float64(r) * factor, float64(g) * factor, float64(b) * factor}, nil -} - -/// Linear /// -////////////// -// http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/ -// http://www.brucelindbloom.com/Eqn_RGB_to_XYZ.html - -func linearize(v float64) float64 { - if v <= 0.04045 { - return v / 12.92 - } - return math.Pow((v+0.055)/1.055, 2.4) -} - -// LinearRgb converts the color into the linear RGB space (see http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/). -func (col Color) LinearRgb() (r, g, b float64) { - r = linearize(col.R) - g = linearize(col.G) - b = linearize(col.B) - return -} - -// A much faster and still quite precise linearization using a 6th-order Taylor approximation. -// See the accompanying Jupyter notebook for derivation of the constants. -func linearize_fast(v float64) float64 { - v1 := v - 0.5 - v2 := v1 * v1 - v3 := v2 * v1 - v4 := v2 * v2 - //v5 := v3*v2 - return -0.248750514614486 + 0.925583310193438*v + 1.16740237321695*v2 + 0.280457026598666*v3 - 0.0757991963780179*v4 //+ 0.0437040411548932*v5 -} - -// FastLinearRgb is much faster than and almost as accurate as LinearRgb. -// BUT it is important to NOTE that they only produce good results for valid colors r,g,b in [0,1]. -func (col Color) FastLinearRgb() (r, g, b float64) { - r = linearize_fast(col.R) - g = linearize_fast(col.G) - b = linearize_fast(col.B) - return -} - -func delinearize(v float64) float64 { - if v <= 0.0031308 { - return 12.92 * v - } - return 1.055*math.Pow(v, 1.0/2.4) - 0.055 -} - -// LinearRgb creates an sRGB color out of the given linear RGB color (see http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/). -func LinearRgb(r, g, b float64) Color { - return Color{delinearize(r), delinearize(g), delinearize(b)} -} - -func delinearize_fast(v float64) float64 { - // This function (fractional root) is much harder to linearize, so we need to split. - if v > 0.2 { - v1 := v - 0.6 - v2 := v1 * v1 - v3 := v2 * v1 - v4 := v2 * v2 - v5 := v3 * v2 - return 0.442430344268235 + 0.592178981271708*v - 0.287864782562636*v2 + 0.253214392068985*v3 - 0.272557158129811*v4 + 0.325554383321718*v5 - } else if v > 0.03 { - v1 := v - 0.115 - v2 := v1 * v1 - v3 := v2 * v1 - v4 := v2 * v2 - v5 := v3 * v2 - return 0.194915592891669 + 1.55227076330229*v - 3.93691860257828*v2 + 18.0679839248761*v3 - 101.468750302746*v4 + 632.341487393927*v5 - } else { - v1 := v - 0.015 - v2 := v1 * v1 - v3 := v2 * v1 - v4 := v2 * v2 - v5 := v3 * v2 - // You can clearly see from the involved constants that the low-end is highly nonlinear. - return 0.0519565234928877 + 5.09316778537561*v - 99.0338180489702*v2 + 3484.52322764895*v3 - 150028.083412663*v4 + 7168008.42971613*v5 - } -} - -// FastLinearRgb is much faster than and almost as accurate as LinearRgb. -// BUT it is important to NOTE that they only produce good results for valid inputs r,g,b in [0,1]. -func FastLinearRgb(r, g, b float64) Color { - return Color{delinearize_fast(r), delinearize_fast(g), delinearize_fast(b)} -} - -// XyzToLinearRgb converts from CIE XYZ-space to Linear RGB space. -func XyzToLinearRgb(x, y, z float64) (r, g, b float64) { - r = 3.2409699419045214*x - 1.5373831775700935*y - 0.49861076029300328*z - g = -0.96924363628087983*x + 1.8759675015077207*y + 0.041555057407175613*z - b = 0.055630079696993609*x - 0.20397695888897657*y + 1.0569715142428786*z - return -} - -func LinearRgbToXyz(r, g, b float64) (x, y, z float64) { - x = 0.41239079926595948*r + 0.35758433938387796*g + 0.18048078840183429*b - y = 0.21263900587151036*r + 0.71516867876775593*g + 0.072192315360733715*b - z = 0.019330818715591851*r + 0.11919477979462599*g + 0.95053215224966058*b - return -} - -/// XYZ /// -/////////// -// http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/ - -func (col Color) Xyz() (x, y, z float64) { - return LinearRgbToXyz(col.LinearRgb()) -} - -func Xyz(x, y, z float64) Color { - return LinearRgb(XyzToLinearRgb(x, y, z)) -} - -/// xyY /// -/////////// -// http://www.brucelindbloom.com/Eqn_XYZ_to_xyY.html - -// Well, the name is bad, since it's xyY but Golang needs me to start with a -// capital letter to make the method public. -func XyzToXyy(X, Y, Z float64) (x, y, Yout float64) { - return XyzToXyyWhiteRef(X, Y, Z, D65) -} - -func XyzToXyyWhiteRef(X, Y, Z float64, wref [3]float64) (x, y, Yout float64) { - Yout = Y - N := X + Y + Z - if math.Abs(N) < 1e-14 { - // When we have black, Bruce Lindbloom recommends to use - // the reference white's chromacity for x and y. - x = wref[0] / (wref[0] + wref[1] + wref[2]) - y = wref[1] / (wref[0] + wref[1] + wref[2]) - } else { - x = X / N - y = Y / N - } - return -} - -func XyyToXyz(x, y, Y float64) (X, Yout, Z float64) { - Yout = Y - - if -1e-14 < y && y < 1e-14 { - X = 0.0 - Z = 0.0 - } else { - X = Y / y * x - Z = Y / y * (1.0 - x - y) - } - - return -} - -// Converts the given color to CIE xyY space using D65 as reference white. -// (Note that the reference white is only used for black input.) -// x, y and Y are in [0..1] -func (col Color) Xyy() (x, y, Y float64) { - return XyzToXyy(col.Xyz()) -} - -// Converts the given color to CIE xyY space, taking into account -// a given reference white. (i.e. the monitor's white) -// (Note that the reference white is only used for black input.) -// x, y and Y are in [0..1] -func (col Color) XyyWhiteRef(wref [3]float64) (x, y, Y float64) { - X, Y2, Z := col.Xyz() - return XyzToXyyWhiteRef(X, Y2, Z, wref) -} - -// Generates a color by using data given in CIE xyY space. -// x, y and Y are in [0..1] -func Xyy(x, y, Y float64) Color { - return Xyz(XyyToXyz(x, y, Y)) -} - -/// L*a*b* /// -////////////// -// http://en.wikipedia.org/wiki/Lab_color_space#CIELAB-CIEXYZ_conversions -// For L*a*b*, we need to L*a*b*<->XYZ->RGB and the first one is device dependent. - -func lab_f(t float64) float64 { - if t > 6.0/29.0*6.0/29.0*6.0/29.0 { - return math.Cbrt(t) - } - return t/3.0*29.0/6.0*29.0/6.0 + 4.0/29.0 -} - -func XyzToLab(x, y, z float64) (l, a, b float64) { - // Use D65 white as reference point by default. - // http://www.fredmiranda.com/forum/topic/1035332 - // http://en.wikipedia.org/wiki/Standard_illuminant - return XyzToLabWhiteRef(x, y, z, D65) -} - -func XyzToLabWhiteRef(x, y, z float64, wref [3]float64) (l, a, b float64) { - fy := lab_f(y / wref[1]) - l = 1.16*fy - 0.16 - a = 5.0 * (lab_f(x/wref[0]) - fy) - b = 2.0 * (fy - lab_f(z/wref[2])) - return -} - -func lab_finv(t float64) float64 { - if t > 6.0/29.0 { - return t * t * t - } - return 3.0 * 6.0 / 29.0 * 6.0 / 29.0 * (t - 4.0/29.0) -} - -func LabToXyz(l, a, b float64) (x, y, z float64) { - // D65 white (see above). - return LabToXyzWhiteRef(l, a, b, D65) -} - -func LabToXyzWhiteRef(l, a, b float64, wref [3]float64) (x, y, z float64) { - l2 := (l + 0.16) / 1.16 - x = wref[0] * lab_finv(l2+a/5.0) - y = wref[1] * lab_finv(l2) - z = wref[2] * lab_finv(l2-b/2.0) - return -} - -// Converts the given color to CIE L*a*b* space using D65 as reference white. -func (col Color) Lab() (l, a, b float64) { - return XyzToLab(col.Xyz()) -} - -// Converts the given color to CIE L*a*b* space, taking into account -// a given reference white. (i.e. the monitor's white) -func (col Color) LabWhiteRef(wref [3]float64) (l, a, b float64) { - x, y, z := col.Xyz() - return XyzToLabWhiteRef(x, y, z, wref) -} - -// Generates a color by using data given in CIE L*a*b* space using D65 as reference white. -// WARNING: many combinations of `l`, `a`, and `b` values do not have corresponding -// valid RGB values, check the FAQ in the README if you're unsure. -func Lab(l, a, b float64) Color { - return Xyz(LabToXyz(l, a, b)) -} - -// Generates a color by using data given in CIE L*a*b* space, taking -// into account a given reference white. (i.e. the monitor's white) -func LabWhiteRef(l, a, b float64, wref [3]float64) Color { - return Xyz(LabToXyzWhiteRef(l, a, b, wref)) -} - -// DistanceLab is a good measure of visual similarity between two colors! -// A result of 0 would mean identical colors, while a result of 1 or higher -// means the colors differ a lot. -func (c1 Color) DistanceLab(c2 Color) float64 { - l1, a1, b1 := c1.Lab() - l2, a2, b2 := c2.Lab() - return math.Sqrt(sq(l1-l2) + sq(a1-a2) + sq(b1-b2)) -} - -// DistanceCIE76 is the same as DistanceLab. -func (c1 Color) DistanceCIE76(c2 Color) float64 { - return c1.DistanceLab(c2) -} - -// Uses the CIE94 formula to calculate color distance. More accurate than -// DistanceLab, but also more work. -func (cl Color) DistanceCIE94(cr Color) float64 { - l1, a1, b1 := cl.Lab() - l2, a2, b2 := cr.Lab() - - // NOTE: Since all those formulas expect L,a,b values 100x larger than we - // have them in this library, we either need to adjust all constants - // in the formula, or convert the ranges of L,a,b before, and then - // scale the distances down again. The latter is less error-prone. - l1, a1, b1 = l1*100.0, a1*100.0, b1*100.0 - l2, a2, b2 = l2*100.0, a2*100.0, b2*100.0 - - kl := 1.0 // 2.0 for textiles - kc := 1.0 - kh := 1.0 - k1 := 0.045 // 0.048 for textiles - k2 := 0.015 // 0.014 for textiles. - - deltaL := l1 - l2 - c1 := math.Sqrt(sq(a1) + sq(b1)) - c2 := math.Sqrt(sq(a2) + sq(b2)) - deltaCab := c1 - c2 - - // Not taking Sqrt here for stability, and it's unnecessary. - deltaHab2 := sq(a1-a2) + sq(b1-b2) - sq(deltaCab) - sl := 1.0 - sc := 1.0 + k1*c1 - sh := 1.0 + k2*c1 - - vL2 := sq(deltaL / (kl * sl)) - vC2 := sq(deltaCab / (kc * sc)) - vH2 := deltaHab2 / sq(kh*sh) - - return math.Sqrt(vL2+vC2+vH2) * 0.01 // See above. -} - -// DistanceCIEDE2000 uses the Delta E 2000 formula to calculate color -// distance. It is more expensive but more accurate than both DistanceLab -// and DistanceCIE94. -func (cl Color) DistanceCIEDE2000(cr Color) float64 { - return cl.DistanceCIEDE2000klch(cr, 1.0, 1.0, 1.0) -} - -// DistanceCIEDE2000klch uses the Delta E 2000 formula with custom values -// for the weighting factors kL, kC, and kH. -func (cl Color) DistanceCIEDE2000klch(cr Color, kl, kc, kh float64) float64 { - l1, a1, b1 := cl.Lab() - l2, a2, b2 := cr.Lab() - - // As with CIE94, we scale up the ranges of L,a,b beforehand and scale - // them down again afterwards. - l1, a1, b1 = l1*100.0, a1*100.0, b1*100.0 - l2, a2, b2 = l2*100.0, a2*100.0, b2*100.0 - - cab1 := math.Sqrt(sq(a1) + sq(b1)) - cab2 := math.Sqrt(sq(a2) + sq(b2)) - cabmean := (cab1 + cab2) / 2 - - g := 0.5 * (1 - math.Sqrt(math.Pow(cabmean, 7)/(math.Pow(cabmean, 7)+math.Pow(25, 7)))) - ap1 := (1 + g) * a1 - ap2 := (1 + g) * a2 - cp1 := math.Sqrt(sq(ap1) + sq(b1)) - cp2 := math.Sqrt(sq(ap2) + sq(b2)) - - hp1 := 0.0 - if b1 != ap1 || ap1 != 0 { - hp1 = math.Atan2(b1, ap1) - if hp1 < 0 { - hp1 += math.Pi * 2 - } - hp1 *= 180 / math.Pi - } - hp2 := 0.0 - if b2 != ap2 || ap2 != 0 { - hp2 = math.Atan2(b2, ap2) - if hp2 < 0 { - hp2 += math.Pi * 2 - } - hp2 *= 180 / math.Pi - } - - deltaLp := l2 - l1 - deltaCp := cp2 - cp1 - dhp := 0.0 - cpProduct := cp1 * cp2 - if cpProduct != 0 { - dhp = hp2 - hp1 - if dhp > 180 { - dhp -= 360 - } else if dhp < -180 { - dhp += 360 - } - } - deltaHp := 2 * math.Sqrt(cpProduct) * math.Sin(dhp/2*math.Pi/180) - - lpmean := (l1 + l2) / 2 - cpmean := (cp1 + cp2) / 2 - hpmean := hp1 + hp2 - if cpProduct != 0 { - hpmean /= 2 - if math.Abs(hp1-hp2) > 180 { - if hp1+hp2 < 360 { - hpmean += 180 - } else { - hpmean -= 180 - } - } - } - - t := 1 - 0.17*math.Cos((hpmean-30)*math.Pi/180) + 0.24*math.Cos(2*hpmean*math.Pi/180) + 0.32*math.Cos((3*hpmean+6)*math.Pi/180) - 0.2*math.Cos((4*hpmean-63)*math.Pi/180) - deltaTheta := 30 * math.Exp(-sq((hpmean-275)/25)) - rc := 2 * math.Sqrt(math.Pow(cpmean, 7)/(math.Pow(cpmean, 7)+math.Pow(25, 7))) - sl := 1 + (0.015*sq(lpmean-50))/math.Sqrt(20+sq(lpmean-50)) - sc := 1 + 0.045*cpmean - sh := 1 + 0.015*cpmean*t - rt := -math.Sin(2*deltaTheta*math.Pi/180) * rc - - return math.Sqrt(sq(deltaLp/(kl*sl))+sq(deltaCp/(kc*sc))+sq(deltaHp/(kh*sh))+rt*(deltaCp/(kc*sc))*(deltaHp/(kh*sh))) * 0.01 -} - -// BlendLab blends two colors in the L*a*b* color-space, which should result in a smoother blend. -// t == 0 results in c1, t == 1 results in c2 -func (c1 Color) BlendLab(c2 Color, t float64) Color { - l1, a1, b1 := c1.Lab() - l2, a2, b2 := c2.Lab() - return Lab(l1+t*(l2-l1), - a1+t*(a2-a1), - b1+t*(b2-b1)) -} - -/// L*u*v* /// -////////////// -// http://en.wikipedia.org/wiki/CIELUV#XYZ_.E2.86.92_CIELUV_and_CIELUV_.E2.86.92_XYZ_conversions -// For L*u*v*, we need to L*u*v*<->XYZ<->RGB and the first one is device dependent. - -func XyzToLuv(x, y, z float64) (l, a, b float64) { - // Use D65 white as reference point by default. - // http://www.fredmiranda.com/forum/topic/1035332 - // http://en.wikipedia.org/wiki/Standard_illuminant - return XyzToLuvWhiteRef(x, y, z, D65) -} - -func XyzToLuvWhiteRef(x, y, z float64, wref [3]float64) (l, u, v float64) { - if y/wref[1] <= 6.0/29.0*6.0/29.0*6.0/29.0 { - l = y / wref[1] * (29.0 / 3.0 * 29.0 / 3.0 * 29.0 / 3.0) / 100.0 - } else { - l = 1.16*math.Cbrt(y/wref[1]) - 0.16 - } - ubis, vbis := xyz_to_uv(x, y, z) - un, vn := xyz_to_uv(wref[0], wref[1], wref[2]) - u = 13.0 * l * (ubis - un) - v = 13.0 * l * (vbis - vn) - return -} - -// For this part, we do as R's graphics.hcl does, not as wikipedia does. -// Or is it the same? -func xyz_to_uv(x, y, z float64) (u, v float64) { - denom := x + 15.0*y + 3.0*z - if denom == 0.0 { - u, v = 0.0, 0.0 - } else { - u = 4.0 * x / denom - v = 9.0 * y / denom - } - return -} - -func LuvToXyz(l, u, v float64) (x, y, z float64) { - // D65 white (see above). - return LuvToXyzWhiteRef(l, u, v, D65) -} - -func LuvToXyzWhiteRef(l, u, v float64, wref [3]float64) (x, y, z float64) { - //y = wref[1] * lab_finv((l + 0.16) / 1.16) - if l <= 0.08 { - y = wref[1] * l * 100.0 * 3.0 / 29.0 * 3.0 / 29.0 * 3.0 / 29.0 - } else { - y = wref[1] * cub((l+0.16)/1.16) - } - un, vn := xyz_to_uv(wref[0], wref[1], wref[2]) - if l != 0.0 { - ubis := u/(13.0*l) + un - vbis := v/(13.0*l) + vn - x = y * 9.0 * ubis / (4.0 * vbis) - z = y * (12.0 - 3.0*ubis - 20.0*vbis) / (4.0 * vbis) - } else { - x, y = 0.0, 0.0 - } - return -} - -// Converts the given color to CIE L*u*v* space using D65 as reference white. -// L* is in [0..1] and both u* and v* are in about [-1..1] -func (col Color) Luv() (l, u, v float64) { - return XyzToLuv(col.Xyz()) -} - -// Converts the given color to CIE L*u*v* space, taking into account -// a given reference white. (i.e. the monitor's white) -// L* is in [0..1] and both u* and v* are in about [-1..1] -func (col Color) LuvWhiteRef(wref [3]float64) (l, u, v float64) { - x, y, z := col.Xyz() - return XyzToLuvWhiteRef(x, y, z, wref) -} - -// Generates a color by using data given in CIE L*u*v* space using D65 as reference white. -// L* is in [0..1] and both u* and v* are in about [-1..1] -// WARNING: many combinations of `l`, `u`, and `v` values do not have corresponding -// valid RGB values, check the FAQ in the README if you're unsure. -func Luv(l, u, v float64) Color { - return Xyz(LuvToXyz(l, u, v)) -} - -// Generates a color by using data given in CIE L*u*v* space, taking -// into account a given reference white. (i.e. the monitor's white) -// L* is in [0..1] and both u* and v* are in about [-1..1] -func LuvWhiteRef(l, u, v float64, wref [3]float64) Color { - return Xyz(LuvToXyzWhiteRef(l, u, v, wref)) -} - -// DistanceLuv is a good measure of visual similarity between two colors! -// A result of 0 would mean identical colors, while a result of 1 or higher -// means the colors differ a lot. -func (c1 Color) DistanceLuv(c2 Color) float64 { - l1, u1, v1 := c1.Luv() - l2, u2, v2 := c2.Luv() - return math.Sqrt(sq(l1-l2) + sq(u1-u2) + sq(v1-v2)) -} - -// BlendLuv blends two colors in the CIE-L*u*v* color-space, which should result in a smoother blend. -// t == 0 results in c1, t == 1 results in c2 -func (c1 Color) BlendLuv(c2 Color, t float64) Color { - l1, u1, v1 := c1.Luv() - l2, u2, v2 := c2.Luv() - return Luv(l1+t*(l2-l1), - u1+t*(u2-u1), - v1+t*(v2-v1)) -} - -/// HCL /// -/////////// -// HCL is nothing else than L*a*b* in cylindrical coordinates! -// (this was wrong on English wikipedia, I fixed it, let's hope the fix stays.) -// But it is widely popular since it is a "correct HSV" -// http://www.hunterlab.com/appnotes/an09_96a.pdf - -// Converts the given color to HCL space using D65 as reference white. -// H values are in [0..360], C and L values are in [0..1] although C can overshoot 1.0 -func (col Color) Hcl() (h, c, l float64) { - return col.HclWhiteRef(D65) -} - -func LabToHcl(L, a, b float64) (h, c, l float64) { - // Oops, floating point workaround necessary if a ~= b and both are very small (i.e. almost zero). - if math.Abs(b-a) > 1e-4 && math.Abs(a) > 1e-4 { - h = math.Mod(57.29577951308232087721*math.Atan2(b, a)+360.0, 360.0) // Rad2Deg - } else { - h = 0.0 - } - c = math.Sqrt(sq(a) + sq(b)) - l = L - return -} - -// Converts the given color to HCL space, taking into account -// a given reference white. (i.e. the monitor's white) -// H values are in [0..360], C and L values are in [0..1] -func (col Color) HclWhiteRef(wref [3]float64) (h, c, l float64) { - L, a, b := col.LabWhiteRef(wref) - return LabToHcl(L, a, b) -} - -// Generates a color by using data given in HCL space using D65 as reference white. -// H values are in [0..360], C and L values are in [0..1] -// WARNING: many combinations of `h`, `c`, and `l` values do not have corresponding -// valid RGB values, check the FAQ in the README if you're unsure. -func Hcl(h, c, l float64) Color { - return HclWhiteRef(h, c, l, D65) -} - -func HclToLab(h, c, l float64) (L, a, b float64) { - H := 0.01745329251994329576 * h // Deg2Rad - a = c * math.Cos(H) - b = c * math.Sin(H) - L = l - return -} - -// Generates a color by using data given in HCL space, taking -// into account a given reference white. (i.e. the monitor's white) -// H values are in [0..360], C and L values are in [0..1] -func HclWhiteRef(h, c, l float64, wref [3]float64) Color { - L, a, b := HclToLab(h, c, l) - return LabWhiteRef(L, a, b, wref) -} - -// BlendHcl blends two colors in the CIE-L*C*h° color-space, which should result in a smoother blend. -// t == 0 results in c1, t == 1 results in c2 -func (col1 Color) BlendHcl(col2 Color, t float64) Color { - h1, c1, l1 := col1.Hcl() - h2, c2, l2 := col2.Hcl() - - // We know that h are both in [0..360] - return Hcl(interp_angle(h1, h2, t), c1+t*(c2-c1), l1+t*(l2-l1)).Clamped() -} - -// LuvLch - -// Converts the given color to LuvLCh space using D65 as reference white. -// h values are in [0..360], C and L values are in [0..1] although C can overshoot 1.0 -func (col Color) LuvLCh() (l, c, h float64) { - return col.LuvLChWhiteRef(D65) -} - -func LuvToLuvLCh(L, u, v float64) (l, c, h float64) { - // Oops, floating point workaround necessary if u ~= v and both are very small (i.e. almost zero). - if math.Abs(v-u) > 1e-4 && math.Abs(u) > 1e-4 { - h = math.Mod(57.29577951308232087721*math.Atan2(v, u)+360.0, 360.0) // Rad2Deg - } else { - h = 0.0 - } - l = L - c = math.Sqrt(sq(u) + sq(v)) - return -} - -// Converts the given color to LuvLCh space, taking into account -// a given reference white. (i.e. the monitor's white) -// h values are in [0..360], c and l values are in [0..1] -func (col Color) LuvLChWhiteRef(wref [3]float64) (l, c, h float64) { - return LuvToLuvLCh(col.LuvWhiteRef(wref)) -} - -// Generates a color by using data given in LuvLCh space using D65 as reference white. -// h values are in [0..360], C and L values are in [0..1] -// WARNING: many combinations of `l`, `c`, and `h` values do not have corresponding -// valid RGB values, check the FAQ in the README if you're unsure. -func LuvLCh(l, c, h float64) Color { - return LuvLChWhiteRef(l, c, h, D65) -} - -func LuvLChToLuv(l, c, h float64) (L, u, v float64) { - H := 0.01745329251994329576 * h // Deg2Rad - u = c * math.Cos(H) - v = c * math.Sin(H) - L = l - return -} - -// Generates a color by using data given in LuvLCh space, taking -// into account a given reference white. (i.e. the monitor's white) -// h values are in [0..360], C and L values are in [0..1] -func LuvLChWhiteRef(l, c, h float64, wref [3]float64) Color { - L, u, v := LuvLChToLuv(l, c, h) - return LuvWhiteRef(L, u, v, wref) -} - -// BlendLuvLCh blends two colors in the cylindrical CIELUV color space. -// t == 0 results in c1, t == 1 results in c2 -func (col1 Color) BlendLuvLCh(col2 Color, t float64) Color { - l1, c1, h1 := col1.LuvLCh() - l2, c2, h2 := col2.LuvLCh() - - // We know that h are both in [0..360] - return LuvLCh(l1+t*(l2-l1), c1+t*(c2-c1), interp_angle(h1, h2, t)) -} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/go.mod b/vendor/github.com/lucasb-eyer/go-colorful/go.mod deleted file mode 100644 index 35925f3..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/lucasb-eyer/go-colorful - -go 1.12 diff --git a/vendor/github.com/lucasb-eyer/go-colorful/happy_palettegen.go b/vendor/github.com/lucasb-eyer/go-colorful/happy_palettegen.go deleted file mode 100644 index bb66dfa..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/happy_palettegen.go +++ /dev/null @@ -1,25 +0,0 @@ -package colorful - -import ( - "math/rand" -) - -// Uses the HSV color space to generate colors with similar S,V but distributed -// evenly along their Hue. This is fast but not always pretty. -// If you've got time to spare, use Lab (the non-fast below). -func FastHappyPalette(colorsCount int) (colors []Color) { - colors = make([]Color, colorsCount) - - for i := 0; i < colorsCount; i++ { - colors[i] = Hsv(float64(i)*(360.0/float64(colorsCount)), 0.8+rand.Float64()*0.2, 0.65+rand.Float64()*0.2) - } - return -} - -func HappyPalette(colorsCount int) ([]Color, error) { - pimpy := func(l, a, b float64) bool { - _, c, _ := LabToHcl(l, a, b) - return 0.3 <= c && 0.4 <= l && l <= 0.8 - } - return SoftPaletteEx(colorsCount, SoftPaletteSettings{pimpy, 50, true}) -} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go b/vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go deleted file mode 100644 index 76f31d8..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go +++ /dev/null @@ -1,67 +0,0 @@ -package colorful - -import ( - "database/sql/driver" - "encoding/json" - "fmt" - "reflect" -) - -// A HexColor is a Color stored as a hex string "#rrggbb". It implements the -// database/sql.Scanner, database/sql/driver.Value, -// encoding/json.Unmarshaler and encoding/json.Marshaler interfaces. -type HexColor Color - -type errUnsupportedType struct { - got interface{} - want reflect.Type -} - -func (hc *HexColor) Scan(value interface{}) error { - s, ok := value.(string) - if !ok { - return errUnsupportedType{got: reflect.TypeOf(value), want: reflect.TypeOf("")} - } - c, err := Hex(s) - if err != nil { - return err - } - *hc = HexColor(c) - return nil -} - -func (hc *HexColor) Value() (driver.Value, error) { - return Color(*hc).Hex(), nil -} - -func (e errUnsupportedType) Error() string { - return fmt.Sprintf("unsupported type: got %v, want a %s", e.got, e.want) -} - -func (hc *HexColor) UnmarshalJSON(data []byte) error { - var hexCode string - if err := json.Unmarshal(data, &hexCode); err != nil { - return err - } - - var col, err = Hex(hexCode) - if err != nil { - return err - } - *hc = HexColor(col) - return nil -} - -func (hc HexColor) MarshalJSON() ([]byte, error) { - return json.Marshal(Color(hc).Hex()) -} - -// Decode - deserialize function for https://github.com/kelseyhightower/envconfig -func (hc *HexColor) Decode(hexCode string) error { - var col, err = Hex(hexCode) - if err != nil { - return err - } - *hc = HexColor(col) - return nil -} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/hsluv-snapshot-rev4.json b/vendor/github.com/lucasb-eyer/go-colorful/hsluv-snapshot-rev4.json deleted file mode 100644 index 16354ab..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/hsluv-snapshot-rev4.json +++ /dev/null @@ -1 +0,0 @@ -{"#11ee00":{"lch":[82.5213119008325577,127.202882727266427,127.478988192005161],"luv":[82.5213119008325577,-77.3991947082883627,100.945222931227221],"rgb":[0.0666666666666666657,0.933333333333333348,0],"xyz":[0.308043578886299796,0.612655858810891907,0.102019012460713238],"hpluv":[127.478988192005161,308.195222762673438,82.5213119008325577],"hsluv":[127.478988192005161,100.000000000002416,82.5213119008325577]},"#11ee11":{"lch":[82.5429986110943759,126.352581314528209,127.715012949240403],"luv":[82.5429986110943759,-77.2942129186682,99.9528861720763473],"rgb":[0.0666666666666666657,0.933333333333333348,0.0666666666666666657],"xyz":[0.3090552443859369,0.613060525010746815,0.107347117425468874],"hpluv":[127.715012949240403,306.573296560288782,82.5429986110943759],"hsluv":[127.715012949240403,98.9038130800949205,82.5429986110943759]},"#11ee22":{"lch":[82.5831747617793184,124.791738379333623,128.158354445562821],"luv":[82.5831747617793184,-77.1009570540098,98.1245147202868253],"rgb":[0.0666666666666666657,0.933333333333333348,0.133333333333333331],"xyz":[0.310930602524413957,0.613810668266137616,0.117224003621448067],"hpluv":[128.158354445562821,303.59085997924285,82.5831747617793184],"hsluv":[128.158354445562821,98.9085620232469864,82.5831747617793184]},"#11ee33":{"lch":[82.6492529720821381,122.265269823008623,128.905098358231896],"luv":[82.6492529720821381,-76.7865393115689301,95.1452762119380537],"rgb":[0.0666666666666666657,0.933333333333333348,0.2],"xyz":[0.314018353256871663,0.615045768559120742,0.133486157479059203],"hpluv":[128.905098358231896,298.749143147736106,82.6492529720821381],"hsluv":[128.905098358231896,98.916292078887,82.6492529720821381]},"#11ee44":{"lch":[82.7444986901015511,118.712635154498344,130.021230388522838],"luv":[82.7444986901015511,-76.3407023620842,90.9108734321077],"rgb":[0.0666666666666666657,0.933333333333333348,0.266666666666666663],"xyz":[0.318476348501090578,0.616828966656808308,0.156964932431945842],"hpluv":[130.021230388522838,291.911386756693616,82.7444986901015511],"hsluv":[130.021230388522838,98.9272612770947148,82.7444986901015511]},"#11ee55":{"lch":[82.8716000285422894,114.135934527262179,131.587310643629934],"luv":[82.8716000285422894,-75.758934185545,85.3674144008224],"rgb":[0.0666666666666666657,0.933333333333333348,0.333333333333333315],"xyz":[0.324438762540452563,0.619213932272553058,0.188366979705919757],"hpluv":[131.587310643629934,283.052591495130912,82.8716000285422894],"hsluv":[131.587310643629934,98.941589727101146,82.8716000285422894]},"#11ee66":{"lch":[83.0328193013522622,108.602333046050703,133.707640253052432],"luv":[83.0328193013522622,-75.0419109433949103,78.5059128028513697],"rgb":[0.0666666666666666657,0.933333333333333348,0.4],"xyz":[0.332023758313960748,0.622247930581956377,0.228314624113063719],"hpluv":[133.707640253052432,272.269449526145593,83.0328193013522622],"hsluv":[133.707640253052432,98.9592735060659,83.0328193013522622]},"#11ee77":{"lch":[83.2300736177455747,102.250357200027821,136.520544097163679],"luv":[83.2300736177455747,-74.1950209885278866,70.3579022430685228],"rgb":[0.0666666666666666657,0.933333333333333348,0.466666666666666674],"xyz":[0.341337771334162654,0.625973535790037228,0.277368426019461656],"hpluv":[136.520544097163679,259.803949175129901,83.2300736177455747],"hsluv":[136.520544097163679,98.9801962733070155,83.2300736177455747]},"#11ee88":{"lch":[83.4649827070576151,95.3003261118453651,140.209511574476238],"luv":[83.4649827070576151,-73.2277962837693082,60.990507527375577],"rgb":[0.0666666666666666657,0.933333333333333348,0.533333333333333326],"xyz":[0.352478188436106454,0.63042970263081477,0.336041289423033795],"hpluv":[140.209511574476238,246.084644167270028,83.4649827070576151],"hsluv":[140.209511574476238,99.0041428894333109,83.4649827070576151]},"#11ee99":{"lch":[83.7388997377875626,88.07037792773761,145.011549795441141],"luv":[83.7388997377875626,-72.1532115864445416,50.5005497603372433],"rgb":[0.0666666666666666657,0.933333333333333348,0.6],"xyz":[0.365535152545179209,0.635652488274444,0.404807967064151675],"hpluv":[145.011549795441141,231.793725377578141,83.7388997377875626],"hsluv":[145.011549795441141,99.0308160530368582,83.7388997377875626]},"#11eeaa":{"lch":[84.0529327571252907,80.9984265129003802,151.210882439188083],"luv":[84.0529327571252907,-70.9868724309634729,39.0078074241021824],"rgb":[0.0666666666666666657,0.933333333333333348,0.66666666666666663],"xyz":[0.38059284551043171,0.641675565460545,0.484111816681150331],"hpluv":[151.210882439188083,217.967504021816438,84.0529327571252907],"hsluv":[151.210882439188083,99.0598554997167895,84.0529327571252907]},"#11eebb":{"lch":[84.4079608499599914,74.6634505604909435,159.089705667287262],"luv":[84.4079608499599914,-69.7461428935043273,26.6478216947980826],"rgb":[0.0666666666666666657,0.933333333333333348,0.733333333333333282],"xyz":[0.397730437617768384,0.648530602303479808,0.574369801779792],"hpluv":[159.089705667287262,206.122134265545043,84.4079608499599914],"hsluv":[159.089705667287262,99.0908585861444209,84.4079608499599914]},"#11eecc":{"lch":[84.8046473826435,69.7804076798411,168.790807110150524],"luv":[84.8046473826435,-68.449275126866155,13.5647348138992196],"rgb":[0.0666666666666666657,0.933333333333333348,0.8],"xyz":[0.417022813061490139,0.656247552480968666,0.675976312450062178],"hpluv":[168.790807110150524,198.342538571842852,84.8046473826435],"hsluv":[168.790807110150524,99.123400814408285,84.8046473826435]},"#11eedd":{"lch":[85.2434517572140749,67.1146678094459,180.081412911690762],"luv":[85.2434517572140749,-67.114600056421537,-0.0953647673755886743],"rgb":[0.0666666666666666657,0.933333333333333348,0.866666666666666696],"xyz":[0.438541138612123627,0.664854882701222172,0.789306160350068176],"hpluv":[180.081412911690762,197.173954094180345,85.2434517572140749],"hsluv":[180.081412911690762,99.1570549081779546,85.2434517572140749]},"#11eeee":{"lch":[85.7246405502341275,67.2734484234975,192.17705063006116],"luv":[85.7246405502341275,-65.759826803247222,-14.1902093570146306],"rgb":[0.0666666666666666657,0.933333333333333348,0.933333333333333348],"xyz":[0.462353318878298392,0.674379754807692189,0.914716976418591399],"hpluv":[192.17705063006116,205.138082793863816,85.7246405502341275],"hsluv":[192.17705063006116,99.1914073274009098,85.7246405502341275]},"#11eeff":{"lch":[86.2482985645723517,70.4606934075819282,203.935071880927921],"luv":[86.2482985645723517,-64.401481656171029,-28.585983907627277],"rgb":[0.0666666666666666657,0.933333333333333348,1],"xyz":[0.488524367288129757,0.684848174171624913,1.05255116471037335],"hpluv":[203.935071880927921,224.026806300523,86.2482985645723517],"hsluv":[203.935071880927921,99.9999999999942304,86.2482985645723517]},"#11ff00":{"lch":[87.7931168603164,135.408535196841626,127.513270797457935],"luv":[87.7931168603164,-82.4563732780469,107.407718111808407],"rgb":[0.0666666666666666657,1,0],"xyz":[0.359895951315973628,0.716360603670241,0.119303136603937349],"hpluv":[127.513270797457935,491.310985978769054,87.7931168603164],"hsluv":[127.513270797457935,100.000000000002373,87.7931168603164]},"#11ff11":{"lch":[87.8126571401035108,134.634318462908169,127.715012949240432],"luv":[87.8126571401035108,-82.3604359259359313,106.50426424355777],"rgb":[0.0666666666666666657,1,0.0666666666666666657],"xyz":[0.360907616815610732,0.716765269870095922,0.124631241568692985],"hpluv":[127.715012949240432,489.364334505449051,87.8126571401035108],"hsluv":[127.715012949240432,99.999999999991914,87.8126571401035108]},"#11ff22":{"lch":[87.848860165327963,133.211117719966126,128.093229681784152],"luv":[87.848860165327963,-82.1836510367646,104.838205757586152],"rgb":[0.0666666666666666657,1,0.133333333333333331],"xyz":[0.362782974954087789,0.717515413125486723,0.134508127764672164],"hpluv":[128.093229681784152,485.7796458877379,87.848860165327963],"hsluv":[128.093229681784152,99.9999999999918572,87.848860165327963]},"#11ff33":{"lch":[87.9084130007832698,130.901693692038833,128.728166832562891],"luv":[87.9084130007832698,-81.8955348861488659,102.119414300885666],"rgb":[0.0666666666666666657,1,0.2],"xyz":[0.365870725686545495,0.71875051341846985,0.150770281622283314],"hpluv":[128.728166832562891,479.945632467831388,87.9084130007832698],"hsluv":[128.728166832562891,99.9999999999919567,87.9084130007832698]},"#11ff44":{"lch":[87.9942732352876,127.641489512823171,129.672386074694657],"luv":[87.9942732352876,-81.4859348177847806,98.2465891108891185],"rgb":[0.0666666666666666657,1,0.266666666666666663],"xyz":[0.37032872093076441,0.720533711516157416,0.174249056575169953],"hpluv":[129.672386074694657,471.674193406224788,87.9942732352876],"hsluv":[129.672386074694657,99.9999999999918856,87.9942732352876]},"#11ff55":{"lch":[88.1088871723243727,123.41738800901625,130.987994113812931],"luv":[88.1088871723243727,-80.9495722978130772,93.1612494966077662],"rgb":[0.0666666666666666657,1,0.333333333333333315],"xyz":[0.376291134970126395,0.722918677131902165,0.205651103849143868],"hpluv":[130.987994113812931,460.897243009671797,88.1088871723243727],"hsluv":[130.987994113812931,99.9999999999917,88.1088871723243727]},"#11ff66":{"lch":[88.2543278429396,118.268592142924746,132.753132104158254],"luv":[88.2543278429396,-80.2855559529031382,86.8429006471038],"rgb":[0.0666666666666666657,1,0.4],"xyz":[0.38387613074363458,0.725952675441305484,0.24559874825628783],"hpluv":[132.753132104158254,447.675525940365219,88.2543278429396],"hsluv":[132.753132104158254,99.9999999999916724,88.2543278429396]},"#11ff77":{"lch":[88.4323687925046613,112.290518027227137,135.069051083024959],"luv":[88.4323687925046613,-79.4970211443964558,79.3056370505300521],"rgb":[0.0666666666666666657,1,0.466666666666666674],"xyz":[0.393190143763836486,0.729678280649386335,0.294652550162685767],"hpluv":[135.069051083024959,432.222948715922314,88.4323687925046613],"hsluv":[135.069051083024959,99.999999999991644,88.4323687925046613]},"#11ff88":{"lch":[88.6445280109338825,105.641380676940045,138.068036362648229],"luv":[88.6445280109338825,-78.5907289650887577,70.5946076698930369],"rgb":[0.0666666666666666657,1,0.533333333333333326],"xyz":[0.404330560865780286,0.734134447490163877,0.353325413566257907],"hpluv":[138.068036362648229,414.95023459347243,88.6445280109338825],"hsluv":[138.068036362648229,99.9999999999915,88.6445280109338825]},"#11ff99":{"lch":[88.8920961876840465,98.552301258979881,141.921030988541872],"luv":[88.8920961876840465,-77.5765731609304225,60.7818342932124338],"rgb":[0.0666666666666666657,1,0.6],"xyz":[0.417387524974853,0.73935723313379309,0.422092091207375786],"hpluv":[141.921030988541872,396.537381185702543,88.8920961876840465],"hsluv":[141.921030988541872,99.9999999999913456,88.8920961876840465]},"#11ffaa":{"lch":[89.1761561490339147,91.3418654410923523,146.840553381528281],"luv":[89.1761561490339147,-76.4669946123218,49.9613362233014158],"rgb":[0.0666666666666666657,1,0.66666666666666663],"xyz":[0.432445217940105542,0.745380310319894157,0.501395940824374442],"hpluv":[146.840553381528281,378.048392077141443,89.1761561490339147],"hsluv":[146.840553381528281,99.9999999999913,89.1761561490339147]},"#11ffbb":{"lch":[89.4975971674113,84.4340589142561413,153.067388238784645],"luv":[89.4975971674113,-75.2763296710648859,38.2437510711127],"rgb":[0.0666666666666666657,1,0.733333333333333282],"xyz":[0.449582810047442216,0.752235347162828916,0.591653925923016133],"hpluv":[153.067388238784645,361.099415032935838,89.4975971674113],"hsluv":[153.067388238784645,99.9999999999909335,89.4975971674113]},"#11ffcc":{"lch":[89.8571262823018628,78.3714319324892159,160.817799258328876],"luv":[89.8571262823018628,-74.0201316086282901,25.7507564896672143],"rgb":[0.0666666666666666657,1,0.8],"xyz":[0.468875185491163915,0.759952297340317773,0.693260436593286289],"hpluv":[160.817799258328876,348.067615225706845,89.8571262823018628],"hsluv":[160.817799258328876,99.999999999991,89.8571262823018628]},"#11ffdd":{"lch":[90.2552779380141317,73.7997451229305,170.162013498752287],"luv":[90.2552779380141317,-72.7145076797264238,12.6096293801408788],"rgb":[0.0666666666666666657,1,0.866666666666666696],"xyz":[0.490393511041797514,0.768559627560571279,0.806590284493292287],"hpluv":[170.162013498752287,342.256686666565315,90.2552779380141317],"hsluv":[170.162013498752287,99.999999999990834,90.2552779380141317]},"#11ffee":{"lch":[90.6924227584195819,71.3832589696730793,180.844217403257659],"luv":[90.6924227584195819,-71.3755103944163665,-1.05174952720347981],"rgb":[0.0666666666666666657,1,0.933333333333333348],"xyz":[0.514205691307972224,0.778084499667041296,0.93200110056181551],"hpluv":[180.844217403257659,347.82122947809512,90.6924227584195819],"hsluv":[180.844217403257659,99.9999999999901803,90.6924227584195819]},"#11ffff":{"lch":[91.1687759776689859,71.6302608322469467,192.17705063006116],"luv":[91.1687759776689859,-70.0186129384549361,-15.1092061032524665],"rgb":[0.0666666666666666657,1,1],"xyz":[0.540376739717803645,0.788552919030974,1.06983528885359735],"hpluv":[192.17705063006116,369.258709956275879,91.1687759776689859],"hsluv":[192.17705063006116,99.9999999999898108,91.1687759776689859]},"#00aa00":{"lch":[60.5587499434736287,93.727653253516209,127.71501294924046],"luv":[60.5587499434736287,-57.3364240886418415,74.1445038903004559],"rgb":[0,0.66666666666666663,0],"xyz":[0.143740958848290495,0.287481917696585,0.0479136529494288144],"hpluv":[127.71501294924046,196.394882900214554,60.5587499434736287],"hsluv":[127.71501294924046,100.000000000002359,60.5587499434736287]},"#00aa11":{"lch":[60.5946550577951939,92.4075267438518182,128.220974416403209],"luv":[60.5946550577951939,-57.1721703645967665,72.5981675713458543],"rgb":[0,0.66666666666666663,0.0666666666666666657],"xyz":[0.144752624347927628,0.28788658389643984,0.0532417579141844441],"hpluv":[128.220974416403209,193.513984665985475,60.5946550577951939],"hsluv":[128.220974416403209,99.9999999999907772,60.5946550577951939]},"#00aa22":{"lch":[60.661124672570665,90.0113827545795715,129.185497299711983],"luv":[60.661124672570665,-56.8721735728637725,69.7682226983709199],"rgb":[0,0.66666666666666663,0.133333333333333331],"xyz":[0.146627982486404629,0.288636727151830641,0.0631186441101636436],"hpluv":[129.185497299711983,188.289586599726533,60.661124672570665],"hsluv":[129.185497299711983,99.9999999999908624,60.661124672570665]},"#00aa33":{"lch":[60.7703154938824355,86.2098857925288513,130.852037745481823],"luv":[60.7703154938824355,-56.3905639077229353,65.2092685937350751],"rgb":[0,0.66666666666666663,0.2],"xyz":[0.14971573321886239,0.289871827444813768,0.0793807979677747799],"hpluv":[130.852037745481823,180.013429236819462,60.7703154938824355],"hsluv":[130.852037745481823,99.9999999999908,60.7703154938824355]},"#00aa44":{"lch":[60.9274158721733841,81.0355822964375108,133.441426631804489],"luv":[60.9274158721733841,-55.7210928860807044,58.8381288426430444],"rgb":[0,0.66666666666666663,0.266666666666666663],"xyz":[0.15417372846308125,0.291655025542501334,0.102859572920661418],"hpluv":[133.441426631804489,168.77274926729055,60.9274158721733841],"hsluv":[133.441426631804489,99.9999999999908908,60.9274158721733841]},"#00aa55":{"lch":[61.1365343944832915,74.6960845180523592,137.272019015051796],"luv":[61.1365343944832915,-54.8704978500827636,50.6826746335676717],"rgb":[0,0.66666666666666663,0.333333333333333315],"xyz":[0.160136142502443235,0.294039991158246194,0.134261620194635334],"hpluv":[137.272019015051796,155.037353806827582,61.1365343944832915],"hsluv":[137.272019015051796,99.9999999999910614,61.1365343944832915]},"#00aa66":{"lch":[61.4009335299549264,67.6053275851037512,142.80970662058607],"luv":[61.4009335299549264,-53.8565898531593703,40.8649978254956139],"rgb":[0,0.66666666666666663,0.4],"xyz":[0.16772113827595142,0.297073989467649513,0.174209264601779296],"hpluv":[142.80970662058607,139.715720243970395,61.4009335299549264],"hsluv":[142.80970662058607,99.9999999999911893,61.4009335299549264]},"#00aa77":{"lch":[61.7231520087844814,60.4394033477847188,150.696962972825474],"luv":[61.7231520087844814,-52.7057786154446859,29.5807771631501382],"rgb":[0,0.66666666666666663,0.466666666666666674],"xyz":[0.177035151296153326,0.300799594675730309,0.223263066508177205],"hpluv":[150.696962972825474,124.254291935777843,61.7231520087844814],"hsluv":[150.696962972825474,99.9999999999911893,61.7231520087844814]},"#00aa88":{"lch":[62.1050795642419615,54.2095218153359397,161.640221068188367],"luv":[62.1050795642419615,-51.4501140589855126,17.0750700954568337],"rgb":[0,0.66666666666666663,0.533333333333333326],"xyz":[0.188175568398097182,0.305255761516507906,0.281935929911749372],"hpluv":[161.640221068188367,110.761232665855573,62.1050795642419615],"hsluv":[161.640221068188367,99.9999999999911466,62.1050795642419615]},"#00aa99":{"lch":[62.5480102999456307,50.2545412813378576,175.872445658321794],"luv":[62.5480102999456307,-50.1241952468173793,3.61717711159146882],"rgb":[0,0.66666666666666663,0.6],"xyz":[0.201232532507169881,0.310478547160137064,0.350702607552867307],"hpluv":[175.872445658321794,101.95326553071466,62.5480102999456307],"hsluv":[175.872445658321794,99.9999999999913314,62.5480102999456307]},"#00aaaa":{"lch":[63.0526871437625829,49.8847230087107931,192.17705063006116],"luv":[63.0526871437625829,-48.762339705407328,-10.5223484123201398],"rgb":[0,0.66666666666666663,0.66666666666666663],"xyz":[0.216290225472422437,0.316501624346238186,0.430006457169865852],"hpluv":[192.17705063006116,100.392967527320806,63.0526871437625829],"hsluv":[192.17705063006116,99.9999999999914451,63.0526871437625829]},"#00aabb":{"lch":[63.6193436646561565,53.6276681768737,207.895374658889665],"luv":[63.6193436646561565,-47.3963155750249143,-25.0901587081772526],"rgb":[0,0.66666666666666663,0.733333333333333282],"xyz":[0.233427817579759056,0.323356661189172945,0.520264442268507654],"hpluv":[207.895374658889665,106.964349821245364,63.6193436646561565],"hsluv":[207.895374658889665,99.9999999999916,63.6193436646561565]},"#00aacc":{"lch":[64.2477463386430259,60.9097449106327886,220.878520684721707],"luv":[64.2477463386430259,-46.0537892020538,-39.8628338833449],"rgb":[0,0.66666666666666663,0.8],"xyz":[0.25272019302348081,0.331073611366661746,0.62187095293877781],"hpluv":[220.878520684721707,120.300715116377788,64.2477463386430259],"hsluv":[220.878520684721707,99.9999999999916298,64.2477463386430259]},"#00aadd":{"lch":[64.9372385342214926,70.6418801813473465,230.685034316882962],"luv":[64.9372385342214926,-44.7574928469198525,-54.6538385624811625],"rgb":[0,0.66666666666666663,0.866666666666666696],"xyz":[0.274238518574114354,0.339680941586915253,0.735200800838783808],"hpluv":[230.685034316882962,138.04089297290011,64.9372385342214926],"hsluv":[230.685034316882962,99.9999999999918145,64.9372385342214926]},"#00aaee":{"lch":[65.6867863979168618,81.8478503674051,237.87423205753521],"luv":[65.6867863979168618,-43.5250094774703129,-69.3155405356638283],"rgb":[0,0.66666666666666663,0.933333333333333348],"xyz":[0.298050698840289119,0.34920581369338527,0.860611616907307],"hpluv":[237.87423205753521,158.11336767521891,65.6867863979168618],"hsluv":[237.87423205753521,99.999999999991843,65.6867863979168618]},"#00aaff":{"lch":[66.4950261675888,93.8462134827344,243.161780722675303],"luv":[66.4950261675888,-42.369016683119284,-83.7375555551541],"rgb":[0,0.66666666666666663,1],"xyz":[0.324221747250120484,0.359674233057318,0.998445805199088876],"hpluv":[243.161780722675303,179.088178632175044,66.4950261675888],"hsluv":[243.161780722675303,99.9999999999982805,66.4950261675888]},"#00bb00":{"lch":[66.1662429166961772,102.406451239047826,127.71501294924046],"luv":[66.1662429166961772,-62.6455428450044352,81.0099822060849135],"rgb":[0,0.733333333333333282,0],"xyz":[0.177695456756889275,0.355390913513783546,0.0592318189189614333],"hpluv":[127.71501294924046,196.39488290021464,66.1662429166961772],"hsluv":[127.71501294924046,100.000000000002373,66.1662429166961772]},"#00bb11":{"lch":[66.1974173108447559,101.237205455569821,128.123527834983577],"luv":[66.1974173108447559,-62.4996967519340956,79.6414444518024425],"rgb":[0,0.733333333333333282,0.0666666666666666657],"xyz":[0.178707122256526407,0.355795579713638399,0.064559923883717063],"hpluv":[128.123527834983577,194.061073356438868,66.1974173108447559],"hsluv":[128.123527834983577,99.9999999999909335,66.1974173108447559]},"#00bb22":{"lch":[66.2551438620851911,99.1062916374383747,128.898124119483072],"luv":[66.2551438620851911,-62.232564676438038,77.1308299962987718],"rgb":[0,0.733333333333333282,0.133333333333333331],"xyz":[0.180582480395003409,0.3565457229690292,0.0744368100796962556],"hpluv":[128.898124119483072,189.810813804630897,66.2551438620851911],"hsluv":[128.898124119483072,99.9999999999908624,66.2551438620851911]},"#00bb33":{"lch":[66.3500136661217255,95.7008075372637137,130.224174268563928],"luv":[66.3500136661217255,-61.8016571104716235,73.0698278476423155],"rgb":[0,0.733333333333333282,0.2],"xyz":[0.18367023112746117,0.357780823262012326,0.0906989639373074],"hpluv":[130.224174268563928,183.02647365261987,66.3500136661217255],"hsluv":[130.224174268563928,99.9999999999909335,66.3500136661217255]},"#00bb44":{"lch":[66.4865992404304,91.0092453899789859,132.255785626190885],"luv":[66.4865992404304,-61.1983980271068,67.3605138443080875],"rgb":[0,0.733333333333333282,0.266666666666666663],"xyz":[0.18812822637168003,0.359564021359699892,0.114177738890194044],"hpluv":[132.255785626190885,173.696361176634838,66.4865992404304],"hsluv":[132.255785626190885,99.9999999999909619,66.4865992404304]},"#00bb55":{"lch":[66.6685736373934219,85.1496193371524,135.204737263674588],"luv":[66.6685736373934219,-60.4246386982598,59.9943389949978751],"rgb":[0,0.733333333333333282,0.333333333333333315],"xyz":[0.194090640411042015,0.361948986975444753,0.145579786164167946],"hpluv":[135.204737263674588,162.069343805127659,66.6685736373934219],"hsluv":[135.204737263674588,99.9999999999909477,66.6685736373934219]},"#00bb66":{"lch":[66.8989180170192412,78.3861452968700689,139.371990675590268],"luv":[66.8989180170192412,-59.4914065933894,51.0407711152765629],"rgb":[0,0.733333333333333282,0.4],"xyz":[0.2016756361845502,0.364982985284848072,0.185527430571311908],"hpluv":[139.371990675590268,148.682392510907704,66.8989180170192412],"hsluv":[139.371990675590268,99.9999999999911182,66.8989180170192412]},"#00bb77":{"lch":[67.1800303821267448,71.1598447269708316,145.178146497089472],"luv":[67.1800303821267448,-58.4173559625633061,40.6341731047866617],"rgb":[0,0.733333333333333282,0.466666666666666674],"xyz":[0.210989649204752105,0.368708590492928867,0.234581232477709817],"hpluv":[145.178146497089472,134.410786503463328,67.1800303821267448],"hsluv":[145.178146497089472,99.9999999999910898,67.1800303821267448]},"#00bb88":{"lch":[67.5137905946342,64.1363411600919,153.159702568813543],"luv":[67.5137905946342,-57.2268359754185525,28.9578918715820954],"rgb":[0,0.733333333333333282,0.533333333333333326],"xyz":[0.222130066306695961,0.373164757333706465,0.293254095881282],"hpluv":[153.159702568813543,120.545503395456095,67.5137905946342],"hsluv":[153.159702568813543,99.9999999999911608,67.5137905946342]},"#00bb99":{"lch":[67.9016044714860811,58.2533417764790187,163.826150797364875],"luv":[67.9016044714860811,-55.9477282230567141,16.2266304205851419],"rgb":[0,0.733333333333333282,0.6],"xyz":[0.235187030415768661,0.378387542977335622,0.362020773522399919],"hpluv":[163.826150797364875,108.862958898475256,67.9016044714860811],"hsluv":[163.826150797364875,99.9999999999912461,67.9016044714860811]},"#00bbaa":{"lch":[68.3444379186728384,54.6744668749029543,177.202021912208522],"luv":[68.3444379186728384,-54.6092872876890922,2.66890801368250408],"rgb":[0,0.733333333333333282,0.66666666666666663],"xyz":[0.250244723381021217,0.384410620163436745,0.44132462313939852],"hpluv":[177.202021912208522,101.512776720033713,68.3444379186728384],"hsluv":[177.202021912208522,99.9999999999913598,68.3444379186728384]},"#00bbbb":{"lch":[68.8428468315880338,54.4656619866929645,192.177050630061132],"luv":[68.8428468315880338,-53.2402096652165113,-11.4886209116881091],"rgb":[0,0.733333333333333282,0.733333333333333282],"xyz":[0.267382315488357836,0.391265657006371503,0.531582608238040266],"hpluv":[192.177050630061132,100.392967527320806,68.8428468315880338],"hsluv":[192.177050630061132,99.9999999999914451,68.8428468315880338]},"#00bbcc":{"lch":[69.3970058395379397,58.0340346662075675,206.653495587531239],"luv":[69.3970058395379397,-51.8670935918889384,-26.0337047299998297],"rgb":[0,0.733333333333333282,0.8],"xyz":[0.28667469093207959,0.398982607183860305,0.633189118908310422],"hpluv":[206.653495587531239,106.116119046155191,69.3970058395379397],"hsluv":[206.653495587531239,99.9999999999915161,69.3970058395379397]},"#00bbdd":{"lch":[70.0067374807312461,64.9183055759271923,218.91244904401708],"luv":[70.0067374807312461,-50.5133677649133119,-40.7772740125682844],"rgb":[0,0.733333333333333282,0.866666666666666696],"xyz":[0.308193016482713134,0.407589937404113811,0.74651896680831642],"hpluv":[218.91244904401708,117.670246608059514,70.0067374807312461],"hsluv":[218.91244904401708,99.999999999991644,70.0067374807312461]},"#00bbee":{"lch":[70.6715424904064236,74.2108860535778,228.474155043258463],"luv":[70.6715424904064236,-49.1986871961444336,-55.5584807840624819],"rgb":[0,0.733333333333333282,0.933333333333333348],"xyz":[0.332005196748887843,0.417114809510583828,0.871929782876839643],"hpluv":[228.474155043258463,133.248513578578667,70.6715424904064236],"hsluv":[228.474155043258463,99.9999999999918288,70.6715424904064236]},"#00bbff":{"lch":[71.3906313155650167,85.0452269855302,235.688960914523477],"luv":[71.3906313155650167,-47.9387359102869155,-70.246481992653],"rgb":[0,0.733333333333333282,1],"xyz":[0.358176245158719264,0.427583228874516552,1.00976397116862149],"hpluv":[235.688960914523477,151.163886263776277,71.3906313155650167],"hsluv":[235.688960914523477,99.9999999999978,71.3906313155650167]},"#00cc00":{"lch":[71.6795694698327139,110.939506494120423,127.71501294924046],"luv":[71.6795694698327139,-67.8655057683618566,87.7601688009055181],"rgb":[0,0.8,0],"xyz":[0.215919200066506195,0.431838400133018441,0.0719730666888333814],"hpluv":[127.71501294924046,196.394882900214611,71.6795694698327139],"hsluv":[127.71501294924046,100.000000000002359,71.6795694698327139]},"#00cc11":{"lch":[71.7069484470386698,109.895339051400697,128.05073784188761],"luv":[71.7069484470386698,-67.7349868616780668,86.5387606802328548],"rgb":[0,0.8,0.0666666666666666657],"xyz":[0.216930865566143327,0.432243066332873294,0.0773011716535890181],"hpluv":[128.05073784188761,194.472124503698296,71.7069484470386698],"hsluv":[128.05073784188761,99.9999999999908766,71.7069484470386698]},"#00cc22":{"lch":[71.7576566073484,107.986601617430239,128.68476606632143],"luv":[71.7576566073484,-67.4954197535952289,84.2939763041676287],"rgb":[0,0.8,0.133333333333333331],"xyz":[0.218806223704620328,0.432993209588264094,0.0871780578495682107],"hpluv":[128.68476606632143,190.959361108477,71.7576566073484],"hsluv":[128.68476606632143,99.9999999999909193,71.7576566073484]},"#00cc33":{"lch":[71.8410194320707,104.91966800737103,129.762682813168567],"luv":[71.8410194320707,-67.1075822658835364,80.6517770244687853],"rgb":[0,0.8,0.2],"xyz":[0.22189397443707809,0.434228309881247221,0.103440211707179347],"hpluv":[129.762682813168567,185.320621425294917,71.8410194320707],"hsluv":[129.762682813168567,99.9999999999909761,71.8410194320707]},"#00cc44":{"lch":[71.9610975929873717,100.65733905537941,131.396818004218431],"luv":[71.9610975929873717,-66.561699323308261,75.5078809721416491],"rgb":[0,0.8,0.266666666666666663],"xyz":[0.226351969681296949,0.436011507978934787,0.126918986660065986],"hpluv":[131.396818004218431,177.495355343216744,71.9610975929873717],"hsluv":[131.396818004218431,99.9999999999909903,71.9610975929873717]},"#00cc55":{"lch":[72.1211872877728837,95.2615727691762828,133.734892870047815],"luv":[72.1211872877728837,-65.8564749898269639,68.8308938513177],"rgb":[0,0.8,0.333333333333333315],"xyz":[0.232314383720658935,0.438396473594679648,0.158321033934039901],"hpluv":[133.734892870047815,167.607792551030144,72.1211872877728837],"hsluv":[133.734892870047815,99.999999999991033,72.1211872877728837]},"#00cc66":{"lch":[72.3240060759138,88.9026050634798821,136.980115521422647],"luv":[72.3240060759138,-64.9982032665013207,60.6539921126355495],"rgb":[0,0.8,0.4],"xyz":[0.23989937949416712,0.441430471904082966,0.198268678341183863],"hpluv":[136.980115521422647,155.980870440536961,72.3240060759138],"hsluv":[136.980115521422647,99.9999999999910614,72.3240060759138]},"#00cc77":{"lch":[72.5717906268391459,81.8763194870781206,141.413175407098493],"luv":[72.5717906268391459,-63.9997644777707464,51.066249515114805],"rgb":[0,0.8,0.466666666666666674],"xyz":[0.249213392514369025,0.445156077112163762,0.247322480247581772],"hpluv":[141.413175407098493,143.162673336571032,72.5717906268391459],"hsluv":[141.413175407098493,99.9999999999910756,72.5717906268391459]},"#00cc88":{"lch":[72.8663546950801,74.6325704710961162,147.40707881161012],"luv":[72.8663546950801,-62.8793552775828672,40.2020802322297683],"rgb":[0,0.8,0.533333333333333326],"xyz":[0.260353809616312881,0.449612243952941359,0.305995343651153939],"hpluv":[147.40707881161012,129.969270924532168,72.8663546950801],"hsluv":[147.40707881161012,99.9999999999911608,72.8663546950801]},"#00cc99":{"lch":[73.2091273059676695,67.813783770663278,155.40051707617576],"luv":[73.2091273059676695,-61.6589956558222809,28.2290191825639418],"rgb":[0,0.8,0.6],"xyz":[0.273410773725385581,0.454835029596570517,0.374762021292271874],"hpluv":[155.40051707617576,117.541728748843539,73.2091273059676695],"hsluv":[155.40051707617576,99.9999999999911893,73.2091273059676695]},"#00ccaa":{"lch":[73.6011808048110368,62.2803364521242102,165.745935171574274],"luv":[73.6011808048110368,-60.3629393869259374,15.3347923742089414],"rgb":[0,0.8,0.66666666666666663],"xyz":[0.288468466690638137,0.460858106782671639,0.454065870909270419],"hpluv":[165.745935171574274,107.375573062224,73.6011808048110368],"hsluv":[165.745935171574274,99.9999999999912887,73.6011808048110368]},"#00ccbb":{"lch":[74.043253901593,59.041045922693165,178.335616576813749],"luv":[74.043253901593,-59.0161369965186395,1.7148404163965667],"rgb":[0,0.8,0.733333333333333282],"xyz":[0.305606058797974756,0.467713143625606398,0.544323856007912221],"hpluv":[178.335616576813749,101.183074845522739,74.043253901593],"hsluv":[178.335616576813749,99.9999999999913882,74.043253901593]},"#00cccc":{"lch":[74.5357725840108714,58.9696734274942429,192.177050630061132],"luv":[74.5357725840108714,-57.64288292201784,-12.4386668330598962],"rgb":[0,0.8,0.8],"xyz":[0.32489843424169651,0.4754300938030952,0.645930366678182377],"hpluv":[192.177050630061132,100.392967527320835,74.5357725840108714],"hsluv":[192.177050630061132,99.9999999999914877,74.5357725840108714]},"#00ccdd":{"lch":[75.0788705190671,62.3850861111967063,205.58971515357635],"luv":[75.0788705190671,-56.2657375800620656,-26.9456071312750254],"rgb":[0,0.8,0.866666666666666696],"xyz":[0.346416759792330053,0.484037424023348706,0.759260214578188375],"hpluv":[205.58971515357635,105.439266222061761,75.0788705190671],"hsluv":[205.58971515357635,99.9999999999915588,75.0788705190671]},"#00ccee":{"lch":[75.672409810316779,68.9113069897593,217.179575991302841],"luv":[75.672409810316779,-54.9047659259632326,-41.6441461630807765],"rgb":[0,0.8,0.933333333333333348],"xyz":[0.370228940058504818,0.493562296129818723,0.884671030646711598],"hpluv":[217.179575991302841,115.555933163518176,75.672409810316779],"hsluv":[217.179575991302841,99.9999999999916,75.672409810316779]},"#00ccff":{"lch":[76.3160024985922263,77.7871508482342193,226.46755023570978],"luv":[76.3160024985922263,-53.5770891110031471,-56.3944710009551713],"rgb":[0,0.8,1],"xyz":[0.396399988468336184,0.504030715493751447,1.02250521893849333],"hpluv":[226.46755023570978,131.600547876461974,76.3160024985922263],"hsluv":[226.46755023570978,99.9999999999969731,76.3160024985922263]},"#00dd00":{"lch":[77.1074905447145369,119.34037845513086,127.715012949240503],"luv":[77.1074905447145369,-73.004607631587163,94.4057900468603],"rgb":[0,0.866666666666666696,0],"xyz":[0.258553190613681372,0.51710638122737,0.0861843968712247],"hpluv":[127.715012949240503,210.385995725156505,77.1074905447145369],"hsluv":[127.715012949240503,100.000000000002203,77.1074905447145369]},"#00dd11":{"lch":[77.1317715771024268,118.40111864948102,127.995077421524911],"luv":[77.1317715771024268,-72.8869911141770359,93.3076171797906255],"rgb":[0,0.866666666666666696,0.0666666666666666657],"xyz":[0.259564856113318476,0.517511047427224868,0.0915125018359803366],"hpluv":[127.995077421524911,208.997725019578468,77.1317715771024268],"hsluv":[127.995077421524911,99.9999999999909193,77.1317715771024268]},"#00dd22":{"lch":[77.1767486793617081,116.680170458435171,128.522366120948305],"luv":[77.1767486793617081,-72.6707542705971434,91.2864921658838568],"rgb":[0,0.866666666666666696,0.133333333333333331],"xyz":[0.261440214251795533,0.518261190682615669,0.101389388031959529],"hpluv":[128.522366120948305,206.449864525990506,77.1767486793617081],"hsluv":[128.522366120948305,99.9999999999909335,77.1767486793617081]},"#00dd33":{"lch":[77.2507083817471312,113.903613467858165,129.414072915332611],"luv":[77.2507083817471312,-72.3197155087496668,87.9993858488157485],"rgb":[0,0.866666666666666696,0.2],"xyz":[0.264527964984253239,0.519496290975598796,0.117651541889570666],"hpluv":[129.414072915332611,202.327676795977681,77.2507083817471312],"hsluv":[129.414072915332611,99.9999999999909335,77.2507083817471312]},"#00dd44":{"lch":[77.3572825066044,110.019432359123073,130.755032484191332],"luv":[77.3572825066044,-71.8235777962907633,83.3405613681826907],"rgb":[0,0.866666666666666696,0.266666666666666663],"xyz":[0.268985960228472154,0.521279489073286362,0.141130316842457304],"hpluv":[130.755032484191332,196.537344059934071,77.3572825066044],"hsluv":[130.755032484191332,99.9999999999909193,77.3572825066044]},"#00dd55":{"lch":[77.499442461574418,105.05363654061,132.652443872197409],"luv":[77.499442461574418,-71.1790335676869717,77.2645567564888],"rgb":[0,0.866666666666666696,0.333333333333333315],"xyz":[0.274948374267834139,0.523664454689031111,0.172532364116431219],"hpluv":[132.652443872197409,189.094972829508237,77.499442461574418],"hsluv":[132.652443872197409,99.9999999999909477,77.499442461574418]},"#00dd66":{"lch":[77.6796666807438,99.1151742217995,135.249123061333165],"luv":[77.6796666807438,-70.3890792332532413,69.7796194150732276],"rgb":[0,0.866666666666666696,0.4],"xyz":[0.282533370041342324,0.52669845299843443,0.212480008523575181],"hpluv":[135.249123061333165,180.139247328423863,77.6796666807438],"hsluv":[135.249123061333165,99.9999999999909903,77.6796666807438]},"#00dd77":{"lch":[77.9000291762011301,92.4061998396230138,138.73841210181584],"luv":[77.9000291762011301,-69.4623356452591878,60.9416909472136155],"rgb":[0,0.866666666666666696,0.466666666666666674],"xyz":[0.29184738306154423,0.530424058206515281,0.26153381042997309],"hpluv":[138.73841210181584,169.957910917592017,77.9000291762011301],"hsluv":[138.73841210181584,99.9999999999910187,77.9000291762011301]},"#00dd88":{"lch":[78.1622519856154,85.2389230174627386,143.3784757437721],"luv":[78.1622519856154,-68.4122000424903,50.8472701580255091],"rgb":[0,0.866666666666666696,0.533333333333333326],"xyz":[0.30298780016348803,0.534880225047292823,0.320206673833545286],"hpluv":[143.3784757437721,159.033158409305884,78.1622519856154],"hsluv":[143.3784757437721,99.9999999999911608,78.1622519856154]},"#00dd99":{"lch":[78.4677391993035798,78.0607504013048583,149.494791226300919],"luv":[78.4677391993035798,-67.2558167964087801,39.6249398770864545],"rgb":[0,0.866666666666666696,0.6],"xyz":[0.316044764272560785,0.540103010690922,0.388973351474663165],"hpluv":[149.494791226300919,148.113090063328627,78.4677391993035798],"hsluv":[149.494791226300919,99.9999999999911466,78.4677391993035798]},"#00ddaa":{"lch":[78.8176011215583401,71.4835041270533225,157.438879868811341],"luv":[78.8176011215583401,-66.0129273361177,27.4259874352573583],"rgb":[0,0.866666666666666696,0.66666666666666663],"xyz":[0.331102457237813286,0.546126087877023103,0.468277201091661766],"hpluv":[157.438879868811341,138.307036304413771,78.8176011215583401],"hsluv":[157.438879868811341,99.9999999999912319,78.8176011215583401]},"#00ddbb":{"lch":[79.21267314937,66.2909050184163675,167.440816272526462],"luv":[79.21267314937,-64.7046905962200896,14.4148223370296193],"rgb":[0,0.866666666666666696,0.733333333333333282],"xyz":[0.34824004934514996,0.552981124719957862,0.558535186190303512],"hpluv":[167.440816272526462,131.160951364069831,79.21267314937],"hsluv":[167.440816272526462,99.9999999999912319,79.21267314937]},"#00ddcc":{"lch":[79.6535319864315738,63.3571261830985,179.312753048293331],"luv":[79.6535319864315738,-63.3525685364998381,0.759932897798095253],"rgb":[0,0.866666666666666696,0.8],"xyz":[0.367532424788871714,0.560698074897446719,0.660141696860573668],"hpluv":[179.312753048293331,128.577362979680402,79.6535319864315738],"hsluv":[179.312753048293331,99.9999999999913314,79.6535319864315738]},"#00dddd":{"lch":[80.1405107346531338,63.4039144225475795,192.177050630061245],"luv":[80.1405107346531338,-61.9773555359817649,-13.3739958452306631],"rgb":[0,0.866666666666666696,0.866666666666666696],"xyz":[0.389050750339505202,0.569305405117700225,0.773471544760579666],"hpluv":[192.177050630061245,132.399857962191078,80.1405107346531338],"hsluv":[192.177050630061245,99.9999999999915,80.1405107346531338]},"#00ddee":{"lch":[80.6737137665329,66.6843941199945078,204.668960845135786],"luv":[80.6737137665329,-60.59840405426975,-27.8323884211582282],"rgb":[0,0.866666666666666696,0.933333333333333348],"xyz":[0.412862930605679967,0.578830277224170242,0.898882360829102889],"hpluv":[204.668960845135786,143.769811077134563,80.6737137665329],"hsluv":[204.668960845135786,99.9999999999914735,80.6737137665329]},"#00ddff":{"lch":[81.2530318771427,72.8883394631876627,215.643856178856652],"luv":[81.2530318771427,-59.2330695533496296,-42.475328144570291],"rgb":[0,0.866666666666666696,1],"xyz":[0.439033979015511333,0.589298696588103,1.03671654912088473],"hpluv":[215.643856178856652,162.831862460855405,81.2530318771427],"hsluv":[215.643856178856652,99.9999999999960636,81.2530318771427]},"#00ee00":{"lch":[82.4573791946470749,127.620478503329409,127.715012949240503],"luv":[82.4573791946470749,-78.0698291684561241,100.955873068518613],"rgb":[0,0.933333333333333348,0],"xyz":[0.305731966954196188,0.611463933908400925,0.101910655651395884],"hpluv":[127.715012949240503,307.908475174189959,82.4573791946470749],"hsluv":[127.715012949240503,100.000000000002217,82.4573791946470749]},"#00ee11":{"lch":[82.4790940690076582,126.770138643430457,127.951660682688043],"luv":[82.4790940690076582,-77.963182339567652,99.9620440525398],"rgb":[0,0.933333333333333348,0.0666666666666666657],"xyz":[0.306743632453833293,0.611868600108255833,0.107238760616151521],"hpluv":[127.951660682688043,306.293921948395678,82.4790940690076582],"hsluv":[127.951660682688043,99.9999999999909193,82.4790940690076582]},"#00ee22":{"lch":[82.5193223464761729,125.209295581045268,128.396138884075839],"luv":[82.5193223464761729,-77.7668632323815814,98.1309466116455],"rgb":[0,0.933333333333333348,0.133333333333333331],"xyz":[0.308618990592310349,0.612618743363646634,0.117115646812130714],"hpluv":[128.396138884075839,303.325246698320768,82.5193223464761729],"hsluv":[128.396138884075839,99.9999999999907914,82.5193223464761729]},"#00ee33":{"lch":[82.5854861516441616,122.683025615083068,129.144698003447559],"luv":[82.5854861516441616,-77.4474668310457304,95.1473313105795881],"rgb":[0,0.933333333333333348,0.2],"xyz":[0.311706741324768055,0.613853843656629761,0.133377800669741864],"hpluv":[129.144698003447559,298.506449004286878,82.5854861516441616],"hsluv":[129.144698003447559,99.9999999999910187,82.5854861516441616]},"#00ee44":{"lch":[82.680854944152216,119.131104912681948,130.263308305441626],"luv":[82.680854944152216,-76.994580956063885,90.9068460629701889],"rgb":[0,0.933333333333333348,0.266666666666666663],"xyz":[0.31616473656898697,0.615637041754317327,0.156856575622628502],"hpluv":[130.263308305441626,291.702339981024693,82.680854944152216],"hsluv":[130.263308305441626,99.9999999999908624,82.680854944152216]},"#00ee55":{"lch":[82.8081199656530913,114.556122924925475,131.832385242542614],"luv":[82.8081199656530913,-76.4036333062175572,85.3556683366704192],"rgb":[0,0.933333333333333348,0.333333333333333315],"xyz":[0.322127150608348956,0.618022007370062076,0.18825862289660239],"hpluv":[131.832385242542614,282.889526663711365,82.8081199656530913],"hsluv":[131.832385242542614,99.9999999999908908,82.8081199656530913]},"#00ee66":{"lch":[82.9695459516691756,109.025909834785097,133.955863991345211],"luv":[82.9695459516691756,-75.6753248662734137,78.4849936082476347],"rgb":[0,0.933333333333333348,0.4],"xyz":[0.329712146381857141,0.621056005679465395,0.22820626730374638],"hpluv":[133.955863991345211,272.166364406401044,82.9695459516691756],"hsluv":[133.955863991345211,99.9999999999909193,82.9695459516691756]},"#00ee77":{"lch":[83.167051813506589,102.679799146220446,136.771308753659213],"luv":[83.167051813506589,-74.8151450958190338,70.3266323450776127],"rgb":[0,0.933333333333333348,0.466666666666666674],"xyz":[0.339026159402059046,0.624781610887546246,0.277260069210144289],"hpluv":[136.771308753659213,259.776444306911685,83.167051813506589],"hsluv":[136.771308753659213,99.9999999999910898,83.167051813506589]},"#00ee88":{"lch":[83.4022585136551839,95.7389522528198427,140.46074817536558],"luv":[83.4022585136551839,-73.8327925713246742,60.9480575538504],"rgb":[0,0.933333333333333348,0.533333333333333326],"xyz":[0.350166576504002847,0.629237777728323788,0.335932932613716428],"hpluv":[140.46074817536558,246.149488794882956,83.4022585136551839],"hsluv":[140.46074817536558,99.999999999991033,83.4022585136551839]},"#00ee99":{"lch":[83.6765199188301096,88.5221307628359142,145.258543938418427],"luv":[83.6765199188301096,-72.7414610621927,50.4464813176313],"rgb":[0,0.933333333333333348,0.6],"xyz":[0.363223540613075602,0.634460563371953,0.404699610254834363],"hpluv":[145.258543938418427,231.96752956627526,83.6765199188301096],"hsluv":[145.258543938418427,99.9999999999911,83.6765199188301096]},"#00eeaa":{"lch":[83.9909442670452364,81.4671227341597159,151.444498676017645],"luv":[83.9909442670452364,-71.557012704351564,38.9420854527837363],"rgb":[0,0.933333333333333348,0.66666666666666663],"xyz":[0.378281233578328102,0.640483640558054068,0.484003459871832964],"hpluv":[151.444498676017645,218.263507316576721,83.9909442670452364],"hsluv":[151.444498676017645,99.9999999999911893,83.9909442670452364]},"#00eebb":{"lch":[84.3464103530465366,75.1511025294100392,159.294479220170871],"luv":[84.3464103530465366,-70.2970903476626319,26.5707978811035801],"rgb":[0,0.933333333333333348,0.733333333333333282],"xyz":[0.395418825685664777,0.647338677400988827,0.57426144497047471],"hpluv":[159.294479220170871,206.543608310772072,84.3464103530465366],"hsluv":[159.294479220170871,99.9999999999912,84.3464103530465366]},"#00eecc":{"lch":[84.743580800257746,70.2844566194431195,168.945018717488722],"luv":[84.743580800257746,-68.9802322625990456,13.4771064879770393],"rgb":[0,0.933333333333333348,0.8],"xyz":[0.414711201129386531,0.655055627578477684,0.675867955640744866],"hpluv":[168.945018717488722,198.871854707918374,84.743580800257746],"hsluv":[168.945018717488722,99.9999999999913,84.743580800257746]},"#00eedd":{"lch":[85.1829138464002114,67.6253239558150625,180.163192871920216],"luv":[85.1829138464002114,-67.6250496492668418,-0.192613766721418916],"rgb":[0,0.933333333333333348,0.866666666666666696],"xyz":[0.43622952668002,0.66366295779873119,0.789197803540750864],"hpluv":[180.163192871920216,197.760624486431198,85.1829138464002114],"hsluv":[180.163192871920216,99.9999999999913882,85.1829138464002114]},"#00eeee":{"lch":[85.6646745174910507,67.7744082531008303,192.177050630061217],"luv":[85.6646745174910507,-66.2495152673009358,-14.2958784586901881],"rgb":[0,0.933333333333333348,0.933333333333333348],"xyz":[0.460041706946194784,0.673187829905201207,0.914608619609274087],"hpluv":[192.177050630061217,205.696714727687493,85.6646745174910507],"hsluv":[192.177050630061217,99.9999999999914309,85.6646745174910507]},"#00eeff":{"lch":[86.1889457184888,70.9350767712842867,203.864647638418489],"luv":[86.1889457184888,-64.8703943995767247,-28.6987290135183635],"rgb":[0,0.933333333333333348,1],"xyz":[0.486212755356026149,0.683656249269133931,1.05244280790105593],"hpluv":[203.864647638418489,224.453619733699583,86.1889457184888],"hsluv":[203.864647638418489,99.9999999999939888,86.1889457184888]},"#00ff00":{"lch":[87.7355191096597338,135.789531996666284,127.715012949240474],"luv":[87.7355191096597338,-83.0671197143942663,107.418111239344327],"rgb":[0,1,0],"xyz":[0.35758433938387,0.71516867876775,0.11919477979462],"hpluv":[127.715012949240474,490.145375063702204,87.7355191096597338],"hsluv":[127.715012949240474,100.000000000002217,87.7355191096597338]},"#00ff11":{"lch":[87.7550810882892165,135.01527678270574,127.917210072153054],"luv":[87.7550810882892165,-82.9698837721702915,106.513489059100834],"rgb":[0,1,0.0666666666666666657],"xyz":[0.358596004883507125,0.715573344967604941,0.124522884759375632],"hpluv":[127.917210072153054,488.208403570135204,87.7550810882892165],"hsluv":[127.917210072153054,99.9999999999917719,87.7550810882892165]},"#00ff22":{"lch":[87.7913242833811864,133.592052176160422,128.296258949772664],"luv":[87.7913242833811864,-82.7907071985999892,104.845291769319132],"rgb":[0,1,0.133333333333333331],"xyz":[0.360471363021984181,0.716323488222995741,0.134399770955354825],"hpluv":[128.296258949772664,484.641757887342919,87.7913242833811864],"hsluv":[128.296258949772664,99.9999999999919,87.7913242833811864]},"#00ff33":{"lch":[87.850943105558116,131.282721750620482,128.932531697131338],"luv":[87.850943105558116,-82.4986966230128616,102.123053644879462],"rgb":[0,1,0.2],"xyz":[0.363559113754441887,0.717558588515978868,0.150661924812965975],"hpluv":[128.932531697131338,478.837727878060548,87.850943105558116],"hsluv":[128.932531697131338,99.999999999991843,87.850943105558116]},"#00ff44":{"lch":[87.9368982766027756,128.022939247233296,129.878593634905172],"luv":[87.9368982766027756,-82.0835673214571528,98.245411848516369],"rgb":[0,1,0.266666666666666663],"xyz":[0.368017108998660802,0.719341786613666434,0.174140699765852613],"hpluv":[129.878593634905172,470.610169071279643,87.9368982766027756],"hsluv":[129.878593634905172,99.9999999999916724,87.9368982766027756]},"#00ff55":{"lch":[88.0516385770734189,123.799916713223595,131.196479790431113],"luv":[88.0516385770734189,-81.5399771501718362,93.1539129857171133],"rgb":[0,1,0.333333333333333315],"xyz":[0.373979523038022788,0.721726752229411184,0.205542747039826501],"hpluv":[131.196479790431113,459.892953467552729,88.0516385770734189],"hsluv":[131.196479790431113,99.9999999999917719,88.0516385770734189]},"#00ff66":{"lch":[88.197238997611,118.653311588493224,132.964137709394919],"luv":[88.197238997611,-80.8670327043222557,86.8281715373192498],"rgb":[0,1,0.4],"xyz":[0.381564518811531,0.724760750538814502,0.245490391446970491],"hpluv":[132.964137709394919,446.748834194207859,88.197238997611],"hsluv":[132.964137709394919,99.9999999999917719,88.197238997611]},"#00ff77":{"lch":[88.3754745956423164,112.679107800887323,135.2824164931273],"luv":[88.3754745956423164,-80.0679233099649537,79.2824633297525452],"rgb":[0,1,0.466666666666666674],"xyz":[0.390878531831732878,0.728486355746895353,0.2945441933533684],"hpluv":[135.2824164931273,431.3936933951166,88.3754745956423164],"hsluv":[135.2824164931273,99.9999999999915445,88.3754745956423164]},"#00ff88":{"lch":[88.587864465470858,106.036155512425779,138.2828406903445],"luv":[88.587864465470858,-79.1495135423216425,70.5621767086956311],"rgb":[0,1,0.533333333333333326],"xyz":[0.402018948933676679,0.732942522587672896,0.353217056756940539],"hpluv":[138.2828406903445,414.239888157084465,88.587864465470858],"hsluv":[138.2828406903445,99.9999999999914,88.587864465470858]},"#00ff99":{"lch":[88.8357000190422,98.9561663203651278,142.1349886621461],"luv":[88.8357000190422,-78.1218422027535695,60.739613298668921],"rgb":[0,1,0.6],"xyz":[0.415075913042749378,0.738165308231302109,0.421983734398058474],"hpluv":[142.1349886621461,395.967958147281365,88.8357000190422],"hsluv":[142.1349886621461,99.9999999999915303,88.8357000190422]},"#00ffaa":{"lch":[89.1200644426462674,91.7580340339716258,147.049061977519528],"luv":[89.1200644426462674,-76.997527549554917,49.9090929694682828],"rgb":[0,1,0.66666666666666663],"xyz":[0.430133606008001934,0.744188385417403175,0.501287584015057],"hpluv":[147.049061977519528,377.639750156066668,89.1200644426462674],"hsluv":[147.049061977519528,99.9999999999913,89.1200644426462674]},"#00ffbb":{"lch":[89.4418470234824241,84.8653215767476468,153.262243037154207],"luv":[89.4418470234824241,-75.791105608661141,38.1815546689964407],"rgb":[0,1,0.733333333333333282],"xyz":[0.447271198115338608,0.751043422260337934,0.591545569113698821],"hpluv":[153.262243037154207,360.863433446149145,89.4418470234824241],"hsluv":[153.262243037154207,99.9999999999912,89.4418470234824241]},"#00ffcc":{"lch":[89.801754487955634,78.8187300060100569,160.986090443114392],"luv":[89.801754487955634,-74.5183415032407197,25.6789598575702236],"rgb":[0,1,0.8],"xyz":[0.466563573559060307,0.758760372437826791,0.693152079783969],"hpluv":[160.986090443114392,347.997153451554084,89.801754487955634],"hsluv":[160.986090443114392,99.9999999999912461,89.801754487955634]},"#00ffdd":{"lch":[90.2003206582774339,74.260092310928,170.286849800478649],"luv":[90.2003206582774339,-73.1955569867131572,12.5288366352336915],"rgb":[0,1,0.866666666666666696],"xyz":[0.488081899109693906,0.767367702658080297,0.806481927683975],"hpluv":[170.286849800478649,342.308208972166483,90.2003206582774339],"hsluv":[170.286849800478649,99.9999999999913314,90.2003206582774339]},"#00ffee":{"lch":[90.6379152481429458,71.8480695265374294,180.909719109957],"luv":[90.6379152481429458,-71.8390133400929898,-1.14072652818200426],"rgb":[0,1,0.933333333333333348],"xyz":[0.511894079375868616,0.776892574764550314,0.931892743752498198],"hpluv":[180.909719109957,347.895283980605143,90.6379152481429458],"hsluv":[180.909719109957,99.999999999991374,90.6379152481429458]},"#00ffff":{"lch":[91.114752316705065,72.0862882649682,192.17705063006116],"luv":[91.114752316705065,-70.4643799638718207,-15.205397466925735],"rgb":[0,1,1],"xyz":[0.5380651277857,0.787360994128483,1.06972693204428],"hpluv":[192.17705063006116,369.190533917051368,91.114752316705065],"hsluv":[192.17705063006116,99.9999999999914877,91.114752316705065]},"#ff0000":{"lch":[53.23711559542933,179.038096923620287,12.1770506300617765],"luv":[53.23711559542933,175.009822162883836,37.7650936255616],"rgb":[1,0,0],"xyz":[0.41239079926595,0.21263900587151,0.019330818715591],"hpluv":[12.1770506300617765,426.746789183125202,53.23711559542933],"hsluv":[12.1770506300617765,100.000000000002203,53.23711559542933]},"#ff0011":{"lch":[53.2810087118185294,177.689248384364731,11.7592124156573554],"luv":[53.2810087118185294,173.960033822228979,36.2129206771479346],"rgb":[1,0,0.0666666666666666657],"xyz":[0.413402464765587119,0.213043672071364848,0.0246589236803466325],"hpluv":[11.7592124156573554,423.182830024727082,53.2810087118185294],"hsluv":[11.7592124156573554,99.9999999999986073,53.2810087118185294]},"#ff0022":{"lch":[53.362228057366309,175.255817292919801,10.9800713678561319],"luv":[53.362228057366309,172.047495148921342,33.3805468497921751],"rgb":[1,0,0.133333333333333331],"xyz":[0.415277822904064176,0.213793815326755676,0.0345358098763258251],"hpluv":[10.9800713678561319,416.75211680728853,53.362228057366309],"hsluv":[10.9800713678561319,99.9999999999986215,53.362228057366309]},"#ff0033":{"lch":[53.4955416476677499,171.43316235878109,9.68478250033725],"luv":[53.4955416476677499,168.989928530586468,28.8397852204116347],"rgb":[1,0,0.2],"xyz":[0.418365573636521881,0.215028915619738775,0.0507979637339369683],"hpluv":[9.68478250033725,406.646064741178918,53.4955416476677499],"hsluv":[9.68478250033725,99.9999999999986215,53.4955416476677499]},"#ff0044":{"lch":[53.6871179383659722,166.29954793496961,7.78930386328567259],"luv":[53.6871179383659722,164.765128442936401,22.5386799204815809],"rgb":[1,0,0.266666666666666663],"xyz":[0.422823568880740797,0.216812113717426369,0.0742767386868236],"hpluv":[7.78930386328567259,393.061316669856922,53.6871179383659722],"hsluv":[7.78930386328567259,99.9999999999987637,53.6871179383659722]},"#ff0055":{"lch":[53.9417095924386558,160.100368719231,5.2128969892355661],"luv":[53.9417095924386558,159.438189183864722,14.5461986032050437],"rgb":[1,0,0.333333333333333315],"xyz":[0.428785982920102782,0.219197079333171202,0.105678785960797522],"hpluv":[5.2128969892355661,376.623098544524225,53.9417095924386558],"hsluv":[5.2128969892355661,99.9999999999988,53.9417095924386558]},"#ff0066":{"lch":[54.2629295430466669,153.227313284557312,1.88082466234467849],"luv":[54.2629295430466669,153.144763004983872,5.02902580538230204],"rgb":[1,0,0.4],"xyz":[0.436370978693610967,0.222231077642574493,0.145626430367941484],"hpluv":[1.88082466234467849,358.321012364802243,54.2629295430466669],"hsluv":[1.88082466234467849,99.99999999999892,54.2629295430466669]},"#ff0077":{"lch":[54.6533978532017244,146.184101175375929,357.735148851436577],"luv":[54.6533978532017244,146.06990602550718,-5.77702260269427281],"rgb":[1,0,0.466666666666666674],"xyz":[0.445684991713812872,0.225956682850655316,0.194680232274339393],"hpluv":[357.735148851436577,339.408176675868503,54.6533978532017244],"hsluv":[357.735148851436577,99.9999999999990479,54.6533978532017244]},"#ff0088":{"lch":[55.1148373309560782,139.538803635294983,352.754628092234327],"luv":[55.1148373309560782,138.424605854630585,-17.5984719211521572],"rgb":[1,0,0.533333333333333326],"xyz":[0.456825408815756673,0.230412849691432914,0.253353095677911533],"hpluv":[352.754628092234327,321.26675874055752,55.1148373309560782],"hsluv":[352.754628092234327,99.9999999999991616,55.1148373309560782]},"#ff0099":{"lch":[55.6481496721619493,133.863929319774144,346.981903482220218],"luv":[55.6481496721619493,130.423488026195145,-30.1540269949209758],"rgb":[1,0,0.6],"xyz":[0.469882372924829372,0.235635635335062071,0.322119773319029468],"hpluv":[346.981903482220218,305.247535929832054,55.6481496721619493],"hsluv":[346.981903482220218,99.9999999999993463,55.6481496721619493]},"#ff00aa":{"lch":[56.2534865150640258,129.667114810270476,340.549180922221581],"luv":[56.2534865150640258,122.266710865918853,-43.1788383036143273],"rgb":[1,0,0.66666666666666663],"xyz":[0.484940065890081928,0.241658712521163166,0.401423622936028068],"hpluv":[340.549180922221581,292.495864077812769,56.2534865150640258],"hsluv":[340.549180922221581,99.9999999999994742,56.2534865150640258]},"#ff00bb":{"lch":[56.9303217870161689,127.321325924901956,333.685619315648239],"luv":[56.9303217870161689,114.127678427447606,-56.4410582115202928],"rgb":[1,0,0.733333333333333282],"xyz":[0.502077657997418547,0.248513749364097924,0.491681608034669815],"hpluv":[333.685619315648239,283.789838362024682,56.9303217870161689],"hsluv":[333.685619315648239,99.9999999999995879,56.9303217870161689]},"#ff00cc":{"lch":[57.6775275187384153,127.012826563172382,326.690520651062286],"luv":[57.6775275187384153,106.146716951325558,-69.7505024499586312],"rgb":[1,0,0.8],"xyz":[0.521370033441140301,0.256230699541586726,0.593288118704939915],"hpluv":[326.690520651062286,279.434659423159303,57.6775275187384153],"hsluv":[326.690520651062286,99.9999999999997726,57.6775275187384153]},"#ff00dd":{"lch":[58.4934529509690151,128.727977043064641,319.874434183361473],"luv":[58.4934529509690151,98.4297766537384149,-82.9606602040687],"rgb":[1,0,0.866666666666666696],"xyz":[0.542888358991773901,0.264838029761840288,0.706617966604945913],"hpluv":[319.874434183361473,279.257606739571429,58.4934529509690151],"hsluv":[319.874434183361473,99.9999999999999716,58.4934529509690151]},"#ff00ee":{"lch":[59.3760054748790367,132.286429048213932,313.494468670954461],"luv":[59.3760054748790367,91.0507046157626,-95.9659757377649214],"rgb":[1,0,0.933333333333333348],"xyz":[0.56670053925794861,0.274362901868310305,0.832028782673469136],"hpluv":[313.494468670954461,282.711609251625362,59.3760054748790367],"hsluv":[313.494468670954461,100.000000000000156,59.3760054748790367]},"#ff00ff":{"lch":[60.3227313545512942,137.405400537897037,307.715012949243601],"luv":[60.3227313545512942,84.0556019897527875,-108.696365491768773],"rgb":[1,0,1],"xyz":[0.59287158766778,0.284831321232243,0.969862970965251],"hpluv":[307.715012949243601,289.042783730483336,60.3227313545512942],"hsluv":[307.715012949243601,100.000000000000384,60.3227313545512942]},"#ff1100":{"lch":[53.6695097624616864,176.771562285449363,12.5954542867932275],"luv":[53.6695097624616864,172.517389506501019,38.5478345786208934],"rgb":[1,0.0666666666666666657,0],"xyz":[0.414395199526878422,0.216647806393366865,0.019998952135900451],"hpluv":[12.5954542867932275,417.949777534481484,53.6695097624616864],"hsluv":[12.5954542867932275,100.000000000002245,53.6695097624616864]},"#ff1111":{"lch":[53.7128602445647658,175.445128796306847,12.1770506300617765],"luv":[53.7128602445647658,171.497694164414924,37.0072170615611569],"rgb":[1,0.0666666666666666657,0.0666666666666666657],"xyz":[0.415406865026515526,0.217052472593221718,0.0253270571006560807],"hpluv":[12.1770506300617765,414.478837946685644,53.7128602445647658],"hsluv":[12.1770506300617765,99.9999999999986215,53.7128602445647658]},"#ff1122":{"lch":[53.7930781791116743,173.051572118951754,11.3967197916969329],"luv":[53.7930781791116743,169.639425839354459,34.1952016185739538],"rgb":[1,0.0666666666666666657,0.133333333333333331],"xyz":[0.417282223164992583,0.217802615848612546,0.0352039432966352803],"hpluv":[11.3967197916969329,408.214548988049671,53.7930781791116743],"hsluv":[11.3967197916969329,99.9999999999987,53.7930781791116743]},"#ff1133":{"lch":[53.9247555399676912,169.290109899416,10.0990648343251674],"luv":[53.9247555399676912,166.667136068812482,29.6851320424264138],"rgb":[1,0.0666666666666666657,0.2],"xyz":[0.420369973897450289,0.219037716141595645,0.0514660971542464235],"hpluv":[10.0990648343251674,398.366425235699353,53.9247555399676912],"hsluv":[10.0990648343251674,99.9999999999987,53.9247555399676912]},"#ff1144":{"lch":[54.1139966850166445,164.235972949617775,8.19925898659400154],"luv":[54.1139966850166445,162.55716522781,23.4226993279181244],"rgb":[1,0.0666666666666666657,0.266666666666666663],"xyz":[0.424827969141669204,0.220820914239283239,0.074944872107133062],"hpluv":[8.19925898659400154,385.121711929848118,54.1139966850166445],"hsluv":[8.19925898659400154,99.9999999999988489,54.1139966850166445]},"#ff1155":{"lch":[54.365514290002,158.12888296709221,5.61535385404219856],"luv":[54.365514290002,157.370056367003059,15.4728467796533362],"rgb":[1,0.0666666666666666657,0.333333333333333315],"xyz":[0.430790383181031189,0.223205879855028072,0.106346919381106964],"hpluv":[5.61535385404219856,369.085538340858477,54.365514290002],"hsluv":[5.61535385404219856,99.9999999999988916,54.365514290002]},"#ff1166":{"lch":[54.6829025612910442,151.353597545298243,2.27091305216541839],"luv":[54.6829025612910442,151.234730451097789,5.99731567352495443],"rgb":[1,0.0666666666666666657,0.4],"xyz":[0.438375378954539374,0.226239878164431363,0.146294563788250925],"hpluv":[2.27091305216541839,351.221033033747858,54.6829025612910442],"hsluv":[2.27091305216541839,99.999999999999,54.6829025612910442]},"#ff1177":{"lch":[55.0687823252034292,144.407362773795285,358.105880212246802],"luv":[55.0687823252034292,144.328460520523464,-4.77303960367160496],"rgb":[1,0.0666666666666666657,0.466666666666666674],"xyz":[0.44768939197474128,0.229965483372512186,0.195348365694648834],"hpluv":[358.105880212246802,332.753927221166919,55.0687823252034292],"hsluv":[358.105880212246802,99.9999999999990905,55.0687823252034292]},"#ff1188":{"lch":[55.5248949860500716,137.85386672349216,353.096828842063303],"luv":[55.5248949860500716,136.85452147125136,-16.5689023019976744],"rgb":[1,0.0666666666666666657,0.533333333333333326],"xyz":[0.45882980907668508,0.234421650213289784,0.254021229098221],"hpluv":[353.096828842063303,315.043506786171235,55.5248949860500716],"hsluv":[353.096828842063303,99.9999999999992,55.5248949860500716]},"#ff1199":{"lch":[56.0521767726019249,132.264360312052816,347.28491936957397],"luv":[56.0521767726019249,129.020794472918823,-29.1117777254046715],"rgb":[1,0.0666666666666666657,0.6],"xyz":[0.47188677318575778,0.239644435856918941,0.322787906739338937],"hpluv":[347.28491936957397,299.426117704125659,56.0521767726019249],"hsluv":[347.28491936957397,99.9999999999993605,56.0521767726019249]},"#ff11aa":{"lch":[56.6508275614924912,128.148315107741439,340.802676353967],"luv":[56.6508275614924912,121.022209124101792,-42.1380536294115586],"rgb":[1,0.0666666666666666657,0.66666666666666663],"xyz":[0.486944466151010336,0.245667513043020036,0.402091756356337537],"hpluv":[340.802676353967,287.042344439162662,56.6508275614924912],"hsluv":[340.802676353967,99.9999999999995168,56.6508275614924912]},"#ff11bb":{"lch":[57.3203806938084455,125.882364893771992,333.882217516525884],"luv":[57.3203806938084455,113.02864145467457,-55.4156656746030762],"rgb":[1,0.0666666666666666657,0.733333333333333282],"xyz":[0.504082058258347,0.252522549885954795,0.492349741454979284],"hpluv":[333.882217516525884,278.673167271969135,57.3203806938084455],"hsluv":[333.882217516525884,99.9999999999996163,57.3203806938084455]},"#ff11cc":{"lch":[58.0597760671947754,125.656277294901628,326.828156543045054],"luv":[58.0597760671947754,105.178488239830273,-68.7530772780178694],"rgb":[1,0.0666666666666666657,0.8],"xyz":[0.523374433702068709,0.260239500063443596,0.593956252125249384],"hpluv":[326.828156543045054,274.630115267561905,58.0597760671947754],"hsluv":[326.828156543045054,99.9999999999997868,58.0597760671947754]},"#ff11dd":{"lch":[58.8674364673636177,127.458097444326981,319.957026901825429],"luv":[58.8674364673636177,97.5770916499376568,-82.0016938195011846],"rgb":[1,0.0666666666666666657,0.866666666666666696],"xyz":[0.544892759252702308,0.268846830283697158,0.707286100025255382],"hpluv":[319.957026901825429,274.746161939823423,58.8674364673636177],"hsluv":[319.957026901825429,100.000000000000028,58.8674364673636177]},"#ff11ee":{"lch":[59.7413458233107519,131.106916258937218,313.5305052972667],"luv":[59.7413458233107519,90.2986667085849319,-95.0535337669245877],"rgb":[1,0.0666666666666666657,0.933333333333333348],"xyz":[0.568704939518877,0.278371702390167175,0.832696916093778605],"hpluv":[313.5305052972667,278.477381794919836,59.7413458233107519],"hsluv":[313.5305052972667,100.000000000000199,59.7413458233107519]},"#ff11ff":{"lch":[60.6791274610807534,136.317870534400242,307.715012949243601],"luv":[60.6791274610807534,83.3903225409976,-107.83606045076894],"rgb":[1,0.0666666666666666657,1],"xyz":[0.594875987928708438,0.288840121754099899,0.97053110438556045],"hpluv":[307.715012949243601,285.070838096226908,60.6791274610807534],"hsluv":[307.715012949243601,100.000000000000398,60.6791274610807534]},"#ff2200":{"lch":[54.4571507543770679,172.725520469573979,13.3786813235288875],"luv":[54.4571507543770679,168.038102184023103,39.9662562154253393],"rgb":[1,0.133333333333333331,0],"xyz":[0.418110823261646336,0.224079053862902833,0.0212374933808230602],"hpluv":[13.3786813235288875,402.476865089738737,54.4571507543770679],"hsluv":[13.3786813235288875,100.00000000000216,54.4571507543770679]},"#ff2211":{"lch":[54.4995382972682876,171.437527349711331,12.9593558016228254],"luv":[54.4995382972682876,167.070909686171433,38.446546274251638],"rgb":[1,0.133333333333333331,0.0666666666666666657],"xyz":[0.41912248876128344,0.224483720062757686,0.0265655983455786934],"hpluv":[12.9593558016228254,399.164948195999784,54.4995382972682876],"hsluv":[12.9593558016228254,99.999999999998721,54.4995382972682876]},"#ff2222":{"lch":[54.5779789595956117,169.112342257331477,12.1770506300617924],"luv":[54.5779789595956117,165.307392407273255,35.6714216042562171],"rgb":[1,0.133333333333333331,0.133333333333333331],"xyz":[0.420997846899760497,0.225233863318148514,0.036442484541557886],"hpluv":[12.1770506300617924,393.185217729465933,54.5779789595956117],"hsluv":[12.1770506300617924,99.9999999999987494,54.5779789595956117]},"#ff2233":{"lch":[54.7067518227456,165.455769736233549,10.8753803895539445],"luv":[54.7067518227456,162.484163442906947,31.2171166072114978],"rgb":[1,0.133333333333333331,0.2],"xyz":[0.424085597632218203,0.226468963611131613,0.0527046383991690293],"hpluv":[10.8753803895539445,383.778210348001721,54.7067518227456],"hsluv":[10.8753803895539445,99.9999999999987779,54.7067518227456]},"#ff2244":{"lch":[54.8918465894738148,160.537768894747074,8.96806115251763103],"luv":[54.8918465894738148,158.575257224785304,25.0252480066910863],"rgb":[1,0.133333333333333331,0.266666666666666663],"xyz":[0.428543592876437118,0.228252161708819207,0.0761834133520556678],"hpluv":[8.96806115251763103,371.115171122776133,54.8918465894738148],"hsluv":[8.96806115251763103,99.9999999999988347,54.8918465894738148]},"#ff2255":{"lch":[55.1379036013317432,154.588213330392733,6.3708707633682522],"luv":[55.1379036013317432,153.633547891150499,17.1536778289841081],"rgb":[1,0.133333333333333331,0.333333333333333315],"xyz":[0.434506006915799103,0.23063712732456404,0.107585460626029583],"hpluv":[6.3708707633682522,355.76683037739258,55.1379036013317432],"hsluv":[6.3708707633682522,99.9999999999989342,55.1379036013317432]},"#ff2266":{"lch":[55.4484819892530254,147.979820726080618,3.00414546296194196],"luv":[55.4484819892530254,147.776458796099433,7.75535736170059753],"rgb":[1,0.133333333333333331,0.4],"xyz":[0.442091002689307289,0.23367112563396733,0.147533105033173545],"hpluv":[3.00414546296194196,338.650844053811227,55.4484819892530254],"hsluv":[3.00414546296194196,99.9999999999990763,55.4484819892530254]},"#ff2277":{"lch":[55.8262016697843961,141.198613687408425,358.803757025958646],"luv":[55.8262016697843961,141.167840095073672,-2.94778393674187145],"rgb":[1,0.133333333333333331,0.466666666666666674],"xyz":[0.451405015709509194,0.237396730842048154,0.196586906939571454],"hpluv":[358.803757025958646,320.945787006908631,55.8262016697843961],"hsluv":[358.803757025958646,99.9999999999991616,55.8262016697843961]},"#ff2288":{"lch":[56.2728344602164299,134.800794021339357,353.742009538390391],"luv":[56.2728344602164299,133.997535770156077,-14.694028593592142],"rgb":[1,0.133333333333333331,0.533333333333333326],"xyz":[0.462545432811453,0.241852897682825752,0.255259770343143622],"hpluv":[353.742009538390391,303.971583410200083,56.2728344602164299],"hsluv":[353.742009538390391,99.9999999999992752,56.2728344602164299]},"#ff2299":{"lch":[56.7893750973531866,129.355771045476672,347.857065824102108],"luv":[56.7893750973531866,126.461550291410035,-27.2101415039127161],"rgb":[1,0.133333333333333331,0.6],"xyz":[0.47560239692052575,0.247075683326454909,0.324026447984261501],"hpluv":[347.857065824102108,289.040064659782502,56.7893750973531866],"hsluv":[347.857065824102108,99.9999999999994316,56.7893750973531866]},"#ff22aa":{"lch":[57.3761062638205743,125.376808270539939,341.281866819384959],"luv":[57.3761062638205743,118.745473604842076,-40.2350164715945766],"rgb":[1,0.133333333333333331,0.66666666666666663],"xyz":[0.49066008988577825,0.253098760512556031,0.403330297601260102],"hpluv":[341.281866819384959,277.284417349873706,57.3761062638205743],"hsluv":[341.281866819384959,99.999999999999531,57.3761062638205743]},"#ff22bb":{"lch":[58.0326640845464112,123.247659375493754,334.254064951888324],"luv":[58.0326640845464112,111.01274832153284,-53.5364852379920606],"rgb":[1,0.133333333333333331,0.733333333333333282],"xyz":[0.507797681993114924,0.25995379735549079,0.493588282699901848],"hpluv":[334.254064951888324,269.491764983662165,58.0326640845464112],"hsluv":[334.254064951888324,99.9999999999997726,58.0326640845464112]},"#ff22cc":{"lch":[58.7581065478829316,123.164795236141373,327.088444575119183],"luv":[58.7581065478829316,103.398114188518221,-66.9208246199849128],"rgb":[1,0.133333333333333331,0.8],"xyz":[0.527090057436836679,0.267670747532979592,0.595194793370172],"hpluv":[327.088444575119183,265.985598747154427,58.7581065478829316],"hsluv":[327.088444575119183,99.9999999999998721,58.7581065478829316]},"#ff22dd":{"lch":[59.550985046801415,125.119413407905796,320.113090366201448],"luv":[59.550985046801415,96.0055877759378,-80.2358693312108358],"rgb":[1,0.133333333333333331,0.866666666666666696],"xyz":[0.548608382987470167,0.276278077753233098,0.708524641270178],"hpluv":[320.113090366201448,266.609166102550091,59.550985046801415],"hsluv":[320.113090366201448,100.000000000000028,59.550985046801415]},"#ff22ee":{"lch":[60.4094179672163705,128.929416765847606,313.598505937960113],"luv":[60.4094179672163705,88.9098108664153273,-93.3693742041783281],"rgb":[1,0.133333333333333331,0.933333333333333348],"xyz":[0.572420563253645,0.285802949859703115,0.833935457338701225],"hpluv":[313.598505937960113,270.823716236275,60.4094179672163705],"hsluv":[313.598505937960113,100.000000000000227,60.4094179672163705]},"#ff22ff":{"lch":[61.3311646171935223,134.305840538380238,307.715012949243601],"luv":[61.3311646171935223,82.1594946996257249,-106.244417422389745],"rgb":[1,0.133333333333333331,1],"xyz":[0.598591611663476297,0.296271369223635839,0.97176964563048307],"hpluv":[307.715012949243601,277.877263991976,61.3311646171935223],"hsluv":[307.715012949243601,100.000000000000398,61.3311646171935223]},"#ff3300":{"lch":[55.7168894472394811,166.476173059961667,14.689559134518138],"luv":[55.7168894472394811,161.034729269155179,42.2153072463082495],"rgb":[1,0.2,0],"xyz":[0.424228545350657182,0.236314498040924637,0.0232767340771599419],"hpluv":[14.689559134518138,379.144314271077917,55.7168894472394811],"hsluv":[14.689559134518138,100.000000000002203,55.7168894472394811]},"#ff3311":{"lch":[55.7578022303213,165.243627812887922,14.2690908575150317],"luv":[55.7578022303213,160.145669888681539,40.7286256663500339],"rgb":[1,0.2,0.0666666666666666657],"xyz":[0.425240210850294287,0.236719164240779489,0.0286048390419155751],"hpluv":[14.2690908575150317,376.06108995847427,55.7578022303213],"hsluv":[14.2690908575150317,99.9999999999988,55.7578022303213]},"#ff3322":{"lch":[55.8335204651182835,163.01701714894287,13.4842232594842422],"luv":[55.8335204651182835,158.523316810386802,38.0119179675594552],"rgb":[1,0.2,0.133333333333333331],"xyz":[0.427115568988771344,0.237469307496170318,0.0384817252378947677],"hpluv":[13.4842232594842422,370.490653647292163,55.8335204651182835],"hsluv":[13.4842232594842422,99.9999999999987494,55.8335204651182835]},"#ff3333":{"lch":[55.9578428172660267,159.511521097175432,12.1770506300617853],"luv":[55.9578428172660267,155.922585303490365,33.6462888742638455],"rgb":[1,0.2,0.2],"xyz":[0.430203319721229049,0.238704407789153417,0.0547438790955059179],"hpluv":[12.1770506300617853,361.718248261175631,55.9578428172660267],"hsluv":[12.1770506300617853,99.9999999999988773,55.9578428172660267]},"#ff3344":{"lch":[56.1365811585215368,154.789240798906889,10.2588910791084782],"luv":[56.1365811585215368,152.31463646984821,27.5673826135157078],"rgb":[1,0.2,0.266666666666666663],"xyz":[0.434661314965447965,0.240487605886841,0.0782226540483925564],"hpluv":[10.2588910791084782,349.892100101075414,56.1365811585215368],"hsluv":[10.2588910791084782,99.9999999999989626,56.1365811585215368]},"#ff3355":{"lch":[56.3742616664660403,149.065442517766684,7.64169944339336649],"luv":[56.3742616664660403,147.741595680550319,19.8223878173745902],"rgb":[1,0.2,0.333333333333333315],"xyz":[0.44062372900480995,0.242872571502585843,0.109624701322366458],"hpluv":[7.64169944339336649,335.533149366899124,56.3742616664660403],"hsluv":[7.64169944339336649,99.9999999999990195,56.3742616664660403]},"#ff3366":{"lch":[56.674385203130754,142.694983818340035,4.24028319431916056],"luv":[56.674385203130754,142.304390380845462,10.550776523662277],"rgb":[1,0.2,0.4],"xyz":[0.448208724778318135,0.245906569811989134,0.14957234572951042],"hpluv":[4.24028319431916056,319.492902958598108,56.674385203130754],"hsluv":[4.24028319431916056,99.9999999999991758,56.674385203130754]},"#ff3377":{"lch":[57.0395646827704468,136.14730874514737,359.983392279567909],"luv":[57.0395646827704468,136.147303025702882,-0.0394635770517579934],"rgb":[1,0.2,0.466666666666666674],"xyz":[0.457522737798520041,0.249632175020069957,0.198626147635908329],"hpluv":[359.983392279567909,302.881107814185,57.0395646827704468],"hsluv":[359.983392279567909,99.9999999999992895,57.0395646827704468]},"#ff3388":{"lch":[57.4716120619286954,129.967879448766553,354.83565117969431],"luv":[57.4716120619286954,129.440287861866665,-11.6987848363070146],"rgb":[1,0.2,0.533333333333333326],"xyz":[0.468663154900463841,0.254088341860847555,0.257299011039480496],"hpluv":[354.83565117969431,286.960407533356261,57.4716120619286954],"hsluv":[354.83565117969431,99.9999999999993889,57.4716120619286954]},"#ff3399":{"lch":[57.9716047421228353,124.724336507791776,348.82951213288959],"luv":[57.9716047421228353,122.361442957788952,-24.1627273832372573],"rgb":[1,0.2,0.6],"xyz":[0.481720119009536596,0.259311127504476713,0.326065688680598431],"hpluv":[348.82951213288959,273.007894976207297,57.9716047421228353],"hsluv":[348.82951213288959,99.9999999999995737,57.9716047421228353]},"#ff33aa":{"lch":[58.5399451724763935,120.937271340322638,342.098036856126953],"luv":[58.5399451724763935,115.081956962752116,-37.174813797329108],"rgb":[1,0.2,0.66666666666666663],"xyz":[0.496777811974789096,0.265334204690577835,0.405369538297597032],"hpluv":[342.098036856126953,262.148381504719794,58.5399451724763935],"hsluv":[342.098036856126953,99.9999999999996732,58.5399451724763935]},"#ff33bb":{"lch":[59.1764201449825862,119.003132790944747,334.888094830460091],"luv":[59.1764201449825862,107.755032536641394,-50.5034511403585498],"rgb":[1,0.2,0.733333333333333282],"xyz":[0.513915404082125771,0.272189241533512594,0.495627523396238778],"hpluv":[334.888094830460091,255.181409444549388,59.1764201449825862],"hsluv":[334.888094830460091,99.9999999999998295,59.1764201449825862]},"#ff33cc":{"lch":[59.8802624584280494,119.13012657470172,327.532171012183937],"luv":[59.8802624584280494,100.509254029343069,-63.9521454852723039],"rgb":[1,0.2,0.8],"xyz":[0.533207779525847525,0.279906191711001395,0.597234034066508879],"hpluv":[327.532171012183937,252.451080902073329,59.8802624584280494],"hsluv":[327.532171012183937,100.000000000000043,59.8802624584280494]},"#ff33dd":{"lch":[60.650215463767978,121.314823858854638,320.378757122173454],"luv":[60.650215463767978,93.4460015542912146,-77.3636302238999747],"rgb":[1,0.2,0.866666666666666696],"xyz":[0.554726105076481,0.288513521931254902,0.710563881966514876],"hpluv":[320.378757122173454,253.817084039055629,60.650215463767978],"hsluv":[320.378757122173454,100.000000000000171,60.650215463767978]},"#ff33ee":{"lch":[61.484599762034378,125.372817174433621,313.71398784253438],"luv":[61.484599762034378,86.6400000332951805,-90.6192787462169775],"rgb":[1,0.2,0.933333333333333348],"xyz":[0.578538285342655723,0.298038394037724919,0.8359746980350381],"hpluv":[313.71398784253438,258.747618308410438,61.484599762034378],"hsluv":[313.71398784253438,100.000000000000242,61.484599762034378]},"#ff33ff":{"lch":[62.3813806681475,131.007738376122177,307.715012949243658],"luv":[62.3813806681475,80.141932350642,-103.635409940481253],"rgb":[1,0.2,1],"xyz":[0.604709333752487144,0.308506813401657642,0.97380888632682],"hpluv":[307.715012949243658,266.490230971107223,62.3813806681475],"hsluv":[307.715012949243658,100.000000000000597,62.3813806681475]},"#ff4400":{"lch":[57.461133143380664,158.273971604467,16.6278363926044079],"luv":[57.461133143380664,151.655533944896689,45.2907177172089845],"rgb":[1,0.266666666666666663,0],"xyz":[0.433061115833623222,0.253979639006856939,0.0262209242381485352],"hpluv":[16.6278363926044079,349.522099776260404,57.461133143380664],"hsluv":[16.6278363926044079,100.000000000002203,57.461133143380664]},"#ff4411":{"lch":[57.500127691013958,157.107055615985729,16.2066010587584444],"luv":[57.500127691013958,150.863862649088418,43.84885256105823],"rgb":[1,0.266666666666666663,0.0666666666666666657],"xyz":[0.434072781333260327,0.254384305206711792,0.031549029202904165],"hpluv":[16.2066010587584444,346.709871357654038,57.500127691013958],"hsluv":[16.2066010587584444,99.9999999999990195,57.500127691013958]},"#ff4422":{"lch":[57.5723039440668174,154.996970095022306,15.4196600073807488],"luv":[57.5723039440668174,149.417734299680745,41.2116660108183908],"rgb":[1,0.266666666666666663,0.133333333333333331],"xyz":[0.435948139471737384,0.255134448462102592,0.0414259153988833645],"hpluv":[15.4196600073807488,341.624434338608523,57.5723039440668174],"hsluv":[15.4196600073807488,99.9999999999990195,57.5723039440668174]},"#ff4433":{"lch":[57.6908335218327437,151.669616752661852,14.1071803519879388],"luv":[57.6908335218327437,147.095485225188412,36.9674298845038223],"rgb":[1,0.266666666666666663,0.2],"xyz":[0.439035890204195089,0.256369548755085719,0.0576880692564945077],"hpluv":[14.1071803519879388,333.603886972203838,57.6908335218327437],"hsluv":[14.1071803519879388,99.9999999999991189,57.6908335218327437]},"#ff4444":{"lch":[57.8612930010941682,147.177084719743902,12.177050630061812],"luv":[57.8612930010941682,143.865668066403089,31.0445457111261],"rgb":[1,0.266666666666666663,0.266666666666666663],"xyz":[0.443493885448414,0.258152746852773285,0.0811668442093811393],"hpluv":[12.177050630061812,322.76868159643891,57.8612930010941682],"hsluv":[12.177050630061812,99.9999999999991616,57.8612930010941682]},"#ff4455":{"lch":[58.088054010202,141.716285969530816,9.53556562214303405],"luv":[58.088054010202,139.758186425649882,23.4766913344092778],"rgb":[1,0.266666666666666663,0.333333333333333315],"xyz":[0.449456299487776,0.260537712468518146,0.112568891483355055],"hpluv":[9.53556562214303405,309.579547415252762,58.088054010202],"hsluv":[9.53556562214303405,99.9999999999992184,58.088054010202]},"#ff4466":{"lch":[58.3745334436288772,135.619673907166316,6.08910281061040859],"luv":[58.3745334436288772,134.854526247228307,14.3858507333331573],"rgb":[1,0.266666666666666663,0.4],"xyz":[0.457041295261284175,0.263571710777921464,0.152516535890499016],"hpluv":[6.08910281061040859,294.807548797669426,58.3745334436288772],"hsluv":[6.08910281061040859,99.9999999999992468,58.3745334436288772]},"#ff4477":{"lch":[58.7233249761193292,129.336052383116169,1.75519751784143763],"luv":[58.7233249761193292,129.275370036155351,3.96145782045869943],"rgb":[1,0.266666666666666663,0.466666666666666674],"xyz":[0.466355308281486081,0.26729731598600226,0.201570337796896926],"hpluv":[1.75519751784143763,279.478426792191101,58.7233249761193292],"hsluv":[1.75519751784143763,99.99999999999946,58.7233249761193292]},"#ff4488":{"lch":[59.1362810655005831,123.398173767481396,356.485857706034096],"luv":[59.1362810655005831,123.16614811103635,-7.56367957014252212],"rgb":[1,0.266666666666666663,0.533333333333333326],"xyz":[0.477495725383429881,0.271753482826779857,0.260243201200469065],"hpluv":[356.485857706034096,264.785408966002421,59.1362810655005831],"hsluv":[356.485857706034096,99.9999999999995595,59.1362810655005831]},"#ff4499":{"lch":[59.6145739069951901,118.37348532064955,350.303370213710309],"luv":[59.6145739069951901,116.682328099077466,-19.9378117238896806],"rgb":[1,0.266666666666666663,0.6],"xyz":[0.490552689492502636,0.276976268470409,0.329009878841587],"hpluv":[350.303370213710309,251.965637795338,59.6145739069951901],"hsluv":[350.303370213710309,99.9999999999997158,59.6145739069951901]},"#ff44aa":{"lch":[60.1587486598557177,114.795436800176844,343.339450530546515],"luv":[60.1587486598557177,109.976338996192666,-32.9119609129858475],"rgb":[1,0.266666666666666663,0.66666666666666663],"xyz":[0.505610382457755136,0.282999345656510137,0.408313728458585601],"hpluv":[343.339450530546515,242.139230170638513,60.1587486598557177],"hsluv":[343.339450530546515,99.9999999999997726,60.1587486598557177]},"#ff44bb":{"lch":[60.768775409955694,113.081121999454581,335.854341209703],"luv":[60.768775409955694,103.187483930843442,-46.2567110015126133],"rgb":[1,0.266666666666666663,0.733333333333333282],"xyz":[0.522747974565091811,0.289854382499444896,0.498571713557227347],"hpluv":[335.854341209703,236.128794952899398,60.768775409955694],"hsluv":[335.854341209703,99.9999999999999716,60.768775409955694]},"#ff44cc":{"lch":[61.4441027606342232,113.457557937670586,328.208302422827],"luv":[61.4441027606342232,96.4354118722023088,-59.7731443895883743],"rgb":[1,0.266666666666666663,0.8],"xyz":[0.542040350008813565,0.297571332676933697,0.600178224227497559],"hpluv":[328.208302422827,234.310931883055929,61.4441027606342232],"hsluv":[328.208302422827,100.000000000000128,61.4441027606342232]},"#ff44dd":{"lch":[62.1837139115479403,115.929787300919912,320.782684481283354],"luv":[62.1837139115479403,89.8170022013310358,-73.2981698216444357],"rgb":[1,0.266666666666666663,0.866666666666666696],"xyz":[0.563558675559447,0.306178662897187204,0.713508072127503556],"hpluv":[320.782684481283354,236.568931830040128,62.1837139115479403],"hsluv":[320.782684481283354,100.000000000000384,62.1837139115479403]},"#ff44ee":{"lch":[62.986184892514558,120.309477517885213,313.888915695758442],"luv":[62.986184892514558,83.4060394378513195,-86.7052649261745643],"rgb":[1,0.266666666666666663,0.933333333333333348],"xyz":[0.587370855825621874,0.315703535003657221,0.83891888819602678],"hpluv":[313.888915695758442,242.378371703623515,62.986184892514558],"hsluv":[313.888915695758442,100.000000000000512,62.986184892514558]},"#ff44ff":{"lch":[63.8497439492436,126.288239910703226,307.715012949243771],"luv":[63.8497439492436,77.2548530724802447,-99.9019880507531468],"rgb":[1,0.266666666666666663,1],"xyz":[0.613541904235453184,0.326171954367589945,0.976753076487808514],"hpluv":[307.715012949243771,250.982289693600563,63.8497439492436],"hsluv":[307.715012949243771,100.000000000000711,63.8497439492436]},"#ff5500":{"lch":[59.6718499915998279,148.630700843778015,19.3008598736449528],"luv":[59.6718499915998279,140.27705963161867,49.1266910591374923],"rgb":[1,0.333333333333333315,0],"xyz":[0.444874372547969188,0.277606152435549203,0.030158676476263746],"hpluv":[19.3008598736449528,316.066414507984518,59.6718499915998279],"hsluv":[19.3008598736449528,100.00000000000226,59.6718499915998279]},"#ff5511":{"lch":[59.7086010657385486,147.530698996531413,18.8803784611224046],"luv":[59.7086010657385486,139.59299153240957,47.7399608445355526],"rgb":[1,0.333333333333333315,0.0666666666666666657],"xyz":[0.445886038047606292,0.278010818635404056,0.0354867814410193758],"hpluv":[18.8803784611224046,313.53413530658878,59.7086010657385486],"hsluv":[18.8803784611224046,99.9999999999992184,59.7086010657385486]},"#ff5522":{"lch":[59.7766335415963255,145.539064184811622,18.0939597274483681],"luv":[59.7766335415963255,138.341936048844929,45.2009727113036],"rgb":[1,0.333333333333333315,0.133333333333333331],"xyz":[0.447761396186083349,0.278760961890794856,0.0453636676369985753],"hpluv":[18.0939597274483681,308.949467849715688,59.7766335415963255],"hsluv":[18.0939597274483681,99.9999999999993,59.7766335415963255]},"#ff5533":{"lch":[59.8883826376776085,142.391759670631302,16.7797766500676033],"luv":[59.8883826376776085,136.328925827546385,41.1076295206398825],"rgb":[1,0.333333333333333315,0.2],"xyz":[0.450849146918541055,0.279996062183778,0.0616258214946097185],"hpluv":[16.7797766500676033,301.704368813615531,59.8883826376776085],"hsluv":[16.7797766500676033,99.9999999999992752,59.8883826376776085]},"#ff5544":{"lch":[60.0491441299879654,138.129067713899872,14.841281480974498],"luv":[60.0491441299879654,133.520956258941027,35.3806951204903228],"rgb":[1,0.333333333333333315,0.266666666666666663],"xyz":[0.45530714216275997,0.281779260281465549,0.0851045964474963501],"hpluv":[14.841281480974498,291.888903616465711,60.0491441299879654],"hsluv":[14.841281480974498,99.9999999999994458,60.0491441299879654]},"#ff5555":{"lch":[60.2631003442631936,132.926854505406169,12.1770506300618191],"luv":[60.2631003442631936,129.936061471805857,28.0386978637829927],"rgb":[1,0.333333333333333315,0.333333333333333315],"xyz":[0.461269556202121955,0.28416422589721041,0.116506643721470265],"hpluv":[12.1770506300618191,279.898508055628838,60.2631003442631936],"hsluv":[12.1770506300618191,99.99999999999946,60.2631003442631936]},"#ff5566":{"lch":[60.5335583680784168,127.091978224389294,8.68145952340772098],"luv":[60.5335583680784168,125.635857711143842,19.1833830742614],"rgb":[1,0.333333333333333315,0.4],"xyz":[0.468854551975630141,0.287198224206613728,0.156454288128614227],"hpluv":[8.68145952340772098,266.416588145649541,60.5335583680784168],"hsluv":[8.68145952340772098,99.9999999999995737,60.5335583680784168]},"#ff5577":{"lch":[60.8630749033481351,121.049870295691591,4.25532383082281918],"luv":[60.8630749033481351,120.716171483201308,8.98203991541407],"rgb":[1,0.333333333333333315,0.466666666666666674],"xyz":[0.478168564995832046,0.290923829414694524,0.205508090035012136],"hpluv":[4.25532383082281918,252.376995060411161,60.8630749033481351],"hsluv":[4.25532383082281918,99.9999999999997158,60.8630749033481351]},"#ff5588":{"lch":[61.2535329118914404,115.319895978664789,358.830706871579594],"luv":[61.2535329118914404,115.295882188952703,-2.35328680810625102],"rgb":[1,0.333333333333333315,0.533333333333333326],"xyz":[0.489308982097775846,0.295379996255472121,0.264180953438584276],"hpluv":[358.830706871579594,238.897951612134108,61.2535329118914404],"hsluv":[358.830706871579594,99.9999999999997868,61.2535329118914404]},"#ff5599":{"lch":[61.7061969251912075,110.472562823261683,352.412124726619879],"luv":[61.7061969251912075,109.505210454219565,-14.5875296097928366],"rgb":[1,0.333333333333333315,0.6],"xyz":[0.502365946206848601,0.300602781899101279,0.332947631079702211],"hpluv":[352.412124726619879,227.177321581811952,61.7061969251912075],"hsluv":[352.412124726619879,99.9999999999998721,61.7061969251912075]},"#ff55aa":{"lch":[62.2217597266614177,107.062368992166355,345.125792918237266],"luv":[62.2217597266614177,103.474894783269619,-27.4826673342684735],"rgb":[1,0.333333333333333315,0.66666666666666663],"xyz":[0.517423639172101102,0.306625859085202401,0.412251480696700812],"hpluv":[345.125792918237266,218.340291577764589,62.2217597266614177],"hsluv":[345.125792918237266,100.000000000000071,62.2217597266614177]},"#ff55bb":{"lch":[62.8003867495987862,105.538663220643826,337.249357740418191],"luv":[62.8003867495987862,97.3274002701012,-40.8140489422941855],"rgb":[1,0.333333333333333315,0.733333333333333282],"xyz":[0.534561231279437776,0.31348089592813716,0.502509465795342614],"hpluv":[337.249357740418191,213.249782655969199,62.8003867495987862],"hsluv":[337.249357740418191,100.000000000000284,62.8003867495987862]},"#ff55cc":{"lch":[63.441761241476712,106.157882562261193,329.184616986090759],"luv":[63.441761241476712,91.1707664760994447,-54.3818661895983837],"rgb":[1,0.333333333333333315,0.8],"xyz":[0.553853606723159531,0.321197846105625961,0.60411597646561277],"hpluv":[329.184616986090759,212.332436268611161,63.441761241476712],"hsluv":[329.184616986090759,100.000000000000441,63.441761241476712]},"#ff55dd":{"lch":[64.1451313698934769,108.938462409011748,321.364198961949114],"luv":[64.1451313698934769,85.0951546537234549,-68.0176686346904518],"rgb":[1,0.333333333333333315,0.866666666666666696],"xyz":[0.575371932273793,0.329805176325879468,0.717445824365618767],"hpluv":[321.364198961949114,215.504760823814451,64.1451313698934769],"hsluv":[321.364198961949114,100.000000000000597,64.1451313698934769]},"#ff55ee":{"lch":[64.9093593252901258,113.686114680552976,314.13939983200612],"luv":[64.9093593252901258,79.1717442713053288,-81.5865649491316418],"rgb":[1,0.333333333333333315,0.933333333333333348],"xyz":[0.599184112539967728,0.339330048432349485,0.842856640434142],"hpluv":[314.13939983200612,222.248801840624651,64.9093593252901258],"hsluv":[314.13939983200612,100.000000000000753,64.9093593252901258]},"#ff55ff":{"lch":[65.7329718140353378,120.074032289562709,307.715012949243885],"luv":[65.7329718140353378,73.4534088756767147,-94.9861566483116633],"rgb":[1,0.333333333333333315,1],"xyz":[0.625355160949799149,0.349798467796282209,0.980690828725923724],"hpluv":[307.715012949243885,231.795582155087629,65.7329718140353378],"hsluv":[307.715012949243885,100.000000000000981,65.7329718140353378]},"#ff6600":{"lch":[62.3097916023938438,138.227046243322206,22.8239093069931798],"luv":[62.3097916023938438,127.404056867086908,53.6183047751569717],"rgb":[1,0.4,0],"xyz":[0.459902430253815608,0.307662267847242543,0.03516802904487909],"hpluv":[22.8239093069931798,281.498480884542573,62.3097916023938438],"hsluv":[22.8239093069931798,100.000000000002359,62.3097916023938438]},"#ff6611":{"lch":[62.344110015411573,137.186959502953613,22.4076195476895244],"luv":[62.344110015411573,126.828705913080029,52.2947532174930245],"rgb":[1,0.4,0.0666666666666666657],"xyz":[0.460914095753452713,0.308066934047097396,0.0404961340096347197],"hpluv":[22.4076195476895244,279.226561167599414,62.344110015411573],"hsluv":[22.4076195476895244,99.9999999999995737,62.344110015411573]},"#ff6622":{"lch":[62.4076477973658257,135.300699513710725,21.6278909170268392],"luv":[62.4076477973658257,125.775148313603225,49.8687412673566115],"rgb":[1,0.4,0.133333333333333331],"xyz":[0.46278945389192977,0.308817077302488197,0.0503730202056139192],"hpluv":[21.6278909170268392,275.106945224361368,62.4076477973658257],"hsluv":[21.6278909170268392,99.9999999999996163,62.4076477973658257]},"#ff6633":{"lch":[62.5120380635233346,132.311574345484274,20.3215228987586443],"luv":[62.5120380635233346,124.076309265494103,45.9502141979128851],"rgb":[1,0.4,0.2],"xyz":[0.465877204624387475,0.310052177595471323,0.0666351740632250555],"hpluv":[20.3215228987586443,268.579898420339646,62.5120380635233346],"hsluv":[20.3215228987586443,99.9999999999995879,62.5120380635233346]},"#ff6644":{"lch":[62.6622654373265675,128.246261163642686,18.3868048135947362],"luv":[62.6622654373265675,121.699120282046835,40.4527826611364603],"rgb":[1,0.4,0.266666666666666663],"xyz":[0.470335199868606391,0.311835375693158889,0.0901139490161117],"hpluv":[18.3868048135947362,259.703586528718,62.6622654373265675],"hsluv":[18.3868048135947362,99.9999999999997726,62.6622654373265675]},"#ff6655":{"lch":[62.8622967709428764,123.257362768531593,15.7125644918265355],"luv":[62.8622967709428764,118.651528823693667,33.3795174388964284],"rgb":[1,0.4,0.333333333333333315],"xyz":[0.476297613907968376,0.31422034130890375,0.121515996290085609],"hpluv":[15.7125644918265355,248.806632458920831,62.8622967709428764],"hsluv":[15.7125644918265355,99.9999999999997158,62.8622967709428764]},"#ff6666":{"lch":[63.1153061541487119,117.623502253606588,12.1770506300618742],"luv":[63.1153061541487119,114.97702760078576,24.8107115273291683],"rgb":[1,0.4,0.4],"xyz":[0.483882609681476561,0.317254339618307069,0.161463640697229571],"hpluv":[12.1770506300618742,236.482353971627703,63.1153061541487119],"hsluv":[12.1770506300618742,99.9999999999999,63.1153061541487119]},"#ff6677":{"lch":[63.4237926928396121,111.744324598031497,7.65713975886231157],"luv":[63.4237926928396121,110.747917341816802,14.8893547314965815],"rgb":[1,0.4,0.466666666666666674],"xyz":[0.493196622701678467,0.320979944826387864,0.21051744260362748],"hpluv":[7.65713975886231157,223.569519019308729,63.4237926928396121],"hsluv":[7.65713975886231157,100.000000000000071,63.4237926928396121]},"#ff6688":{"lch":[63.7896518301749751,106.125321016318935,2.05404070639815961],"luv":[63.7896518301749751,106.057131857198982,3.80375380925921824],"rgb":[1,0.4,0.533333333333333326],"xyz":[0.504337039803622322,0.325436111667165462,0.26919030600719962],"hpluv":[2.05404070639815961,211.109662635719985,63.7896518301749751],"hsluv":[2.05404070639815961,100.000000000000128,63.7896518301749751]},"#ff6699":{"lch":[64.2142253202301276,101.344202045456129,355.341285926877504],"luv":[64.2142253202301276,101.009378125853075,-8.23121004826552394],"rgb":[1,0.4,0.6],"xyz":[0.517394003912695,0.330658897310794619,0.337956983648317555],"hpluv":[355.341285926877504,200.265890662959123,64.2142253202301276],"hsluv":[355.341285926877504,100.000000000000199,64.2142253202301276]},"#ff66aa":{"lch":[64.6983418323177233,97.9876087444390436,347.629516841099075],"luv":[64.6983418323177233,95.7126081968365838,-20.9920961224008664],"rgb":[1,0.4,0.66666666666666663],"xyz":[0.532451696877947578,0.336681974496895742,0.417260833265316156],"hpluv":[347.629516841099075,192.184047560801417,64.6983418323177233],"hsluv":[347.629516841099075,100.000000000000441,64.6983418323177233]},"#ff66bb":{"lch":[65.2423543089962408,96.5541832870936787,339.215698562051898],"luv":[65.2423543089962408,90.270720679111,-34.2623306024503123],"rgb":[1,0.4,0.733333333333333282],"xyz":[0.549589288985284141,0.3435370113398305,0.507518818363957847],"hpluv":[339.215698562051898,187.793604034801348,65.2423543089962408],"hsluv":[339.215698562051898,100.000000000000597,65.2423543089962408]},"#ff66cc":{"lch":[65.8461771980182533,97.3465701370285,330.562118792095362],"luv":[65.8461771980182533,84.7780628468697159,-47.8438583036069218],"rgb":[1,0.4,0.8],"xyz":[0.568881664429005895,0.351253961517319302,0.609125329034228],"hpluv":[330.562118792095362,187.598522894675455,65.8461771980182533],"hsluv":[330.562118792095362,100.000000000000711,65.8461771980182533]},"#ff66dd":{"lch":[66.5093249736543157,100.405273498350255,322.181562409870594],"luv":[66.5093249736543157,79.3159229397089831,-61.5646271368605298],"rgb":[1,0.4,0.866666666666666696],"xyz":[0.590399989979639495,0.359861291737572808,0.722455176934234],"hpluv":[322.181562409870594,191.563741116159406,66.5093249736543157],"hsluv":[322.181562409870594,100.000000000000952,66.5093249736543157]},"#ff66ee":{"lch":[67.2309523334132706,105.527911758853008,314.488878023448478],"luv":[67.2309523334132706,73.9508789773533408,-75.2821868615750702],"rgb":[1,0.4,0.933333333333333348],"xyz":[0.614212170245814204,0.369386163844042825,0.847865993002757223],"hpluv":[314.488878023448478,199.176184031939982,67.2309523334132706],"hsluv":[314.488878023448478,100.000000000001066,67.2309523334132706]},"#ff66ff":{"lch":[68.0098958254125137,112.360313920932768,307.715012949244056],"luv":[68.0098958254125137,68.7346624616611592,-88.8841173702707437],"rgb":[1,0.4,1],"xyz":[0.640383218655645625,0.379854583207975549,0.985700181294539179],"hpluv":[307.715012949244056,209.642901019847784,68.0098958254125137],"hsluv":[307.715012949244056,100.000000000001421,68.0098958254125137]},"#ff7700":{"lch":[65.3236824647912755,127.817378582796977,27.3102887077963814],"luv":[65.3236824647912755,113.570196302134065,58.6437786953806466],"rgb":[1,0.466666666666666674,0],"xyz":[0.478356168307233265,0.344569743954078356,0.0413192750626848],"hpluv":[27.3102887077963814,248.289625700463205,65.3236824647912755],"hsluv":[27.3102887077963814,100.00000000000226,65.3236824647912755]},"#ff7711":{"lch":[65.3555057958206476,126.824695098806032,26.9045059733925385],"luv":[65.3555057958206476,113.097436843789765,57.3887886809793],"rgb":[1,0.466666666666666674,0.0666666666666666657],"xyz":[0.479367833806870369,0.344974410153933209,0.0466473800274404271],"hpluv":[26.9045059733925385,246.24134425049084,65.3555057958206476],"hsluv":[26.9045059733925385,99.9999999999999716,65.3555057958206476]},"#ff7722":{"lch":[65.4144320044565291,125.020679344179442,26.1430666348463],"luv":[65.4144320044565291,112.230643754756542,55.0858681158159058],"rgb":[1,0.466666666666666674,0.133333333333333331],"xyz":[0.481243191945347426,0.345724553409324,0.0565242662234196266],"hpluv":[26.1430666348463,242.520026060215031,65.4144320044565291],"hsluv":[26.1430666348463,100.000000000000156,65.4144320044565291]},"#ff7733":{"lch":[65.511267747206432,122.151716277204869,24.8632302030062533],"luv":[65.511267747206432,110.829965834679456,51.3591322215488688],"rgb":[1,0.466666666666666674,0.2],"xyz":[0.484330942677805132,0.346959653702307136,0.0727864200810307699],"hpluv":[24.8632302030062533,236.604443239770575,65.511267747206432],"hsluv":[24.8632302030062533,100.000000000000128,65.511267747206432]},"#ff7744":{"lch":[65.6506715027637853,118.22870540382597,22.9581907744090898],"luv":[65.6506715027637853,108.863777518532288,46.1162089276663139],"rgb":[1,0.466666666666666674,0.266666666666666663],"xyz":[0.488788937922024047,0.348742851799994702,0.0962651950339174084],"hpluv":[22.9581907744090898,228.519406804146513,65.6506715027637853],"hsluv":[22.9581907744090898,100.000000000000199,65.6506715027637853]},"#ff7755":{"lch":[65.8363783536997857,113.378413750733145,20.3056908730066645],"luv":[65.8363783536997857,106.332452226692425,39.3455754576116092],"rgb":[1,0.466666666666666674,0.333333333333333315],"xyz":[0.494751351961386032,0.351127817415739563,0.12766724230789131],"hpluv":[20.3056908730066645,218.526329281612362,65.8363783536997857],"hsluv":[20.3056908730066645,100.000000000000171,65.8363783536997857]},"#ff7766":{"lch":[66.0714111968285351,107.847817312906827,16.7638759706376135],"luv":[66.0714111968285351,103.264450834403533,31.1063481146080676],"rgb":[1,0.466666666666666674,0.4],"xyz":[0.502336347734894217,0.354161815725142881,0.167614886715035272],"hpluv":[16.7638759706376135,207.127185394700234,66.0714111968285351],"hsluv":[16.7638759706376135,100.000000000000426,66.0714111968285351]},"#ff7777":{"lch":[66.3581913431115851,102.006782949974053,12.1770506300619488],"luv":[66.3581913431115851,99.7116772923406671,21.5166256497442419],"rgb":[1,0.466666666666666674,0.466666666666666674],"xyz":[0.511650360755096067,0.357887420933223677,0.216668688621433181],"hpluv":[12.1770506300619488,195.062523033846361,66.3581913431115851],"hsluv":[12.1770506300619488,100.000000000000355,66.3581913431115851]},"#ff7788":{"lch":[66.6986047917809,96.3441833198397291,6.39999172914420456],"luv":[66.6986047917809,95.7437601312525,10.7393694179903871],"rgb":[1,0.466666666666666674,0.533333333333333326],"xyz":[0.52279077785704,0.362343587774001274,0.275341552025005376],"hpluv":[6.39999172914420456,183.293927388427107,66.6986047917809],"hsluv":[6.39999172914420456,100.000000000000639,66.6986047917809]},"#ff7799":{"lch":[67.0940474565320244,91.4474963932601,359.352586865695173],"luv":[67.0940474565320244,91.4416585161261679,-1.0332881570442134],"rgb":[1,0.466666666666666674,0.6],"xyz":[0.535847741966112623,0.367566373417630432,0.344108229666123255],"hpluv":[359.352586865695173,172.952623850798517,67.0940474565320244],"hsluv":[359.352586865695173,100.000000000000782,67.0940474565320244]},"#ff77aa":{"lch":[67.5454605183692,87.9484746627524,351.107126776790835],"luv":[67.5454605183692,86.8912550098467449,-13.5957345634056814],"rgb":[1,0.466666666666666674,0.66666666666666663],"xyz":[0.550905434931365234,0.373589450603731554,0.423412079283121856],"hpluv":[351.107126776790835,165.223368139110704,67.5454605183692],"hsluv":[351.107126776790835,100.000000000000938,67.5454605183692]},"#ff77bb":{"lch":[68.0533617234635244,86.4195813509952,341.973592157308417],"luv":[68.0533617234635244,82.1775887588569,-26.7429980866295693],"rgb":[1,0.466666666666666674,0.733333333333333282],"xyz":[0.568043027038701798,0.380444487446666313,0.513670064381763658],"hpluv":[341.973592157308417,161.139458954487083,68.0533617234635244],"hsluv":[341.973592157308417,100.000000000001037,68.0533617234635244]},"#ff77cc":{"lch":[68.6178757233526682,87.2373067072756214,332.49967924393593],"luv":[68.6178757233526682,77.3802105983984347,-40.2821385887937],"rgb":[1,0.466666666666666674,0.8],"xyz":[0.587335402482423552,0.388161437624155115,0.615276575052033814],"hpluv":[332.49967924393593,161.325977991170333,68.6178757233526682],"hsluv":[332.49967924393593,100.000000000001265,68.6178757233526682]},"#ff77dd":{"lch":[69.238765020261809,90.480647802514838,323.326201907778],"luv":[69.238765020261809,72.5699004301545756,-54.0403291840472],"rgb":[1,0.466666666666666674,0.866666666666666696],"xyz":[0.608853728033057151,0.396768767844408621,0.728606422952039812],"hpluv":[323.326201907778,165.823361543811586,69.238765020261809],"hsluv":[323.326201907778,100.00000000000145,69.238765020261809]},"#ff77ee":{"lch":[69.9154621504300593,95.9376886025569604,314.973456368277198],"luv":[69.9154621504300593,67.8067552495039791,-67.8696105553513149],"rgb":[1,0.466666666666666674,0.933333333333333348],"xyz":[0.632665908299231861,0.406293639950878638,0.854017239020563],"hpluv":[314.973456368277198,174.122680701596721,69.9154621504300593],"hsluv":[314.973456368277198,100.000000000001535,69.9154621504300593]},"#ff77ff":{"lch":[70.6471031550122,103.213892868752552,307.715012949244283],"luv":[70.6471031550122,63.1394826173239494,-81.6487196221654],"rgb":[1,0.466666666666666674,1],"xyz":[0.658836956709063282,0.416762059314811362,0.99185142731234488],"hpluv":[307.715012949244283,185.388643374650655,70.6471031550122],"hsluv":[307.715012949244283,100.000000000001975,70.6471031550122]},"#ff8800":{"lch":[68.6580440198892603,118.150361410828182,32.8458067740872153],"luv":[68.6580440198892603,99.2620471866307383,64.0823992202883375],"rgb":[1,0.533333333333333326,0],"xyz":[0.500428538032203774,0.388714483404019873,0.0486767316376747472],"hpluv":[32.8458067740872153,218.364961888913399,68.6580440198892603],"hsluv":[32.8458067740872153,100.000000000002245,68.6580440198892603]},"#ff8811":{"lch":[68.6874112197728408,117.19102013872596,32.4606037779481582],"luv":[68.6874112197728408,98.8811760474647485,62.89871401408422],"rgb":[1,0.533333333333333326,0.0666666666666666657],"xyz":[0.501440203531840933,0.389119149603874726,0.0540048366024303769],"hpluv":[32.4606037779481582,216.499308154785638,68.6874112197728408],"hsluv":[32.4606037779481582,100.000000000000739,68.6874112197728408]},"#ff8822":{"lch":[68.7417963707939492,115.443262249268372,31.7362513605757321],"luv":[68.7417963707939492,98.1820090833864754,60.724294076614548],"rgb":[1,0.533333333333333326,0.133333333333333331],"xyz":[0.503315561670317879,0.389869292859265526,0.0638817227984095765],"hpluv":[31.7362513605757321,213.101761826290613,68.7417963707939492],"hsluv":[31.7362513605757321,100.000000000000668,68.7417963707939492]},"#ff8833":{"lch":[68.8311889682804292,112.651741292777714,30.5141745142023382],"luv":[68.8311889682804292,97.0498776480180823,57.1990914683060439],"rgb":[1,0.533333333333333326,0.2],"xyz":[0.506403312402775696,0.391104393152248653,0.0801438766560207128],"hpluv":[30.5141745142023382,207.678703624478942,68.8311889682804292],"hsluv":[30.5141745142023382,100.000000000000824,68.8311889682804292]},"#ff8844":{"lch":[68.9599197258043688,108.808998086617962,28.6842020071901302],"luv":[68.9599197258043688,95.4557990826346554,52.2263198599069725],"rgb":[1,0.533333333333333326,0.266666666666666663],"xyz":[0.510861307646994556,0.392887591249936219,0.103622651608907351],"hpluv":[28.6842020071901302,200.2199693629492,68.9599197258043688],"hsluv":[28.6842020071901302,100.000000000000838,68.9599197258043688]},"#ff8855":{"lch":[69.1314852187197602,104.012526361958052,26.1137258191789492],"luv":[69.1314852187197602,93.395152113439849,45.7815596272609682],"rgb":[1,0.533333333333333326,0.333333333333333315],"xyz":[0.516823721686356485,0.39527255686568108,0.135024698882881267],"hpluv":[26.1137258191789492,190.918970683811096,69.1314852187197602],"hsluv":[26.1137258191789492,100.000000000000867,69.1314852187197602]},"#ff8866":{"lch":[69.3487452092138881,98.4723154092605171,22.6389332988698087],"luv":[69.3487452092138881,90.8849122177262529,37.9042165627661802],"rgb":[1,0.533333333333333326,0.4],"xyz":[0.524408717459864726,0.398306555175084398,0.174972343290025228],"hpluv":[22.6389332988698087,180.183437843423292,69.3487452092138881],"hsluv":[22.6389332988698087,100.000000000001066,69.3487452092138881]},"#ff8877":{"lch":[69.6140261744794344,92.5206854303452246,18.0637242730473773],"luv":[69.6140261744794344,87.9605480867009248,28.6883114314535526],"rgb":[1,0.533333333333333326,0.466666666666666674],"xyz":[0.533722730480066576,0.402032160383165194,0.224026145196423138],"hpluv":[18.0637242730473773,168.648085666048672,69.6140261744794344],"hsluv":[18.0637242730473773,100.000000000001108,69.6140261744794344]},"#ff8888":{"lch":[69.9291829132988596,86.6211090413054,12.1770506300619186],"luv":[69.9291829132988596,84.672173963834382,18.2712749359175248],"rgb":[1,0.533333333333333326,0.533333333333333326],"xyz":[0.544863147582010487,0.406488327223942791,0.282699008599995305],"hpluv":[12.1770506300619186,157.182652238587849,69.9291829132988596],"hsluv":[12.1770506300619186,100.000000000001251,69.9291829132988596]},"#ff8899":{"lch":[70.29563969089034,81.3665448969888274,4.80888772903122597],"luv":[70.29563969089034,81.0801238487794791,6.82115423812421362],"rgb":[1,0.533333333333333326,0.6],"xyz":[0.557920111691083132,0.411711112867571949,0.351465686241113184],"hpluv":[4.80888772903122597,146.878021536398364,70.29563969089034],"hsluv":[4.80888772903122597,100.00000000000135,70.29563969089034]},"#ff88aa":{"lch":[70.7144212664750427,77.4442353273614827,355.944797831634332],"luv":[70.7144212664750427,77.2503443699940533,-5.47666688388778589],"rgb":[1,0.533333333333333326,0.66666666666666663],"xyz":[0.572977804656335743,0.417734190053673071,0.430769535858111841],"hpluv":[355.944797831634332,138.969799542374091,70.7144212664750427],"hsluv":[355.944797831634332,100.000000000001648,70.7144212664750427]},"#ff88bb":{"lch":[71.1861792611668847,75.5334875912487718,345.875835641341098],"luv":[71.1861792611668847,73.2500487000805,-18.431986141845023],"rgb":[1,0.533333333333333326,0.733333333333333282],"xyz":[0.590115396763672306,0.42458922689660783,0.521027520956753532],"hpluv":[345.875835641341098,134.642814203514433,71.1861792611668847],"hsluv":[345.875835641341098,100.000000000001776,71.1861792611668847]},"#ff88cc":{"lch":[71.711216864189268,76.1313589407537563,335.260476444218114],"luv":[71.711216864189268,69.1440007334156377,-31.8604924121286039],"rgb":[1,0.533333333333333326,0.8],"xyz":[0.609407772207394061,0.432306177074096631,0.622634031627023687],"hpluv":[335.260476444218114,134.714956877670915,71.711216864189268],"hsluv":[335.260476444218114,100.000000000001933,71.711216864189268]},"#ff88dd":{"lch":[72.2895135005839649,79.3885839073469413,324.950129439258774],"luv":[72.2895135005839649,64.9916618916399784,-45.5920074067441803],"rgb":[1,0.533333333333333326,0.866666666666666696],"xyz":[0.63092609775802766,0.440913507294350138,0.735963879527029685],"hpluv":[324.950129439258774,139.354847315526115,72.2895135005839649],"hsluv":[324.950129439258774,100.000000000002245,72.2895135005839649]},"#ff88ee":{"lch":[72.9207502525545124,85.0855243828499,315.651995307064169],"luv":[72.9207502525545124,60.845281511842515,-59.4760302748021203],"rgb":[1,0.533333333333333326,0.933333333333333348],"xyz":[0.654738278024202369,0.450438379400820155,0.861374695595552908],"hpluv":[315.651995307064169,148.062090862911901,72.9207502525545124],"hsluv":[315.651995307064169,100.000000000002444,72.9207502525545124]},"#ff88ff":{"lch":[73.6043362991539709,92.7672005781522842,307.715012949244624],"luv":[73.6043362991539709,56.7488822053271349,-73.3847250560567375],"rgb":[1,0.533333333333333326,1],"xyz":[0.68090932643403379,0.460906798764752879,0.999208883887334753],"hpluv":[307.715012949244624,159.930161835956909,73.6043362991539709],"hsluv":[307.715012949244624,100.000000000002771,73.6043362991539709]},"#ff9900":{"lch":[72.2588108283115389,109.907462524380705,39.4434130396340095],"luv":[72.2588108283115389,84.8763034831777077,69.8259509464759418],"rgb":[1,0.6,0],"xyz":[0.526298138484671219,0.440453684308955595,0.057299931788497],"hpluv":[39.4434130396340095,193.008172097547572,72.2588108283115389],"hsluv":[39.4434130396340095,100.000000000002288,72.2588108283115389]},"#ff9911":{"lch":[72.2858317740783889,108.970035258541955,39.0927051304156805],"luv":[72.2858317740783889,84.5745536570817791,68.7139975401902348],"rgb":[1,0.6,0.0666666666666666657],"xyz":[0.527309803984308378,0.440858350508810448,0.0626280367532526389],"hpluv":[39.0927051304156805,191.2904264008464,72.2858317740783889],"hsluv":[39.0927051304156805,100.000000000001506,72.2858317740783889]},"#ff9922":{"lch":[72.3358777005795304,107.257428554778556,38.4317580680427469],"luv":[72.3358777005795304,84.0200042697796,66.6692947517044274],"rgb":[1,0.6,0.133333333333333331],"xyz":[0.529185162122785324,0.441608493764201249,0.0725049229492318315],"hpluv":[38.4317580680427469,188.15378179700545,72.3358777005795304],"hsluv":[38.4317580680427469,100.00000000000145,72.3358777005795304]},"#ff9933":{"lch":[72.418154282067718,104.508625212907305,37.3122251519614778],"luv":[72.418154282067718,83.1203251002183237,63.3487513620113845],"rgb":[1,0.6,0.2],"xyz":[0.532272912855243141,0.442843594057184375,0.0887670768068429816],"hpluv":[37.3122251519614778,183.123470124205028,72.418154282067718],"hsluv":[37.3122251519614778,100.00000000000162,72.418154282067718]},"#ff9944":{"lch":[72.5366731246789556,100.695423976150749,35.6250099256014607],"luv":[72.5366731246789556,81.8499313718691326,58.6528528219818952],"rgb":[1,0.6,0.266666666666666663],"xyz":[0.536730908099462,0.444626792154871942,0.11224585175972962],"hpluv":[35.6250099256014607,176.153561585765658,72.5366731246789556],"hsluv":[35.6250099256014607,100.000000000001748,72.5366731246789556]},"#ff9955":{"lch":[72.6946936633514582,95.8821930466240673,33.2320443565807508],"luv":[72.6946936633514582,80.201421842029859,52.5464259293328269],"rgb":[1,0.6,0.333333333333333315],"xyz":[0.54269332213882393,0.447011757770616802,0.143647899033703508],"hpluv":[33.2320443565807508,167.368827825995851,72.6946936633514582],"hsluv":[33.2320443565807508,100.000000000001705,72.6946936633514582]},"#ff9966":{"lch":[72.8949069034106,90.2347392462793749,29.9516480142673025],"luv":[72.8949069034106,78.1836232693519406,45.0514064077924345],"rgb":[1,0.6,0.4],"xyz":[0.550278317912332171,0.450045756080020121,0.183595543440847497],"hpluv":[29.9516480142673025,157.078197331028889,72.8949069034106],"hsluv":[29.9516480142673025,100.000000000001819,72.8949069034106]},"#ff9977":{"lch":[73.1395321193821,84.0351966301436,25.5464816978182121],"luv":[73.1395321193821,75.8195571045914,36.2396058633438045],"rgb":[1,0.6,0.466666666666666674],"xyz":[0.559592330932534,0.453771361288100916,0.232649345347245406],"hpluv":[25.5464816978182121,145.796926659053128,73.1395321193821],"hsluv":[25.5464816978182121,100.000000000002018,73.1395321193821]},"#ff9988":{"lch":[73.430374185650777,77.702838567593929,19.7240568661095921],"luv":[73.430374185650777,73.1439295084068419,26.2239718107454713],"rgb":[1,0.6,0.533333333333333326],"xyz":[0.570732748034477932,0.458227528128878514,0.291322208750817546],"hpluv":[19.7240568661095921,134.276641294628575,73.430374185650777],"hsluv":[19.7240568661095921,100.000000000002203,73.430374185650777]},"#ff9999":{"lch":[73.76886125649402,71.8160022700114098,12.1770506300620251],"luv":[73.76886125649402,70.2001752793754,15.1483851545719261],"rgb":[1,0.6,0.6],"xyz":[0.583789712143550577,0.463450313772507672,0.360088886391935481],"hpluv":[12.1770506300620251,123.534275619879125,73.76886125649402],"hsluv":[12.1770506300620251,100.000000000002331,73.76886125649402]},"#ff99aa":{"lch":[74.1560723225582592,67.1124973440613,2.7130535693684088],"luv":[74.1560723225582592,67.0372720786985923,3.17670458229478481],"rgb":[1,0.6,0.66666666666666663],"xyz":[0.598847405108803188,0.469473390958608794,0.439392736008934082],"hpluv":[2.7130535693684088,114.840746523486033,74.1560723225582592],"hsluv":[2.7130535693684088,100.00000000000253,74.1560723225582592]},"#ff99bb":{"lch":[74.5927597146433925,64.4136927281220864,351.502648062184],"luv":[74.5927597146433925,63.7066038913843187,-9.51800564715024322],"rgb":[1,0.6,0.733333333333333282],"xyz":[0.615984997216139751,0.476328427801543552,0.529650721107575828],"hpluv":[351.502648062184,109.577363966618833,74.5927597146433925],"hsluv":[351.502648062184,100.000000000002615,74.5927597146433925]},"#ff99cc":{"lch":[75.0793694015197,64.4152606478183145,339.305696269483292],"luv":[75.0793694015197,60.259134450288677,-22.7631834247409977],"rgb":[1,0.6,0.8],"xyz":[0.635277372659861506,0.484045377979032354,0.631257231777846],"hpluv":[339.305696269483292,108.869813431806975,75.0793694015197],"hsluv":[339.305696269483292,100.000000000002871,75.0793694015197]},"#ff99dd":{"lch":[75.6160606971696296,67.4118390527965232,327.324068761847229],"luv":[75.6160606971696296,56.7430830794555,-36.3947601601954887],"rgb":[1,0.6,0.866666666666666696],"xyz":[0.656795698210495105,0.49265270819928586,0.744587079677852],"hpluv":[327.324068761847229,113.125745227459021,75.6160606971696296],"hsluv":[327.324068761847229,100.00000000000324,75.6160606971696296]},"#ff99ee":{"lch":[76.202726253448489,73.1905233351813393,316.627151984536795],"luv":[76.202726253448489,53.2022056350908201,-50.2630880631028845],"rgb":[1,0.6,0.933333333333333348],"xyz":[0.680607878476669814,0.502177580305755877,0.869997895746375205],"hpluv":[316.627151984536795,123.107716827744753,76.202726253448489],"hsluv":[316.627151984536795,100.000000000003524,76.202726253448489]},"#ff99ff":{"lch":[76.8390127436129,81.2030526869262275,307.715012949245],"luv":[76.8390127436129,49.6746958291708154,-64.2367524082209229],"rgb":[1,0.6,1],"xyz":[0.706778926886501235,0.512645999669688601,1.00783208403815694],"hpluv":[307.715012949245,141.150312559224801,76.8390127436129],"hsluv":[307.715012949245,100.000000000003752,76.8390127436129]},"#ee0000":{"lch":[49.7142799595632,167.190689697178925,12.1770506300617765],"luv":[49.7142799595632,163.428976145092918,35.2660811203203934],"rgb":[0.933333333333333348,0,0],"xyz":[0.352591085030832,0.181804778219026603,0.0165277071108199],"hpluv":[12.1770506300617765,426.746789183125202,49.7142799595632],"hsluv":[12.1770506300617765,100.000000000002217,49.7142799595632]},"#ee0011":{"lch":[49.7630000621001756,165.722449822455,11.6881730851639158],"luv":[49.7630000621001756,162.286136628676445,33.5729092170260728],"rgb":[0.933333333333333348,0,0.0666666666666666657],"xyz":[0.353602750530469079,0.182209444418881455,0.0218558120755755342],"hpluv":[11.6881730851639158,422.585038037937124,49.7630000621001756],"hsluv":[11.6881730851639158,99.9999999999963762,49.7630000621001756]},"#ee0022":{"lch":[49.8531236873270558,163.0858535413212,10.7756858750078184],"luv":[49.8531236873270558,160.210108449799208,30.4912573667411486],"rgb":[0.933333333333333348,0,0.133333333333333331],"xyz":[0.355478108668946136,0.182959587674272284,0.0317326982715547268],"hpluv":[10.7756858750078184,415.110044299310516,49.8531236873270558],"hsluv":[10.7756858750078184,99.9999999999964473,49.8531236873270558]},"#ee0033":{"lch":[50.000975779064234,158.977402767524836,9.25647316775448559],"luv":[50.000975779064234,156.907230803998146,25.5721628363475],"rgb":[0.933333333333333348,0,0.2],"xyz":[0.358565859401403841,0.184194687967255383,0.047994852129165877],"hpluv":[9.25647316775448559,403.456061197389261,50.000975779064234],"hsluv":[9.25647316775448559,99.9999999999965183,50.000975779064234]},"#ee0044":{"lch":[50.2132784041556164,153.529579514286212,7.02933300215353],"luv":[50.2132784041556164,152.375594335021788,18.7885613308314312],"rgb":[0.933333333333333348,0,0.266666666666666663],"xyz":[0.363023854645622757,0.185977886064942977,0.0714736270820525155],"hpluv":[7.02933300215353,387.983100931209492,50.2132784041556164],"hsluv":[7.02933300215353,99.9999999999966462,50.2132784041556164]},"#ee0055":{"lch":[50.4951150037793326,147.071833727726926,3.99754465361350508],"luv":[50.4951150037793326,146.714013644902735,10.2529252527975352],"rgb":[0.933333333333333348,0,0.333333333333333315],"xyz":[0.368986268684984742,0.188362851680687809,0.102875674356026417],"hpluv":[3.99754465361350508,369.589367027053072,50.4951150037793326],"hsluv":[3.99754465361350508,99.999999999996831,50.4951150037793326]},"#ee0066":{"lch":[50.8502318550204109,140.098840030056522,0.0757634158231174915],"luv":[50.8502318550204109,140.0987175463531,0.185255592479522613],"rgb":[0.933333333333333348,0,0.4],"xyz":[0.376571264458492927,0.1913968499900911,0.142823318763170393],"hpluv":[0.0757634158231174915,349.60765112382461,50.8502318550204109],"hsluv":[0.0757634158231174915,99.9999999999970584,50.8502318550204109]},"#ee0077":{"lch":[51.2812017254514956,133.219993530026585,355.209470699020642],"luv":[51.2812017254514956,132.754613083251769,-11.1256182415379214],"rgb":[0.933333333333333348,0,0.466666666666666674],"xyz":[0.385885277478694833,0.195122455198171924,0.191877120669568302],"hpluv":[355.209470699020642,329.648072606093592,51.2812017254514956],"hsluv":[355.209470699020642,99.9999999999973284,51.2812017254514956]},"#ee0088":{"lch":[51.7895361854883163,127.090944021268115,349.407446028193533],"luv":[51.7895361854883163,124.925218603260163,-23.3623160055840167],"rgb":[0.933333333333333348,0,0.533333333333333326],"xyz":[0.397025694580638633,0.199578622038949521,0.250549984073140442],"hpluv":[349.407446028193533,311.395197619459395,51.7895361854883163],"hsluv":[349.407446028193533,99.9999999999974705,51.7895361854883163]},"#ee0099":{"lch":[52.3757812732210652,122.329563392952366,342.780178840499048],"luv":[52.3757812732210652,116.846263825073436,-36.2142611415956637],"rgb":[0.933333333333333348,0,0.6],"xyz":[0.410082658689711388,0.204801407682578679,0.319316661714258376],"hpluv":[342.780178840499048,296.374093031221,52.3757812732210652],"hsluv":[342.780178840499048,99.9999999999978,52.3757812732210652]},"#ee00aa":{"lch":[53.0396114453995722,119.424239873739239,335.563712743666827],"luv":[53.0396114453995722,108.726436909364494,-49.403552366347],"rgb":[0.933333333333333348,0,0.66666666666666663],"xyz":[0.425140351654963888,0.210824484868679773,0.398620511331257],"hpluv":[335.563712743666827,285.713971708863653,53.0396114453995722],"hsluv":[335.563712743666827,99.999999999998,53.0396114453995722]},"#ee00bb":{"lch":[53.779927529436435,118.655378520732356,328.101249142938343],"luv":[53.779927529436435,100.736423933687789,-62.6998544252744381],"rgb":[0.933333333333333348,0,0.733333333333333282],"xyz":[0.442277943762300563,0.217679521711614532,0.488878496429898723],"hpluv":[328.101249142938343,279.966806180862307,53.779927529436435],"hsluv":[328.101249142938343,99.9999999999982094,53.779927529436435]},"#ee00cc":{"lch":[54.5949595671901,120.061129768120921,320.773339602207614],"luv":[54.5949595671901,93.0053918954961,-75.9254368414351575],"rgb":[0.933333333333333348,0,0.8],"xyz":[0.461570319206022317,0.225396471889103334,0.590485007100168824],"hpluv":[320.773339602207614,279.054611328209262,54.5949595671901],"hsluv":[320.773339602207614,99.9999999999984,54.5949595671901]},"#ee00dd":{"lch":[55.4823728661035744,123.466264594666441,313.907226483092529],"luv":[55.4823728661035744,85.6229535549924634,-88.9529556421808252],"rgb":[0.933333333333333348,0,0.866666666666666696],"xyz":[0.483088644756655805,0.234003802109356868,0.703814855000174822],"hpluv":[313.907226483092529,282.379138449157608,55.4823728661035744],"hsluv":[313.907226483092529,99.9999999999986215,55.4823728661035744]},"#ee00ee":{"lch":[56.4393743497109597,128.559742977308588,307.715012949243601],"luv":[56.4393743497109597,78.644409501394918,-101.698890694877051],"rgb":[0.933333333333333348,0,0.933333333333333348],"xyz":[0.506900825022830626,0.243528674215826912,0.829225671068698],"hpluv":[307.715012949243601,289.042783730483393,56.4393743497109597],"hsluv":[307.715012949243601,99.9999999999988489,56.4393743497109597]},"#ee00ff":{"lch":[57.4628159598150745,134.982567880189606,302.284502363601803],"luv":[57.4628159598150745,72.0973885084188879,-114.115118199983058],"rgb":[0.933333333333333348,0,1],"xyz":[0.533071873432661936,0.253997093579759636,0.96705985936047989],"hpluv":[302.284502363601803,298.078126285043766,57.4628159598150745],"hsluv":[302.284502363601803,99.9999999999989484,57.4628159598150745]},"#ee1100":{"lch":[50.1937733395544683,164.746074066243921,12.6667024036514828],"luv":[50.1937733395544683,160.736507742479517,36.1253927174799117],"rgb":[0.933333333333333348,0.0666666666666666657,0],"xyz":[0.354595485291760382,0.185813578740883473,0.0171958405311293527],"hpluv":[12.6667024036514828,416.489977947977081,50.1937733395544683],"hsluv":[12.6667024036514828,100.000000000002245,50.1937733395544683]},"#ee1111":{"lch":[50.2417909300708345,163.305921695383518,12.1770506300617907],"luv":[50.2417909300708345,159.631613634988071,34.4466542507197317],"rgb":[0.933333333333333348,0.0666666666666666657,0.0666666666666666657],"xyz":[0.355607150791397486,0.186218244940738326,0.0225239454958849825],"hpluv":[12.1770506300617907,412.454596338970589,50.2417909300708345],"hsluv":[12.1770506300617907,96.6508962208003197,50.2417909300708345]},"#ee1122":{"lch":[50.3306190654122219,160.718934991358793,11.2629010575952293],"luv":[50.3306190654122219,157.623701713525833,31.390201064696047],"rgb":[0.933333333333333348,0.0666666666666666657,0.133333333333333331],"xyz":[0.357482508929874543,0.186968388196129154,0.032400831691864182],"hpluv":[11.2629010575952293,405.204351077732667,50.3306190654122219],"hsluv":[11.2629010575952293,96.6948337079543592,50.3306190654122219]},"#ee1133":{"lch":[50.4763571232054318,156.685700791802191,9.74029685215880647],"luv":[50.4763571232054318,154.427033260746356,26.5084935615454427],"rgb":[0.933333333333333348,0.0666666666666666657,0.2],"xyz":[0.360570259662332249,0.188203488489112253,0.0486629855494753252],"hpluv":[9.74029685215880647,393.895198182016713,50.4763571232054318],"hsluv":[9.74029685215880647,96.7647175585846,50.4763571232054318]},"#ee1144":{"lch":[50.6856484752898382,151.333831494518165,7.50679337730589413],"luv":[50.6856484752898382,150.036806479185287,19.7708183022028514],"rgb":[0.933333333333333348,0.0666666666666666657,0.266666666666666663],"xyz":[0.365028254906551164,0.189986686586799847,0.0721417605023619568],"hpluv":[7.50679337730589413,378.870112575267399,50.6856484752898382],"hsluv":[7.50679337730589413,96.8605546889772455,50.6856484752898382]},"#ee1155":{"lch":[50.9635312364098496,144.984673036864649,4.46374659640210858],"luv":[50.9635312364098496,144.544902405536135,11.283909082431693],"rgb":[0.933333333333333348,0.0666666666666666657,0.333333333333333315],"xyz":[0.370990668945913149,0.19237165220254468,0.103543807776335872],"hpluv":[4.46374659640210858,360.995599227985224,50.9635312364098496],"hsluv":[4.46374659640210858,96.9801964566503,50.9635312364098496]},"#ee1166":{"lch":[51.3137360134299598,138.123816003378664,0.523151936541392],"luv":[51.3137360134299598,138.118058344046318,1.26115288756691357],"rgb":[0.933333333333333348,0.0666666666666666657,0.4],"xyz":[0.378575664719421334,0.19540565051194797,0.143491452183479834],"hpluv":[0.523151936541392,341.565705345826359,51.3137360134299598],"hsluv":[0.523151936541392,97.1198273857598764,51.3137360134299598]},"#ee1177":{"lch":[51.7388469835676119,131.353183798903302,355.627348241097309],"luv":[51.7388469835676119,130.970848560864681,-10.014775152519368],"rgb":[0.933333333333333348,0.0666666666666666657,0.466666666666666674],"xyz":[0.38788967773962324,0.199131255720028794,0.192545254089877743],"hpluv":[355.627348241097309,322.153744971780554,51.7388469835676119],"hsluv":[355.627348241097309,97.2745732157476,51.7388469835676119]},"#ee1188":{"lch":[52.2404115410600411,125.324707533591734,349.782339698165117],"luv":[52.2404115410600411,123.337180279157977,-22.2311106147846438],"rgb":[0.933333333333333348,0.0666666666666666657,0.533333333333333326],"xyz":[0.39903009484156704,0.203587422560806391,0.251218117493449911],"hpluv":[349.782339698165117,304.417375015566734,52.2404115410600411],"hsluv":[349.782339698165117,97.4391430985313605,52.2404115410600411]},"#ee1199":{"lch":[52.819032808459994,120.657103381490217,343.097768544337384],"luv":[52.819032808459994,115.44498939014953,-35.079780802050081],"rgb":[0.933333333333333348,0.0666666666666666657,0.6],"xyz":[0.412087058950639795,0.208810208204435549,0.31998479513456779],"hpluv":[343.097768544337384,289.869003225703352,52.819032808459994],"hsluv":[343.097768544337384,97.6083995478766298,52.819032808459994]},"#ee11aa":{"lch":[53.4744599034404615,117.843047501566133,335.812437212199143],"luv":[53.4744599034404615,107.497497568615216,-48.2832461723726496],"rgb":[0.933333333333333348,0.0666666666666666657,0.66666666666666663],"xyz":[0.427144751915892296,0.214833285390536644,0.399288644751566446],"hpluv":[335.812437212199143,279.638449078323276,53.4744599034404615],"hsluv":[335.812437212199143,97.7777799659692,53.4744599034404615]},"#ee11bb":{"lch":[54.205681814132376,117.167943285093472,328.276238054291071],"luv":[54.205681814132376,99.6622453247977376,-61.6097702517929662],"rgb":[0.933333333333333348,0.0666666666666666657,0.733333333333333282],"xyz":[0.44428234402322897,0.221688322233471402,0.489546629850208137],"hpluv":[328.276238054291071,274.285798241860448,54.205681814132376],"hsluv":[328.276238054291071,97.9435422525978652,54.205681814132376]},"#ee11cc":{"lch":[55.0110259993956703,118.672848043699901,320.878255441103249],"luv":[55.0110259993956703,92.0672263164348266,-74.8790404666182781],"rgb":[0.933333333333333348,0.0666666666666666657,0.8],"xyz":[0.463574719466950724,0.229405272410960204,0.591153140520478293],"hpluv":[320.878255441103249,273.741691636115945,55.0110259993956703],"hsluv":[320.878255441103249,98.102849778989,55.0110259993956703]},"#ee11dd":{"lch":[55.8882602794840864,122.182226882396691,313.952719233652829],"luv":[55.8882602794840864,84.8023500190691522,-87.9605479586430334],"rgb":[0.933333333333333348,0.0666666666666666657,0.866666666666666696],"xyz":[0.485093045017584212,0.238012602631213738,0.704482988420484291],"hpluv":[313.952719233652829,277.412976370396279,55.8882602794840864],"hsluv":[313.952719233652829,98.2537358693348608,55.8882602794840864]},"#ee11ee":{"lch":[56.83469533821048,127.382376320214306,307.715012949243601],"luv":[56.83469533821048,77.9241738866570302,-100.767519176899128],"rgb":[0.933333333333333348,0.0666666666666666657,0.933333333333333348],"xyz":[0.508905225283758922,0.247537474737683783,0.829893804489007514],"hpluv":[307.715012949243601,284.403630900032795,56.83469533821048],"hsluv":[307.715012949243601,98.3949944120453495,56.83469533821048]},"#ee11ff":{"lch":[57.8472847680859275,133.910906422249354,302.2526850652647],"luv":[57.8472847680859275,71.4621107907268254,-113.248830369952643],"rgb":[0.933333333333333348,0.0666666666666666657,1],"xyz":[0.535076273693590343,0.258005894101616451,0.967727992780789359],"hpluv":[302.2526850652647,293.746227206253536,57.8472847680859275],"hsluv":[302.2526850652647,99.99999999999892,57.8472847680859275]},"#ee2200":{"lch":[51.0646940471157222,160.407609402057773,13.5847947923325787],"luv":[51.0646940471157222,155.919944837816502,37.677207378671163],"rgb":[0.933333333333333348,0.133333333333333331,0],"xyz":[0.358311109026528296,0.19324482621041944,0.018434381776051962],"hpluv":[13.5847947923325787,398.605749597291435,51.0646940471157222],"hsluv":[13.5847947923325787,100.000000000002203,51.0646940471157222]},"#ee2211":{"lch":[51.1114738997186322,159.015005648229618,13.0939108674416342],"luv":[51.1114738997186322,154.880623331235768,36.0244991337056817],"rgb":[0.933333333333333348,0.133333333333333331,0.0666666666666666657],"xyz":[0.3593227745261654,0.193649492410274293,0.0237624867408075952],"hpluv":[13.0939108674416342,394.783534202752207,51.1114738997186322],"hsluv":[13.0939108674416342,96.7702863870018462,51.1114738997186322]},"#ee2222":{"lch":[51.1980191888258105,156.511980987808,12.1770506300618031],"luv":[51.1980191888258105,152.990533465747774,33.0135860305098348],"rgb":[0.933333333333333348,0.133333333333333331,0.133333333333333331],"xyz":[0.361198132664642457,0.194399635665665121,0.0336393729367867877],"hpluv":[12.1770506300618031,387.912483642854795,51.1980191888258105],"hsluv":[12.1770506300618031,90.899918517349,51.1980191888258105]},"#ee2233":{"lch":[51.340031013958,152.605977320930094,10.6487510890373542],"luv":[51.340031013958,149.977869701108148,28.1996970549978769],"rgb":[0.933333333333333348,0.133333333333333331,0.2],"xyz":[0.364285883397100163,0.19563473595864822,0.0499015267943979379],"hpluv":[10.6487510890373542,377.185287566809563,51.340031013958],"hsluv":[10.6487510890373542,91.0856949770771,51.340031013958]},"#ee2244":{"lch":[51.5440125284501391,147.416232714385046,8.4042516634418849],"luv":[51.5440125284501391,145.833202035739902,21.5458314229178391],"rgb":[0.933333333333333348,0.133333333333333331,0.266666666666666663],"xyz":[0.368743878641319078,0.197417934056335814,0.0733803017472845764],"hpluv":[8.4042516634418849,362.916246958463432,51.5440125284501391],"hsluv":[8.4042516634418849,91.3409150161676848,51.5440125284501391]},"#ee2255":{"lch":[51.8149196409757,141.25016266814734,5.34127242035781613],"luv":[51.8149196409757,140.636840571385164,13.1486701942394504],"rgb":[0.933333333333333348,0.133333333333333331,0.333333333333333315],"xyz":[0.374706292680681063,0.199802899672080647,0.104782349021258478],"hpluv":[5.34127242035781613,345.918233291596209,51.8149196409757],"hsluv":[5.34127242035781613,91.6602615743055082,51.8149196409757]},"#ee2266":{"lch":[52.1564522427987924,134.577740656965489,1.36671179444129165],"luv":[52.1564522427987924,134.539455426625494,3.20986196595936],"rgb":[0.933333333333333348,0.133333333333333331,0.4],"xyz":[0.382291288454189249,0.202836897981483938,0.144729993428402454],"hpluv":[1.36671179444129165,327.419481975304109,52.1564522427987924],"hsluv":[1.36671179444129165,92.0339967122243365,52.1564522427987924]},"#ee2277":{"lch":[52.5712108639856694,127.988129961564283,356.416786702014292],"luv":[52.5712108639856694,127.737923683219179,-7.99901644943552803],"rgb":[0.933333333333333348,0.133333333333333331,0.466666666666666674],"xyz":[0.391605301474391154,0.206562503189564761,0.193783795334800363],"hpluv":[356.416786702014292,308.930679724572485,52.5712108639856694],"hsluv":[356.416786702014292,92.4494947830095,52.5712108639856694]},"#ee2288":{"lch":[53.0608018273771194,122.127216672078461,350.491948161024197],"luv":[53.0608018273771194,120.449481512132621,-20.1737318195523763],"rgb":[0.933333333333333348,0.133333333333333331,0.533333333333333326],"xyz":[0.402745718576334955,0.211018670030342359,0.25245665873837253],"hpluv":[350.491948161024197,292.063965437042782,53.0608018273771194],"hsluv":[350.491948161024197,92.892885362452958,53.0608018273771194]},"#ee2299":{"lch":[53.6259244704506557,117.615935516390621,343.699890485995525],"luv":[53.6259244704506557,112.888334232708232,-33.0110933105844282],"rgb":[0.933333333333333348,0.133333333333333331,0.6],"xyz":[0.415802682685407654,0.216241455673971517,0.32122333637949041],"hpluv":[343.699890485995525,278.311211390643507,53.6259244704506557],"hsluv":[343.699890485995525,93.3505397228777412,53.6259244704506557]},"#ee22aa":{"lch":[54.266455218013121,114.955451111725907,336.284451026203612],"luv":[54.266455218013121,105.247863162980167,-46.2346519390706305],"rgb":[0.933333333333333348,0.133333333333333331,0.66666666666666663],"xyz":[0.43086037565066021,0.222264532860072611,0.400527185996489],"hpluv":[336.284451026203612,268.805062052359688,54.266455218013121],"hsluv":[336.284451026203612,93.8102001508292,54.266455218013121]},"#ee22bb":{"lch":[54.981534566577821,114.440827463928798,328.608334651454868],"luv":[54.981534566577821,97.6897319326175,-59.6105633722921],"rgb":[0.933333333333333348,0.133333333333333331,0.733333333333333282],"xyz":[0.447997967757996884,0.22911956970300737,0.490785171095130757],"hpluv":[328.608334651454868,264.121319791368,54.981534566577821],"hsluv":[328.608334651454868,94.2616688954678636,54.981534566577821]},"#ee22cc":{"lch":[55.7696584616915629,116.118636638570607,321.077185717181408],"luv":[55.7696584616915629,90.3394913251054419,-72.9541916679335856],"rgb":[0.933333333333333348,0.133333333333333331,0.8],"xyz":[0.467290343201718583,0.236836519880496171,0.592391681765400913],"hpluv":[321.077185717181408,264.206361207665168,55.7696584616915629],"hsluv":[321.077185717181408,94.6970823725699518,55.7696584616915629]},"#ee22dd":{"lch":[56.6287730491083749,119.812596042269817,314.038835862099],"luv":[56.6287730491083749,83.2872216309056,-86.1295354880806201],"rgb":[0.933333333333333348,0.133333333333333331,0.866666666666666696],"xyz":[0.488808668752352182,0.245443850100749705,0.70572152966540691],"hpluv":[314.038835862099,268.475495638829329,56.6287730491083749],"hsluv":[314.038835862099,95.1108639535381,56.6287730491083749]},"#ee22ee":{"lch":[57.5563705104872128,125.203701850491953,307.715012949243658],"luv":[57.5563705104872128,76.5914038981754,-99.0440498261932163],"rgb":[0.933333333333333348,0.133333333333333331,0.933333333333333348],"xyz":[0.512620849018526892,0.254968722207219722,0.831132345733930133],"hpluv":[307.715012949243658,276.03432908057755,57.5563705104872128],"hsluv":[307.715012949243658,95.4994708803944263,57.5563705104872128]},"#ee22ff":{"lch":[58.5495832280214046,131.922896299071255,302.192710378625122],"luv":[58.5495832280214046,70.2843784028787582,-111.641196341030223],"rgb":[0.933333333333333348,0.133333333333333331,1],"xyz":[0.538791897428358313,0.265437141571152446,0.968966534025712],"hpluv":[302.192710378625122,285.914180736870946,58.5495832280214046],"hsluv":[302.192710378625122,99.9999999999989,58.5495832280214046]},"#ee3300":{"lch":[52.4512471844783761,153.77210005382733,15.1254552240259841],"luv":[52.4512471844783761,148.444942331914945,40.1242800687903269],"rgb":[0.933333333333333348,0.2,0],"xyz":[0.364428831115539142,0.205480270388441244,0.0204736224723888437],"hpluv":[15.1254552240259841,372.015515114283232,52.4512471844783761],"hsluv":[15.1254552240259841,100.000000000002174,52.4512471844783761]},"#ee3311":{"lch":[52.4961529429458693,152.446596739109111,14.6331501802662043],"luv":[52.4961529429458693,147.501711829562538,38.5124637576621893],"rgb":[0.933333333333333348,0.2,0.0666666666666666657],"xyz":[0.365440496615176247,0.205884936588296097,0.0258017274371444769],"hpluv":[14.6331501802662043,368.493287978140756,52.4961529429458693],"hsluv":[14.6331501802662043,96.9493433827183395,52.4961529429458693]},"#ee3322":{"lch":[52.5792408568970302,150.061966488521733,13.7129404445972121],"luv":[52.5792408568970302,145.784540850223095,35.5733247742160685],"rgb":[0.933333333333333348,0.2,0.133333333333333331],"xyz":[0.367315854753653304,0.206635079843686925,0.0356786136331236695],"hpluv":[13.7129404445972121,362.155969729293304,52.5792408568970302],"hsluv":[13.7129404445972121,91.3983957113456,52.5792408568970302]},"#ee3333":{"lch":[52.7156069212027916,146.335083442311,12.177050630061796],"luv":[52.7156069212027916,143.042611430097821,30.8669396171076365],"rgb":[0.933333333333333348,0.2,0.2],"xyz":[0.370403605486111,0.207870180136670024,0.0519407674907348127],"hpluv":[12.177050630061796,352.248031751653059,52.7156069212027916],"hsluv":[12.177050630061796,82.5426319963487316,52.7156069212027916]},"#ee3344":{"lch":[52.9115382124740705,141.372894204534333,9.91688783885485314],"luv":[52.9115382124740705,139.260586308771792,24.3471623953096028],"rgb":[0.933333333333333348,0.2,0.266666666666666663],"xyz":[0.374861600730329925,0.209653378234357618,0.0754195424436214512],"hpluv":[9.91688783885485314,339.043238938553714,52.9115382124740705],"hsluv":[9.91688783885485314,83.0163224279527867,52.9115382124740705]},"#ee3355":{"lch":[53.1718605143623222,135.462446214194244,6.82400118051175664],"luv":[53.1718605143623222,134.502806079917804,16.0956357737583851],"rgb":[0.933333333333333348,0.2,0.333333333333333315],"xyz":[0.38082401476969191,0.212038343850102451,0.106821589717595367],"hpluv":[6.82400118051175664,323.278173463789,53.1718605143623222],"hsluv":[6.82400118051175664,83.6110915378108,53.1718605143623222]},"#ee3366":{"lch":[53.5002196972096158,129.050901787066266,2.79642975700151464],"luv":[53.5002196972096158,128.89722530875369,6.29607494868134765],"rgb":[0.933333333333333348,0.2,0.4],"xyz":[0.388409010543200095,0.215072342159505742,0.146769234124739328],"hpluv":[2.79642975700151464,306.086943567777439,53.5002196972096158],"hsluv":[2.79642975700151464,84.310080928774866,53.5002196972096158]},"#ee3377":{"lch":[53.8992319384372252,122.709031404530748,357.759441587930837],"luv":[53.8992319384372252,122.615219389586755,-4.79732866099687261],"rgb":[0.933333333333333348,0.2,0.466666666666666674],"xyz":[0.397723023563402,0.218797947367586565,0.195823036031137238],"hpluv":[357.759441587930837,288.89051161323988,53.8992319384372252],"hsluv":[357.759441587930837,85.0909052409050872,53.8992319384372252]},"#ee3388":{"lch":[54.3705825415329,117.074862235921088,351.703100554939169],"luv":[54.3705825415329,115.849509832295894,-16.8942131860788436],"rgb":[0.933333333333333348,0.2,0.533333333333333326],"xyz":[0.408863440665345801,0.223254114208364163,0.254495899434709405],"hpluv":[351.703100554939169,273.2366774905733,54.3705825415329],"hsluv":[351.703100554939169,85.9285066952877,54.3705825415329]},"#ee3399":{"lch":[54.9151057717267292,112.774715889061866,344.730687431692274],"luv":[54.9151057717267292,108.793611621096844,-29.6999430015709507],"rgb":[0.933333333333333348,0.2,0.6],"xyz":[0.4219204047744185,0.22847689985199332,0.323262577075827284],"hpluv":[344.730687431692274,260.590898768244074,54.9151057717267292],"hsluv":[344.730687431692274,86.7978129198036896,54.9151057717267292]},"#ee33aa":{"lch":[55.5328602544255,110.325325240584178,337.093995035693695],"luv":[55.5328602544255,101.625579555338021,-42.9408776049389047],"rgb":[0.933333333333333348,0.2,0.66666666666666663],"xyz":[0.436978097739671056,0.234499977038094415,0.402566426692825885],"hpluv":[337.093995035693695,252.095155701888757,55.5328602544255],"hsluv":[337.093995035693695,87.6758366884225779,55.5328602544255]},"#ee33bb":{"lch":[56.2232062298057826,110.03895679054483,329.178007243031175],"luv":[56.2232062298057826,94.4974163460242664,-56.3809392922602726],"rgb":[0.933333333333333348,0.2,0.733333333333333282],"xyz":[0.454115689847007731,0.241355013881029173,0.492824411791467631],"hpluv":[329.178007243031175,248.353441541401367,56.2232062298057826],"hsluv":[329.178007243031175,88.5430404155392665,56.2232062298057826]},"#ee33cc":{"lch":[56.9848866198670123,111.971807156825847,321.417898872172259],"luv":[56.9848866198670123,87.5300782585605788,-69.8295854062993726],"rgb":[0.933333333333333348,0.2,0.8],"xyz":[0.47340806529072943,0.249071964058517975,0.594430922461737787],"hpluv":[321.417898872172259,249.337916143678171,56.9848866198670123],"hsluv":[321.417898872172259,89.3839737673679764,56.9848866198670123]},"#ee33dd":{"lch":[57.8161114567543848,115.945977330727956,314.185904182223908],"luv":[57.8161114567543848,80.813036999634221,-83.1427850752753557],"rgb":[0.933333333333333348,0.2,0.866666666666666696],"xyz":[0.494926390841363029,0.257679294278771509,0.707760770361743785],"hpluv":[314.185904182223908,254.475591939392586,57.8161114567543848],"hsluv":[314.185904182223908,90.1873197259471482,57.8161114567543848]},"#ee33ee":{"lch":[58.7146439354817886,121.632779311923699,307.715012949243715],"luv":[58.7146439354817886,74.4069479563921448,-96.2192241652253415],"rgb":[0.933333333333333348,0.2,0.933333333333333348],"xyz":[0.518738571107537738,0.267204166385241526,0.833171586430267],"hpluv":[307.715012949243715,262.87151341613469,58.7146439354817886],"hsluv":[307.715012949243715,90.9455375510239747,58.7146439354817886]},"#ee33ff":{"lch":[59.6778857977730581,128.651158016084139,302.091050100274117],"luv":[59.6778857977730581,68.3480180420837229,-108.993893813362092],"rgb":[0.933333333333333348,0.2,1],"xyz":[0.544909619517369159,0.27767258574917425,0.971005774722048853],"hpluv":[302.091050100274117,273.551812848380507,59.6778857977730581],"hsluv":[302.091050100274117,99.9999999999986784,59.6778857977730581]},"#ee4400":{"lch":[54.3591594970822598,145.188828472067655,17.4116852889838647],"luv":[54.3591594970822598,138.536177662057611,43.4456372018905412],"rgb":[0.933333333333333348,0.266666666666666663,0],"xyz":[0.373261401598505183,0.223145411354373546,0.023417812633377437],"hpluv":[17.4116852889838647,338.922026437804789,54.3591594970822598],"hsluv":[17.4116852889838647,100.000000000002217,54.3591594970822598]},"#ee4411":{"lch":[54.4016650840252112,143.940172045268554,16.9187727396215735],"luv":[54.4016650840252112,137.710194578710485,41.8888462184768713],"rgb":[0.933333333333333348,0.266666666666666663,0.0666666666666666657],"xyz":[0.374273067098142287,0.223550077554228399,0.0287459175981330667],"hpluv":[16.9187727396215735,335.744689025208913,54.4016650840252112],"hsluv":[16.9187727396215735,97.1754310281257574,54.4016650840252112]},"#ee4422":{"lch":[54.4803236312215944,141.690847159829417,15.9963876830432117],"luv":[54.4803236312215944,136.204446081142294,39.0467032744039173],"rgb":[0.933333333333333348,0.266666666666666663,0.133333333333333331],"xyz":[0.376148425236619344,0.224300220809619227,0.0386228037941122662],"hpluv":[15.9963876830432117,330.020900264600868,54.4803236312215944],"hsluv":[15.9963876830432117,92.0288025918740118,54.4803236312215944]},"#ee4433":{"lch":[54.6094526105793534,138.167821982121467,14.4538486850626899],"luv":[54.6094526105793534,133.794673004457735,34.4867004352900608],"rgb":[0.933333333333333348,0.266666666666666663,0.2],"xyz":[0.37923617596907705,0.225535321102602326,0.0548849576517234095],"hpluv":[14.4538486850626899,321.054243711338643,54.6094526105793534],"hsluv":[14.4538486850626899,83.7991355104008591,54.6094526105793534]},"#ee4444":{"lch":[54.7950558424119549,133.462657054844783,12.1770506300618084],"luv":[54.7950558424119549,130.459808710538397,28.151716454753565],"rgb":[0.933333333333333348,0.266666666666666663,0.266666666666666663],"xyz":[0.383694171213295965,0.22731851920028992,0.078363732604610048],"hpluv":[12.1770506300618084,309.070617226475065,54.7950558424119549],"hsluv":[12.1770506300618084,79.6495466444067546,54.7950558424119549]},"#ee4455":{"lch":[55.04178262974213,127.837203216659944,9.0482956458548145],"luv":[55.04178262974213,126.246413461005446,20.1045670057943724],"rgb":[0.933333333333333348,0.266666666666666663,0.333333333333333315],"xyz":[0.38965658525265795,0.229703484816034753,0.109765779878583963],"hpluv":[9.0482956458548145,294.716259365516066,55.04178262974213],"hsluv":[9.0482956458548145,80.0457187830871106,55.04178262974213]},"#ee4466":{"lch":[55.3531965298607105,121.710491561886229,4.95183922571805102],"luv":[55.3531965298607105,121.256220070521849,10.5058483924504795],"rgb":[0.933333333333333348,0.266666666666666663,0.4],"xyz":[0.397241581026166135,0.232737483125438044,0.149713424285727925],"hpluv":[4.95183922571805102,279.013127650855779,55.3531965298607105],"hsluv":[4.95183922571805102,80.511500113091131,55.3531965298607105]},"#ee4477":{"lch":[55.7319177265462855,115.631099927359429,359.795147057523252],"luv":[55.7319177265462855,115.63036086114974,-0.41342173536332294],"rgb":[0.933333333333333348,0.266666666666666663,0.466666666666666674],"xyz":[0.406555594046368041,0.236463088333518867,0.198767226192125834],"hpluv":[359.795147057523252,263.275227085929203,55.7319177265462855],"hsluv":[359.795147057523252,81.0316034214938412,55.7319177265462855]},"#ee4488":{"lch":[56.1797144871475069,110.229334232011354,353.550243523911263],"luv":[56.1797144871475069,109.531664472369371,-12.3822697089333467],"rgb":[0.933333333333333348,0.266666666666666663,0.533333333333333326],"xyz":[0.417696011148311841,0.240919255174296465,0.257440089595698],"hpluv":[353.550243523911263,248.975712077739217,56.1797144871475069],"hsluv":[353.550243523911263,81.5885451367485217,56.1797144871475069]},"#ee4499":{"lch":[56.6975745677487,106.142668326601637,346.310852745323245],"luv":[56.6975745677487,103.127575819694869,-25.1190992084518889],"rgb":[0.933333333333333348,0.266666666666666663,0.6],"xyz":[0.430752975257384541,0.246142040817925623,0.326206767236815909],"hpluv":[346.310852745323245,237.55536706581762,56.6975745677487],"hsluv":[346.310852745323245,82.1643886194057,56.6975745677487]},"#ee44aa":{"lch":[57.2857706939250164,103.913945498461985,338.339047623856459],"luv":[57.2857706939250164,96.5759938315173798,-38.356035828954532],"rgb":[0.933333333333333348,0.266666666666666663,0.66666666666666663],"xyz":[0.445810668222637096,0.252165118004026745,0.405510616853814509],"hpluv":[338.339047623856459,230.179372132151769,57.2857706939250164],"hsluv":[338.339047623856459,82.742186475039972,57.2857706939250164]},"#ee44bb":{"lch":[57.9439265752057224,103.883653730246948,330.054621671216069],"luv":[57.9439265752057224,90.015359877018625,-51.8560362788815183],"rgb":[0.933333333333333348,0.266666666666666663,0.733333333333333282],"xyz":[0.462948260329973771,0.259020154846961503,0.495768601952456256],"hpluv":[330.054621671216069,227.498543532010189,57.9439265752057224],"hsluv":[330.054621671216069,83.3069826860278,57.9439265752057224]},"#ee44cc":{"lch":[58.6710858878032866,106.123661593235155,321.940977409416575],"luv":[58.6710858878032866,83.5592367986741493,-65.4223623509468837],"rgb":[0.933333333333333348,0.266666666666666663,0.8],"xyz":[0.48224063577369547,0.266737105024450305,0.597375112622726356],"hpluv":[321.940977409416575,229.523641905846944,58.6710858878032866],"hsluv":[321.940977409416575,83.8463488142865288,58.6710858878032866]},"#ee44dd":{"lch":[59.4657843936948041,110.45324904546132,314.41066654104867],"luv":[59.4657843936948041,77.2947793232282407,-78.9014405069524116],"rgb":[0.933333333333333348,0.266666666666666663,0.866666666666666696],"xyz":[0.503758961324329069,0.275344435244703811,0.710704960522732354],"hpluv":[314.41066654104867,235.695163072106425,59.4657843936948041],"hsluv":[314.41066654104867,84.3505154479208699,59.4657843936948041]},"#ee44ee":{"lch":[60.3261240941145189,116.527805305600168,307.715012949243771],"luv":[60.3261240941145189,71.28406005268711,-92.180866733529669],"rgb":[0.933333333333333348,0.266666666666666663,0.933333333333333348],"xyz":[0.527571141590503778,0.284869307351173828,0.836115776591255577],"hpluv":[307.715012949243771,245.111377339321677,60.3261240941145189],"hsluv":[307.715012949243771,84.8122051950840898,60.3261240941145189]},"#ee44ff":{"lch":[61.2498476847862321,123.946828366557639,301.937515996566106],"luv":[61.2498476847862321,65.5671420475233617,-105.184438705774298],"rgb":[0.933333333333333348,0.266666666666666663,1],"xyz":[0.553742190000335199,0.295337726715106552,0.973949964883037422],"hpluv":[301.937515996566106,256.785047727470896,61.2498476847862321],"hsluv":[301.937515996566106,99.9999999999986073,61.2498476847862321]},"#ee5500":{"lch":[56.7595334156469136,135.29504726150742,20.5772435658132551],"luv":[56.7595334156469136,126.663115619922038,47.5521288161507414],"rgb":[0.933333333333333348,0.333333333333333315,0],"xyz":[0.385074658312851148,0.24677192478306581,0.0273555648714926478],"hpluv":[20.5772435658132551,302.470071141489655,56.7595334156469136],"hsluv":[20.5772435658132551,100.000000000002331,56.7595334156469136]},"#ee5511":{"lch":[56.7992830001534799,134.121232245619609,20.0864579205919],"luv":[56.7992830001534799,125.963368804879124,46.0622910677426],"rgb":[0.933333333333333348,0.333333333333333315,0.0666666666666666657],"xyz":[0.386086323812488252,0.247176590982920663,0.0326836698362482775],"hpluv":[20.0864579205919,299.636011805134103,56.7992830001534799],"hsluv":[20.0864579205919,97.4301566790671245,56.7992830001534799]},"#ee5522":{"lch":[56.8728535321199331,132.003018379302972,19.1666168944474329],"luv":[56.8728535321199331,124.685803630375247,43.3387498007741385],"rgb":[0.933333333333333348,0.333333333333333315,0.133333333333333331],"xyz":[0.387961681950965309,0.247926734238311491,0.042560556032227477],"hpluv":[19.1666168944474329,294.522290528054612,56.8728535321199331],"hsluv":[19.1666168944474329,92.7404035063857748,56.8728535321199331]},"#ee5533":{"lch":[56.9936637318031813,128.675597773649343,17.6241311186411558],"luv":[56.9936637318031813,122.635981466153211,38.9592801812266671],"rgb":[0.933333333333333348,0.333333333333333315,0.2],"xyz":[0.391049432683423,0.24916183453129459,0.0588227098898386203],"hpluv":[17.6241311186411558,286.489655583397507,56.9936637318031813],"hsluv":[17.6241311186411558,85.2217597168545353,56.9936637318031813]},"#ee5544":{"lch":[57.1673833238913431,124.212647444540593,15.3377586553938237],"luv":[57.1673833238913431,119.788604494467549,32.8553194848226298],"rgb":[0.933333333333333348,0.333333333333333315,0.266666666666666663],"xyz":[0.39550742792764193,0.250945032628982156,0.0823014848427252588],"hpluv":[15.3377586553938237,275.712737821839653,57.1673833238913431],"hsluv":[15.3377586553938237,78.8138286806830308,57.1673833238913431]},"#ee5555":{"lch":[57.3984455800741813,118.847398490007407,12.1770506300618084],"luv":[57.3984455800741813,116.173386735287238,25.068871978930396],"rgb":[0.933333333333333348,0.333333333333333315,0.333333333333333315],"xyz":[0.401469841967003915,0.253329998244727,0.113703532116699174],"hpluv":[12.1770506300618084,262.741620924066638,57.3984455800741813],"hsluv":[12.1770506300618084,79.1862648733910817,57.3984455800741813]},"#ee5566":{"lch":[57.6903015433249777,112.967028718059339,8.00617638558467881],"luv":[57.6903015433249777,111.865945908872092,15.7340307391382019],"rgb":[0.933333333333333348,0.333333333333333315,0.4],"xyz":[0.409054837740512101,0.256363996554130336,0.153651176523843136],"hpluv":[8.00617638558467881,248.478160638648092,57.6903015433249777],"hsluv":[8.00617638558467881,79.626682914648967,57.6903015433249777]},"#ee5577":{"lch":[58.0455538260385,107.095574323644513,2.70497781295448236],"luv":[58.0455538260385,106.976246145051803,5.05418642558356],"rgb":[0.933333333333333348,0.333333333333333315,0.466666666666666674],"xyz":[0.418368850760714,0.260089601762211131,0.202704978430241045],"hpluv":[2.70497781295448236,234.121819944652458,58.0455538260385],"hsluv":[2.70497781295448236,80.121743738144815,58.0455538260385]},"#ee5588":{"lch":[58.4660405277881523,101.857434077675435,356.214905006905212],"luv":[58.4660405277881523,101.63524992227579,-6.72405012805051783],"rgb":[0.933333333333333348,0.333333333333333315,0.533333333333333326],"xyz":[0.429509267862657806,0.264545768602988729,0.261377841833813185],"hpluv":[356.214905006905212,221.069268787819283,58.4660405277881523],"hsluv":[356.214905006905212,80.6557447307456385,58.4660405277881523]},"#ee5599":{"lch":[58.9528982622070714,97.9100075268454475,348.609359498013816],"luv":[58.9528982622070714,95.9815181358717808,-19.3369529719717974],"rgb":[0.933333333333333348,0.333333333333333315,0.6],"xyz":[0.442566231971730506,0.269768554246617887,0.33014451947493112],"hpluv":[348.609359498013816,210.746926462762332,58.9528982622070714],"hsluv":[348.609359498013816,81.2121283261168685,58.9528982622070714]},"#ee55aa":{"lch":[59.5066178042993812,95.8379147411847327,340.160257686713578],"luv":[59.5066178042993812,90.1495111294489817,-32.5264745255299346],"rgb":[0.933333333333333348,0.333333333333333315,0.66666666666666663],"xyz":[0.457623924936983062,0.275791631432719,0.40944836909192972],"hpluv":[340.160257686713578,204.36730380296666,59.5066178042993812],"hsluv":[340.160257686713578,81.7747968800248515,59.5066178042993812]},"#ee55bb":{"lch":[60.1270988419473156,96.02691270708236,331.338718337462637],"luv":[60.1270988419473156,84.2607812264238305,-46.0574501157669],"rgb":[0.933333333333333348,0.333333333333333315,0.733333333333333282],"xyz":[0.474761517044319736,0.282646668275653767,0.499706354190571467],"hpluv":[331.338718337462637,202.657202566236862,60.1270988419473156],"hsluv":[331.338718337462637,82.3290961128101202,60.1270988419473156]},"#ee55cc":{"lch":[60.8137066481247359,98.5745380895967855,322.704854800823],"luv":[60.8137066481247359,78.4184921400445774,-59.728382282288],"rgb":[0.933333333333333348,0.333333333333333315,0.8],"xyz":[0.494053892488041435,0.290363618453142569,0.601312864860841567],"hpluv":[322.704854800823,205.68499115665557,60.8137066481247359],"hsluv":[322.704854800823,82.862416210457269,60.8137066481247359]},"#ee55dd":{"lch":[61.5653314057239669,103.296154527471415,314.73674606959],"luv":[61.5653314057239669,72.7050419742243577,-73.3762387404091925],"rgb":[0.933333333333333348,0.333333333333333315,0.866666666666666696],"xyz":[0.515572218038675,0.298970948673396075,0.714642712760847565],"hpluv":[314.73674606959,212.905685416828703,61.5653314057239669],"hsluv":[314.73674606959,83.3644351442966496,61.5653314057239669]},"#ee55ee":{"lch":[62.3804497031794796,109.822432229930158,307.715012949243942],"luv":[62.3804497031794796,67.1821530808003473,-86.8764923804219364],"rgb":[0.933333333333333348,0.333333333333333315,0.933333333333333348],"xyz":[0.539384398304849744,0.308495820779866092,0.840053528829370788],"hpluv":[307.715012949243942,223.399338603574023,62.3804497031794796],"hsluv":[307.715012949243942,83.8270760150894318,62.3804497031794796]},"#ee55ff":{"lch":[63.2571870514493355,117.722992850638121,301.718618818209791],"luv":[63.2571870514493355,61.8926401270512301,-100.139922827085911],"rgb":[0.933333333333333348,0.333333333333333315,1],"xyz":[0.565555446714681165,0.318964240143798816,0.977887717121152633],"hpluv":[301.718618818209791,236.15152010236153,63.2571870514493355],"hsluv":[301.718618818209791,99.9999999999986358,63.2571870514493355]},"#ee6600":{"lch":[59.6010827175637274,124.896403377083828,24.7633991985742],"luv":[59.6010827175637274,113.411584725929117,52.315619335764687],"rgb":[0.933333333333333348,0.4,0],"xyz":[0.400102716018697624,0.276828040194759151,0.032364917440108],"hpluv":[24.7633991985742,265.910269095548301,59.6010827175637274],"hsluv":[24.7633991985742,100.000000000002458,59.6010827175637274]},"#ee6611":{"lch":[59.6379025762155521,123.785593795891074,24.2806773941880323],"luv":[59.6379025762155521,112.835768380983566,50.9014990474188],"rgb":[0.933333333333333348,0.4,0.0666666666666666657],"xyz":[0.401114381518334728,0.277232706394614,0.0376930224048636284],"hpluv":[24.2806773941880323,263.38259338209491,59.6379025762155521],"hsluv":[24.2806773941880323,97.6946368166697425,59.6379025762155521]},"#ee6622":{"lch":[59.7060621192549235,121.776511986799889,23.3741045361832462],"luv":[59.7060621192549235,111.782804083827386,48.312768320888857],"rgb":[0.933333333333333348,0.4,0.133333333333333331],"xyz":[0.402989739656811785,0.277982849650004804,0.0475699086008428279],"hpluv":[23.3741045361832462,258.812011755725052,59.7060621192549235],"hsluv":[23.3741045361832462,93.4807634058905847,59.7060621192549235]},"#ee6633":{"lch":[59.818019190990654,118.60827278102343,21.848413141726418],"luv":[59.818019190990654,110.088842330137865,44.1403349161252621],"rgb":[0.933333333333333348,0.4,0.2],"xyz":[0.406077490389269491,0.279217949942987931,0.0638320624584539642],"hpluv":[21.848413141726418,251.606745577849637,59.818019190990654],"hsluv":[21.848413141726418,86.7067277856042722,59.818019190990654]},"#ee6644":{"lch":[59.9790782653121,114.334087778781978,19.5741908506499591],"luv":[59.9790782653121,107.726545105393242,38.3050271878496318],"rgb":[0.933333333333333348,0.4,0.266666666666666663],"xyz":[0.410535485633488406,0.281001148040675497,0.0873108374113406],"hpluv":[19.5741908506499591,241.888527179759762,59.9790782653121],"hsluv":[19.5741908506499591,77.7164494297015551,59.9790782653121]},"#ee6655":{"lch":[60.1934276072459227,109.155383321287928,16.4048569251700904],"luv":[60.1934276072459227,104.711671726378157,30.827966398783424],"rgb":[0.933333333333333348,0.4,0.333333333333333315],"xyz":[0.416497899672850391,0.283386113656420358,0.118712884685314518],"hpluv":[16.4048569251700904,230.109957101660228,60.1934276072459227],"hsluv":[16.4048569251700904,78.0627041699660822,60.1934276072459227]},"#ee6666":{"lch":[60.4643778553048179,103.423697151150392,12.1770506300619203],"luv":[60.4643778553048179,101.096711576265875,21.8155000143976636],"rgb":[0.933333333333333348,0.4,0.4],"xyz":[0.424082895446358576,0.286420111965823676,0.15866052909245848],"hpluv":[12.1770506300619203,217.050003231938149,60.4643778553048179],"hsluv":[12.1770506300619203,78.4746058088251601,60.4643778553048179]},"#ee6677":{"lch":[60.7944870758990845,97.6355083856116,6.72933164538236728],"luv":[60.7944870758990845,96.9628770314166388,11.4408468002682859],"rgb":[0.933333333333333348,0.4,0.466666666666666674],"xyz":[0.433396908466560482,0.290145717173904472,0.207714330998856389],"hpluv":[6.72933164538236728,203.79002370037793,60.7944870758990845],"hsluv":[6.72933164538236728,78.9407958828298177,60.7944870758990845]},"#ee6688":{"lch":[61.1856375663111294,92.4106294683140419,359.951978350089689],"luv":[61.1856375663111294,92.4105970103857,-0.0774526573243247418],"rgb":[0.933333333333333348,0.4,0.533333333333333326],"xyz":[0.444537325568504282,0.294601884014682069,0.266387194402428529],"hpluv":[359.951978350089689,191.6512981090967,61.1856375663111294],"hsluv":[359.951978350089689,79.4474583444281706,61.1856375663111294]},"#ee6699":{"lch":[61.6390913266860281,88.437141466109523,351.875732288608958],"luv":[61.6390913266860281,87.5495765855601746,-12.4979850530316181],"rgb":[0.933333333333333348,0.4,0.6],"xyz":[0.457594289677577,0.299824669658311227,0.335153872043546464],"hpluv":[351.875732288608958,182.061365307506776,61.6390913266860281],"hsluv":[351.875732288608958,79.9795786975914353,61.6390913266860281]},"#ee66aa":{"lch":[62.1555369290736337,86.3639450462453624,342.77320214224],"luv":[62.1555369290736337,82.489654306882187,-25.5770978862333536],"rgb":[0.933333333333333348,0.4,0.66666666666666663],"xyz":[0.472651982642829538,0.305847746844412349,0.414457721660545064],"hpluv":[342.77320214224,176.316102232879075,62.1555369290736337],"hsluv":[342.77320214224,80.5221008496243,62.1555369290736337]},"#ee66bb":{"lch":[62.735134131647655,86.6495273870251168,333.187217955259598],"luv":[62.735134131647655,77.3334216921159765,-39.0855790002422907],"rgb":[0.933333333333333348,0.4,0.733333333333333282],"xyz":[0.489789574750166212,0.312702783687347108,0.504715706759186755],"hpluv":[333.187217955259598,175.264796900814019,62.735134131647655],"hsluv":[333.187217955259598,81.0608551813628679,62.735134131647655]},"#ee66cc":{"lch":[63.3775592853136516,89.4351699392481549,323.800511847500275],"luv":[63.3775592853136516,72.1711045195964545,-52.8202735176909144],"rgb":[0.933333333333333348,0.4,0.8],"xyz":[0.509081950193887911,0.320419733864835909,0.606322217429456911],"hpluv":[323.800511847500275,179.065596131410075,63.3775592853136516],"hsluv":[323.800511847500275,81.5831918811758072,63.3775592853136516]},"#ee66dd":{"lch":[64.0820526997291751,94.5324861988586918,315.200217206616742],"luv":[64.0820526997291751,67.0777383779463179,-66.6105694393704795],"rgb":[0.933333333333333348,0.4,0.866666666666666696],"xyz":[0.53060027574452151,0.329027064085089416,0.719652065329462909],"hpluv":[315.200217206616742,187.190580763285084,64.0820526997291751],"hsluv":[315.200217206616742,82.0783141076240241,64.0820526997291751]},"#ee66ee":{"lch":[64.8474680131467,101.534802649490857,307.715012949244169],"luv":[64.8474680131467,62.1123254704966499,-80.32045302236628],"rgb":[0.933333333333333348,0.4,0.933333333333333348],"xyz":[0.55441245601069622,0.338551936191559433,0.845062881397986132],"hpluv":[307.715012949244169,198.683239249207219,64.8474680131467],"hsluv":[307.715012949244169,82.5373501246235,64.8474680131467]},"#ee66ff":{"lch":[65.6723229483953759,109.966867844968618,301.415067453827589],"luv":[65.6723229483953759,57.3184789471434897,-93.8472375449520797],"rgb":[0.933333333333333348,0.4,1],"xyz":[0.580583504420527641,0.349020355555492157,0.982897069689768088],"hpluv":[301.415067453827589,212.480364902930489,65.6723229483953759],"hsluv":[301.415067453827589,99.9999999999984794,65.6723229483953759]},"#ee7700":{"lch":[62.8217158048736763,114.851740825540901,30.0981414692213356],"luv":[62.8217158048736763,99.3660150566978,57.5961580525066097],"rgb":[0.933333333333333348,0.466666666666666674,0],"xyz":[0.418556454072115225,0.313735516301594908,0.0385161634579137],"hpluv":[30.0981414692213356,231.988851559171735,62.8217158048736763],"hsluv":[30.0981414692213356,100.000000000002203,62.8217158048736763]},"#ee7711":{"lch":[62.8555901763931075,113.786950077776382,29.6341042910547],"luv":[62.8555901763931075,98.9037041004629458,56.2630191441096059],"rgb":[0.933333333333333348,0.466666666666666674,0.0666666666666666657],"xyz":[0.419568119571752329,0.314140182501449761,0.0438442684226693288],"hpluv":[29.6341042910547,229.71421718860654,62.8555901763931075],"hsluv":[29.6341042910547,97.9532933827149463,62.8555901763931075]},"#ee7722":{"lch":[62.9183073649527955,111.855609649988921,28.7604537228304977],"luv":[62.9183073649527955,98.0569879769147406,53.8191835600085398],"rgb":[0.933333333333333348,0.466666666666666674,0.133333333333333331],"xyz":[0.421443477710229386,0.314890325756840561,0.0537211546186485284],"hpluv":[28.7604537228304977,225.59011469442973,62.9183073649527955],"hsluv":[28.7604537228304977,94.206312745702121,62.9183073649527955]},"#ee7733":{"lch":[63.0213536795682501,108.794922632811733,27.2836719807386174],"luv":[63.0213536795682501,96.6912591797812411,49.8711899688373208],"rgb":[0.933333333333333348,0.466666666666666674,0.2],"xyz":[0.424531228442687092,0.316125426049823688,0.0699833084762596647],"hpluv":[27.2836719807386174,219.058559128587405,63.0213536795682501],"hsluv":[27.2836719807386174,88.1668112455654,63.0213536795682501]},"#ee7744":{"lch":[63.1696562136619235,104.634411539935968,25.0668522383795889],"luv":[63.1696562136619235,94.7793214210065571,44.3310309972846497],"rgb":[0.933333333333333348,0.466666666666666674,0.266666666666666663],"xyz":[0.428989223686906,0.317908624147511254,0.0934620834291463],"hpluv":[25.0668522383795889,210.186756956079222,63.1696562136619235],"hsluv":[25.0668522383795889,79.7210233436604199,63.1696562136619235]},"#ee7755":{"lch":[63.3671413614491286,99.5393983003294096,21.9455950678528],"luv":[63.3671413614491286,92.3266881357997278,37.2004633286522051],"rgb":[0.933333333333333348,0.466666666666666674,0.333333333333333315],"xyz":[0.434951637726268,0.320293589763256115,0.124864130703120219],"hpluv":[21.9455950678528,199.328877993420377,63.3671413614491286],"hsluv":[21.9455950678528,76.6090179557391,63.3671413614491286]},"#ee7766":{"lch":[63.6169573916324822,93.8195852400781263,17.7221756586824775],"luv":[63.6169573916324822,89.367258373090749,28.5588463614608763],"rgb":[0.933333333333333348,0.466666666666666674,0.4],"xyz":[0.442536633499776177,0.323327588072659433,0.16481177511026418],"hpluv":[17.7221756586824775,187.13711975631665,63.6169573916324822],"hsluv":[17.7221756586824775,76.9903860669667,63.6169573916324822]},"#ee7777":{"lch":[63.9215909451051232,87.936547917610838,12.1770506300618937],"luv":[63.9215909451051232,85.9580160709841863,18.5487447771187846],"rgb":[0.933333333333333348,0.466666666666666674,0.466666666666666674],"xyz":[0.451850646519978083,0.327053193280740229,0.21386557701666209],"hpluv":[12.1770506300618937,174.56660414904394,63.9215909451051232],"hsluv":[12.1770506300618937,77.4248320836617268,63.9215909451051232]},"#ee7788":{"lch":[64.2829374304473,82.5014209284754543,5.11726519711922112],"luv":[64.2829374304473,82.1725895095950847,7.35866757674724514],"rgb":[0.933333333333333348,0.466666666666666674,0.533333333333333326],"xyz":[0.462991063621921883,0.331509360121517827,0.272538440420234229],"hpluv":[5.11726519711922112,162.85647909200884,64.2829374304473],"hsluv":[5.11726519711922112,77.9003779592442669,64.2829374304473]},"#ee7799":{"lch":[64.7023501026032477,78.2413537817778177,356.48599323172067],"luv":[64.7023501026032477,78.0942478632934893,-4.79561177242263259],"rgb":[0.933333333333333348,0.466666666666666674,0.6],"xyz":[0.476048027730994638,0.336732145765147,0.341305118061352164],"hpluv":[356.48599323172067,153.446019679421255,64.7023501026032477],"hsluv":[356.48599323172067,78.4035888028378167,64.7023501026032477]},"#ee77aa":{"lch":[65.1806796634753596,75.8992199041959,346.522692233148291],"luv":[65.1806796634753596,73.8091300431969302,-17.6890899803221124],"rgb":[0.933333333333333348,0.466666666666666674,0.66666666666666663],"xyz":[0.491105720696247139,0.342755222951248106,0.420608967678350765],"hpluv":[346.522692233148291,147.76029654451807,65.1806796634753596],"hsluv":[346.522692233148291,78.9205551316135256,65.1806796634753596]},"#ee77bb":{"lch":[65.7183104585581646,76.0514193956389875,335.85959217762661],"luv":[65.7183104585581646,69.4004166910179094,-31.1030634376174824],"rgb":[0.933333333333333348,0.466666666666666674,0.733333333333333282],"xyz":[0.508243312803583813,0.349610259794182865,0.510866952776992456],"hpluv":[335.85959217762661,146.845370988132231,65.7183104585581646],"hsluv":[335.85959217762661,79.4377328719524627,65.7183104585581646]},"#ee77cc":{"lch":[66.3151963922866,78.9180750862202416,325.378996221060731],"luv":[66.3151963922866,64.9439055461397459,-44.8369457894756067],"rgb":[0.933333333333333348,0.466666666666666674,0.8],"xyz":[0.527535688247305568,0.357327209971671667,0.612473463447262612],"hpluv":[325.378996221060731,151.008971652655617,66.3151963922866],"hsluv":[325.378996221060731,79.9425706591808307,66.3151963922866]},"#ee77dd":{"lch":[66.9708980107196652,84.3115421117289543,315.859798591258766],"luv":[66.9708980107196652,60.5051526262217152,-58.7159487612646842],"rgb":[0.933333333333333348,0.466666666666666674,0.866666666666666696],"xyz":[0.549054013797939056,0.365934540191925173,0.725803311347268609],"hpluv":[315.859798591258766,159.749768323538632,66.9708980107196652],"hsluv":[315.859798591258766,80.4238985377879345,66.9708980107196652]},"#ee77ee":{"lch":[67.6846211881785251,91.7687338274624409,307.715012949244453],"luv":[67.6846211881785251,56.1380858067324056,-72.5948746830766112],"rgb":[0.933333333333333348,0.466666666666666674,0.933333333333333348],"xyz":[0.572866194064113765,0.37545941229839519,0.851214127415791832],"hpluv":[307.715012949244453,172.045795420537047,67.6846211881785251],"hsluv":[307.715012949244453,80.8720902094370757,67.6846211881785251]},"#ee77ff":{"lch":[68.4552572311626761,100.746525491660947,300.997699928034137],"luv":[68.4552572311626761,51.8848298156272918,-86.3587102361150585],"rgb":[0.933333333333333348,0.466666666666666674,1],"xyz":[0.599037242473945186,0.385927831662327914,0.989048315707573789],"hpluv":[300.997699928034137,186.750854251257437,68.4552572311626761],"hsluv":[300.997699928034137,99.9999999999982,68.4552572311626761]},"#ee8800":{"lch":[66.3576417146455,105.981377873447272,36.6492300119340797],"luv":[66.3576417146455,85.0293774107247771,63.2618165491550428],"rgb":[0.933333333333333348,0.533333333333333326,0],"xyz":[0.440628823797085678,0.35788025575153648,0.045873620032903642],"hpluv":[36.6492300119340797,202.664622836431278,66.3576417146455],"hsluv":[36.6492300119340797,100.000000000002288,66.3576417146455]},"#ee8811":{"lch":[66.3886714607036907,104.946342152180421,36.2201184819273792],"luv":[66.3886714607036907,84.6657638625926552,62.0116373004794923],"rgb":[0.933333333333333348,0.533333333333333326,0.0666666666666666657],"xyz":[0.441640489296722782,0.358284921951391333,0.0512017249976592717],"hpluv":[36.2201184819273792,200.591559481147556,66.3886714607036907],"hsluv":[36.2201184819273792,98.1954604930108701,66.3886714607036907]},"#ee8822":{"lch":[66.4461305943750773,103.062674429887437,35.4099902294173745],"luv":[66.4461305943750773,83.9988395226221201,59.7169140151578],"rgb":[0.933333333333333348,0.533333333333333326,0.133333333333333331],"xyz":[0.443515847435199839,0.359035065206782134,0.0610786111936384712],"hpluv":[35.4099902294173745,196.820821024497235,66.4461305943750773],"hsluv":[35.4099902294173745,94.8869488142181581,66.4461305943750773]},"#ee8833":{"lch":[66.5405621290638578,100.059958052790449,34.0337853874148877],"luv":[66.5405621290638578,82.920456825626232,56.0017235927220369],"rgb":[0.933333333333333348,0.533333333333333326,0.2],"xyz":[0.446603598167657545,0.36027016549976526,0.0773407650512496214],"hpluv":[34.0337853874148877,190.815292572549708,66.5405621290638578],"hsluv":[34.0337853874148877,89.5408718212573689,66.5405621290638578]},"#ee8844":{"lch":[66.6765193585480347,95.9403990837829639,31.9512880443390657],"luv":[66.6765193585480347,81.4052672986078107,50.7714745934935223],"rgb":[0.933333333333333348,0.533333333333333326,0.266666666666666663],"xyz":[0.45106159341187646,0.362053363597452826,0.10081954000413626],"hpluv":[31.9512880443390657,182.586190035925256,66.6765193585480347],"hsluv":[31.9512880443390657,82.0371002457568608,66.6765193585480347]},"#ee8855":{"lch":[66.8576614114874559,90.8274017958005,28.983496619036984],"luv":[66.8576614114874559,79.4521157428502391,44.0111147434430805],"rgb":[0.933333333333333348,0.533333333333333326,0.333333333333333315],"xyz":[0.457024007451238445,0.364438329213197687,0.132221587278110175],"hpluv":[28.983496619036984,172.387208051834335,66.8576614114874559],"hsluv":[28.983496619036984,74.7174368883009663,66.8576614114874559]},"#ee8866":{"lch":[67.0869600103699213,84.978663004295683,24.8971939400565283],"luv":[67.0869600103699213,77.081139807049837,35.7752854921339249],"rgb":[0.933333333333333348,0.533333333333333326,0.4],"xyz":[0.464609003224746631,0.367472327522601,0.172169231685254109],"hpluv":[24.8971939400565283,160.735241770302764,67.0869600103699213],"hsluv":[24.8971939400565283,75.0669061044520447,67.0869600103699213]},"#ee8877":{"lch":[67.3668077908477727,78.8051510957513841,19.4009345351312952],"luv":[67.3668077908477727,74.3303771171996743,26.1772205713113095],"rgb":[0.933333333333333348,0.533333333333333326,0.466666666666666674],"xyz":[0.473923016244948536,0.371197932730681801,0.221223033591652019],"hpluv":[19.4009345351312952,148.438980876884,67.3668077908477727],"hsluv":[19.4009345351312952,75.4672397967126329,67.3668077908477727]},"#ee8888":{"lch":[67.6990830402889117,72.8916076032019191,12.177050630062066],"luv":[67.6990830402889117,71.2515799877231757,15.3752661190709663],"rgb":[0.933333333333333348,0.533333333333333326,0.533333333333333326],"xyz":[0.485063433346892336,0.375654099571459399,0.279895896995224214],"hpluv":[12.177050630062066,136.626224949154164,67.6990830402889117],"hsluv":[12.177050630062066,75.9081099773692927,67.6990830402889117]},"#ee8899":{"lch":[68.0851935471165319,67.9986383575237312,2.99916583787236446],"luv":[68.0851935471165319,67.9055003914663615,3.55778513430191889],"rgb":[0.933333333333333348,0.533333333333333326,0.6],"xyz":[0.498120397455965036,0.380876885215088556,0.348662574636342093],"hpluv":[2.99916583787236446,126.732168582193651,68.0851935471165319],"hsluv":[2.99916583787236446,76.3775584855855385,68.0851935471165319]},"#ee88aa":{"lch":[68.5261104708773274,64.9933943358063573,351.976176804910949],"luv":[68.5261104708773274,64.3571165389368,-9.07209226602857832],"rgb":[0.933333333333333348,0.533333333333333326,0.66666666666666663],"xyz":[0.513178090421217648,0.386899962401189679,0.427966424253340694],"hpluv":[351.976176804910949,120.351764916629207,68.5261104708773274],"hsluv":[351.976176804910949,76.8628030471707859,68.5261104708773274]},"#ee88bb":{"lch":[69.0223979406526098,64.6433047463018,339.810246341231903],"luv":[69.0223979406526098,60.6712812589502875,-22.3103670727442456],"rgb":[0.933333333333333348,0.533333333333333326,0.733333333333333282],"xyz":[0.530315682528554211,0.393754999244124437,0.51822440935198244],"hpluv":[339.810246341231903,118.842788638920595,69.0223979406526098],"hsluv":[339.810246341231903,77.3509666785266887,69.0223979406526098]},"#ee88cc":{"lch":[69.5742414545850778,67.3203562589766307,327.709288072293873],"luv":[69.5742414545850778,56.9091584539883399,-35.9635656031820687],"rgb":[0.933333333333333348,0.533333333333333326,0.8],"xyz":[0.549608057972276,0.401471949421613239,0.619830920022252596],"hpluv":[327.709288072293873,122.782720563937247,69.5742414545850778],"hsluv":[327.709288072293873,77.8296635442389686,69.5742414545850778]},"#ee88dd":{"lch":[70.1814766713242,72.856404222049747,316.817937357318669],"luv":[70.1814766713242,53.1256441200966663,-49.8570112721525547],"rgb":[0.933333333333333348,0.533333333333333326,0.866666666666666696],"xyz":[0.571126383522909564,0.410079279641866745,0.733160767922258594],"hpluv":[316.817937357318669,131.729959343498166,70.1814766713242],"hsluv":[316.817937357318669,78.2874043120714163,70.1814766713242]},"#ee88ee":{"lch":[70.8436192863675558,80.7013698438951224,307.715012949244851],"luv":[70.8436192863675558,49.367799206375345,-63.839889537812887],"rgb":[0.933333333333333348,0.533333333333333326,0.933333333333333348],"xyz":[0.594938563789084274,0.419604151748336762,0.858571583990781817],"hpluv":[307.715012949244851,144.550464850223619,70.8436192863675558],"hsluv":[307.715012949244851,78.7138135635212848,70.8436192863675558]},"#ee88ff":{"lch":[71.5598961203093182,90.2054153167292583,300.42003582834775],"luv":[71.5598961203093182,45.674190228859068,-77.7874366424399426],"rgb":[0.933333333333333348,0.533333333333333326,1],"xyz":[0.621109612198915695,0.430072571112269486,0.996405772282563662],"hpluv":[300.42003582834775,159.956626210428567,71.5598961203093182],"hsluv":[300.42003582834775,99.99999999999784,71.5598961203093182]},"#ee9900":{"lch":[70.1492527845175715,98.9919938823364731,44.3502140795235036],"luv":[70.1492527845175715,70.7872313214223112,69.1995862317686772],"rgb":[0.933333333333333348,0.6,0],"xyz":[0.466498424249553179,0.409619456656472147,0.0544968201837259],"hpluv":[44.3502140795235036,179.06732625175573,70.1492527845175715],"hsluv":[44.3502140795235036,100.000000000002217,70.1492527845175715]},"#ee9911":{"lch":[70.1776126165771785,97.9766822185852533,43.9766782844564119],"luv":[70.1776126165771785,70.5062245085518526,68.0316291449155273],"rgb":[0.933333333333333348,0.6,0.0666666666666666657],"xyz":[0.467510089749190283,0.410024122856327,0.0598249251484815267],"hpluv":[43.9766782844564119,177.15910010767405,70.1776126165771785],"hsluv":[43.9766782844564119,98.4152296143538337,70.1776126165771785]},"#ee9922":{"lch":[70.2301348691785,96.1222676294158447,43.2696050504519505],"luv":[70.2301348691785,69.9901292501651824,65.8852953379296622],"rgb":[0.933333333333333348,0.6,0.133333333333333331],"xyz":[0.46938544788766734,0.410774266111717801,0.0697018113444607262],"hpluv":[43.2696050504519505,173.676009463775955,70.2301348691785],"hsluv":[43.2696050504519505,95.5057584668238,70.2301348691785]},"#ee9933":{"lch":[70.3164728806357573,93.1473438817036339,42.0626701373461103],"luv":[70.3164728806357573,69.1537511222041417,62.4034163964169508],"rgb":[0.933333333333333348,0.6,0.2],"xyz":[0.472473198620125046,0.412009366404700927,0.0859639652020718625],"hpluv":[42.0626701373461103,168.094198140054317,70.3164728806357573],"hsluv":[42.0626701373461103,90.7937976503380213,70.3164728806357573]},"#ee9944":{"lch":[70.4408210614760719,89.024296887742608,40.221678197216157],"luv":[70.4408210614760719,67.9746586813449483,57.4871395488729533],"rgb":[0.933333333333333348,0.6,0.266666666666666663],"xyz":[0.476931193864343961,0.413792564502388494,0.109442740154958501],"hpluv":[40.221678197216157,160.370125602871781,70.4408210614760719],"hsluv":[40.221678197216157,84.1577311163605657,70.4408210614760719]},"#ee9955":{"lch":[70.6065752665828654,83.8291063606938138,37.5652459120346904],"luv":[70.6065752665828654,66.4479455240540631,51.1076276974862154],"rgb":[0.933333333333333348,0.6,0.333333333333333315],"xyz":[0.482893607903705946,0.416177530118133354,0.140844787428932416],"hpluv":[37.5652459120346904,150.656896294971034,70.6065752665828654],"hsluv":[37.5652459120346904,75.5772228053980797,70.6065752665828654]},"#ee9966":{"lch":[70.8165243284349373,77.7550236522342,33.8383101580563],"luv":[70.8165243284349373,64.5842808158336652,43.297971946282189],"rgb":[0.933333333333333348,0.6,0.4],"xyz":[0.490478603677214131,0.419211528427536673,0.180792431836076378],"hpluv":[33.8383101580563,139.326323276972687,70.8165243284349373],"hsluv":[33.8383101580563,72.525293376848623,70.8165243284349373]},"#ee9977":{"lch":[71.0729506656700778,71.1378337295946,28.6840524218341386],"luv":[71.0729506656700778,62.4077841236731601,34.1446901949989154],"rgb":[0.933333333333333348,0.6,0.466666666666666674],"xyz":[0.499792616697416037,0.422937133635617468,0.229846233742474287],"hpluv":[28.6840524218341386,127.009327518651787,71.0729506656700778],"hsluv":[28.6840524218341386,72.8885787597460677,71.0729506656700778]},"#ee9988":{"lch":[71.3776900371935312,64.4963091800695878,21.6331741754282376],"luv":[71.3776900371935312,59.9533946760230378,23.7773918811996943],"rgb":[0.933333333333333348,0.6,0.533333333333333326],"xyz":[0.510933033799359837,0.427393300476395066,0.288519097146046455],"hpluv":[21.6331741754282376,114.659937381049531,71.3776900371935312],"hsluv":[21.6331741754282376,73.2902809537896189,71.3776900371935312]},"#ee9999":{"lch":[71.732171153908709,58.5818834203282179,12.1770506300621602],"luv":[71.732171153908709,57.263818011494017,12.3568690136061505],"rgb":[0.933333333333333348,0.6,0.6],"xyz":[0.523989997908432592,0.432616086120024224,0.35728577478716439],"hpluv":[12.1770506300621602,103.630759412975706,71.732171153908709],"hsluv":[12.1770506300621602,73.7196701825771186,71.732171153908709]},"#ee99aa":{"lch":[72.1374451439022408,54.3863410009709725,0.0659165211073427237],"luv":[72.1374451439022408,54.3863050092105,0.0625693137293968082],"rgb":[0.933333333333333348,0.6,0.66666666666666663],"xyz":[0.539047690873685093,0.438639163306125346,0.436589624404162935],"hpluv":[0.0659165211073427237,95.6683780017161,72.1374451439022408],"hsluv":[0.0659165211073427237,74.1649147609968082,72.1374451439022408]},"#ee99bb":{"lch":[72.5942101669252366,52.9692652640659247,345.882936464906891],"luv":[72.5942101669252366,51.3695627363271683,-12.9194073739288822],"rgb":[0.933333333333333348,0.6,0.733333333333333282],"xyz":[0.556185282981021767,0.445494200149060104,0.526847609502804737],"hpluv":[345.882936464906891,92.5894045166522091,72.5942101669252366],"hsluv":[345.882936464906891,74.6136876066909878,72.5942101669252366]},"#ee99cc":{"lch":[73.1028341171650737,55.013164482536844,331.314039518972208],"luv":[73.1028341171650737,48.2610582375421515,-26.4067893575727517],"rgb":[0.933333333333333348,0.6,0.8],"xyz":[0.575477658424743521,0.453211150326548906,0.628454120173074893],"hpluv":[331.314039518972208,95.4930444317639342,73.1028341171650737],"hsluv":[331.314039518972208,75.0536815693659491,73.1028341171650737]},"#ee99dd":{"lch":[73.6633770412179274,60.4388711558699896,318.269971219550712],"luv":[73.6633770412179274,45.1048908137830935,-40.2294167403973049],"rgb":[0.933333333333333348,0.6,0.866666666666666696],"xyz":[0.596995983975377,0.461818480546802412,0.74178396807308089],"hpluv":[318.269971219550712,104.112780668711437,73.6633770412179274],"hsluv":[318.269971219550712,75.472992612571872,73.6633770412179274]},"#ee99ee":{"lch":[74.2756141069900337,68.5596754700476083,307.71501294924542],"luv":[74.2756141069900337,41.9403078139404499,-54.2350410807456953],"rgb":[0.933333333333333348,0.6,0.933333333333333348],"xyz":[0.620808164241551719,0.471343352653272429,0.867194784141604114],"hpluv":[307.71501294924542,117.128296895720368,74.2756141069900337],"hsluv":[307.71501294924542,75.8603506282489235,74.2756141069900337]},"#ee99ff":{"lch":[74.9390594560707,78.5455210447045857,299.603294913962486],"luv":[74.9390594560707,38.8008486558083519,-68.2927010724659],"rgb":[0.933333333333333348,0.6,1],"xyz":[0.64697921265138314,0.481811772017205153,1.00502897243338585],"hpluv":[299.603294913962486,133.000267199001968,74.9390594560707],"hsluv":[299.603294913962486,99.9999999999973284,74.9390594560707]},"#dd0000":{"lch":[46.1435564305616239,155.182233977468201,12.1770506300617765],"luv":[46.1435564305616239,151.69070515099267,32.7330981276182555],"rgb":[0.866666666666666696,0,0],"xyz":[0.298181282529475455,0.153749723804264049,0.0139772476185688679],"hpluv":[12.1770506300617765,426.746789183125316,46.1435564305616239],"hsluv":[12.1770506300617765,100.000000000002217,46.1435564305616239]},"#dd0011":{"lch":[46.1980288678146636,153.577384001942391,11.5987087531524224],"luv":[46.1980288678146636,150.441300178721519,30.8776306962803169],"rgb":[0.866666666666666696,0,0.0666666666666666657],"xyz":[0.29919294802911256,0.154154390004118902,0.0193053525833244977],"hpluv":[11.5987087531524224,421.835520233675084,46.1980288678146636],"hsluv":[11.5987087531524224,99.9999999999964473,46.1980288678146636]},"#dd0022":{"lch":[46.2987546285526292,150.712226421231577,10.5179424282654246],"luv":[46.2987546285526292,148.17992816752087,27.5115263319381462],"rgb":[0.866666666666666696,0,0.133333333333333331],"xyz":[0.301068306167589617,0.15490453325950973,0.0291822387793036972],"hpluv":[10.5179424282654246,413.065099977246746,46.2987546285526292],"hsluv":[10.5179424282654246,99.9999999999964615,46.2987546285526292]},"#dd0033":{"lch":[46.4638920568500637,146.293058552209629,8.71533624525386585],"luv":[46.4638920568500637,144.603865814948932,22.1671146505918131],"rgb":[0.866666666666666696,0,0.2],"xyz":[0.304156056900047322,0.156139633552492829,0.0454443926369148404],"hpluv":[8.71533624525386585,399.528220173505417,46.4638920568500637],"hsluv":[8.71533624525386585,99.9999999999966,46.4638920568500637]},"#dd0044":{"lch":[46.7007828741672242,140.527307525302433,6.06736355557067153],"luv":[46.7007828741672242,139.740117429456177,14.853408400522655],"rgb":[0.866666666666666696,0,0.266666666666666663],"xyz":[0.308614052144266238,0.157922831650180423,0.0689231675898014789],"hpluv":[6.06736355557067153,381.835137536210595,46.7007828741672242],"hsluv":[6.06736355557067153,99.9999999999967315,46.7007828741672242]},"#dd0055":{"lch":[47.0148448700731194,133.854751810486647,2.4577968894866693],"luv":[47.0148448700731194,133.731616129679537,5.74015936982693],"rgb":[0.866666666666666696,0,0.333333333333333315],"xyz":[0.314576466183628223,0.160307797265925256,0.10032521486377538],"hpluv":[2.4577968894866693,361.275168455412427,47.0148448700731194],"hsluv":[2.4577968894866693,99.9999999999969873,47.0148448700731194]},"#dd0066":{"lch":[47.4099042919878073,126.898325188331157,357.792852491951692],"luv":[47.4099042919878073,126.80418183984473,-4.88716722969802841],"rgb":[0.866666666666666696,0,0.4],"xyz":[0.322161461957136408,0.163341795575328547,0.140272859270919342],"hpluv":[357.792852491951692,339.645713706877359,47.4099042919878073],"hsluv":[357.792852491951692,99.9999999999972857,47.4099042919878073]},"#dd0077":{"lch":[47.8883827301537,120.388643903007392,352.036106438093952],"luv":[47.8883827301537,119.227564738695264,-16.6797298325047478],"rgb":[0.866666666666666696,0,0.466666666666666674],"xyz":[0.331475474977338314,0.16706740078340937,0.189326661177317251],"hpluv":[352.036106438093952,319.002934776287759,47.8883827301537],"hsluv":[352.036106438093952,99.9999999999974136,47.8883827301537]},"#dd0088":{"lch":[48.4514347566520058,115.064311489444805,345.260130057314882],"luv":[48.4514347566520058,111.277652945923506,-29.2759241252361342],"rgb":[0.866666666666666696,0,0.533333333333333326],"xyz":[0.342615892079282114,0.171523567624186968,0.247999524580889419],"hpluv":[345.260130057314882,301.351479235409442,48.4514347566520058],"hsluv":[345.260130057314882,99.9999999999976836,48.4514347566520058]},"#dd0099":{"lch":[49.0990738312553816,111.554442433955828,337.69359677942],"luv":[49.0990738312553816,103.206522936464793,-42.3415546492536166],"rgb":[0.866666666666666696,0,0.6],"xyz":[0.355672856188354869,0.176746353267816125,0.316766202222007354],"hpluv":[337.69359677942,288.305479360883112,49.0990738312553816],"hsluv":[337.69359677942,99.9999999999979252,49.0990738312553816]},"#dd00aa":{"lch":[49.8303011832281442,110.265023964610052,329.72204926251294],"luv":[49.8303011832281442,95.2237329190616606,-55.5951094870335041],"rgb":[0.866666666666666696,0,0.66666666666666663],"xyz":[0.370730549153607369,0.18276943045391722,0.396070051839005954],"hpluv":[329.72204926251294,280.791263168904948,49.8303011832281442],"hsluv":[329.72204926251294,99.9999999999981526,49.8303011832281442]},"#dd00bb":{"lch":[50.6432416523731064,111.311454300018838,321.811503537589374],"luv":[50.6432416523731064,87.4886923962170613,-68.8183737179635244],"rgb":[0.866666666666666696,0,0.733333333333333282],"xyz":[0.387868141260944044,0.189624467296851978,0.486328036937647701],"hpluv":[321.811503537589374,278.905890401213071,50.6432416523731064],"hsluv":[321.811503537589374,99.9999999999984,50.6432416523731064]},"#dd00cc":{"lch":[51.5352850119508901,114.534817141075266,314.3830496716472],"luv":[51.5352850119508901,80.1116001600253753,-81.8557014345352201],"rgb":[0.866666666666666696,0,0.8],"xyz":[0.407160516704665798,0.19734141747434078,0.587934547607917857],"hpluv":[314.3830496716472,282.014975724645751,51.5352850119508901],"hsluv":[314.3830496716472,99.9999999999986215,51.5352850119508901]},"#dd00dd":{"lch":[52.5032286812834883,119.593841400887641,307.715012949243601],"luv":[52.5032286812834883,73.1596596193909647,-94.6062952735996419],"rgb":[0.866666666666666696,0,0.866666666666666696],"xyz":[0.428678842255299286,0.205948747694594314,0.701264395507923854],"hpluv":[307.715012949243601,289.042783730483222,52.5032286812834883],"hsluv":[307.715012949243601,99.9999999999987779,52.5032286812834883]},"#dd00ee":{"lch":[53.5434168792756111,126.080010820296707,301.921476351261958],"luv":[53.5434168792756111,66.6656277920787659,-107.01337860068783],"rgb":[0.866666666666666696,0,0.933333333333333348],"xyz":[0.452491022521474051,0.215473619801064359,0.826675211576447078],"hpluv":[301.921476351261958,298.799235277631283,53.5434168792756111],"hsluv":[301.921476351261958,99.999999999998991,53.5434168792756111]},"#dd00ff":{"lch":[54.6518715304170399,133.605457484958208,296.990855958497434],"luv":[54.6518715304170399,60.6366090811706258,-119.053013019000375],"rgb":[0.866666666666666696,0,1],"xyz":[0.478662070931305417,0.225942039164997055,0.964509399868228923],"hpluv":[296.990855958497434,310.211923209940835,54.6518715304170399],"hsluv":[296.990855958497434,99.99999999999919,54.6518715304170399]},"#dd1100":{"lch":[46.6790301132195,152.538998994032681,12.7564763340959253],"luv":[46.6790301132195,148.773935032481603,33.6817824506429915],"rgb":[0.866666666666666696,0.0666666666666666657,0],"xyz":[0.300185682790403863,0.157758524326120919,0.0146453810388783197],"hpluv":[12.7564763340959253,414.665968881342394,46.6790301132195],"hsluv":[12.7564763340959253,100.000000000002373,46.6790301132195]},"#dd1111":{"lch":[46.7325769897078942,150.969760125239,12.1770506300617818],"luv":[46.7325769897078942,147.573010021229663,31.8445471870185592],"rgb":[0.866666666666666696,0.0666666666666666657,0.0666666666666666657],"xyz":[0.301197348290040967,0.158163190525975772,0.0199734860036339529],"hpluv":[12.1770506300617818,409.92986676092562,46.7325769897078942],"hsluv":[12.1770506300617818,96.0592738250283,46.7325769897078942]},"#dd1122":{"lch":[46.8315975390355774,148.166934443607602,11.093898425687982],"luv":[46.8315975390355774,145.398162733087418,28.509905932130728],"rgb":[0.866666666666666696,0.0666666666666666657,0.133333333333333331],"xyz":[0.303072706428518,0.1589133337813666,0.0298503721996131455],"hpluv":[11.093898425687982,401.468660625611221,46.8315975390355774],"hsluv":[11.093898425687982,96.1199649520447821,46.8315975390355774]},"#dd1133":{"lch":[46.9939567691892393,143.840838530693645,9.28627571582045697],"luv":[46.9939567691892393,141.955717705878527,23.2112265902085468],"rgb":[0.866666666666666696,0.0666666666666666657,0.2],"xyz":[0.30616045716097573,0.160148434074349699,0.0461125260572242957],"hpluv":[9.28627571582045697,388.400266865181436,46.9939567691892393],"hsluv":[9.28627571582045697,96.2159198798013477,46.9939567691892393]},"#dd1144":{"lch":[47.2268997120704555,138.191174032002039,6.62861883301083665],"luv":[47.2268997120704555,137.267398010546174,15.951865839373701],"rgb":[0.866666666666666696,0.0666666666666666657,0.266666666666666663],"xyz":[0.310618452405194645,0.161931632172037293,0.0695913010101109342],"hpluv":[6.62861883301083665,371.304486157060069,47.2268997120704555],"hsluv":[6.62861883301083665,96.346372634165391,47.2268997120704555]},"#dd1155":{"lch":[47.5357948285950442,131.646215003298352,3.00154982487266553],"luv":[47.5357948285950442,131.465612026054913,6.89338663571585908],"rgb":[0.866666666666666696,0.0666666666666666657,0.333333333333333315],"xyz":[0.31658086644455663,0.164316597787782126,0.100993348284084836],"hpluv":[3.00154982487266553,351.420379681935685,47.5357948285950442],"hsluv":[3.00154982487266553,96.5074087268808114,47.5357948285950442]},"#dd1166":{"lch":[47.9244613368761776,124.817323026056556,358.307054390798669],"luv":[47.9244613368761776,124.762840903711279,-3.68750010524401839],"rgb":[0.866666666666666696,0.0666666666666666657,0.4],"xyz":[0.324165862218064815,0.167350596097185417,0.140940992691228811],"hpluv":[358.307054390798669,330.488955339688346,47.9244613368761776],"hsluv":[358.307054390798669,96.6928417837132912,47.9244613368761776]},"#dd1177":{"lch":[48.3953520744879313,118.427317384197096,352.504166614065639],"luv":[48.3953520744879313,117.415279069986227,-15.4493282615978131],"rgb":[0.866666666666666696,0.0666666666666666657,0.466666666666666674],"xyz":[0.333479875238266721,0.17107620130526624,0.189994794597626721],"hpluv":[352.504166614065639,310.51856077863863,48.3953520744879313],"hsluv":[352.504166614065639,96.8952584834877229,48.3953520744879313]},"#dd1188":{"lch":[48.949686611979061,113.213254375126112,345.662599129740954],"luv":[48.949686611979061,109.687147393784173,-28.0351683216148473],"rgb":[0.866666666666666696,0.0666666666666666657,0.533333333333333326],"xyz":[0.344620292340210521,0.175532368146043838,0.248667658001198888],"hpluv":[345.662599129740954,293.48552443008623,48.949686611979061],"hsluv":[345.662599129740954,97.1070447043031209,48.949686611979061]},"#dd1199":{"lch":[49.5875717372425,109.808639676001164,338.012756373247385],"luv":[49.5875717372425,101.821953610845213,-41.1123717433662961],"rgb":[0.866666666666666696,0.0666666666666666657,0.6],"xyz":[0.357677256449283276,0.180755153789673,0.317434335642316767],"hpluv":[338.012756373247385,280.997849503034615,49.5875717372425],"hsluv":[338.012756373247385,97.321211179253126,49.5875717372425]},"#dd11aa":{"lch":[50.3081241313593779,108.626384639058173,329.948207544292131],"luv":[50.3081241313593779,94.0240738412992556,-54.3982074892042462],"rgb":[0.866666666666666696,0.0666666666666666657,0.66666666666666663],"xyz":[0.372734949414535777,0.18677823097577409,0.396738185259315368],"hpluv":[329.948207544292131,273.991145484396441,50.3081241313593779],"hsluv":[329.948207544292131,97.5319211216277751,50.3081241313593779]},"#dd11bb":{"lch":[51.1095995740137,109.78676639377484,321.947120969557943],"luv":[51.1095995740137,86.4507346157054855,-67.6712979010019495],"rgb":[0.866666666666666696,0.0666666666666666657,0.733333333333333282],"xyz":[0.389872541521872451,0.193633267818708849,0.486996170357957114],"hpluv":[321.947120969557943,272.57551535007633,51.1095995740137],"hsluv":[321.947120969557943,97.7347175386083791,51.1095995740137]},"#dd11cc":{"lch":[51.9895276454598303,113.13117809908816,314.441471026924035],"luv":[51.9895276454598303,79.2122218564644527,-80.7718228508547469],"rgb":[0.866666666666666696,0.0666666666666666657,0.8],"xyz":[0.409164916965594205,0.20135021799619765,0.588602681028227326],"hpluv":[314.441471026924035,276.12502270002949,51.9895276454598303],"hsluv":[314.441471026924035,97.9265130550616,51.9895276454598303]},"#dd11dd":{"lch":[52.9448482611329325,118.314931067086022,307.715012949243601],"luv":[52.9448482611329325,72.3773062506166553,-93.594596282658145],"rgb":[0.866666666666666696,0.0666666666666666657,0.866666666666666696],"xyz":[0.430683242516227693,0.209957548216451184,0.701932528928233324],"hpluv":[307.715012949243601,283.566663729067216,52.9448482611329325],"hsluv":[307.715012949243601,98.1054292618058525,52.9448482611329325]},"#dd11ee":{"lch":[53.9720454332022257,124.924845967379298,301.881652150577509],"luv":[53.9720454332022257,65.9811112999591103,-106.078791902980541],"rgb":[0.866666666666666696,0.0666666666666666657,0.933333333333333348],"xyz":[0.454495422782402458,0.219482420322921229,0.827343344996756547],"hpluv":[301.881652150577509,293.71036424495378,53.9720454332022257],"hsluv":[301.881652150577509,98.2705657762439841,53.9720454332022257]},"#dd11ff":{"lch":[55.067273793018515,132.56906123155207,296.926443611211937],"luv":[55.067273793018515,60.0334023394080774,-118.197066796810802],"rgb":[0.866666666666666696,0.0666666666666666657,1],"xyz":[0.480666471192233824,0.229950839686853925,0.965177533288538392],"hpluv":[296.926443611211937,305.483621811531123,55.067273793018515],"hsluv":[296.926443611211937,99.9999999999990763,55.067273793018515]},"#dd2200":{"lch":[47.6481385708110494,147.881667770992,13.8451074484812633],"luv":[47.6481385708110494,143.585141583480663,35.3877772568702937],"rgb":[0.866666666666666696,0.133333333333333331,0],"xyz":[0.303901306525171777,0.165189771795656887,0.0158839222838009289],"hpluv":[13.8451074484812633,393.829031299888356,47.6481385708110494],"hsluv":[13.8451074484812633,100.000000000002302,47.6481385708110494]},"#dd2211":{"lch":[47.7000692420668,146.371743885583,13.2640103652051735],"luv":[47.7000692420668,142.467011758872331,33.583298953557744],"rgb":[0.866666666666666696,0.133333333333333331,0.0666666666666666657],"xyz":[0.304912972024808882,0.16559443799551174,0.0212120272485565586],"hpluv":[13.2640103652051735,389.383517616197651,47.7000692420668],"hsluv":[13.2640103652051735,96.2235359913314596,47.7000692420668]},"#dd2222":{"lch":[47.796111526211412,143.672697420673273,12.1770506300617871],"luv":[47.796111526211412,140.440127868319678,30.3053537920670948],"rgb":[0.866666666666666696,0.133333333333333331,0.133333333333333331],"xyz":[0.306788330163285938,0.166344581250902568,0.0310889134445357582],"hpluv":[12.1770506300617871,381.435408792809369,47.796111526211412],"hsluv":[12.1770506300617871,89.3821391188339618,47.796111526211412]},"#dd2233":{"lch":[47.9536166692339805,139.501418135148583,10.3611027729364178],"luv":[47.9536166692339805,137.226679529052944,25.0895214611231978],"rgb":[0.866666666666666696,0.133333333333333331,0.2],"xyz":[0.309876080895743644,0.167579681543885667,0.0473510673021469],"hpluv":[10.3611027729364178,369.144652707036585,47.9536166692339805],"hsluv":[10.3611027729364178,89.634195646670733,47.9536166692339805]},"#dd2244":{"lch":[48.1796580724099073,134.044487106872765,7.68678657448498281],"luv":[48.1796580724099073,132.839973125453383,17.9294747210675],"rgb":[0.866666666666666696,0.133333333333333331,0.266666666666666663],"xyz":[0.314334076139962559,0.169362879641573261,0.0708298422550335399],"hpluv":[7.68678657448498281,353.040533161258963,48.1796580724099073],"hsluv":[7.68678657448498281,89.9776949827144819,48.1796580724099073]},"#dd2255":{"lch":[48.4795139291676236,127.710640494506933,4.02871777991100277],"luv":[48.4795139291676236,127.395062601571667,8.9724979943620351],"rgb":[0.866666666666666696,0.133333333333333331,0.333333333333333315],"xyz":[0.320296490179324544,0.171747845257318094,0.102231889529007441],"hpluv":[4.02871777991100277,334.278275235680212,48.4795139291676236],"hsluv":[4.02871777991100277,90.4030378986951746,48.4795139291676236]},"#dd2266":{"lch":[48.8569858046774499,121.091623353111601,359.280669781128381],"luv":[48.8569858046774499,121.082080247128843,-1.52022673298942879],"rgb":[0.866666666666666696,0.133333333333333331,0.4],"xyz":[0.32788148595283273,0.174781843566721384,0.142179533936151403],"hpluv":[359.280669781128381,314.504423311283745,48.8569858046774499],"hsluv":[359.280669781128381,90.8946273178398627,48.8569858046774499]},"#dd2277":{"lch":[49.3145747506863046,114.897314975199777,353.392641366134796],"luv":[49.3145747506863046,114.134166521370943,-13.2206286152450421],"rgb":[0.866666666666666696,0.133333333333333331,0.466666666666666674],"xyz":[0.337195498973034635,0.178507448774802208,0.191233335842549312],"hpluv":[353.392641366134796,295.64729776044,49.3145747506863046],"hsluv":[353.392641366134796,91.4334620569677128,49.3145747506863046]},"#dd2288":{"lch":[49.8536069462695934,109.863045744465836,346.42832123602642],"luv":[49.8536069462695934,106.795352255968297,-25.780643063628979],"rgb":[0.866666666666666696,0.133333333333333331,0.533333333333333326],"xyz":[0.348335916074978436,0.182963615615579805,0.24990619924612148],"hpluv":[346.42832123602642,279.636833718457694,49.8536069462695934],"hsluv":[346.42832123602642,91.999736258284841,49.8536069462695934]},"#dd2299":{"lch":[50.4743452384724947,106.631383564155598,338.620922954440232],"luv":[50.4743452384724947,99.2939711585852507,-38.8710593162073792],"rgb":[0.866666666666666696,0.133333333333333331,0.6],"xyz":[0.361392880184051135,0.188186401259208963,0.318672876887239387],"hpluv":[338.620922954440232,268.07337181170567,50.4743452384724947],"hsluv":[338.620922954440232,92.5749897333771088,50.4743452384724947]},"#dd22aa":{"lch":[51.176101525576982,105.62881092572934,330.379319008457628],"luv":[51.176101525576982,91.8248770713425699,-52.2076397514415902],"rgb":[0.866666666666666696,0.133333333333333331,0.66666666666666663],"xyz":[0.376450573149303691,0.194209478445310058,0.397976726504238],"hpluv":[330.379319008457628,261.911470041672374,51.176101525576982],"hsluv":[330.379319008457628,93.1435427232804898,51.176101525576982]},"#dd22bb":{"lch":[51.9573548685870321,106.984993341056935,322.205396597718504],"luv":[51.9573548685870321,84.5409044706425306,-65.5638945721781425],"rgb":[0.866666666666666696,0.133333333333333331,0.733333333333333282],"xyz":[0.393588165256640365,0.201064515288244816,0.488234711602879734],"hpluv":[322.205396597718504,261.285408571692301,51.9573548685870321],"hsluv":[322.205396597718504,93.6931794305449301,51.9573548685870321]},"#dd22cc":{"lch":[52.8158750154556174,110.541708291411879,314.55250800555325],"luv":[52.8158750154556174,77.5519304210182838,-78.7728846745956],"rgb":[0.866666666666666696,0.133333333333333331,0.8],"xyz":[0.412880540700362064,0.208781465465733618,0.58984122227315],"hpluv":[314.55250800555325,265.583456637160452,52.8158750154556174],"hsluv":[314.55250800555325,94.2152138812719073,52.8158750154556174]},"#dd22dd":{"lch":[53.7488483860564088,115.947384169062644,307.715012949243658],"luv":[53.7488483860564088,70.9289965118926204,-91.721716891171],"rgb":[0.866666666666666696,0.133333333333333331,0.866666666666666696],"xyz":[0.434398866250995663,0.217388795685987152,0.703171070173155943],"hpluv":[307.715012949243658,273.735496610715643,53.7488483860564088],"hsluv":[307.715012949243658,94.704144859729837,53.7488483860564088]},"#dd22ee":{"lch":[54.7530025006588374,122.779599443276055,301.806367069585178],"luv":[54.7530025006588374,64.7110170709106,-104.342293961267828],"rgb":[0.866666666666666696,0.133333333333333331,0.933333333333333348],"xyz":[0.458211046517170373,0.226913667792457197,0.828581886241679166],"hpluv":[301.806367069585178,284.549350776984397,54.7530025006588374],"hsluv":[301.806367069585178,95.1571011878196629,54.7530025006588374]},"#dd22ff":{"lch":[55.8247247862810525,130.638613434108407,296.804995701950531],"luv":[55.8247247862810525,58.9121835814083425,-116.601037498200881],"rgb":[0.866666666666666696,0.133333333333333331,1],"xyz":[0.484382094927001794,0.237382087156389893,0.966416074533461],"hpluv":[296.804995701950531,296.950662194199822,55.8247247862810525],"hsluv":[296.804995701950531,99.9999999999989768,55.8247247862810525]},"#dd3300":{"lch":[49.1823134049741526,140.84390252957769,15.6779143459349193],"luv":[49.1823134049741526,135.603943521894649,38.06015476941716],"rgb":[0.866666666666666696,0.2,0],"xyz":[0.310019028614182623,0.17742521597367869,0.0179231629801378106],"hpluv":[15.6779143459349193,363.386194305474646,49.1823134049741526],"hsluv":[15.6779143459349193,100.000000000002331,49.1823134049741526]},"#dd3311":{"lch":[49.2318310772226226,139.415415721210906,15.0950854994101622],"luv":[49.2318310772226226,134.60488288385605,36.3067988748864323],"rgb":[0.866666666666666696,0.2,0.0666666666666666657],"xyz":[0.311030694113819728,0.177829882173533543,0.0232512679448934403],"hpluv":[15.0950854994101622,359.338818773581409,49.2318310772226226],"hsluv":[15.0950854994101622,96.4660724045404834,49.2318310772226226]},"#dd3322":{"lch":[49.3234253076193,136.858666305461554,14.0037238091571297],"luv":[49.3234253076193,132.791226888227897,33.117738516222083],"rgb":[0.866666666666666696,0.2,0.133333333333333331],"xyz":[0.312906052252296785,0.178580025428924372,0.0331281541408726399],"hpluv":[14.0037238091571297,352.093818956611813,49.3234253076193],"hsluv":[14.0037238091571297,90.0546185843159321,49.3234253076193]},"#dd3333":{"lch":[49.4736766963079901,132.899088309008249,12.1770506300618315],"luv":[49.4736766963079901,129.908920002044738,28.0328410488111714],"rgb":[0.866666666666666696,0.2,0.2],"xyz":[0.31599380298475449,0.179815125721907471,0.0493903079984837831],"hpluv":[12.1770506300618315,340.868713502871344,49.4736766963079901],"hsluv":[12.1770506300618315,79.876105021286179,49.4736766963079901]},"#dd3344":{"lch":[49.6893958667399289,127.704341644457742,9.47932118493828391],"luv":[49.6893958667399289,125.960552293014786,21.031836364974712],"rgb":[0.866666666666666696,0.2,0.266666666666666663],"xyz":[0.320451798228973406,0.181598323819595064,0.0728690829513704286],"hpluv":[9.47932118493828391,326.122882655454703,49.6893958667399289],"hsluv":[9.47932118493828391,80.502956859434363,49.6893958667399289]},"#dd3355":{"lch":[49.9757165444531495,121.655077778432485,5.77481987360355742],"luv":[49.9757165444531495,121.037681249067731,12.2408197080725127],"rgb":[0.866666666666666696,0.2,0.333333333333333315],"xyz":[0.326414212268335391,0.183983289435339897,0.10427113022534433],"hpluv":[5.77481987360355742,308.89475746512926,49.9757165444531495],"hsluv":[5.77481987360355742,81.2827465905028674,49.9757165444531495]},"#dd3366":{"lch":[50.3364012453720164,115.314978813651479,0.942739432835561],"luv":[50.3364012453720164,115.29936949267524,1.8972963354308543],"rgb":[0.866666666666666696,0.2,0.4],"xyz":[0.333999208041843576,0.187017287744743188,0.144218774632488278],"hpluv":[0.942739432835561,290.698564526315124,50.3364012453720164],"hsluv":[0.942739432835561,82.1889615211792375,50.3364012453720164]},"#dd3377":{"lch":[50.77400791740952,109.376176789803836,354.916348657894],"luv":[50.77400791740952,108.945933542464203,-9.69183231981436],"rgb":[0.866666666666666696,0.2,0.466666666666666674],"xyz":[0.343313221062045482,0.190742892952824,0.193272576538886187],"hpluv":[354.916348657894,273.35096965093777,50.77400791740952],"hsluv":[354.916348657894,83.1884512053650269,50.77400791740952]},"#dd3388":{"lch":[51.2900053848270545,104.574014460431073,347.747121452304157],"luv":[51.2900053848270545,102.191864987712989,-22.1934051173651383],"rgb":[0.866666666666666696,0.2,0.533333333333333326],"xyz":[0.354453638163989282,0.195199059793601609,0.251945439942458382],"hpluv":[347.747121452304157,258.720214242298141,51.2900053848270545],"hsluv":[347.747121452304157,84.245872474104587,51.2900053848270545]},"#dd3399":{"lch":[51.8848727297214509,101.568582070491487,339.671486537323062],"luv":[51.8848727297214509,95.2425012264059347,-35.2851643605103433],"rgb":[0.866666666666666696,0.2,0.6],"xyz":[0.367510602273062,0.200421845437230767,0.320712117583576262],"hpluv":[339.671486537323062,248.403642764366595,51.8848727297214509],"hsluv":[339.671486537323062,85.3275173092541763,51.8848727297214509]},"#dd33aa":{"lch":[52.5581975758694284,100.811065681036794,331.124654782349864],"luv":[52.5581975758694284,88.2774684157494,-48.6822301651504219],"rgb":[0.866666666666666696,0.2,0.66666666666666663],"xyz":[0.382568295238314537,0.206444922623331861,0.400015967200574862],"hpluv":[331.124654782349864,243.392431352391867,52.5581975758694284],"hsluv":[331.124654782349864,86.4040244757801,52.5581975758694284]},"#dd33bb":{"lch":[53.3087788146031301,102.447919096954379,322.651217662355],"luv":[53.3087788146031301,81.4417156804123579,-62.1516136100020091],"rgb":[0.866666666666666696,0.2,0.733333333333333282],"xyz":[0.399705887345651212,0.21329995946626662,0.490273952299216609],"hpluv":[322.651217662355,243.861776984359892,53.3087788146031301],"hsluv":[322.651217662355,87.4518397844355633,53.3087788146031301]},"#dd33cc":{"lch":[54.1347343907921612,106.321268361530926,314.743497623169446],"luv":[54.1347343907921612,74.8431687457043751,-75.5163041872859253],"rgb":[0.866666666666666696,0.2,0.8],"xyz":[0.418998262789372911,0.221016909643755421,0.59188046296948682],"hpluv":[314.743497623169446,249.220329072313831,54.1347343907921612],"hsluv":[314.743497623169446,88.4535853271675734,54.1347343907921612]},"#dd33dd":{"lch":[55.033612168624586,112.066789743934578,307.715012949243715],"luv":[55.033612168624586,68.5551036430149,-88.6519211749340741],"rgb":[0.866666666666666696,0.2,0.866666666666666696],"xyz":[0.44051658834000651,0.229624239864008955,0.705210310869492818],"hpluv":[307.715012949243715,258.397459164480438,55.033612168624586],"hsluv":[307.715012949243715,89.3976510430439077,55.033612168624586]},"#dd33ee":{"lch":[56.0025007026426351,119.245240694744666,301.678101579798295],"luv":[56.0025007026426351,62.6212128139869506,-101.479116738632214],"rgb":[0.866666666666666696,0.2,0.933333333333333348],"xyz":[0.464328768606181219,0.239149111970479,0.830621126938016],"hpluv":[301.678101579798295,270.192295422478139,56.0025007026426351],"hsluv":[301.678101579798295,90.277343199481848,56.0025007026426351]},"#dd33ff":{"lch":[57.0381364623091116,127.442655532056975,296.59904001960814],"luv":[57.0381364623091116,57.0616979163907772,-113.954346472440875],"rgb":[0.866666666666666696,0.2,1],"xyz":[0.49049981701601264,0.249617531334411696,0.968455315229797886],"hpluv":[296.59904001960814,283.523336448078851,57.0381364623091116],"hsluv":[296.59904001960814,99.9999999999989626,57.0381364623091116]},"#dd4400":{"lch":[51.2775121999195278,131.902040393952689,18.409420821930695],"luv":[51.2775121999195278,125.151834557466444,41.6553305951168156],"rgb":[0.866666666666666696,0.266666666666666663,0],"xyz":[0.318851599097148664,0.19509035693961102,0.0208673531411264039],"hpluv":[18.409420821930695,326.410329295551833,51.2775121999195278],"hsluv":[18.409420821930695,100.000000000002245,51.2775121999195278]},"#dd4411":{"lch":[51.3239968707682124,130.563017922041524,17.8265447991253865],"luv":[51.3239968707682124,124.294382399750674,39.9700907276414128],"rgb":[0.866666666666666696,0.266666666666666663,0.0666666666666666657],"xyz":[0.319863264596785768,0.195495023139465873,0.0261954581058820371],"hpluv":[17.8265447991253865,322.804096021626094,51.3239968707682124],"hsluv":[17.8265447991253865,96.7659447415066154,51.3239968707682124]},"#dd4422":{"lch":[51.4099976690743148,128.162025810787327,16.7333496749677373],"luv":[51.4099976690743148,122.735013936090269,36.9001519513490237],"rgb":[0.866666666666666696,0.266666666666666663,0.133333333333333331],"xyz":[0.321738622735262825,0.196245166394856702,0.0360723443018612297],"hpluv":[16.7333496749677373,316.337811591652041,51.4099976690743148],"hsluv":[16.7333496749677373,90.8878404873512551,51.4099976690743148]},"#dd4433":{"lch":[51.551120550377874,124.432504768689228,14.8985084842763058],"luv":[51.551120550377874,120.249428964759446,31.9925472049216744],"rgb":[0.866666666666666696,0.266666666666666663,0.2],"xyz":[0.324826373467720531,0.197480266687839801,0.0523344981594723729],"hpluv":[14.8985084842763058,306.291581325991444,51.551120550377874],"hsluv":[14.8985084842763058,81.5276169642245634,51.551120550377874]},"#dd4444":{"lch":[51.7538349343952575,119.518854000271219,12.1770506300618191],"luv":[51.7538349343952575,116.829734805674121,25.2105042943215345],"rgb":[0.866666666666666696,0.266666666666666663,0.266666666666666663],"xyz":[0.329284368711939446,0.199263464785527394,0.0758132731123590115],"hpluv":[12.1770506300618191,293.044254198223086,51.7538349343952575],"hsluv":[12.1770506300618191,68.6693518559736,51.7538349343952575]},"#dd4455":{"lch":[52.0230766847265045,113.767549619287195,8.41751308754220773],"luv":[52.0230766847265045,112.542004033713866,16.6539086839248256],"rgb":[0.866666666666666696,0.266666666666666663,0.333333333333333315],"xyz":[0.335246782751301431,0.201648430401272227,0.107215320386332927],"hpluv":[8.41751308754220773,277.499175779034886,52.0230766847265045],"hsluv":[8.41751308754220773,69.8262296658756867,52.0230766847265045]},"#dd4466":{"lch":[52.3625377834239316,107.708396397149357,3.47572472865958737],"luv":[52.3625377834239316,107.51027478189765,6.52989056311981209],"rgb":[0.866666666666666696,0.266666666666666663,0.4],"xyz":[0.342831778524809616,0.204682428710675518,0.147162964793476875],"hpluv":[3.47572472865958737,261.016642983210886,52.3625377834239316],"hsluv":[3.47572472865958737,71.1800009153795088,52.3625377834239316]},"#dd4477":{"lch":[52.7748219535637304,102.013560717275851,357.256373562230806],"luv":[52.7748219535637304,101.896624345108023,-4.88308481282748108],"rgb":[0.866666666666666696,0.266666666666666663,0.466666666666666674],"xyz":[0.352145791545011522,0.208408033918756341,0.196216766699874784],"hpluv":[357.256373562230806,245.284698321799027,52.7748219535637304],"hsluv":[357.256373562230806,72.6848757644217898,52.7748219535637304]},"#dd4488":{"lch":[53.2615487789460502,97.4233940898595137,349.787328406912707],"luv":[53.2615487789460502,95.8798587184095368,-17.273401753155067],"rgb":[0.866666666666666696,0.266666666666666663,0.533333333333333326],"xyz":[0.363286208646955322,0.212864200759533939,0.254889630103446951],"hpluv":[349.787328406912707,232.107295472344475,53.2615487789460502],"hsluv":[349.787328406912707,74.290572198007979,53.2615487789460502]},"#dd4499":{"lch":[53.8234397136373133,94.6288173232078123,341.30539151945959],"luv":[53.8234397136373133,89.63624285692255,-30.330793502376995],"rgb":[0.866666666666666696,0.266666666666666663,0.6],"xyz":[0.376343172756028,0.218086986403163097,0.323656307744564886],"hpluv":[341.30539151945959,223.095746339835301,53.8234397136373133],"hsluv":[341.30539151945959,75.9477058190526577,53.8234397136373133]},"#dd44aa":{"lch":[54.4604007326765327,94.1226543521493539,332.285935566136516],"luv":[54.4604007326765327,83.3248558176969425,-43.7726223255380802],"rgb":[0.866666666666666696,0.266666666666666663,0.66666666666666663],"xyz":[0.391400865721280578,0.224110063589264191,0.402960157361563487],"hpluv":[332.285935566136516,219.307083848265933,54.4604007326765327],"hsluv":[332.285935566136516,77.6118806813578175,54.4604007326765327]},"#dd44bb":{"lch":[55.1716077278512387,96.0796222427451596,323.344264550451],"luv":[55.1716077278512387,77.0786382371216,-57.3600674495728526],"rgb":[0.866666666666666696,0.266666666666666663,0.733333333333333282],"xyz":[0.408538457828617252,0.23096510043219895,0.493218142460205233],"hpluv":[323.344264550451,220.981019921853772,55.1716077278512387],"hsluv":[323.344264550451,79.2461809113807334,55.1716077278512387]},"#dd44cc":{"lch":[55.9555962107488511,100.342448880687911,315.038748994660807],"luv":[55.9555962107488511,71.0007950362134,-70.9048246002984],"rgb":[0.866666666666666696,0.266666666666666663,0.8],"xyz":[0.427830833272338951,0.238682050609687751,0.594824653130475389],"hpluv":[315.038748994660807,227.551915064947707,55.9555962107488511],"hsluv":[315.038748994660807,80.8221578956601547,55.9555962107488511]},"#dd44dd":{"lch":[56.8103543983327484,106.525561993860563,307.715012949243828],"luv":[56.8103543983327484,65.1653443433699664,-84.2684594300729515],"rgb":[0.866666666666666696,0.266666666666666663,0.866666666666666696],"xyz":[0.44934915882297255,0.247289380829941285,0.708154501030481387],"hpluv":[307.715012949243828,237.939016458104504,56.8103543983327484],"hsluv":[307.715012949243828,82.3196529548951474,56.8103543983327484]},"#dd44ee":{"lch":[57.7334174818232384,114.162073161526394,301.482814132357476],"luv":[57.7334174818232384,59.6203198077272134,-97.3570563162323452],"rgb":[0.866666666666666696,0.266666666666666663,0.933333333333333348],"xyz":[0.473161339089147259,0.256814252936411302,0.83356531709900461],"hpluv":[301.482814132357476,250.91920763959763,57.7334174818232384],"hsluv":[301.482814132357476,85.8927976857303577,57.7334174818232384]},"#dd44ff":{"lch":[58.721960397178492,122.814959128704743,296.287773174859751],"luv":[58.721960397178492,54.3922733794591196,-110.113554035820684],"rgb":[0.866666666666666696,0.266666666666666663,1],"xyz":[0.49933238749897868,0.267282672300344,0.971399505390786455],"hpluv":[296.287773174859751,265.393357493052918,58.721960397178492],"hsluv":[296.287773174859751,99.9999999999987779,58.721960397178492]},"#dd5500":{"lch":[53.8905970004369834,121.845910621274882,22.2085433527856502],"luv":[53.8905970004369834,112.806678507237621,46.055175814369008],"rgb":[0.866666666666666696,0.333333333333333315,0],"xyz":[0.330664855811494629,0.218716870368303284,0.0248051053792416147],"hpluv":[22.2085433527856502,286.904453583707834,53.8905970004369834],"hsluv":[22.2085433527856502,100.000000000002217,53.8905970004369834]},"#dd5511":{"lch":[53.9336739056601573,120.58904296901602,21.6306448037720749],"luv":[53.9336739056601573,112.097097503939963,44.4517492948856656],"rgb":[0.866666666666666696,0.333333333333333315,0.0666666666666666657],"xyz":[0.331676521311131733,0.219121536568158137,0.0301332103439972479],"hpluv":[21.6306448037720749,283.71818310283129,53.9336739056601573],"hsluv":[21.6306448037720749,97.0955711707227493,53.9336739056601573]},"#dd5522":{"lch":[54.0133869328819856,118.329807147086328,20.5443811064534074],"luv":[54.0133869328819856,110.804107011743554,41.5258128011568957],"rgb":[0.866666666666666696,0.333333333333333315,0.133333333333333331],"xyz":[0.33355187944960879,0.219871679823548966,0.0400100965399764405],"hpluv":[20.5443811064534074,277.99185559962018,54.0133869328819856],"hsluv":[20.5443811064534074,91.805999212684128,54.0133869328819856]},"#dd5533":{"lch":[54.1442392255445526,114.805940194650788,18.7140712474621722],"luv":[54.1442392255445526,108.736323489647134,36.8349814433582736],"rgb":[0.866666666666666696,0.333333333333333315,0.2],"xyz":[0.336639630182066496,0.221106780116532065,0.0562722503975875837],"hpluv":[18.7140712474621722,269.061420184977408,54.1442392255445526],"hsluv":[18.7140712474621722,83.3546452149230674,54.1442392255445526]},"#dd5544":{"lch":[54.3323026853354207,110.135081135525823,15.9827981501284579],"luv":[54.3323026853354207,105.877744255237971,30.3255563535325479],"rgb":[0.866666666666666696,0.333333333333333315,0.266666666666666663],"xyz":[0.341097625426285411,0.222889978214219658,0.0797510253504742223],"hpluv":[15.9827981501284579,257.221277658214035,54.3323026853354207],"hsluv":[15.9827981501284579,71.6878656400709104,54.3323026853354207]},"#dd5555":{"lch":[54.5822696158357132,104.625049281135261,12.1770506300618937],"luv":[54.5822696158357132,102.271033836367579,22.0689051636128752],"rgb":[0.866666666666666696,0.333333333333333315,0.333333333333333315],"xyz":[0.347060039465647396,0.225274943829964491,0.111153072624448138],"hpluv":[12.1770506300618937,243.233512665758,54.5822696158357132],"hsluv":[12.1770506300618937,61.8784513389384,54.5822696158357132]},"#dd5566":{"lch":[54.8977244977922254,98.7674373059184205,7.11744080010036573],"luv":[54.8977244977922254,98.0063618739055897,12.2376347477602359],"rgb":[0.866666666666666696,0.333333333333333315,0.4],"xyz":[0.354645035239155582,0.228308942139367782,0.151100717031592086],"hpluv":[7.11744080010036573,228.296245111676484,54.8977244977922254],"hsluv":[7.11744080010036573,62.7979151590930655,54.8977244977922254]},"#dd5577":{"lch":[55.2812881935381597,93.2135187108595886,0.661514811515945267],"luv":[55.2812881935381597,93.2073060454778783,1.07618316489082022],"rgb":[0.866666666666666696,0.333333333333333315,0.466666666666666674],"xyz":[0.363959048259357487,0.232034547347448605,0.20015451893799],"hpluv":[0.661514811515945267,213.963687644495565,55.2812881935381597],"hsluv":[0.661514811515945267,63.8225359413096456,55.2812881935381597]},"#dd5588":{"lch":[55.7347110848163538,88.7163187329837,352.791835078768599],"luv":[55.7347110848163538,88.0151786426913532,-11.1316457915027787],"rgb":[0.866666666666666696,0.333333333333333315,0.533333333333333326],"xyz":[0.375099465361301287,0.236490714188226203,0.258827382341562162],"hpluv":[352.791835078768599,201.984054112510194,55.7347110848163538],"hsluv":[352.791835078768599,64.9173177009572,55.7347110848163538]},"#dd5599":{"lch":[56.2589463845586408,86.0173277442407169,343.733753082454825],"luv":[56.2589463845586408,82.5740942724548717,-24.0935598727929836],"rgb":[0.866666666666666696,0.333333333333333315,0.6],"xyz":[0.388156429470374,0.241713499831855361,0.327594059982680097],"hpluv":[343.733753082454825,194.014271994181229,56.2589463845586408],"hsluv":[343.733753082454825,66.0466553819121,56.2589463845586408]},"#dd55aa":{"lch":[56.8542178605490278,85.677853149792881,334.018383993549605],"luv":[56.8542178605490278,77.0187914763158545,-37.5339883290498477],"rgb":[0.866666666666666696,0.333333333333333315,0.66666666666666663],"xyz":[0.403214122435626543,0.247736577017956455,0.406897909599678698],"hpluv":[334.018383993549605,191.225239227061849,56.8542178605490278],"hsluv":[334.018383993549605,67.3075554564469485,56.8542178605490278]},"#dd55bb":{"lch":[57.5200884026389332,87.9206422548043633,324.375348896731964],"luv":[57.5200884026389332,71.4663144117056817,-51.2113780219251638],"rgb":[0.866666666666666696,0.333333333333333315,0.733333333333333282],"xyz":[0.420351714542963217,0.254591613860891242,0.497155894698320444],"hpluv":[324.375348896731964,193.959311397505388,57.5200884026389332],"hsluv":[324.375348896731964,69.5366313504716,57.5200884026389332]},"#dd55cc":{"lch":[58.2555317670128829,92.5910381182408315,315.474469199465034],"luv":[58.2555317670128829,66.0116746837007895,-64.9273374262858596],"rgb":[0.866666666666666696,0.333333333333333315,0.8],"xyz":[0.439644089986684916,0.262308564038380043,0.5987624053685906],"hpluv":[315.474469199465034,201.683843426221756,58.2555317670128829],"hsluv":[315.474469199465034,71.7082017587958802,58.2555317670128829]},"#dd55dd":{"lch":[59.0590075291469532,99.2700295618383848,307.715012949244056],"luv":[59.0590075291469532,60.7268860008133231,-78.5288742174016363],"rgb":[0.866666666666666696,0.333333333333333315,0.866666666666666696],"xyz":[0.461162415537318515,0.270915894258633549,0.712092253268596598],"hpluv":[307.715012949244056,213.290412049590259,59.0590075291469532],"hsluv":[307.715012949244056,73.7919865345850923,59.0590075291469532]},"#dd55ee":{"lch":[59.9285380001613674,107.447476486145689,301.201070052482692],"luv":[59.9285380001613674,55.6624113436061592,-91.905691698915],"rgb":[0.866666666666666696,0.333333333333333315,0.933333333333333348],"xyz":[0.484974595803493225,0.280440766365103566,0.837503069337119821],"hpluv":[301.201070052482692,227.510719406260364,59.9285380001613674],"hsluv":[301.201070052482692,84.9240358585231405,59.9285380001613674]},"#dd55ff":{"lch":[60.8617852443614,116.651127585902827,295.843561463814751],"luv":[60.8617852443614,50.8500320114402413,-104.984569397117028],"rgb":[0.866666666666666696,0.333333333333333315,1],"xyz":[0.511145644213324646,0.29090918572903629,0.975337257628901666],"hpluv":[295.843561463814751,243.211205533984923,60.8617852443614],"hsluv":[295.843561463814751,99.9999999999987,60.8617852443614]},"#dd6600":{"lch":[56.9556719941368783,111.624872970007345,27.247071009398578],"luv":[56.9556719941368783,99.2390381331236568,51.1050445257873349],"rgb":[0.866666666666666696,0.4,0],"xyz":[0.345692913517341105,0.248772985779996625,0.0298144579478569621],"hpluv":[27.247071009398578,248.69286407076,56.9556719941368783],"hsluv":[27.247071009398578,100.000000000002402,56.9556719941368783]},"#dd6611":{"lch":[56.9952083090352204,110.431802069127656,26.6846840374429064],"luv":[56.9952083090352204,98.6698726856829325,49.5927326573774181],"rgb":[0.866666666666666696,0.4,0.0666666666666666657],"xyz":[0.346704579016978209,0.249177651979851478,0.0351425629126125919],"hpluv":[26.6846840374429064,245.864111809588593,56.9952083090352204],"hsluv":[26.6846840374429064,97.4289366186781,56.9952083090352204]},"#dd6622":{"lch":[57.0683850250612181,108.280332786330632,25.6245441521289443],"luv":[57.0683850250612181,97.630674939023308,46.8282156319165637],"rgb":[0.866666666666666696,0.4,0.133333333333333331],"xyz":[0.348579937155455266,0.249927795235242306,0.0450194491085917914],"hpluv":[25.6245441521289443,240.764984433182946,57.0683850250612181],"hsluv":[25.6245441521289443,92.7369917538900239,57.0683850250612181]},"#dd6633":{"lch":[57.1885511035567617,104.905985735707603,23.8291565941278485],"luv":[57.1885511035567617,95.9631904105633566,42.3831561992078036],"rgb":[0.866666666666666696,0.4,0.2],"xyz":[0.351667687887912972,0.251162895528225405,0.0612816029662029346],"hpluv":[23.8291565941278485,232.771873337598265,57.1885511035567617],"hsluv":[23.8291565941278485,85.2149281001260306,57.1885511035567617]},"#dd6644":{"lch":[57.3613500282636153,100.395707721520722,21.1283100845564071],"luv":[57.3613500282636153,93.6466609873464222,36.1884099516133162],"rgb":[0.866666666666666696,0.4,0.266666666666666663],"xyz":[0.356125683132131887,0.252946093625912971,0.0847603779190895801],"hpluv":[21.1283100845564071,222.093121414046323,57.3613500282636153],"hsluv":[21.1283100845564071,74.7790089775498785,57.3613500282636153]},"#dd6655":{"lch":[57.5911977652478555,95.0134939889914136,17.3206113628181804],"luv":[57.5911977652478555,90.7049894048208927,28.2872575034667619],"rgb":[0.866666666666666696,0.4,0.333333333333333315],"xyz":[0.362088097171493872,0.255331059241657832,0.116162425193063482],"hpluv":[17.3206113628181804,209.347849744778358,57.5911977652478555],"hsluv":[17.3206113628181804,61.5516693045169205,57.5911977652478555]},"#dd6666":{"lch":[57.8815358558834703,89.2064417623026742,12.1770506300619559],"luv":[57.8815358558834703,87.1993378887650579,18.8166076552624659],"rgb":[0.866666666666666696,0.4,0.4],"xyz":[0.369673092945002058,0.25836505755106115,0.156110069600207457],"hpluv":[12.1770506300619559,195.566965385494854,57.8815358558834703],"hsluv":[12.1770506300619559,60.6635523422702,57.8815358558834703]},"#dd6677":{"lch":[58.2349645673757834,83.6008411979688901,5.48003957367995387],"luv":[58.2349645673757834,83.2187459143753188,7.98379467713524704],"rgb":[0.866666666666666696,0.4,0.466666666666666674],"xyz":[0.378987105965203963,0.262090662759141946,0.205163871506605366],"hpluv":[5.48003957367995387,182.165511808695555,58.2349645673757834],"hsluv":[5.48003957367995387,61.6238417996400329,58.2349645673757834]},"#dd6688":{"lch":[58.6533262634944208,78.9686504698842,357.125632416080862],"luv":[58.6533262634944208,78.8692993006444,-3.95997283577995],"rgb":[0.866666666666666696,0.4,0.533333333333333326],"xyz":[0.390127523067147763,0.266546829599919544,0.263836734910177506],"hpluv":[357.125632416080862,170.8446551494321,58.6533262634944208],"hsluv":[357.125632416080862,62.6596910240402778,58.6533262634944208]},"#dd6699":{"lch":[59.1377678367746853,76.1279623836736192,347.292482429378936],"luv":[59.1377678367746853,74.2632604984211184,-16.746187531306056],"rgb":[0.866666666666666696,0.4,0.6],"xyz":[0.403184487176220463,0.271769615243548701,0.332603412551295441],"hpluv":[347.292482429378936,163.349798950832565,59.1377678367746853],"hsluv":[347.292482429378936,63.7390009960191435,59.1377678367746853]},"#dd66aa":{"lch":[59.6887956605557406,75.751758533498986,336.577260120739709],"luv":[59.6887956605557406,69.5095811529117,-30.1122408476074845],"rgb":[0.866666666666666696,0.4,0.66666666666666663],"xyz":[0.418242180141473,0.277792692429649823,0.411907262168294042],"hpluv":[336.577260120739709,161.042027442088397,59.6887956605557406],"hsluv":[336.577260120739709,64.8305690383666473,59.6887956605557406]},"#dd66bb":{"lch":[60.3063295400458372,78.1477005551706,325.894443158435308],"luv":[60.3063295400458372,64.706761589723726,-43.8189240697585518],"rgb":[0.866666666666666696,0.4,0.733333333333333282],"xyz":[0.435379772248809693,0.284647729272584582,0.502165247266935788],"hpluv":[325.894443158435308,164.434383230317081,60.3063295400458372],"hsluv":[325.894443158435308,65.9059953936301213,60.3063295400458372]},"#dd66cc":{"lch":[60.9897585015337427,83.1712006992562891,316.109248272524042],"luv":[60.9897585015337427,59.9384091909213694,-57.6613885491638314],"rgb":[0.866666666666666696,0.4,0.8],"xyz":[0.454672147692531392,0.292364679450073384,0.603771757937205944],"hpluv":[316.109248272524042,173.043537218511,60.9897585015337427],"hsluv":[316.109248272524042,66.9408479310096709,60.9897585015337427]},"#dd66dd":{"lch":[61.7379991889007158,90.3518241723814555,307.715012949244283],"luv":[61.7379991889007158,55.2713135142553753,-71.4740094977595675],"rgb":[0.866666666666666696,0.4,0.866666666666666696],"xyz":[0.476190473243165,0.30097200967032689,0.717101605837211942],"hpluv":[307.715012949244283,185.705044478150711,61.7379991889007158],"hsluv":[307.715012949244283,67.9151328937623759,61.7379991889007158]},"#dd66ee":{"lch":[62.5495564285741779,99.1126076890086125,300.803780654240427],"luv":[62.5495564285741779,50.7555210146825431,-85.1304063742412183],"rgb":[0.866666666666666696,0.4,0.933333333333333348],"xyz":[0.500002653509339701,0.310496881776796907,0.842512421905735165],"hpluv":[300.803780654240427,201.068480083703747,62.5495564285741779],"hsluv":[300.803780654240427,83.670703518064812,62.5495564285741779]},"#dd66ff":{"lch":[63.4225848554444696,108.928953372808309,295.226788235463459],"luv":[63.4225848554444696,46.4257694276883512,-98.5401685402585628],"rgb":[0.866666666666666696,0.4,1],"xyz":[0.526173701919171122,0.320965301140729631,0.980346610197517],"hpluv":[295.226788235463459,217.940889521273107,63.4225848554444696],"hsluv":[295.226788235463459,99.9999999999986073,63.4225848554444696]},"#dd7700":{"lch":[60.3985006876916088,102.209421710697811,33.6568691403047779],"luv":[60.3985006876916088,85.0762157619203,56.6463008330327753],"rgb":[0.866666666666666696,0.466666666666666674,0],"xyz":[0.364146651570758706,0.285680461886832382,0.0359657039656626626],"hpluv":[33.6568691403047779,214.735624532269611,60.3985006876916088],"hsluv":[33.6568691403047779,100.000000000002245,60.3985006876916088]},"#dd7711":{"lch":[60.4345564785723894,101.058408313912437,33.1281817520222],"luv":[60.4345564785723894,84.6313647704988,55.2298287886556736],"rgb":[0.866666666666666696,0.466666666666666674,0.0666666666666666657],"xyz":[0.36515831707039581,0.286085128086687235,0.0412938089304182923],"hpluv":[33.1281817520222,212.190746676882327,60.4345564785723894],"hsluv":[33.1281817520222,97.7465438968969238,60.4345564785723894]},"#dd7722":{"lch":[60.5013044729937803,98.9745052833742136,32.1281810047412648],"luv":[60.5013044729937803,83.8175940663154364,52.6361436754539582],"rgb":[0.866666666666666696,0.466666666666666674,0.133333333333333331],"xyz":[0.367033675208872867,0.286835271342078035,0.0511706951263974918],"hpluv":[32.1281810047412648,207.585936448863947,60.5013044729937803],"hsluv":[32.1281810047412648,93.6262478826975126,60.5013044729937803]},"#dd7733":{"lch":[60.6109510167574115,95.6833141687104813,30.4242910043150516],"luv":[60.6109510167574115,82.5076313520097813,48.4539717565960331],"rgb":[0.866666666666666696,0.466666666666666674,0.2],"xyz":[0.370121425941330573,0.288070371635061162,0.067432848984008642],"hpluv":[30.4242910043150516,200.320058173129354,60.6109510167574115],"hsluv":[30.4242910043150516,86.9991150080846722,60.6109510167574115]},"#dd7744":{"lch":[60.7687036553482756,91.2360291121886888,27.8356422373186483],"luv":[60.7687036553482756,80.6791699404734857,42.6014617809804932],"rgb":[0.866666666666666696,0.466666666666666674,0.266666666666666663],"xyz":[0.374579421185549488,0.289853569732748728,0.0909116239368952805],"hpluv":[27.8356422373186483,190.513488615549676,60.7687036553482756],"hsluv":[27.8356422373186483,77.760618312285672,60.7687036553482756]},"#dd7755":{"lch":[60.9786842032445122,85.8448802225428125,24.131655223886618],"luv":[60.9786842032445122,78.3427622472179479,35.096368243717265],"rgb":[0.866666666666666696,0.466666666666666674,0.333333333333333315],"xyz":[0.380541835224911473,0.292238535348493589,0.122313671210869182],"hpluv":[24.131655223886618,178.63875223296418,60.9786842032445122],"hsluv":[24.131655223886618,65.9765814384596894,60.9786842032445122]},"#dd7766":{"lch":[61.2441632046235895,79.8999585154359693,19.0216316495787474],"luv":[61.2441632046235895,75.5370685872685073,26.0414024201977448],"rgb":[0.866666666666666696,0.466666666666666674,0.4],"xyz":[0.388126830998419659,0.295272533657896907,0.162261315618013158],"hpluv":[19.0216316495787474,165.546946717194828,61.2441632046235895],"hsluv":[19.0216316495787474,57.9572057581871576,61.2441632046235895]},"#dd7777":{"lch":[61.5676827516498122,73.9875996712566,12.1770506300619097],"luv":[61.5676827516498122,72.3229127387857318,15.6064473244910626],"rgb":[0.866666666666666696,0.466666666666666674,0.466666666666666674],"xyz":[0.397440844018621564,0.298998138865977703,0.211315117524411067],"hpluv":[12.1770506300619097,152.491436777287873,61.5676827516498122],"hsluv":[12.1770506300619097,58.8480912007490744,61.5676827516498122]},"#dd7788":{"lch":[61.9511315612573,68.8928540500868252,3.33484257213660307],"luv":[61.9511315612573,68.7761927043778769,4.00757485979294081],"rgb":[0.866666666666666696,0.466666666666666674,0.533333333333333326],"xyz":[0.408581261120565364,0.303454305706755301,0.269987980927983207],"hpluv":[3.33484257213660307,141.112101622994089,61.9511315612573],"hsluv":[3.33484257213660307,59.8177792812577849,61.9511315612573]},"#dd7799":{"lch":[62.395798681375723,65.5359342889949659,352.534540584191575],"luv":[62.395798681375723,64.9804103256140309,-8.5149842657693231],"rgb":[0.866666666666666696,0.466666666666666674,0.6],"xyz":[0.421638225229638119,0.308677091350384458,0.338754658569101141],"hpluv":[352.534540584191575,133.27953643418,62.395798681375723],"hsluv":[352.534540584191575,60.8378233331756135,62.395798681375723]},"#dd77aa":{"lch":[62.9024183325334576,64.7691926058513587,340.409048511657261],"luv":[62.9024183325334576,61.0197310981447743,-21.7172909803219412],"rgb":[0.866666666666666696,0.466666666666666674,0.66666666666666663],"xyz":[0.43669591819489062,0.314700168536485581,0.418058508186099742],"hpluv":[340.409048511657261,130.659342151792146,62.9024183325334576],"hsluv":[340.409048511657261,61.8795186032410598,62.9024183325334576]},"#dd77bb":{"lch":[63.4712121738611472,67.0588140204747,328.168414880738283],"luv":[63.4712121738611472,56.973307333119962,-35.3684434115847779],"rgb":[0.866666666666666696,0.466666666666666674,0.733333333333333282],"xyz":[0.453833510302227294,0.321555205379420339,0.508316493284741489],"hpluv":[328.168414880738283,134.065922948238125,63.4712121738611472],"hsluv":[328.168414880738283,62.9156692244191049,63.4712121738611472]},"#dd77cc":{"lch":[64.1019320742502856,72.2937871392105649,317.045265551381931],"luv":[64.1019320742502856,52.9112642996390861,-49.2624580095555586],"rgb":[0.866666666666666696,0.466666666666666674,0.8],"xyz":[0.473125885745949049,0.329272155556909141,0.609923003955011644],"hpluv":[317.045265551381931,143.109736775843601,64.1019320742502856],"hsluv":[317.045265551381931,63.9218174738772262,64.1019320742502856]},"#dd77dd":{"lch":[64.7939046430230547,79.9242419089019904,307.715012949244624],"luv":[64.7939046430230547,48.8924033620837761,-63.225132172198613],"rgb":[0.866666666666666696,0.466666666666666674,0.866666666666666696],"xyz":[0.494644211296582537,0.337879485777162647,0.723252851855017642],"hpluv":[307.715012949244624,156.524995415635317,64.7939046430230547],"hsluv":[307.715012949244624,64.8769154463944,64.7939046430230547]},"#dd77ee":{"lch":[65.5460776792256,89.2673698488479772,300.244676230176196],"luv":[65.5460776792256,44.9634126652007424,-77.116501743983946],"rgb":[0.866666666666666696,0.466666666666666674,0.933333333333333348],"xyz":[0.518456391562757357,0.347404357883632664,0.848663667923540865],"hpluv":[300.244676230176196,172.816560464305326,65.5460776792256],"hsluv":[300.244676230176196,82.07388698168063,65.5460776792256]},"#dd77ff":{"lch":[66.3570680439545,99.7204006423648366,294.377473048092611],"luv":[66.3570680439545,41.1592308753033436,-90.8299290874281837],"rgb":[0.866666666666666696,0.466666666666666674,1],"xyz":[0.544627439972588667,0.357872777247565388,0.98649785621532271],"hpluv":[294.377473048092611,190.693615319177383,66.3570680439545],"hsluv":[294.377473048092611,99.9999999999983373,66.3570680439545]},"#dd8800":{"lch":[64.1467534130096766,94.4821411478558701,41.4445641191571781],"luv":[64.1467534130096766,70.8234804869986192,62.5372657508392],"rgb":[0.866666666666666696,0.533333333333333326,0],"xyz":[0.386219021295729159,0.329825201336773954,0.0433231605406526124],"hpluv":[41.4445641191571781,186.902182331454583,64.1467534130096766],"hsluv":[41.4445641191571781,100.000000000002416,64.1467534130096766]},"#dd8811":{"lch":[64.1795176641247593,93.3565504581455,40.9755438084832377],"luv":[64.1795176641247593,70.4832194968749235,61.2173282886440333],"rgb":[0.866666666666666696,0.533333333333333326,0.0666666666666666657],"xyz":[0.387230686795366263,0.330229867536628807,0.0486512655054082421],"hpluv":[40.9755438084832377,184.581288668542754,64.1795176641247593],"hsluv":[40.9755438084832377,98.0366401848460072,64.1795176641247593]},"#dd8822":{"lch":[64.2401831232140665,91.3094921720035444,40.0852847486271529],"luv":[64.2401831232140665,69.8596876954725303,58.7966614341343359],"rgb":[0.866666666666666696,0.533333333333333326,0.133333333333333331],"xyz":[0.38910604493384332,0.330980010792019608,0.0585281517013874417],"hpluv":[40.0852847486271529,180.363429125237786,64.2401831232140665],"hsluv":[40.0852847486271529,94.440421143342,64.2401831232140665]},"#dd8833":{"lch":[64.3398685532121704,88.0506151089842319,38.5586382769189342],"luv":[64.3398685532121704,68.8529964065635,54.8832916916272],"rgb":[0.866666666666666696,0.533333333333333326,0.2],"xyz":[0.392193795666301,0.332215111085002734,0.0747903055589985849],"hpluv":[38.5586382769189342,173.656703033806934,64.3398685532121704],"hsluv":[38.5586382769189342,88.6389494712849171,64.3398685532121704]},"#dd8844":{"lch":[64.4833562447751376,83.590391105324656,36.2144134416389392],"luv":[64.4833562447751376,67.4417066096926305,49.3859260793323571],"rgb":[0.866666666666666696,0.533333333333333326,0.266666666666666663],"xyz":[0.396651790910519941,0.333998309182690301,0.0982690805118852234],"hpluv":[36.2144134416389392,164.493238171948974,64.4833562447751376],"hsluv":[36.2144134416389392,80.515719620269337,64.4833562447751376]},"#dd8855":{"lch":[64.6744699451661234,78.0792033713498768,32.8038905377638059],"luv":[64.6744699451661234,65.6278986079903746,42.3006019272060527],"rgb":[0.866666666666666696,0.533333333333333326,0.333333333333333315],"xyz":[0.402614204949881926,0.336383274798435161,0.129671127785859125],"hpluv":[32.8038905377638059,153.194023310958244,64.6744699451661234],"hsluv":[32.8038905377638059,70.0933757373770874,64.6744699451661234]},"#dd8866":{"lch":[64.9162913059566762,71.8298791231791114,27.9793586637294176],"luv":[64.9162913059566762,63.4341634455056251,33.69923504798588],"rgb":[0.866666666666666696,0.533333333333333326,0.4],"xyz":[0.410199200723390112,0.33941727310783848,0.169618772193003087],"hpluv":[27.9793586637294176,140.40764710249897,64.9162913059566762],"hsluv":[27.9793586637294176,57.516131894534638,64.9162913059566762]},"#dd8877":{"lch":[65.211273186305,65.3549274640793243,21.2774014292581],"luv":[65.211273186305,60.8999714810578325,23.7162395299384023],"rgb":[0.866666666666666696,0.533333333333333326,0.466666666666666674],"xyz":[0.419513213743592,0.343142878315919275,0.218672574099401],"hpluv":[21.2774014292581,127.173019810527066,65.211273186305],"hsluv":[21.2774014292581,55.3192807564291797,65.211273186305]},"#dd8888":{"lch":[65.5613077882642585,59.4140252364257222,12.17705063006205],"luv":[65.5613077882642585,58.0772370198051675,12.5323954190731097],"rgb":[0.866666666666666696,0.533333333333333326,0.533333333333333326],"xyz":[0.430653630845535818,0.347599045156696873,0.277345437502973191],"hpluv":[12.17705063006205,114.995459986814794,65.5613077882642585],"hsluv":[12.17705063006205,56.217054427929,65.5613077882642585]},"#dd8899":{"lch":[65.9677735951440809,55.0265961591163304,0.371909902430330563],"luv":[65.9677735951440809,55.0254369244830599,0.357178006339119947],"rgb":[0.866666666666666696,0.533333333333333326,0.6],"xyz":[0.443710594954608517,0.352821830800326031,0.34611211514409107],"hpluv":[0.371909902430330563,105.847388780281833,65.9677735951440809],"hsluv":[0.371909902430330563,57.1692646853200088,65.9677735951440809]},"#dd88aa":{"lch":[66.4315725960282,53.3143351650078756,346.342357286170909],"luv":[66.4315725960282,51.8068159744011751,-12.5885723051236678],"rgb":[0.866666666666666696,0.533333333333333326,0.66666666666666663],"xyz":[0.458768287919861073,0.358844907986427153,0.425415964761089671],"hpluv":[346.342357286170909,101.837748961685463,66.4315725960282],"hsluv":[346.342357286170909,58.1497775423036174,66.4315725960282]},"#dd88bb":{"lch":[66.9531637379342754,55.0554122119122695,331.715662007953938],"luv":[66.9531637379342754,48.482176665295448,-26.0878699709014299],"rgb":[0.866666666666666696,0.533333333333333326,0.733333333333333282],"xyz":[0.475905880027197747,0.365699944829361911,0.515673949859731473],"hpluv":[331.715662007953938,104.344182679937973,66.9531637379342754],"hsluv":[331.715662007953938,59.1328526037280824,66.9531637379342754]},"#dd88cc":{"lch":[67.5325957217288391,60.2482932018326949,318.477460357427788],"luv":[67.5325957217288391,45.1075955230381,-39.9394749572899741],"rgb":[0.866666666666666696,0.533333333333333326,0.8],"xyz":[0.495198255470919446,0.373416895006850713,0.617280460530001629],"hpluv":[318.477460357427788,113.206309259525241,67.5325957217288391],"hsluv":[318.477460357427788,60.0943355072680134,67.5325957217288391]},"#dd88dd":{"lch":[68.1695406599531566,68.219499196860184,307.715012949245079],"luv":[68.1695406599531566,41.7322103060295,-53.965940125636024],"rgb":[0.866666666666666696,0.533333333333333326,0.866666666666666696],"xyz":[0.516716581021553,0.382024225227104219,0.730610308430007627],"hpluv":[307.715012949245079,126.986480244117786,68.1695406599531566],"hsluv":[307.715012949245079,61.0124281772922785,68.1695406599531566]},"#dd88ee":{"lch":[68.8633291469121,78.1074456653267504,299.445313850889818],"luv":[68.8633291469121,38.3970440138518896,-68.0179393936650456],"rgb":[0.866666666666666696,0.533333333333333326,0.933333333333333348],"xyz":[0.540528761287727755,0.391549097333574236,0.85602112449853085],"hpluv":[299.445313850889818,143.92748858218269,68.8633291469121],"hsluv":[299.445313850889818,80.0342386911036385,68.8633291469121]},"#dd88ff":{"lch":[69.6129866887261244,89.1875622693819281,293.199992160066699],"luv":[69.6129866887261244,35.1347073752451706,-81.975445111391565],"rgb":[0.866666666666666696,0.533333333333333326,1],"xyz":[0.566699809697559176,0.40201751669750696,0.993855312790312695],"hpluv":[293.199992160066699,162.574846632166981,69.6129866887261244],"hsluv":[293.199992160066699,99.9999999999981242,69.6129866887261244]},"#dd9900":{"lch":[68.1357569139589287,89.1370219700488775,50.3810095729648921],"luv":[68.1357569139589287,56.8408371488252229,68.6624199829113735],"rgb":[0.866666666666666696,0.6,0],"xyz":[0.41208862174819666,0.381564402241709621,0.0519463606914748674],"hpluv":[50.3810095729648921,166.005456049637957,68.1357569139589287],"hsluv":[50.3810095729648921,100.000000000002245,68.1357569139589287]},"#dd9911":{"lch":[68.1654896561650077,88.0318570495471278,50.0002977758109424],"luv":[68.1654896561650077,56.5854364905009248,67.4366089951992507],"rgb":[0.866666666666666696,0.6,0.0666666666666666657],"xyz":[0.413100287247833764,0.381969068441564474,0.0572744656562305],"hpluv":[50.0002977758109424,163.875726960716179,68.1654896561650077],"hsluv":[50.0002977758109424,98.2940371374324826,68.1654896561650077]},"#dd9922":{"lch":[68.2205507365204,86.012937831153792,49.27558445879027],"luv":[68.2205507365204,56.1166821435168472,65.1854543556261774],"rgb":[0.866666666666666696,0.6,0.133333333333333331],"xyz":[0.414975645386310821,0.382719211696955275,0.0671513518522096897],"hpluv":[49.27558445879027,159.988175949224541,68.2205507365204],"hsluv":[49.27558445879027,95.1643810214000325,68.2205507365204]},"#dd9933":{"lch":[68.3110514885433133,82.7730333151944677,48.0261582829398179],"luv":[68.3110514885433133,55.3578808500206918,61.5376313485756867],"rgb":[0.866666666666666696,0.6,0.2],"xyz":[0.418063396118768527,0.383954311989938402,0.0834135057098208399],"hpluv":[48.0261582829398179,153.757824966526499,68.3110514885433133],"hsluv":[48.0261582829398179,90.1021642959546512,68.3110514885433133]},"#dd9944":{"lch":[68.4413718194248,78.2806718730308688,46.0898611008159875],"luv":[68.4413718194248,54.2899414547091936,56.3956190296495805],"rgb":[0.866666666666666696,0.6,0.266666666666666663],"xyz":[0.422521391362987442,0.385737510087625968,0.106892280662707478],"hpluv":[46.0898611008159875,145.136005207448051,68.4413718194248],"hsluv":[46.0898611008159875,82.9860784920926449,68.4413718194248]},"#dd9955":{"lch":[68.615044439797245,72.617894762441864,43.2298844404699452],"luv":[68.615044439797245,52.9102318436571935,49.7379734808277689],"rgb":[0.866666666666666696,0.6,0.333333333333333315],"xyz":[0.428483805402349427,0.388122475703370828,0.138294327936681394],"hpluv":[43.2298844404699452,134.296171447129637,68.615044439797245],"hsluv":[43.2298844404699452,73.8078183466747362,68.615044439797245]},"#dd9966":{"lch":[68.8349542760461333,65.9999398631214262,39.0839575312566296],"luv":[68.8349542760461333,51.2306688139135815,41.6102227200810404],"rgb":[0.866666666666666696,0.6,0.4],"xyz":[0.436068801175857612,0.391156474012774147,0.178241972343825356],"hpluv":[39.0839575312566296,121.667290932950721,68.8349542760461333],"hsluv":[39.0839575312566296,62.6592399312796076,68.8349542760461333]},"#dd9977":{"lch":[69.1034430542988929,58.8170492635600723,33.0939178586399834],"luv":[69.1034430542988929,49.2755524050587468,32.1148753578207291],"rgb":[0.866666666666666696,0.6,0.466666666666666674],"xyz":[0.445382814196059518,0.394882079220854942,0.227295774250223265],"hpluv":[33.0939178586399834,108.004754244465147,69.1034430542988929],"hsluv":[33.0939178586399834,50.7393036295826789,69.1034430542988929]},"#dd9988":{"lch":[69.4223715869125328,51.7141196395305656,24.4437159362198635],"luv":[69.4223715869125328,47.0788901370553745,21.3992587150758773],"rgb":[0.866666666666666696,0.6,0.533333333333333326],"xyz":[0.456523231298003318,0.39933824606163254,0.285968637653795432],"hpluv":[24.4437159362198635,94.5255072345235305,69.4223715869125328],"hsluv":[24.4437159362198635,51.5589665528693786,69.4223715869125328]},"#dd9999":{"lch":[69.7931614924381591,45.7097919546320597,12.1770506300622632],"luv":[69.7931614924381591,44.6813426781189875,9.64171649740066705],"rgb":[0.866666666666666696,0.6,0.6],"xyz":[0.469580195407076073,0.404561031705261698,0.354735315294913311],"hpluv":[12.1770506300622632,83.1066353202273689,69.7931614924381591],"hsluv":[12.1770506300622632,52.4335711570844438,69.7931614924381591]},"#dd99aa":{"lch":[70.2168268189972196,42.2311183685245624,355.977290330288042],"luv":[70.2168268189972196,42.1270745474506256,-2.96259155636920823],"rgb":[0.866666666666666696,0.6,0.66666666666666663],"xyz":[0.484637888372328574,0.41058410889136282,0.434039164911911912],"hpluv":[355.977290330288042,76.3186553239153369,70.2168268189972196],"hsluv":[355.977290330288042,53.3392978779897788,70.2168268189972196]},"#dd99bb":{"lch":[70.694001085559151,42.6623948649138427,337.661645838825223],"luv":[70.694001085559151,39.4608168046039651,-16.2149274658665163],"rgb":[0.866666666666666696,0.6,0.733333333333333282],"xyz":[0.501775480479665248,0.417439145734297579,0.524297150010553659],"hpluv":[337.661645838825223,76.5776430619999502,70.694001085559151],"hsluv":[337.661645838825223,54.2517942883204398,70.694001085559151]},"#dd99cc":{"lch":[71.2249627580945912,47.3730793907595,320.82657583403028],"luv":[71.2249627580945912,36.7253906259007294,-29.9241430008982121],"rgb":[0.866666666666666696,0.6,0.8],"xyz":[0.521067855923387,0.42515609591178638,0.625903660680823815],"hpluv":[320.82657583403028,84.3992741769230719,71.2249627580945912],"hsluv":[320.82657583403028,55.1472527266246075,71.2249627580945912]},"#dd99dd":{"lch":[71.8096607795551876,55.5140341348433424,307.715012949246],"luv":[71.8096607795551876,33.9598410238411077,-43.9151133843462844],"rgb":[0.866666666666666696,0.6,0.866666666666666696],"xyz":[0.54258618147402049,0.433763426132039887,0.739233508580829812],"hpluv":[307.715012949246,98.0977936102115677,71.8096607795551876],"hsluv":[307.715012949246,56.0031828352742878,71.8096607795551876]},"#dd99ee":{"lch":[72.447740927007942,65.8885644567307907,298.26171852853804],"luv":[72.447740927007942,31.1982236173053273,-58.0342465212858656],"rgb":[0.866666666666666696,0.6,0.933333333333333348],"xyz":[0.566398361740195311,0.443288298238509904,0.864644324649353],"hpluv":[298.26171852853804,115.404973126410823,72.447740927007942],"hsluv":[298.26171852853804,77.3800261839098908,72.447740927007942]},"#dd99ff":{"lch":[73.1385732331520302,77.5656763031263,291.532620718417377],"luv":[73.1385732331520302,28.4689992262389602,-72.1522710898123592],"rgb":[0.866666666666666696,0.6,1],"xyz":[0.592569410150026621,0.453756717602442627,1.00247851294113488],"hpluv":[291.532620718417377,134.574391894016571,73.1385732331520302],"hsluv":[291.532620718417377,99.9999999999977689,73.1385732331520302]},"#cc0000":{"lch":[42.5207510295766156,142.998625281495549,12.1770506300617818],"luv":[42.5207510295766156,139.781222041964895,30.163169542547891],"rgb":[0.8,0,0],"xyz":[0.249012838889184379,0.128397245052238429,0.0116724768229302719],"hpluv":[12.1770506300617818,426.746789183124861,42.5207510295766156],"hsluv":[12.1770506300617818,100.000000000002174,42.5207510295766156]},"#cc0011":{"lch":[42.5821659889152784,141.236718626044905,11.4841194603559],"luv":[42.5821659889152784,138.409148973409117,28.119711390930437],"rgb":[0.8,0,0.0666666666666666657],"xyz":[0.250024504388821511,0.128801911252093282,0.0170005817876859033],"hpluv":[11.4841194603559,420.880880123779207,42.5821659889152784],"hsluv":[11.4841194603559,99.9999999999964331,42.5821659889152784]},"#cc0022":{"lch":[42.6956735686566518,138.114600243667155,10.1872609469282853],"luv":[42.6956735686566518,135.937217546775798,24.4277646564013864],"rgb":[0.8,0,0.133333333333333331],"xyz":[0.251899862527298513,0.12955205450748411,0.0268774679836651],"hpluv":[10.1872609469282853,410.482879191578036,42.6956735686566518],"hsluv":[10.1872609469282853,99.9999999999964615,42.6956735686566518]},"#cc0033":{"lch":[42.881611378965772,133.362165770655935,8.01952044887972626],"luv":[42.881611378965772,132.057963211529,18.6054188736068511],"rgb":[0.8,0,0.2],"xyz":[0.254987613259756274,0.130787154800467209,0.0431396218412762461],"hpluv":[8.01952044887972626,394.639788400466045,42.881611378965772],"hsluv":[8.01952044887972626,99.9999999999966604,42.881611378965772]},"#cc0044":{"lch":[43.1480085091585153,127.29097956278504,4.82801781999359658],"luv":[43.1480085091585153,126.839328429887985,10.7134607624411853],"rgb":[0.8,0,0.266666666666666663],"xyz":[0.259445608503975134,0.132570352898154803,0.0666183967941628846],"hpluv":[4.82801781999359658,374.34858804079829,43.1480085091585153],"hsluv":[4.82801781999359658,99.9999999999967741,43.1480085091585153]},"#cc0055":{"lch":[43.5005971125795,120.485699890795146,0.473888563816867114],"luv":[43.5005971125795,120.481578818580687,0.996515708296922487],"rgb":[0.8,0,0.333333333333333315],"xyz":[0.265408022543337119,0.134955318513899636,0.0980204440681367861],"hpluv":[0.473888563816867114,351.463000970195878,43.5005971125795],"hsluv":[0.473888563816867114,99.999999999997,43.5005971125795]},"#cc0066":{"lch":[43.9431844272177372,113.726547538665841,354.863826263116096],"luv":[43.9431844272177372,113.269906269789104,-10.1811565500985228],"rgb":[0.8,0,0.4],"xyz":[0.272993018316845304,0.137989316823302927,0.137968088475280748],"hpluv":[354.863826263116096,328.404920869645196,43.9431844272177372],"hsluv":[354.863826263116096,99.9999999999972857,43.9431844272177372]},"#cc0077":{"lch":[44.4778741065655,107.874648109024193,348.012259047653401],"luv":[44.4778741065655,105.522124609829902,-22.4058234053856609],"rgb":[0.8,0,0.466666666666666674],"xyz":[0.28230703133704721,0.14171492203138375,0.187021890381678657],"hpluv":[348.012259047653401,307.761788629886667,44.4778741065655],"hsluv":[348.012259047653401,99.9999999999975273,44.4778741065655]},"#cc0088":{"lch":[45.1052440924579,103.725434836726933,340.1176986346278],"luv":[45.1052440924579,97.5426962017022703,-35.2758876538989838],"rgb":[0.8,0,0.533333333333333326],"xyz":[0.293447448438991065,0.146171088872161348,0.245694753785250825],"hpluv":[340.1176986346278,291.808241377507443,45.1052440924579],"hsluv":[340.1176986346278,99.9999999999978,45.1052440924579]},"#cc0099":{"lch":[45.8245205562958589,101.850048541314862,331.598662995615],"luv":[45.8245205562958589,89.5911194129305102,-48.4444394147173441],"rgb":[0.8,0,0.6],"xyz":[0.306504412548063765,0.151393874515790505,0.314461431426368732],"hpluv":[331.598662995615,282.034759885138044,45.8245205562958589],"hsluv":[331.598662995615,99.9999999999981,45.8245205562958589]},"#cc00aa":{"lch":[46.633760692471931,102.477609530343315,323.022725489580409],"luv":[46.633760692471931,81.8667129915779,-61.640098629123905],"rgb":[0.8,0,0.66666666666666663],"xyz":[0.321562105513316321,0.1574169517018916,0.393765281043367332],"hpluv":[323.022725489580409,278.848217687739293,46.633760692471931],"hsluv":[323.022725489580409,99.9999999999983658,46.633760692471931]},"#cc00bb":{"lch":[47.5300446684938933,105.484027274260768,314.937463984289479],"luv":[47.5300446684938933,74.5070162947061903,-74.6698368342758414],"rgb":[0.8,0,0.733333333333333282],"xyz":[0.33869969762065294,0.164271988544826358,0.484023266142009079],"hpluv":[314.937463984289479,281.616311803476265,47.5300446684938933],"hsluv":[314.937463984289479,99.9999999999986,47.5300446684938933]},"#cc00cc":{"lch":[48.5096711653281147,110.497164945278598,307.715012949243601],"luv":[48.5096711653281147,67.5949102529980621,-87.4102486487325],"rgb":[0.8,0,0.8],"xyz":[0.357992073064374694,0.17198893872231516,0.585629776812279235],"hpluv":[307.715012949243601,289.042783730483393,48.5096711653281147],"hsluv":[307.715012949243601,99.9999999999988,48.5096711653281147]},"#cc00dd":{"lch":[49.5683488162236614,117.049051317219835,301.506761454082039],"luv":[49.5683488162236614,61.1697383356450075,-99.7935044289451],"rgb":[0.8,0,0.866666666666666696],"xyz":[0.379510398615008238,0.180596268942568694,0.698959624712285232],"hpluv":[301.506761454082039,299.64205877637869,49.5683488162236614],"hsluv":[301.506761454082039,99.9999999999990337,49.5683488162236614]},"#cc00ee":{"lch":[50.7013760136427862,124.695255359169607,296.294949026353493],"luv":[50.7013760136427862,55.2390203059142522,-111.792474454818787],"rgb":[0.8,0,0.933333333333333348],"xyz":[0.403322578881182947,0.190121141049038739,0.824370440780808456],"hpluv":[296.294949026353493,312.082566880879938,50.7013760136427862],"hsluv":[296.294949026353493,99.99999999999919,50.7013760136427862]},"#cc00ff":{"lch":[51.9038030272213,133.072735088441448,291.971633700566258],"luv":[51.9038030272213,49.7888328026579075,-123.407556300526],"rgb":[0.8,0,1],"xyz":[0.429493627291014368,0.200589560412971435,0.962204629072590301],"hpluv":[291.971633700566258,325.333832743425603,51.9038030272213],"hsluv":[291.971633700566258,99.9999999999993321,51.9038030272213]},"#cc1100":{"lch":[43.1235624482234172,140.134259476931788,12.8715382160273855],"luv":[43.1235624482234172,136.61296213687416,31.2171307992428524],"rgb":[0.8,0.0666666666666666657,0],"xyz":[0.251017239150112814,0.132406045574095299,0.0123406102432397219],"hpluv":[12.8715382160273855,412.352867097941,43.1235624482234172],"hsluv":[12.8715382160273855,100.000000000002245,43.1235624482234172]},"#cc1111":{"lch":[43.1837333530957892,138.41807101963343,12.1770506300617676],"luv":[43.1837333530957892,135.303728142340162,29.196978192614182],"rgb":[0.8,0.0666666666666666657,0.0666666666666666657],"xyz":[0.252028904649749919,0.132810711773950152,0.0176687152079953516],"hpluv":[12.1770506300617676,406.735363437937394,43.1837333530957892],"hsluv":[12.1770506300617676,95.3107026807431197,43.1837333530957892]},"#cc1122":{"lch":[43.294951674171287,135.375047793376126,10.8766574447476163],"luv":[43.294951674171287,132.943125696930394,25.5446451333550044],"rgb":[0.8,0.0666666666666666657,0.133333333333333331],"xyz":[0.253904262788227,0.13356085502934098,0.0275456014039745511],"hpluv":[10.8766574447476163,396.771701832449367,43.294951674171287],"hsluv":[10.8766574447476163,95.396390587568618,43.294951674171287]},"#cc1133":{"lch":[43.4771672841157724,130.73841758888139,8.7012157385065958],"luv":[43.4771672841157724,129.233706917218683,19.7783424502448213],"rgb":[0.8,0.0666666666666666657,0.2],"xyz":[0.256992013520684681,0.134795955322324079,0.0438077552615856944],"hpluv":[8.7012157385065958,381.576227833431062,43.4771672841157724],"hsluv":[8.7012157385065958,95.5308510527687389,43.4771672841157724]},"#cc1144":{"lch":[43.7382910834512586,124.807582872189826,5.49437317543092796],"luv":[43.7382910834512586,124.234167693991893,11.9500761411646046],"rgb":[0.8,0.0666666666666666657,0.266666666666666663],"xyz":[0.261450008764903596,0.136579153420011673,0.0672865302144723398],"hpluv":[5.49437317543092796,362.091632024479338,43.7382910834512586],"hsluv":[5.49437317543092796,95.7116850897169229,43.7382910834512586]},"#cc1155":{"lch":[44.0840061747103107,118.151091154502552,1.11194247693657511],"luv":[44.0840061747103107,118.128842001262925,2.29282106589917234],"rgb":[0.8,0.0666666666666666657,0.333333333333333315],"xyz":[0.267412422804265582,0.138964119035756506,0.0986885774884462413],"hpluv":[1.11194247693657511,340.091681007194666,44.0840061747103107],"hsluv":[1.11194247693657511,95.9318436200579754,44.0840061747103107]},"#cc1166":{"lch":[44.5181325219627837,111.53522478210337,355.453854482233226],"luv":[44.5181325219627837,111.184314904818763,-8.84050260677650712],"rgb":[0.8,0.0666666666666666657,0.4],"xyz":[0.274997418577773767,0.141998117345159797,0.138636221895590217],"hpluv":[355.453854482233226,317.917500588946211,44.5181325219627837],"hsluv":[355.453854482233226,96.1812476973727115,44.5181325219627837]},"#cc1177":{"lch":[45.0428415016287857,105.814757555455103,348.528515458334311],"luv":[45.0428415016287857,103.700981473984271,-21.0444614531261323],"rgb":[0.8,0.0666666666666666657,0.466666666666666674],"xyz":[0.284311431597975672,0.14572372255324062,0.187690023801988126],"hpluv":[348.528515458334311,298.098498005115459,45.0428415016287857],"hsluv":[348.528515458334311,96.4486017572014589,45.0428415016287857]},"#cc1188":{"lch":[45.6588256994622341,101.788242110562607,340.533613155211185],"luv":[45.6588256994622341,95.9697371205835594,-33.9213176183443323],"rgb":[0.8,0.0666666666666666657,0.533333333333333326],"xyz":[0.295451848699919473,0.150179889394018218,0.246362887205560266],"hpluv":[340.533613155211185,282.886487347344485,45.6588256994622341],"hsluv":[340.533613155211185,96.7230145871901215,45.6588256994622341]},"#cc1199":{"lch":[46.3654632546324876,100.035938879036408,331.896400713626349],"luv":[46.3654632546324876,88.2414291467186,-47.1236591273953138],"rgb":[0.8,0.0666666666666666657,0.6],"xyz":[0.308508812808992228,0.155402675037647375,0.315129564846678201],"hpluv":[331.896400713626349,273.779405248492822,46.3654632546324876],"hsluv":[331.896400713626349,96.9951405388504355,46.3654632546324876]},"#cc11aa":{"lch":[47.1609900317596882,100.794975336059878,323.201580807901109],"luv":[47.1609900317596882,80.7113646178594735,-60.3763420100941488],"rgb":[0.8,0.0666666666666666657,0.66666666666666663],"xyz":[0.323566505774244728,0.16142575222374847,0.394433414463676801],"hpluv":[323.201580807901109,271.203503720358924,47.1609900317596882],"hsluv":[323.201580807901109,97.2577546113476075,47.1609900317596882]},"#cc11bb":{"lch":[48.0426807208370548,103.942897448445919,315.013990059648165],"luv":[48.0426807208370548,73.5166718264647727,-73.4807790754699681],"rgb":[0.8,0.0666666666666666657,0.733333333333333282],"xyz":[0.340704097881581403,0.168280789066683228,0.484691399562318548],"hpluv":[315.013990059648165,274.540811344802705,48.0426807208370548],"hsluv":[315.013990059648165,97.5058443216483,48.0426807208370548]},"#cc11cc":{"lch":[49.0070341259591515,109.103198367120783,307.715012949243601],"luv":[49.0070341259591515,66.7421730285370387,-86.3075328888743769],"rgb":[0.8,0.0666666666666666657,0.8],"xyz":[0.359996473325303157,0.17599773924417203,0.586297910232588704],"hpluv":[307.715012949243601,282.499958642668389,49.0070341259591515],"hsluv":[307.715012949243601,97.7363817897909541,49.0070341259591515]},"#cc11dd":{"lch":[50.0499556366759037,115.801352096543823,301.456118533327128],"luv":[50.0499556366759037,60.4304023076134555,-98.7831950502093292],"rgb":[0.8,0.0666666666666666657,0.866666666666666696],"xyz":[0.381514798875936645,0.184605069464425564,0.699627758132594701],"hpluv":[301.456118533327128,293.595408819402792,50.0499556366759037],"hsluv":[301.456118533327128,97.9479403979501342,50.0499556366759037]},"#cc11ee":{"lch":[51.1669298024285837,123.587345912593733,296.214453457233276],"luv":[51.1669298024285837,54.5925079172689109,-110.876012505059137],"rgb":[0.8,0.0666666666666666657,0.933333333333333348],"xyz":[0.40532697914211141,0.194129941570895609,0.825038574201117925],"hpluv":[296.214453457233276,306.495409047480564,51.1669298024285837],"hsluv":[296.214453457233276,98.1402788193950215,51.1669298024285837]},"#cc11ff":{"lch":[52.3531771468210678,132.094610043027387,291.87590029388349],"luv":[52.3531771468210678,49.2181193296501576,-122.582881072651375],"rgb":[0.8,0.0666666666666666657,1],"xyz":[0.431498027551942775,0.204598360934828305,0.96287276249289977],"hpluv":[291.87590029388349,320.170549145207644,52.3531771468210678],"hsluv":[291.87590029388349,99.9999999999991189,52.3531771468210678]},"#cc2200":{"lch":[44.2095884480383674,135.132222138307952,14.1797238149512133],"luv":[44.2095884480383674,131.015027118873576,33.102569825888537],"rgb":[0.8,0.133333333333333331,0],"xyz":[0.254732862884880729,0.139837293043631267,0.0135791514881623328],"hpluv":[14.1797238149512133,387.866054960954045,44.2095884480383674],"hsluv":[14.1797238149512133,100.00000000000226,44.2095884480383674]},"#cc2211":{"lch":[44.2676114068871129,133.490625771231663,13.482935392010976],"luv":[44.2676114068871129,129.81154471696064,31.1241068464871375],"rgb":[0.8,0.133333333333333331,0.0666666666666666657],"xyz":[0.255744528384517833,0.14024195924348612,0.0189072564529179643],"hpluv":[13.482935392010976,382.652016671578622,44.2676114068871129],"hsluv":[13.482935392010976,95.5414705532830197,44.2676114068871129]},"#cc2222":{"lch":[44.3748759613401162,130.576558981694717,12.1770506300617747],"luv":[44.3748759613401162,127.638646515421286,27.5429423121666019],"rgb":[0.8,0.133333333333333331,0.133333333333333331],"xyz":[0.25761988652299489,0.140992102498876948,0.0287841426488971604],"hpluv":[12.1770506300617747,373.394050741154899,44.3748759613401162],"hsluv":[12.1770506300617747,87.4977996802062847,44.3748759613401162]},"#cc2233":{"lch":[44.5506596541482907,126.128431434884163,9.98899557195718657],"luv":[44.5506596541482907,124.216461430809,21.8781152257824267],"rgb":[0.8,0.133333333333333331,0.2],"xyz":[0.260707637255452596,0.142227202791860047,0.0450462965065083071],"hpluv":[9.98899557195718657,359.251162664680805,44.5506596541482907],"hsluv":[9.98899557195718657,87.8457930667704829,44.5506596541482907]},"#cc2244":{"lch":[44.8026641682027602,120.425301369152351,6.75586226508684629],"luv":[44.8026641682027602,119.589119356054482,14.1667124448306829],"rgb":[0.8,0.133333333333333331,0.266666666666666663],"xyz":[0.265165632499671511,0.144010400889547641,0.0685250714593949456],"hpluv":[6.75586226508684629,341.077623618219945,44.8026641682027602],"hsluv":[6.75586226508684629,88.3153597242729,44.8026641682027602]},"#cc2255":{"lch":[45.136480402373536,114.008772215671115,2.323188749975583],"luv":[45.136480402373536,113.915065115628011,4.62148047999889577],"rgb":[0.8,0.133333333333333331,0.333333333333333315],"xyz":[0.271128046539033496,0.146395366505292474,0.0999271187333688471],"hpluv":[2.323188749975583,320.51614012782295,45.136480402373536],"hsluv":[2.323188749975583,88.8894607126765663,45.136480402373536]},"#cc2266":{"lch":[45.5559407124691731,107.622008592458101,356.577515499379103],"luv":[45.5559407124691731,107.430062323442542,-6.42483016556681452],"rgb":[0.8,0.133333333333333331,0.4],"xyz":[0.278713042312541681,0.149429364814695764,0.139874763140512809],"hpluv":[356.577515499379103,299.774992396016216,45.5559407124691731],"hsluv":[356.577515499379103,89.543058875786258,45.5559407124691731]},"#cc2277":{"lch":[46.0633224094211542,102.110102175352239,349.514816334356908],"luv":[46.0633224094211542,100.405067655344695,-18.5821246198201955],"rgb":[0.8,0.133333333333333331,0.466666666666666674],"xyz":[0.288027055332743587,0.153154970022776588,0.188928565046910718],"hpluv":[349.514816334356908,281.289018816444,46.0633224094211542],"hsluv":[349.514816334356908,90.2475430222303174,46.0633224094211542]},"#cc2288":{"lch":[46.6595045299101443,98.2790088680822294,341.330158110485115],"luv":[46.6595045299101443,93.107459692013677,-31.4605234189234864],"rgb":[0.8,0.133333333333333331,0.533333333333333326],"xyz":[0.299167472434687387,0.157611136863554185,0.247601428450482886],"hpluv":[341.330158110485115,267.276005324070297,46.6595045299101443],"hsluv":[341.330158110485115,90.9748001704168,46.6595045299101443]},"#cc2299":{"lch":[47.3441166442187154,96.727251962869147,332.467163788405],"luv":[47.3441166442187154,85.772509513995189,-44.7128380217581167],"rgb":[0.8,0.133333333333333331,0.6],"xyz":[0.312224436543760087,0.162833922507183343,0.31636810609160082],"hpluv":[332.467163788405,259.252025571181889,47.3441166442187154],"hsluv":[332.467163788405,91.7002075152857259,47.3441166442187154]},"#cc22aa":{"lch":[48.1156936783416285,97.7076198445846131,323.544141865814368],"luv":[48.1156936783416285,78.5876931080813534,-58.0581903579838254],"rgb":[0.8,0.133333333333333331,0.66666666666666663],"xyz":[0.327282129509012643,0.168856999693284437,0.395671955708599421],"hpluv":[323.544141865814368,257.680176436907345,48.1156936783416285],"hsluv":[323.544141865814368,92.4042695013683328,48.1156936783416285]},"#cc22bb":{"lch":[48.9718390817589295,101.100583268181566,315.160199675634601],"luv":[48.9718390817589295,71.6885121422158846,-71.2887450022924867],"rgb":[0.8,0.133333333333333331,0.733333333333333282],"xyz":[0.344419721616349317,0.175712036536219196,0.485929940807241167],"hpluv":[315.160199675634601,261.96699229126267,48.9718390817589295],"hsluv":[315.160199675634601,93.0730408422972602,48.9718390817589295]},"#cc22cc":{"lch":[49.9093929354593513,106.520702596514482,307.715012949243658],"luv":[49.9093929354593513,65.1623716831421405,-84.2646153393173876],"rgb":[0.8,0.133333333333333331,0.8],"xyz":[0.363712097060071,0.183428986713708,0.587536451477511323],"hpluv":[307.715012949243658,270.826440261226253,49.9093929354593513],"hsluv":[307.715012949243658,93.6976999618693327,49.9093929354593513]},"#cc22dd":{"lch":[50.9245991417877377,113.480326695625976,301.360030221234524],"luv":[50.9245991417877377,59.0567580516805819,-96.9024451465042347],"rgb":[0.8,0.133333333333333331,0.866666666666666696],"xyz":[0.385230422610704615,0.192036316933961532,0.700866299377517321],"hpluv":[301.360030221234524,282.769318292038,50.9245991417877377],"hsluv":[301.360030221234524,94.2736696463096848,50.9245991417877377]},"#cc22ee":{"lch":[52.0132654143591964,121.518329969744158,296.062236941936249],"luv":[52.0132654143591964,53.3887372455597244,-109.162022947361166],"rgb":[0.8,0.133333333333333331,0.933333333333333348],"xyz":[0.409042602876879324,0.201561189040431576,0.826277115446040544],"hpluv":[296.062236941936249,296.460610812118318,52.0132654143591964],"hsluv":[296.062236941936249,94.7995997265514,52.0132654143591964]},"#cc22ff":{"lch":[53.170910599170611,130.261070707018604,291.695402941657903],"luv":[53.170910599170611,48.1538976563848422,-121.033667556747687],"rgb":[0.8,0.133333333333333331,1],"xyz":[0.435213651286710745,0.212029608404364273,0.964111303737822389],"hpluv":[291.695402941657903,310.870757963074425,53.170910599170611],"hsluv":[291.695402941657903,99.9999999999990621,53.170910599170611]},"#cc3300":{"lch":[45.9167915379707807,127.686226573765651,16.3911473443809399],"luv":[45.9167915379707807,122.496750231663356,36.0321889333482446],"rgb":[0.8,0.2,0],"xyz":[0.260850584973891519,0.15207273722165307,0.0156183921844992128],"hpluv":[16.3911473443809399,352.867650162608584,45.9167915379707807],"hsluv":[16.3911473443809399,100.000000000002288,45.9167915379707807]},"#cc3311":{"lch":[45.9716631772740811,126.14350976506573,15.6923563051461095],"luv":[45.9716631772740811,121.44186843726601,34.118289029712578],"rgb":[0.8,0.2,0.0666666666666666657],"xyz":[0.261862250473528624,0.152477403421507923,0.020946497149254846],"hpluv":[15.6923563051461095,348.188177538365835,45.9716631772740811],"hsluv":[15.6923563051461095,95.8756509753329595,45.9716631772740811]},"#cc3322":{"lch":[46.0731243265426613,123.399991281457972,14.3806932854006604],"luv":[46.0731243265426613,119.533487768482047,30.6480529588105668],"rgb":[0.8,0.2,0.133333333333333331],"xyz":[0.263737608612005681,0.153227546676898752,0.0308233833452340386],"hpluv":[14.3806932854006604,339.865273437066321,46.0731243265426613],"hsluv":[14.3806932854006604,88.4197842587317524,46.0731243265426613]},"#cc3333":{"lch":[46.2394596481243951,119.199958247304309,12.1770506300617924],"luv":[46.2394596481243951,116.518014060345578,25.1432385661076303],"rgb":[0.8,0.2,0.2],"xyz":[0.266825359344463386,0.154462646969881851,0.0470855372028451818],"hpluv":[12.1770506300617924,327.11667224844831,46.2394596481243951],"hsluv":[12.1770506300617924,76.6535755019082,46.2394596481243951]},"#cc3344":{"lch":[46.4780522046582405,113.793717346871745,8.90746564227168669],"luv":[46.4780522046582405,112.421330819758609,17.6197186224449389],"rgb":[0.8,0.2,0.266666666666666663],"xyz":[0.271283354588682302,0.156245845067569444,0.0705643121557318204],"hpluv":[8.90746564227168669,310.677421508065,46.4780522046582405],"hsluv":[8.90746564227168669,77.4930753906613887,46.4780522046582405]},"#cc3355":{"lch":[46.7943405275181661,107.68493286266704,4.39945159143432907],"luv":[46.7943405275181661,107.367637754253522,8.26045572038872855],"rgb":[0.8,0.2,0.333333333333333315],"xyz":[0.277245768628044287,0.158630810683314277,0.101966359429705736],"hpluv":[4.39945159143432907,292.012160158640199,46.7943405275181661],"hsluv":[4.39945159143432907,78.5258346284665265,46.7943405275181661]},"#cc3366":{"lch":[47.192153202602185,101.584765682520938,358.514989280316684],"luv":[47.192153202602185,101.55064731932022,-2.63261235272558647],"rgb":[0.8,0.2,0.4],"xyz":[0.284830764401552472,0.161664808992717568,0.141914003836849684],"hpluv":[358.514989280316684,273.148057687163259,47.192153202602185],"hsluv":[358.514989280316684,79.7102211537212781,47.192153202602185]},"#cc3377":{"lch":[47.6738975277608859,96.3272258277819589,351.225603296168742],"luv":[47.6738975277608859,95.1998742335289876,-14.6941614798792699],"rgb":[0.8,0.2,0.466666666666666674],"xyz":[0.294144777421754378,0.165390414200798391,0.190967805743247593],"hpluv":[351.225603296168742,256.39391915093114,47.6738975277608859],"hsluv":[351.225603296168742,80.9972134637005894,47.6738975277608859]},"#cc3388":{"lch":[48.2406991607903279,92.7347249941698095,342.718318936463845],"luv":[48.2406991607903279,88.5482927213948301,-27.5486674064369161],"rgb":[0.8,0.2,0.533333333333333326],"xyz":[0.305285194523698178,0.169846581041576,0.24964066914681976],"hpluv":[342.718318936463845,243.93163202064531,48.2406991607903279],"hsluv":[342.718318936463845,82.3372641433758758,48.2406991607903279]},"#cc3399":{"lch":[48.8925304323200436,91.4400639314067405,333.463846826874658],"luv":[48.8925304323200436,81.8070942553503926,-40.8519843003490877],"rgb":[0.8,0.2,0.6],"xyz":[0.318342158632770933,0.175069366685205147,0.318407346787937695],"hpluv":[333.463846826874658,237.319449797121564,48.8925304323200436],"hsluv":[333.463846826874658,83.6856508008112,48.8925304323200436]},"#cc33aa":{"lch":[49.6283419748853873,92.7248127600779242,324.141487451800515],"luv":[49.6283419748853873,75.1503095778714254,-54.3168654447363792],"rgb":[0.8,0.2,0.66666666666666663],"xyz":[0.333399851598023433,0.181092443871306241,0.397711196404936296],"hpluv":[324.141487451800515,237.085790295602294,49.6283419748853873],"hsluv":[324.141487451800515,85.0057245198840263,49.6283419748853873]},"#cc33bb":{"lch":[50.4462014889725054,96.4744776262418355,315.414049480091705],"luv":[50.4462014889725054,68.7089492450233905,-67.7230029377097],"rgb":[0.8,0.2,0.733333333333333282],"xyz":[0.350537443705360108,0.187947480714241,0.487969181503578042],"hpluv":[315.414049480091705,242.674024226837219,50.4462014889725054],"hsluv":[315.414049480091705,86.2701296035756258,50.4462014889725054]},"#cc33cc":{"lch":[51.3434379695087273,102.286811532428814,307.715012949243771],"luv":[51.3434379695087273,62.5723551280607779,-80.915339628518268],"rgb":[0.8,0.2,0.8],"xyz":[0.369829819149081862,0.195664430891729801,0.589575692173848198],"hpluv":[307.715012949243771,252.798225898109365,51.3434379695087273],"hsluv":[307.715012949243771,87.4604868647498,51.3434379695087273]},"#cc33dd":{"lch":[52.3167871114961827,109.649949983538605,301.195256028086874],"luv":[52.3167871114961827,56.7938698017029751,-93.7953510806358],"rgb":[0.8,0.2,0.866666666666666696],"xyz":[0.39134814469971535,0.204271761111983335,0.702905540073854196],"hpluv":[301.195256028086874,265.954105752122757,52.3167871114961827],"hsluv":[301.195256028086874,88.5661577004671,52.3167871114961827]},"#cc33ee":{"lch":[53.3625327970638494,118.082474280319559,295.802769884900215],"luv":[53.3625327970638494,51.3983045372134626,-106.309383512755787],"rgb":[0.8,0.2,0.933333333333333348],"xyz":[0.415160324965890115,0.21379663321845338,0.828316356142377419],"hpluv":[295.802769884900215,280.794331636146467,53.3625327970638494],"hsluv":[295.802769884900215,89.5826266077864375,53.3625327970638494]},"#cc33ff":{"lch":[54.4766398815527566,127.197777570935344,291.389330811727291],"luv":[54.4766398815527566,46.3894624378335,-118.436870921660102],"rgb":[0.8,0.2,1],"xyz":[0.441331373375721481,0.224265052582386076,0.966150544434159264],"hpluv":[291.389330811727291,296.284230666095709,54.4766398815527566],"hsluv":[291.389330811727291,99.9999999999990195,54.4766398815527566]},"#cc4400":{"lch":[48.2269914221542848,118.435883841274119,19.7039935064818295],"luv":[48.2269914221542848,111.501113106022,39.9319465764175447],"rgb":[0.8,0.266666666666666663,0],"xyz":[0.26968315545685756,0.1697378781875854,0.0185625823454878096],"hpluv":[19.7039935064818295,311.625122342549162,48.2269914221542848],"hsluv":[19.7039935064818295,100.000000000002174,48.2269914221542848]},"#cc4411":{"lch":[48.2779913635395,116.996103035931512,19.0066631306561966],"luv":[48.2779913635395,110.617558299276112,38.1030697123021],"rgb":[0.8,0.266666666666666663,0.0666666666666666657],"xyz":[0.270694820956494664,0.170142544387440253,0.0238906873102434428],"hpluv":[19.0066631306561966,307.511619232155283,48.2779913635395],"hsluv":[19.0066631306561966,96.278384876640132,48.2779913635395]},"#cc4422":{"lch":[48.3723181772035389,114.428966114904512,17.6946931608209894],"luv":[48.3723181772035389,109.015290220227484,34.7800917814421453],"rgb":[0.8,0.266666666666666663,0.133333333333333331],"xyz":[0.272570179094971721,0.170892687642831081,0.0337675735062226354],"hpluv":[17.6946931608209894,300.177682052924467,48.3723181772035389],"hsluv":[17.6946931608209894,89.5341066932624869,48.3723181772035389]},"#cc4433":{"lch":[48.5270263662828114,110.48209503335984,15.4815426750504042],"luv":[48.5270263662828114,106.473417017787412,29.4907577304601034],"rgb":[0.8,0.266666666666666663,0.2],"xyz":[0.275657929827429427,0.17212778793581418,0.0500297273638337786],"hpluv":[15.4815426750504042,288.900004133964501,48.5270263662828114],"hsluv":[15.4815426750504042,78.8475327486048,48.5270263662828114]},"#cc4444":{"lch":[48.7490888960709725,105.371058014361893,12.1770506300618457],"luv":[48.7490888960709725,103.000257716521162,22.2262632351064191],"rgb":[0.8,0.266666666666666663,0.266666666666666663],"xyz":[0.280115925071648342,0.173910986033501774,0.0735085023167204171],"hpluv":[12.1770506300618457,274.28001464324592,48.7490888960709725],"hsluv":[12.1770506300618457,64.2723089184284788,48.7490888960709725]},"#cc4455":{"lch":[49.0437296069087,99.5540950311582691,7.58056168126664254],"luv":[49.0437296069087,98.6840273694228074,13.1331861946711772],"rgb":[0.8,0.266666666666666663,0.333333333333333315],"xyz":[0.286078339111010327,0.176295951649246607,0.104910549590694333],"hpluv":[7.58056168126664254,257.581676799067395,49.0437296069087],"hsluv":[7.58056168126664254,65.7689369270132858,49.0437296069087]},"#cc4466":{"lch":[49.4147368002801244,93.7049448509207679,1.51289058041819868],"luv":[49.4147368002801244,93.6722802728102835,2.47398423725391092],"rgb":[0.8,0.266666666666666663,0.4],"xyz":[0.293663334884518512,0.179329949958649898,0.14485819399783828],"hpluv":[1.51289058041819868,240.627550105868352,49.4147368002801244],"hsluv":[1.51289058041819868,67.500804726855,49.4147368002801244]},"#cc4477":{"lch":[49.8646356184384132,88.6490107187132566,353.900159994018],"luv":[49.8646356184384132,88.1471013723349586,-9.41995865499641383],"rgb":[0.8,0.266666666666666663,0.466666666666666674],"xyz":[0.302977347904720418,0.183055555166730721,0.19391199590423619],"hpluv":[353.900159994018,225.590377060975072,49.8646356184384132],"hsluv":[353.900159994018,69.4017616341687784,49.8646356184384132]},"#cc4488":{"lch":[50.3948096201307436,85.2405150759366279,344.907000147604322],"luv":[50.3948096201307436,82.3000967091543743,-22.1954835963269055],"rgb":[0.8,0.266666666666666663,0.533333333333333326],"xyz":[0.314117765006664218,0.187511722007508319,0.252584859307808385],"hpluv":[344.907000147604322,214.634525667930632,50.3948096201307436],"hsluv":[344.907000147604322,71.4025087995354824,50.3948096201307436]},"#cc4499":{"lch":[51.0056074652318046,84.1718897613591679,335.041688295241613],"luv":[51.0056074652318046,76.3115014820887581,-35.5170630478867793],"rgb":[0.8,0.266666666666666663,0.6],"xyz":[0.327174729115737,0.192734507651137477,0.321351536948926264],"hpluv":[335.041688295241613,209.40569084337892,51.0056074652318046],"hsluv":[335.041688295241613,73.4381222823911344,51.0056074652318046]},"#cc44aa":{"lch":[51.6964496814969152,85.7749410926589348,325.085448007895536],"luv":[51.6964496814969152,70.3360122964612913,-49.093644127128691],"rgb":[0.8,0.266666666666666663,0.66666666666666663],"xyz":[0.342232422080989473,0.198757584837238571,0.400655386565924865],"hpluv":[325.085448007895536,210.542141790665795,51.6964496814969152],"hsluv":[325.085448007895536,75.4531429469973602,51.6964496814969152]},"#cc44bb":{"lch":[52.465940673938249,89.9444778306290829,315.812454406659811],"luv":[52.465940673938249,64.4957791941851326,-62.692133145710109],"rgb":[0.8,0.266666666666666663,0.733333333333333282],"xyz":[0.359370014188326148,0.20561262168017333,0.490913371664566611],"hpluv":[315.812454406659811,217.538619181736436,52.465940673938249],"hsluv":[315.812454406659811,77.4040753157756143,52.465940673938249]},"#cc44cc":{"lch":[53.3119860408958175,96.2498903650287758,307.715012949243885],"luv":[53.3119860408958175,58.8793631430003828,-76.1397530279337502],"rgb":[0.8,0.266666666666666663,0.8],"xyz":[0.378662389632047902,0.213329571857662131,0.592519882334836767],"hpluv":[307.715012949243885,229.094523932317799,53.3119860408958175],"hsluv":[307.715012949243885,79.2597279113993,53.3119860408958175]},"#cc44dd":{"lch":[54.2319126329379486,104.138844540210442,300.941773361922515],"luv":[54.2319126329379486,53.5447276840333259,-89.31887303035586],"rgb":[0.8,0.266666666666666663,0.866666666666666696],"xyz":[0.40018071518268139,0.221936902077915665,0.705849730234842765],"hpluv":[300.941773361922515,243.66724889744043,54.2319126329379486],"hsluv":[300.941773361922515,81.0000946003390538,54.2319126329379486]},"#cc44ee":{"lch":[55.2225876682288401,113.096616320403683,295.407423092027],"luv":[55.2225876682288401,48.5243479249087528,-102.157879194837463],"rgb":[0.8,0.266666666666666663,0.933333333333333348],"xyz":[0.423992895448856155,0.23146177418438571,0.831260546303366],"hpluv":[295.407423092027,259.879597148300718,55.2225876682288401],"hsluv":[295.407423092027,86.8652077390175634,55.2225876682288401]},"#cc44ff":{"lch":[56.2805330741479537,122.715491745326418,290.92682559337851],"luv":[56.2805330741479537,43.8309487146615382,-114.62085259266739],"rgb":[0.8,0.266666666666666663,1],"xyz":[0.450163943858687521,0.241930193548318406,0.969094734595147833],"hpluv":[290.92682559337851,276.681751484143376,56.2805330741479537],"hsluv":[290.92682559337851,99.9999999999989768,56.2805330741479537]},"#cc5500":{"lch":[51.07852272981998,108.355754132896138,24.3337665629108457],"luv":[51.07852272981998,98.7294936728878838,44.6481414260866],"rgb":[0.8,0.333333333333333315,0],"xyz":[0.281496412171203525,0.193364391616277664,0.0225003345836030169],"hpluv":[24.3337665629108457,269.186315008697875,51.07852272981998],"hsluv":[24.3337665629108457,100.000000000002217,51.07852272981998]},"#cc5511":{"lch":[51.1252833166066,107.003417336388864,23.6474066829241423],"luv":[51.1252833166066,98.0184651549503201,42.91983003616388],"rgb":[0.8,0.333333333333333315,0.0666666666666666657],"xyz":[0.282508077670840629,0.193769057816132517,0.0278284395483586466],"hpluv":[23.6474066829241423,265.583595811902,51.1252833166066],"hsluv":[23.6474066829241423,96.7082849697218307,51.1252833166066]},"#cc5522":{"lch":[51.2117930688627467,104.583581473170284,22.351909846807331],"luv":[51.2117930688627467,96.7257518395109486,39.7725337995530808],"rgb":[0.8,0.333333333333333315,0.133333333333333331],"xyz":[0.284383435809317686,0.194519201071523345,0.0377053257443378462],"hpluv":[22.351909846807331,259.139045481141636,51.2117930688627467],"hsluv":[22.351909846807331,90.7274756498525079,51.2117930688627467]},"#cc5533":{"lch":[51.3537468781662625,100.840694749975015,20.1540565840537802],"luv":[51.3537468781662625,94.6661789932146718,34.7442120716858369],"rgb":[0.8,0.333333333333333315,0.2],"xyz":[0.287471186541775392,0.195754301364506444,0.0539674796019489894],"hpluv":[20.1540565840537802,249.174169543579183,51.3537468781662625],"hsluv":[20.1540565840537802,81.2092815218714321,51.3537468781662625]},"#cc5544":{"lch":[51.5576456995760424,95.9504499860225764,16.842752904303623],"luv":[51.5576456995760424,91.8345174188591074,27.8012636936791502],"rgb":[0.8,0.333333333333333315,0.266666666666666663],"xyz":[0.291929181785994307,0.197537499462194038,0.0774462545548356279],"hpluv":[16.842752904303623,236.152889903020736,51.5576456995760424],"hsluv":[16.842752904303623,68.1451659970290109,51.5576456995760424]},"#cc5555":{"lch":[51.8284441386287114,90.3192908744292851,12.1770506300618919],"luv":[51.8284441386287114,88.2871484081680364,19.0513445723360242],"rgb":[0.8,0.333333333333333315,0.333333333333333315],"xyz":[0.297891595825356292,0.199922465077938871,0.108848301828809529],"hpluv":[12.1770506300618919,221.132040760117775,51.8284441386287114],"hsluv":[12.1770506300618919,51.8180912815801,51.8284441386287114]},"#cc5566":{"lch":[52.1698415772242612,84.57836719340618,5.91246023067467696],"luv":[52.1698415772242612,84.1284474176031836,8.71232071300305577],"rgb":[0.8,0.333333333333333315,0.4],"xyz":[0.305476591598864478,0.202956463387342162,0.148795946235953491],"hpluv":[5.91246023067467696,205.721226704565879,52.1698415772242612],"hsluv":[5.91246023067467696,54.0130370973951415,52.1698415772242612]},"#cc5577":{"lch":[52.5844387621358607,79.5477054283049654,357.892334615122479],"luv":[52.5844387621358607,79.493890006545314,-2.92555815796844554],"rgb":[0.8,0.333333333333333315,0.466666666666666674],"xyz":[0.314790604619066383,0.206682068595422985,0.1978497481423514],"hpluv":[357.892334615122479,191.959557587962337,52.5844387621358607],"hsluv":[357.892334615122479,56.4492590331968884,52.5844387621358607]},"#cc5588":{"lch":[53.0738428910491962,76.1348505840982,348.222799824086337],"luv":[53.0738428910491962,74.5321119975331072,-15.5396188708133902],"rgb":[0.8,0.333333333333333315,0.533333333333333326],"xyz":[0.325931021721010183,0.211138235436200583,0.256522611545923596],"hpluv":[348.222799824086337,182.029716109510787,53.0738428910491962],"hsluv":[348.222799824086337,59.0443947768825339,53.0738428910491962]},"#cc5599":{"lch":[53.6387547547300443,75.1322702050955655,337.451566852479516],"luv":[53.6387547547300443,69.3888374020903314,-28.8105409556599774],"rgb":[0.8,0.333333333333333315,0.6],"xyz":[0.338987985830082938,0.216361021079829741,0.325289289187041475],"hpluv":[337.451566852479516,177.740808472615271,53.6387547547300443],"hsluv":[337.451566852479516,61.7180151219793274,53.6387547547300443]},"#cc55aa":{"lch":[54.2790527162633651,76.9604755372169507,326.525055670409472],"luv":[54.2790527162633651,64.1948187783047359,-42.449264268479169],"rgb":[0.8,0.333333333333333315,0.66666666666666663],"xyz":[0.354045678795335439,0.222384098265930835,0.404593138804040076],"hpluv":[326.525055670409472,179.918080614224607,54.2790527162633651],"hsluv":[326.525055670409472,64.3982563598392517,54.2790527162633651]},"#cc55bb":{"lch":[54.9938795911038767,81.534325182187132,316.414019967357433],"luv":[54.9938795911038767,59.0586208757266817,-56.2132144888709888],"rgb":[0.8,0.333333333333333315,0.733333333333333282],"xyz":[0.371183270902672113,0.229239135108865594,0.494851123902681822],"hpluv":[316.414019967357433,188.133202867989326,54.9938795911038767],"hsluv":[316.414019967357433,67.0257727218245378,54.9938795911038767]},"#cc55cc":{"lch":[55.7817339145568667,88.3780574248019,307.715012949244169],"luv":[55.7817339145568667,54.0638926159085145,-69.9126351198200382],"rgb":[0.8,0.333333333333333315,0.8],"xyz":[0.390475646346393868,0.236956085286354395,0.596457634572952],"hpluv":[307.715012949244169,201.044301715196383,55.7817339145568667],"hsluv":[307.715012949244169,69.5552053299685156,55.7817339145568667]},"#cc55dd":{"lch":[56.6405645837994882,96.8744721490496232,300.570417552325068],"luv":[56.6405645837994882,49.2700598324241312,-83.4093793183137],"rgb":[0.8,0.333333333333333315,0.866666666666666696],"xyz":[0.411993971897027356,0.245563415506607929,0.709787482472958],"hpluv":[300.570417552325068,217.030665421015726,56.6405645837994882],"hsluv":[300.570417552325068,72.1703256475756234,56.6405645837994882]},"#cc55ee":{"lch":[57.5678665910353118,106.457154357221242,294.836459829444038],"luv":[57.5678665910353118,44.7151619549172707,-96.6109724885468],"rgb":[0.8,0.333333333333333315,0.933333333333333348],"xyz":[0.435806152163202121,0.255088287613077946,0.835198298541481199],"hpluv":[294.836459829444038,234.657286550118499,57.5678665910353118],"hsluv":[294.836459829444038,85.8995510844284809,57.5678665910353118]},"#cc55ff":{"lch":[58.560775097021633,116.686665261471418,290.266986003053091],"luv":[58.560775097021633,40.4196983751927874,-109.462440284789551],"rgb":[0.8,0.333333333333333315,1],"xyz":[0.461977200573033486,0.26555670697701067,0.973032486833263],"hpluv":[290.266986003053091,252.844632524376181,58.560775097021633],"hsluv":[290.266986003053091,99.9999999999988,58.560775097021633]},"#cc6600":{"lch":[54.388060759003551,98.5584029412379579,30.482787603130209],"luv":[54.388060759003551,84.9358174587045482,49.9966569177284157],"rgb":[0.8,0.4,0],"xyz":[0.29652446987705,0.223420507027971,0.0275096871522183678],"hpluv":[30.482787603130209,229.947880001204965,54.388060759003551],"hsluv":[30.482787603130209,100.000000000002359,54.388060759003551]},"#cc6611":{"lch":[54.430531479182676,97.2669366851907711,29.8266301777559697],"luv":[54.430531479182676,84.3824110244092367,48.3783596438383583],"rgb":[0.8,0.4,0.0666666666666666657],"xyz":[0.297536135376687105,0.223825173227825858,0.032837792116974],"hpluv":[29.8266301777559697,226.757672191171366,54.430531479182676],"hsluv":[29.8266301777559697,97.1300271864182463,54.430531479182676]},"#cc6622":{"lch":[54.5091256699603548,94.945229062596681,28.5830621108902889],"luv":[54.5091256699603548,83.3737269438019695,45.4248629854764],"rgb":[0.8,0.4,0.133333333333333331],"xyz":[0.299411493515164162,0.224575316483216686,0.0427146783129532],"hpluv":[28.5830621108902889,221.025945543219876,54.5091256699603548],"hsluv":[28.5830621108902889,91.902111940908739,54.5091256699603548]},"#cc6633":{"lch":[54.6381494647888388,91.324965774397,26.4577509745500876],"luv":[54.6381494647888388,81.7598754062496624,40.688722605278663],"rgb":[0.8,0.4,0.2],"xyz":[0.302499244247621868,0.225810416776199785,0.0589768321705643403],"hpluv":[26.4577509745500876,212.096187894217309,54.6381494647888388],"hsluv":[26.4577509745500876,83.5463344335908289,54.6381494647888388]},"#cc6644":{"lch":[54.8236025158742137,86.5353782352002,23.2174871910251],"luv":[54.8236025158742137,79.5273159773273903,34.1141861950638798],"rgb":[0.8,0.4,0.266666666666666663],"xyz":[0.306957239491840783,0.227593614873887379,0.0824556071234509858],"hpluv":[23.2174871910251,200.292852977212362,54.8236025158742137],"hsluv":[23.2174871910251,72.0055590941951635,54.8236025158742137]},"#cc6655":{"lch":[55.0701314820163077,80.921365039871,18.5706632184066578],"luv":[55.0701314820163077,76.7079190692017505,25.7713498286149552],"rgb":[0.8,0.4,0.333333333333333315],"xyz":[0.312919653531202768,0.229978580489632212,0.113857654397424887],"hpluv":[18.5706632184066578,186.460314881725708,55.0701314820163077],"hsluv":[18.5706632184066578,57.463707489477386,55.0701314820163077]},"#cc6666":{"lch":[55.3812986167643686,75.0592421503045841,12.1770506300619576],"luv":[55.3812986167643686,73.3704437553848834,15.8324923911544637],"rgb":[0.8,0.4,0.4],"xyz":[0.320504649304710953,0.233012578799035502,0.153805298804568835],"hpluv":[12.1770506300619576,171.980959079196282,55.3812986167643686],"hsluv":[12.1770506300619576,45.9214429163451925,55.3812986167643686]},"#cc6677":{"lch":[55.7597240294908403,69.7578535305897702,3.7339069954147126],"luv":[55.7597240294908403,69.6097753289024,4.54283037928401079],"rgb":[0.8,0.4,0.466666666666666674],"xyz":[0.329818662324912859,0.236738184007116326,0.202859100710966744],"hpluv":[3.7339069954147126,158.749300244695775,55.7597240294908403],"hsluv":[3.7339069954147126,47.4001946683844935,55.7597240294908403]},"#cc6688":{"lch":[56.2071770412836855,65.9988703650454198,353.20230012342131],"luv":[56.2071770412836855,65.534915505775615,-7.81189727997758432],"rgb":[0.8,0.4,0.533333333333333326],"xyz":[0.340959079426856659,0.241194350847893924,0.26153196411453894],"hpluv":[353.20230012342131,148.999240608904586,56.2071770412836855],"hsluv":[353.20230012342131,48.9818497710332537,56.2071770412836855]},"#cc6699":{"lch":[56.7246474757154573,64.7364860461136544,341.13073016495332],"luv":[56.7246474757154573,61.2574795353059756,-20.9364234428957907],"rgb":[0.8,0.4,0.6],"xyz":[0.354016043535929414,0.246417136491523081,0.330298641755656819],"hpluv":[341.13073016495332,144.81603174775961,56.7246474757154573],"hsluv":[341.13073016495332,50.615240188358726,56.7246474757154573]},"#cc66aa":{"lch":[57.3124110050500661,66.5536753014576874,328.724652687595039],"luv":[57.3124110050500661,56.882247269492467,-34.5514347271451925],"rgb":[0.8,0.4,0.66666666666666663],"xyz":[0.369073736501181915,0.252440213677624203,0.40960249137265542],"hpluv":[328.724652687595039,147.354258527000582,57.3124110050500661],"hsluv":[328.724652687595039,52.5782983823555057,57.3124110050500661]},"#cc66bb":{"lch":[57.9700950113726634,71.4140361316817831,317.320615294889421],"luv":[57.9700950113726634,52.5006394421278628,-48.4112323204526405],"rgb":[0.8,0.4,0.733333333333333282],"xyz":[0.386211328608518589,0.259295250520558962,0.499860476471297166],"hpluv":[317.320615294889421,156.321564636453559,57.9700950113726634],"hsluv":[317.320615294889421,55.7867325729046044,57.9700950113726634]},"#cc66cc":{"lch":[58.6967474031167882,78.7715159072838844,307.71501294924451],"luv":[58.6967474031167882,48.1872412824568599,-62.3132529717215391],"rgb":[0.8,0.4,0.8],"xyz":[0.405503704052240344,0.267012200698047764,0.601466987141567322],"hpluv":[307.71501294924451,170.292097080892688,58.6967474031167882],"hsluv":[307.71501294924451,58.9158791245518429,58.6967474031167882]},"#cc66dd":{"lch":[59.4909085631812928,87.9045601549668589,300.035118747227784],"luv":[59.4909085631812928,43.9989332886277964,-76.1006278916348151],"rgb":[0.8,0.4,0.866666666666666696],"xyz":[0.427022029602873832,0.27561953091830127,0.71479683504157332],"hpluv":[300.035118747227784,187.499506963343748,59.4909085631812928],"hsluv":[300.035118747227784,69.8010448945604907,59.4909085631812928]},"#cc66ee":{"lch":[60.3506853352839272,98.1678970647401314,294.030303780460372],"luv":[60.3506853352839272,39.9759075841908498,-89.6597057040320919],"rgb":[0.8,0.4,0.933333333333333348],"xyz":[0.450834209869048597,0.285144403024771287,0.840207651110096543],"hpluv":[294.030303780460372,206.408039079415715,60.3506853352839272],"hsluv":[294.030303780460372,84.6650997716967169,60.3506853352839272]},"#cc66ff":{"lch":[61.2738253236974799,109.076950193692937,289.351384827957531],"luv":[61.2738253236974799,36.143813792667018,-102.914555763887847],"rgb":[0.8,0.4,1],"xyz":[0.477005258278879962,0.295612822388704,0.978041839401878388],"hpluv":[289.351384827957531,225.890163025573315,61.2738253236974799],"hsluv":[289.351384827957531,99.9999999999987,61.2738253236974799]},"#cc7700":{"lch":[58.0681687130694684,90.1274111260576,38.2527636780657616],"luv":[58.0681687130694684,70.775890411238,55.8007488550273862],"rgb":[0.8,0.466666666666666674,0],"xyz":[0.314978207930467602,0.260327983134806762,0.0336609331700240683],"hpluv":[38.2527636780657616,196.95095583694345,58.0681687130694684],"hsluv":[38.2527636780657616,100.00000000000226,58.0681687130694684]},"#cc7711":{"lch":[58.1065272060428,88.8714225311590837,37.658223554494576],"luv":[58.1065272060428,70.356768805075,54.2959927252558288],"rgb":[0.8,0.466666666666666674,0.0666666666666666657],"xyz":[0.315989873430104706,0.260732649334661615,0.0389890381347797],"hpluv":[37.658223554494576,194.078102813960953,58.1065272060428],"hsluv":[37.658223554494576,97.5201736027742925,58.1065272060428]},"#cc7722":{"lch":[58.1775287784180364,86.6008188207648573,36.5262538454337786],"luv":[58.1775287784180364,69.5910513475594286,51.5440335321973748],"rgb":[0.8,0.466666666666666674,0.133333333333333331],"xyz":[0.317865231568581763,0.261482792590052415,0.0488659243307589],"hpluv":[36.5262538454337786,188.888733728089306,58.1775287784180364],"hsluv":[36.5262538454337786,92.9922153048462832,58.1775287784180364]},"#cc7733":{"lch":[58.2941365993826111,83.0249283524691606,34.5753600294232513],"luv":[58.2941365993826111,68.3611064237300781,47.1157920070976459],"rgb":[0.8,0.466666666666666674,0.2],"xyz":[0.320952982301039469,0.262717892883035542,0.0651280781883700477],"hpluv":[34.5753600294232513,180.726967614303447,58.2941365993826111],"hsluv":[34.5753600294232513,85.7262720770138458,58.2941365993826111]},"#cc7744":{"lch":[58.4618482438389577,78.2181767747613321,31.5590767862408974],"luv":[58.4618482438389577,66.6497843857434447,40.9376284034837923],"rgb":[0.8,0.466666666666666674,0.266666666666666663],"xyz":[0.325410977545258384,0.264501090980723108,0.0886068531412566862],"hpluv":[31.5590767862408974,169.775287201810244,58.4618482438389577],"hsluv":[31.5590767862408974,75.6318325574838,58.4618482438389577]},"#cc7755":{"lch":[58.6849825995062133,72.4480337937475,27.1381330463907204],"luv":[58.6849825995062133,64.4721877935720187,33.0462494345479811],"rgb":[0.8,0.466666666666666674,0.333333333333333315],"xyz":[0.331373391584620369,0.266886056596467969,0.120008900415230588],"hpluv":[27.1381330463907204,156.653084219512607,58.6849825995062133],"hsluv":[27.1381330463907204,62.8141161752895059,58.6849825995062133]},"#cc7766":{"lch":[58.9669266929607829,66.2083874258113667,20.8554290651987451],"luv":[58.9669266929607829,61.8705265372573407,23.5709251309504673],"rgb":[0.8,0.466666666666666674,0.4],"xyz":[0.338958387358128554,0.269920054905871287,0.159956544822374536],"hpluv":[20.8554290651987451,142.476698671576116,58.9669266929607829],"hsluv":[20.8554290651987451,47.542957476979069,58.9669266929607829]},"#cc7777":{"lch":[59.3102652975897229,60.2635194006596251,12.177050630062082],"luv":[59.3102652975897229,58.907617956407762,12.7115820123061383],"rgb":[0.8,0.466666666666666674,0.466666666666666674],"xyz":[0.34827240037833046,0.273645660113952083,0.209010346728772445],"hpluv":[12.177050630062082,128.932959302114057,59.3102652975897229],"hsluv":[12.177050630062082,43.5373021749198443,59.3102652975897229]},"#cc7788":{"lch":[59.7168613687891963,55.6638868177661834,0.734433949810619269],"luv":[59.7168613687891963,55.6593138534775917,0.713496335773026069],"rgb":[0.8,0.466666666666666674,0.533333333333333326],"xyz":[0.35941281748027426,0.278101826954729681,0.26768321013234464],"hpluv":[0.734433949810619269,118.281243349182901,59.7168613687891963],"hsluv":[0.734433949810619269,45.0130000154657779,59.7168613687891963]},"#cc7799":{"lch":[60.187915321807921,53.6038783156568073,346.890122071781263],"luv":[60.187915321807921,52.2067938730354371,-12.1583898596044406],"rgb":[0.8,0.466666666666666674,0.6],"xyz":[0.37246978158934696,0.283324612598358838,0.336449887773462519],"hpluv":[346.890122071781263,113.012436406344946,60.187915321807921],"hsluv":[346.890122071781263,46.5549497102544,60.187915321807921]},"#cc77aa":{"lch":[60.7240163061688349,54.9761438743297148,332.197464335395125],"luv":[60.7240163061688349,48.6297161920954863,-25.6422912074417866],"rgb":[0.8,0.466666666666666674,0.66666666666666663],"xyz":[0.387527474554599516,0.28934768978445996,0.41575373739046112],"hpluv":[332.197464335395125,114.882297594683308,60.7240163061688349],"hsluv":[332.197464335395125,48.1189262345266471,60.7240163061688349]},"#cc77bb":{"lch":[61.3251919150652043,59.875823087291181,318.726648244723037],"luv":[61.3251919150652043,45.0009333565193046,-39.4972174643062743],"rgb":[0.8,0.466666666666666674,0.733333333333333282],"xyz":[0.40466506666193619,0.296202726627394719,0.506011722489102866],"hpluv":[318.726648244723037,123.894465684476771,61.3251919150652043],"hsluv":[318.726648244723037,49.6642191709372156,61.3251919150652043]},"#cc77cc":{"lch":[61.9909592768387228,67.6487625915650881,307.715012949244965],"luv":[61.9909592768387228,41.3830711255614219,-53.514451360232222],"rgb":[0.8,0.466666666666666674,0.8],"xyz":[0.423957442105657889,0.303919676804883521,0.607618233159373],"hpluv":[307.715012949244965,138.474825543749517,61.9909592768387228],"hsluv":[307.715012949244965,51.1553628289834066,61.9909592768387228]},"#cc77dd":{"lch":[62.7203784873954362,77.3966796673740305,299.257833182927357],"luv":[62.7203784873954362,37.8268934727942252,-67.5231231041040161],"rgb":[0.8,0.466666666666666674,0.866666666666666696],"xyz":[0.445475767656291488,0.312527007025137,0.720948081059379],"hpluv":[299.257833182927357,156.586020071329443,62.7203784873954362],"hsluv":[299.257833182927357,66.8390608629672158,62.7203784873954362]},"#cc77ee":{"lch":[63.5121081687847351,88.3507940057556453,292.894169444170245],"luv":[63.5121081687847351,34.371127600373157,-81.3909601179783],"rgb":[0.8,0.466666666666666674,0.933333333333333348],"xyz":[0.469287947922466198,0.322051879131607044,0.846358897127902243],"hpluv":[292.894169444170245,176.519730115921618,63.5121081687847351],"hsluv":[292.894169444170245,83.1130682001540322,63.5121081687847351]},"#cc77ff":{"lch":[64.3644622692190467,99.9639900757921112,288.092077643344339],"luv":[64.3644622692190467,31.0433170684360782,-95.0216384686225553],"rgb":[0.8,0.466666666666666674,1],"xyz":[0.495458996332297619,0.332520298495539768,0.984193085419684088],"hpluv":[288.092077643344339,197.077372703744913,64.3644622692190467],"hsluv":[288.092077643344339,99.9999999999984794,64.3644622692190467]},"#cc8800":{"lch":[62.03823759594124,83.9779445354575813,47.4964941193052752],"luv":[62.03823759594124,56.738465406715342,61.9115636346826221],"rgb":[0.8,0.533333333333333326,0],"xyz":[0.337050577655438111,0.304472722584748334,0.0410183897450140181],"hpluv":[47.4964941193052752,171.769129739761638,62.03823759594124],"hsluv":[47.4964941193052752,100.000000000002245,62.03823759594124]},"#cc8811":{"lch":[62.0727951053461879,82.7448035916202542,47.0033697453910904],"luv":[62.0727951053461879,56.4282611354359744,60.519037225048919],"rgb":[0.8,0.533333333333333326,0.0666666666666666657],"xyz":[0.338062243155075215,0.304877388784603187,0.0463464947097696478],"hpluv":[47.0033697453910904,169.152629782786704,62.0727951053461879],"hsluv":[47.0033697453910904,97.8669953021426,62.0727951053461879]},"#cc8822":{"lch":[62.1367747194074127,80.5023095814055836,46.0605806208152728],"luv":[62.1367747194074127,55.8603434591127268,57.9676105818622389],"rgb":[0.8,0.533333333333333326,0.133333333333333331],"xyz":[0.339937601293552272,0.305627532039994,0.0562233809057488473],"hpluv":[46.0605806208152728,164.398919884807611,62.1367747194074127],"hsluv":[46.0605806208152728,93.9640765124603,62.1367747194074127]},"#cc8833":{"lch":[62.2418885518498541,76.9329948636363241,44.4230175211057343],"luv":[62.2418885518498541,54.9448944756850963,53.8492736231801246],"rgb":[0.8,0.533333333333333326,0.2],"xyz":[0.34302535202601,0.306862632332977114,0.0724855347633599906],"hpluv":[44.4230175211057343,156.844467463147254,62.2418885518498541],"hsluv":[44.4230175211057343,87.678806867525978,62.2418885518498541]},"#cc8844":{"lch":[62.3931521103864668,72.0506908450526424,41.8566920827827929],"luv":[62.3931521103864668,53.6645163812677168,48.0772475586321661],"rgb":[0.8,0.533333333333333326,0.266666666666666663],"xyz":[0.347483347270228893,0.30864583043066468,0.0959643097162466291],"hpluv":[41.8566920827827929,146.534723453778,62.3931521103864668],"hsluv":[41.8566920827827929,78.900857077449,62.3931521103864668]},"#cc8855":{"lch":[62.5945538889838673,66.028576146577123,38.0101307109045408],"luv":[62.5945538889838673,52.0240395147187513,40.6604498316892062],"rgb":[0.8,0.533333333333333326,0.333333333333333315],"xyz":[0.353445761309590878,0.311030796046409541,0.127366356990220531],"hpluv":[38.0101307109045408,133.855034432196135,62.5945538889838673],"hsluv":[38.0101307109045408,67.6770944211119314,62.5945538889838673]},"#cc8866":{"lch":[62.8492816845599265,59.2369010326618337,32.3420191431213624],"luv":[62.8492816845599265,50.047464385327217,31.6900891849924626],"rgb":[0.8,0.533333333333333326,0.4],"xyz":[0.361030757083099063,0.31406479435581286,0.167314001397364492],"hpluv":[32.3420191431213624,119.60004374597824,62.8492816845599265],"hsluv":[32.3420191431213624,54.1901780257147436,62.8492816845599265]},"#cc8877":{"lch":[63.1598410661450771,52.3169991415742,24.053169540805424],"luv":[63.1598410661450771,47.7741895619322392,21.3235834436907119],"rgb":[0.8,0.533333333333333326,0.466666666666666674],"xyz":[0.370344770103300969,0.317790399563893655,0.216367803303762402],"hpluv":[24.053169540805424,105.109295035123296,63.1598410661450771],"hsluv":[24.053169540805424,38.7316682482548558,63.1598410661450771]},"#cc8888":{"lch":[63.5281271999152182,46.2961098245983322,12.1770506300622312],"luv":[63.5281271999152182,45.2544686659219906,9.76539045078869528],"rgb":[0.8,0.533333333333333326,0.533333333333333326],"xyz":[0.381485187205244769,0.322246566404671253,0.275040666707334569],"hpluv":[12.1770506300622312,92.4736018048895403,63.5281271999152182],"hsluv":[12.1770506300622312,40.0703189706204199,63.5281271999152182]},"#cc8899":{"lch":[63.9554753143552119,42.6335463086933615,356.296984030050055],"luv":[63.9554753143552119,42.5445368433351,-2.7534806412255004],"rgb":[0.8,0.533333333333333326,0.6],"xyz":[0.394542151314317469,0.327469352048300411,0.343807344348452504],"hpluv":[356.296984030050055,84.588837176407921,63.9554753143552119],"hsluv":[356.296984030050055,41.5088242950414781,63.9554753143552119]},"#cc88aa":{"lch":[64.442701858069384,42.8028595258545153,338.056731442080661],"luv":[64.442701858069384,39.701977128446444,-15.9949303118941444],"rgb":[0.8,0.533333333333333326,0.66666666666666663],"xyz":[0.40959984427957,0.333492429234401533,0.423111193965451104],"hpluv":[338.056731442080661,84.28268641071584,64.442701858069384],"hsluv":[338.056731442080661,42.9831867606486924,64.442701858069384]},"#cc88bb":{"lch":[64.9901424985427099,47.2946673003310707,321.051918945199532],"luv":[64.9901424985427099,36.7818149859187784,-29.7301806484697622],"rgb":[0.8,0.533333333333333326,0.733333333333333282],"xyz":[0.426737436386906699,0.340347466077336291,0.513369179064092851],"hpluv":[321.051918945199532,92.3430068912496296,64.9901424985427099],"hsluv":[321.051918945199532,44.4548878388224864,64.9901424985427099]},"#cc88cc":{"lch":[65.5976900795525637,55.3077284551996158,307.715012949245761],"luv":[65.5976900795525637,33.8336367550969399,-43.751912538747959],"rgb":[0.8,0.533333333333333326,0.8],"xyz":[0.446029811830628398,0.348064416254825093,0.614975689734363],"hpluv":[307.715012949245761,106.988377595373095,65.5976900795525637],"hsluv":[307.715012949245761,45.8886814173124122,65.5976900795525637]},"#cc88dd":{"lch":[66.2648339334855905,65.6132669537387727,298.095232643272539],"luv":[66.2648339334855905,30.8998122908772608,-57.8817967994354774],"rgb":[0.8,0.533333333333333326,0.866666666666666696],"xyz":[0.467548137381262,0.356671746475078599,0.728305537634369],"hpluv":[298.095232643272539,125.645770778198369,66.2648339334855905],"hsluv":[298.095232643272539,63.1276078601331037,66.2648339334855905]},"#cc88ee":{"lch":[66.9907009061042,77.2337728548956193,291.267726386147558],"luv":[66.9907009061042,28.0147259973813227,-71.9738202174461463],"rgb":[0.8,0.533333333333333326,0.933333333333333348],"xyz":[0.491360317647436706,0.366196618581548616,0.853716353702892228],"hpluv":[291.267726386147558,146.295866424915545,66.9907009061042],"hsluv":[291.267726386147558,81.1585487563552874,66.9907009061042]},"#cc88ff":{"lch":[67.7740978167257,89.535143384050329,286.350196506734335],"luv":[67.7740978167257,25.2048126805589376,-85.914255618845857],"rgb":[0.8,0.533333333333333326,1],"xyz":[0.517531366057268127,0.37666503794548134,0.991550541994674073],"hpluv":[286.350196506734335,167.63670457649863,67.7740978167257],"hsluv":[286.350196506734335,99.9999999999982379,67.7740978167257]},"#cc9900":{"lch":[66.2294666531998217,80.7116888085701163,57.6888018595631422],"luv":[66.2294666531998217,43.1418134232290527,68.2140795209226383],"rgb":[0.8,0.6,0],"xyz":[0.362920178107905556,0.356211923489684,0.0496415898958362731],"hpluv":[57.6888018595631422,154.64094800189136,66.2294666531998217],"hsluv":[57.6888018595631422,100.000000000002331,66.2294666531998217]},"#cc9911":{"lch":[66.2605931548954459,79.5070460268624,57.3307205104302042],"luv":[66.2605931548954459,42.9170325725223805,66.9290570909725915],"rgb":[0.8,0.6,0.0666666666666666657],"xyz":[0.36393184360754266,0.356616589689538854,0.0549696948605919],"hpluv":[57.3307205104302042,152.261332222626407,66.2605931548954459],"hsluv":[57.3307205104302042,98.1673920986410877,66.2605931548954459]},"#cc9922":{"lch":[66.318231165714252,77.3048675578901339,56.6444543825244],"luv":[66.318231165714252,42.5047546114663533,64.5708013235236535],"rgb":[0.8,0.6,0.133333333333333331],"xyz":[0.365807201746019717,0.357366732944929655,0.0648465810565711],"hpluv":[56.6444543825244,147.915345655385721,66.318231165714252],"hsluv":[56.6444543825244,94.8079930897652901,66.318231165714252]},"#cc9933":{"lch":[66.4129558628457772,73.7662990604099207,55.446788144651876],"luv":[66.4129558628457772,41.8381333944198062,60.7539091017242114],"rgb":[0.8,0.6,0.2],"xyz":[0.368894952478477423,0.358601833237912782,0.0811087349141822456],"hpluv":[55.446788144651876,140.943324602767206,66.4129558628457772],"hsluv":[55.446788144651876,89.3812598244831804,66.4129558628457772]},"#cc9944":{"lch":[66.5493334014023361,68.8491039809152596,53.5533094328142383],"luv":[66.5493334014023361,40.9015039610359423,55.3829043360877122],"rgb":[0.8,0.6,0.266666666666666663],"xyz":[0.373352947722696338,0.360385031335600348,0.104587509867068884],"hpluv":[53.5533094328142383,131.278591794008349,66.5493334014023361],"hsluv":[53.5533094328142383,81.7675495661837459,66.5493334014023361]},"#cc9955":{"lch":[66.7310322275847341,62.6300376921671571,50.6698876242401539],"luv":[66.7310322275847341,39.6941340540006422,48.4447865412296466],"rgb":[0.8,0.6,0.333333333333333315],"xyz":[0.379315361762058323,0.362769996951345208,0.135989557141042799],"hpluv":[50.6698876242401539,119.095172229338388,66.7310322275847341],"hsluv":[50.6698876242401539,71.9728873324543912,66.7310322275847341]},"#cc9966":{"lch":[66.9610303820851,55.3290996264574488,46.2964172073191236],"luv":[66.9610303820851,38.2284030091626121,39.9987308404091877],"rgb":[0.8,0.6,0.4],"xyz":[0.386900357535566508,0.365803995260748527,0.175937201548186761],"hpluv":[46.2964172073191236,104.850571413887963,66.9610303820851],"hsluv":[46.2964172073191236,60.1139469393688586,66.9610303820851]},"#cc9977":{"lch":[67.2417240975963608,47.3725698769106316,39.5497292985384448],"luv":[67.2417240975963608,36.5276723895038842,30.1643751227811094],"rgb":[0.8,0.6,0.466666666666666674],"xyz":[0.396214370555768414,0.369529600468829322,0.22499100345458467],"hpluv":[39.5497292985384448,89.3979234879296598,67.2417240975963608],"hsluv":[39.5497292985384448,46.4000360859745484,67.2417240975963608]},"#cc9988":{"lch":[67.5749927230407508,39.5461637624335367,28.8927829606528306],"luv":[67.5749927230407508,34.6236706423047593,19.1076031876950658],"rgb":[0.8,0.6,0.533333333333333326],"xyz":[0.407354787657712214,0.37398576730960692,0.28366386685815681],"hpluv":[28.8927829606528306,74.2604675709266076,67.5749927230407508],"hsluv":[28.8927829606528306,33.7758353105824227,67.5749927230407508]},"#cc9999":{"lch":[67.962242737641,33.3028609095241,12.177050630062606],"luv":[67.962242737641,32.5535618700051401,7.02468179598591647],"rgb":[0.8,0.6,0.6],"xyz":[0.420411751766784914,0.379208552953236078,0.352430544499274745],"hpluv":[12.177050630062606,62.1803508213615217,67.962242737641],"hsluv":[12.177050630062606,35.0991912912463349,67.962242737641]},"#cc99aa":{"lch":[68.4044417972397838,30.9200145018949506,349.049331623372325],"luv":[68.4044417972397838,30.3569952347367966,-5.87368173427548168],"rgb":[0.8,0.6,0.66666666666666663],"xyz":[0.43546944473203747,0.3852316301393372,0.431734394116273346],"hpluv":[349.049331623372325,57.3580941092039609,68.4044417972397838],"hsluv":[349.049331623372325,36.4663034143199312,68.4044417972397838]},"#cc99bb":{"lch":[68.9021485343020856,34.1112448474386483,325.385883063702067],"luv":[68.9021485343020856,28.0734328763681233,-19.3767745401024669],"rgb":[0.8,0.6,0.733333333333333282],"xyz":[0.452607036839374144,0.392086666982271959,0.521992379214915],"hpluv":[325.385883063702067,62.8208966420876678,68.9021485343020856],"hsluv":[325.385883063702067,37.8410036888738404,68.9021485343020856]},"#cc99cc":{"lch":[69.4555411877739601,42.0770553751994854,307.715012949247],"luv":[69.4555411877739601,25.7399796927440505,-33.285613025220492],"rgb":[0.8,0.6,0.8],"xyz":[0.471899412283095843,0.39980361715976076,0.623598889885185192],"hpluv":[307.715012949247,76.8736967911951581,69.4555411877739601],"hsluv":[307.715012949247,39.1886552488513473,69.4555411877739601]},"#cc99dd":{"lch":[70.0644466506374215,52.8759829560521695,296.254085335195782],"luv":[70.0644466506374215,23.3898305690433475,-47.4213601610093534],"rgb":[0.8,0.6,0.866666666666666696],"xyz":[0.493417737833729442,0.408410947380014266,0.73692873778519119],"hpluv":[296.254085335195782,95.7635162234915498,70.0644466506374215],"hsluv":[296.254085335195782,58.3905887561973813,70.0644466506374215]},"#cc99ee":{"lch":[70.7283706212672,65.1265075826905218,288.858843135035954],"luv":[70.7283706212672,21.0513451251656711,-61.6303728557552191],"rgb":[0.8,0.6,0.933333333333333348],"xyz":[0.517229918099904151,0.417935819486484283,0.862339553853714413],"hpluv":[288.858843135035954,116.843205481858362,70.7283706212672],"hsluv":[288.858843135035954,78.6530020758075494,70.7283706212672]},"#cc99ff":{"lch":[71.4465289765693115,78.0706881495843561,283.894640570210413],"luv":[71.4465289765693115,18.7476796475605703,-75.7862576987549517],"rgb":[0.8,0.6,1],"xyz":[0.543400966509735572,0.428404238850417,1.00017374214549637],"hpluv":[283.894640570210413,138.658404713871533,71.4465289765693115],"hsluv":[283.894640570210413,99.9999999999978,71.4465289765693115]},"#990000":{"lch":[31.2857235930303546,105.214874065330946,12.1770506300617765],"luv":[31.2857235930303546,102.847587834444283,22.1933188419334826],"rgb":[0.6,0,0],"xyz":[0.131365760434599882,0.067735470224092,0.00615777002037173893],"hpluv":[12.1770506300617765,426.746789183125316,31.2857235930303546],"hsluv":[12.1770506300617765,100.000000000002217,31.2857235930303546]},"#990011":{"lch":[31.379701704172021,102.819321078199806,10.8595456684147944],"luv":[31.379701704172021,100.978030711674904,19.3713732237542438],"rgb":[0.6,0,0.0666666666666666657],"xyz":[0.132377425934237014,0.0681401364239468538,0.0114858749851273704],"hpluv":[10.8595456684147944,415.781582167217948,31.379701704172021],"hsluv":[10.8595456684147944,99.9999999999964473,31.379701704172021]},"#990022":{"lch":[31.5529326060038784,98.7447775317108807,8.37468971343924729],"luv":[31.5529326060038784,97.6918390895904309,14.3817824027706251],"rgb":[0.6,0,0.133333333333333331],"xyz":[0.134252784072714015,0.0688902796793376682,0.0213627611811065682],"hpluv":[8.37468971343924729,397.112659756655944,31.5529326060038784],"hsluv":[8.37468971343924729,99.999999999996632,31.5529326060038784]},"#990033":{"lch":[31.8354354483696653,92.9837515463916162,4.18138532137367758],"luv":[31.8354354483696653,92.7362491408617586,6.7798338419980837],"rgb":[0.6,0,0.2],"xyz":[0.137340534805171777,0.070125379972320781,0.0376249150387177114],"hpluv":[4.18138532137367758,370.62575576901952,31.8354354483696653],"hsluv":[4.18138532137367758,99.9999999999969,31.8354354483696653]},"#990044":{"lch":[32.2375108843075537,86.4821897260425771,357.977822115898675],"luv":[32.2375108843075537,86.4283323676992552,-3.05163955108307716],"rgb":[0.6,0,0.266666666666666663],"xyz":[0.141798530049390636,0.071908578070008361,0.0611036899916043499],"hpluv":[357.977822115898675,340.411718586576399,32.2375108843075537],"hsluv":[357.977822115898675,99.9999999999971294,32.2375108843075537]},"#990055":{"lch":[32.7650133258702,80.5606445545256804,349.629319937368109],"luv":[32.7650133258702,79.244583226626645,-14.502188809930411],"rgb":[0.6,0,0.333333333333333315],"xyz":[0.147760944088752622,0.0742935436857532,0.0925057372655782584],"hpluv":[349.629319937368109,311.998071704954214,32.7650133258702],"hsluv":[349.629319937368109,99.9999999999974847,32.7650133258702]},"#990066":{"lch":[33.4199981031921354,76.5714397631706589,339.419101050621862],"luv":[33.4199981031921354,71.6844038684648268,-26.9171252073414813],"rgb":[0.6,0,0.4],"xyz":[0.155345939862260807,0.0773275419951565124,0.13245338167272222],"hpluv":[339.419101050621862,290.7366076723265,33.4199981031921354],"hsluv":[339.419101050621862,99.9999999999978257,33.4199981031921354]},"#990077":{"lch":[34.2012599030024091,75.4745938555541187,328.234093427391315],"luv":[34.2012599030024091,64.1689603650959413,-39.7335984190155429],"rgb":[0.6,0,0.466666666666666674],"xyz":[0.164659952882462712,0.0810531472032373218,0.181507183579120129],"hpluv":[328.234093427391315,280.025774017920355,34.2012599030024091],"hsluv":[328.234093427391315,99.9999999999982094,34.2012599030024091]},"#990088":{"lch":[35.1048906557013396,77.5195253213057214,317.327493504651898],"luv":[35.1048906557013396,56.9954501323273419,-52.5432723595889613],"rgb":[0.6,0,0.533333333333333326],"xyz":[0.175800369984406568,0.0855093140440149196,0.240180046982692297],"hpluv":[317.327493504651898,280.209468657326,35.1048906557013396],"hsluv":[317.327493504651898,99.9999999999985505,35.1048906557013396]},"#990099":{"lch":[36.1248689761228263,82.286593786153162,307.715012949243601],"luv":[36.1248689761228263,50.3375351282041592,-65.0939019735657922],"rgb":[0.6,0,0.6],"xyz":[0.188857334093479268,0.0907320996876440772,0.308946724623810232],"hpluv":[307.715012949243601,289.042783730483336,36.1248689761228263],"hsluv":[307.715012949243601,99.9999999999988205,36.1248689761228263]},"#9900aa":{"lch":[37.2536516336468,89.0432435337247,299.813571633796073],"luv":[37.2536516336468,44.2704748017611038,-77.2581664281054685],"rgb":[0.6,0,0.66666666666666663],"xyz":[0.203915027058731824,0.0967551768737451856,0.388250574240808777],"hpluv":[299.813571633796073,303.299328566743952,37.2536516336468],"hsluv":[299.813571633796073,99.9999999999990905,37.2536516336468]},"#9900bb":{"lch":[38.4827280957899163,97.0854614833978786,293.557760104203282],"luv":[38.4827280957899163,38.802472411223853,-88.9941288300556579],"rgb":[0.6,0,0.733333333333333282],"xyz":[0.221052619166068443,0.103610213716679944,0.478508559339450579],"hpluv":[293.557760104203282,320.130957524774431,38.4827280957899163],"hsluv":[293.557760104203282,99.9999999999993179,38.4827280957899163]},"#9900cc":{"lch":[39.8031058181596933,105.884836559305498,288.673688741635],"luv":[39.8031058181596933,33.9019931565070394,-100.310784431221492],"rgb":[0.6,0,0.8],"xyz":[0.240344994609790197,0.111327163894168746,0.580115070009720735],"hpluv":[288.673688741635,337.564008898092311,39.8031058181596933],"hsluv":[288.673688741635,99.9999999999995879,39.8031058181596933]},"#9900dd":{"lch":[41.2057071388761145,115.092674624289529,284.860629917023232],"luv":[41.2057071388761145,29.5176685469448401,-111.243116621772529],"rgb":[0.6,0,0.866666666666666696],"xyz":[0.26186332016042374,0.11993449411442228,0.693444917909726732],"hpluv":[284.860629917023232,354.429316861661562,41.2057071388761145],"hsluv":[284.860629917023232,99.9999999999996732,41.2057071388761145]},"#9900ee":{"lch":[42.6816722484951754,124.494824438150232,281.862271937449748],"luv":[42.6816722484951754,25.5911328567321625,-121.836181945245357],"rgb":[0.6,0,0.933333333333333348],"xyz":[0.285675500426598505,0.129459366220892297,0.81885573397825],"hpluv":[281.862271937449748,370.125661914021862,42.6816722484951754],"hsluv":[281.862271937449748,99.9999999999998437,42.6816722484951754]},"#9900ff":{"lch":[44.2225734052255817,133.965544030308308,279.479958267333473],"luv":[44.2225734052255817,22.0644732467518,-132.136013288126151],"rgb":[0.6,0,1],"xyz":[0.311846548836429871,0.139927785584825,0.956689922270031801],"hpluv":[279.479958267333473,384.404468177447882,44.2225734052255817],"hsluv":[279.479958267333473,99.9999999999999574,44.2225734052255817]},"#bb0000":{"lch":[38.8409426943877918,130.623313921981463,12.1770506300617818],"luv":[38.8409426943877918,127.684349491075153,27.5528044852332741],"rgb":[0.733333333333333282,0,0],"xyz":[0.20493059501477473,0.105667338054495463,0.00960612164131736251],"hpluv":[12.1770506300617818,426.746789183125145,38.8409426943877918],"hsluv":[12.1770506300617818,100.000000000002217,38.8409426943877918]},"#bb0011":{"lch":[38.9108602521517142,128.680110500437479,11.3344428162225856],"luv":[38.9108602521517142,126.170422440132384,25.2902222149853806],"rgb":[0.733333333333333282,0,0.0666666666666666657],"xyz":[0.205942260514411862,0.106072004254350316,0.014934226606072994],"hpluv":[11.3344428162225856,419.642938315359174,38.9108602521517142],"hsluv":[11.3344428162225856,99.9999999999964189,38.9108602521517142]},"#bb0022":{"lch":[39.0399998564474373,125.270257566289573,9.75441483214293292],"luv":[39.0399998564474373,123.459226352671962,21.2239689767074431],"rgb":[0.733333333333333282,0,0.133333333333333331],"xyz":[0.207817618652888864,0.10682214750974113,0.0248111128020521918],"hpluv":[9.75441483214293292,407.171610230013243,39.0399998564474373],"hsluv":[9.75441483214293292,99.9999999999965326,39.0399998564474373]},"#bb0033":{"lch":[39.2513155564018916,120.169209623826248,7.10634666793171554],"luv":[39.2513155564018916,119.246098647877318,14.866300779810846],"rgb":[0.733333333333333282,0,0.2],"xyz":[0.210905369385346597,0.108057247802724243,0.041073266659663335],"hpluv":[7.10634666793171554,388.488631169232178,39.2513155564018916],"hsluv":[7.10634666793171554,99.9999999999967173,39.2513155564018916]},"#bb0044":{"lch":[39.5535843326651886,113.833969399977519,3.19865110237705785],"luv":[39.5535843326651886,113.656624965458903,6.3517077086437],"rgb":[0.733333333333333282,0,0.266666666666666663],"xyz":[0.215363364629565485,0.109840445900411823,0.0645520416125499735],"hpluv":[3.19865110237705785,365.195452768261646,39.5535843326651886],"hsluv":[3.19865110237705785,99.9999999999968878,39.5535843326651886]},"#bb0055":{"lch":[39.9527871554326666,107.03859947839959,357.869864695501747],"luv":[39.9527871554326666,106.964633924407806,-3.97855095665153691],"rgb":[0.733333333333333282,0,0.333333333333333315],"xyz":[0.221325778668927498,0.112225411516156656,0.095954088886523875],"hpluv":[357.869864695501747,339.963790558847222,39.9527871554326666],"hsluv":[357.869864695501747,99.9999999999971436,39.9527871554326666]},"#bb0066":{"lch":[40.452535568346093,100.749762000256624,351.053086521713055],"luv":[40.452535568346093,99.5239253968718884,-15.6685295004423661],"rgb":[0.733333333333333282,0,0.4],"xyz":[0.228910774442435655,0.115259409825559975,0.135901733293667837],"hpluv":[351.053086521713055,316.036764522848955,40.452535568346093],"hsluv":[351.053086521713055,99.999999999997442,40.452535568346093]},"#bb0077":{"lch":[41.0543478797665813,95.9494038996296581,342.883287985183927],"luv":[41.0543478797665813,91.699536963203,-28.2397420212797314],"rgb":[0.733333333333333282,0,0.466666666666666674],"xyz":[0.238224787462637588,0.118985015033640784,0.184955535200065746],"hpluv":[342.883287985183927,296.56674422547627,41.0543478797665813],"hsluv":[342.883287985183927,99.9999999999977,41.0543478797665813]},"#bb0088":{"lch":[41.7578935904565398,93.4210879643116243,333.788939203308246],"luv":[41.7578935904565398,83.8148890966975699,-41.2621381189091565],"rgb":[0.733333333333333282,0,0.533333333333333326],"xyz":[0.249365204564581389,0.123441181874418382,0.243628398603637913],"hpluv":[333.788939203308246,283.887103643995431,41.7578935904565398],"hsluv":[333.788939203308246,99.9999999999980531,41.7578935904565398]},"#bb0099":{"lch":[42.5612451572515,93.5592166386053918,324.452137443226093],"luv":[42.5612451572515,76.1225984195714318,-54.3937223205229472],"rgb":[0.733333333333333282,0,0.6],"xyz":[0.262422168673654088,0.12866396751804754,0.31239507624475582],"hpluv":[324.452137443226093,278.940502109978524,42.5612451572515],"hsluv":[324.452137443226093,99.9999999999983089,42.5612451572515]},"#bb00aa":{"lch":[43.461144448190268,96.3048592888224562,315.591494301740738],"luv":[43.461144448190268,68.7971872487792,-67.3911934105362747],"rgb":[0.733333333333333282,0,0.66666666666666663],"xyz":[0.277479861638906644,0.134687044704148634,0.391698925861754421],"hpluv":[315.591494301740738,281.181257774391042,43.461144448190268],"hsluv":[315.591494301740738,99.9999999999985647,43.461144448190268]},"#bb00bb":{"lch":[44.4532771259814652,101.257357078489918,307.715012949243601],"luv":[44.4532771259814652,61.9426024872754866,-80.100976021670192],"rgb":[0.733333333333333282,0,0.733333333333333282],"xyz":[0.294617453746243319,0.141542081547083393,0.481956910960396168],"hpluv":[307.715012949243601,289.042783730483507,44.4532771259814652],"hsluv":[307.715012949243601,99.9999999999988205,44.4532771259814652]},"#bb00cc":{"lch":[45.5325428123826796,107.876917991024385,301.028560594476971],"luv":[45.5325428123826796,55.6068066637028551,-92.44085940701639],"rgb":[0.733333333333333282,0,0.8],"xyz":[0.313909829189965,0.149259031724572194,0.583563421630666324],"hpluv":[301.028560594476971,300.639438898355309,45.5325428123826796],"hsluv":[301.028560594476971,99.999999999999,45.5325428123826796]},"#bb00dd":{"lch":[46.6933085129957348,115.650155059812704,295.504945579136574],"luv":[46.6933085129957348,49.7976850024997,-104.379830109799173],"rgb":[0.733333333333333282,0,0.866666666666666696],"xyz":[0.335428154740598616,0.157866361944825728,0.696893269530672321],"hpluv":[295.504945579136574,314.290242754568055,46.6933085129957348],"hsluv":[295.504945579136574,99.9999999999992468,46.6933085129957348]},"#bb00ee":{"lch":[47.929635203682146,124.167261181765113,290.999747870951808],"luv":[47.929635203682146,44.4970566855085821,-115.920320460682433],"rgb":[0.733333333333333282,0,0.933333333333333348],"xyz":[0.359240335006773326,0.167391234051295773,0.822304085599195544],"hpluv":[290.999747870951808,328.732244305823656,47.929635203682146],"hsluv":[290.999747870951808,99.9999999999993889,47.929635203682146]},"#bb00ff":{"lch":[49.2354711183318727,133.13261796854033,287.33664116340708],"luv":[49.2354711183318727,39.6715752597668896,-127.084460433075606],"rgb":[0.733333333333333282,0,1],"xyz":[0.385411383416604747,0.177859653415228469,0.96013827389097739],"hpluv":[287.33664116340708,343.119737385630629,49.2354711183318727],"hsluv":[287.33664116340708,99.9999999999995595,49.2354711183318727]},"#991100":{"lch":[32.2007428060931531,101.551746681272988,13.5001929330929755],"luv":[32.2007428060931531,98.7457840078795,23.707116962774041],"rgb":[0.6,0.0666666666666666657,0],"xyz":[0.133370160695528289,0.071744270745948871,0.00682590344068119],"hpluv":[13.5001929330929755,400.185025755779861,32.2007428060931531],"hsluv":[13.5001929330929755,100.000000000002359,32.2007428060931531]},"#991111":{"lch":[32.2911967351305,99.2607003603350506,12.1770506300617907],"luv":[32.2911967351305,97.0273802968116854,20.9373854328113431],"rgb":[0.6,0.0666666666666666657,0.0666666666666666657],"xyz":[0.134381826195165421,0.0721489369458037239,0.0121540084054368204],"hpluv":[12.1770506300617907,390.060992150638072,32.2911967351305],"hsluv":[12.1770506300617907,91.4033806551417,32.2911967351305]},"#991122":{"lch":[32.4579836187547883,95.3555453821432337,9.67722696349737355],"luv":[32.4579836187547883,93.9986702773161085,16.0290368151797],"rgb":[0.6,0.0666666666666666657,0.133333333333333331],"xyz":[0.136257184333642423,0.0728990802011945382,0.0220308946014160165],"hpluv":[9.67722696349737355,372.789562407290305,32.4579836187547883],"hsluv":[9.67722696349737355,91.6870397393079,32.4579836187547883]},"#991133":{"lch":[32.7301206059751877,89.8170234432985382,5.44607482402752385],"luv":[32.7301206059751877,89.4115862394302,8.52443231910342547],"rgb":[0.6,0.0666666666666666657,0.2],"xyz":[0.139344935066100184,0.0741341804941776511,0.0382930484590271597],"hpluv":[5.44607482402752385,348.217328437078379,32.7301206059751877],"hsluv":[5.44607482402752385,92.1153976677825312,32.7301206059751877]},"#991144":{"lch":[33.1177416447746893,83.547386161100178,359.159050762907725],"luv":[33.1177416447746893,83.5383872622118275,-1.22620878349376072],"rgb":[0.6,0.0666666666666666657,0.266666666666666663],"xyz":[0.143802930310319044,0.0759173785918652311,0.0617718234119138],"hpluv":[359.159050762907725,320.119020896680809,33.1177416447746893],"hsluv":[359.159050762907725,92.6613616101701609,33.1177416447746893]},"#991155":{"lch":[33.6267967661613341,77.8365467514172451,350.652860745276428],"luv":[33.6267967661613341,76.8030661853154,-12.6418762341523276],"rgb":[0.6,0.0666666666666666657,0.333333333333333315],"xyz":[0.149765344349681029,0.078302344207610064,0.0931738706858877136],"hpluv":[350.652860745276428,293.722615948770908,33.6267967661613341],"hsluv":[350.652860745276428,93.2833986807069664,33.6267967661613341]},"#991166":{"lch":[34.2596587707945375,74.039902428482776,340.197584074025258],"luv":[34.2596587707945375,69.661662743272629,-25.0830599301957804],"rgb":[0.6,0.0666666666666666657,0.4],"xyz":[0.157350340123189214,0.0813363425170133825,0.133121515093031662],"hpluv":[340.197584074025258,274.234525914752396,34.2596587707945375],"hsluv":[340.197584074025258,93.9371476037906774,34.2596587707945375]},"#991177":{"lch":[35.0156115165229096,73.1458980715855773,328.71391057162549],"luv":[35.0156115165229096,62.509382661628635,-37.9855167657472848],"rgb":[0.6,0.0666666666666666657,0.466666666666666674],"xyz":[0.16666435314339112,0.0850619477250941919,0.182175316999429571],"hpluv":[328.71391057162549,265.074278305330154,35.0156115165229096],"hsluv":[328.71391057162549,94.5844210689808165,35.0156115165229096]},"#991188":{"lch":[35.8913494409224185,75.4242755669397269,317.528981112118743],"luv":[35.8913494409224185,55.6343762077295239,-50.9277677576239398],"rgb":[0.6,0.0666666666666666657,0.533333333333333326],"xyz":[0.177804770245334975,0.0895181145658717897,0.240848180403001738],"hpluv":[317.528981112118743,266.661726649655066,35.8913494409224185],"hsluv":[317.528981112118743,95.1976582537924116,35.8913494409224185]},"#991199":{"lch":[36.8815072257793,80.448343562419069,307.715012949243601],"luv":[36.8815072257793,49.2130143411107568,-63.6397297401445599],"rgb":[0.6,0.0666666666666666657,0.6],"xyz":[0.190861734354407675,0.0947409002095009473,0.309614858044119645],"hpluv":[307.715012949243601,276.788327826692239,36.8815072257793],"hsluv":[307.715012949243601,95.7603314825458511,36.8815072257793]},"#9911aa":{"lch":[37.9791974354050694,87.4639739592788,299.695850237394552],"luv":[37.9791974354050694,43.3292813921454609,-75.9771025690614152],"rgb":[0.6,0.0666666666666666657,0.66666666666666663],"xyz":[0.205919427319660231,0.100763977395602056,0.388918707661118246],"hpluv":[299.695850237394552,292.228621346341356,37.9791974354050694],"hsluv":[299.695850237394552,96.26500390067784,37.9791974354050694]},"#9911bb":{"lch":[39.176522525078866,95.7489617369993624,293.383950362709356],"luv":[39.176522525078866,38.0018814997404846,-87.8847010360338459],"rgb":[0.6,0.0666666666666666657,0.733333333333333282],"xyz":[0.22305701942699685,0.107619014238536814,0.47917669275976],"hpluv":[293.383950362709356,310.132668732371314,39.176522525078866],"hsluv":[293.383950362709356,96.7106400677762537,39.176522525078866]},"#9911cc":{"lch":[40.465031277763515,104.765415075180798,288.480743990765689],"luv":[40.465031277763515,33.2091620218187842,-99.3626879350770622],"rgb":[0.6,0.0666666666666666657,0.8],"xyz":[0.242349394870718604,0.115335964416025616,0.580783203430030204],"hpluv":[288.480743990765689,328.531778006508034,40.465031277763515],"hsluv":[288.480743990765689,97.1001366995766,40.465031277763515]},"#9911dd":{"lch":[41.8361001822542917,114.161763941518927,284.668123617886636],"luv":[41.8361001822542917,28.9080153835727351,-110.441092863219225],"rgb":[0.6,0.0666666666666666657,0.866666666666666696],"xyz":[0.263867720421352148,0.12394329463627915,0.694113051330036201],"hpluv":[284.668123617886636,346.265164959266087,41.8361001822542917],"hsluv":[284.668123617886636,97.4384492036098,41.8361001822542917]},"#9911ee":{"lch":[43.2812320372341617,123.724619665436521,281.679545129349094],"luv":[43.2812320372341617,25.0465268392882301,-121.162919264293635],"rgb":[0.6,0.0666666666666666657,0.933333333333333348],"xyz":[0.287679900687526913,0.133468166742749167,0.819523867398559425],"hpluv":[281.679545129349094,362.740326129136179,43.2812320372341617],"hsluv":[281.679545129349094,97.7313369542794561,43.2812320372341617]},"#9911ff":{"lch":[44.7922739406791948,133.33068560825987,279.310828677429186],"luv":[44.7922739406791948,21.5716156333953251,-131.574074664174219],"rgb":[0.6,0.0666666666666666657,1],"xyz":[0.313850949097358278,0.143936586106681863,0.95735805569034127],"hpluv":[279.310828677429186,377.716823123197173,44.7922739406791948],"hsluv":[279.310828677429186,99.9999999999993179,44.7922739406791948]},"#bb1100":{"lch":[39.5258701457598747,127.514079962112703,13.0219609303782402],"luv":[39.5258701457598747,124.2348987579322,28.7320469022032583],"rgb":[0.733333333333333282,0.0666666666666666657,0],"xyz":[0.206934995275703137,0.109676138576352333,0.0102742550616268143],"hpluv":[13.0219609303782402,409.370014873310311,39.5258701457598747],"hsluv":[13.0219609303782402,100.000000000002203,39.5258701457598747]},"#bb1111":{"lch":[39.5940766091873897,125.63034182067031,12.177050630061796],"luv":[39.5940766091873897,122.803716963532779,26.4996204863200759],"rgb":[0.733333333333333282,0.0666666666666666657,0.0666666666666666657],"xyz":[0.20794666077534027,0.110080804776207186,0.0156023600263824457],"hpluv":[12.177050630061796,402.627698793753552,39.5940766091873897],"hsluv":[12.177050630061796,94.3481495348726753,39.5940766091873897]},"#bb1122":{"lch":[39.7200723855077413,122.321798686612851,10.5915831721034426],"luv":[39.7200723855077413,120.23772406897838,22.4835972353282152],"rgb":[0.733333333333333282,0.0666666666666666657,0.133333333333333331],"xyz":[0.209822018913817271,0.110830948031598,0.0254792462223616401],"hpluv":[10.5915831721034426,390.780742551338619,39.7200723855077413],"hsluv":[10.5915831721034426,94.4721603032542561,39.7200723855077413]},"#bb1133":{"lch":[39.9262897734852,117.365304386249704,7.93115519261489421],"luv":[39.9262897734852,116.242655940639409,16.194431559742192],"rgb":[0.733333333333333282,0.0666666666666666657,0.2],"xyz":[0.212909769646275,0.112066048324581113,0.0417414000799727902],"hpluv":[7.93115519261489421,373.009679290071517,39.9262897734852],"hsluv":[7.93115519261489421,94.6648992051481173,39.9262897734852]},"#bb1144":{"lch":[40.2213637516280755,111.198866264944101,3.99799547396429888],"luv":[40.2213637516280755,110.928262725239179,7.75295991020434627],"rgb":[0.733333333333333282,0.0666666666666666657,0.266666666666666663],"xyz":[0.217367764890493892,0.113849246422268693,0.0652201750328594287],"hpluv":[3.99799547396429888,350.818828640487084,40.2213637516280755],"hsluv":[3.99799547396429888,94.920595316052,40.2213637516280755]},"#bb1155":{"lch":[40.6112374139617245,104.574630781207446,358.621384873601698],"luv":[40.6112374139617245,104.544360517453882,-2.51596641918957786],"rgb":[0.733333333333333282,0.0666666666666666657,0.333333333333333315],"xyz":[0.223330178929855905,0.116234212038013526,0.0966222223068333302],"hpluv":[358.621384873601698,326.752894857139097,40.6112374139617245],"hsluv":[358.621384873601698,95.2265760165129791,40.6112374139617245]},"#bb1166":{"lch":[41.0995768863194755,98.4443929415329251,351.723860164231496],"luv":[41.0995768863194755,97.4191751888273672,-14.1704907168206535],"rgb":[0.733333333333333282,0.0666666666666666657,0.4],"xyz":[0.230915174703364062,0.119268210347416845,0.136569866713977306],"hpluv":[351.723860164231496,303.943570446579713,41.0995768863194755],"hsluv":[351.723860164231496,95.5663396203906643,41.0995768863194755]},"#bb1177":{"lch":[41.688035181331955,93.7889310063258,343.43446060875408],"luv":[41.688035181331955,89.8961490854954093,-26.7403432832812094],"rgb":[0.733333333333333282,0.0666666666666666657,0.466666666666666674],"xyz":[0.240229187723566,0.122993815555497654,0.185623668620375215],"hpluv":[343.43446060875408,285.48249634694713,41.688035181331955],"hsluv":[343.43446060875408,95.9227087501184883,41.688035181331955]},"#bb1188":{"lch":[42.3764815581906475,91.4027083669889606,334.189166164708297],"luv":[42.3764815581906475,82.2840505377722309,-39.7968607294366805],"rgb":[0.733333333333333282,0.0666666666666666657,0.533333333333333326],"xyz":[0.251369604825509796,0.127449982396275252,0.244296532023947383],"hpluv":[334.189166164708297,273.699179760613617,42.3764815581906475],"hsluv":[334.189166164708297,96.2803174994205,42.3764815581906475]},"#bb1199":{"lch":[43.1632358766101092,91.692942572352564,324.693570122963422],"luv":[43.1632358766101092,74.8281105443768269,-52.9938637007650755],"rgb":[0.733333333333333282,0.0666666666666666657,0.6],"xyz":[0.264426568934582495,0.13267276803990441,0.31306320966506529],"hpluv":[324.693570122963422,269.563595898888195,43.1632358766101092],"hsluv":[324.693570122963422,96.6270445785018239,43.1632358766101092]},"#bb11aa":{"lch":[44.0453166933651,94.6050581990027553,315.694091730478135],"luv":[44.0453166933651,67.7013389352867847,-66.0806003544619784],"rgb":[0.733333333333333282,0.0666666666666666657,0.66666666666666663],"xyz":[0.279484261899835051,0.138695845226005504,0.39236705928206389],"hpluv":[315.694091730478135,272.554870225691275,44.0453166933651],"hsluv":[315.694091730478135,96.9544350138240105,44.0453166933651]},"#bb11bb":{"lch":[45.0186979872658242,99.7328976909900717,307.715012949243601],"luv":[45.0186979872658242,61.0100383302365472,-78.8950321933172205],"rgb":[0.733333333333333282,0.0666666666666666657,0.733333333333333282],"xyz":[0.296621854007171726,0.145550882068940263,0.482625044380705637],"hpluv":[307.715012949243601,281.115526817766181,45.0186979872658242],"hsluv":[307.715012949243601,97.2574105430315115,45.0186979872658242]},"#bb11cc":{"lch":[46.0785638011469771,106.527215460047387,300.962972083371881],"luv":[46.0785638011469771,54.8065495444917161,-91.3470840295328372],"rgb":[0.733333333333333282,0.0666666666666666657,0.8],"xyz":[0.315914229450893425,0.153267832246429064,0.584231555050975793],"hpluv":[300.962972083371881,293.360047474541318,46.0785638011469771],"hsluv":[300.962972083371881,97.5336183018287528,46.0785638011469771]},"#bb11dd":{"lch":[47.2195492447565,114.4666153484132,295.402801066287566],"luv":[47.2195492447565,49.1038079522977853,-103.3993330438134],"rgb":[0.733333333333333282,0.0666666666666666657,0.866666666666666696],"xyz":[0.337432555001527,0.161875162466682598,0.69756140295098179],"hpluv":[295.402801066287566,307.607082675331128,47.2195492447565],"hsluv":[295.402801066287566,97.7826899351839813,47.2195492447565]},"#bb11ee":{"lch":[48.4359581768354701,123.136484869400022,290.880608651701721],"luv":[48.4359581768354701,43.8885280811888,-115.049515465553711],"rgb":[0.733333333333333282,0.0666666666666666657,0.933333333333333348],"xyz":[0.361244735267701733,0.171400034573152643,0.822972219019505],"hpluv":[290.880608651701721,322.595409245987128,48.4359581768354701],"hsluv":[290.880608651701721,98.0055710342431325,48.4359581768354701]},"#bb11ff":{"lch":[49.7219510368964,132.239138283310353,287.21247838519713],"luv":[49.7219510368964,39.1316890181496575,-126.316667975763593],"rgb":[0.733333333333333282,0.0666666666666666657,1],"xyz":[0.387415783677533154,0.181868453937085339,0.960806407311286859],"hpluv":[287.21247838519713,337.482436204013879,49.7219510368964],"hsluv":[287.21247838519713,99.9999999999991758,49.7219510368964]},"#992200":{"lch":[33.8105832897308716,95.4307991554818358,16.0266852535062476],"luv":[33.8105832897308716,91.7217107848809263,26.3470149760569932],"rgb":[0.6,0.133333333333333331,0],"xyz":[0.137085784430296231,0.0791755182154848525,0.0080644446856038],"hpluv":[16.0266852535062476,358.158468302090569,33.8105832897308716],"hsluv":[16.0266852535062476,100.000000000002331,33.8105832897308716]},"#992211":{"lch":[33.8952997814050718,93.2922690289088195,14.6972380002076104],"luv":[33.8952997814050718,90.239744522062125,23.669304365681274],"rgb":[0.6,0.133333333333333331,0.0666666666666666657],"xyz":[0.138097449929933364,0.0795801844153397,0.0133925496503594314],"hpluv":[14.6972380002076104,349.257308780581,33.8952997814050718],"hsluv":[14.6972380002076104,92.1483909924374274,33.8952997814050718]},"#992222":{"lch":[34.0515850466810335,89.6330213591727,12.1770506300618084],"luv":[34.0515850466810335,87.6163196410811338,18.9065874902323579],"rgb":[0.6,0.133333333333333331,0.133333333333333331],"xyz":[0.139972808068410365,0.0803303276707305197,0.0232694358463386292],"hpluv":[12.1770506300618084,334.018122077437397,34.0515850466810335],"hsluv":[12.1770506300618084,78.2707991117683,34.0515850466810335]},"#992233":{"lch":[34.3068003204445446,84.4135643942939282,7.88651435003668233],"luv":[34.3068003204445446,83.6151628365757773,11.58250394183076],"rgb":[0.6,0.133333333333333331,0.2],"xyz":[0.143060558800868098,0.0815654279637136326,0.0395315897039497724],"hpluv":[7.88651435003668233,312.227643050581207,34.3068003204445446],"hsluv":[7.88651435003668233,79.3008398259009226,34.3068003204445446]},"#992244":{"lch":[34.6707661525426,78.4682482149262199,1.45557545410962708],"luv":[34.6707661525426,78.4429281517087134,1.99323879782018309],"rgb":[0.6,0.133333333333333331,0.266666666666666663],"xyz":[0.147518554045086986,0.0833486260614012126,0.0630103646568364],"hpluv":[1.45557545410962708,287.190351340663,34.6707661525426],"hsluv":[1.45557545410962708,80.6267396657693212,34.6707661525426]},"#992255":{"lch":[35.149531709850983,73.0418005898087443,352.659616011821072],"luv":[35.149531709850983,72.4431965063170082,-9.33209051330535821],"rgb":[0.6,0.133333333333333331,0.333333333333333315],"xyz":[0.153480968084449,0.0857335916771460455,0.0944124119308103193],"hpluv":[352.659616011821072,263.688538908073838,35.149531709850983],"hsluv":[352.659616011821072,82.1555178352066804,35.149531709850983]},"#992266":{"lch":[35.7459223236079495,69.5043059181480203,341.734006615383123],"luv":[35.7459223236079495,66.0021002604389793,-21.7846574995905513],"rgb":[0.6,0.133333333333333331,0.4],"xyz":[0.161065963857957156,0.0887675899865493639,0.134360056337954281],"hpluv":[341.734006615383123,246.731460763727796,35.7459223236079495],"hsluv":[341.734006615383123,83.7834402291280753,35.7459223236079495]},"#992277":{"lch":[36.4599553630224946,68.9051746310403104,329.662355423262511],"luv":[36.4599553630224946,59.4695672743266783,-34.8036443370302],"rgb":[0.6,0.133333333333333331,0.466666666666666674],"xyz":[0.17037997687815909,0.0924931951946301734,0.18341385824435219],"hpluv":[329.662355423262511,239.814275331209444,36.4599553630224946],"hsluv":[329.662355423262511,85.4170781092293225,36.4599553630224946]},"#992288":{"lch":[37.2892540647929,71.5563678213307242,317.925484235555643],"luv":[37.2892540647929,53.1144286836587369,-47.9496740488411],"rgb":[0.6,0.133333333333333331,0.533333333333333326],"xyz":[0.18152039398010289,0.0969493620354077712,0.242086721647924358],"hpluv":[317.925484235555643,243.502777039008038,37.2892540647929],"hsluv":[317.925484235555643,86.9852623869732,37.2892540647929]},"#992299":{"lch":[38.2294870734457888,77.015786119064046,307.715012949243771],"luv":[38.2294870734457888,47.1132010795059841,-60.9243596238766827],"rgb":[0.6,0.133333333333333331,0.6],"xyz":[0.194577358089175617,0.102172147679036929,0.310853399289042265],"hpluv":[307.715012949243771,255.635172818446421,38.2294870734457888],"hsluv":[307.715012949243771,88.441984096309227,38.2294870734457888]},"#9922aa":{"lch":[39.2748221448681178,84.484081905089468,299.468150353755561],"luv":[39.2748221448681178,41.5610713460956234,-73.5543162833468],"rgb":[0.6,0.133333333333333331,0.66666666666666663],"xyz":[0.209635051054428145,0.108195224865138023,0.390157248906040865],"hpluv":[299.468150353755561,272.960615272696657,39.2748221448681178],"hsluv":[299.468150353755561,89.7633288768494708,39.2748221448681178]},"#9922bb":{"lch":[40.4183688993281436,93.2013493596814726,293.05045530637],"luv":[40.4183688993281436,36.4922039393154094,-85.7601922462677919],"rgb":[0.6,0.133333333333333331,0.733333333333333282],"xyz":[0.22677264316176482,0.115050261708072782,0.480415234004682612],"hpluv":[293.05045530637,292.605673863240838,40.4183688993281436],"hsluv":[293.05045530637,90.9419133161227222,40.4183688993281436]},"#9922cc":{"lch":[41.6525852773545182,102.609691310931794,288.11294916137831],"luv":[41.6525852773545182,31.900454524651952,-97.5249186210648702],"rgb":[0.6,0.133333333333333331,0.8],"xyz":[0.246065018605486546,0.122767211885561583,0.582021744674952712],"hpluv":[288.11294916137831,312.597676326075884,41.6525852773545182],"hsluv":[288.11294916137831,91.9812251551093851,41.6525852773545182]},"#9922dd":{"lch":[42.969628845807982,112.350489371469905,284.303043907998301],"luv":[42.969628845807982,27.7562437333976213,-108.867917201630149],"rgb":[0.6,0.133333333333333331,0.866666666666666696],"xyz":[0.267583344156120062,0.131374542105815117,0.69535159257495871],"hpluv":[284.303043907998301,331.781902020401162,42.969628845807982],"hsluv":[284.303043907998301,92.8910125551507235,42.969628845807982]},"#9922ee":{"lch":[44.361642902098545,122.210344632057584,281.334390799049743],"luv":[44.361642902098545,24.018574136526297,-119.826860225637532],"rgb":[0.6,0.133333333333333331,0.933333333333333348],"xyz":[0.291395524422294827,0.140899414212285162,0.820762408643481933],"hpluv":[281.334390799049743,349.574442537581717,44.361642902098545],"hsluv":[281.334390799049743,93.6839973987951566,44.361642902098545]},"#9922ff":{"lch":[45.8209755847726612,132.069283427413211,278.992348895848238],"luv":[45.8209755847726612,20.6427685166220094,-130.446049127597433],"rgb":[0.6,0.133333333333333331,1],"xyz":[0.317566572832126193,0.151367833576217858,0.958596596935263889],"hpluv":[278.992348895848238,365.74366826955071,45.8209755847726612],"hsluv":[278.992348895848238,99.9999999999993179,45.8209755847726612]},"#bb2200":{"lch":[40.7526421249889452,122.145166616692975,14.6188079362681389],"luv":[40.7526421249889452,118.190884669319914,30.8278528104570881],"rgb":[0.733333333333333282,0.133333333333333331,0],"xyz":[0.21065061901047108,0.117107386045888315,0.0115127963065494235],"hpluv":[14.6188079362681389,380.329350781024857,40.7526421249889452],"hsluv":[14.6188079362681389,100.000000000002217,40.7526421249889452]},"#bb2211":{"lch":[40.8179368215716849,120.355879944515436,13.7706881972771793],"luv":[40.8179368215716849,116.896392622501153,28.6491052053056343],"rgb":[0.733333333333333282,0.133333333333333331,0.0666666666666666657],"xyz":[0.211662284510108212,0.117512052245743168,0.0168409012713050532],"hpluv":[13.7706881972771793,374.158477594779924,40.8179368215716849],"hsluv":[13.7706881972771793,94.6800257514418,40.8179368215716849]},"#bb2222":{"lch":[40.9385803904414161,117.208042434762348,12.1770506300618102],"luv":[40.9385803904414161,114.570915436608942,24.7230772236478238],"rgb":[0.733333333333333282,0.133333333333333331,0.133333333333333331],"xyz":[0.213537642648585213,0.118262195501133982,0.0267177874672842527],"hpluv":[12.1770506300618102,363.298797482753,40.9385803904414161],"hsluv":[12.1770506300618102,85.1321689328196101,40.9385803904414161]},"#bb2233":{"lch":[41.136111673530813,112.480172956632245,9.49666640172232235],"luv":[41.136111673530813,110.938654987290519,18.5581286223806821],"rgb":[0.733333333333333282,0.133333333333333331,0.2],"xyz":[0.216625393381042974,0.119497295794117095,0.042979941324895396],"hpluv":[9.49666640172232235,346.970109935861444,41.136111673530813],"hsluv":[9.49666640172232235,85.6217357677037398,41.136111673530813]},"#bb2244":{"lch":[41.4189140922405201,106.57909239531196,5.51995404221549],"luv":[41.4189140922405201,106.084859394728952,10.2520994439692306],"rgb":[0.733333333333333282,0.133333333333333331,0.266666666666666663],"xyz":[0.221083388625261834,0.121280493891804675,0.0664587162777820345],"hpluv":[5.51995404221549,326.522141050690152,41.4189140922405201],"hsluv":[5.51995404221549,86.2742612371986297,41.4189140922405201]},"#bb2255":{"lch":[41.7928521194743823,100.22104851316422,0.0579838467833058424],"luv":[41.7928521194743823,100.220997191859041,0.101424589714973798],"rgb":[0.733333333333333282,0.133333333333333331,0.333333333333333315],"xyz":[0.227045802664623819,0.123665459507549508,0.097860763551755936],"hpluv":[0.0579838467833058424,304.296010337655673,41.7928521194743823],"hsluv":[0.0579838467833058424,87.0597094656736772,41.7928521194743823]},"#bb2266":{"lch":[42.2616671880265216,94.3342448936905,353.011685321171171],"luv":[42.2616671880265216,93.6334344607092106,-11.4773564358193614],"rgb":[0.733333333333333282,0.133333333333333331,0.4],"xyz":[0.234630798438132,0.126699457816952826,0.137808407958899898],"hpluv":[353.011685321171171,283.244886623536,42.2616671880265216],"hsluv":[353.011685321171171,87.937804292381287,42.2616671880265216]},"#bb2277":{"lch":[42.8272221099346666,89.9002723684957,344.496654306277264],"luv":[42.8272221099346666,86.6292371691086771,-24.0298614109202155],"rgb":[0.733333333333333282,0.133333333333333331,0.466666666666666674],"xyz":[0.24394481145833391,0.13042506302503365,0.186862209865297807],"hpluv":[344.496654306277264,266.367005402095344,42.8272221099346666],"hsluv":[344.496654306277264,88.8655868844719805,42.8272221099346666]},"#bb2288":{"lch":[43.4897067779173554,87.7363054907772693,334.961981200390596],"luv":[43.4897067779173554,79.4914755013727898,-37.1317199141871441],"rgb":[0.733333333333333282,0.133333333333333331,0.533333333333333326],"xyz":[0.255085228560277766,0.13488122986581122,0.245535073268869974],"hpluv":[334.961981200390596,255.995416581420926,43.4897067779173554],"hsluv":[334.961981200390596,89.8036443318747786,43.4897067779173554]},"#bb2299":{"lch":[44.2478449340908639,88.2751432264235092,325.159464012784042],"luv":[44.2478449340908639,72.4514028672968635,-50.4310929309115],"rgb":[0.733333333333333282,0.133333333333333331,0.6],"xyz":[0.268142192669350465,0.140104015509440405,0.314301750909987909],"hpluv":[325.159464012784042,253.154489640486645,44.2478449340908639],"hsluv":[325.159464012784042,90.7199745934293844,44.2478449340908639]},"#bb22aa":{"lch":[45.0991127685299062,91.4705260319517919,315.891475419905078],"luv":[45.0991127685299062,65.6779186933914758,-63.6652819727222195],"rgb":[0.733333333333333282,0.133333333333333331,0.66666666666666663],"xyz":[0.283199885634603,0.146127092695541499,0.39360560052698651],"hpluv":[315.891475419905078,257.366789521381691,45.0991127685299062],"hsluv":[315.891475419905078,91.5914304646717,45.0991127685299062]},"#bb22bb":{"lch":[46.0399667792549678,96.9048462314552,307.715012949243658],"luv":[46.0399667792549678,59.2800221375787615,-76.6578645574617497],"rgb":[0.733333333333333282,0.133333333333333331,0.733333333333333282],"xyz":[0.30033747774193964,0.152982129538476258,0.483863585625628256],"hpluv":[307.715012949243658,267.0851991180906,46.0399667792549678],"hsluv":[307.715012949243658,92.4033444706684,46.0399667792549678]},"#bb22cc":{"lch":[47.066072507765945,104.009692587178989,300.837938637053412],"luv":[47.066072507765945,53.3165662395356,-89.3048706202785496],"rgb":[0.733333333333333282,0.133333333333333331,0.8],"xyz":[0.319629853185661394,0.16069907971596506,0.585470096295898412],"hpluv":[300.837938637053412,280.417543020287,47.066072507765945],"hsluv":[300.837938637053412,93.1481326309998,47.066072507765945]},"#bb22dd":{"lch":[48.1725242595717589,112.247547842848149,295.20893392435471],"luv":[48.1725242595717589,47.808517424121824,-101.557164486017044],"rgb":[0.733333333333333282,0.133333333333333331,0.866666666666666696],"xyz":[0.341148178736294938,0.169306409936218594,0.69879994419590441],"hpluv":[295.20893392435471,295.676483579310798,48.1725242595717589],"hsluv":[295.20893392435471,93.8235497257627316,48.1725242595717589]},"#bb22ee":{"lch":[49.3540469689012724,121.194036197623419,290.655339197387],"luv":[49.3540469689012724,42.7506603945962169,-113.403595382583688],"rgb":[0.733333333333333282,0.133333333333333331,0.933333333333333348],"xyz":[0.364960359002469703,0.178831282042688611,0.824210760264427633],"hpluv":[290.655339197387,311.600255956968681,49.3540469689012724],"hsluv":[290.655339197387,94.4310255689598,49.3540469689012724]},"#bb22ff":{"lch":[50.6051737457033397,130.547024148317973,286.97844412333734],"luv":[50.6051737457033397,38.1212848334983647,-124.85709093449519],"rgb":[0.733333333333333282,0.133333333333333331,1],"xyz":[0.391131407412301069,0.189299701406621335,0.962044948556209478],"hpluv":[286.97844412333734,327.349274436557835,50.6051737457033397],"hsluv":[286.97844412333734,99.9999999999991616,50.6051737457033397]},"#993300":{"lch":[36.2545465004255476,86.9834057059747749,20.3835344027483316],"luv":[36.2545465004255476,81.5366895093473,30.2965531383769893],"rgb":[0.6,0.2,0],"xyz":[0.14320350651930705,0.0914109623935066423,0.0101036853819406816],"hpluv":[20.3835344027483316,304.448092478673459,36.2545465004255476],"hsluv":[20.3835344027483316,100.00000000000226,36.2545465004255476]},"#993311":{"lch":[36.3315413581227133,85.0112276295678839,19.0571063974297203],"luv":[36.3315413581227133,80.3520694714869279,27.7570487396543],"rgb":[0.6,0.2,0.0666666666666666657],"xyz":[0.144215172018944182,0.0918156285933615,0.0154317903466963131],"hpluv":[19.0571063974297203,296.914762557758195,36.3315413581227133],"hsluv":[19.0571063974297203,93.1288353931581,36.3315413581227133]},"#993322":{"lch":[36.4736730302835852,81.6150828115545863,16.5278497598068661],"luv":[36.4736730302835852,78.2428757472059573,23.217970134019108],"rgb":[0.6,0.2,0.133333333333333331],"xyz":[0.146090530157421183,0.0925657718487523096,0.0253086765426755109],"hpluv":[16.5278497598068661,283.942401799749632,36.4736730302835852],"hsluv":[16.5278497598068661,80.9121244795507124,36.4736730302835852]},"#993333":{"lch":[36.7060271438600836,76.7221326388105638,12.1770506300618369],"luv":[36.7060271438600836,74.9959199734098121,16.1832513417159589],"rgb":[0.6,0.2,0.2],"xyz":[0.149178280889878945,0.0938008721417354224,0.0415708304002866541],"hpluv":[12.1770506300618369,265.229979343802,36.7060271438600836],"hsluv":[12.1770506300618369,62.1516051360361459,36.7060271438600836]},"#993344":{"lch":[37.0379214664673668,71.077614272095758,5.55118145677439934],"luv":[37.0379214664673668,70.7442733159460744,6.87568495580995354],"rgb":[0.6,0.2,0.266666666666666663],"xyz":[0.153636276134097804,0.095584070239423,0.0650496053531732926],"hpluv":[5.55118145677439934,243.514912685509444,37.0379214664673668],"hsluv":[5.55118145677439934,64.3097526797848644,37.0379214664673668]},"#993355":{"lch":[37.4754277574064858,65.8722356173568073,356.298722520573506],"luv":[37.4754277574064858,65.7348379379961614,-4.25235305377523254],"rgb":[0.6,0.2,0.333333333333333315],"xyz":[0.15959869017345979,0.0979690358551678353,0.0964516526271472],"hpluv":[356.298722520573506,223.046355214908289,37.4754277574064858],"hsluv":[356.298722520573506,66.8387430740197885,37.4754277574064858]},"#993366":{"lch":[38.0218512407041942,62.5198646461221941,344.559385799457459],"luv":[38.0218512407041942,60.2633303059628602,-16.6452544529622166],"rgb":[0.6,0.2,0.4],"xyz":[0.167183685946967975,0.101003034164571154,0.136399297034291156],"hpluv":[344.559385799457459,208.652742449272864,38.0218512407041942],"hsluv":[344.559385799457459,69.5808124884664778,38.0218512407041942]},"#993377":{"lch":[38.6780657603296234,62.1964572713534949,331.414072321130675],"luv":[38.6780657603296234,54.6147414507713478,-29.7595247504508862],"rgb":[0.6,0.2,0.466666666666666674],"xyz":[0.17649769896716988,0.104728639372651963,0.185453098940689065],"hpluv":[331.414072321130675,204.051704505442274,38.6780657603296234],"hsluv":[331.414072321130675,72.3848063102254571,38.6780657603296234]},"#993388":{"lch":[39.4428302118465908,65.3028355433768155,318.6521895607018],"luv":[39.4428302118465908,49.0236963230770257,-43.1409031990296086],"rgb":[0.6,0.2,0.533333333333333326],"xyz":[0.187638116069113736,0.109184806213429561,0.244125962344261233],"hpluv":[318.6521895607018,210.08899125401652,39.4428302118465908],"hsluv":[318.6521895607018,75.1271370389489306,39.4428302118465908]},"#993399":{"lch":[40.3131218316236897,71.3679900272828149,307.715012949243942],"luv":[40.3131218316236897,43.6582502656979656,-56.4565955781255226],"rgb":[0.6,0.2,0.6],"xyz":[0.200695080178186436,0.114407591857058719,0.31289263998537914],"hpluv":[307.715012949243942,224.64479534599792,40.3131218316236897],"hsluv":[307.715012949243942,77.7202573427554313,40.3131218316236897]},"#9933aa":{"lch":[41.2844862133256925,79.5040030135899372,299.063916375798101],"luv":[41.2844862133256925,38.6218522191785354,-69.4927264276258825],"rgb":[0.6,0.2,0.66666666666666663],"xyz":[0.215752773143439,0.120430669043159827,0.39219648960237774],"hpluv":[299.063916375798101,244.366370382710016,41.2844862133256925],"hsluv":[299.063916375798101,80.1114582016200814,41.2844862133256925]},"#9933bb":{"lch":[42.3513893410192637,88.8787943355742,292.467029257400327],"luv":[42.3513893410192637,33.9651845170614,-82.1328577566084],"rgb":[0.6,0.2,0.733333333333333282],"xyz":[0.232890365250775611,0.127285705886094586,0.482454474701019487],"hpluv":[292.467029257400327,266.299173904300574,42.3513893410192637],"hsluv":[292.467029257400327,82.2764131802073848,42.3513893410192637]},"#9933cc":{"lch":[43.5075532005759911,98.8962106119506785,287.477062230467],"luv":[43.5075532005759911,29.700902070050418,-94.3308904316533],"rgb":[0.6,0.2,0.8],"xyz":[0.252182740694497365,0.135002656063583387,0.584060985371289698],"hpluv":[287.477062230467,288.439223502221068,43.5075532005759911],"hsluv":[287.477062230467,84.2111914011780129,43.5075532005759911]},"#9933dd":{"lch":[44.7462588110156716,109.182503226938962,283.677602435208257],"luv":[44.7462588110156716,25.8171133061496079,-106.086265234656878],"rgb":[0.6,0.2,0.866666666666666696],"xyz":[0.273701066245130908,0.143609986283836921,0.697390833271295696],"hpluv":[283.677602435208257,309.624731809924413,44.7462588110156716],"hsluv":[283.677602435208257,85.9249592908513478,44.7462588110156716]},"#9933ee":{"lch":[46.0606056636097208,119.52114969179982,280.747238708189116],"luv":[46.0606056636097208,22.2879081330132465,-117.42467532296601],"rgb":[0.6,0.2,0.933333333333333348],"xyz":[0.297513246511305618,0.153134858390306938,0.822801649339818919],"hpluv":[280.747238708189116,329.271729063034456,46.0606056636097208],"hsluv":[280.747238708189116,90.0471632149093324,46.0606056636097208]},"#9933ff":{"lch":[47.4437223771408512,129.794782591236896,278.453521985212944],"luv":[47.4437223771408512,19.0807517890999456,-128.38461940228359],"rgb":[0.6,0.2,1],"xyz":[0.323684294921137039,0.163603277754239662,0.960635837631600764],"hpluv":[278.453521985212944,347.150508646733101,47.4437223771408512],"hsluv":[278.453521985212944,99.999999999999261,47.4437223771408512]},"#bb3300":{"lch":[42.6640590509798585,114.303280915030754,17.3320761189885637],"luv":[42.6640590509798585,109.113245500432,34.0520143942012652],"rgb":[0.733333333333333282,0.2,0],"xyz":[0.216768341099481898,0.129342830223910105,0.0135520370028863052],"hpluv":[17.3320761189885637,339.966286272656077,42.6640590509798585],"hsluv":[17.3320761189885637,100.000000000002302,42.6640590509798585]},"#bb3311":{"lch":[42.7251747888925806,112.6335820513806,16.4819551739351198],"luv":[42.7251747888925806,108.005370801027979,31.9556518296457135],"rgb":[0.733333333333333282,0.2,0.0666666666666666657],"xyz":[0.21778000659911903,0.129747496423764958,0.0188801419676419349],"hpluv":[16.4819551739351198,334.52099084556113,42.7251747888925806],"hsluv":[16.4819551739351198,95.1490253673008368,42.7251747888925806]},"#bb3322":{"lch":[42.8381318005571785,109.688338781622747,14.8808580240480524],"luv":[42.8381318005571785,106.009603708482885,28.1690536980292627],"rgb":[0.733333333333333282,0.2,0.133333333333333331],"xyz":[0.219655364737596032,0.130497639679155786,0.0287570281636211345],"hpluv":[14.8808580240480524,324.914627119009424,42.8381318005571785],"hsluv":[14.8808580240480524,86.4181297836030211,42.8381318005571785]},"#bb3333":{"lch":[43.023174549414108,105.246046554892928,12.1770506300618351],"luv":[43.023174549414108,102.878058957341324,22.1998941575065203],"rgb":[0.733333333333333282,0.2,0.2],"xyz":[0.222743115470053765,0.131732739972138885,0.0450191820212322777],"hpluv":[12.1770506300618351,310.414975564112126,43.023174549414108],"hsluv":[12.1770506300618351,72.7398502888125762,43.023174549414108]},"#bb3344":{"lch":[43.2883038991094082,99.6704509181560496,8.14070356751482116],"luv":[43.2883038991094082,98.6661026897846085,14.1137863891102171],"rgb":[0.733333333333333282,0.2,0.266666666666666663],"xyz":[0.227201110714272653,0.133515938069826479,0.0684979569741189231],"hpluv":[8.14070356751482116,292.169703441320848,43.2883038991094082],"hsluv":[8.14070356751482116,73.8775464962187556,43.2883038991094082]},"#bb3355":{"lch":[43.6392404977582515,93.6285749325397632,2.54995992142812078],"luv":[43.6392404977582515,93.5358645919991289,4.16558266337591299],"rgb":[0.733333333333333282,0.2,0.333333333333333315],"xyz":[0.233163524753634666,0.135900903685571312,0.0999000042480928246],"hpluv":[2.54995992142812078,272.251672456619758,43.6392404977582515],"hsluv":[2.54995992142812078,75.2585830443305781,43.6392404977582515]},"#bb3366":{"lch":[44.0797950159491521,88.0182600678664784,355.263953050872033],"luv":[44.0797950159491521,87.7177339493983794,-7.26727295188107547],"rgb":[0.733333333333333282,0.2,0.4],"xyz":[0.240748520527142823,0.138934901994974602,0.1398476486552368],"hpluv":[355.263953050872033,253.380121177946961,44.0797950159491521],"hsluv":[355.263953050872033,76.8177075569623753,44.0797950159491521]},"#bb3377":{"lch":[44.6120878205181057,83.829516929164356,346.367941021132197],"luv":[44.6120878205181057,81.4679789337245239,-19.757437005625782],"rgb":[0.733333333333333282,0.2,0.466666666666666674],"xyz":[0.250062533547344756,0.142660507203055426,0.188901450561634709],"hpluv":[346.367941021132197,238.442541154787421,44.6120878205181057],"hsluv":[346.367941021132197,78.4827471040858597,44.6120878205181057]},"#bb3388":{"lch":[45.2367248685103078,81.924239827592,336.329010851829594],"luv":[45.2367248685103078,75.03162551729379,-32.8912791414593499],"rgb":[0.733333333333333282,0.2,0.533333333333333326],"xyz":[0.261202950649288557,0.147116674043833023,0.247574313965206849],"hpluv":[336.329010851829594,229.805591899252,45.2367248685103078],"hsluv":[336.329010851829594,80.18501002925629,45.2367248685103078]},"#bb3399":{"lch":[45.9529692994627226,82.7837935230449347,325.982908927834501],"luv":[45.9529692994627226,68.6170634488305495,-46.3125800806357404],"rgb":[0.733333333333333282,0.2,0.6],"xyz":[0.274259914758361312,0.152339459687462181,0.316340991606324784],"hpluv":[325.982908927834501,228.597286714525296,45.9529692994627226],"hsluv":[325.982908927834501,81.8663863744617402,45.9529692994627226]},"#bb33aa":{"lch":[46.7589216358443664,86.3774619636168524,316.238480868355282],"luv":[46.7589216358443664,62.3839556422166126,-59.7436859735489136],"rgb":[0.733333333333333282,0.2,0.66666666666666663],"xyz":[0.289317607723613812,0.158362536873563275,0.395644841223323385],"hpluv":[316.238480868355282,234.409537876970433,46.7589216358443664],"hsluv":[316.238480868355282,83.4827024616804181,46.7589216358443664]},"#bb33bb":{"lch":[47.6517090930198108,92.2657594707273461,307.715012949243828],"luv":[47.6517090930198108,56.4421334605023191,-72.9880534138084585],"rgb":[0.733333333333333282,0.2,0.733333333333333282],"xyz":[0.306455199830950487,0.165217573716498034,0.485902826321965131],"hpluv":[307.715012949243828,245.697877980233102,47.6517090930198108],"hsluv":[307.715012949243828,85.0039827354176,47.6517090930198108]},"#bb33cc":{"lch":[48.6276786348411179,99.8443429984049402,300.621719827817344],"luv":[48.6276786348411179,50.8574804969275078,-85.9209491700817551],"rgb":[0.733333333333333282,0.2,0.8],"xyz":[0.325747575274672241,0.172934523893986836,0.587509336992235287],"hpluv":[300.621719827817344,260.542905615006589,48.6276786348411179],"hsluv":[300.621719827817344,86.4127454729900535,48.6276786348411179]},"#bb33dd":{"lch":[49.6825862492002273,108.545865187730342,294.87630802524211],"luv":[49.6825862492002273,45.6609809337446322,-98.4747666639588459],"rgb":[0.733333333333333282,0.2,0.866666666666666696],"xyz":[0.347265900825305729,0.18154185411424037,0.700839184892241285],"hpluv":[294.87630802524211,277.235228758227834,49.6825862492002273],"hsluv":[294.87630802524211,87.70141038259,49.6825862492002273]},"#bb33ee":{"lch":[50.8117750205940695,117.927813495206621,290.271422146528892],"luv":[50.8117750205940695,40.8581913283156268,-110.623584271795281],"rgb":[0.733333333333333282,0.2,0.933333333333333348],"xyz":[0.371078081091480494,0.191066726220710414,0.826250000960764508],"hpluv":[290.271422146528892,294.504005794210514,50.8117750205940695],"hsluv":[290.271422146528892,88.8695912604113687,50.8117750205940695]},"#bb33ff":{"lch":[52.0103359867018611,127.679308171663493,286.581788346289272],"luv":[52.0103359867018611,36.4375993761859931,-122.36955130625914],"rgb":[0.733333333333333282,0.2,1],"xyz":[0.39724912950131186,0.201535145584643111,0.964084189252546353],"hpluv":[286.581788346289272,311.508705442628695,52.0103359867018611],"hsluv":[286.581788346289272,99.9999999999991616,52.0103359867018611]},"#994400":{"lch":[39.4244247356725168,77.6708634712958315,27.0445710144404678],"luv":[39.4244247356725168,69.1777945884316097,35.3156589667733627],"rgb":[0.6,0.266666666666666663,0],"xyz":[0.152036077002273062,0.109076103359438958,0.0130478755429292749],"hpluv":[27.0445710144404678,249.995444431237956,39.4244247356725168],"hsluv":[27.0445710144404678,100.000000000002302,39.4244247356725168]},"#994411":{"lch":[39.4928806474909351,75.8240556098730849,25.7566327743493559],"luv":[39.4928806474909351,68.2907795083206395,32.9493071744317447],"rgb":[0.6,0.266666666666666663,0.0666666666666666657],"xyz":[0.153047742501910194,0.109480769559293811,0.0183759805076849081],"hpluv":[25.7566327743493559,243.628181561178451,39.4928806474909351],"hsluv":[25.7566327743493559,94.1783894720599,39.4928806474909351]},"#994422":{"lch":[39.6193348047394807,72.6128884539244268,23.2788782073808527],"luv":[39.6193348047394807,66.7016282141236161,28.6971141964989123],"rgb":[0.6,0.266666666666666663,0.133333333333333331],"xyz":[0.154923100640387196,0.110230912814684626,0.0282528667036641],"hpluv":[23.2788782073808527,232.565805292122405,39.6193348047394807],"hsluv":[23.2788782073808527,83.7619004180350402,39.6193348047394807]},"#994433":{"lch":[39.8262957210095,67.9099451463512764,18.9473520481579776],"luv":[39.8262957210095,64.2304033034813671,22.0503047882012062],"rgb":[0.6,0.266666666666666663,0.2],"xyz":[0.158010851372844929,0.111466013107667739,0.0445150205612752509],"hpluv":[18.9473520481579776,216.372863201479333,39.8262957210095],"hsluv":[18.9473520481579776,67.5996848307310358,39.8262957210095]},"#994444":{"lch":[40.1224193460439267,62.3513134554678956,12.1770506300619097],"luv":[40.1224193460439267,60.9484376060972082,13.1519672672071142],"rgb":[0.6,0.266666666666666663,0.266666666666666663],"xyz":[0.162468846617063817,0.113249211205355318,0.0679937955141618894],"hpluv":[12.1770506300619097,197.195872414250289,40.1224193460439267],"hsluv":[12.1770506300619097,46.2091051210312429,40.1224193460439267]},"#994455":{"lch":[40.5136546800823041,57.0624194645929776,2.37288379618767387],"luv":[40.5136546800823041,57.0134905267935324,2.36254377830001205],"rgb":[0.6,0.266666666666666663,0.333333333333333315],"xyz":[0.16843126065642583,0.115634176821100151,0.0993958427881357909],"hpluv":[2.37288379618767387,178.726144329621945,40.5136546800823041],"hsluv":[2.37288379618767387,49.5312591923758063,40.5136546800823041]},"#994466":{"lch":[41.0036603670202382,53.5416261730848646,349.413399835018254],"luv":[41.0036603670202382,52.6302589877717111,-9.83674601372026558],"rgb":[0.6,0.266666666666666663,0.4],"xyz":[0.176016256429934,0.11866817513050347,0.139343487195279753],"hpluv":[349.413399835018254,165.694562401887765,41.0036603670202382],"hsluv":[349.413399835018254,53.2076295784804643,41.0036603670202382]},"#994477":{"lch":[41.594070304433572,53.2098960104776424,334.460192523955527],"luv":[41.594070304433572,48.0105420863306946,-22.9408125841809181],"rgb":[0.6,0.266666666666666663,0.466666666666666674],"xyz":[0.18533026945013592,0.122393780338584279,0.188397289101677662],"hpluv":[334.460192523955527,162.330570569563577,41.594070304433572],"hsluv":[334.460192523955527,57.0495308436177666,41.594070304433572]},"#994488":{"lch":[42.2847251453823887,56.6612659292255287,319.901700116735],"luv":[42.2847251453823887,43.3424978513170416,-36.4955742071691631],"rgb":[0.6,0.266666666666666663,0.533333333333333326],"xyz":[0.196470686552079721,0.126849947179361877,0.247070152505249829],"hpluv":[319.901700116735,170.036472949794188,42.2847251453823887],"hsluv":[319.901700116735,60.8903164523640683,42.2847251453823887]},"#994499":{"lch":[43.0739091348830314,63.3829857303906,307.715012949244226],"luv":[43.0739091348830314,38.7735489334465555,-50.1399519665159232],"rgb":[0.6,0.266666666666666663,0.6],"xyz":[0.209527650661152448,0.132072732822991035,0.315836830146367764],"hpluv":[307.715012949244226,186.722963823125951,43.0739091348830314],"hsluv":[307.715012949244226,64.600458594127474,43.0739091348830314]},"#9944aa":{"lch":[43.9586008361636686,72.3252063731545,298.405725418599673],"luv":[43.9586008361636686,34.4059763632637896,-63.6173267861038099],"rgb":[0.6,0.266666666666666663,0.66666666666666663],"xyz":[0.224585343626404976,0.138095810009092129,0.395140679763366365],"hpluv":[298.405725418599673,208.77819920337123,43.9586008361636686],"hsluv":[298.405725418599673,68.0913106207235,43.9586008361636686]},"#9944bb":{"lch":[44.9347323991438827,82.5300732915554676,291.540124858279853],"luv":[44.9347323991438827,30.3011407548278626,-76.7662286846607316],"rgb":[0.6,0.266666666666666663,0.733333333333333282],"xyz":[0.241722935733741651,0.144950846852026888,0.485398664862008111],"hpluv":[291.540124858279853,233.060888419388505,44.9347323991438827],"hsluv":[291.540124858279853,71.3111773355981882,44.9347323991438827]},"#9944cc":{"lch":[45.9974464532923903,93.3382836250318206,286.486143775676851],"luv":[45.9974464532923903,26.4878609436744341,-89.5009967134190561],"rgb":[0.6,0.266666666666666663,0.8],"xyz":[0.261015311177463349,0.152667797029515689,0.587005175532278267],"hpluv":[286.486143775676851,257.492992496327645,45.9974464532923903],"hsluv":[286.486143775676851,74.2376853125076792,45.9974464532923903]},"#9944dd":{"lch":[47.1413389271288139,104.350309752399141,282.717215233582351],"luv":[47.1413389271288139,22.9716047676972792,-101.790434323753402],"rgb":[0.6,0.266666666666666663,0.866666666666666696],"xyz":[0.282533636728096949,0.161275127249769223,0.700335023432284265],"hpluv":[282.717215233582351,280.886686990529654,47.1413389271288139],"hsluv":[282.717215233582351,78.691216526215527,47.1413389271288139]},"#9944ee":{"lch":[48.3606780479664593,115.341161543855208,279.855683836472622],"luv":[48.3606780479664593,19.7426125181249787,-113.638958096441911],"rgb":[0.6,0.266666666666666663,0.933333333333333348],"xyz":[0.306345816994271658,0.170799999356239268,0.825745839500807488],"hpluv":[279.855683836472622,302.643440789384783,48.3606780479664593],"hsluv":[279.855683836472622,89.2619995530309325,48.3606780479664593]},"#9944ff":{"lch":[49.6495929972458185,126.19285787586071,277.642335930208503],"luv":[49.6495929972458185,16.7822322716138856,-125.071955525044785],"rgb":[0.6,0.266666666666666663,1],"xyz":[0.332516865404103079,0.181268418720171964,0.963580027792589333],"hpluv":[277.642335930208503,322.521305960549284,49.6495929972458185],"hsluv":[277.642335930208503,99.9999999999991616,49.6495929972458185]},"#bb4400":{"lch":[45.2216387767487547,104.837609625168909,21.4216552556228201],"luv":[45.2216387767487547,97.5952013308911,38.2896992558330354],"rgb":[0.733333333333333282,0.266666666666666663,0],"xyz":[0.225600911582447911,0.147007971189842435,0.0164962271638749],"hpluv":[21.4216552556228201,294.177965476355098,45.2216387767487547],"hsluv":[21.4216552556228201,100.000000000002373,45.2216387767487547]},"#bb4411":{"lch":[45.2777618800582076,103.283777149094803,20.576768268141489],"luv":[45.2777618800582076,96.6944911384892123,36.3003306548646947],"rgb":[0.733333333333333282,0.266666666666666663,0.0666666666666666657],"xyz":[0.226612577082085043,0.147412637389697287,0.0218243321286305317],"hpluv":[20.576768268141489,289.458620037032802,45.2777618800582076],"hsluv":[20.576768268141489,95.6967439910137614,45.2777618800582076]},"#bb4422":{"lch":[45.3815280810129238,100.53232916519147,18.9799525675269258],"luv":[45.3815280810129238,95.0666309197234,32.6968636561903381],"rgb":[0.733333333333333282,0.266666666666666663,0.133333333333333331],"xyz":[0.228487935220562044,0.148162780645088116,0.0317012183246097243],"hpluv":[18.9799525675269258,281.103307599105051,45.3815280810129238],"hsluv":[18.9799525675269258,87.925891065222288,45.3815280810129238]},"#bb4433":{"lch":[45.5516172521931111,96.3559005693685862,16.2666991179303722],"luv":[45.5516172521931111,92.4986058403436147,26.9901369416087924],"rgb":[0.733333333333333282,0.266666666666666663,0.2],"xyz":[0.231575685953019805,0.149397880938071215,0.0479633721822208675],"hpluv":[16.2666991179303722,268.419362556396,45.5516172521931111],"hsluv":[16.2666991179303722,75.6846484949249572,45.5516172521931111]},"#bb4444":{"lch":[45.7955406359936816,91.066890863790789,12.177050630061844],"luv":[45.7955406359936816,89.0179277419259734,19.2090382927107299],"rgb":[0.733333333333333282,0.266666666666666663,0.266666666666666663],"xyz":[0.236033681197238665,0.151181079035758809,0.0714421471351075],"hpluv":[12.177050630061844,252.334507458167678,45.7955406359936816],"hsluv":[12.177050630061844,59.1297963696904461,45.7955406359936816]},"#bb4455":{"lch":[46.1187996938414813,85.2741675307746,6.43569277192082279],"luv":[46.1187996938414813,84.7367941199702273,9.55820957796975],"rgb":[0.733333333333333282,0.266666666666666663,0.333333333333333315],"xyz":[0.24199609523660065,0.153566044651503641,0.102844194409081421],"hpluv":[6.43569277192082279,234.627449284537505,46.1187996938414813],"hsluv":[6.43569277192082279,61.0765315010866274,46.1187996938414813]},"#bb4466":{"lch":[46.5252276318027427,79.8426568240615637,358.82639812637143],"luv":[46.5252276318027427,79.8259079304732779,-1.63532009113408461],"rgb":[0.733333333333333282,0.266666666666666663,0.4],"xyz":[0.249581091010108835,0.156600042960906932,0.142791838816225369],"hpluv":[358.82639812637143,217.763856882437722,46.5252276318027427],"hsluv":[358.82639812637143,63.3003300169989842,46.5252276318027427]},"#bb4477":{"lch":[47.0171837667790697,75.785442181693,349.367581794189107],"luv":[47.0171837667790697,74.484290362097866,-13.9829802234512588],"rgb":[0.733333333333333282,0.266666666666666663,0.466666666666666674],"xyz":[0.258895104030310741,0.160325648168987756,0.191845640722623278],"hpluv":[349.367581794189107,204.535408840651428,47.0171837667790697],"hsluv":[349.367581794189107,65.7062458495858266,47.0171837667790697]},"#bb4488":{"lch":[47.5956997014540235,74.0450948660102,338.538246495536782],"luv":[47.5956997014540235,68.9109568360576219,-27.0916241974425098],"rgb":[0.733333333333333282,0.266666666666666663,0.533333333333333326],"xyz":[0.270035521132254597,0.164781815009765353,0.250518504126195474],"hpluv":[338.538246495536782,197.409434601059019,47.5956997014540235],"hsluv":[338.538246495536782,68.1997676790361,47.5956997014540235]},"#bb4499":{"lch":[48.2606154557730633,75.1911240047971,327.313188255720945],"luv":[48.2606154557730633,63.2834900243205496,-40.6067115074158309],"rgb":[0.733333333333333282,0.266666666666666663,0.6],"xyz":[0.283092485241327296,0.170004600653394511,0.319285181767313353],"hpluv":[327.313188255720945,197.702903480158483,48.2606154557730633],"hsluv":[327.313188255720945,70.6969578310621074,48.2606154557730633]},"#bb44aa":{"lch":[49.0107199856960278,79.2228796099941093,316.794363507436401],"luv":[49.0107199856960278,57.7456584584256944,-54.2374739723603838],"rgb":[0.733333333333333282,0.266666666666666663,0.66666666666666663],"xyz":[0.298150178206579852,0.176027677839495605,0.398589031384311954],"hpluv":[316.794363507436401,205.115683333718124,49.0107199856960278],"hsluv":[316.794363507436401,73.1302855273877128,49.0107199856960278]},"#bb44bb":{"lch":[49.8438993628519427,85.6636869410227746,307.715012949243942],"luv":[49.8438993628519427,52.4034189799077268,-67.7653963284049752],"rgb":[0.733333333333333282,0.266666666666666663,0.733333333333333282],"xyz":[0.315287770313916471,0.182882714682430364,0.4888470164829537],"hpluv":[307.715012949243942,218.084137693810391,49.8438993628519427],"hsluv":[307.715012949243942,75.450469608388417,49.8438993628519427]},"#bb44cc":{"lch":[50.757290285110841,93.8478600934752905,300.284565440631638],"luv":[50.757290285110841,47.3270085455435918,-81.0405769121528152],"rgb":[0.733333333333333282,0.266666666666666663,0.8],"xyz":[0.334580145757638225,0.190599664859919166,0.590453527153223856],"hpluv":[300.284565440631638,234.620130462749955,50.757290285110841],"hsluv":[300.284565440631638,77.6254237907312898,50.757290285110841]},"#bb44dd":{"lch":[51.7474340276366291,103.158361374368454,294.364201848969515],"luv":[51.7474340276366291,42.5564715489483518,-93.971241615445],"rgb":[0.733333333333333282,0.266666666666666663,0.866666666666666696],"xyz":[0.356098471308271769,0.1992069950801727,0.703783375053229854],"hpluv":[294.364201848969515,252.961799427415912,51.7474340276366291],"hsluv":[294.364201848969515,79.6375689955678467,51.7474340276366291]},"#bb44ee":{"lch":[52.8104252671910217,113.122924260907325,289.686672533024307],"luv":[52.8104252671910217,38.1084271425454304,-106.510768347901248],"rgb":[0.733333333333333282,0.266666666666666663,0.933333333333333348],"xyz":[0.379910651574446478,0.208731867186642744,0.829194191121753077],"hpluv":[289.686672533024307,271.813038246621943,52.8104252671910217],"hsluv":[289.686672533024307,87.7449679178180872,52.8104252671910217]},"#bb44ff":{"lch":[53.942050711908152,123.415863319803691,285.982908620336502],"luv":[53.942050711908152,33.9826318144238115,-118.645084406973112],"rgb":[0.733333333333333282,0.266666666666666663,1],"xyz":[0.4060816999842779,0.219200286550575441,0.967028379413534922],"hpluv":[285.982908620336502,290.323946696930363,53.942050711908152],"hsluv":[285.982908620336502,99.9999999999990621,53.942050711908152]},"#995500":{"lch":[43.167672396478018,69.2675138179999,36.3951762413548678],"luv":[43.167672396478018,55.7564526526882105,41.099956911356287],"rgb":[0.6,0.333333333333333315,0],"xyz":[0.163849333716619028,0.132702616788131222,0.0169856277810444857],"hpluv":[36.3951762413548678,203.615246511519132,43.167672396478018],"hsluv":[36.3951762413548678,100.000000000002288,43.167672396478018]},"#995511":{"lch":[43.2277537555276865,67.4837391190291385,35.2266717066771307],"luv":[43.2277537555276865,55.1258789529511333,38.9254738590266101],"rgb":[0.6,0.333333333333333315,0.0666666666666666657],"xyz":[0.16486099921625616,0.133107282987986075,0.0223137327458001189],"hpluv":[35.2266717066771307,198.096040704981476,43.2277537555276865],"hsluv":[35.2266717066771307,95.1659583326808303,43.2277537555276865]},"#995522":{"lch":[43.3388072781739,64.3407602415628475,32.9528815923873708],"luv":[43.3388072781739,53.9895016234129059,34.998101990218963],"rgb":[0.6,0.333333333333333315,0.133333333333333331],"xyz":[0.166736357354733161,0.133857426243376904,0.0321906189417793115],"hpluv":[32.9528815923873708,188.385971738918272,43.3388072781739],"hsluv":[32.9528815923873708,86.4646465379692302,43.3388072781739]},"#995533":{"lch":[43.5207548807750584,59.6262244551406582,28.8908620435756234],"luv":[43.5207548807750584,52.2052395636471,28.8079781462883915],"rgb":[0.6,0.333333333333333315,0.2],"xyz":[0.169824108087190895,0.13509252653636,0.0484527727993904617],"hpluv":[28.8908620435756234,173.852210644027934,43.5207548807750584],"hsluv":[28.8908620435756234,72.8304069554253601,43.5207548807750584]},"#995544":{"lch":[43.7814988718974831,53.8284560366537335,22.2989672577237812],"luv":[43.7814988718974831,49.8029788080235036,20.4246415179685634],"rgb":[0.6,0.333333333333333315,0.266666666666666663],"xyz":[0.174282103331409782,0.136875724634047596,0.0719315477522771],"hpluv":[22.2989672577237812,156.01294104827457,43.7814988718974831],"hsluv":[22.2989672577237812,54.5318604429391058,43.7814988718974831]},"#995555":{"lch":[44.1267187000120629,47.9518139182857226,12.1770506300620411],"luv":[44.1267187000120629,46.8729201797035,10.1146335514957979],"rgb":[0.6,0.333333333333333315,0.333333333333333315],"xyz":[0.180244517370771795,0.139260690249792429,0.103333595026251],"hpluv":[12.1770506300620411,137.893162706519348,44.1267187000120629],"hsluv":[12.1770506300620411,32.3126421104369754,44.1267187000120629]},"#995566":{"lch":[44.5602350881765048,43.578232165907,357.727809148728397],"luv":[44.5602350881765048,43.5439690351937116,-1.72773822316436432],"rgb":[0.6,0.333333333333333315,0.4],"xyz":[0.187829513144279953,0.14229468855919572,0.143281239433394963],"hpluv":[357.727809148728397,124.097051059849122,44.5602350881765048],"hsluv":[357.727809148728397,36.5660257696708157,44.5602350881765048]},"#995577":{"lch":[45.0842241078155226,42.5628566452735342,339.858530865537546],"luv":[45.0842241078155226,39.9599368331855729,-14.6560640723873874],"rgb":[0.6,0.333333333333333315,0.466666666666666674],"xyz":[0.197143526164481886,0.146020293767276543,0.192335041339792873],"hpluv":[339.858530865537546,119.796876557388956,45.0842241078155226],"hsluv":[339.858530865537546,41.1101378179314167,45.0842241078155226]},"#995588":{"lch":[45.699386409692309,45.957423726275,322.088602167082399],"luv":[45.699386409692309,36.2586549471185506,-28.2381787122006145],"rgb":[0.6,0.333333333333333315,0.533333333333333326],"xyz":[0.208283943266425686,0.150476460608054141,0.25100790474336504],"hpluv":[322.088602167082399,127.609977655436467,45.699386409692309],"hsluv":[322.088602167082399,45.7577454208568852,45.699386409692309]},"#995599":{"lch":[46.4051108942887964,53.2218555896971921,307.715012949244795],"luv":[46.4051108942887964,32.5576366947089113,-42.1018551285561102],"rgb":[0.6,0.333333333333333315,0.6],"xyz":[0.221340907375498414,0.155699246251683299,0.319774582384483],"hpluv":[307.715012949244795,145.533684272522947,46.4051108942887964],"hsluv":[307.715012949244795,50.3502223422482516,46.4051108942887964]},"#9955aa":{"lch":[47.1996461355186625,63.0010233462712037,297.353030705211779],"luv":[47.1996461355186625,28.9471952899390068,-55.9570266143899246],"rgb":[0.6,0.333333333333333315,0.66666666666666663],"xyz":[0.236398600340750942,0.161722323437784393,0.399078432001481576],"hpluv":[297.353030705211779,169.374563019623821,47.1996461355186625],"hsluv":[297.353030705211779,54.7667714505238337,47.1996461355186625]},"#9955bb":{"lch":[48.0802807126223541,74.1194144420538,290.114722102094788],"luv":[48.0802807126223541,25.4897394646759068,-69.5985688017783701],"rgb":[0.6,0.333333333333333315,0.733333333333333282],"xyz":[0.253536192448087616,0.168577360280719152,0.489336417100123322],"hpluv":[290.114722102094788,195.615971831826613,48.0802807126223541],"hsluv":[290.114722102094788,58.9252289891592866,48.0802807126223541]},"#9955cc":{"lch":[49.0435277691913,85.8237639836856658,285.007043429489613],"luv":[49.0435277691913,22.2230153813451068,-82.8966588692685491],"rgb":[0.6,0.333333333333333315,0.8],"xyz":[0.272828567891809315,0.176294310458207953,0.590942927770393478],"hpluv":[285.007043429489613,222.057364979540267,49.0435277691913],"hsluv":[285.007043429489613,65.256702758776143,49.0435277691913]},"#9955dd":{"lch":[50.0853068419578875,97.6800340866365104,281.315028513382344],"luv":[50.0853068419578875,19.1651498984824649,-95.7814496055220843],"rgb":[0.6,0.333333333333333315,0.866666666666666696],"xyz":[0.294346893442442914,0.184901640678461487,0.704272775670399476],"hpluv":[281.315028513382344,247.476970093373268,50.0853068419578875],"hsluv":[281.315028513382344,76.6956878028438638,50.0853068419578875]},"#9955ee":{"lch":[51.2011159126469266,109.450459224116145,278.575243894560685],"luv":[51.2011159126469266,16.3199513369978568,-108.226901520499666],"rgb":[0.6,0.333333333333333315,0.933333333333333348],"xyz":[0.318159073708617623,0.194426512784931532,0.829683591738922699],"hpluv":[278.575243894560685,271.254835109068836,51.2011159126469266],"hsluv":[278.575243894560685,88.2491190723243335,51.2011159126469266]},"#9955ff":{"lch":[52.3861878346365444,121.012399839465246,276.491711029928183],"luv":[52.3861878346365444,13.6815981187824764,-120.2364952409323],"rgb":[0.6,0.333333333333333315,1],"xyz":[0.344330122118449045,0.204894932148864228,0.967517780030704544],"hpluv":[276.491711029928183,293.124692446110771,52.3861878346365444],"hsluv":[276.491711029928183,99.9999999999991,52.3861878346365444]},"#bb5500":{"lch":[48.3398816318057811,94.9450628471467724,27.1627331553413143],"luv":[48.3398816318057811,84.4739036935134,43.344256295703957],"rgb":[0.733333333333333282,0.333333333333333315,0],"xyz":[0.237414168296793876,0.170634484618534699,0.0204339794019901093],"hpluv":[27.1627331553413143,249.233335779464397,48.3398816318057811],"hsluv":[27.1627331553413143,100.000000000002217,48.3398816318057811]},"#bb5511":{"lch":[48.3907029738951735,93.4795954244126364,26.3417432533787057],"luv":[48.3907029738951735,83.7729911103365907,41.4791600823755289],"rgb":[0.733333333333333282,0.333333333333333315,0.0666666666666666657],"xyz":[0.238425833796431,0.171039150818389551,0.0257620843667457425],"hpluv":[26.3417432533787057,245.128732426237889,48.3907029738951735],"hsluv":[26.3417432533787057,96.2613278044251786,48.3907029738951735]},"#bb5522":{"lch":[48.4847005727335869,90.8707197847641623,24.7826102649670759],"luv":[48.4847005727335869,82.5019575685759321,38.090874386840035],"rgb":[0.733333333333333282,0.333333333333333315,0.133333333333333331],"xyz":[0.240301191934908,0.17178929407378038,0.0356389705627249351],"hpluv":[24.7826102649670759,237.825586669453713,48.4847005727335869],"hsluv":[24.7826102649670759,89.48684037186257,48.4847005727335869]},"#bb5533":{"lch":[48.6388719159228629,86.8743588299812473,22.1104535643633149],"luv":[48.6388719159228629,80.4856161939384407,32.6989267102511363],"rgb":[0.733333333333333282,0.333333333333333315,0.2],"xyz":[0.243388942667365771,0.173024394366763479,0.0519011244203360783],"hpluv":[22.1104535643633149,226.64567974804504,48.6388719159228629],"hsluv":[22.1104535643633149,78.7542493880857393,48.6388719159228629]},"#bb5544":{"lch":[48.8601705631915,81.7431600256382751,18.0266646696809296],"luv":[48.8601705631915,77.730600917119915,25.2962031151029265],"rgb":[0.733333333333333282,0.333333333333333315,0.266666666666666663],"xyz":[0.24784693791158463,0.174807592464451073,0.0753798993732227168],"hpluv":[18.0266646696809296,212.293047020031764,48.8601705631915],"hsluv":[18.0266646696809296,64.1199207289341,48.8601705631915]},"#bb5555":{"lch":[49.1538097277392154,76.0172073873862075,12.1770506300619399],"luv":[49.1538097277392154,74.3068552156307,16.0345591439297159],"rgb":[0.733333333333333282,0.333333333333333315,0.333333333333333315],"xyz":[0.253809351950946616,0.177192558080195905,0.106781946647196632],"hpluv":[12.1770506300619399,196.242945408672853,49.1538097277392154],"hsluv":[12.1770506300619399,45.9858047870319879,49.1538097277392154]},"#bb5566":{"lch":[49.523574907380123,70.5220596563995,4.21567942747197],"luv":[49.523574907380123,70.3312550088346882,5.18415538569556134],"rgb":[0.733333333333333282,0.333333333333333315,0.4],"xyz":[0.261394347724454801,0.180226556389599196,0.14672959105434058],"hpluv":[4.21567942747197,180.697576197923894,49.523574907380123],"hsluv":[4.21567942747197,48.7291682320237527,49.523574907380123]},"#bb5577":{"lch":[49.971995559373525,66.3094111666939341,354.014227306533371],"luv":[49.971995559373525,65.9478803557508257,-6.91484532417379327],"rgb":[0.733333333333333282,0.333333333333333315,0.466666666666666674],"xyz":[0.270708360744656706,0.18395216159768002,0.195783392960738489],"hpluv":[354.014227306533371,168.378953180241098,49.971995559373525],"hsluv":[354.014227306533371,51.7390719561838495,49.971995559373525]},"#bb5588":{"lch":[50.5004659153875508,64.4571905510646275,342.016521446261379],"luv":[50.5004659153875508,61.308172080607541,-19.9006896832966476],"rgb":[0.733333333333333282,0.333333333333333315,0.533333333333333326],"xyz":[0.281848777846600562,0.188408328438457617,0.254456256364310685],"hpluv":[342.016521446261379,161.962814057843559,50.5004659153875508],"hsluv":[342.016521446261379,54.9055054808170055,50.5004659153875508]},"#bb5599":{"lch":[51.1093507584050286,65.6961991151429459,329.411862939203161],"luv":[51.1093507584050286,56.5544024759803,-33.4303774845774342],"rgb":[0.733333333333333282,0.333333333333333315,0.6],"xyz":[0.294905741955673262,0.193631114082086775,0.323222934005428564],"hpluv":[329.411862939203161,163.109481188372769,51.1093507584050286],"hsluv":[329.411862939203161,58.1255686218068561,51.1093507584050286]},"#bb55aa":{"lch":[51.7980911374347386,70.0901192661774246,317.660759061539352],"luv":[51.7980911374347386,51.8085124997667563,-47.2070212077450151],"rgb":[0.733333333333333282,0.333333333333333315,0.66666666666666663],"xyz":[0.309963434920925818,0.199654191268187869,0.402526783622427164],"hpluv":[317.660759061539352,171.704773930815691,51.7980911374347386],"hsluv":[317.660759061539352,61.3115173935257403,51.7980911374347386]},"#bb55bb":{"lch":[52.5653152299933737,77.1031380177621344,307.715012949244226],"luv":[52.5653152299933737,47.1666372355911179,-60.9934605025180332],"rgb":[0.733333333333333282,0.333333333333333315,0.733333333333333282],"xyz":[0.327101027028262437,0.206509228111122628,0.492784768721068911],"hpluv":[307.715012949244226,186.128169856082764,52.5653152299933737],"hsluv":[307.715012949244226,64.3946779967479,52.5653152299933737]},"#bb55cc":{"lch":[53.4089544864585,85.9678373228364308,299.780474196008072],"luv":[53.4089544864585,42.6983512805399883,-74.6144748148057175],"rgb":[0.733333333333333282,0.333333333333333315,0.8],"xyz":[0.346393402471984191,0.21422617828861143,0.594391279391339067],"hpluv":[299.780474196008072,204.249617293250537,53.4089544864585],"hsluv":[299.780474196008072,67.3259326792693855,53.4089544864585]},"#bb55dd":{"lch":[54.3263625650166944,95.9883710948233926,293.613183872979789],"luv":[54.3263625650166944,38.4490902963257213,-87.9513208588848698],"rgb":[0.733333333333333282,0.333333333333333315,0.866666666666666696],"xyz":[0.367911728022617734,0.222833508508864964,0.707721127291345065],"hpluv":[293.613183872979789,224.206046477737118,54.3263625650166944],"hsluv":[293.613183872979789,73.8407928406032283,54.3263625650166944]},"#bb55ee":{"lch":[55.314433433552054,106.647677925948784,288.842761327535072],"luv":[55.314433433552054,34.444226028074695,-100.932266893812525],"rgb":[0.733333333333333282,0.333333333333333315,0.933333333333333348],"xyz":[0.391723908288792444,0.232358380615335,0.833131943359868288],"hpluv":[288.842761327535072,244.653966901481454,55.314433433552054],"hsluv":[288.842761327535072,86.7715876359309135,55.314433433552054]},"#bb55ff":{"lch":[56.3697148536960526,117.598184211748716,285.129655441003138],"luv":[56.3697148536960526,30.6936185759692179,-113.521956944959783],"rgb":[0.733333333333333282,0.333333333333333315,1],"xyz":[0.417894956698623865,0.242826799979267705,0.970966131651650133],"hpluv":[285.129655441003138,264.724480425834031,56.3697148536960526],"hsluv":[285.129655441003138,99.9999999999989,56.3697148536960526]},"#996600":{"lch":[47.3343652017352454,63.4240894393546952,48.3260196362919672],"luv":[47.3343652017352454,42.1701199842588,47.3740023823666476],"rgb":[0.6,0.4,0],"xyz":[0.178877391422465504,0.162758732199824563,0.0219949803496598331],"hpluv":[48.3260196362919672,170.026654750900292,47.3343652017352454],"hsluv":[48.3260196362919672,100.000000000002288,47.3343652017352454]},"#996611":{"lch":[47.3868110627231189,61.667674323653,47.4017350737566616],"luv":[47.3868110627231189,41.7399921999205,45.3946594616449133],"rgb":[0.6,0.4,0.0666666666666666657],"xyz":[0.179889056922102636,0.163163398399679416,0.0273230853144154628],"hpluv":[47.4017350737566616,165.135107398016657,47.3868110627231189],"hsluv":[47.4017350737566616,96.0239926064661,47.3868110627231189]},"#996622":{"lch":[47.4838028017404099,58.5263777304533406,45.5834379771503322],"luv":[47.4838028017404099,40.9608465044279413,41.8036594557031336],"rgb":[0.6,0.4,0.133333333333333331],"xyz":[0.181764415060579637,0.163913541655070244,0.0371999715103946624],"hpluv":[45.5834379771503322,156.40314428015364,47.4838028017404099],"hsluv":[45.5834379771503322,88.8298219708016177,47.4838028017404099]},"#996633":{"lch":[47.642855645786625,53.6803525088045674,42.2629253198225712],"luv":[47.642855645786625,39.7270268335614887,36.1018501525199724],"rgb":[0.6,0.4,0.2],"xyz":[0.184852165793037371,0.165148641948053343,0.0534621253680058056],"hpluv":[42.2629253198225712,142.973945144987511,47.642855645786625],"hsluv":[42.2629253198225712,77.4596172761956865,47.642855645786625]},"#996644":{"lch":[47.8710980897590872,47.4159845831850149,36.6424092143452071],"luv":[47.8710980897590872,38.045445264132745,28.298757722676072],"rgb":[0.6,0.4,0.266666666666666663],"xyz":[0.189310161037256258,0.166931840045740937,0.0769409003208924441],"hpluv":[36.6424092143452071,125.687101185572914,47.8710980897590872],"hsluv":[36.6424092143452071,62.0095295256686185,47.8710980897590872]},"#996655":{"lch":[48.173837669734425,40.4765536471140521,27.3183313201514686],"luv":[48.173837669734425,35.9622216701857838,18.5760600691352664],"rgb":[0.6,0.4,0.333333333333333315],"xyz":[0.195272575076618271,0.16931680566148577,0.108342947594866346],"hpluv":[27.3183313201514686,106.618264590322553,48.173837669734425],"hsluv":[27.3183313201514686,42.9499413016611484,48.173837669734425]},"#996666":{"lch":[48.5548823199147819,34.3240193245421,12.1770506300621335],"luv":[48.5548823199147819,33.551744690774747,7.24007809326721219],"rgb":[0.6,0.4,0.4],"xyz":[0.202857570850126429,0.17235080397088906,0.148290592002010307],"hpluv":[12.1770506300621335,89.702502372613651,48.5548823199147819],"hsluv":[12.1770506300621335,21.0200766933302461,48.5548823199147819]},"#996677":{"lch":[49.0167186013709,31.3606600839303482,350.2076113500313],"luv":[49.0167186013709,30.9037509766054157,-5.33377694282222681],"rgb":[0.6,0.4,0.466666666666666674],"xyz":[0.212171583870328362,0.176076409178969884,0.197344393908408217],"hpluv":[350.2076113500313,81.185839798992177,49.0167186013709],"hsluv":[350.2076113500313,25.8881256225468483,49.0167186013709]},"#996688":{"lch":[49.5606396668562752,33.7929953796712823,326.289263208678278],"luv":[49.5606396668562752,28.1107077320421368,-18.7551232343109682],"rgb":[0.6,0.4,0.533333333333333326],"xyz":[0.223312000972272162,0.180532576019747482,0.256017257311980384],"hpluv":[326.289263208678278,86.5225105267045365,49.5606396668562752],"hsluv":[326.289263208678278,30.9767265160446463,49.5606396668562752]},"#996699":{"lch":[50.1868595811773304,41.2886932006772,307.715012949245818],"luv":[50.1868595811773304,25.2577114783499113,-32.6619686653465351],"rgb":[0.6,0.4,0.6],"xyz":[0.236368965081344889,0.185755361663376639,0.324783934953098319],"hpluv":[307.715012949245818,104.395179003902854,50.1868595811773304],"hsluv":[307.715012949245818,36.1175524455388413,50.1868595811773304]},"#9966aa":{"lch":[50.8946289106688141,51.8448774557822,295.617938374847199],"luv":[50.8946289106688141,22.4160699516755599,-46.7483810021979451],"rgb":[0.6,0.4,0.66666666666666663],"xyz":[0.251426658046597418,0.191778438849477734,0.40408778457009692],"hpluv":[295.617938374847199,129.262701065701,50.8946289106688141],"hsluv":[295.617938374847199,41.1705422178494445,50.8946289106688141]},"#9966bb":{"lch":[51.6823563026294,63.8712345518136,287.908782454232437],"luv":[51.6823563026294,19.6405628457828776,-60.776499523036378],"rgb":[0.6,0.4,0.733333333333333282],"xyz":[0.268564250153934092,0.198633475692412492,0.494345769668738666],"hpluv":[287.908782454232437,156.820318415219759,51.6823563026294],"hsluv":[287.908782454232437,49.349420166275209,51.6823563026294]},"#9966cc":{"lch":[52.5477355185796569,76.4825896496335389,282.819195018988751],"luv":[52.5477355185796569,16.9695880464031816,-74.5762670093482285],"rgb":[0.6,0.4,0.8],"xyz":[0.287856625597655791,0.206350425869901294,0.595952280339008822],"hpluv":[282.819195018988751,184.691924030055,52.5477355185796569],"hsluv":[282.819195018988751,61.7185051859638136,52.5477355185796569]},"#9966dd":{"lch":[53.4878747475352725,89.2117449852098758,279.306611445978092],"luv":[53.4878747475352725,14.4271177471338046,-88.0374563286358],"rgb":[0.6,0.4,0.866666666666666696],"xyz":[0.30937495114828939,0.214957756090154828,0.70928212823901482],"hpluv":[279.306611445978092,211.644028054176175,53.4878747475352725],"hsluv":[279.306611445978092,74.2596178074049362,53.4878747475352725]},"#9966ee":{"lch":[54.4994239962059339,101.810849438236403,276.783380903602506],"luv":[54.4994239962059339,12.0254847729914225,-101.098154183495325],"rgb":[0.6,0.4,0.933333333333333348],"xyz":[0.333187131414464099,0.224482628196624873,0.834692944307538],"hpluv":[276.783380903602506,237.050827216632513,54.4994239962059339],"hsluv":[276.783380903602506,86.9990828065156734,54.4994239962059339]},"#9966ff":{"lch":[55.5786963614876,114.151421142661491,274.908981870437117],"luv":[55.5786963614876,9.76829238934238475,-113.732701597586171],"rgb":[0.6,0.4,1],"xyz":[0.359358179824295521,0.234951047560557569,0.972527132599319888],"hpluv":[274.908981870437117,260.622732185953453,55.5786963614876],"hsluv":[274.908981870437117,99.999999999998991,55.5786963614876]},"#bb6600":{"lch":[51.9152024616159622,85.9194467179265899,34.7713476038742],"luv":[51.9152024616159622,70.5771984524152884,49.0001059480794936],"rgb":[0.733333333333333282,0.4,0],"xyz":[0.252442226002640324,0.200690600030228039,0.0254433319706054567],"hpluv":[34.7713476038742,210.008196913669821,51.9152024616159622],"hsluv":[34.7713476038742,100.000000000002217,51.9152024616159622]},"#bb6611":{"lch":[51.960819173128,84.5067938711160735,34.0102696578751846],"luv":[51.960819173128,70.0508360673827184,47.2681560528436],"rgb":[0.733333333333333282,0.4,0.0666666666666666657],"xyz":[0.253453891502277429,0.201095266230082892,0.0307714369353610864],"hpluv":[34.0102696578751846,206.373990798532162,51.960819173128],"hsluv":[34.0102696578751846,96.7960731817087492,51.960819173128]},"#bb6622":{"lch":[52.0452187907305586,81.9745670334704215,32.5563816919222901],"luv":[52.0452187907305586,69.0932729256005587,44.1129150788451909],"rgb":[0.733333333333333282,0.4,0.133333333333333331],"xyz":[0.255329249640754485,0.20184540948547372,0.040648323131340286],"hpluv":[32.5563816919222901,199.865401092535734,52.0452187907305586],"hsluv":[32.5563816919222901,90.9716633106406221,52.0452187907305586]},"#bb6633":{"lch":[52.1837271506259412,78.04817012610809,30.0375791414029081],"luv":[52.1837271506259412,67.5660884046363,39.0684086920722109],"rgb":[0.733333333333333282,0.4,0.2],"xyz":[0.258417000373212191,0.203080509778456819,0.0569104769889514292],"hpluv":[30.0375791414029081,189.787216830323956,52.1837271506259412],"hsluv":[30.0375791414029081,81.6941023093515639,52.1837271506259412]},"#bb6644":{"lch":[52.3827138306128859,72.9081368603095257,26.1184165145312406],"luv":[52.3827138306128859,65.4632041398932,32.0961886238895318],"rgb":[0.733333333333333282,0.4,0.266666666666666663],"xyz":[0.262874995617431106,0.204863707876144413,0.0803892519418380747],"hpluv":[26.1184165145312406,176.614896915735159,52.3827138306128859],"hsluv":[26.1184165145312406,68.9437006343278824,52.3827138306128859]},"#bb6655":{"lch":[52.6470547760809637,67.004522830646,20.3474245095699864],"luv":[52.6470547760809637,62.823537757634746,23.2982656731697979],"rgb":[0.733333333333333282,0.4,0.333333333333333315],"xyz":[0.268837409656793092,0.207248673491889246,0.111791299215811976],"hpluv":[20.3474245095699864,161.498824171429789,52.6470547760809637],"hsluv":[20.3474245095699864,52.9816895309479534,52.6470547760809637]},"#bb6666":{"lch":[52.9804174131186727,61.0960132663801261,12.1770506300620109],"luv":[52.9804174131186727,59.7213810933874498,12.8871826767560087],"rgb":[0.733333333333333282,0.4,0.4],"xyz":[0.276422405430301277,0.210282671801292537,0.151738943622955924],"hpluv":[12.1770506300620109,146.331162504643544,52.9804174131186727],"hsluv":[12.1770506300620109,34.2899270044314335,52.9804174131186727]},"#bb6677":{"lch":[53.3854132757716826,56.2661599102721226,1.17050216666979279],"luv":[53.3854132757716826,56.2544190111897535,1.14938799445880213],"rgb":[0.733333333333333282,0.4,0.466666666666666674],"xyz":[0.285736418450503182,0.21400827700937336,0.200792745529353833],"hpluv":[1.17050216666979279,133.74082367080041,53.3854132757716826],"hsluv":[1.17050216666979279,37.694842795415525,53.3854132757716826]},"#bb6688":{"lch":[53.8636991644475387,53.7950791600554297,347.554026547444039],"luv":[53.8636991644475387,52.5308766640911458,-11.5938578022448873],"rgb":[0.733333333333333282,0.4,0.533333333333333326],"xyz":[0.296876835552447,0.218464443850150958,0.259465608932926028],"hpluv":[347.554026547444039,126.731828674836166,53.8636991644475387],"hsluv":[347.554026547444039,41.3310399817098855,53.8636991644475387]},"#bb6699":{"lch":[54.4160596975863484,54.7145736516266723,332.78581188167891],"luv":[54.4160596975863484,48.6578429809048814,-25.0219680745716886],"rgb":[0.733333333333333282,0.4,0.6],"xyz":[0.309933799661519682,0.223687229493780115,0.328232286574043908],"hpluv":[332.78581188167891,127.589593839900076,54.4160596975863484],"hsluv":[332.78581188167891,45.0871489409768813,54.4160596975863484]},"#bb66aa":{"lch":[55.0424859024436,59.2427277394444332,319.03138367428437],"luv":[55.0424859024436,44.7323366642012274,-38.8422301956323963],"rgb":[0.733333333333333282,0.4,0.66666666666666663],"xyz":[0.324991492626772238,0.22971030667988121,0.407536136191042508],"hpluv":[319.03138367428437,136.57661144398341,55.0424859024436],"hsluv":[319.03138367428437,48.8627280546895548,55.0424859024436]},"#bb66bb":{"lch":[55.7422560614222,66.7541112543564168,307.715012949244738],"luv":[55.7422560614222,40.8357821803987235,-52.8067255477370452],"rgb":[0.733333333333333282,0.4,0.733333333333333282],"xyz":[0.342129084734108913,0.236565343522815968,0.497794121289684255],"hpluv":[307.715012949244738,151.961230908585406,55.7422560614222],"hsluv":[307.715012949244738,52.5739577191036176,55.7422560614222]},"#bb66cc":{"lch":[56.5140206008290704,76.3075420390205466,299.031845144425],"luv":[56.5140206008290704,37.0317190732607671,-66.7195080506142801],"rgb":[0.733333333333333282,0.4,0.8],"xyz":[0.361421460177830611,0.24428229370030477,0.599400631959954411],"hpluv":[299.031845144425,171.336773989457299,56.5140206008290704],"hsluv":[299.031845144425,57.7422914315118732,56.5140206008290704]},"#bb66dd":{"lch":[57.3558903641351208,87.0819801731049523,292.529347086481266],"luv":[57.3558903641351208,33.3660351201831276,-80.4361794917420809],"rgb":[0.733333333333333282,0.4,0.866666666666666696],"xyz":[0.38293978572846421,0.252889623920558304,0.712730479859960409],"hpluv":[292.529347086481266,192.659130793538424,57.3558903641351208],"hsluv":[292.529347086481266,71.4699790991907,57.3558903641351208]},"#bb66ee":{"lch":[58.2655263288606164,98.4965661150924916,287.652756970849339],"luv":[58.2655263288606164,29.8688319231142287,-93.8585447149780805],"rgb":[0.733333333333333282,0.4,0.933333333333333348],"xyz":[0.40675196599463892,0.262414496027028321,0.838141295928483632],"hpluv":[287.652756970849339,214.510592558062115,58.2655263288606164],"hsluv":[287.652756970849339,85.5420625539119186,58.2655263288606164]},"#bb66ff":{"lch":[59.2402283004695533,110.175409569553764,283.948158265715847],"luv":[59.2402283004695533,26.5571064878979755,-106.926801919861816],"rgb":[0.733333333333333282,0.4,1],"xyz":[0.432923014404470341,0.272882915390961045,0.975975484220265477],"hpluv":[283.948158265715847,235.997431668916079,59.2402283004695533],"hsluv":[283.948158265715847,99.9999999999988205,59.2402283004695533]},"#997700":{"lch":[51.799451349173637,61.2288227532233265,61.7368019650066202],"luv":[51.799451349173637,28.9932293289078338,53.9292257391759406],"rgb":[0.6,0.466666666666666674,0],"xyz":[0.197331129475883132,0.19966620830666032,0.028146226367465537],"hpluv":[61.7368019650066202,149.992683828924328,51.799451349173637],"hsluv":[61.7368019650066202,100.000000000002373,51.799451349173637]},"#997711":{"lch":[51.8452237949875752,59.5195003520895298,61.1595916745536812],"luv":[51.8452237949875752,28.7105152364728049,52.1371003894409952],"rgb":[0.6,0.466666666666666674,0.0666666666666666657],"xyz":[0.198342794975520265,0.200070874506515173,0.0334743313322211702],"hpluv":[61.1595916745536812,145.676617799321178,51.8452237949875752],"hsluv":[61.1595916745536812,96.7355174862457687,51.8452237949875752]},"#997722":{"lch":[51.9299107218419778,56.4237897442973448,60.0184197539949],"luv":[51.9299107218419778,28.1961842142201746,48.8735024820856836],"rgb":[0.6,0.466666666666666674,0.133333333333333331],"xyz":[0.200218153113997266,0.200821017761906,0.0433512175282003628],"hpluv":[60.0184197539949,137.874516690543771,51.9299107218419778],"hsluv":[60.0184197539949,90.8032063934702762,51.9299107218419778]},"#997733":{"lch":[52.0688882655341843,51.532107019520943,57.9108306747127841],"luv":[52.0688882655341843,27.375836028403171,43.6591531710973797],"rgb":[0.6,0.466666666666666674,0.2],"xyz":[0.203305903846455027,0.2020561180548891,0.0596133713858115061],"hpluv":[57.9108306747127841,125.585333003110208,52.0688882655341843],"hsluv":[57.9108306747127841,81.359583819486275,52.0688882655341843]},"#997744":{"lch":[52.2685439893789265,44.9234500117750244,54.2507061045172563],"luv":[52.2685439893789265,26.2460613351246792,36.4590266649196622],"rgb":[0.6,0.466666666666666674,0.266666666666666663],"xyz":[0.207763899090673887,0.203839316152576694,0.0830921463386981446],"hpluv":[54.2507061045172563,109.061640425204757,52.2685439893789265],"hsluv":[54.2507061045172563,68.3925961892813632,52.2685439893789265]},"#997755":{"lch":[52.5337646967731615,36.9638675487782962,47.8040559904272229],"luv":[52.5337646967731615,24.8274523779219614,27.3847605902560787],"rgb":[0.6,0.466666666666666674,0.333333333333333315],"xyz":[0.213726313130035872,0.206224281768321527,0.11449419361267206],"hpluv":[47.8040559904272229,89.2849392346346,52.5337646967731615],"hsluv":[47.8040559904272229,52.1784042692219217,52.5337646967731615]},"#997766":{"lch":[52.8682223623880958,28.5307109293219519,35.7342712802299047],"luv":[52.8682223623880958,23.1593577603421643,16.6627012894371447],"rgb":[0.6,0.466666666666666674,0.4],"xyz":[0.221311308903544057,0.209258280077724818,0.154441838019816],"hpluv":[35.7342712802299047,68.4789688439394695,52.8682223623880958],"hsluv":[35.7342712802299047,33.2180784313787072,52.8682223623880958]},"#997777":{"lch":[53.2745272921510349,21.7835186536615062,12.1770506300626185],"luv":[53.2745272921510349,21.2933995119794766,4.59486911213486],"rgb":[0.6,0.466666666666666674,0.466666666666666674],"xyz":[0.230625321923745963,0.212983885285805641,0.203495639926213917],"hpluv":[12.1770506300626185,51.8857087556556777,53.2745272921510349],"hsluv":[12.1770506300626185,12.1864056638809046,53.2745272921510349]},"#997788":{"lch":[53.7543298043441524,21.0694932264164443,336.259644884191403],"luv":[53.7543298043441524,19.28657717102978,-8.48242216845644492],"rgb":[0.6,0.466666666666666674,0.533333333333333326],"xyz":[0.241765739025689819,0.217440052126583239,0.262168503329786085],"hpluv":[336.259644884191403,49.7370433553737143,53.7543298043441524],"hsluv":[336.259644884191403,17.3594920402921318,53.7543298043441524]},"#997799":{"lch":[54.308403390094881,28.1087123643927,307.715012949247921],"luv":[54.308403390094881,17.1950646022419384,-22.235769923906151],"rgb":[0.6,0.466666666666666674,0.6],"xyz":[0.254822703134762518,0.222662837770212396,0.330935180970904],"hpluv":[307.715012949247921,65.67699031054849,54.308403390094881],"hsluv":[307.715012949247921,22.7222383700086681,54.308403390094881]},"#9977aa":{"lch":[54.9367240193748785,39.361724048309469,292.510155009375],"luv":[54.9367240193748785,15.0695247856183894,-36.3628208860492137],"rgb":[0.6,0.466666666666666674,0.66666666666666663],"xyz":[0.269880396100015074,0.228685914956313491,0.41023903058790262],"hpluv":[292.510155009375,90.9181689788077847,54.9367240193748785],"hsluv":[292.510155009375,30.8964586946041671,54.9367240193748785]},"#9977bb":{"lch":[55.6385517902762388,52.2405182414828104,284.355371582691191],"luv":[55.6385517902762388,12.9522722169503091,-50.6093903397058824],"rgb":[0.6,0.466666666666666674,0.733333333333333282],"xyz":[0.287017988207351693,0.235540951799248249,0.500497015686544366],"hpluv":[284.355371582691191,119.143673365147691,55.6385517902762388],"hsluv":[284.355371582691191,44.025050152294007,55.6385517902762388]},"#9977cc":{"lch":[56.4125166695819615,65.6830300518217172,279.531250686135081],"luv":[56.4125166695819615,10.8761592408186605,-64.7763042860340192],"rgb":[0.6,0.466666666666666674,0.8],"xyz":[0.306310363651073447,0.243257901976737051,0.602103526356814522],"hpluv":[279.531250686135081,147.746441920881637,56.4125166695819615],"hsluv":[279.531250686135081,57.5215558896316352,56.4125166695819615]},"#9977dd":{"lch":[57.256707620000924,79.2159287347205,276.425234899334782],"luv":[57.256707620000924,8.86478593594131858,-78.718351962006011],"rgb":[0.6,0.466666666666666674,0.866666666666666696],"xyz":[0.327828689201707,0.251865232196990585,0.71543337425682052],"hpluv":[276.425234899334782,175.559960004438778,57.256707620000924],"hsluv":[276.425234899334782,71.3413917340773764,57.256707620000924]},"#9977ee":{"lch":[58.1687631275758434,92.5981917117116211,274.294200356840065],"luv":[58.1687631275758434,6.93354781471817905,-92.3382424728774822],"rgb":[0.6,0.466666666666666674,0.933333333333333348],"xyz":[0.351640869467881756,0.261390104303460602,0.840844190325343743],"hpluv":[274.294200356840065,202.000294664132923,58.1687631275758434],"hsluv":[274.294200356840065,85.4864748016987903,58.1687631275758434]},"#9977ff":{"lch":[59.1459606243173,105.700835267318482,272.760722153075335],"luv":[59.1459606243173,5.0910859147335179,-105.578157875659116],"rgb":[0.6,0.466666666666666674,1],"xyz":[0.377811917877713122,0.271858523667393326,0.978678378617125588],"hpluv":[272.760722153075335,226.773684284234889,59.1459606243173],"hsluv":[272.760722153075335,99.9999999999988,59.1459606243173]},"#bb7700":{"lch":[55.8465021194210323,78.9426527823167703,44.2288975260652037],"luv":[55.8465021194210323,56.5670601566064,55.0645996403160751],"rgb":[0.733333333333333282,0.466666666666666674,0],"xyz":[0.270895964056058,0.237598076137063796,0.0315945779884111572],"hpluv":[44.2288975260652037,179.372171604304526,55.8465021194210323],"hsluv":[44.2288975260652037,100.000000000002402,55.8465021194210323]},"#bb7711":{"lch":[55.8872675460691113,77.5581898683241775,43.5811171927028127],"luv":[55.8872675460691113,56.1830827877517081,53.4671303149482782],"rgb":[0.733333333333333282,0.466666666666666674,0.0666666666666666657],"xyz":[0.271907629555695085,0.238002742336918649,0.0369226829531667869],"hpluv":[43.5811171927028127,176.097874689063588,55.8872675460691113],"hsluv":[43.5811171927028127,97.2747266570755613,55.8872675460691113]},"#bb7722":{"lch":[55.9627137258116534,75.0570685818031365,42.3362918908129799],"luv":[55.9627137258116534,55.4825342436315907,50.549499878809371],"rgb":[0.733333333333333282,0.466666666666666674,0.133333333333333331],"xyz":[0.273782987694172142,0.238752885592309477,0.0467995691491459864],"hpluv":[42.3362918908129799,170.189263625481374,55.9627137258116534],"hsluv":[42.3362918908129799,92.3060252972229875,55.9627137258116534]},"#bb7733":{"lch":[56.086591241629975,71.12386069085467,40.1553843778465094],"luv":[56.086591241629975,54.3598535070873652,45.8651271257379562],"rgb":[0.733333333333333282,0.466666666666666674,0.2],"xyz":[0.276870738426629848,0.239987985885292576,0.0630617230067571366],"hpluv":[40.1553843778465094,160.914656808849855,56.086591241629975],"hsluv":[40.1553843778465094,84.3528141134219425,56.086591241629975]},"#bb7744":{"lch":[56.2646940492590346,65.8532423012147632,36.6949041745596887],"luv":[56.2646940492590346,52.8030258036740747,39.3508575199960617],"rgb":[0.733333333333333282,0.466666666666666674,0.266666666666666663],"xyz":[0.281328733670848763,0.24177118398298017,0.0865404979596437751],"hpluv":[36.6949041745596887,148.518490760970963,56.2646940492590346],"hsluv":[36.6949041745596887,73.3442464951488517,56.2646940492590346]},"#bb7755":{"lch":[56.5015366957073866,59.5720019456390375,31.4313823601585],"luv":[56.5015366957073866,50.8307220514796256,31.0654327434279267],"rgb":[0.733333333333333282,0.466666666666666674,0.333333333333333315],"xyz":[0.287291147710210748,0.244156149598725,0.117942545233617677],"hpluv":[31.4313823601585,133.789263155984059,56.5015366957073866],"hsluv":[31.4313823601585,59.433527841274838,56.5015366957073866]},"#bb7766":{"lch":[56.8006139195957758,52.9060784141758376,23.584548946691168],"luv":[56.8006139195957758,48.4868685528452588,21.1678225404983067],"rgb":[0.733333333333333282,0.466666666666666674,0.4],"xyz":[0.294876143483718933,0.247190147908128294,0.157890189640761625],"hpluv":[23.584548946691168,118.193030459121616,56.8006139195957758],"hsluv":[23.584548946691168,42.9582981176577476,56.8006139195957758]},"#bb7777":{"lch":[57.1645375630264851,46.8887603377642677,12.1770506300621175],"luv":[57.1645375630264851,45.8337848153679062,9.89040016939892652],"rgb":[0.733333333333333282,0.466666666666666674,0.466666666666666674],"xyz":[0.304190156503920839,0.250915753116209117,0.206943991547159534],"hpluv":[12.1770506300621175,104.083378979503351,57.1645375630264851],"hsluv":[12.1770506300621175,30.9338815185941769,57.1645375630264851]},"#bb7788":{"lch":[57.5951231639082408,43.0166042307866761,356.679907444569722],"luv":[57.5951231639082408,42.9444038116514264,-2.49126891562360298],"rgb":[0.733333333333333282,0.466666666666666674,0.533333333333333326],"xyz":[0.315330573605864639,0.255371919956986715,0.265616854950731729],"hpluv":[356.679907444569722,94.7741152880685149,57.5951231639082408],"hsluv":[356.679907444569722,32.9204937798227419,57.5951231639082408]},"#bb7799":{"lch":[58.0934559183715322,42.8683503206465062,338.533521874652],"luv":[58.0934559183715322,39.8946515879682408,-15.6879646190414519],"rgb":[0.733333333333333282,0.466666666666666674,0.6],"xyz":[0.328387537714937339,0.260594705600615872,0.334383532591849608],"hpluv":[338.533521874652,93.6373004736019823,58.0934559183715322],"hsluv":[338.533521874652,34.9811369830312131,58.0934559183715322]},"#bb77aa":{"lch":[58.6599497668646706,47.0820583870944276,321.324781752589786],"luv":[58.6599497668646706,36.7569990603765,-29.4218157502430451],"rgb":[0.733333333333333282,0.466666666666666674,0.66666666666666663],"xyz":[0.343445230680189895,0.266617782786717,0.413687382208848209],"hpluv":[321.324781752589786,101.848135129910219,58.6599497668646706],"hsluv":[321.324781752589786,37.0556810629478051,58.6599497668646706]},"#bb77bb":{"lch":[59.2944060970233693,54.9189596898792303,307.71501294924542],"luv":[59.2944060970233693,33.5958135510894706,-43.4443718479046765],"rgb":[0.733333333333333282,0.466666666666666674,0.733333333333333282],"xyz":[0.360582822787526569,0.273472819629651753,0.50394536730749],"hpluv":[307.71501294924542,117.529775077760561,59.2944060970233693],"hsluv":[307.71501294924542,40.6617226560308467,59.2944060970233693]},"#bb77cc":{"lch":[59.9960747587738155,65.1135012197087519,297.896140559284788],"luv":[59.9960747587738155,30.4646722292654815,-57.5471266620014177],"rgb":[0.733333333333333282,0.466666666666666674,0.8],"xyz":[0.379875198231248268,0.281189769807140555,0.605551877977760111],"hpluv":[297.896140559284788,137.716994859863917,59.9960747587738155],"hsluv":[297.896140559284788,53.5682479917909,59.9960747587738155]},"#bb77dd":{"lch":[60.7637179337253599,76.6332290650186394,290.953982706702106],"luv":[60.7637179337253599,27.4054240934965065,-71.5653165100750357],"rgb":[0.733333333333333282,0.466666666666666674,0.866666666666666696],"xyz":[0.401393523781881867,0.289797100027394061,0.718881725877766109],"hpluv":[290.953982706702106,160.033945707839,60.7637179337253599],"hsluv":[290.953982706702106,68.5485010485900119,60.7637179337253599]},"#bb77ee":{"lch":[61.5956761624293563,88.8082274030350902,285.979672103614405],"luv":[61.5956761624293563,24.4485758512518743,-85.3766267389077456],"rgb":[0.733333333333333282,0.466666666666666674,0.933333333333333348],"xyz":[0.425205704048056576,0.299321972133864078,0.844292541946289332],"hpluv":[285.979672103614405,182.954165183101395,61.5956761624293563],"hsluv":[285.979672103614405,84.0163684558434909,61.5956761624293563]},"#bb77ff":{"lch":[62.4899351736807773,101.23109143545085,282.328516880108566],"luv":[62.4899351736807773,21.6145233767131266,-98.8966442929694693],"rgb":[0.733333333333333282,0.466666666666666674,1],"xyz":[0.451376752457888,0.309790391497796802,0.982126730238071177],"hpluv":[282.328516880108566,205.562159598045383,62.4899351736807773],"hsluv":[282.328516880108566,99.9999999999986784,62.4899351736807773]},"#998800":{"lch":[56.4673516485332527,62.834492950420568,74.7562721675545561],"luv":[56.4673516485332527,16.5207966112614884,60.6237311922136897],"rgb":[0.6,0.533333333333333326,0],"xyz":[0.219403499200853586,0.243810947756601892,0.0355036829424554834],"hpluv":[74.7562721675545561,141.201731332299261,56.4673516485332527],"hsluv":[74.7562721675545561,100.000000000002331,56.4673516485332527]},"#998811":{"lch":[56.5074221469723881,61.2259080808398366,74.51872844438833],"luv":[56.5074221469723881,16.3426261455871646,59.0044946676862878],"rgb":[0.6,0.533333333333333326,0.0666666666666666657],"xyz":[0.220415164700490718,0.244215613956456745,0.0408317879072111131],"hpluv":[74.51872844438833,137.489352382480689,56.5074221469723881],"hsluv":[74.51872844438833,97.3110722480099781,56.5074221469723881]},"#998822":{"lch":[56.5815852437789744,58.2905156727598666,74.0508275651119],"luv":[56.5815852437789744,16.0173304476746452,56.0466711119068961],"rgb":[0.6,0.533333333333333326,0.133333333333333331],"xyz":[0.222290522838967719,0.244965757211847573,0.0507086741031903127],"hpluv":[74.0508275651119,130.726042229432494,56.5815852437789744],"hsluv":[74.0508275651119,92.4075523300517574,56.5815852437789744]},"#998833":{"lch":[56.7033645714083,53.5858970619529273,73.1917859227149],"luv":[56.7033645714083,15.4953822971072128,51.2966031175623911],"rgb":[0.6,0.533333333333333326,0.2],"xyz":[0.22537827357142548,0.246200857504830672,0.066970827960801449],"hpluv":[73.1917859227149,119.917068416956084,56.7033645714083],"hsluv":[73.1917859227149,84.5557602276611533,56.7033645714083]},"#998844":{"lch":[56.8784692361674189,47.0662938677721456,71.7105236832421156],"luv":[56.8784692361674189,14.7702533586865563,44.6886521856241927],"rgb":[0.6,0.533333333333333326,0.266666666666666663],"xyz":[0.22983626881564434,0.247984055602518266,0.0904496029136880875],"hpluv":[71.7105236832421156,105.00293267331034,56.8784692361674189],"hsluv":[71.7105236832421156,73.6816499137771075,56.8784692361674189]},"#998855":{"lch":[57.1113583918905761,38.8337969655052433,69.1066660847648393],"luv":[57.1113583918905761,13.8492700909341142,36.2803184206870242],"rgb":[0.6,0.533333333333333326,0.333333333333333315],"xyz":[0.235798682855006325,0.250369021218263099,0.121851650187662],"hpluv":[69.1066660847648393,86.2832891510872599,57.1113583918905761],"hsluv":[69.1066660847648393,59.9309888570698774,57.1113583918905761]},"#998866":{"lch":[57.4054971647218224,29.1657433305745144,64.0747883902216],"luv":[57.4054971647218224,12.7511922431808031,26.2306629806110223],"rgb":[0.6,0.533333333333333326,0.4],"xyz":[0.24338367862851451,0.253403019527666418,0.161799294594805965],"hpluv":[64.0747883902216,64.4701815948561574,57.4054971647218224],"hsluv":[64.0747883902216,43.6310875702010321,57.4054971647218224]},"#998877":{"lch":[57.7634914296009612,18.7238256654584347,52.0945218145914097],"luv":[57.7634914296009612,11.5031815844705712,14.773573060880608],"rgb":[0.6,0.533333333333333326,0.466666666666666674],"xyz":[0.252697691648716416,0.257128624735747213,0.210853096501203874],"hpluv":[52.0945218145914097,41.1320618043462858,57.7634914296009612],"hsluv":[52.0945218145914097,25.2418236256697028,57.7634914296009612]},"#998888":{"lch":[58.1871725604667489,10.3706980586515272,12.1770506300640946],"luv":[58.1871725604667489,10.1373621264743505,2.18752539195365081],"rgb":[0.6,0.533333333333333326,0.533333333333333326],"xyz":[0.263838108750660272,0.261584791576524811,0.269525959904776],"hpluv":[12.1770506300640946,22.6162221883482317,58.1871725604667489],"hsluv":[12.1770506300640946,7.14421708061451799,58.1871725604667489]},"#998899":{"lch":[58.6776613659523605,14.2013195506443459,307.715012949254117],"luv":[58.6776613659523605,8.6874348403017283,-11.2341422847952668],"rgb":[0.6,0.533333333333333326,0.6],"xyz":[0.276895072859732971,0.266807577220153969,0.338292637545893948],"hpluv":[307.715012949254117,30.7110899398720818,58.6776613659523605],"hsluv":[307.715012949254117,10.6251017733449729,58.6776613659523605]},"#9988aa":{"lch":[59.2354248002074399,26.2127450059066938,285.910383521223935],"luv":[59.2354248002074399,7.18579172527609789,-25.2085778659891844],"rgb":[0.6,0.533333333333333326,0.66666666666666663],"xyz":[0.291952765824985527,0.272830654406255091,0.417596487162892549],"hpluv":[285.910383521223935,56.1526584479988173,59.2354248002074399],"hsluv":[285.910383521223935,23.5088603674401817,59.2354248002074399]},"#9988bb":{"lch":[59.8603319378123189,39.8857557696632696,278.160160819701673],"luv":[59.8603319378123189,5.66141142610705117,-39.4819190767314581],"rgb":[0.6,0.533333333333333326,0.733333333333333282],"xyz":[0.309090357932322146,0.279685691249189849,0.507854472261534351],"hpluv":[278.160160819701673,84.5508603994872,59.8603319378123189],"hsluv":[278.160160819701673,37.7262541103550291,59.8603319378123189]},"#9988cc":{"lch":[60.55171199345871,53.9990869041691823,274.395593429514747],"luv":[60.55171199345871,4.13861667015410095,-53.8402566723222264],"rgb":[0.6,0.533333333333333326,0.8],"xyz":[0.3283827333760439,0.287402641426678651,0.609460982931804507],"hpluv":[274.395593429514747,113.161661700826286,60.55171199345871],"hsluv":[274.395593429514747,52.5240219153236723,60.55171199345871]},"#9988dd":{"lch":[61.3084150605589855,68.1648195931338563,272.216747448240312],"luv":[61.3084150605589855,2.63660773112319324,-68.1138086575451],"rgb":[0.6,0.533333333333333326,0.866666666666666696],"xyz":[0.349901058926677444,0.296009971646932157,0.722790830831810505],"hpluv":[272.216747448240312,141.084572716849891,61.3084150605589855],"hsluv":[272.216747448240312,67.8395486149695,61.3084150605589855]},"#9988ee":{"lch":[62.128875020953032,82.18421866163294,270.815422264053723],"luv":[62.128875020953032,1.1695901512833331,-82.1758958326656597],"rgb":[0.6,0.533333333333333326,0.933333333333333348],"xyz":[0.373713239192852154,0.305534843753402174,0.848201646900333728],"hpluv":[270.815422264053723,167.854994169255662,62.128875020953032],"hsluv":[270.815422264053723,83.6558877567472905,62.128875020953032]},"#9988ff":{"lch":[63.0111734122257303,95.9388777898474387,269.8490772999765],"luv":[63.0111734122257303,-0.252712116882344406,-95.9385449554102],"rgb":[0.6,0.533333333333333326,1],"xyz":[0.399884287602683575,0.316003263117334898,0.986035835192115462],"hpluv":[269.8490772999765,193.204124490752207,63.0111734122257303],"hsluv":[269.8490772999765,99.9999999999985363,63.0111734122257303]},"#bb8800":{"lch":[60.0458653136574,74.8864062555341832,55.056379834278971],"luv":[60.0458653136574,42.8926945435799,61.3855894869476728],"rgb":[0.733333333333333282,0.533333333333333326,0],"xyz":[0.292968333781028434,0.281742815587005313,0.038952034563401107],"hpluv":[55.056379834278971,158.255644288368103,60.0458653136574],"hsluv":[55.056379834278971,100.000000000002288,60.0458653136574]},"#bb8811":{"lch":[60.0822560315187957,73.5298298886522161,54.5759299869630823],"luv":[60.0822560315187957,42.619621560372849,59.9183089005750773],"rgb":[0.733333333333333282,0.533333333333333326,0.0666666666666666657],"xyz":[0.293979999280665538,0.282147481786860166,0.0442801395281567367],"hpluv":[54.5759299869630823,155.294707870281485,60.0822560315187957],"hsluv":[54.5759299869630823,97.6878818876268866,60.0822560315187957]},"#bb8822":{"lch":[60.1496227929862499,71.0610449842002367,53.6488709316330343],"luv":[60.1496227929862499,42.1201645307819774,57.2325419158225586],"rgb":[0.733333333333333282,0.533333333333333326,0.133333333333333331],"xyz":[0.295855357419142595,0.282897625042250966,0.0541570257241359362],"hpluv":[53.6488709316330343,149.912555699661567,60.1496227929862499],"hsluv":[53.6488709316330343,93.46183514856709,60.1496227929862499]},"#bb8833":{"lch":[60.2602822329103844,67.1261991777524,52.0115270519145412],"luv":[60.2602822329103844,41.3163720666953154,52.9044801061090197],"rgb":[0.733333333333333282,0.533333333333333326,0.2],"xyz":[0.298943108151600301,0.284132725335234093,0.0704191795817470795],"hpluv":[52.0115270519145412,141.351435183858257,60.2602822329103844],"hsluv":[52.0115270519145412,86.668700859176,60.2602822329103844]},"#bb8844":{"lch":[60.4194844691316746,61.7320119628667285,49.374045706205429],"luv":[60.4194844691316746,40.1948297943626258,46.8531424643613406],"rgb":[0.733333333333333282,0.533333333333333326,0.266666666666666663],"xyz":[0.303401103395819216,0.285915923432921659,0.093897954534633718],"hpluv":[49.374045706205429,129.650066203053939,60.4194844691316746],"hsluv":[49.374045706205429,77.207197386412,60.4194844691316746]},"#bb8855":{"lch":[60.6313805732006585,55.0590005000961682,45.2500033552910708],"luv":[60.6313805732006585,38.7623447760430935,39.1020992215604082],"rgb":[0.733333333333333282,0.533333333333333326,0.333333333333333315],"xyz":[0.309363517435181201,0.28830088904866652,0.125300001808607619],"hpluv":[45.2500033552910708,115.231228654446355,60.6313805732006585],"hsluv":[45.2500033552910708,65.1528926573884775,60.6313805732006585]},"#bb8866":{"lch":[60.8992588402534949,47.519038379270981,38.7816256818529581],"luv":[60.8992588402534949,37.0429375720225096,29.7637327048519147],"rgb":[0.733333333333333282,0.533333333333333326,0.4],"xyz":[0.316948513208689386,0.291334887358069838,0.165247646215751581],"hpluv":[38.7816256818529581,99.0136254476035305,60.8992588402534949],"hsluv":[38.7816256818529581,50.7321114426118,60.8992588402534949]},"#bb8877":{"lch":[61.2256685857267087,39.8992767652027354,28.4701407483744688],"luv":[61.2256685857267087,35.0740840991728362,19.0200134329710231],"rgb":[0.733333333333333282,0.533333333333333326,0.466666666666666674],"xyz":[0.326262526228891292,0.295060492566150634,0.21430144812214949],"hpluv":[28.4701407483744688,82.6933933486175761,61.2256685857267087],"hsluv":[28.4701407483744688,34.2887258466009897,61.2256685857267087]},"#bb8888":{"lch":[61.6124959728340684,33.6595928281588499,12.1770506300623627],"luv":[61.6124959728340684,32.9022674846918903,7.09992843085263114],"rgb":[0.733333333333333282,0.533333333333333326,0.533333333333333326],"xyz":[0.337402943330835092,0.299516659406928232,0.272974311525721658],"hpluv":[12.1770506300623627,69.3233245158679,61.6124959728340684],"hsluv":[12.1770506300623627,26.8235367690150284,61.6124959728340684]},"#bb8899":{"lch":[62.0610184830546388,31.1131530731089718,349.361203223606594],"luv":[62.0610184830546388,30.5783355372127765,-5.74401339869088723],"rgb":[0.733333333333333282,0.533333333333333326,0.6],"xyz":[0.350459907439907847,0.304739445050557389,0.341740989166839593],"hpluv":[349.361203223606594,63.6157209963685091,62.0610184830546388],"hsluv":[349.361203223606594,28.7433747177793393,62.0610184830546388]},"#bb88aa":{"lch":[62.5719506337331097,34.1093853871598185,325.627133749050586],"luv":[62.5719506337331097,28.1532372220531357,-19.2573467904743723],"rgb":[0.733333333333333282,0.533333333333333326,0.66666666666666663],"xyz":[0.365517600405160348,0.310762522236658512,0.421044838783838193],"hpluv":[325.627133749050586,69.1725086761469328,62.5719506337331097],"hsluv":[325.627133749050586,30.7007491098828176,62.5719506337331097]},"#bb88bb":{"lch":[63.1454872588298,41.9701566603395477,307.715012949246614],"luv":[63.1454872588298,25.674586077978244,-33.2010493782640808],"rgb":[0.733333333333333282,0.533333333333333326,0.733333333333333282],"xyz":[0.382655192512497,0.31761755907959327,0.51130282388247994],"hpluv":[307.715012949246614,84.3407770596407,63.1454872588298],"hsluv":[307.715012949246614,32.6446535119142354,63.1454872588298]},"#bb88cc":{"lch":[63.7813474201422,52.7335158558763055,296.081540752202443],"luv":[63.7813474201422,23.1842810338905281,-47.3636232510092228],"rgb":[0.733333333333333282,0.533333333333333326,0.8],"xyz":[0.401947567956218776,0.325334509257082072,0.612909334552750096],"hpluv":[296.081540752202443,104.913738848088499,63.7813474201422],"hsluv":[296.081540752202443,48.441096457031712,63.7813474201422]},"#bb88dd":{"lch":[64.4788201663492089,64.9599578897110916,288.597779393076337],"luv":[64.4788201663492089,20.7171971389296665,-61.56779898404492],"rgb":[0.733333333333333282,0.533333333333333326,0.866666666666666696],"xyz":[0.423465893506852264,0.333941839477335578,0.726239182452756094],"hpluv":[288.597779393076337,127.840358269428478,64.4788201663492089],"hsluv":[288.597779393076337,64.9415793589177,64.4788201663492089]},"#bb88ee":{"lch":[65.2368122498474463,77.8541115668441392,283.595470556329246],"luv":[65.2368122498474463,18.300798164755431,-75.6726071600252084],"rgb":[0.733333333333333282,0.533333333333333326,0.933333333333333348],"xyz":[0.44727807377302703,0.343466711583805595,0.851649998521279317],"hpluv":[283.595470556329246,151.435657753316406,65.2368122498474463],"hsluv":[283.595470556329246,82.1213401763518789,65.2368122498474463]},"#bb88ff":{"lch":[66.0538972531437452,90.9819525935223652,280.100148709787334],"luv":[66.0538972531437452,15.9554396417090967,-89.5719802369565201],"rgb":[0.733333333333333282,0.533333333333333326,1],"xyz":[0.473449122182858395,0.353935130947738319,0.989484186813061162],"hpluv":[280.100148709787334,174.781769995450787,66.0538972531437452],"hsluv":[280.100148709787334,99.99999999999838,66.0538972531437452]},"#999900":{"lch":[61.2683639221826866,67.5422828804358772,85.8743202181747449],"luv":[61.2683639221826866,4.85929488236129092,67.3672563635114869],"rgb":[0.6,0.6,0],"xyz":[0.245273099653321058,0.295550148661537559,0.0441268830932777384],"hpluv":[85.8743202181747449,139.887458074797593,61.2683639221826866],"hsluv":[85.8743202181747449,100.000000000002359,61.2683639221826866]},"#999911":{"lch":[61.3036130280217861,66.0751339072958785,85.8743202181746881],"luv":[61.3036130280217861,4.75374160235953358,65.9039093047224185],"rgb":[0.6,0.6,0.0666666666666666657],"xyz":[0.24628476515295819,0.295954814861392412,0.0494549880580333681],"hpluv":[85.8743202181746881,136.770144995815713,61.3036130280217861],"hsluv":[85.8743202181746881,97.7715564197957718,61.3036130280217861]},"#999922":{"lch":[61.3688705786650104,63.38848415762304,85.8743202181745744],"luv":[61.3688705786650104,4.56045196477970372,63.2242216375825663],"rgb":[0.6,0.6,0.133333333333333331],"xyz":[0.248160123291435192,0.296704958116783213,0.0593318742540125676],"hpluv":[85.8743202181745744,131.069475710796667,61.3688705786650104],"hsluv":[85.8743202181745744,93.6963738669960691,61.3688705786650104]},"#999933":{"lch":[61.4760769955270945,59.0559618954583243,85.8743202181743754],"luv":[61.4760769955270945,4.24875087387181871,58.9029265097210484],"rgb":[0.6,0.6,0.2],"xyz":[0.251247874023892925,0.29794005840976634,0.0755940281116237178],"hpluv":[85.8743202181743754,121.898097720990123,61.4760769955270945],"hsluv":[85.8743202181743754,87.1401192062652683,61.4760769955270945]},"#999944":{"lch":[61.6303367515695,52.9921690524208,85.8743202181739775],"luv":[61.6303367515695,3.81249440942850049,52.8548471500809569],"rgb":[0.6,0.6,0.266666666666666663],"xyz":[0.255705869268111841,0.299723256507453906,0.0990728030645103563],"hpluv":[85.8743202181739775,109.10797160418339,61.6303367515695],"hsluv":[85.8743202181739775,77.9969649215058,61.6303367515695]},"#999955":{"lch":[61.8357003743425935,45.2147461889200173,85.8743202181734517],"luv":[61.8357003743425935,3.25295171251598125,45.0975784059909],"rgb":[0.6,0.6,0.333333333333333315],"xyz":[0.261668283307473826,0.302108222123198766,0.130474850338484272],"hpluv":[85.8743202181734517,92.7855058259100218,61.8357003743425935],"hsluv":[85.8743202181734517,66.3286810003367577,61.8357003743425935]},"#999966":{"lch":[62.0953945325949377,35.8293841981041083,85.874320218172457],"luv":[62.0953945325949377,2.57772666020637553,35.7365372872164784],"rgb":[0.6,0.6,0.4],"xyz":[0.269253279080982,0.305142220432602085,0.170422494745628206],"hpluv":[85.874320218172457,73.2182390722606,62.0953945325949377],"hsluv":[85.874320218172457,52.3408174542086542,62.0953945325949377]},"#999977":{"lch":[62.4119425079225749,25.0116267171883422,85.8743202181703],"luv":[62.4119425079225749,1.79944864939855109,24.9468125338318],"rgb":[0.6,0.6,0.466666666666666674],"xyz":[0.278567292101183916,0.30886782564068288,0.219476296652026115],"hpluv":[85.8743202181703,50.8526471570801775,62.4119425079225749],"hsluv":[85.8743202181703,36.3525421484824918,62.4119425079225749]},"#999988":{"lch":[62.7872374999600567,12.9853368609797517,85.8743202181639589],"luv":[62.7872374999600567,0.934223397011331502,12.9516871502363],"rgb":[0.6,0.6,0.533333333333333326],"xyz":[0.289707709203127717,0.313323992481460478,0.27814916005559831],"hpluv":[85.8743202181639589,26.2434647477884546,62.7872374999600567],"hsluv":[85.8743202181639589,18.7604129126121961,62.7872374999600567]},"#999999":{"lch":[63.2225945523589843,3.33307052034688283e-12,0],"luv":[63.2225945523589843,3.14807442966336163e-12,1.09498241031769098e-12],"rgb":[0.6,0.6,0.6],"xyz":[0.302764673312200472,0.318546778125089636,0.346915837696716189],"hpluv":[0,6.68977504875838914e-12,63.2225945523589843],"hsluv":[0,3.10313074237261963e-12,63.2225945523589843]},"#9999aa":{"lch":[63.7187933641432238,13.6904464527836414,265.874320218190064],"luv":[63.7187933641432238,-0.984952144759020598,-13.6549695477167123],"rgb":[0.6,0.6,0.66666666666666663],"xyz":[0.317822366277453,0.324569855311190758,0.42621968731371479],"hpluv":[265.874320218190064,27.2639887848552753,63.7187933641432238],"hsluv":[265.874320218190064,14.5770868731616492,63.7187933641432238]},"#9999bb":{"lch":[64.276118203606174,27.8450519356751158,265.874320218183641],"luv":[64.276118203606174,-2.00329797275791854,-27.7728953213882335],"rgb":[0.6,0.6,0.733333333333333282],"xyz":[0.334959958384789647,0.331424892154125517,0.516477672412356537],"hpluv":[265.874320218183641,54.9715165011475904,64.276118203606174],"hsluv":[265.874320218183641,30.0955931685464577,64.276118203606174]},"#9999cc":{"lch":[64.8943980299807635,42.2483295275786332,265.874320218181538],"luv":[64.8943980299807635,-3.03953438803302189,-42.138848804575062],"rgb":[0.6,0.6,0.8],"xyz":[0.354252333828511401,0.339141842331614318,0.618084183082626692],"hpluv":[265.874320218181538,82.6117192029769,64.8943980299807635],"hsluv":[265.874320218181538,46.4456834766813316,64.8943980299807635]},"#9999dd":{"lch":[65.5730481583578353,56.7175687031348,265.874320218180458],"luv":[65.5730481583578353,-4.08051637559571567,-56.570592941061804],"rgb":[0.6,0.6,0.866666666666666696],"xyz":[0.375770659379144889,0.347749172551867824,0.73141403098263269],"hpluv":[265.874320218180458,109.756831209262941,65.5730481583578353],"hsluv":[265.874320218180458,63.5568222493012627,65.5730481583578353]},"#9999ee":{"lch":[66.311113738117,71.1055788100052695,265.874320218179832],"luv":[66.311113738117,-5.11565437949467672,-70.9213185027987691],"rgb":[0.6,0.6,0.933333333333333348],"xyz":[0.399582839645319654,0.357274044658337842,0.856824847051155913],"hpluv":[265.874320218179832,136.068212717368169,66.311113738117],"hsluv":[265.874320218179832,81.4020980414818922,66.311113738117]},"#9999ff":{"lch":[67.1073146704137145,85.2999068143523829,265.874320218179378],"luv":[67.1073146704137145,-6.13685802391602486,-85.0788638624864149],"rgb":[0.6,0.6,1],"xyz":[0.425753888055151,0.367742464022270565,0.994659035342937758],"hpluv":[265.874320218179378,161.293929533565688,67.1073146704137145],"hsluv":[265.874320218179378,99.9999999999983,67.1073146704137145]},"#bb9900":{"lch":[64.4418646198176219,74.1135014806344117,66.2793330800256228],"luv":[64.4418646198176219,29.8142337654579457,67.8522112145111],"rgb":[0.733333333333333282,0.6,0],"xyz":[0.318837934233495934,0.333482016491941036,0.047575234714223362],"hpluv":[66.2793330800256228,145.938057142603384,64.4418646198176219],"hsluv":[66.2793330800256228,100.000000000002416,64.4418646198176219]},"#bb9911":{"lch":[64.4743890579801331,72.806990252212529,65.9899074816349],"luv":[64.4743890579801331,29.6249863695688624,66.5072778888794147],"rgb":[0.733333333333333282,0.6,0.0666666666666666657],"xyz":[0.319849599733133039,0.333886682691795889,0.0529033396789789917],"hpluv":[65.9899074816349,143.29306400111571,64.4743890579801331],"hsluv":[65.9899074816349,98.0367215419372542,64.4743890579801331]},"#bb9922":{"lch":[64.5346112536789,70.4161712525116599,65.4311312102869636],"luv":[64.5346112536789,29.2781077929992222,64.0408430450799671],"rgb":[0.733333333333333282,0.6,0.133333333333333331],"xyz":[0.321724957871610096,0.334636825947186689,0.0627802258749581843],"hpluv":[65.4311312102869636,138.458312961065701,64.5346112536789],"hsluv":[65.4311312102869636,94.4406497380354892,64.5346112536789]},"#bb9933":{"lch":[64.6335704733000398,66.566957174521292,64.4427367566729146],"luv":[64.6335704733000398,28.7178476591491503,60.0536844273559396],"rgb":[0.733333333333333282,0.6,0.2],"xyz":[0.324812708604067801,0.335871926240169816,0.0790423797325693345],"hpluv":[64.4427367566729146,130.689255588928205,64.6335704733000398],"hsluv":[64.4427367566729146,88.6394107340449153,64.6335704733000398]},"#bb9944":{"lch":[64.7760175449466828,61.1991201001527685,62.8442649593615386],"luv":[64.7760175449466828,27.9319304868930693,54.4530950480162872],"rgb":[0.733333333333333282,0.6,0.266666666666666663],"xyz":[0.329270703848286717,0.337655124337857382,0.102521154685455973],"hpluv":[62.8442649593615386,119.886494259466,64.7760175449466828],"hsluv":[62.8442649593615386,80.5164965868838607,64.7760175449466828]},"#bb9955":{"lch":[64.965753761967747,54.3684881208399204,60.3198292286154],"luv":[64.965753761967747,26.9209928274273445,47.235501963369849],"rgb":[0.733333333333333282,0.6,0.333333333333333315],"xyz":[0.335233117887648702,0.340040089953602243,0.133923201959429888],"hpluv":[60.3198292286154,106.194518749025775,64.965753761967747],"hsluv":[60.3198292286154,70.0945405394646883,64.965753761967747]},"#bb9966":{"lch":[65.2058459998609,46.2670609228556557,56.2614414361724258],"luv":[65.2058459998609,25.6969192719684436,38.4747874116176689],"rgb":[0.733333333333333282,0.6,0.4],"xyz":[0.342818113661156887,0.343074088263005561,0.17387084636657385],"hpluv":[56.2614414361724258,90.0377647384168,65.2058459998609],"hsluv":[56.2614414361724258,57.5177389460533064,65.2058459998609]},"#bb9977":{"lch":[65.4987393303808147,37.2952826673053153,49.3796729345645886],"luv":[65.4987393303808147,24.280853083902965,28.3086255892461871],"rgb":[0.733333333333333282,0.6,0.466666666666666674],"xyz":[0.352132126681358792,0.346799693471086357,0.222924648272971759],"hpluv":[49.3796729345645886,72.2537327682772172,65.4987393303808147],"hsluv":[49.3796729345645886,43.0302399575574199,65.4987393303808147]},"#bb9988":{"lch":[65.8463246780106601,28.3139420599436384,36.7022131699001193],"luv":[65.8463246780106601,22.7007755052872291,16.9220006628175241],"rgb":[0.733333333333333282,0.6,0.533333333333333326],"xyz":[0.363272543783302593,0.351255860311863954,0.281597511676543899],"hpluv":[36.7022131699001193,54.564242001153282,65.8463246780106601],"hsluv":[36.7022131699001193,26.9495650592517677,65.8463246780106601]},"#bb9999":{"lch":[66.2499853133799377,21.4719543680734333,12.1770506300627517],"luv":[66.2499853133799377,20.9888452793887552,4.52914983440691099],"rgb":[0.733333333333333282,0.6,0.6],"xyz":[0.376329507892375292,0.356478645955493112,0.350364189317661834],"hpluv":[12.1770506300627517,41.1268186121042731,66.2499853133799377],"hsluv":[12.1770506300627517,20.948078856310218,66.2499853133799377]},"#bb99aa":{"lch":[66.7106335886793715,21.0368039825091344,335.738246937474969],"luv":[66.7106335886793715,19.1787866223333445,-8.64414631375011489],"rgb":[0.733333333333333282,0.6,0.66666666666666663],"xyz":[0.391387200857627848,0.362501723141594234,0.429668038934660435],"hpluv":[335.738246937474969,40.0151105801343192,66.7106335886793715],"hsluv":[335.738246937474969,22.766845509204984,66.7106335886793715]},"#bb99bb":{"lch":[67.2287438260669887,28.2861274819753,307.715012949249171],"luv":[67.2287438260669887,17.3035955220760833,-22.3761165070024362],"rgb":[0.733333333333333282,0.6,0.733333333333333282],"xyz":[0.408524792964964523,0.369356759984529,0.519926024033302125],"hpluv":[307.715012949249171,53.3897422679679323,67.2287438260669887],"hsluv":[307.715012949249171,24.5905380245485432,67.2287438260669887]},"#bb99cc":{"lch":[67.8043844715017343,39.5775547497090656,292.889275489017223],"luv":[67.8043844715017343,15.393749985076461,-36.4611478338680044],"rgb":[0.733333333333333282,0.6,0.8],"xyz":[0.427817168408686221,0.377073710162017794,0.621532534703572281],"hpluv":[292.889275489017223,74.0679810995506642,67.8043844715017343],"hsluv":[292.889275489017223,42.0187450252511,67.8043844715017343]},"#bb99dd":{"lch":[68.4372510447458353,52.4777928084534082,284.879936967142157],"luv":[68.4372510447458353,13.4760025497769718,-50.718005612655638],"rgb":[0.733333333333333282,0.6,0.866666666666666696],"xyz":[0.449335493959319821,0.385681040382271301,0.734862382603578279],"hpluv":[284.879936967142157,97.3021261982971737,68.4372510447458353],"hsluv":[284.879936967142157,60.4059975969609724,68.4372510447458353]},"#bb99ee":{"lch":[69.1267004581107898,66.0165196934359244,280.096152477623832],"luv":[69.1267004581107898,11.5727364631099334,-64.9942508472035456],"rgb":[0.733333333333333282,0.6,0.933333333333333348],"xyz":[0.47314767422549453,0.395205912488741318,0.860273198672101502],"hpluv":[280.096152477623832,121.184234531677617,69.1267004581107898],"hsluv":[280.096152477623832,79.7264365589122548,69.1267004581107898]},"#bb99ff":{"lch":[69.8717866786541,79.7596884688517207,276.986638727898821],"luv":[69.8717866786541,9.70179942494587877,-79.1674364405365765],"rgb":[0.733333333333333282,0.6,1],"xyz":[0.499318722635325951,0.405674331852674042,0.998107386963883347],"hpluv":[276.986638727898821,144.850809586534439,69.8717866786541],"hsluv":[276.986638727898821,99.9999999999980247,69.8717866786541]},"#880000":{"lch":[27.3946073685119416,92.1289276169810876,12.1770506300617765],"luv":[27.3946073685119416,90.0560691570773,19.4330571920800175],"rgb":[0.533333333333333326,0,0],"xyz":[0.101531161901381561,0.0523520053554009795,0.00475927321412716],"hpluv":[12.1770506300617765,426.746789183125316,27.3946073685119416],"hsluv":[12.1770506300617765,100.000000000002245,27.3946073685119416]},"#880011":{"lch":[27.5061298630582485,89.4551794237446529,10.4692299831444977],"luv":[27.5061298630582485,87.9659862388495242,16.254672889999533],"rgb":[0.533333333333333326,0,0.0666666666666666657],"xyz":[0.10254282740101868,0.0527566715552558324,0.0100873781788827915],"hpluv":[10.4692299831444977,412.68181181873,27.5061298630582485],"hsluv":[10.4692299831444977,99.9999999999965,27.5061298630582485]},"#880022":{"lch":[27.711363673312789,85.0234292319238421,7.23413932290422057],"luv":[27.711363673312789,84.3466296586470463,10.7065206104973338],"rgb":[0.533333333333333326,0,0.133333333333333331],"xyz":[0.104418185539495709,0.0535068148106466537,0.0199642643748619876],"hpluv":[7.23413932290422057,389.331950846774873,27.711363673312789],"hsluv":[7.23413932290422057,99.9999999999967,27.711363673312789]},"#880033":{"lch":[28.0451389930846,79.0521177396887396,1.75350406004841131],"luv":[28.0451389930846,79.0150993176991392,2.41896650323101259],"rgb":[0.533333333333333326,0,0.2],"xyz":[0.107505936271953442,0.0547419151036297666,0.0362264182324731343],"hpluv":[1.75350406004841131,357.680479105960103,28.0451389930846],"hsluv":[1.75350406004841131,99.9999999999969589,28.0451389930846]},"#880044":{"lch":[28.5182895144164306,72.8806899851902585,353.674121255230034],"luv":[28.5182895144164306,72.4369406321056459,-8.0302306678086488],"rgb":[0.533333333333333326,0,0.266666666666666663],"xyz":[0.111963931516172316,0.0565251132013173396,0.0597051931853597728],"hpluv":[353.674121255230034,324.286096087098713,28.5182895144164306],"hsluv":[353.674121255230034,99.9999999999972857,28.5182895144164306]},"#880055":{"lch":[29.1358047874334787,68.1690091719341922,343.056201782139055],"luv":[29.1358047874334787,65.2098664506571453,-19.866734230132252],"rgb":[0.533333333333333326,0,0.333333333333333315],"xyz":[0.117926345555534315,0.0589100788170621725,0.0911072404593336743],"hpluv":[343.056201782139055,296.892542908362316,29.1358047874334787],"hsluv":[343.056201782139055,99.9999999999977405,29.1358047874334787]},"#880066":{"lch":[29.8977347275108087,66.3157421691867768,330.790160549998632],"luv":[29.8977347275108087,57.8829185884671915,-32.3627161272186115],"rgb":[0.533333333333333326,0,0.4],"xyz":[0.125511341329042486,0.0619440771264654841,0.13105488486647765],"hpluv":[330.790160549998632,281.460643767249167,29.8977347275108087],"hsluv":[330.790160549998632,99.9999999999981384,29.8977347275108087]},"#880077":{"lch":[30.8000475559674527,67.8890879971799,318.512376228514142],"luv":[30.8000475559674527,50.8556366042998462,-44.9736866918894549],"rgb":[0.533333333333333326,0,0.466666666666666674],"xyz":[0.13482535434924442,0.0656696823345463,0.180108686772875559],"hpluv":[318.512376228514142,279.697068124812404,30.8000475559674527],"hsluv":[318.512376228514142,99.9999999999984652,30.8000475559674527]},"#880088":{"lch":[31.8355421357531156,72.5162027692933862,307.715012949243601],"luv":[31.8355421357531156,44.3606514294377803,-57.3649045046986288],"rgb":[0.533333333333333326,0,0.533333333333333326],"xyz":[0.14596577145118822,0.0701258491753239,0.238781550176447727],"hpluv":[307.715012949243601,289.042783730483279,31.8355421357531156],"hsluv":[307.715012949243601,99.9999999999987921,31.8355421357531156]},"#880099":{"lch":[32.9947769935272675,79.3376809512942,299.026215263792551],"luv":[32.9947769935272675,38.4954159686478121,-69.3726932454703444],"rgb":[0.533333333333333326,0,0.6],"xyz":[0.159022735560260947,0.0753486348189530558,0.307548227817565634],"hpluv":[299.026215263792551,305.122076286487129,32.9947769935272675],"hsluv":[299.026215263792551,99.9999999999991189,32.9947769935272675]},"#8800aa":{"lch":[34.2669429307518527,87.5167556566874651,292.341813883439613],"luv":[34.2669429307518527,33.2678552259606306,-80.9470958672197298],"rgb":[0.533333333333333326,0,0.66666666666666663],"xyz":[0.174080428525513475,0.0813717120050541642,0.386852077434564234],"hpluv":[292.341813883439613,324.082197305514,34.2669429307518527],"hsluv":[292.341813883439613,99.9999999999993605,34.2669429307518527]},"#8800bb":{"lch":[35.6406160405817047,96.4510237672048589,287.271351738157534],"luv":[35.6406160405817047,28.6360630376966157,-92.1019862947753296],"rgb":[0.533333333333333326,0,0.733333333333333282],"xyz":[0.19121802063285015,0.0882267488479889228,0.477110062533206],"hpluv":[287.271351738157534,343.400533998367337,35.6406160405817047],"hsluv":[287.271351738157534,99.999999999999531,35.6406160405817047]},"#8800cc":{"lch":[37.1043554501127346,105.765919518381835,283.413875530142832],"luv":[37.1043554501127346,24.5359458020369345,-102.880596300606314],"rgb":[0.533333333333333326,0,0.8],"xyz":[0.210510396076571876,0.0959436990254777244,0.578716573203476137],"hpluv":[283.413875530142832,361.709723992276565,37.1043554501127346],"hsluv":[283.413875530142832,99.9999999999998,37.1043554501127346]},"#8800dd":{"lch":[38.6471386159700145,115.245648848701009,280.44740978906907],"luv":[38.6471386159700145,20.8978330626497737,-113.335079087825761],"rgb":[0.533333333333333326,0,0.866666666666666696],"xyz":[0.23202872162720542,0.104551029245731258,0.692046421103482134],"hpluv":[280.44740978906907,378.39598449622531,38.6471386159700145],"hsluv":[280.44740978906907,99.9999999999998863,38.6471386159700145]},"#8800ee":{"lch":[40.258648150966188,124.7713904223,278.13468614008417],"luv":[40.258648150966188,17.6552208530237813,-123.515962711485074],"rgb":[0.533333333333333326,0,0.933333333333333348],"xyz":[0.255840901893380157,0.114075901352201275,0.817457237172005358],"hpluv":[278.13468614008417,393.273926011730225,40.258648150966188],"hsluv":[278.13468614008417,99.9999999999999858,40.258648150966188]},"#8800ff":{"lch":[41.9294357887748674,134.280036872974534,276.305800055850909],"luv":[41.9294357887748674,14.7486383519278057,-133.467621426964229],"rgb":[0.533333333333333326,0,1],"xyz":[0.282011950303211578,0.124544320716133985,0.955291425463787203],"hpluv":[276.305800055850909,406.37947026199555,41.9294357887748674],"hsluv":[276.305800055850909,100.000000000000171,41.9294357887748674]},"#aa0000":{"lch":[35.0982840320529732,118.036634932245676,12.1770506300617765],"luv":[35.0982840320529732,115.380864984340803,24.8978549596859438],"rgb":[0.66666666666666663,0,0],"xyz":[0.165771937912151307,0.08547615548595483,0.00777055958963192815],"hpluv":[12.1770506300617765,426.746789183125145,35.0982840320529732],"hsluv":[12.1770506300617765,100.000000000002217,35.0982840320529732]},"#aa0011":{"lch":[35.178794604810534,115.883637018633408,11.1343823918443601],"luv":[35.178794604810534,113.702354404428164,22.3783808966644813],"rgb":[0.66666666666666663,0,0.0666666666666666657],"xyz":[0.166783603411788439,0.0858808216858096829,0.0130986645543875596],"hpluv":[11.1343823918443601,418.004049663923468,35.178794604810534],"hsluv":[11.1343823918443601,99.9999999999964473,35.178794604810534]},"#aa0022":{"lch":[35.327373324777,112.154849255399441,9.17432067350408431],"luv":[35.327373324777,110.720144559212301,17.8818287736043224],"rgb":[0.66666666666666663,0,0.133333333333333331],"xyz":[0.16865896155026544,0.0866309649412005,0.0229755507503667557],"hpluv":[9.17432067350408431,402.852473647417696,35.327373324777],"hsluv":[9.17432067350408431,99.9999999999965752,35.327373324777]},"#aa0033":{"lch":[35.5701485089931921,106.706281850707128,5.8788523359554592],"luv":[35.5701485089931921,106.14508040487398,10.9294323844098908],"rgb":[0.66666666666666663,0,0.2],"xyz":[0.171746712282723202,0.0878660652341836101,0.0392377046079779],"hpluv":[5.8788523359554592,380.665602767339294,35.5701485089931921],"hsluv":[5.8788523359554592,99.9999999999967741,35.5701485089931921]},"#aa0044":{"lch":[35.9166782648329104,100.198740700315142,1.0062433800652546],"luv":[35.9166782648329104,100.183288799466339,1.75962588401964615],"rgb":[0.66666666666666663,0,0.266666666666666663],"xyz":[0.176204707526942062,0.0896492633318711901,0.0627164795608645409],"hpluv":[1.0062433800652546,354.001763490246503,35.9166782648329104],"hsluv":[1.0062433800652546,99.999999999997,35.9166782648329104]},"#aa0055":{"lch":[36.3730398367095,93.6502679946689369,354.384147096436777],"luv":[36.3730398367095,93.2007806216229113,-9.16445235643848832],"rgb":[0.66666666666666663,0,0.333333333333333315],"xyz":[0.182167121566304047,0.092034228947616023,0.0941185268348384424],"hpluv":[354.384147096436777,326.714758289773386,36.3730398367095],"hsluv":[354.384147096436777,99.9999999999973,36.3730398367095]},"#aa0066":{"lch":[36.9423385777606228,88.2319659172366926,346.039412913085584],"luv":[36.9423385777606228,85.6257622699194,-21.2863488018886251],"rgb":[0.66666666666666663,0,0.4],"xyz":[0.189752117339812232,0.0950682272570193415,0.134066171241982418],"hpluv":[346.039412913085584,303.068568849792825,36.9423385777606228],"hsluv":[346.039412913085584,99.9999999999976126,36.9423385777606228]},"#aa0077":{"lch":[37.6250775946346891,84.9907340508927689,336.365700313169],"luv":[37.6250775946346891,77.8619577045834319,-34.0725757306260348],"rgb":[0.66666666666666663,0,0.466666666666666674],"xyz":[0.199066130360014137,0.0987938324651001509,0.183119973148380327],"hpluv":[336.365700313169,286.637826777930513,37.6250775946346891],"hsluv":[336.365700313169,99.9999999999979536,37.6250775946346891]},"#aa0088":{"lch":[38.4195160158879432,84.5572797483387717,326.161033183527252],"luv":[38.4195160158879432,70.2337789048813761,-47.0866208086656215],"rgb":[0.66666666666666663,0,0.533333333333333326],"xyz":[0.210206547461958,0.103249999305877749,0.241792836551952495],"hpluv":[326.161033183527252,279.279102381419364,38.4195160158879432],"hsluv":[326.161033183527252,99.9999999999982379,38.4195160158879432]},"#aa0099":{"lch":[39.3220484546604681,86.9871636461465272,316.374304421046759],"luv":[39.3220484546604681,62.9667468975572859,-60.0162929906574334],"rgb":[0.66666666666666663,0,0.6],"xyz":[0.223263511571030693,0.108472784949506906,0.310559514193070374],"hpluv":[316.374304421046759,280.710309296009257,39.3220484546604681],"hsluv":[316.374304421046759,99.9999999999986,39.3220484546604681]},"#aa00aa":{"lch":[40.3276007574525863,91.8597353001339627,307.715012949243601],"luv":[40.3276007574525863,56.1937545325413,-72.6668626056414411],"rgb":[0.66666666666666663,0,0.66666666666666663],"xyz":[0.238321204536283249,0.114495862135608,0.389863363810069],"hpluv":[307.715012949243601,289.042783730483393,40.3276007574525863],"hsluv":[307.715012949243601,99.9999999999988205,40.3276007574525863]},"#aa00bb":{"lch":[41.4300227805658849,98.5480850422065089,300.471226581677797],"luv":[41.4300227805658849,49.974285465742625,-84.9370111180893304],"rgb":[0.66666666666666663,0,0.733333333333333282],"xyz":[0.255458796643619868,0.121350898978542759,0.480121348908710721],"hpluv":[300.471226581677797,301.836908489583834,41.4300227805658849],"hsluv":[300.471226581677797,99.9999999999990621,41.4300227805658849]},"#aa00cc":{"lch":[42.6224565622471445,106.453892931925211,294.601049164416338],"luv":[42.6224565622471445,44.3164832708711813,-96.7909119228886681],"rgb":[0.66666666666666663,0,0.8],"xyz":[0.274751172087341622,0.129067849156031561,0.581727859578980877],"hpluv":[294.601049164416338,316.929304470761622,42.6224565622471445],"hsluv":[294.601049164416338,99.9999999999992895,42.6224565622471445]},"#aa00dd":{"lch":[43.8976622887243266,115.112632227118652,289.907671140995035],"luv":[43.8976622887243266,39.1964773946494063,-108.233794436426436],"rgb":[0.66666666666666663,0,0.866666666666666696],"xyz":[0.296269497637975165,0.137675179376285095,0.695057707478986875],"hpluv":[289.907671140995035,332.752186796280228,43.8976622887243266],"hsluv":[289.907671140995035,99.9999999999994174,43.8976622887243266]},"#aa00ee":{"lch":[45.2482911917969233,124.202454763835647,286.162342623679535],"luv":[45.2482911917969233,34.5729825657367655,-119.293581746345012],"rgb":[0.66666666666666663,0,0.933333333333333348],"xyz":[0.320081677904149875,0.14720005148275514,0.820468523547510098],"hpluv":[286.162342623679535,348.311106794177135,45.2482911917969233],"hsluv":[286.162342623679535,99.9999999999996589,45.2482911917969233]},"#aa00ff":{"lch":[46.667101462293175,133.514790614533382,283.159905061129905],"luv":[46.667101462293175,30.397247590160724,-130.008486845225434],"rgb":[0.66666666666666663,0,1],"xyz":[0.346252726313981296,0.157668470846687836,0.958302711839291943],"hpluv":[283.159905061129905,363.042841924949244,46.667101462293175],"hsluv":[283.159905061129905,99.9999999999998153,46.667101462293175]},"#881100":{"lch":[28.4751123640698864,88.1761994811112,13.8943544232398857],"luv":[28.4751123640698864,85.5961768878489124,21.1739617718743069],"rgb":[0.533333333333333326,0.0666666666666666657,0],"xyz":[0.103535562162309969,0.0563608058772578496,0.00542740663443661096],"hpluv":[13.8943544232398857,392.939109149716501,28.4751123640698864],"hsluv":[13.8943544232398857,100.000000000002331,28.4751123640698864]},"#881111":{"lch":[28.5813012406410962,85.6429421929893522,12.1770506300617782],"luv":[28.5813012406410962,83.7160154193071548,18.0649469909557752],"rgb":[0.533333333333333326,0.0666666666666666657,0.0666666666666666657],"xyz":[0.104547227661947087,0.0567654720771127,0.0107555115991922433],"hpluv":[12.1770506300617782,380.232213605760478,28.5813012406410962],"hsluv":[12.1770506300617782,89.1001931926906536,28.5813012406410962]},"#881122":{"lch":[28.776819878520115,81.4294437186752589,8.91447414891876377],"luv":[28.776819878520115,80.445837197505071,12.6183034487767767],"rgb":[0.533333333333333326,0.0666666666666666657,0.133333333333333331],"xyz":[0.106422585800424116,0.0575156153325035238,0.0206323977951714393],"hpluv":[8.91447414891876377,359.069069298387092,28.776819878520115],"hsluv":[8.91447414891876377,89.5522119422979,28.776819878520115]},"#881133":{"lch":[29.0950676619922959,75.7256767264573227,3.35964558590209394],"luv":[29.0950676619922959,75.5955308554484162,4.43777313107212557],"rgb":[0.533333333333333326,0.0666666666666666657,0.2],"xyz":[0.10951033653288185,0.0587507156254866367,0.0368945516527825826],"hpluv":[3.35964558590209394,330.265430862114329,29.0950676619922959],"hsluv":[3.35964558590209394,90.2199940579986475,29.0950676619922959]},"#881144":{"lch":[29.5467689283324617,69.8105982852884779,355.112641815866198],"luv":[29.5467689283324617,69.5567752183087435,-5.94765955478224484],"rgb":[0.533333333333333326,0.0666666666666666657,0.266666666666666663],"xyz":[0.113968331777100723,0.0605339137231742097,0.0603733266056692211],"hpluv":[355.112641815866198,299.81315922456514,29.5467689283324617],"hsluv":[355.112641815866198,91.0462468049379083,29.5467689283324617]},"#881155":{"lch":[30.1372440361953267,65.3247498846549,344.189828060851937],"luv":[30.1372440361953267,62.8534910411243928,-17.7977979378353552],"rgb":[0.533333333333333326,0.0666666666666666657,0.333333333333333315],"xyz":[0.119930745816462722,0.0629188793389190426,0.0917753738796431295],"hpluv":[344.189828060851937,275.05120204756264,30.1372440361953267],"hsluv":[344.189828060851937,91.9552565263170294,30.1372440361953267]},"#881166":{"lch":[30.8672249177773494,63.7021552959616173,331.50461515751158],"luv":[30.8672249177773494,55.9849923977636479,-30.3915319714745138],"rgb":[0.533333333333333326,0.0666666666666666657,0.4],"xyz":[0.127515741589970893,0.0659528776483223611,0.131723018286787091],"hpluv":[331.50461515751158,261.876101180723595,30.8672249177773494],"hsluv":[331.50461515751158,92.8754029221989299,30.8672249177773494]},"#881177":{"lch":[31.7336031237729514,65.5512880923603376,318.81152503011009],"luv":[31.7336031237729514,49.3304506912780525,-43.1680206305895737],"rgb":[0.533333333333333326,0.0666666666666666657,0.466666666666666674],"xyz":[0.136829754610172827,0.0696784828564031705,0.180776820193185],"hpluv":[318.81152503011009,262.120610410187965,31.7336031237729514],"hsluv":[318.81152503011009,93.7528273751248094,31.7336031237729514]},"#881188":{"lch":[32.7302234117729114,70.4946015177073377,307.715012949243658],"luv":[32.7302234117729114,43.1239685223607268,-55.7656900075914663],"rgb":[0.533333333333333326,0.0666666666666666657,0.533333333333333326],"xyz":[0.147970171712116627,0.0741346496971807684,0.239449683596757168],"hpluv":[307.715012949243658,273.304143969878908,32.7302234117729114],"hsluv":[307.715012949243658,94.5549099834012736,32.7302234117729114]},"#881199":{"lch":[33.8487030992268245,77.6382380820710836,298.861624073140206],"luv":[33.8487030992268245,37.4756592651389795,-67.9946393117248249],"rgb":[0.533333333333333326,0.0666666666666666657,0.6],"xyz":[0.161027135821189354,0.0793574353408099259,0.308216361237875103],"hpluv":[298.861624073140206,291.053592363859707,33.8487030992268245],"hsluv":[298.861624073140206,95.267111116431,33.8487030992268245]},"#8811aa":{"lch":[35.0792182273937954,86.1162494337963551,292.107316515455238],"luv":[35.0792182273937954,32.4092110837954692,-79.7850327659882623],"rgb":[0.533333333333333326,0.0666666666666666657,0.66666666666666663],"xyz":[0.176084828786441883,0.0853805125269110343,0.387520210854873703],"hpluv":[292.107316515455238,311.511817997128389,35.0792182273937954],"hsluv":[292.107316515455238,95.8874450484264571,35.0792182273937954]},"#8811bb":{"lch":[36.4111998559147381,95.3124415598142,287.019214731984619],"luv":[36.4111998559147381,27.8972267898096504,-91.1383906678789515],"rgb":[0.533333333333333326,0.0666666666666666657,0.733333333333333282],"xyz":[0.193222420893778557,0.0922355493698457929,0.47777819595351545],"hpluv":[287.019214731984619,332.16504711372977,36.4111998559147381],"hsluv":[287.019214731984619,96.4212920970111753,36.4111998559147381]},"#8811cc":{"lch":[37.8339039869932847,104.849214202707898,283.169050576302368],"luv":[37.8339039869932847,23.8872658659353974,-102.091900993053514],"rgb":[0.533333333333333326,0.0666666666666666657,0.8],"xyz":[0.212514796337500284,0.0999524995473346,0.579384706623785606],"hpluv":[283.169050576302368,351.660305548048939,37.8339039869932847],"hsluv":[283.169050576302368,96.8775739500717776,37.8339039869932847]},"#8811dd":{"lch":[39.3368423655390274,114.513051177954694,280.22024610097435],"luv":[39.3368423655390274,20.3183376083265372,-112.696069349906494],"rgb":[0.533333333333333326,0.0666666666666666657,0.866666666666666696],"xyz":[0.234033121888133827,0.108559829767588129,0.692714554523791604],"hpluv":[280.22024610097435,369.398236331583689,39.3368423655390274],"hsluv":[280.22024610097435,97.2663289333616348,39.3368423655390274]},"#8811ee":{"lch":[40.9100807353410261,124.189527798253138,277.928390028110698],"luv":[40.9100807353410261,17.130123009315259,-123.002429652583771],"rgb":[0.533333333333333326,0.0666666666666666657,0.933333333333333348],"xyz":[0.257845302154308564,0.118084701874058146,0.818125370592314827],"hpluv":[277.928390028110698,385.206818333834917,40.9100807353410261],"hsluv":[277.928390028110698,97.5973562787359867,40.9100807353410261]},"#8811ff":{"lch":[42.5444231432324926,133.820472646418182,276.120297984259253],"luv":[42.5444231432324926,14.2674470621751119,-133.057727523202459],"rgb":[0.533333333333333326,0.0666666666666666657,1],"xyz":[0.28401635056414,0.128553121237990842,0.955959558884096672],"hpluv":[276.120297984259253,399.134479754608662,42.5444231432324926],"hsluv":[276.120297984259253,99.9999999999993605,42.5444231432324926]},"#aa1100":{"lch":[35.8849415951509485,114.659477700983,13.2232466646238507],"luv":[35.8849415951509485,111.619416231509064,26.2278810962561089],"rgb":[0.66666666666666663,0.0666666666666666657,0],"xyz":[0.167776338173079714,0.0894849560078117,0.00843869300994137816],"hpluv":[13.2232466646238507,405.449754626827882,35.8849415951509485],"hsluv":[13.2232466646238507,100.000000000002245,35.8849415951509485]},"#aa1111":{"lch":[35.9630348414680086,112.584844162769954,12.1770506300617871],"luv":[35.9630348414680086,110.051736997450746,23.747890832642895],"rgb":[0.66666666666666663,0.0666666666666666657,0.0666666666666666657],"xyz":[0.168788003672716846,0.089889622207666553,0.0137667979746970096],"hpluv":[12.1770506300617871,397.249101663635656,35.9630348414680086],"hsluv":[12.1770506300617871,93.0877775141683514,35.9630348414680086]},"#aa1122":{"lch":[36.1071812157442409,108.986817867719594,10.2082214608018411],"luv":[36.1071812157442409,107.261576994584843,19.3152936702042],"rgb":[0.66666666666666663,0.0666666666666666657,0.133333333333333331],"xyz":[0.170663361811193848,0.0906397654630573674,0.0236436841706762074],"hpluv":[10.2082214608018411,383.018466712830786,36.1071812157442409],"hsluv":[10.2082214608018411,93.272361347425246,36.1071812157442409]},"#aa1133":{"lch":[36.3427932754706546,103.718469067724868,6.89182233030552727],"luv":[36.3427932754706546,102.969049051934846,12.4457126390109512],"rgb":[0.66666666666666663,0.0666666666666666657,0.2],"xyz":[0.173751112543651609,0.0918748657560404802,0.0399058380282873507],"hpluv":[6.89182233030552727,362.140519718911037,36.3427932754706546],"hsluv":[6.89182233030552727,93.5557024333493388,36.3427932754706546]},"#aa1144":{"lch":[36.6792659124992824,97.4113439982971698,1.97455903872184],"luv":[36.6792659124992824,97.3535035649005778,3.35637947697775552],"rgb":[0.66666666666666663,0.0666666666666666657,0.266666666666666663],"xyz":[0.178209107787870469,0.0936580638537280602,0.0633846129811739822],"hpluv":[1.97455903872184,336.99870087691761,36.6792659124992824],"hsluv":[1.97455903872184,93.9250914747756696,36.6792659124992824]},"#aa1155":{"lch":[37.1226754299384396,91.055498296574811,355.267689161716703],"luv":[37.1226754299384396,90.7450919896636634,-7.51212685096688926],"rgb":[0.66666666666666663,0.0666666666666666657,0.333333333333333315],"xyz":[0.184171521827232454,0.0960430294694729,0.0947866602551479],"hpluv":[355.267689161716703,311.247759321881176,37.1226754299384396],"hsluv":[355.267689161716703,94.3576556410013154,37.1226754299384396]},"#aa1166":{"lch":[37.6762679798416,85.8108023849569577,346.783206271719791],"luv":[37.6762679798416,83.5378398512485205,-19.6194576616503156],"rgb":[0.66666666666666663,0.0666666666666666657,0.4],"xyz":[0.191756517600740639,0.0990770277788762116,0.134734304662291859],"hpluv":[346.783206271719791,289.010360822200312,37.6762679798416],"hsluv":[346.783206271719791,94.8263018378468558,37.6762679798416]},"#aa1177":{"lch":[38.3408051028578285,82.7345113545946163,336.916515476294876],"luv":[38.3408051028578285,76.110335477500783,-32.4378822148708],"rgb":[0.66666666666666663,0.0666666666666666657,0.466666666666666674],"xyz":[0.201070530620942545,0.102802632986957021,0.183788106568689769],"hpluv":[336.916515476294876,273.819772016881302,38.3408051028578285],"hsluv":[336.916515476294876,95.3051408978498387,38.3408051028578285]},"#aa1188":{"lch":[39.1148927869010379,82.477083595297529,326.495944929629673],"luv":[39.1148927869010379,68.7732486834780445,-45.5270203714912753],"rgb":[0.66666666666666663,0.0666666666666666657,0.533333333333333326],"xyz":[0.212210947722886401,0.107258799827734619,0.242460969972261936],"hpluv":[326.495944929629673,267.565723971153261,39.1148927869010379],"hsluv":[326.495944929629673,95.7730681487448,39.1148927869010379]},"#aa1199":{"lch":[39.9953287808464424,85.1038505069809617,316.515705271857257],"luv":[39.9953287808464424,61.7482074461545665,-58.5647013848890552],"rgb":[0.66666666666666663,0.0666666666666666657,0.6],"xyz":[0.2252679118319591,0.112481585471363776,0.311227647613379843],"hpluv":[316.515705271857257,270.00963724100518,39.9953287808464424],"hsluv":[316.515705271857257,96.2151887572794,39.9953287808464424]},"#aa11aa":{"lch":[40.9774666162921406,90.1875437006381588,307.715012949243601],"luv":[40.9774666162921406,55.1708175083225498,-71.3440532505540261],"rgb":[0.66666666666666663,0.0666666666666666657,0.66666666666666663],"xyz":[0.240325604797211656,0.118504662657464871,0.390531497230378444],"hpluv":[307.715012949243601,279.28060733669264,40.9774666162921406],"hsluv":[307.715012949243601,96.6225842874192864,40.9774666162921406]},"#aa11bb":{"lch":[42.0555802442747719,97.087212137786878,300.384453602166161],"luv":[42.0555802442747719,49.106684193967304,-83.7523750598249705],"rgb":[0.66666666666666663,0.0666666666666666657,0.733333333333333282],"xyz":[0.257463196904548275,0.12535969950039963,0.48078948232902019],"hpluv":[300.384453602166161,292.939359498794147,42.0555802442747719],"hsluv":[300.384453602166161,96.9911870522472697,42.0555802442747719]},"#aa11cc":{"lch":[43.2232098485165395,105.192683835863036,294.469145625450437],"luv":[43.2232098485165395,43.5711419401365,-95.7447456658814247],"rgb":[0.66666666666666663,0.0666666666666666657,0.8],"xyz":[0.276755572348270029,0.133076649677888431,0.582395992999290346],"hpluv":[294.469145625450437,308.821726609797679,43.2232098485165395],"hsluv":[294.469145625450437,97.3204020480748255,43.2232098485165395]},"#aa11dd":{"lch":[44.4734721926781518,114.032755796715193,289.757274940509092],"luv":[44.4734721926781518,38.5472014936014489,-107.320001172218454],"rgb":[0.66666666666666663,0.0666666666666666657,0.866666666666666696],"xyz":[0.298273897898903573,0.141683979898141965,0.695725840899296344],"hpluv":[289.757274940509092,325.362808980276498,44.4734721926781518],"hsluv":[289.757274940509092,97.611854654502622,44.4734721926781518]},"#aa11ee":{"lch":[45.7993244881172,123.283094749558884,286.008743686799619],"luv":[45.7993244881172,33.9995108001485136,-118.502129585840351],"rgb":[0.66666666666666663,0.0666666666666666657,0.933333333333333348],"xyz":[0.322086078165078282,0.151208852004612,0.821136656967819567],"hpluv":[286.008743686799619,341.573194884792258,45.7993244881172],"hsluv":[286.008743686799619,97.8684161167955153,45.7993244881172]},"#aa11ff":{"lch":[47.1937769411101868,132.735165800167636,283.011169167098501],"luv":[47.1937769411101868,29.8841269734434611,-129.327348983241365],"rgb":[0.66666666666666663,0.0666666666666666657,1],"xyz":[0.348257126574909703,0.161677271368544706,0.958970845259601412],"hpluv":[283.011169167098501,356.89510187446183,47.1937769411101868],"hsluv":[283.011169167098501,99.9999999999993321,47.1937769411101868]},"#882200":{"lch":[30.3496916993887922,81.7292062801124786,17.2000641303745212],"luv":[30.3496916993887922,78.0741152618852254,24.1680716080335465],"rgb":[0.533333333333333326,0.133333333333333331,0],"xyz":[0.107251185897077911,0.0637920533467938311,0.00666594787935922105],"hpluv":[17.2000641303745212,341.713647377264522,30.3496916993887922],"hsluv":[17.2000641303745212,100.000000000002359,30.3496916993887922]},"#882211":{"lch":[30.4474919309639347,79.3871193031655338,15.4743840495427136],"luv":[30.4474919309639347,76.5093230935452908,21.181080969170015],"rgb":[0.533333333333333326,0.133333333333333331,0.0666666666666666657],"xyz":[0.108262851396715029,0.064196719546648684,0.0119940528441148525],"hpluv":[15.4743840495427136,330.855109199112462,30.4474919309639347],"hsluv":[15.4743840495427136,90.2707057474005,30.4474919309639347]},"#882222":{"lch":[30.6277058928754826,75.4670009360781648,12.1770506300618102],"luv":[30.6277058928754826,73.7690281561900321,15.9185022906448506],"rgb":[0.533333333333333326,0.133333333333333331,0.133333333333333331],"xyz":[0.110138209535192058,0.0649468628020395,0.0218709390400940486],"hpluv":[12.1770506300618102,312.666930334371557,30.6277058928754826],"hsluv":[12.1770506300618102,73.2675530922876277,30.6277058928754826]},"#882233":{"lch":[30.9214262019897674,70.1124269978110135,6.50693872003014],"luv":[30.9214262019897674,69.6607724946186266,7.94538828354938],"rgb":[0.533333333333333326,0.133333333333333331,0.2],"xyz":[0.113225960267649792,0.0661819630950226112,0.0381330928977051953],"hpluv":[6.50693872003014,287.723152758323693,30.9214262019897674],"hsluv":[6.50693872003014,74.8097141082451458,30.9214262019897674]},"#882244":{"lch":[31.3391119188553589,64.5127804411509,357.965654494967],"luv":[31.3391119188553589,64.472119792654567,-2.29011128326569047],"rgb":[0.533333333333333326,0.133333333333333331,0.266666666666666663],"xyz":[0.117683955511868665,0.0679651611927101912,0.0616118678505918338],"hpluv":[357.965654494967,261.215173773686786,31.3391119188553589],"hsluv":[357.965654494967,76.7464797952550839,31.3391119188553589]},"#882255":{"lch":[31.8864840032734449,60.2907989794282599,346.464164292394514],"luv":[31.8864840032734449,58.6161449596217778,-14.1112717942230379],"rgb":[0.533333333333333326,0.133333333333333331,0.333333333333333315],"xyz":[0.123646369551230664,0.0703501268084550241,0.0930139151245657353],"hpluv":[346.464164292394514,239.929545755427228,31.8864840032734449],"hsluv":[346.464164292394514,78.9147131880069566,31.8864840032734449]},"#882266":{"lch":[32.565220274416383,58.9629659850378189,332.945096803324191],"luv":[32.565220274416383,52.5107124518348698,-26.8189566455043362],"rgb":[0.533333333333333326,0.133333333333333331,0.4],"xyz":[0.131231365324738836,0.0733841251178583426,0.132961559531709711],"hpluv":[332.945096803324191,229.754818264706444,32.565220274416383],"hsluv":[332.945096803324191,81.1505919454384923,32.565220274416383]},"#882277":{"lch":[33.3735533542235316,61.2256527964903086,319.411642653163199],"luv":[33.3735533542235316,46.4949769025583564,-39.8346291960518499],"rgb":[0.533333333333333326,0.133333333333333331,0.466666666666666674],"xyz":[0.140545378344940741,0.077109730325939152,0.18201536143810762],"hpluv":[319.411642653163199,232.79320602780777,33.3735533542235316],"hsluv":[319.411642653163199,83.3222334130424116,33.3735533542235316]},"#882288":{"lch":[34.3068967831130962,66.691064714973308,307.715012949243771],"luv":[34.3068967831130962,40.7972144472485709,-52.7568517461189046],"rgb":[0.533333333333333326,0.133333333333333331,0.533333333333333326],"xyz":[0.151685795446884597,0.0815658971667167498,0.240688224841679788],"hpluv":[307.715012949243771,246.675229855048,34.3068967831130962],"hsluv":[307.715012949243771,85.3421167175917,34.3068967831130962]},"#882299":{"lch":[35.3585028262625087,74.3915148492043699,298.539568373309862],"luv":[35.3585028262625087,35.5417034620318262,-65.3520068289902554],"rgb":[0.533333333333333326,0.133333333333333331,0.6],"xyz":[0.164742759555957297,0.0867886828103459074,0.309454902482797667],"hpluv":[298.539568373309862,266.973934190138948,35.3585028262625087],"hsluv":[298.539568373309862,87.1641407220543556,35.3585028262625087]},"#8822aa":{"lch":[36.5201138266519365,83.3993900511107142,291.653660077047903],"luv":[36.5201138266519365,30.7739719973965897,-77.5140045953036463],"rgb":[0.533333333333333326,0.133333333333333331,0.66666666666666663],"xyz":[0.179800452521209853,0.092811759996447,0.388758752099796268],"hpluv":[291.653660077047903,289.781114528802732,36.5201138266519365],"hsluv":[291.653660077047903,88.7734689989794532,36.5201138266519365]},"#8822bb":{"lch":[37.7825623664262196,93.0686060696910857,286.53575696187113],"luv":[37.7825623664262196,26.4885972028076893,-89.2195026548722],"rgb":[0.533333333333333326,0.133333333333333331,0.733333333333333282],"xyz":[0.196938044628546471,0.0996667968393817605,0.479016737198438],"hpluv":[286.53575696187113,312.57276028475934,37.7825623664262196],"hsluv":[286.53575696187113,90.1753980157506874,37.7825623664262196]},"#8822cc":{"lch":[39.1362858369643476,103.012880313051866,282.702767559286599],"luv":[39.1362858369643476,22.6518448072254479,-100.491529181421669],"rgb":[0.533333333333333326,0.133333333333333331,0.8],"xyz":[0.216230420072268226,0.107383747016870562,0.580623247868708225],"hpluv":[282.702767559286599,334.003678399645651,39.1362858369643476],"hsluv":[282.702767559286599,91.3862929083300628,39.1362858369643476]},"#8822dd":{"lch":[40.5717373677475379,113.020349666590874,279.789793007972776],"luv":[40.5717373677475379,19.2172965257181652,-111.374570495248548],"rgb":[0.533333333333333326,0.133333333333333331,0.866666666666666696],"xyz":[0.237748745622901769,0.115991077237124096,0.693953095768714223],"hpluv":[279.789793007972776,353.486121759760863,40.5717373677475379],"hsluv":[279.789793007972776,92.4273238443811209,40.5717373677475379]},"#8822ee":{"lch":[42.0796906219744145,122.982600065668066,277.538986095624125],"luv":[42.0796906219744145,16.1354126197819454,-121.919515986988074],"rgb":[0.533333333333333326,0.133333333333333331,0.933333333333333348],"xyz":[0.261560925889076534,0.125515949343594141,0.819363911837237446],"hpluv":[277.538986095624125,370.860397035002336,42.0796906219744145],"hsluv":[277.538986095624125,93.320628909539181,42.0796906219744145]},"#8822ff":{"lch":[43.6514473624058752,132.848943476626658,275.771185477405766],"luv":[43.6514473624058752,13.3587518063908028,-132.175585994657865],"rgb":[0.533333333333333326,0.133333333333333331,1],"xyz":[0.2877319742989079,0.135984368707526837,0.957198100129019291],"hpluv":[275.771185477405766,386.188007357759091,43.6514473624058752],"hsluv":[275.771185477405766,99.9999999999994,43.6514473624058752]},"#ffaa00":{"lch":[76.0766826449234799,103.646966048157225,46.9849230608437125],"luv":[76.0766826449234799,70.7070052858721,75.7839889059127785],"rgb":[1,0.66666666666666663,0],"xyz":[0.556131758114240538,0.500120923568095,0.0672444716650198171],"hpluv":[46.9849230608437125,173.218766512771339,76.0766826449234799],"hsluv":[46.9849230608437125,100.0000000000028,76.0766826449234799]},"#ffaa11":{"lch":[76.1015101579349533,102.726050652762069,46.6846637022245687],"luv":[76.1015101579349533,70.4714195905473275,74.7423608377930719],"rgb":[1,0.66666666666666663,0.0666666666666666657],"xyz":[0.557143423613877697,0.500525589767949919,0.0725725766297754538],"hpluv":[46.6846637022245687,171.896872437304751,76.1015101579349533],"hsluv":[46.6846637022245687,100.000000000002771,76.1015101579349533]},"#ffaa22":{"lch":[76.1474983763177,101.038792737361192,46.1176753587789605],"luv":[76.1474983763177,70.0380208569547591,72.8252241483965719],"rgb":[1,0.66666666666666663,0.133333333333333331],"xyz":[0.559018781752354643,0.501275733023340719,0.0824494628257546464],"hpluv":[46.1176753587789605,169.470349592440897,76.1474983763177],"hsluv":[46.1176753587789605,100.0000000000028,76.1474983763177]},"#ffaa33":{"lch":[76.2231174741888395,98.3169656691378577,45.1538509265191337],"luv":[76.2231174741888395,69.3336656617894533,69.7070193329597885],"rgb":[1,0.66666666666666663,0.2],"xyz":[0.56210653248481246,0.502510833316323846,0.0987116166833657827],"hpluv":[45.1538509265191337,165.543337136749699,76.2231174741888395],"hsluv":[45.1538509265191337,100.000000000002927,76.2231174741888395]},"#ffaa44":{"lch":[76.3320756204529118,94.5107446089494516,43.6926927141772694],"luv":[76.3320756204529118,68.3364903114306514,65.2870962629968119],"rgb":[1,0.66666666666666663,0.266666666666666663],"xyz":[0.56656452772903132,0.504294031414011412,0.122190391636252421],"hpluv":[43.6926927141772694,160.025535099593441,76.3320756204529118],"hsluv":[43.6926927141772694,100.000000000003,76.3320756204529118]},"#ffaa55":{"lch":[76.4774026026215,89.6489515946998807,41.6012791226812411],"luv":[76.4774026026215,67.0379860163697288,59.5217855318358247],"rgb":[1,0.66666666666666663,0.333333333333333315],"xyz":[0.572526941768393249,0.506678997029756162,0.153592438910226337],"hpluv":[41.6012791226812411,152.933128718005122,76.4774026026215],"hsluv":[41.6012791226812411,100.000000000003,76.4774026026215]},"#ffaa66":{"lch":[76.6616205587261,83.8466863985853905,38.6944265301345354],"luv":[76.6616205587261,65.4416029270402788,52.418159318716242],"rgb":[1,0.66666666666666663,0.4],"xyz":[0.58011193754190149,0.50971299533915948,0.193540083317370298],"hpluv":[38.6944265301345354,144.405277715469396,76.6616205587261],"hsluv":[38.6944265301345354,100.000000000003197,76.6616205587261]},"#ffaa77":{"lch":[76.8868341725165,77.3210793721064533,34.7099370327462324],"luv":[76.8868341725165,63.5614296008349058,44.0283315873505927],"rgb":[1,0.66666666666666663,0.466666666666666674],"xyz":[0.58942595056210334,0.513438600547240331,0.242593885223768208],"hpluv":[34.7099370327462324,134.738986801151128,76.8868341725165],"hsluv":[34.7099370327462324,100.000000000003354,76.8868341725165]},"#ffaa88":{"lch":[77.1547840912050873,70.4186738688562741,29.282319230158226],"luv":[77.1547840912050873,61.4205932059712723,34.4427112706728948],"rgb":[1,0.66666666666666663,0.533333333333333326],"xyz":[0.600566367664047251,0.517894767388017874,0.301266748627340375],"hpluv":[29.282319230158226,124.451835787871019,77.1547840912050873],"hsluv":[29.282319230158226,100.000000000003638,77.1547840912050873]},"#ffaa99":{"lch":[77.466881654564645,63.658531214354845,21.9370110659791244],"luv":[77.466881654564645,59.0493431107362383,23.7820031654092716],"rgb":[1,0.66666666666666663,0.6],"xyz":[0.613623331773119896,0.523117553031647087,0.370033426268458254],"hpluv":[21.9370110659791244,114.385173247539697,77.466881654564645],"hsluv":[21.9370110659791244,100.000000000003624,77.466881654564645]},"#ffaaaa":{"lch":[77.8242336850598,57.783013099698,12.1770506300621957],"luv":[77.8242336850598,56.482921905318662,12.1883606739193855],"rgb":[1,0.66666666666666663,0.66666666666666663],"xyz":[0.628681024738372507,0.529140630217748154,0.44933727588545691],"hpluv":[12.1770506300621957,105.841692205508735,77.8242336850598],"hsluv":[12.1770506300621957,100.000000000003837,77.8242336850598]},"#ffaabb":{"lch":[78.227662021793833,53.7597014753195,359.804273109779956],"luv":[78.227662021793833,53.7593877986938224,-0.183647012281759531],"rgb":[1,0.66666666666666663,0.733333333333333282],"xyz":[0.64581861684570907,0.535995667060682912,0.539595260984098601],"hpluv":[359.804273109779956,100.661858044669231,78.227662021793833],"hsluv":[359.804273109779956,100.000000000004135,78.227662021793833]},"#ffaacc":{"lch":[78.6777204654413254,52.5946111834740293,345.492217824016791],"luv":[78.6777204654413254,50.9175596191628586,-13.1755549397286202],"rgb":[1,0.66666666666666663,0.8],"xyz":[0.665110992289430825,0.543712617238171769,0.641201771654368757],"hpluv":[345.492217824016791,100.966318741741958,78.6777204654413254],"hsluv":[345.492217824016791,100.000000000004306,78.6777204654413254]},"#ffaadd":{"lch":[79.1747106956411244,54.8892328831665353,330.97422205899818],"luv":[79.1747106956411244,47.9952274547753177,-26.6324243745640352],"rgb":[1,0.66666666666666663,0.866666666666666696],"xyz":[0.686629317840064424,0.552319947458425275,0.754531619554374755],"hpluv":[330.97422205899818,108.36723319715793,79.1747106956411244],"hsluv":[330.97422205899818,100.000000000004704,79.1747106956411244]},"#ffaaee":{"lch":[79.718698064048283,60.5009523664383337,318.094564198374599],"luv":[79.718698064048283,45.0277239197174595,-40.4087777080146822],"rgb":[1,0.66666666666666663,0.933333333333333348],"xyz":[0.710441498106239133,0.561844819564895293,0.879942435622898],"hpluv":[318.094564198374599,123.247069988098687,79.718698064048283],"hsluv":[318.094564198374599,100.000000000004945,79.718698064048283]},"#ffaaff":{"lch":[80.3095277487323074,68.733917080261989,307.715012949245647],"luv":[80.3095277487323074,42.0468973903394,-54.3728772187255203],"rgb":[1,0.66666666666666663,1],"xyz":[0.736612546516070554,0.572313238928828,1.01777662391468],"hpluv":[307.715012949245647,144.979279509576116,80.3095277487323074],"hsluv":[307.715012949245647,100.000000000005301,80.3095277487323074]},"#aa2200":{"lch":[37.2831780533064929,108.910935722579069,15.2092016225530191],"luv":[37.2831780533064929,105.096262108869439,28.5721474641225],"rgb":[0.66666666666666663,0.133333333333333331,0],"xyz":[0.171491961907847656,0.0969162034773476816,0.00967723425486398912],"hpluv":[15.2092016225530191,370.67892165569458,37.2831780533064929],"hsluv":[15.2092016225530191,100.000000000002217,37.2831780533064929]},"#aa2211":{"lch":[37.3572350214345619,106.95640568906397,14.158492547926917],"luv":[37.3572350214345619,103.707370245599336,26.1620732103901794],"rgb":[0.66666666666666663,0.133333333333333331,0.0666666666666666657],"xyz":[0.172503627407484789,0.0973208696772025345,0.0150053392196196206],"hpluv":[14.158492547926917,363.305022455593,37.3572350214345619],"hsluv":[14.158492547926917,93.5777596020973732,37.3572350214345619]},"#aa2222":{"lch":[37.4939757158163331,103.55828406892158,12.1770506300617907],"luv":[37.4939757158163331,101.228270350344232,21.8438888748564],"rgb":[0.66666666666666663,0.133333333333333331,0.133333333333333331],"xyz":[0.17437898554596179,0.0980710129325933488,0.0248822254155988166],"hpluv":[12.1770506300617907,350.479546677114797,37.4939757158163331],"hsluv":[12.1770506300617907,82.128221128038831,37.4939757158163331]},"#aa2233":{"lch":[37.7176061419824791,98.5638584928897359,8.82735266140639],"luv":[37.7176061419824791,97.3963926843060506,15.125372494284127],"rgb":[0.66666666666666663,0.133333333333333331,0.2],"xyz":[0.177466736278419523,0.0993061132255764617,0.0411443792732099634],"hpluv":[8.82735266140639,331.598763076121088,37.7176061419824791],"hsluv":[8.82735266140639,82.8309253801110401,37.7176061419824791]},"#aa2244":{"lch":[38.0372287502177358,92.5577577991589209,3.83362915136278648],"luv":[38.0372287502177358,92.350650343690134,6.18836892123021798],"rgb":[0.66666666666666663,0.133333333333333331,0.266666666666666663],"xyz":[0.181924731522638411,0.101089311323264042,0.0646231542260966],"hpluv":[3.83362915136278648,308.775819843535,38.0372287502177358],"hsluv":[3.83362915136278648,83.7532195801290698,38.0372287502177358]},"#aa2255":{"lch":[38.4588905236098242,86.4856662057644172,356.973865768881865],"luv":[38.4588905236098242,86.3650670431288603,-4.56570407393633459],"rgb":[0.66666666666666663,0.133333333333333331,0.333333333333333315],"xyz":[0.187887145562000424,0.103474276939008875,0.0960252015000705],"hpluv":[356.973865768881865,285.355803984318584,38.4588905236098242],"hsluv":[356.973865768881865,84.8422496447961,38.4588905236098242]},"#aa2266":{"lch":[38.9860395203518237,81.4924101374980268,348.227712846231327],"luv":[38.9860395203518237,79.7783138580272464,-16.6262908668256522],"rgb":[0.66666666666666663,0.133333333333333331,0.4],"xyz":[0.195472141335508581,0.106508275248412193,0.135972845907214479],"hpluv":[348.227712846231327,265.245100213362434,38.9860395203518237],"hsluv":[348.227712846231327,86.0332228090823747,38.9860395203518237]},"#aa2277":{"lch":[39.619833929041036,78.6591168776988354,337.990195281021442],"luv":[39.619833929041036,72.9264197190586572,-29.4787037526953952],"rgb":[0.66666666666666663,0.133333333333333331,0.466666666666666674],"xyz":[0.204786154355710515,0.110233880456493,0.185026647813612388],"hpluv":[337.990195281021442,251.92759566726761,39.619833929041036],"hsluv":[337.990195281021442,87.2621982611374278,39.619833929041036]},"#aa2288":{"lch":[40.3594266716885386,78.6767938432408,327.148786779116733],"luv":[40.3594266716885386,66.0949636498191637,-42.6789605025813046],"rgb":[0.66666666666666663,0.133333333333333331,0.533333333333333326],"xyz":[0.215926571457654315,0.1146900472972706,0.243699511217184556],"hpluv":[327.148786779116733,247.366561360315984,40.3594266716885386],"hsluv":[327.148786779116733,88.4751585260979283,40.3594266716885386]},"#aa2299":{"lch":[41.2022629883412748,81.6302410017403162,316.790315261789033],"luv":[41.2022629883412748,59.4964385039503,-55.8898027492302489],"rgb":[0.66666666666666663,0.133333333333333331,0.6],"xyz":[0.228983535566727042,0.119912832940899758,0.312466188858302463],"hpluv":[316.790315261789033,251.402351399829286,41.2022629883412748],"hsluv":[316.790315261789033,89.6322731802278554,41.2022629883412748]},"#aa22aa":{"lch":[42.1443943233873242,87.0780915666379229,307.715012949243715],"luv":[42.1443943233873242,53.2686588598376076,-68.8842798769212834],"rgb":[0.66666666666666663,0.133333333333333331,0.66666666666666663],"xyz":[0.24404122853197957,0.125935910127000866,0.391770038475301063],"hpluv":[307.715012949243715,262.185344504614818,42.1443943233873242],"hsluv":[307.715012949243715,90.7081440057972515,42.1443943233873242]},"#aa22bb":{"lch":[43.1807973125030387,94.3504956605328573,300.218008125398399],"luv":[43.1807973125030387,47.4858085519839577,-81.5298351375283801],"rgb":[0.66666666666666663,0.133333333333333331,0.733333333333333282],"xyz":[0.261178820639316245,0.132790946969935625,0.48202802357394281],"hpluv":[300.218008125398399,277.263598469343151,43.1807973125030387],"hsluv":[300.218008125398399,91.6896384965505291,43.1807973125030387]},"#aa22cc":{"lch":[44.3056820912093627,102.813108633557576,294.217612554784239],"luv":[44.3056820912093627,42.1742864712375294,-93.764944769021767],"rgb":[0.66666666666666663,0.133333333333333331,0.8],"xyz":[0.280471196083037944,0.140507897147424426,0.583634534244213],"hpluv":[294.217612554784239,294.461411899371626,44.3056820912093627],"hsluv":[294.217612554784239,92.5728114271618097,44.3056820912093627]},"#aa22dd":{"lch":[45.5127751844210451,111.980933923074502,289.471886144522102],"luv":[45.5127751844210451,37.3282042805071441,-105.576203414769125],"rgb":[0.66666666666666663,0.133333333333333331,0.866666666666666696],"xyz":[0.301989521633671543,0.14911522736767796,0.696964382144219],"hpluv":[289.471886144522102,312.212361278410071,45.5127751844210451],"hsluv":[289.471886144522102,93.3598993754704622,45.5127751844210451]},"#aa22ee":{"lch":[46.7955661660676938,121.524022862348417,285.718434714393425],"luv":[46.7955661660676938,32.9220942551774698,-116.979587289842115],"rgb":[0.66666666666666663,0.133333333333333331,0.933333333333333348],"xyz":[0.325801701899846252,0.158640099474147978,0.822375198212742187],"hpluv":[285.718434714393425,329.531365671141714,46.7955661660676938],"hsluv":[285.718434714393425,94.0568560040361348,46.7955661660676938]},"#aa22ff":{"lch":[48.1475121680676921,131.233078667623346,282.730941389390409],"luv":[48.1475121680676921,28.9202258451599548,-128.006802450680539],"rgb":[0.66666666666666663,0.133333333333333331,1],"xyz":[0.351972750309677673,0.169108518838080701,0.960209386504524],"hpluv":[282.730941389390409,345.866733454918517,48.1475121680676921],"hsluv":[282.730941389390409,99.9999999999992,48.1475121680676921]},"#883300":{"lch":[33.1414787667816597,73.2165592554870841,22.9600016117944072],"luv":[33.1414787667816597,67.4161530625393084,28.5609323282788417],"rgb":[0.533333333333333326,0.2,0],"xyz":[0.113368907986088716,0.076027497524815621,0.00870518857569610102],"hpluv":[22.9600016117944072,280.334636286210525,33.1414787667816597],"hsluv":[22.9600016117944072,100.000000000002245,33.1414787667816597]},"#883311":{"lch":[33.2285118286029402,71.0572306739368287,21.2511434941679589],"luv":[33.2285118286029402,66.2253841559006844,25.7551650053430592],"rgb":[0.533333333333333326,0.2,0.0666666666666666657],"xyz":[0.114380573485725834,0.0764321637246704738,0.0140332935404517325],"hpluv":[21.2511434941679589,271.354302974885854,33.2285118286029402],"hsluv":[21.2511434941679589,91.7325092821930355,33.2285118286029402]},"#883322":{"lch":[33.389038834633638,67.403958774683133,17.9527330699243208],"luv":[33.389038834633638,64.1221355411587126,20.7760774002325519],"rgb":[0.533333333333333326,0.2,0.133333333333333331],"xyz":[0.116255931624202863,0.0771823069800612882,0.0239101797364309268],"hpluv":[17.9527330699243208,256.165602847605,33.389038834633638],"hsluv":[17.9527330699243208,77.1564226992543354,33.389038834633638]},"#883333":{"lch":[33.6510932573449324,62.3280121609532785,12.1770506300618564],"luv":[33.6510932573449324,60.9256605799824484,13.1470522486492083],"rgb":[0.533333333333333326,0.2,0.2],"xyz":[0.119343682356660596,0.0784174072730444,0.04017233359404207],"hpluv":[12.1770506300618564,235.030067027939708,33.6510932573449324],"hsluv":[12.1770506300618564,55.0748296144977,33.6510932573449324]},"#883344":{"lch":[34.0246284162643136,56.9037682047597428,3.23132728809417369],"luv":[34.0246284162643136,56.8132965471078748,3.20751794249172528],"rgb":[0.533333333333333326,0.2,0.266666666666666663],"xyz":[0.12380167760087947,0.080200605370731981,0.0636511085469287086],"hpluv":[3.23132728809417369,212.220318588139889,34.0246284162643136],"hsluv":[3.23132728809417369,58.083398150148156,34.0246284162643136]},"#883355":{"lch":[34.5156618951709859,52.7529688087382524,350.767304332875],"luv":[34.5156618951709859,52.0695471674777721,-8.46392201697997137],"rgb":[0.533333333333333326,0.2,0.333333333333333315],"xyz":[0.129764091640241469,0.0825855709864768139,0.0950531558209026239],"hpluv":[350.767304332875,193.941176615342812,34.5156618951709859],"hsluv":[350.767304332875,61.5291535706030714,34.5156618951709859]},"#883366":{"lch":[35.1268460128593318,51.5738240122621576,335.705329263136434],"luv":[35.1268460128593318,47.0065260432940519,-21.2189969741481157],"rgb":[0.533333333333333326,0.2,0.4],"xyz":[0.137349087413749654,0.0856195692958801324,0.135000800228046586],"hpluv":[335.705329263136434,186.307141954737205,35.1268460128593318],"hsluv":[335.705329263136434,65.1713869724459869,35.1268460128593318]},"#883377":{"lch":[35.8579115963162849,54.2604071268956929,320.552373035814298],"luv":[35.8579115963162849,41.9001950458929713,-34.4755773946224],"rgb":[0.533333333333333326,0.2,0.466666666666666674],"xyz":[0.14666310043395156,0.0893451745039609418,0.184054602134444495],"hpluv":[320.552373035814298,192.015984070736607,35.8579115963162849],"hsluv":[320.552373035814298,68.798738775930957,35.8579115963162849]},"#883388":{"lch":[36.7061150242973682,60.4128011412536097,307.715012949244056],"luv":[36.7061150242973682,36.9565850245806402,-47.7903480323547711],"rgb":[0.533333333333333326,0.2,0.533333333333333326],"xyz":[0.157803517535895388,0.0938013413447385397,0.242727465538016662],"hpluv":[307.715012949244056,208.847787272345244,36.7061150242973682],"hsluv":[307.715012949244056,72.2549736675254479,36.7061150242973682]},"#883399":{"lch":[37.6667130487112445,68.9141309342046213,297.955533412138379],"luv":[37.6667130487112445,32.3059919210196611,-60.8726566564636684],"rgb":[0.533333333333333326,0.2,0.6],"xyz":[0.170860481644968087,0.0990241269883677,0.311494143179134542],"hpluv":[297.955533412138379,232.161331922109071,37.6667130487112445],"hsluv":[297.955533412138379,75.4431641885032604,37.6667130487112445]},"#8833aa":{"lch":[38.7334497692602824,78.7159372772915162,290.848124870138179],"luv":[38.7334497692602824,28.0143748789862741,-73.5621749378178436],"rgb":[0.533333333333333326,0.2,0.66666666666666663],"xyz":[0.185918174610220643,0.105047204174468806,0.390797992796133142],"hpluv":[290.848124870138179,257.878905714084965,38.7334497692602824],"hsluv":[290.848124870138179,78.3166072053086282,38.7334497692602824]},"#8833bb":{"lch":[39.8990272727434743,89.1142300257769193,285.691107407551272],"luv":[39.8990272727434743,24.1010351313191435,-85.7932753698447073],"rgb":[0.533333333333333326,0.2,0.733333333333333282],"xyz":[0.20305576671755729,0.111902241017403564,0.481055977894774889],"hpluv":[285.691107407551272,283.415812953045702,39.8990272727434743],"hsluv":[285.691107407551272,80.8649153118493444,39.8990272727434743]},"#8833cc":{"lch":[41.1555326498064318,99.7027359993818578,281.897918690971494],"luv":[41.1555326498064318,20.5555775093346966,-97.560769774639283],"rgb":[0.533333333333333326,0.2,0.8],"xyz":[0.222348142161279017,0.119619191194892366,0.5826624885650451],"hpluv":[281.897918690971494,307.410130900702256,41.1555326498064318],"hsluv":[281.897918690971494,83.1006969987668356,41.1555326498064318]},"#8833dd":{"lch":[42.4948021164729042,110.266949448261684,279.053462184119098],"luv":[42.4948021164729042,17.3511661022166734,-108.893237510502843],"rgb":[0.533333333333333326,0.2,0.866666666666666696],"xyz":[0.24386646771191256,0.1282265214151459,0.695992336465051098],"hpluv":[279.053462184119098,329.267506795456711,42.4948021164729042],"hsluv":[279.053462184119098,85.0491409670088103,42.4948021164729042]},"#8833ee":{"lch":[43.9087129541284185,120.703343561802441,276.877390721452173],"luv":[43.9087129541284185,14.4536316684396038,-119.834843341123431],"rgb":[0.533333333333333326,0.2,0.933333333333333348],"xyz":[0.267678647978087325,0.137751393521615917,0.821403152533574321],"hpluv":[276.877390721452173,348.825254458779511,43.9087129541284185],"hsluv":[276.877390721452173,90.7214777394212177,43.9087129541284185]},"#8833ff":{"lch":[45.3894029264418037,130.969293653816607,275.181129330284705],"luv":[45.3894029264418037,11.8271264623124566,-130.43417864894198],"rgb":[0.533333333333333326,0.2,1],"xyz":[0.293849696387918691,0.148219812885548641,0.959237340825356166],"hpluv":[275.181129330284705,366.146040402293636,45.3894029264418037],"hsluv":[275.181129330284705,99.9999999999993179,45.3894029264418037]},"#ffbb00":{"lch":[80.0686585320779614,99.7432534700870832,55.1804439586775146],"luv":[80.0686585320779614,56.9527800089419642,81.8846595037867928],"rgb":[1,0.733333333333333282,0],"xyz":[0.590086256022839262,0.568029919385293569,0.0785626376345524291],"hpluv":[55.1804439586775146,207.400278899961506,80.0686585320779614],"hsluv":[55.1804439586775146,100.000000000004661,80.0686585320779614]},"#ffbb11":{"lch":[80.0914663159454,98.8408701901197304,54.9443852376931758],"luv":[80.0914663159454,56.7713575947746136,80.9106332739172558],"rgb":[1,0.733333333333333282,0.0666666666666666657],"xyz":[0.591097921522476422,0.568434585585148477,0.0838907425993080658],"hpluv":[54.9443852376931758,205.801067903733326,80.0914663159454],"hsluv":[54.9443852376931758,100.000000000004746,80.0914663159454]},"#ffbb22":{"lch":[80.1337172522408849,97.1832370837577173,54.4980435584705063],"luv":[80.1337172522408849,56.4372945908461148,79.11645435270664],"rgb":[1,0.733333333333333282,0.133333333333333331],"xyz":[0.592973279660953367,0.569184728840539278,0.0937676287952872584],"hpluv":[54.4980435584705063,202.856099527528187,80.1337172522408849],"hsluv":[54.4980435584705063,100.00000000000469,80.1337172522408849]},"#ffbb33":{"lch":[80.2032020182086569,94.4967793168558643,53.7374633716008248],"luv":[80.2032020182086569,55.8935303906135772,76.1941898161015558],"rgb":[1,0.733333333333333282,0.2],"xyz":[0.596061030393411184,0.570419829133522405,0.110029782652898395],"hpluv":[53.7374633716008248,198.062979410590685,80.2032020182086569],"hsluv":[53.7374633716008248,100.000000000004576,80.2032020182086569]},"#ffbb44":{"lch":[80.3033451682561,90.7120739700224874,52.5796541788809932],"luv":[80.3033451682561,55.1219083097901148,72.0434284874749835],"rgb":[1,0.733333333333333282,0.266666666666666663],"xyz":[0.60051902563763,0.57220302723121,0.133508557605785033],"hpluv":[52.5796541788809932,191.266883403483888,80.3033451682561],"hsluv":[52.5796541788809932,100.000000000004732,80.3033451682561]},"#ffbb55":{"lch":[80.4369584648287343,85.824023801574981,50.9113466162360169],"luv":[80.4369584648287343,54.1139445833304435,66.614143116349922],"rgb":[1,0.733333333333333282,0.333333333333333315],"xyz":[0.606481439676992,0.57458799284695472,0.164910604879758949],"hpluv":[50.9113466162360169,182.412290123698938,80.4369584648287343],"hsluv":[50.9113466162360169,100.000000000004846,80.4369584648287343]},"#ffbb66":{"lch":[80.6063993458739532,79.8959983704508545,48.5678239065140147],"luv":[80.6063993458739532,52.8698192869345931,59.9011916757752374],"rgb":[1,0.733333333333333282,0.4],"xyz":[0.614066435450500214,0.577621991156358,0.20485824928690291],"hpluv":[48.5678239065140147,171.553596694327723,80.6063993458739532],"hsluv":[48.5678239065140147,100.000000000004945,80.6063993458739532]},"#ffbb77":{"lch":[80.8136549908608828,73.0715029906331353,45.3006510664637219],"luv":[80.8136549908608828,51.397517928562209,51.9397699272266067],"rgb":[1,0.733333333333333282,0.466666666666666674],"xyz":[0.623380448470702064,0.58134759636443889,0.253912051193300847],"hpluv":[45.3006510664637219,158.885762577352,80.8136549908608828],"hsluv":[45.3006510664637219,100.000000000005144,80.8136549908608828]},"#ffbb88":{"lch":[81.0603921498240823,65.5982066090816,40.7273497798256443],"luv":[81.0603921498240823,49.7118280718431649,42.8002203275083914],"rgb":[1,0.733333333333333282,0.533333333333333326],"xyz":[0.634520865572646,0.585803763205216432,0.312584914596873],"hpluv":[40.7273497798256443,144.809180382553194,81.0603921498240823],"hsluv":[40.7273497798256443,100.0000000000054,81.0603921498240823]},"#ffbb99":{"lch":[81.347989327564818,57.8755898316684423,34.2609783084776538],"luv":[81.347989327564818,47.8331272298795724,32.5818329406692087],"rgb":[1,0.733333333333333282,0.6],"xyz":[0.64757782968171862,0.591026548848845645,0.381351592237990866],"hpluv":[34.2609783084776538,130.060421106466862,81.347989327564818],"hsluv":[34.2609783084776538,100.000000000005514,81.347989327564818]},"#ffbbaa":{"lch":[81.6775593509345725,50.5427251754064883,25.056975338279841],"luv":[81.6775593509345725,45.7860019440054415,21.405819165362459],"rgb":[1,0.733333333333333282,0.66666666666666663],"xyz":[0.662635522646971231,0.597049626034946712,0.460655441854989522],"hpluv":[25.056975338279841,115.96007016550756,81.6775593509345725],"hsluv":[25.056975338279841,100.000000000005954,81.6775593509345725]},"#ffbbbb":{"lch":[82.0499666293022,44.6012959670408264,12.1770506300623094],"luv":[82.0499666293022,43.5977873399533138,9.40789779917804125],"rgb":[1,0.733333333333333282,0.733333333333333282],"xyz":[0.679773114754307795,0.603904662877881471,0.550913426953631213],"hpluv":[12.1770506300623094,104.793068167285782,82.0499666293022],"hsluv":[12.1770506300623094,100.000000000006168,82.0499666293022]},"#ffbbcc":{"lch":[82.4658415859876,41.4263127316455169,355.474040938847054],"luv":[82.4658415859876,41.2971323922898534,-3.26898190783910625],"rgb":[1,0.733333333333333282,0.8],"xyz":[0.699065490198029549,0.611621613055370328,0.652519937623901369],"hpluv":[355.474040938847054,100.004408983591958,82.4658415859876],"hsluv":[355.474040938847054,100.000000000006509,82.4658415859876]},"#ffbbdd":{"lch":[82.9255937413379,42.2590852539423381,337.045135839305544],"luv":[82.9255937413379,38.9126886018087319,-16.4812909773061058],"rgb":[1,0.733333333333333282,0.866666666666666696],"xyz":[0.720583815748663148,0.620228943275623834,0.765849785523907367],"hpluv":[337.045135839305544,105.181583048825317,82.9255937413379],"hsluv":[337.045135839305544,100.000000000006992,82.9255937413379]},"#ffbbee":{"lch":[83.4294243398036315,47.2826492521794748,320.476273654572083],"luv":[83.4294243398036315,36.4719970678196077,-30.0905691237235686],"rgb":[1,0.733333333333333282,0.933333333333333348],"xyz":[0.744395996014837857,0.629753815382093851,0.89126060159243059],"hpluv":[320.476273654572083,121.793886282549721,83.4294243398036315],"hsluv":[320.476273654572083,100.000000000007375,83.4294243398036315]},"#ffbbff":{"lch":[83.9773390427358493,55.5806936350452148,307.715012949246614],"luv":[83.9773390427358493,34.0006189291922496,-43.9678452665650781],"rgb":[1,0.733333333333333282,1],"xyz":[0.770567044424669279,0.640222234746026575,1.02909478988421244],"hpluv":[307.715012949246614,148.765749509941259,83.9773390427358493],"hsluv":[307.715012949246614,100.00000000000793,83.9773390427358493]},"#aa3300":{"lch":[39.4372171279304595,100.717281062042773,18.6056676884160446],"luv":[39.4372171279304595,95.4534790945485838,32.1341568004684959],"rgb":[0.66666666666666663,0.2,0],"xyz":[0.177609683996858475,0.109151647655369471,0.0117164749512008691],"hpluv":[18.6056676884160446,324.068678498457416,39.4372171279304595],"hsluv":[18.6056676884160446,100.00000000000226,39.4372171279304595]},"#aa3311":{"lch":[39.5056415087576553,98.9056898290362199,17.5539290045831464],"luv":[39.5056415087576553,94.2999972712563,29.8302865423477179],"rgb":[0.66666666666666663,0.2,0.0666666666666666657],"xyz":[0.178621349496495607,0.109556313855224324,0.0170445799159565023],"hpluv":[17.5539290045831464,317.688492914835,39.5056415087576553],"hsluv":[17.5539290045831464,94.2489803369173558,39.5056415087576553]},"#aa3322":{"lch":[39.6320377265530155,95.7434230458582789,15.5633947922033684],"luv":[39.6320377265530155,92.2329117474569102,25.688383505468213],"rgb":[0.66666666666666663,0.2,0.133333333333333331],"xyz":[0.180496707634972609,0.110306457110615139,0.0269214661119356949],"hpluv":[15.5633947922033684,306.55039093266322,39.6320377265530155],"hsluv":[15.5633947922033684,83.9544037116345123,39.6320377265530155]},"#aa3333":{"lch":[39.8389046640011415,91.0660982539230162,12.1770506300618351],"luv":[39.8389046640011415,89.0171529654153488,19.2088711049089049],"rgb":[0.66666666666666663,0.2,0.2],"xyz":[0.18358445836743037,0.111541557403598252,0.0431836199695468381],"hpluv":[12.1770506300618351,290.060550373943784,39.8389046640011415],"hsluv":[12.1770506300618351,67.9701775681036366,39.8389046640011415]},"#aa3344":{"lch":[40.1348956250933142,85.3951569144799691,7.07959423789482756],"luv":[40.1348956250933142,84.7440953003879116,10.5247867516366789],"rgb":[0.66666666666666663,0.2,0.266666666666666663],"xyz":[0.18804245361164923,0.113324755501285832,0.0666623949224334766],"hpluv":[7.07959423789482756,269.991710008472637,40.1348956250933142],"hsluv":[7.07959423789482756,69.5294395234689659,40.1348956250933142]},"#aa3355":{"lch":[40.5259588707466,79.61783322386637,359.98582832830067],"luv":[40.5259588707466,79.6178307884273693,-0.0196928603108827253],"rgb":[0.66666666666666663,0.2,0.333333333333333315],"xyz":[0.194004867651011215,0.115709721117030664,0.098064442196407392],"hpluv":[359.98582832830067,249.296614878837403,40.5259588707466],"hsluv":[359.98582832830067,71.3920974276079079,40.5259588707466]},"#aa3366":{"lch":[41.0157539995587683,74.8661602955128558,350.806369630673316],"luv":[41.0157539995587683,73.9044320805857,-11.9614746682639641],"rgb":[0.66666666666666663,0.2,0.4],"xyz":[0.2015898634245194,0.118743719426433983,0.138012086603551354],"hpluv":[350.806369630673316,231.619002340768361,41.0157539995587683],"hsluv":[350.806369630673316,73.4562780141226597,41.0157539995587683]},"#aa3377":{"lch":[41.6059173351841167,72.2728884464882668,339.921631600955322],"luv":[41.6059173351841167,67.8804264173117531,-24.8116527825629412],"rgb":[0.66666666666666663,0.2,0.466666666666666674],"xyz":[0.210903876444721305,0.122469324634514792,0.187065888509949263],"hpluv":[339.921631600955322,220.424384448141751,41.6059173351841167],"hsluv":[339.921631600955322,75.6166865764569138,41.6059173351841167]},"#aa3388":{"lch":[42.296293156356171,72.6091331125239918,328.324027314743319],"luv":[42.296293156356171,61.7926517819245191,-38.1281313089174],"rgb":[0.66666666666666663,0.2,0.533333333333333326],"xyz":[0.222044293546665161,0.12692549147529239,0.24573875191352143],"hpluv":[328.324027314743319,217.83530631356345,42.296293156356171],"hsluv":[328.324027314743319,77.7798333688196237,42.296293156356171]},"#aa3399":{"lch":[43.0851702185186838,75.9982874692542794,317.281450106519685],"luv":[43.0851702185186838,55.835561651799118,-51.5570533805758799],"rgb":[0.66666666666666663,0.2,0.6],"xyz":[0.235101257655737861,0.132148277118921548,0.314505429554639337],"hpluv":[317.281450106519685,223.828466633931441,43.0851702185186838],"hsluv":[317.281450106519685,79.8726039522015441,43.0851702185186838]},"#aa33aa":{"lch":[43.9695321467927229,81.9717995507402861,307.715012949243828],"luv":[43.9695321467927229,50.1449646844158607,-64.8448798162617521],"rgb":[0.66666666666666663,0.2,0.66666666666666663],"xyz":[0.250158950620990417,0.138171354305022642,0.393809279171637938],"hpluv":[307.715012949243828,236.565795567314069,43.9695321467927229],"hsluv":[307.715012949243828,81.8445603498948628,43.9695321467927229]},"#aa33bb":{"lch":[44.9453163823579231,89.8045713491188593,299.92695612823394],"luv":[44.9453163823579231,44.8030997809084,-77.8302208992172],"rgb":[0.66666666666666663,0.2,0.733333333333333282],"xyz":[0.267296542728327036,0.145026391147957401,0.484067264270279685],"hpluv":[299.92695612823394,253.543994890590483,44.9453163823579231],"hsluv":[299.92695612823394,83.6659201788580305,44.9453163823579231]},"#aa33cc":{"lch":[46.0076707905516145,98.8168321279874249,293.782406660809556],"luv":[46.0076707905516145,39.8493034294229815,-90.425656359246986],"rgb":[0.66666666666666663,0.2,0.8],"xyz":[0.28658891817204879,0.152743341325446202,0.585673774940549841],"hpluv":[293.782406660809556,272.546121846523647,46.0076707905516145],"hsluv":[293.782406660809556,85.323407183561244,46.0076707905516145]},"#aa33dd":{"lch":[47.1511962508372804,108.497592079042477,288.982430572084695],"luv":[47.1511962508372804,35.2919015872993782,-102.597315604759743],"rgb":[0.66666666666666663,0.2,0.866666666666666696],"xyz":[0.308107243722682334,0.161350671545699736,0.699003622840555838],"hpluv":[288.982430572084695,291.989148013150611,47.1511962508372804],"hsluv":[288.982430572084695,86.8156421407842771,47.1511962508372804]},"#aa33ee":{"lch":[48.3701654903461247,118.505438755587946,285.224041333998457],"luv":[48.3701654903461247,31.1188262963008349,-114.346655677352729],"rgb":[0.66666666666666663,0.2,0.933333333333333348],"xyz":[0.331919423988857099,0.170875543652169781,0.824414438909079061],"hpluv":[285.224041333998457,310.885191630161273,48.3701654903461247],"hsluv":[285.224041333998457,89.3017266962351215,48.3701654903461247]},"#aa33ff":{"lch":[49.6587116356326135,128.627945638670809,282.256374557143658],"luv":[49.6587116356326135,27.305962831451918,-125.696192436653462],"rgb":[0.66666666666666663,0.2,1],"xyz":[0.358090472398688464,0.181343963016102477,0.962248627200860907],"hpluv":[282.256374557143658,328.684490794403757,49.6587116356326135],"hsluv":[282.256374557143658,99.9999999999991616,49.6587116356326135]},"#884400":{"lch":[36.685747441671559,64.5393704655657814,31.8123524502136021],"luv":[36.685747441671559,54.844205976921188,34.0212200082916922],"rgb":[0.533333333333333326,0.266666666666666663,0],"xyz":[0.122201478469054756,0.093692638490747937,0.0116493787366846978],"hpluv":[31.8123524502136021,223.237258003095718,36.685747441671559],"hsluv":[31.8123524502136021,100.000000000002245,36.685747441671559]},"#884411":{"lch":[36.7614898568215622,62.4864851085245405,30.2058215583615599],"luv":[36.7614898568215622,54.0023006087270119,31.4374354899146],"rgb":[0.533333333333333326,0.266666666666666663,0.0666666666666666657],"xyz":[0.123213143968691874,0.0940973046906027899,0.016977483701440331],"hpluv":[30.2058215583615599,215.691146343233044,36.7614898568215622],"hsluv":[30.2058215583615599,93.206231917801162,36.7614898568215622]},"#884422":{"lch":[36.9013237077522405,58.9550348899468375,27.0578850153250627],"luv":[36.9013237077522405,52.5022536375556825,26.8180816214102],"rgb":[0.533333333333333326,0.266666666666666663,0.133333333333333331],"xyz":[0.125088502107168903,0.0948474479459936,0.0268543698974195236],"hpluv":[27.0578850153250627,202.730122118290922,36.9013237077522405],"hsluv":[27.0578850153250627,81.1214838671569822,36.9013237077522405]},"#884433":{"lch":[37.1299605496210461,53.9021323280231357,21.3870333458705382],"luv":[37.1299605496210461,50.1903435049312,19.6562785990819577],"rgb":[0.533333333333333326,0.266666666666666663,0.2],"xyz":[0.128176252839626637,0.0960825482389767171,0.0431165237550306668],"hpluv":[21.3870333458705382,184.213216030002656,37.1299605496210461],"hsluv":[21.3870333458705382,62.5495295304316272,37.1299605496210461]},"#884444":{"lch":[37.4566279620983806,48.2433933618324389,12.1770506300619505],"luv":[37.4566279620983806,47.157939219998795,10.1761373608750691],"rgb":[0.533333333333333326,0.266666666666666663,0.266666666666666663],"xyz":[0.132634248083845524,0.0978657463366643,0.0665952987079173],"hpluv":[12.1770506300619505,163.436290620587812,37.4566279620983806],"hsluv":[12.1770506300619505,38.2981887065726,37.4566279620983806]},"#884455":{"lch":[37.8873893879065804,43.5926938841600631,358.470393497241901],"luv":[37.8873893879065804,43.5771602849424937,-1.16364151632571566],"rgb":[0.533333333333333326,0.266666666666666663,0.333333333333333315],"xyz":[0.138596662123207509,0.10025071195240913,0.0979973459818912207],"hpluv":[358.470393497241901,146.001848007416612,37.8873893879065804],"hsluv":[358.470393497241901,42.6300163695831245,37.8873893879065804]},"#884466":{"lch":[38.425613648805637,41.9872152878557756,340.815857604715632],"luv":[38.425613648805637,39.6555541095459816,-13.7972198610307206],"rgb":[0.533333333333333326,0.266666666666666663,0.4],"xyz":[0.146181657896715694,0.103284710261812449,0.137944990389035183],"hpluv":[340.815857604715632,138.655016432961,38.425613648805637],"hsluv":[340.815857604715632,47.3337116796912767,38.425613648805637]},"#884477":{"lch":[39.0722986805963117,44.7783217464764363,322.645837420375756],"luv":[39.0722986805963117,35.5943002873345478,-27.1688035343115608],"rgb":[0.533333333333333326,0.266666666666666663,0.466666666666666674],"xyz":[0.1554956709169176,0.107010315469893258,0.186998792295433092],"hpluv":[322.645837420375756,145.424700121889231,39.0722986805963117],"hsluv":[322.645837420375756,52.1510622716411,39.0722986805963117]},"#884488":{"lch":[39.8263740522966856,51.5911203050634839,307.71501294924451],"luv":[39.8263740522966856,31.5600599218946343,-40.8118403414738609],"rgb":[0.533333333333333326,0.266666666666666663,0.533333333333333326],"xyz":[0.166636088018861428,0.111466482310670856,0.245671655699005259],"hpluv":[307.71501294924451,164.377933698467302,39.8263740522966856],"hsluv":[307.71501294924451,56.8697587177058,39.8263740522966856]},"#884499":{"lch":[40.6850187117946192,61.0189075542410393,296.969581150574243],"luv":[40.6850187117946192,27.6731358367265301,-54.3829443123034295],"rgb":[0.533333333333333326,0.266666666666666663,0.6],"xyz":[0.179693052127934128,0.116689267954300013,0.314438333340123166],"hpluv":[296.969581150574243,190.313341437332326,40.6850187117946192],"hsluv":[296.969581150574243,61.3383523001243134,40.6850187117946192]},"#8844aa":{"lch":[41.643995358805,71.7935926347933417,289.536616505740085],"luv":[41.643995358805,24.0084388126510113,-67.6602897510042141],"rgb":[0.533333333333333326,0.266666666666666663,0.66666666666666663],"xyz":[0.194750745093186683,0.122712345140401108,0.393742182957121767],"hpluv":[289.536616505740085,218.762371943685849,41.643995358805],"hsluv":[289.536616505740085,65.4647221474276506,41.643995358805]},"#8844bb":{"lch":[42.6979882651059626,83.1164887776927515,284.352541737053286],"luv":[42.6979882651059626,20.6035404121657031,-80.5223250360828757],"rgb":[0.533333333333333326,0.266666666666666663,0.733333333333333282],"xyz":[0.21188833720052333,0.129567381983335866,0.484000168055763513],"hpluv":[284.352541737053286,247.012596783276,42.6979882651059626],"hsluv":[284.352541737053286,69.2054262339616741,42.6979882651059626]},"#8844cc":{"lch":[43.840927241858644,94.5481620176080924,280.647262826657595],"luv":[43.840927241858644,17.4689172853010533,-92.9203522904814463],"rgb":[0.533333333333333326,0.266666666666666663,0.8],"xyz":[0.231180712644245057,0.137284332160824668,0.585606678726033669],"hpluv":[280.647262826657595,273.660859280114778,43.840927241858644],"hsluv":[280.647262826657595,72.5522514276637764,43.840927241858644]},"#8844dd":{"lch":[45.0662821798681108,105.864396975636453,277.925647559652191],"luv":[45.0662821798681108,14.5974213234566292,-104.853163222292139],"rgb":[0.533333333333333326,0.266666666666666663,0.866666666666666696],"xyz":[0.2526990381948786,0.145891662381078202,0.698936526626039667],"hpluv":[277.925647559652191,298.083215805211921,45.0662821798681108],"hsluv":[277.925647559652191,79.9664783418063649,45.0662821798681108]},"#8844ee":{"lch":[46.3673172023828,116.961454232737537,275.874868362231723],"luv":[46.3673172023828,11.97173240994087,-116.347150370524886],"rgb":[0.533333333333333326,0.266666666666666663,0.933333333333333348],"xyz":[0.276511218461053365,0.155416534487548247,0.82434734269456289],"hpluv":[275.874868362231723,320.088534026972411,46.3673172023828],"hsluv":[275.874868362231723,89.9071832422553,46.3673172023828]},"#8844ff":{"lch":[47.7372988913525091,127.801124524511906,274.29427304351259],"luv":[47.7372988913525091,9.5696272486796623,-127.442338585146516],"rgb":[0.533333333333333326,0.266666666666666663,1],"xyz":[0.302682266870884731,0.165884953851480943,0.962181530986344735],"hpluv":[274.29427304351259,339.716123682654541,47.7372988913525091],"hsluv":[274.29427304351259,99.9999999999992468,47.7372988913525091]},"#ffcc00":{"lch":[84.1983464973243,98.3335943421723613,63.5926937648685069],"luv":[84.1983464973243,43.7338065737115329,88.0729807536005751],"rgb":[1,0.8,0],"xyz":[0.628309999332456237,0.644477406004528408,0.0913038854044243842],"hpluv":[63.5926937648685069,267.385577483165775,84.1983464973243],"hsluv":[63.5926937648685069,100.000000000007688,84.1983464973243]},"#ffcc11":{"lch":[84.2193135631731877,97.4576917861448777,63.4272907637844199],"luv":[84.2193135631731877,43.5960552023901897,87.1629833075564164],"rgb":[1,0.8,0.0666666666666666657],"xyz":[0.629321664832093397,0.644882072204383316,0.0966319903691800208],"hpluv":[63.4272907637844199,265.403720884510847,84.2193135631731877],"hsluv":[63.4272907637844199,100.000000000007645,84.2193135631731877]},"#ffcc22":{"lch":[84.2581577251319516,95.845309095571892,63.1144413478925301],"luv":[84.2581577251319516,43.342199386504106,85.4855369519677168],"rgb":[1,0.8,0.133333333333333331],"xyz":[0.631197022970570343,0.645632215459774117,0.106508876565159213],"hpluv":[63.1144413478925301,261.744085553517664,84.2581577251319516],"hsluv":[63.1144413478925301,100.00000000000766,84.2581577251319516]},"#ffcc33":{"lch":[84.3220485899852719,93.2224175872051148,62.5809741236821822],"luv":[84.3220485899852719,42.9284172035605494,82.7500461462124832],"rgb":[1,0.8,0.2],"xyz":[0.63428477370302816,0.646867315752757244,0.12277103042277035],"hpluv":[62.5809741236821822,255.758846695652977,84.3220485899852719],"hsluv":[62.5809741236821822,100.000000000007859,84.3220485899852719]},"#ffcc44":{"lch":[84.41414885501203,89.5051620308737,61.7678249437873745],"luv":[84.41414885501203,42.3400226901080785,78.8574442191356439],"rgb":[1,0.8,0.266666666666666663],"xyz":[0.638742768947247,0.64865051385044481,0.146249805375657],"hpluv":[61.7678249437873745,247.206609954939694,84.41414885501203],"hsluv":[61.7678249437873745,100.000000000007887,84.41414885501203]},"#ffcc55":{"lch":[84.5370662928161,84.6613331238571476,60.5932597011580469],"luv":[84.5370662928161,41.569242864558305,73.7532329730438221],"rgb":[1,0.8,0.333333333333333315],"xyz":[0.644705182986609,0.651035479466189559,0.177651852649630904],"hpluv":[60.5932597011580469,235.935294148211483,84.5370662928161],"hsluv":[60.5932597011580469,100.000000000008015,84.5370662928161]},"#ffcc66":{"lch":[84.6930007913096,78.7104448491835456,58.9357730127494222],"luv":[84.6930007913096,40.6144802919859131,67.4225342075500151],"rgb":[1,0.8,0.4],"xyz":[0.65229017876011719,0.654069477775592878,0.217599497056774865],"hpluv":[58.9357730127494222,221.881579382217893,84.6930007913096],"hsluv":[58.9357730127494222,100.000000000008285,84.6930007913096]},"#ffcc77":{"lch":[84.8838226897762809,71.7288671198513441,56.6053668146737863],"luv":[84.8838226897762809,39.4797505573258718,59.8863897244492378],"rgb":[1,0.8,0.466666666666666674],"xyz":[0.661604191780319,0.657795082983673729,0.266653298963172802],"hpluv":[56.6053668146737863,205.087229042099608,84.8838226897762809],"hsluv":[56.6053668146737863,100.000000000008399,84.8838226897762809]},"#ffcc88":{"lch":[85.1111193079521371,63.8628893840605159,53.2910582019814285],"luv":[85.1111193079521371,38.1740592359010691,51.1977523133063457],"rgb":[1,0.8,0.533333333333333326],"xyz":[0.672744608882263,0.662251249824451271,0.325326162366744942],"hpluv":[53.2910582019814285,185.743844227516831,85.1111193079521371],"hsluv":[53.2910582019814285,100.000000000008683,85.1111193079521371]},"#ffcc99":{"lch":[85.3762249003348899,55.3594884395636555,48.4608196634464292],"luv":[85.3762249003348899,36.710650975629143,41.436711563970924],"rgb":[1,0.8,0.6],"xyz":[0.685801572991335595,0.667474035468080484,0.394092840007862821],"hpluv":[48.4608196634464292,164.300705026796521,85.3762249003348899],"hsluv":[48.4608196634464292,100.000000000008811,85.3762249003348899]},"#ffccaa":{"lch":[85.6802414041430467,46.6394331206389836,41.1740083194267896],"luv":[85.6802414041430467,35.1061374539925311,30.7049806200222122],"rgb":[1,0.8,0.66666666666666663],"xyz":[0.700859265956588207,0.673497112654181551,0.473396689624861478],"hpluv":[41.1740083194267896,141.724192848301414,85.6802414041430467],"hsluv":[41.1740083194267896,100.000000000009393,85.6802414041430467]},"#ffccbb":{"lch":[86.0240539433014106,38.4677176438646384,29.8042196075727404],"luv":[86.0240539433014106,33.3795484258888635,19.1199123327444944],"rgb":[1,0.8,0.733333333333333282],"xyz":[0.71799685806392477,0.68035214949711631,0.563654674723503168],"hpluv":[29.8042196075727404,120.116808153279436,86.0240539433014106],"hsluv":[29.8042196075727404,100.000000000009621,86.0240539433014106]},"#ffcccc":{"lch":[86.4083433793485,32.2775975377643,12.1770506300627517],"luv":[86.4083433793485,31.5513664521307504,6.80841962670093892],"rgb":[1,0.8,0.8],"xyz":[0.737289233507646524,0.688069099674605167,0.665261185393773324],"hpluv":[12.1770506300627517,103.973607583717524,86.4083433793485],"hsluv":[12.1770506300627517,100.000000000010388,86.4083433793485]},"#ffccdd":{"lch":[86.8335972965778637,30.2635044437543748,348.373924949033096],"luv":[86.8335972965778637,29.6426074465171432,-6.09881340826452867],"rgb":[1,0.8,0.866666666666666696],"xyz":[0.758807559058280123,0.696676429894858673,0.778591033293779322],"hpluv":[348.373924949033096,100.994037434302086,86.8335972965778637],"hsluv":[348.373924949033096,100.000000000011042,86.8335972965778637]},"#ffccee":{"lch":[87.3001202800073344,33.8382691858854301,324.868297683069],"luv":[87.3001202800073344,27.6740002852911822,-19.4724977777928352],"rgb":[1,0.8,0.933333333333333348],"xyz":[0.782619739324454833,0.70620130200132869,0.904001849362302545],"hpluv":[324.868297683069,117.528800717138253,87.3001202800073344],"hsluv":[324.868297683069,100.000000000011482,87.3001202800073344]},"#ffccff":{"lch":[87.8080440143565255,41.9549825399590404,307.715012949248376],"luv":[87.8080440143565255,25.6653035474654807,-33.1890456889728],"rgb":[1,0.8,1],"xyz":[0.808790787734286254,0.716669721365261414,1.0418360376540845],"hpluv":[307.715012949248376,152.433043069806,87.8080440143565255],"hsluv":[307.715012949248376,100.000000000012506,87.8080440143565255]},"#aa4400":{"lch":[42.2796461632011074,91.196234940608619,23.7609213617016479],"luv":[42.2796461632011074,83.4659581293579578,36.7448921741641357],"rgb":[0.66666666666666663,0.266666666666666663,0],"xyz":[0.186442254479824487,0.126816788621301801,0.0146606651121894659],"hpluv":[23.7609213617016479,273.706361359402308,42.2796461632011074],"hsluv":[23.7609213617016479,100.000000000002331,42.2796461632011074]},"#aa4411":{"lch":[42.3415695164373815,89.5099073241138399,22.7237862619920179],"luv":[42.3415695164373815,82.5619515402106572,34.5766925405446202],"rgb":[0.66666666666666663,0.266666666666666663,0.0666666666666666657],"xyz":[0.18745391997946162,0.127221454821156654,0.0199887700769451],"hpluv":[22.7237862619920179,268.252316854423896,42.3415695164373815],"hsluv":[22.7237862619920179,95.0030043013494634,42.3415695164373815]},"#aa4422":{"lch":[42.4560124733741162,86.5487219398638,20.7501492775311753],"luv":[42.4560124733741162,80.9346773489764075,30.663647399501361],"rgb":[0.66666666666666663,0.266666666666666663,0.133333333333333331],"xyz":[0.189329278117938621,0.127971598076547483,0.0298656562729242916],"hpluv":[20.7501492775311753,258.678767688655569,42.4560124733741162],"hsluv":[20.7501492775311753,86.0172479577967692,42.4560124733741162]},"#aa4433":{"lch":[42.643470741830761,82.1252826930209494,17.3597256589108966],"luv":[42.643470741830761,78.3845002494828691,24.5037176372775498],"rgb":[0.66666666666666663,0.266666666666666663,0.2],"xyz":[0.192417028850396354,0.129206698369530582,0.0461278101305354349],"hpluv":[17.3597256589108966,244.378874013338617,42.643470741830761],"hsluv":[17.3597256589108966,71.9602068881057733,42.643470741830761]},"#aa4444":{"lch":[42.9120210749329871,76.685866981555165,12.1770506300619239],"luv":[42.9120210749329871,74.9604702767477704,16.1756017075590073],"rgb":[0.66666666666666663,0.266666666666666663,0.266666666666666663],"xyz":[0.196875024094615242,0.130989896467218175,0.0696065850834220734],"hpluv":[12.1770506300619239,226.764824908056937,42.9120210749329871],"hsluv":[12.1770506300619239,53.1380271992519795,42.9120210749329871]},"#aa4455":{"lch":[43.2674147484635299,71.0489272172787594,4.80785478807657096],"luv":[43.2674147484635299,70.7989329223205,5.9549270177674023],"rgb":[0.66666666666666663,0.266666666666666663,0.333333333333333315],"xyz":[0.202837438133977255,0.133374862082963,0.101008632357395989],"hpluv":[4.80785478807657096,208.370342069187018,43.2674147484635299],"hsluv":[4.80785478807657096,55.6796565441877931,43.2674147484635299]},"#aa4466":{"lch":[43.7134526285125489,66.3411716499448261,355.020980864279068],"luv":[43.7134526285125489,66.0908363196155477,-5.75781299290188],"rgb":[0.66666666666666663,0.266666666666666663,0.4],"xyz":[0.210422433907485412,0.136408860392366299,0.140956276764539951],"hpluv":[355.020980864279068,192.578302395247789,43.7134526285125489],"hsluv":[355.020980864279068,58.5402216503940949,43.7134526285125489]},"#aa4477":{"lch":[44.252209356870793,63.7921835342278598,343.127789968560137],"luv":[44.252209356870793,61.046215168807521,-18.5149208377531842],"rgb":[0.66666666666666663,0.266666666666666663,0.466666666666666674],"xyz":[0.219736446927687346,0.140134465600447122,0.19001007867093786],"hpluv":[343.127789968560137,182.924482874911519,44.252209356870793],"hsluv":[343.127789968560137,61.5848400189491372,44.252209356870793]},"#aa4488":{"lch":[44.8842146397509367,64.3242328637060865,330.281311898752961],"luv":[44.8842146397509367,55.8636578331810938,-31.8882214461946916],"rgb":[0.66666666666666663,0.266666666666666663,0.533333333333333326],"xyz":[0.230876864029631146,0.14459063244122472,0.248682942074510027],"hpluv":[330.281311898752961,181.852933643495049,44.8842146397509367],"hsluv":[330.281311898752961,64.6866121014520274,44.8842146397509367]},"#aa4499":{"lch":[45.6086312393750077,68.1395242873703779,318.091147538790551],"luv":[45.6086312393750077,50.7100032224043318,-45.5136281051387854],"rgb":[0.66666666666666663,0.266666666666666663,0.6],"xyz":[0.243933828138703873,0.149813418084853878,0.317449619715627906],"hpluv":[318.091147538790551,189.579504981677246,45.6086312393750077],"hsluv":[318.091147538790551,67.7395528675925,45.6086312393750077]},"#aa44aa":{"lch":[46.4234422285949293,74.7240378323112822,307.715012949244056],"luv":[46.4234422285949293,45.7112599542092468,-59.1114417296972476],"rgb":[0.66666666666666663,0.266666666666666663,0.66666666666666663],"xyz":[0.258991521103956401,0.155836495270954972,0.396753469332626507],"hpluv":[307.715012949244056,204.25011915803762,46.4234422285949293],"hsluv":[307.715012949244056,70.6643205278868862,46.4234422285949293]},"#aa44bb":{"lch":[47.3256474704596144,83.2556513741305224,299.464802712285689],"luv":[47.3256474704596144,40.9525224701243289,-72.4872015535482177],"rgb":[0.66666666666666663,0.266666666666666663,0.733333333333333282],"xyz":[0.276129113211293076,0.162691532113889731,0.487011454431268254],"hpluv":[299.464802712285689,223.2320179514779,47.3256474704596144],"hsluv":[299.464802712285689,73.4081717041738244,47.3256474704596144]},"#aa44cc":{"lch":[48.311463406953564,92.9774863668884564,293.103270963637385],"luv":[48.311463406953564,36.4834012629607827,-85.5206080625642073],"rgb":[0.66666666666666663,0.266666666666666663,0.8],"xyz":[0.29542148865501483,0.170408482291378532,0.58861796510153841],"hpluv":[293.103270963637385,244.211962975346665,48.311463406953564],"hsluv":[293.103270963637385,75.9413806031634806,48.311463406953564]},"#aa44dd":{"lch":[49.376518181476186,103.335675962773564,288.229438001673088],"luv":[49.376518181476186,32.3257723855767125,-98.1494083851717676],"rgb":[0.66666666666666663,0.266666666666666663,0.866666666666666696],"xyz":[0.316939814205648318,0.179015812511632066,0.701947813001544407],"hpluv":[288.229438001673088,265.563967984367252,49.376518181476186],"hsluv":[288.229438001673088,78.2521754793284572,49.376518181476186]},"#aa44ee":{"lch":[50.5160343838387149,113.969241853628489,284.471970959088878],"luv":[50.5160343838387149,28.4816380653286,-110.35299897060564],"rgb":[0.66666666666666663,0.266666666666666663,0.933333333333333348],"xyz":[0.340751994471823083,0.188540684618102111,0.82735862907006763],"hpluv":[284.471970959088878,286.284434407824506,50.5160343838387149],"hsluv":[284.471970959088878,88.5420288112715355,50.5160343838387149]},"#aa44ff":{"lch":[51.7249932896939271,124.658572052901789,281.540806859048416],"luv":[51.7249932896939271,24.9399169363974949,-122.138282816953421],"rgb":[0.66666666666666663,0.266666666666666663,1],"xyz":[0.366923042881654449,0.199009103982034807,0.965192817361849476],"hpluv":[281.540806859048416,305.816582895375404,51.7249932896939271],"hsluv":[281.540806859048416,99.9999999999991189,51.7249932896939271]},"#885500":{"lch":[40.7868302215615941,57.8204075903908716,44.0255445375638317],"luv":[40.7868302215615941,41.5746091122878738,40.1839695784202107],"rgb":[0.533333333333333326,0.333333333333333315,0],"xyz":[0.134014735183400707,0.117319151919440201,0.0155871309747999068],"hpluv":[44.0255445375638317,179.887306981779091,40.7868302215615941],"hsluv":[44.0255445375638317,100.000000000002402,40.7868302215615941]},"#885511":{"lch":[40.8520464566488215,55.8013246771799061,42.6953812551229817],"luv":[40.8520464566488215,41.012258348334349,37.838901951530346],"rgb":[0.533333333333333326,0.333333333333333315,0.0666666666666666657],"xyz":[0.135026400683037839,0.117723818119295054,0.0209152359395555383],"hpluv":[42.6953812551229817,173.328515822040885,40.8520464566488215],"hsluv":[42.6953812551229817,94.5141207032234121,40.8520464566488215]},"#885522":{"lch":[40.9725457623763205,52.2529579480882163,40.0436802938645613],"luv":[40.9725457623763205,40.0024704692244413,33.6180601862079769],"rgb":[0.533333333333333326,0.333333333333333315,0.133333333333333331],"xyz":[0.136901758821514841,0.118473961374685868,0.0307921221355347344],"hpluv":[40.0436802938645613,161.829338044896133,40.9725457623763205],"hsluv":[40.0436802938645613,84.6783920295854813,40.9725457623763205]},"#885533":{"lch":[41.169842808691,46.965215190705,35.0963808532685348],"luv":[41.169842808691,38.426283274472091,27.0028182162390955],"rgb":[0.533333333333333326,0.333333333333333315,0.2],"xyz":[0.139989509553972602,0.119709061667668981,0.0470542759931458776],"hpluv":[35.0963808532685348,144.75595347357384,41.169842808691],"hsluv":[35.0963808532685348,69.3663942781120113,41.169842808691]},"#885544":{"lch":[41.4523140669009891,40.5881659839312263,26.5063976077417607],"luv":[41.4523140669009891,36.321721997537459,18.1144066718387258],"rgb":[0.533333333333333326,0.333333333333333315,0.266666666666666663],"xyz":[0.144447504798191462,0.121492259765356561,0.0705330509460325161],"hpluv":[26.5063976077417607,124.248162385526584,41.4523140669009891],"hsluv":[26.5063976077417607,49.0053368988820708,41.4523140669009891]},"#885555":{"lch":[41.8258216452066449,34.5587016635497619,12.1770506300621708],"luv":[41.8258216452066449,33.7811467851905647,7.28958040957408926],"rgb":[0.533333333333333326,0.333333333333333315,0.333333333333333315],"xyz":[0.150409918837553447,0.123877225381101394,0.101935098220006432],"hpluv":[12.1770506300621708,104.846095879990827,41.8258216452066449],"hsluv":[12.1770506300621708,24.5686900376428454,41.8258216452066449]},"#885566":{"lch":[42.2941086985740071,31.3312262907584227,350.801819307985852],"luv":[42.2941086985740071,30.9283487442626033,-5.00829160852097477],"rgb":[0.533333333333333326,0.333333333333333315,0.4],"xyz":[0.157994914611061632,0.126911223690504699,0.141882742627150393],"hpluv":[350.801819307985852,94.0019456509277092,42.2941086985740071],"hsluv":[350.801819307985852,29.8132814869556348,42.2941086985740071]},"#885577":{"lch":[42.8590433503379202,33.3514130793808121,326.760730108285],"luv":[42.8590433503379202,27.8947491372056646,-18.2811302977648822],"rgb":[0.533333333333333326,0.333333333333333315,0.466666666666666674],"xyz":[0.167308927631263538,0.130636828898585522,0.190936544533548302],"hpluv":[326.760730108285,98.7440857113442263,42.8590433503379202],"hsluv":[326.760730108285,35.3342565461126838,42.8590433503379202]},"#885588":{"lch":[43.5208237898043535,40.5407907233736822,307.71501294924542],"luv":[43.5208237898043535,24.8001938501248809,-32.0703304858651137],"rgb":[0.533333333333333326,0.333333333333333315,0.533333333333333326],"xyz":[0.178449344733207393,0.13509299573936312,0.24960940793712047],"hpluv":[307.71501294924542,118.204615389413121,43.5208237898043535],"hsluv":[307.71501294924542,40.8951968507306276,43.5208237898043535]},"#885599":{"lch":[44.278184332936334,50.8805981998246,295.296495298175159],"luv":[44.278184332936334,21.7414099229374891,-46.0015909261276477],"rgb":[0.533333333333333326,0.333333333333333315,0.6],"xyz":[0.191506308842280093,0.140315781382992277,0.318376085578238377],"hpluv":[295.296495298175159,145.814841874582299,44.278184332936334],"hsluv":[295.296495298175159,46.3068912836000735,44.278184332936334]},"#8855aa":{"lch":[45.1286132569148819,62.6826496939872868,287.441560465434577],"luv":[45.1286132569148819,18.7880516159354372,-59.8006997378464717],"rgb":[0.533333333333333326,0.333333333333333315,0.66666666666666663],"xyz":[0.206564001807532649,0.146338858569093372,0.397679935195237],"hpluv":[287.441560465434577,176.252255995348207,45.1286132569148819],"hsluv":[287.441560465434577,51.4349240401982044,45.1286132569148819]},"#8855bb":{"lch":[46.0685799041538857,75.0110486022347374,282.303621490188448],"luv":[46.0685799041538857,15.9842650126874819,-73.2882029006783284],"rgb":[0.533333333333333326,0.333333333333333315,0.733333333333333282],"xyz":[0.223701593914869268,0.15319389541202813,0.487937920293878724],"hpluv":[282.303621490188448,206.613996430434867,46.0685799041538857],"hsluv":[282.303621490188448,56.1963190544194191,46.0685799041538857]},"#8855cc":{"lch":[47.0937627302438173,87.3889723072186229,278.789341148015808],"luv":[47.0937627302438173,13.3532090014702405,-86.3627482788434406],"rgb":[0.533333333333333326,0.333333333333333315,0.8],"xyz":[0.242993969358591022,0.160910845589516932,0.58954443096414888],"hpluv":[278.789341148015808,235.468364438494291,47.0937627302438173],"hsluv":[278.789341148015808,67.0071532265272083,47.0937627302438173]},"#8855dd":{"lch":[48.1992684502362323,99.579643468316263,276.285619014825784],"luv":[48.1992684502362323,10.9024601244232162,-98.9810171523426163],"rgb":[0.533333333333333326,0.333333333333333315,0.866666666666666696],"xyz":[0.264512294909224566,0.169518175809770466,0.702874278864154878],"hpluv":[276.285619014825784,262.161822059859048,48.1992684502362323],"hsluv":[276.285619014825784,77.9008511174594673,48.1992684502362323]},"#8855ee":{"lch":[49.3798334670730128,111.473561000814087,274.439637972028379],"luv":[49.3798334670730128,8.62903279282213198,-111.139077714648238],"rgb":[0.533333333333333326,0.333333333333333315,0.933333333333333348],"xyz":[0.288324475175399275,0.179043047916240511,0.828285094932678101],"hpluv":[274.439637972028379,286.45841220928196,49.3798334670730128],"hsluv":[274.439637972028379,88.8665998649397295,49.3798334670730128]},"#8855ff":{"lch":[50.6300011250937416,123.030386306339324,273.039422554437692],"luv":[50.6300011250937416,6.52344684402536235,-122.857318039912712],"rgb":[0.533333333333333326,0.333333333333333315,1],"xyz":[0.314495523585230696,0.189511467280173207,0.96611928322446],"hpluv":[273.039422554437692,308.349875308867752,50.6300011250937416],"hsluv":[273.039422554437692,99.9999999999992,50.6300011250937416]},"#ffdd00":{"lch":[88.435570144315335,99.3071523162376195,71.7429005549186911],"luv":[88.435570144315335,31.1110916577435432,94.3080615696447211],"rgb":[1,0.866666666666666696,0],"xyz":[0.670943989879631442,0.729745387098879927,0.105515215586815703],"hpluv":[71.7429005549186911,382.363935262913174,88.435570144315335],"hsluv":[71.7429005549186911,100.000000000012946,88.435570144315335]},"#ffdd11":{"lch":[88.454870819445,98.4678340856778,71.6448189166009826],"luv":[88.454870819445,31.0081800872079896,93.4580500395971683],"rgb":[1,0.866666666666666696,0.0666666666666666657],"xyz":[0.671955655379268602,0.730150053298734836,0.110843320551571339],"hpluv":[71.6448189166009826,379.826472639876158,88.454870819445],"hsluv":[71.6448189166009826,100.00000000001296,88.454870819445]},"#ffdd22":{"lch":[88.4906302718539735,96.9204819130462,71.4594307996413],"luv":[88.4906302718539735,30.8183922605744947,91.8901872494037093],"rgb":[1,0.866666666666666696,0.133333333333333331],"xyz":[0.673831013517745547,0.730900196554125636,0.120720206747550532],"hpluv":[71.4594307996413,375.129750349680876,88.4906302718539735],"hsluv":[71.4594307996413,100.00000000001296,88.4906302718539735]},"#ffdd33":{"lch":[88.5494544369894641,94.3967280931520776,71.1436744567929793],"luv":[88.5494544369894641,30.5086598694284135,89.330643945199526],"rgb":[1,0.866666666666666696,0.2],"xyz":[0.676918764250203364,0.732135296847108763,0.136982360605161668],"hpluv":[71.1436744567929793,367.416320973762822,88.5494544369894641],"hsluv":[71.1436744567929793,100.000000000013216,88.5494544369894641]},"#ffdd44":{"lch":[88.6342662809689301,90.8049878425315455,70.6631891871382152],"luv":[88.6342662809689301,30.0674100616276441,85.6825342136204284],"rgb":[1,0.866666666666666696,0.266666666666666663],"xyz":[0.681376759494422224,0.733918494944796329,0.160461135558048307],"hpluv":[70.6631891871382152,356.322085242203968,88.6342662809689301],"hsluv":[70.6631891871382152,100.000000000013173,88.6342662809689301]},"#ffdd55":{"lch":[88.7474847112806486,86.0957791731635353,69.970644696948483],"luv":[88.7474847112806486,29.4879375414461293,80.8884709398435433],"rgb":[1,0.866666666666666696,0.333333333333333315],"xyz":[0.687339173533784153,0.736303460560541079,0.191863182832022222],"hpluv":[69.970644696948483,341.559684906391112,88.7474847112806486],"hsluv":[69.970644696948483,100.000000000013429,88.7474847112806486]},"#ffdd66":{"lch":[88.8911610589964454,80.258955992054581,68.9956984045855819],"luv":[88.8911610589964454,28.7678627944319345,74.9260307715235427],"rgb":[1,0.866666666666666696,0.4],"xyz":[0.694924169307292394,0.739337458869944397,0.231810827239166184],"hpluv":[68.9956984045855819,322.902183683526573,88.8911610589964454],"hsluv":[68.9956984045855819,100.000000000013586,88.8911610589964454]},"#ffdd77":{"lch":[89.0670520916409885,73.323747836811151,67.6276760217336346],"luv":[89.0670520916409885,27.9087592291374555,67.8046691248198812],"rgb":[1,0.866666666666666696,0.466666666666666674],"xyz":[0.704238182327494244,0.743063064078025248,0.280864629145564093],"hpluv":[67.6276760217336346,300.178104609939055,89.0670520916409885],"hsluv":[67.6276760217336346,100.000000000014367,89.0670520916409885]},"#ffdd88":{"lch":[89.2766635023192379,65.3617696880632622,65.6822421460803554],"luv":[89.2766635023192379,26.9157684368328205,59.5625918359016637],"rgb":[1,0.866666666666666696,0.533333333333333326],"xyz":[0.715378599429438156,0.747519230918802791,0.339537492549136233],"hpluv":[65.6822421460803554,273.280966903928913,89.2766635023192379],"hsluv":[65.6822421460803554,100.00000000001468,89.2766635023192379]},"#ffdd99":{"lch":[89.5212778802452362,56.4966374008110606,62.8311838382076928],"luv":[89.5212778802452362,25.7971434460875209,50.2630821540094814],"rgb":[1,0.866666666666666696,0.6],"xyz":[0.7284355635385108,0.752742016562432,0.408304170190254168],"hpluv":[62.8311838382076928,242.212083001239,89.5212778802452362],"hsluv":[62.8311838382076928,100.000000000014893,89.5212778802452362]},"#ffddaa":{"lch":[89.8019739344538408,46.9317870748453103,58.439957868293348],"luv":[89.8019739344538408,24.5637119196041205,39.9902074859498],"rgb":[1,0.866666666666666696,0.66666666666666663],"xyz":[0.743493256503763411,0.75876509374853307,0.487608019807252768],"hpluv":[58.439957868293348,207.216087370130765,89.8019739344538408],"hsluv":[58.439957868293348,100.000000000015916,89.8019739344538408]},"#ffddbb":{"lch":[90.1196406145249114,37.0342016806554142,51.1553076529108282],"luv":[90.1196406145249114,23.228278171915747,28.8440494260352231],"rgb":[1,0.866666666666666696,0.733333333333333282],"xyz":[0.7606308486111,0.765620130591467829,0.57786600490589457],"hpluv":[51.1553076529108282,169.207898233907059,90.1196406145249114],"hsluv":[51.1553076529108282,100.00000000001647,90.1196406145249114]},"#ffddcc":{"lch":[90.4749882420216665,27.6093496047032829,37.8361109659034085],"luv":[90.4749882420216665,21.8049964890922183,16.9357111957368183],"rgb":[1,0.866666666666666696,0.8],"xyz":[0.779923224054821729,0.773337080768956686,0.679472515576164726],"hpluv":[37.8361109659034085,131.228146902908946,90.4749882420216665],"hsluv":[37.8361109659034085,100.000000000017565,90.4749882420216665]},"#ffdddd":{"lch":[90.8685579434819743,20.7762078419716971,12.1770506300632935],"luv":[90.8685579434819743,20.3087527298379129,4.38239373528981613],"rgb":[1,0.866666666666666696,0.866666666666666696],"xyz":[0.801441549605455328,0.781944410989210192,0.792802363476170724],"hpluv":[12.1770506300632935,103.332662997484363,90.8685579434819743],"hsluv":[12.1770506300632935,100.000000000018645,90.8685579434819743]},"#ffddee":{"lch":[91.3007301977477255,20.6730653908416642,335.121130580225611],"luv":[91.3007301977477255,18.7545890012647547,-8.69718483462634318],"rgb":[1,0.866666666666666696,0.933333333333333348],"xyz":[0.82525372987163,0.791469283095680209,0.918213179544694],"hpluv":[335.121130580225611,108.301670079840079,91.3007301977477255],"hsluv":[335.121130580225611,100.000000000019696,91.3007301977477255]},"#ffddff":{"lch":[91.7717330140538081,28.0468143452174594,307.715012949251673],"luv":[91.7717330140538081,17.1571994583452359,-22.1868046744377736],"rgb":[1,0.866666666666666696,1],"xyz":[0.851424778281461458,0.801937702459612933,1.05604736783647568],"hpluv":[307.715012949251673,155.925616416863875,91.7717330140538081],"hsluv":[307.715012949251673,100.000000000021274,91.7717330140538081]},"#aa5500":{"lch":[45.6948541105979729,81.8101604081173406,31.0178153240564285],"luv":[45.6948541105979729,70.1118895783240674,42.1571498770823254],"rgb":[0.66666666666666663,0.333333333333333315,0],"xyz":[0.198255511194170453,0.150443302049994065,0.0185984173503046732],"hpluv":[31.0178153240564285,227.184802334875343,45.6948541105979729],"hsluv":[31.0178153240564285,100.000000000002132,45.6948541105979729]},"#aa5511":{"lch":[45.7501207141343542,80.2053049231342357,30.0334267749456458],"luv":[45.7501207141343542,69.4364235827854088,40.1431690060082786],"rgb":[0.66666666666666663,0.333333333333333315,0.0666666666666666657],"xyz":[0.199267176693807585,0.150847968249848918,0.0239265223150603029],"hpluv":[30.0334267749456458,222.459100300712947,45.7501207141343542],"hsluv":[30.0334267749456458,95.7485290168496874,45.7501207141343542]},"#aa5522":{"lch":[45.8523093955831129,77.3637164970789826,28.1463245173948593],"luv":[45.8523093955831129,68.2151287979892231,36.4943945464800308],"rgb":[0.66666666666666663,0.333333333333333315,0.133333333333333331],"xyz":[0.201142534832284586,0.151598111505239747,0.0338034085110395],"hpluv":[28.1463245173948593,214.099393521154866,45.8523093955831129],"hsluv":[28.1463245173948593,88.0687786146531835,45.8523093955831129]},"#aa5533":{"lch":[46.0198296754266707,73.057054041475979,24.8605966968797674],"luv":[46.0198296754266707,66.2871018342682845,30.7140566456547255],"rgb":[0.66666666666666663,0.333333333333333315,0.2],"xyz":[0.20423028556474232,0.152833211798222846,0.0500655623686506457],"hpluv":[24.8605966968797674,201.444992058953261,46.0198296754266707],"hsluv":[24.8605966968797674,75.9647480733224683,46.0198296754266707]},"#aa5544":{"lch":[46.260105303202792,67.6400753638857,19.7251402693972757],"luv":[46.260105303202792,63.6711277752059743,22.829088529013422],"rgb":[0.66666666666666663,0.333333333333333315,0.266666666666666663],"xyz":[0.208688280808961207,0.154616409895910439,0.0735443373215372842],"hpluv":[19.7251402693972757,185.539675327038225,46.260105303202792],"hsluv":[19.7251402693972757,59.5831884891410581,46.260105303202792]},"#aa5555":{"lch":[46.5785950143652201,61.8404850960729462,12.1770506300619488],"luv":[46.5785950143652201,60.4491026496292108,13.0442165641410206],"rgb":[0.66666666666666663,0.333333333333333315,0.333333333333333315],"xyz":[0.21465069484832322,0.157001375511655272,0.1049463845955112],"hpluv":[12.1770506300619488,168.471262237657498,46.5785950143652201],"hsluv":[12.1770506300619488,39.4780386186733381,46.5785950143652201]},"#aa5566":{"lch":[46.9791292969753727,56.7719582569154682,1.70455911852653919],"luv":[46.9791292969753727,56.7468364589401801,1.68872621441415594],"rgb":[0.66666666666666663,0.333333333333333315,0.4],"xyz":[0.222235690621831378,0.160035373821058563,0.144894029002655161],"hpluv":[1.70455911852653919,153.34451205140752,46.9791292969753727],"hsluv":[1.70455911852653919,42.9013314457092818,46.9791292969753727]},"#aa5577":{"lch":[47.4641008255870247,53.815805251865207,348.374645401059922],"luv":[47.4641008255870247,52.7118371029350072,-10.8444974129891012],"rgb":[0.66666666666666663,0.333333333333333315,0.466666666666666674],"xyz":[0.231549703642033311,0.163760979029139386,0.193947830909053071],"hpluv":[348.374645401059922,143.874527939012694,47.4641008255870247],"hsluv":[348.374645401059922,46.6096363259647291,47.4641008255870247]},"#aa5588":{"lch":[48.0346061313586716,54.1759936988691209,333.519859036575326],"luv":[48.0346061313586716,48.4923339918738,-24.1564036495598238],"rgb":[0.66666666666666663,0.333333333333333315,0.533333333333333326],"xyz":[0.242690120743977111,0.168217145869916984,0.252620694312625238],"hpluv":[333.519859036575326,143.117248614217317,48.0346061313586716],"hsluv":[333.519859036575326,50.4580944804944309,48.0346061313586716]},"#aa5599":{"lch":[48.6905763376225,58.2309730669685877,319.412334073918828],"luv":[48.6905763376225,44.2212637341432782,-37.885697275903027],"rgb":[0.66666666666666663,0.333333333333333315,0.6],"xyz":[0.255747084853049866,0.173439931513546142,0.321387371953743117],"hpluv":[319.412334073918828,151.756904292295189,48.6905763376225],"hsluv":[319.412334073918828,54.3174516364451492,48.6905763376225]},"#aa55aa":{"lch":[49.4309115490906095,65.3990862514302904,307.715012949244453],"luv":[49.4309115490906095,40.0068668547544135,-51.7348150377284242],"rgb":[0.66666666666666663,0.333333333333333315,0.66666666666666663],"xyz":[0.270804777818302367,0.179463008699647236,0.400691221570741718],"hpluv":[307.715012949244453,167.885190443837445,49.4309115490906095],"hsluv":[307.715012949244453,58.0831627335764651,49.4309115490906095]},"#aa55bb":{"lch":[50.2536225490081137,74.6889496830887651,298.754319252296796],"luv":[50.2536225490081137,35.9294822147829578,-65.4790921786531896],"rgb":[0.66666666666666663,0.333333333333333315,0.733333333333333282],"xyz":[0.287942369925639041,0.186318045542582,0.490949206669383464],"hpluv":[298.754319252296796,188.594188212432869,50.2536225490081137],"hsluv":[298.754319252296796,61.6784311565058445,50.2536225490081137]},"#aa55cc":{"lch":[51.1559779262539394,85.2173265065914194,292.086991032215337],"luv":[51.1559779262539394,32.0428980728004476,-78.9635702082114],"rgb":[0.66666666666666663,0.333333333333333315,0.8],"xyz":[0.307234745369360795,0.194034995720070796,0.59255571733965362],"hpluv":[292.086991032215337,211.383381159177,51.1559779262539394],"hsluv":[292.086991032215337,65.0527897247966536,51.1559779262539394]},"#aa55dd":{"lch":[52.1346521614624407,96.3659410029227,287.126655540846059],"luv":[52.1346521614624407,28.3783197098194826,-92.0927008824589137],"rgb":[0.66666666666666663,0.333333333333333315,0.866666666666666696],"xyz":[0.328753070919994284,0.20264232594032433,0.705885565239659618],"hpluv":[287.126655540846059,234.550526854663673,52.1346521614624407],"hsluv":[287.126655540846059,75.3446722268955256,52.1346521614624407]},"#aa55ee":{"lch":[53.1858694266106227,107.745747725204239,283.388779775386126],"luv":[53.1858694266106227,24.9493252566021582,-104.817352199450397],"rgb":[0.66666666666666663,0.333333333333333315,0.933333333333333348],"xyz":[0.352565251186169049,0.212167198046794375,0.831296381308182841],"hpluv":[283.388779775386126,257.065149407391289,53.1858694266106227],"hsluv":[283.388779775386126,87.5522298773574335,53.1858694266106227]},"#aa55ff":{"lch":[54.3055382240479361,119.125691570750178,280.523377624217346],"luv":[54.3055382240479361,21.7567225446561139,-117.12205350114192],"rgb":[0.66666666666666663,0.333333333333333315,1],"xyz":[0.378736299596000414,0.222635617410727071,0.969130569599964686],"hpluv":[280.523377624217346,278.356033354379861,54.3055382240479361],"hsluv":[280.523377624217346,99.999999999999,54.3055382240479361]},"#886600":{"lch":[45.272583339231268,54.7393681124008964,58.6614018365849361],"luv":[45.272583339231268,28.4696504737342408,46.7533680417607513],"rgb":[0.533333333333333326,0.4,0],"xyz":[0.149042792889247183,0.147375267331133541,0.020596483543415256],"hpluv":[58.6614018365849361,153.427719347991228,45.272583339231268],"hsluv":[58.6614018365849361,100.000000000002288,45.272583339231268]},"#886611":{"lch":[45.3286132830504442,52.7569286908504935,57.8019218571504112],"luv":[45.3286132830504442,28.1114182485843394,44.6434954830448234],"rgb":[0.533333333333333326,0.4,0.0666666666666666657],"xyz":[0.150054458388884315,0.147779933530988394,0.0259245885081708857],"hpluv":[57.8019218571504112,147.688404254652824,45.3286132830504442],"hsluv":[57.8019218571504112,95.5933263309827765,45.3286132830504442]},"#886622":{"lch":[45.4322079122274616,49.2027541487777427,56.0700181971155658],"luv":[45.4322079122274616,27.4639619392241023,40.8245246197174367],"rgb":[0.533333333333333326,0.4,0.133333333333333331],"xyz":[0.151929816527361317,0.148530076786379223,0.0358014747041500853],"hpluv":[56.0700181971155658,137.424731357888106,45.4322079122274616],"hsluv":[56.0700181971155658,87.640709221506242,45.4322079122274616]},"#886633":{"lch":[45.6020177209920377,43.6934420281053448,52.7580970187872822],"luv":[45.6020177209920377,26.4424624059276816,34.7838045385277539],"rgb":[0.533333333333333326,0.4,0.2],"xyz":[0.155017567259819078,0.149765177079362322,0.0520636285617612285],"hpluv":[52.7580970187872822,121.582627853675135,45.6020177209920377],"hsluv":[52.7580970187872822,75.126145239043538,45.6020177209920377]},"#886644":{"lch":[45.8455444844743383,36.5157977851307862,46.6690567683987183],"luv":[45.8455444844743383,25.057552877875338,26.56167411246971],"rgb":[0.533333333333333326,0.4,0.266666666666666663],"xyz":[0.159475562504037938,0.151548375177049915,0.0755424035146478601],"hpluv":[46.6690567683987183,101.07016738030697,45.8455444844743383],"hsluv":[46.6690567683987183,58.2269221932267413,45.8455444844743383]},"#886655":{"lch":[46.1682850891648,28.5288655346450497,35.057100942904512],"luv":[46.1682850891648,23.3531590809093643,16.3867669061227161],"rgb":[0.533333333333333326,0.4,0.333333333333333315],"xyz":[0.165437976543399923,0.153933340792794748,0.106944450788621775],"hpluv":[35.057100942904512,78.4115584201214517,46.1682850891648],"hsluv":[35.057100942904512,37.5458750067509825,46.1682850891648]},"#886666":{"lch":[46.5740725388720946,21.8884171395184417,12.1770506300623786],"luv":[46.5740725388720946,21.3959378301945833,4.61699569417310141],"rgb":[0.533333333333333326,0.4,0.4],"xyz":[0.173022972316908108,0.156967339102198039,0.146892095195765737],"hpluv":[12.1770506300623786,59.6361320849851921,46.5740725388720946],"hsluv":[12.1770506300623786,13.9745942082290213,46.5740725388720946]},"#886677":{"lch":[47.0652698878111053,20.9860757761626395,336.621799391030947],"luv":[47.0652698878111053,19.2632377900225293,-8.32724722389627559],"rgb":[0.533333333333333326,0.4,0.466666666666666674],"xyz":[0.18233698533711,0.160692944310278862,0.195945897102163646],"hpluv":[336.621799391030947,56.5809206524471051,47.0652698878111053],"hsluv":[336.621799391030947,19.7183189325496855,47.0652698878111053]},"#886688":{"lch":[47.6429159175320649,27.8420771343032278,307.715012949247239],"luv":[47.6429159175320649,17.0319546757823481,-22.0248445868429776],"rgb":[0.533333333333333326,0.4,0.533333333333333326],"xyz":[0.193477402439053869,0.16514911115105646,0.254618760505735842],"hpluv":[307.715012949247239,74.1553731862279335,47.6429159175320649],"hsluv":[307.715012949247239,25.6555006249089494,47.6429159175320649]},"#886699":{"lch":[48.306860672000596,39.0046617113806562,292.251886736336132],"luv":[48.306860672000596,14.770249996667463,-36.0999078981538304],"rgb":[0.533333333333333326,0.4,0.6],"xyz":[0.206534366548126569,0.170371896794685618,0.323385438146853721],"hpluv":[292.251886736336132,102.458272059709785,48.306860672000596],"hsluv":[292.251886736336132,31.5854767603208231,48.306860672000596]},"#8866aa":{"lch":[49.0559053000777112,51.7871044207240132,284.005102499462396],"luv":[49.0559053000777112,12.5329093477081912,-50.2476901714407305],"rgb":[0.533333333333333326,0.4,0.66666666666666663],"xyz":[0.221592059513379125,0.176394973980786712,0.402689287763852322],"hpluv":[284.005102499462396,133.958310232957899,49.0559053000777112],"hsluv":[284.005102499462396,39.6059098285329867,49.0559053000777112]},"#8866bb":{"lch":[49.8879495217490074,65.0723394771694501,279.16089377463328],"luv":[49.8879495217490074,10.3599978518109275,-64.242352148271],"rgb":[0.533333333333333326,0.4,0.733333333333333282],"xyz":[0.238729651620715744,0.183250010823721471,0.492947272862494068],"hpluv":[279.16089377463328,165.516042277675325,49.8879495217490074],"hsluv":[279.16089377463328,51.4342030459355897,49.8879495217490074]},"#8866cc":{"lch":[50.800144438276476,78.3702679805165161,276.063171305995638],"luv":[50.800144438276476,8.2778522611756955,-77.9318680982312912],"rgb":[0.533333333333333326,0.4,0.8],"xyz":[0.258022027064437498,0.190966961001210273,0.594553783532764224],"hpluv":[276.063171305995638,195.760791019658512,50.800144438276476],"hsluv":[276.063171305995638,63.370404435102877,50.800144438276476]},"#8866dd":{"lch":[51.7890458420015278,91.4433004674113903,273.951375062119212],"luv":[51.7890458420015278,6.3013441888180548,-91.225929766636682],"rgb":[0.533333333333333326,0.4,0.866666666666666696],"xyz":[0.279540352615071042,0.199574291221463807,0.707883631432770222],"hpluv":[273.951375062119212,224.054313572832513,51.7890458420015278],"hsluv":[273.951375062119212,75.4110532620532,51.7890458420015278]},"#8866ee":{"lch":[52.8507624936088831,104.176067138923727,272.440799986921],"luv":[52.8507624936088831,4.4365578942807,-104.081554170680207],"rgb":[0.533333333333333326,0.4,0.933333333333333348],"xyz":[0.303352532881245751,0.209099163327933851,0.833294447501293445],"hpluv":[272.440799986921,250.124381092910085,52.8507624936088831],"hsluv":[272.440799986921,87.5962217171162365,52.8507624936088831]},"#8866ff":{"lch":[53.9810943197935273,116.520298408763196,271.319576027424205],"luv":[53.9810943197935273,2.6833355157121912,-116.48939716462327],"rgb":[0.533333333333333326,0.4,1],"xyz":[0.329523581291077172,0.219567582691866547,0.97112863579307529],"hpluv":[271.319576027424205,273.904539658900717,53.9810943197935273],"hsluv":[271.319576027424205,99.9999999999990621,53.9810943197935273]},"#ffee00":{"lch":[92.75564548426334,102.358730475882979,79.2433869538170228],"luv":[92.75564548426334,19.1039702538988,100.560171167180329],"rgb":[1,0.933333333333333348,0],"xyz":[0.718122766220146147,0.824102939779910892,0.121241474366986887],"hpluv":[79.2433869538170228,651.393632104361359,92.75564548426334],"hsluv":[79.2433869538170228,100.000000000024428,92.75564548426334]},"#ffee11":{"lch":[92.7734436379168,101.564402459740549,79.2015044483446218],"luv":[92.7734436379168,19.0286516433192254,99.765917344759373],"rgb":[1,0.933333333333333348,0.0666666666666666657],"xyz":[0.719134431719783307,0.824507605979765801,0.12656957933174251],"hpluv":[79.2015044483446218,648.021125158270593,92.7734436379168],"hsluv":[79.2015044483446218,100.000000000024428,92.7734436379168]},"#ffee22":{"lch":[92.8064212727168183,100.098587827824673,79.1224559985664797],"luv":[92.8064212727168183,18.8896613956421291,98.3000914418838079],"rgb":[1,0.933333333333333348,0.133333333333333331],"xyz":[0.721009789858260253,0.825257749235156601,0.136446465527721716],"hpluv":[79.1224559985664797,641.762708667564539,92.8064212727168183],"hsluv":[79.1224559985664797,100.000000000024357,92.8064212727168183]},"#ffee33":{"lch":[92.8606749716073665,97.7038183815635506,78.9881622996309147],"luv":[92.8606749716073665,18.6625824309063972,95.9048702796014396],"rgb":[1,0.933333333333333348,0.2],"xyz":[0.72409754059071807,0.826492849528139728,0.152708619385332867],"hpluv":[78.9881622996309147,631.438241912838748,92.8606749716073665],"hsluv":[78.9881622996309147,100.000000000024599,92.8606749716073665]},"#ffee44":{"lch":[92.9389094487226828,94.2867391890675606,78.7846200921967181],"luv":[92.9389094487226828,18.3385503337116411,92.4861436030564192],"rgb":[1,0.933333333333333348,0.266666666666666663],"xyz":[0.728555535834936929,0.828276047625827294,0.176187394338219505],"hpluv":[78.7846200921967181,616.484076987319668,92.9389094487226828],"hsluv":[78.7846200921967181,100.000000000025381,92.9389094487226828]},"#ffee55":{"lch":[93.0433700241155179,89.7896797607108,78.4929149488566082],"luv":[93.0433700241155179,17.9120631143144244,87.984911129805738],"rgb":[1,0.933333333333333348,0.333333333333333315],"xyz":[0.734517949874298859,0.830661013241572,0.207589441612193393],"hpluv":[78.4929149488566082,596.384103057951847,93.0433700241155179],"hsluv":[78.4929149488566082,100.000000000025906,93.0433700241155179]},"#ffee66":{"lch":[93.1759694096933,84.1867368500463,78.0854442567743661],"luv":[93.1759694096933,17.3805845725397461,82.3730656305550895],"rgb":[1,0.933333333333333348,0.4],"xyz":[0.7421029456478071,0.833695011550975362,0.247537086019337382],"hpluv":[78.0854442567743661,570.62648367707834,93.1759694096933],"hsluv":[78.0854442567743661,100.000000000026517,93.1759694096933]},"#ffee77":{"lch":[93.3383558005883742,77.4816602435733586,77.5195453952684659],"luv":[93.3383558005883742,16.7442947506152713,75.6507519288807515],"rgb":[1,0.933333333333333348,0.466666666666666674],"xyz":[0.751416958668009,0.837420616759056213,0.296590887925735291],"hpluv":[77.5195453952684659,538.663675570032183,93.3383558005883742],"hsluv":[77.5195453952684659,100.00000000002693,93.3383558005883742]},"#ffee88":{"lch":[93.5319535615141433,69.7063855050026433,76.7254067288761235],"luv":[93.5319535615141433,16.0058531534094222,67.8438858336072599],"rgb":[1,0.933333333333333348,0.533333333333333326],"xyz":[0.762557375769952861,0.841876783599833756,0.355263751329307431],"hpluv":[76.7254067288761235,499.867858345774721,93.5319535615141433],"hsluv":[76.7254067288761235,100.000000000028109,93.5319535615141433]},"#ffee99":{"lch":[93.7579894103796647,60.9203426164438397,75.5807218945013517],"luv":[93.7579894103796647,15.1701259512809905,59.0013171304435744],"rgb":[1,0.933333333333333348,0.6],"xyz":[0.775614339879025505,0.847099569243463,0.424030428970425366],"hpluv":[75.5807218945013517,453.479030486808085,93.7579894103796647],"hsluv":[75.5807218945013517,100.000000000029459,93.7579894103796647]},"#ffeeaa":{"lch":[94.0175103342715204,51.2122166590618946,73.8511258956299],"luv":[94.0175103342715204,14.2438643230739057,49.191497886124175],"rgb":[1,0.933333333333333348,0.66666666666666663],"xyz":[0.790672032844278116,0.853122646429564,0.503334278587424],"hpluv":[73.8511258956299,398.552269307706354,94.0175103342715204],"hsluv":[73.8511258956299,100.00000000003169,94.0175103342715204]},"#ffeebb":{"lch":[94.3113965930375855,40.7102572776027571,71.0277189369888],"luv":[94.3113965930375855,13.2353397134719373,38.4987120599845625],"rgb":[1,0.933333333333333348,0.733333333333333282],"xyz":[0.80780962495161468,0.859977683272498794,0.593592263686065658],"hpluv":[71.0277189369888,333.94796839081863,94.3113965930375855],"hsluv":[71.0277189369888,100.000000000032855,94.3113965930375855]},"#ffeecc":{"lch":[94.6403717602024841,29.6267857036886042,65.7803861656043125],"luv":[94.6403717602024841,12.1539519061426287,27.0190281874729799],"rgb":[1,0.933333333333333348,0.8],"xyz":[0.827102000395336434,0.867694633449987651,0.695198774356335814],"hpluv":[65.7803861656043125,258.601677072085806,94.6403717602024841],"hsluv":[65.7803861656043125,100.000000000035726,94.6403717602024841]},"#ffeedd":{"lch":[95.0050109981125814,18.4911495042727,53.4580761074439366],"luv":[95.0050109981125814,11.0098304435300403,14.8561853648264481],"rgb":[1,0.933333333333333348,0.866666666666666696],"xyz":[0.84862032594597,0.876301963670241157,0.808528622256341811],"hpluv":[53.4580761074439366,173.670551799097524,95.0050109981125814],"hsluv":[53.4580761074439366,100.000000000039279,95.0050109981125814]},"#ffeeee":{"lch":[95.4057483293867,10.0393308083340358,12.1770506300655121],"luv":[95.4057483293867,9.81345048674430487,2.11762900985580904],"rgb":[1,0.933333333333333348,0.933333333333333348],"xyz":[0.872432506212144743,0.885826835776711174,0.933939438324865],"hpluv":[12.1770506300655121,102.829227108855335,95.4057483293867],"hsluv":[12.1770506300655121,100.000000000042746,95.4057483293867]},"#ffeeff":{"lch":[95.8428833991312104,14.017983351086059,307.715012949261848],"luv":[95.8428833991312104,8.57528179129596,-11.0891117512266888],"rgb":[1,0.933333333333333348,1],"xyz":[0.898603554621976164,0.896295255140643898,1.07177362661664688],"hpluv":[307.715012949261848,159.207478793902965,95.8428833991312104],"hsluv":[307.715012949261848,100.000000000047876,95.8428833991312104]},"#aa6600":{"lch":[49.5566255632669623,74.0434564420528574,40.5370999312324685],"luv":[49.5566255632669623,56.2719368465296,48.1238253407432595],"rgb":[0.66666666666666663,0.4,0],"xyz":[0.213283568900016929,0.180499417461687406,0.0236077699189200241],"hpluv":[40.5370999312324685,189.593866720893345,49.5566255632669623],"hsluv":[40.5370999312324685,100.000000000002302,49.5566255632669623]},"#aa6611":{"lch":[49.6055800152373934,72.4782904829715449,39.6736286483530876],"luv":[49.6055800152373934,55.7860674256664097,46.2711278500211662],"rgb":[0.66666666666666663,0.4,0.0666666666666666657],"xyz":[0.214295234399654061,0.180904083661542259,0.0289358748836756538],"hpluv":[39.6736286483530876,185.402990863318706,49.6055800152373934],"hsluv":[39.6736286483530876,96.4267217319678878,49.6055800152373934]},"#aa6622":{"lch":[49.6961357673044404,69.6784302133091,38.0044715349972151],"luv":[49.6961357673044404,54.9040042209680124,42.902610147809348],"rgb":[0.66666666666666663,0.4,0.133333333333333331],"xyz":[0.216170592538131062,0.181654226916933087,0.0388127610796548533],"hpluv":[38.0044715349972151,177.916023719914563,49.6961357673044404],"hsluv":[38.0044715349972151,89.9454244119252593,49.6961357673044404]},"#aa6633":{"lch":[49.8446929303716502,65.3554895773238798,35.0519229290669685],"luv":[49.8446929303716502,53.5020897896209959,37.5348692023167061],"rgb":[0.66666666666666663,0.4,0.2],"xyz":[0.219258343270588796,0.182889327209916186,0.055074914937266],"hpluv":[35.0519229290669685,166.380518722129068,49.8446929303716502],"hsluv":[35.0519229290669685,79.6601301034586,49.8446929303716502]},"#aa6644":{"lch":[50.0579996788189163,59.7471791719702878,30.3078082111971625],"luv":[50.0579996788189163,51.5813401714318687,30.1511320703974341],"rgb":[0.66666666666666663,0.4,0.266666666666666663],"xyz":[0.223716338514807683,0.18467252530760378,0.0785536898901526282],"hpluv":[30.3078082111971625,151.454869534606559,50.0579996788189163],"hsluv":[30.3078082111971625,65.6016329960131,50.0579996788189163]},"#aa6655":{"lch":[50.3411543587309183,53.4384070136854916,23.0123473649378063],"luv":[50.3411543587309183,49.1858121787411307,20.8906492114991877],"rgb":[0.66666666666666663,0.4,0.333333333333333315],"xyz":[0.229678752554169696,0.187057490923348613,0.109955737164126544],"hpluv":[23.0123473649378063,134.70064023894011,50.3411543587309183],"hsluv":[23.0123473649378063,48.1262851503794238,50.3411543587309183]},"#aa6666":{"lch":[50.6979081899742283,47.4599132867605107,12.1770506300620198],"luv":[50.6979081899742283,46.3920870859415544,10.0108753362152232],"rgb":[0.66666666666666663,0.4,0.4],"xyz":[0.237263748327677854,0.190091489232751903,0.149903381571270505],"hpluv":[12.1770506300620198,118.788999996072334,50.6979081899742283],"hsluv":[12.1770506300620198,27.8359446414257086,50.6979081899742283]},"#aa6677":{"lch":[51.1308297914663399,43.3502150416948382,357.146673366158041],"luv":[51.1308297914663399,43.29647113668576,-2.15794607701909591],"rgb":[0.66666666666666663,0.4,0.466666666666666674],"xyz":[0.246577761347879787,0.193817094440832727,0.198957183477668414],"hpluv":[357.146673366158041,107.584013476394517,51.1308297914663399],"hsluv":[357.146673366158041,31.9217683762365354,51.1308297914663399]},"#aa6688":{"lch":[51.6414184020027,42.8134625942885876,339.120025752150127],"luv":[51.6414184020027,40.0018640870324234,-15.2592086582212207],"rgb":[0.66666666666666663,0.4,0.533333333333333326],"xyz":[0.257718178449823587,0.198273261281610325,0.257630046881240582],"hpluv":[339.120025752150127,105.201399585535427,51.6414184020027],"hsluv":[339.120025752150127,36.2396804223311,51.6414184020027]},"#aa6699":{"lch":[52.2302006219705675,46.6703467022409342,321.661853982703349],"luv":[52.2302006219705675,36.6065194780657563,-28.949680361091449],"rgb":[0.66666666666666663,0.4,0.6],"xyz":[0.270775142558896342,0.203496046925239482,0.326396724522358461],"hpluv":[321.661853982703349,113.385797667979,52.2302006219705675],"hsluv":[321.661853982703349,40.6514838109423,52.2302006219705675]},"#aa66aa":{"lch":[52.8968256208086274,54.2656136904176165,307.715012949245079],"luv":[52.8968256208086274,33.1961393674155048,-42.9275338250028753],"rgb":[0.66666666666666663,0.4,0.66666666666666663],"xyz":[0.285832835524148843,0.209519124111340577,0.405700574139357117],"hpluv":[307.715012949245079,130.177052782763241,52.8968256208086274],"hsluv":[307.715012949245079,45.0372955528084091,52.8968256208086274]},"#aa66bb":{"lch":[53.6401644756464293,64.2916348467718848,297.653919381785329],"luv":[53.6401644756464293,29.8396642728746109,-56.9474209016772193],"rgb":[0.66666666666666663,0.4,0.733333333333333282],"xyz":[0.302970427631485517,0.216374160954275335,0.495958559237998808],"hpluv":[297.653919381785329,152.091062924306783,53.6401644756464293],"hsluv":[297.653919381785329,49.3013965401631964,53.6401644756464293]},"#aa66cc":{"lch":[54.4584144535918853,75.6506824974921699,290.576693925999962],"luv":[54.4584144535918853,26.5882539678026326,-70.824363839571447],"rgb":[0.66666666666666663,0.4,0.8],"xyz":[0.322262803075207271,0.224091111131764137,0.597565069908269],"hpluv":[290.576693925999962,176.273563499159138,54.4584144535918853],"hsluv":[290.576693925999962,59.8478295858589107,54.4584144535918853]},"#aa66dd":{"lch":[55.3492064676394619,87.6329338161637423,285.539109011475546],"luv":[55.3492064676394619,23.4765185392287,-84.4297587732275],"rgb":[0.66666666666666663,0.4,0.866666666666666696],"xyz":[0.343781128625840759,0.232698441352017671,0.710894917808275],"hpluv":[285.539109011475546,200.907097340780666,55.3492064676394619],"hsluv":[285.539109011475546,72.9499123576365,55.3492064676394619]},"#aa66ee":{"lch":[56.3097127205812171,99.8160041995885337,281.866291349003632],"luv":[56.3097127205812171,20.525011879724925,-97.6829492885499775],"rgb":[0.66666666666666663,0.4,0.933333333333333348],"xyz":[0.367593308892015525,0.242223313458487716,0.836305733876798185],"hpluv":[281.866291349003632,224.934563930918017,56.3097127205812171],"hsluv":[281.866291349003632,86.3166325899195215,56.3097127205812171]},"#aa66ff":{"lch":[57.3367512293125543,111.956114799504135,279.118878442970129],"luv":[57.3367512293125543,17.7431860168323468,-110.541173283857603],"rgb":[0.66666666666666663,0.4,1],"xyz":[0.39376435730184689,0.252691732822420412,0.97413992216858],"hpluv":[279.118878442970129,247.773048158040382,57.3367512293125543],"hsluv":[279.118878442970129,99.9999999999988631,57.3367512293125543]},"#887700":{"lch":[50.0114915023736586,55.8665567864094825,73.357205010908],"luv":[50.0114915023736586,16.0004093344436384,53.5262465366231766],"rgb":[0.533333333333333326,0.466666666666666674,0],"xyz":[0.167496530942664812,0.184282743437969299,0.0267477295612209565],"hpluv":[73.357205010908,141.749463920516746,50.0114915023736586],"hsluv":[73.357205010908,100.000000000002359,50.0114915023736586]},"#887711":{"lch":[50.0597743565714524,53.993823922257576,73.0031869817398302],"luv":[50.0597743565714524,15.783394234863108,51.6354286142242103],"rgb":[0.533333333333333326,0.466666666666666674,0.0666666666666666657],"xyz":[0.168508196442301944,0.184687409637824151,0.0320758345259765862],"hpluv":[73.0031869817398302,136.865669051735267,50.0597743565714524],"hsluv":[73.0031869817398302,96.4507191106164328,50.0597743565714524]},"#887722":{"lch":[50.1490916772086592,50.5946145563497751,72.2920831328592755],"luv":[50.1490916772086592,15.3890953737340599,48.1974145124374616],"rgb":[0.533333333333333326,0.466666666666666674,0.133333333333333331],"xyz":[0.170383554580778945,0.18543755289321498,0.0419527207219557857],"hpluv":[72.2920831328592755,128.020802989304741,50.1490916772086592],"hsluv":[72.2920831328592755,90.012010730737714,50.1490916772086592]},"#887733":{"lch":[50.2956280558193356,45.1970113165044083,70.9372107781068735],"luv":[50.2956280558193356,14.7615306672340392,42.718462569532349],"rgb":[0.533333333333333326,0.466666666666666674,0.2],"xyz":[0.173471305313236679,0.186672653186198079,0.058214874579566929],"hpluv":[70.9372107781068735,114.029917097227894,50.2956280558193356],"hsluv":[70.9372107781068735,79.7918184760720237,50.2956280558193356]},"#887744":{"lch":[50.5060566549544916,37.8272673959478567,68.4411772520018076],"luv":[50.5060566549544916,13.89986571870684,35.1809023711225777],"rgb":[0.533333333333333326,0.466666666666666674,0.266666666666666663],"xyz":[0.177929300557455566,0.188455851283885673,0.0816936495324535605],"hpluv":[68.4411772520018076,95.0387759917387598,50.5060566549544916],"hsluv":[68.4411772520018076,65.8173762074568316,50.5060566549544916]},"#887755":{"lch":[50.7854328179731453,28.7445471843262688,63.5083223958924279],"luv":[50.7854328179731453,12.8220173934607509,25.7263456945161408],"rgb":[0.533333333333333326,0.466666666666666674,0.333333333333333315],"xyz":[0.183891714596817579,0.190840816899630505,0.113095696806427476],"hpluv":[63.5083223958924279,71.82169329487634,50.7854328179731453],"hsluv":[63.5083223958924279,48.4385690265679756,50.7854328179731453]},"#887766":{"lch":[51.1374932189691549,18.6360854649452037,51.6613245975388082],"luv":[51.1374932189691549,11.5601245482137447,14.6173596072111405],"rgb":[0.533333333333333326,0.466666666666666674,0.4],"xyz":[0.191476710370325737,0.193874815209033796,0.153043341213571438],"hpluv":[51.6613245975388082,46.2439140208651,51.1374932189691549],"hsluv":[51.6613245975388082,28.2492665088726049,51.1374932189691549]},"#887777":{"lch":[51.5648179079599629,10.388802862097231,12.1770506300635812],"luv":[51.5648179079599629,10.1550595801770775,2.19134429758843829],"rgb":[0.533333333333333326,0.466666666666666674,0.466666666666666674],"xyz":[0.20079072339052767,0.197600420417114619,0.202097143119969347],"hpluv":[12.1770506300635812,25.5653264810281158,51.5648179079599629],"hsluv":[12.1770506300635812,5.9907484084339373,51.5648179079599629]},"#887788":{"lch":[52.0689409540354262,14.1414171783799034,307.715012949252923],"luv":[52.0689409540354262,8.65079050214889378,-11.1867557182995974],"rgb":[0.533333333333333326,0.466666666666666674,0.533333333333333326],"xyz":[0.21193114049247147,0.202056587257892217,0.260770006523541542],"hpluv":[307.715012949252923,34.4630346227371902,52.0689409540354262],"hsluv":[307.715012949252923,11.9231603633022036,52.0689409540354262]},"#887799":{"lch":[52.6504441343355154,26.1446518461971777,285.73365348909897],"luv":[52.6504441343355154,7.08953673880610147,-25.1650807467009763],"rgb":[0.533333333333333326,0.466666666666666674,0.6],"xyz":[0.224988104601544198,0.207279372901521375,0.329536684164659421],"hpluv":[285.73365348909897,63.0115482025775862,52.6504441343355154],"hsluv":[285.73365348909897,20.7849368541844512,52.6504441343355154]},"#8877aa":{"lch":[53.3090485775123142,39.8165287152511951,277.951975125090712],"luv":[53.3090485775123142,5.50833871717125412,-39.4336678931764482],"rgb":[0.533333333333333326,0.466666666666666674,0.66666666666666663],"xyz":[0.240045797566796726,0.213302450087622469,0.408840533781658],"hpluv":[277.951975125090712,94.7767450693341118,53.3090485775123142],"hsluv":[277.951975125090712,33.2193336653547036,53.3090485775123142]},"#8877bb":{"lch":[54.043710164283695,53.8841311835491,274.190220195010625],"luv":[54.043710164283695,3.93720379281895738,-53.7400969453883732],"rgb":[0.533333333333333326,0.466666666666666674,0.733333333333333282],"xyz":[0.2571833896741334,0.220157486930557228,0.499098518880299769],"hpluv":[274.190220195010625,126.518797380186697,54.043710164283695],"hsluv":[274.190220195010625,46.027457746288988,54.043710164283695]},"#8877cc":{"lch":[54.8527197178713095,67.9360625264533695,272.023364737824068],"luv":[54.8527197178713095,2.39862107173988059,-67.8937052203839215],"rgb":[0.533333333333333326,0.466666666666666674,0.8],"xyz":[0.276475765117855099,0.22787443710804603,0.600705029550569924],"hpluv":[272.023364737824068,157.159823716941304,54.8527197178713095],"hsluv":[272.023364737824068,59.1220253911564413,54.8527197178713095]},"#8877dd":{"lch":[55.7338064566187228,81.7667290312133,270.636302714775695],"luv":[55.7338064566187228,0.90804807322034331,-81.7616867803042595],"rgb":[0.533333333333333326,0.466666666666666674,0.866666666666666696],"xyz":[0.297994090668488698,0.236481767328299564,0.714034877450575922],"hpluv":[270.636302714775695,186.164661983392193,55.7338064566187228],"hsluv":[270.636302714775695,72.4679508704990809,55.7338064566187228]},"#8877ee":{"lch":[56.6842419440431939,95.2620356561917419,269.684203716511661],"luv":[56.6842419440431939,-0.525051666249150784,-95.2605886928551229],"rgb":[0.533333333333333326,0.466666666666666674,0.933333333333333348],"xyz":[0.321806270934663408,0.246006639434769608,0.839445693519099145],"hpluv":[269.684203716511661,213.253830698535069,56.6842419440431939],"hsluv":[269.684203716511661,86.076772525698,56.6842419440431939]},"#8877ff":{"lch":[57.7009414002340577,108.362660778640901,268.997474997449615],"luv":[57.7009414002340577,-1.89596396936046907,-108.346073171359961],"rgb":[0.533333333333333326,0.466666666666666674,1],"xyz":[0.347977319344494829,0.256475058798702304,0.977279881810881],"hpluv":[268.997474997449615,238.306609639193027,57.7009414002340577],"hsluv":[268.997474997449615,99.9999999999988631,57.7009414002340577]},"#ffff00":{"lch":[97.1385593417967357,107.085608846920664,85.8743202181747307],"luv":[97.1385593417967357,7.70421917727499928,106.808111250898],"rgb":[1,1,0],"xyz":[0.76997513864982,0.92780768463926,0.138525598510210984],"hpluv":[85.8743202181747307,1784.23591835690763,97.1385593417967357],"hsluv":[85.8743202181747307,100.000000000072717,97.1385593417967357]},"#ffff11":{"lch":[97.1550055288865337,106.340968495662651,85.8743202181747307],"luv":[97.1550055288865337,7.65064640931757278,106.065400532478591],"rgb":[1,1,0.0666666666666666657],"xyz":[0.770986804149457194,0.928212350839114908,0.143853703474966621],"hpluv":[85.8743202181747307,1782.29032599077573,97.1550055288865337],"hsluv":[85.8743202181747307,100.000000000072447,97.1550055288865337]},"#ffff22":{"lch":[97.1854797367251564,104.966044999604463,85.8743202181747],"luv":[97.1854797367251564,7.5517282439387623,104.694039961158666],"rgb":[1,1,0.133333333333333331],"xyz":[0.77286216228793414,0.928962494094505709,0.1537305896709458],"hpluv":[85.8743202181747,1778.69938503976459,97.1854797367251564],"hsluv":[85.8743202181747,100.00000000007401,97.1854797367251564]},"#ffff33":{"lch":[97.2356193677236291,102.717517786777336,85.8743202181746312],"luv":[97.2356193677236291,7.38995910744871409,102.451339496695468],"rgb":[1,1,0.2],"xyz":[0.775949913020392,0.930197594387488835,0.16999274352855695],"hpluv":[85.8743202181746312,1772.83090468185333,97.2356193677236291],"hsluv":[85.8743202181746312,100.000000000075445,97.2356193677236291]},"#ffff44":{"lch":[97.3079311184623776,99.5042093292491,85.874320218174546],"luv":[97.3079311184623776,7.15877927938833114,99.2463578851537704],"rgb":[1,1,0.266666666666666663],"xyz":[0.780407908264610817,0.931980792485176401,0.193471518481443588],"hpluv":[85.874320218174546,1764.45330998562531,97.3079311184623776],"hsluv":[85.874320218174546,100.000000000077918,97.3079311184623776]},"#ffff55":{"lch":[97.4045015397841212,95.2663481722239283,85.8743202181744323],"luv":[97.4045015397841212,6.8538885331141568,95.0194785612246875],"rgb":[1,1,0.333333333333333315],"xyz":[0.786370322303972746,0.934365758100921151,0.224873565755417504],"hpluv":[85.8743202181744323,1753.42077174454698,97.4045015397841212],"hsluv":[85.8743202181744323,100.000000000080163,97.4045015397841212]},"#ffff66":{"lch":[97.5271149532436539,89.9715947326486258,85.8743202181742333],"luv":[97.5271149532436539,6.47296021391862286,89.7384457454272706],"rgb":[1,1,0.4],"xyz":[0.793955318077481,0.93739975641032447,0.264821210162561438],"hpluv":[85.8743202181742333,1739.66322518688298,97.5271149532436539],"hsluv":[85.8743202181742333,100.000000000084981,97.5271149532436539]},"#ffff77":{"lch":[97.6773170086398608,83.6127156419164663,85.8743202181740202],"luv":[97.6773170086398608,6.01547392080898469,83.3960448134325389],"rgb":[1,1,0.466666666666666674],"xyz":[0.803269331097682837,0.941125361618405321,0.313875012068959403],"hpluv":[85.8743202181740202,1723.18045161093028,97.6773170086398608],"hsluv":[85.8743202181740202,100.00000000009112,97.6773170086398608]},"#ffff88":{"lch":[97.8564527859654589,76.2055692953657342,85.8743202181736791],"luv":[97.8564527859654589,5.48257057790026181,76.0080930657330214],"rgb":[1,1,0.533333333333333326],"xyz":[0.814409748199626748,0.945581528459182863,0.372547875472531542],"hpluv":[85.8743202181736791,1704.03672017478311,97.8564527859654589],"hsluv":[85.8743202181736791,100.000000000099803,97.8564527859654589]},"#ffff99":{"lch":[98.0656913545514612,67.7868897983338741,85.8743202181732102],"luv":[98.0656913545514612,4.87689300155069283,67.6112294162950889],"rgb":[1,1,0.6],"xyz":[0.827466712308699393,0.950804314102812076,0.441314553113649422],"hpluv":[85.8743202181732102,1682.35465810463256,98.0656913545514612],"hsluv":[85.8743202181732102,100.000000000112891,98.0656913545514612]},"#ffffaa":{"lch":[98.3060425431328611,58.4116937234916094,85.8743202181725707],"luv":[98.3060425431328611,4.20239933084915052,58.260327869924204],"rgb":[1,1,0.66666666666666663],"xyz":[0.842524405273952,0.956827391288913143,0.520618402730648078],"hpluv":[85.8743202181725707,1658.30791632356272,98.3060425431328611],"hsluv":[85.8743202181725707,100.000000000127613,98.3060425431328611]},"#ffffbb":{"lch":[98.5783690162300559,48.1503065934375414,85.8743202181715759],"luv":[98.5783690162300559,3.46414909943131732,48.0255317103199246],"rgb":[1,1,0.733333333333333282],"xyz":[0.859661997381288567,0.963682428131847901,0.610876387829289769],"hpluv":[85.8743202181715759,1632.1126639545671,98.5783690162300559],"hsluv":[85.8743202181715759,100.000000000152809,98.5783690162300559]},"#ffffcc":{"lch":[98.8833954570195317,37.0851031688938804,85.8743202181698706],"luv":[98.8833954570195317,2.66806871718659799,36.9890022353654899],"rgb":[1,1,0.8],"xyz":[0.878954372825010322,0.971399378309336758,0.712482898499559925],"hpluv":[85.8743202181698706,1604.018210645404,98.8833954570195317],"hsluv":[85.8743202181698706,100.00000000019709,98.8833954570195317]},"#ffffdd":{"lch":[99.2217159651800245,25.3071072074552177,85.8743202181663889],"luv":[99.2217159651800245,1.82070684164607655,25.2415273271332552],"rgb":[1,1,0.866666666666666696],"xyz":[0.900472698375643921,0.980006708529590265,0.825812746399565922],"hpluv":[85.8743202181663889,1574.29719653830034,99.2217159651800245],"hsluv":[85.8743202181663889,100.000000000286278,99.2217159651800245]},"#ffffee":{"lch":[99.5938003805277248,12.9126149352850259,85.8743202181558161],"luv":[99.5938003805277248,0.928991455386458775,12.8791536733888243],"rgb":[1,1,0.933333333333333348],"xyz":[0.92428487864181863,0.989531580636060282,0.951223562468089145],"hpluv":[85.8743202181558161,1543.23583838085528,99.5938003805277248],"hsluv":[85.8743202181558161,100.000000000556355,99.5938003805277248]},"#ffffff":{"lch":[99.99999999999973,5.29610712429325706e-12,0],"luv":[99.99999999999973,4.97935026544381416e-12,1.80411241501587473e-12],"rgb":[1,1,1],"xyz":[0.95045592705165,0.999999999999993,1.0890577507598711],"hpluv":[0,0,100],"hsluv":[0,0,100]},"#aa7700":{"lch":[53.7507838912622304,69.116848270999057,51.9676330333141223],"luv":[53.7507838912622304,42.5833417137676875,54.4407726194696622],"rgb":[0.66666666666666663,0.466666666666666674,0],"xyz":[0.231737306953434558,0.217406893568523163,0.0297590159367257245],"hpluv":[51.9676330333141223,163.169299961930307,53.7507838912622304],"hsluv":[51.9676330333141223,100.000000000002359,53.7507838912622304]},"#aa7711":{"lch":[53.7940335015026,67.5786316453491906,51.3090056740019378],"luv":[53.7940335015026,42.244752971039,52.7470596476588653],"rgb":[0.66666666666666663,0.466666666666666674,0.0666666666666666657],"xyz":[0.23274897245307169,0.217811559768378016,0.0350871209014813543],"hpluv":[51.3090056740019378,159.40965108533166,53.7940335015026],"hsluv":[51.3090056740019378,97.0120153186068,53.7940335015026]},"#aa7722":{"lch":[53.874065271669366,64.7981771198060272,50.0272013346139],"luv":[53.874065271669366,41.6278947732915157,49.6580520640260588],"rgb":[0.66666666666666663,0.466666666666666674,0.133333333333333331],"xyz":[0.234624330591548691,0.218561703023768844,0.0449640070974605538],"hpluv":[50.0272013346139,152.623836787181489,53.874065271669366],"hsluv":[50.0272013346139,91.5730337049880632,53.874065271669366]},"#aa7733":{"lch":[54.0054384284815,60.4215101577181812,47.7291529037971785],"luv":[54.0054384284815,40.6416884431496115,44.7103125713654705],"rgb":[0.66666666666666663,0.466666666666666674,0.2],"xyz":[0.237712081324006452,0.219796803316751943,0.0612261609550717],"hpluv":[47.7291529037971785,141.968961696257139,54.0054384284815],"hsluv":[47.7291529037971785,82.890357503842381,54.0054384284815]},"#aa7744":{"lch":[54.1942453736720324,54.5501661616690754,43.9413891432679051],"luv":[54.1942453736720324,39.2788485799816911,37.8535689532252277],"rgb":[0.66666666666666663,0.466666666666666674,0.266666666666666663],"xyz":[0.242170076568225312,0.221580001414439537,0.0847049359079583286],"hpluv":[43.9413891432679051,127.726858599491337,54.1942453736720324],"hsluv":[43.9413891432679051,70.9191698542686453,54.1942453736720324]},"#aa7755":{"lch":[54.4451912879813307,47.55778496198932,37.8352816528713],"luv":[54.4451912879813307,37.5600659479400178,29.1716361638701045],"rgb":[0.66666666666666663,0.466666666666666674,0.333333333333333315],"xyz":[0.248132490607587297,0.22396496703018437,0.116106983181932244],"hpluv":[37.8352816528713,110.841250641501858,54.4451912879813307],"hsluv":[37.8352816528713,55.8697139193963039,54.4451912879813307]},"#aa7766":{"lch":[54.7618668139504621,40.2221891209492881,27.9562221290694595],"luv":[54.7618668139504621,35.5285027246357359,18.8560333004309904],"rgb":[0.66666666666666663,0.466666666666666674,0.4],"xyz":[0.255717486381095482,0.226998965339587661,0.156054627589076206],"hpluv":[27.9562221290694595,93.2023334238246264,54.7618668139504621],"hsluv":[27.9562221290694595,38.157009054435612,54.7618668139504621]},"#aa7777":{"lch":[55.1468928183874851,34.0080558607991321,12.1770506300622881],"luv":[55.1468928183874851,33.2428902595124569,7.17343088244713467],"rgb":[0.66666666666666663,0.466666666666666674,0.466666666666666674],"xyz":[0.265031499401297388,0.230724570547668484,0.205108429495474115],"hpluv":[12.1770506300622881,78.2528356679829074,55.1468928183874851],"hsluv":[12.1770506300622881,20.6006796366476941,55.1468928183874851]},"#aa7788":{"lch":[55.6020140468043849,31.2700131437067519,349.739442339375785],"luv":[55.6020140468043849,30.7699397165362107,-5.56996695217490778],"rgb":[0.66666666666666663,0.466666666666666674,0.533333333333333326],"xyz":[0.276171916503241244,0.235180737388446082,0.263781292899046282],"hpluv":[349.739442339375785,71.363619208349732,55.6020140468043849],"hsluv":[349.739442339375785,23.0952607722130772,55.6020140468043849]},"#aa7799":{"lch":[56.1281730235999845,34.0192547961324365,325.92167501088062],"luv":[56.1281730235999845,28.1772086346441704,-19.0618627223027133],"rgb":[0.66666666666666663,0.466666666666666674,0.6],"xyz":[0.289228880612313943,0.240403523032075239,0.332547970540164162],"hpluv":[325.92167501088062,76.9100717288581706,56.1281730235999845],"hsluv":[325.92167501088062,27.5449434619861648,56.1281730235999845]},"#aa77aa":{"lch":[56.7255784680210127,41.7295245342496131,307.715012949246272],"luv":[56.7255784680210127,25.5273831431779215,-33.0106941416859],"rgb":[0.66666666666666663,0.466666666666666674,0.66666666666666663],"xyz":[0.304286573577566499,0.246426600218176334,0.411851820157162818],"hpluv":[307.715012949246272,93.3477446513022642,56.7255784680210127],"hsluv":[307.715012949246272,32.2954766233998285,56.7255784680210127]},"#aa77bb":{"lch":[57.3937746480490176,52.417961949749369,295.873528074876958],"luv":[57.3937746480490176,22.8744713506946127,-47.1635589771554891],"rgb":[0.66666666666666663,0.466666666666666674,0.733333333333333282],"xyz":[0.321424165684903118,0.25328163706111112,0.502109805255804509],"hpluv":[295.873528074876958,115.892323381948941,57.3937746480490176],"hsluv":[295.873528074876958,41.7229864085831679,57.3937746480490176]},"#aa77cc":{"lch":[58.1317139736185,64.5762938068646548,288.286403622885132],"luv":[58.1317139736185,20.2619194712353625,-61.3151885031081],"rgb":[0.66666666666666663,0.466666666666666674,0.8],"xyz":[0.340716541128624872,0.260998587238599922,0.603716315926074665],"hpluv":[288.286403622885132,140.961111207958226,58.1317139736185],"hsluv":[288.286403622885132,55.678510160825347,58.1317139736185]},"#aa77dd":{"lch":[58.9378328182195759,77.3666791836153,283.242275299631103],"luv":[58.9378328182195759,17.7223199365118553,-75.3095108466943088],"rgb":[0.66666666666666663,0.466666666666666674,0.866666666666666696],"xyz":[0.362234866679258416,0.269605917458853428,0.717046163826080662],"hpluv":[283.242275299631103,166.570895286205939,58.9378328182195759],"hsluv":[283.242275299631103,70.0408478070886105,58.9378328182195759]},"#aa77ee":{"lch":[59.8101292792768646,90.3373867943789151,279.736895248195651],"luv":[59.8101292792768646,15.2782276108220607,-89.0360556960445138],"rgb":[0.66666666666666663,0.466666666666666674,0.933333333333333348],"xyz":[0.386047046945433125,0.279130789565323445,0.842456979894603886],"hpluv":[279.736895248195651,191.660275847677298,59.8101292792768646],"hsluv":[279.736895248195651,84.8029379630096685,59.8101292792768646]},"#aa77ff":{"lch":[60.7462409754246551,103.238062985892157,277.202485092995744],"luv":[60.7462409754246551,12.9436026905507742,-102.423438716283115],"rgb":[0.66666666666666663,0.466666666666666674,1],"xyz":[0.412218095355264547,0.289599208929256169,0.980291168186385731],"hpluv":[277.202485092995744,215.655115976047284,60.7462409754246551],"hsluv":[277.202485092995744,99.999999999998721,60.7462409754246551]},"#888800":{"lch":[54.9099926918455452,60.532810441385358,85.8743202181747449],"luv":[54.9099926918455452,4.35500198466006783,60.375948006191166],"rgb":[0.533333333333333326,0.533333333333333326,0],"xyz":[0.189568900667635265,0.228427482887910871,0.0341051861362109063],"hpluv":[85.8743202181747449,139.887458074797593,54.9099926918455452],"hsluv":[85.8743202181747449,100.000000000002331,54.9099926918455452]},"#888811":{"lch":[54.9518410557904673,58.8347385736240369,85.8743202181746739],"luv":[54.9518410557904673,4.23283507550337568,58.6822764576347353],"rgb":[0.533333333333333326,0.533333333333333326,0.0666666666666666657],"xyz":[0.190580566167272397,0.228832149087765724,0.039433291100966536],"hpluv":[85.8743202181746739,135.85978011465275,54.9518410557904673],"hsluv":[85.8743202181746739,97.1207726442580395,54.9518410557904673]},"#888822":{"lch":[55.0292864560463215,55.7361292450240882,85.8743202181745602],"luv":[55.0292864560463215,4.00990721741558787,55.5916967480373643],"rgb":[0.533333333333333326,0.533333333333333326,0.133333333333333331],"xyz":[0.192455924305749398,0.229582292343156552,0.0493101772969457355],"hpluv":[85.8743202181745602,128.523412903997382,55.0292864560463215],"hsluv":[85.8743202181745602,91.8762944675706,55.0292864560463215]},"#888833":{"lch":[55.1564325013520573,50.7686053645684225,85.8743202181742902],"luv":[55.1564325013520573,3.65252126093227947,50.6370455210582335],"rgb":[0.533333333333333326,0.533333333333333326,0.2],"xyz":[0.195543675038207132,0.230817392636139651,0.0655723311545568788],"hpluv":[85.8743202181742902,116.798802852822334,55.1564325013520573],"hsluv":[85.8743202181742902,83.4948353914423,55.1564325013520573]},"#888844":{"lch":[55.3392041906722767,43.8756115710196184,85.8743202181737786],"luv":[55.3392041906722767,3.15660835961073616,43.7619139708837039],"rgb":[0.533333333333333326,0.533333333333333326,0.266666666666666663],"xyz":[0.20000167028242602,0.232600590733827245,0.0890511061074435173],"hpluv":[85.8743202181737786,100.607324583255647,55.3392041906722767],"hsluv":[85.8743202181737786,71.9201892491773833,55.3392041906722767]},"#888855":{"lch":[55.5822005995452173,35.1333862553221152,85.8743202181729],"luv":[55.5822005995452173,2.5276534453655044,35.0423429271758167],"rgb":[0.533333333333333326,0.533333333333333326,0.333333333333333315],"xyz":[0.205964084321788032,0.234985556349572078,0.120453153381417433],"hpluv":[85.8743202181729,80.2090919262666233,55.5822005995452173],"hsluv":[85.8743202181729,57.3383011101545321,55.5822005995452173]},"#888866":{"lch":[55.8889601924437187,24.7258905438507242,85.874320218171],"luv":[55.8889601924437187,1.778891507033598,24.6618168064052092],"rgb":[0.533333333333333326,0.533333333333333326,0.4],"xyz":[0.21354908009529619,0.238019554658975369,0.160400797788561394],"hpluv":[85.874320218171,56.1390732800859524,55.8889601924437187],"hsluv":[85.874320218171,40.1315986813270698,55.8889601924437187]},"#888877":{"lch":[56.2621011123828509,12.9137749110131566,85.8743202181651668],"luv":[56.2621011123828509,0.929074909242871283,12.8803106431998842],"rgb":[0.533333333333333326,0.533333333333333326,0.466666666666666674],"xyz":[0.222863093115498123,0.241745159867056192,0.209454599694959304],"hpluv":[85.8743202181651668,29.1257147579972724,56.2621011123828509],"hsluv":[85.8743202181651668,20.8208192205656601,56.2621011123828509]},"#888888":{"lch":[56.703410756754252,2.95076376078202623e-12,0],"luv":[56.703410756754252,2.78254170310414444e-12,9.82073542272051e-13],"rgb":[0.533333333333333326,0.533333333333333326,0.533333333333333326],"xyz":[0.234003510217441923,0.24620132670783379,0.268127463098531471],"hpluv":[0,6.60335407213460764e-12,56.703410756754252],"hsluv":[0,2.14018342731852893e-12,56.703410756754252]},"#888899":{"lch":[57.2139150634865246,13.7029898302256612,265.874320218188814],"luv":[57.2139150634865246,-0.985854571612734376,-13.6674804207248872],"rgb":[0.533333333333333326,0.533333333333333326,0.6],"xyz":[0.247060474326514651,0.251424112351462947,0.33689414073964935],"hpluv":[265.874320218188814,30.3915601408835876,57.2139150634865246],"hsluv":[265.874320218188814,12.5386286039598396,57.2139150634865246]},"#8888aa":{"lch":[57.7939415002624486,27.9001972781706051,265.874320218182902],"luv":[57.7939415002624486,-2.00726537612613365,-27.8278977623291475],"rgb":[0.533333333333333326,0.533333333333333326,0.66666666666666663],"xyz":[0.262118167291767179,0.25744718953756407,0.416197990356647951],"hpluv":[265.874320218182902,61.2582077856443377,57.7939415002624486],"hsluv":[265.874320218182902,25.8334660761224093,57.7939415002624486]},"#8888bb":{"lch":[58.4431822360017605,42.3326731508362428,265.874320218181083],"luv":[58.4431822360017605,-3.04560244672749647,-42.2229738629578222],"rgb":[0.533333333333333326,0.533333333333333326,0.733333333333333282],"xyz":[0.279255759399103853,0.264302226380498828,0.506455975455289753],"hpluv":[265.874320218181083,91.9138937804104756,58.4431822360017605],"hsluv":[265.874320218181083,39.7348050695490116,58.4431822360017605]},"#8888cc":{"lch":[59.1607600358786812,56.7874726838639603,265.874320218180117],"luv":[59.1607600358786812,-4.0855455816182138,-56.6403157752595448],"rgb":[0.533333333333333326,0.533333333333333326,0.8],"xyz":[0.298548134842825608,0.27201917655798763,0.608062486125559909],"hpluv":[265.874320218180117,121.803038601679276,59.1607600358786812],"hsluv":[265.874320218180117,54.1372084350884322,59.1607600358786812]},"#8888dd":{"lch":[59.9452971965242654,71.1002375720468649,265.874320218179605],"luv":[59.9452971965242654,-5.11527010687093497,-70.9159911059223447],"rgb":[0.533333333333333326,0.533333333333333326,0.866666666666666696],"xyz":[0.320066460393459096,0.280626506778241136,0.721392334025565907],"hpluv":[265.874320218179605,150.506501481916018,59.9452971965242654],"hsluv":[265.874320218179605,68.9826297466640881,59.9452971965242654]},"#8888ee":{"lch":[60.7949865781877747,85.1524606014505,265.874320218179207],"luv":[60.7949865781877747,-6.12625008179143,-84.9317997361231676],"rgb":[0.533333333333333326,0.533333333333333326,0.933333333333333348],"xyz":[0.343878640659633861,0.290151378884711153,0.84680315009408913],"hpluv":[265.874320218179207,177.733282428962553,60.7949865781877747],"hsluv":[265.874320218179207,84.2595641984559194,60.7949865781877747]},"#8888ff":{"lch":[61.7076631467729726,98.8655769196339,265.874320218179],"luv":[61.7076631467729726,-7.11283319838656247,-98.6093804034077408],"rgb":[0.533333333333333326,0.533333333333333326,1],"xyz":[0.370049689069465226,0.300619798248643877,0.984637338385871],"hpluv":[265.874320218179,203.303722842755434,61.7076631467729726],"hsluv":[265.874320218179,99.9999999999986073,61.7076631467729726]},"#aa8800":{"lch":[58.1840377660698493,67.6904417424552634,64.2288134226940173],"luv":[58.1840377660698493,29.4303340948507071,60.9577832467208225],"rgb":[0.66666666666666663,0.533333333333333326,0],"xyz":[0.253809676678405038,0.261551633018464735,0.0371164725117156744],"hpluv":[64.2288134226940173,147.625988392398114,58.1840377660698493],"hsluv":[64.2288134226940173,100.000000000002373,58.1840377660698493]},"#aa8811":{"lch":[58.2222766199063955,66.2027965316335809,63.8264905250604926],"luv":[58.2222766199063955,29.2014551434886229,59.4145208354969085],"rgb":[0.66666666666666663,0.533333333333333326,0.0666666666666666657],"xyz":[0.254821342178042143,0.261956299218319588,0.0424445774764713041],"hpluv":[63.8264905250604926,144.286759049554206,58.2222766199063955],"hsluv":[63.8264905250604926,97.5015111084285877,58.2222766199063955]},"#aa8822":{"lch":[58.2930572278629,63.4916551128893474,63.0419050459203],"luv":[58.2930572278629,28.7832252220538578,56.5925455761676304],"rgb":[0.66666666666666663,0.533333333333333326,0.133333333333333331],"xyz":[0.2566967003165192,0.262706442473710389,0.0523214636724505036],"hpluv":[63.0419050459203,138.209896631886636,58.2930572278629],"hsluv":[63.0419050459203,92.9399945222758106,58.2930572278629]},"#aa8833":{"lch":[58.4093035212624585,59.1585039849960737,61.628621374019076],"luv":[58.4093035212624585,28.1112178941065629,52.0527426967384628],"rgb":[0.66666666666666663,0.533333333333333326,0.2],"xyz":[0.259784451048976905,0.263941542766693515,0.0685836175300616468],"hpluv":[61.628621374019076,128.521114132395894,58.4093035212624585],"hsluv":[61.628621374019076,85.621599137751673,58.4093035212624585]},"#aa8844":{"lch":[58.5764981609594315,53.1878639814319953,59.2736460930020499],"luv":[58.5764981609594315,27.1757201885359478,45.7212106919940453],"rgb":[0.66666666666666663,0.533333333333333326,0.266666666666666663],"xyz":[0.264242446293195821,0.265724740864381082,0.0920623924829482854],"hpluv":[59.2736460930020499,115.22015920662389,58.5764981609594315],"hsluv":[59.2736460930020499,75.4571473133808581,58.5764981609594315]},"#aa8855":{"lch":[58.7989500318507083,45.736161182952344,55.3795129841665315],"luv":[58.7989500318507083,25.9844527075537677,37.6378088793954433],"rgb":[0.66666666666666663,0.533333333333333326,0.333333333333333315],"xyz":[0.270204860332557806,0.268109706480125942,0.123464439756922201],"hpluv":[55.3795129841665315,98.7027982667044483,58.7989500318507083],"hsluv":[55.3795129841665315,62.5553187882680319,58.7989500318507083]},"#aa8866":{"lch":[59.0800404303715112,37.1980666756204,48.681601920545944],"luv":[59.0800404303715112,24.5597583059268025,27.9376884576795419],"rgb":[0.66666666666666663,0.533333333333333326,0.4],"xyz":[0.277789856106066,0.271143704789529261,0.163412084164066163],"hpluv":[48.681601920545944,79.8948730878687883,59.0800404303715112],"hsluv":[48.681601920545944,47.1909371341698645,59.0800404303715112]},"#aa8877":{"lch":[59.4223523155875881,28.4467220316745042,36.2691810942760355],"luv":[59.4223523155875881,22.9350730451589406,16.8285001934390941],"rgb":[0.66666666666666663,0.533333333333333326,0.466666666666666674],"xyz":[0.287103869126267897,0.274869309997610056,0.212465886070464072],"hpluv":[36.2691810942760355,60.7465636644032,59.4223523155875881],"hsluv":[36.2691810942760355,29.7643761063162415,59.4223523155875881]},"#aa8888":{"lch":[59.8277504540149323,21.6376696880998622,12.1770506300627677],"luv":[59.8277504540149323,21.1508320810015036,4.56410471095846049],"rgb":[0.66666666666666663,0.533333333333333326,0.533333333333333326],"xyz":[0.298244286228211697,0.279325476838387654,0.271138749474036211],"hpluv":[12.1770506300627677,45.8930730764781174,59.8277504540149323],"hsluv":[12.1770506300627677,15.9793094134510145,59.8277504540149323]},"#aa8899":{"lch":[60.2974403890441693,21.076671863141442,335.972081494736813],"luv":[60.2974403890441693,19.2503183610400761,-8.58203587880762697],"rgb":[0.66666666666666663,0.533333333333333326,0.6],"xyz":[0.311301250337284396,0.284548262482016812,0.339905427115154146],"hpluv":[335.972081494736813,44.3549898137704872,60.2974403890441693],"hsluv":[335.972081494736813,18.3674189175529285,60.2974403890441693]},"#aa88aa":{"lch":[60.8320193568852119,28.2409959286201691,307.715012949248376],"luv":[60.8320193568852119,17.2759870010776844,-22.3404145928166677],"rgb":[0.66666666666666663,0.533333333333333326,0.66666666666666663],"xyz":[0.326358943302536952,0.290571339668117934,0.419209276732152747],"hpluv":[307.715012949248376,58.9097393716334068,60.8320193568852119],"hsluv":[307.715012949248376,20.7885743891348937,60.8320193568852119]},"#aa88bb":{"lch":[61.4315255818646904,39.5305448534603343,292.718173175904553],"luv":[61.4315255818646904,15.2666424694527869,-36.4635928581008],"rgb":[0.66666666666666663,0.533333333333333326,0.733333333333333282],"xyz":[0.343496535409873627,0.297426376511052692,0.509467261830794493],"hpluv":[292.718173175904553,81.6546320542196185,61.4315255818646904],"hsluv":[292.718173175904553,35.3775178816614826,61.4315255818646904]},"#aa88cc":{"lch":[62.0954889075932783,52.4408733717370339,284.64164926901276],"luv":[62.0954889075932783,13.2556230251873277,-50.737891739849438],"rgb":[0.66666666666666663,0.533333333333333326,0.8],"xyz":[0.362788910853595326,0.305143326688541494,0.611073772501064649],"hpluv":[284.64164926901276,107.164068097081099,62.0954889075932783],"hsluv":[284.64164926901276,50.6369924233865092,62.0954889075932783]},"#aa88dd":{"lch":[62.8229837406334894,65.9589053782665644,279.83800714750987],"luv":[62.8229837406334894,11.2699451472508105,-64.988964717689413],"rgb":[0.66666666666666663,0.533333333333333326,0.866666666666666696],"xyz":[0.384307236404228925,0.313750656908795,0.724403620401070647],"hpluv":[279.83800714750987,133.227600809414753,62.8229837406334894],"hsluv":[279.83800714750987,66.50088929558828,62.8229837406334894]},"#aa88ee":{"lch":[63.6126841134072,79.6308922643202237,276.728713669089302],"luv":[63.6126841134072,9.33022805769535,-79.0823990986816767],"rgb":[0.66666666666666663,0.533333333333333326,0.933333333333333348],"xyz":[0.408119416670403634,0.323275529015265,0.84981443646959387],"hpluv":[276.728713669089302,158.846330872338797,63.6126841134072],"hsluv":[276.728713669089302,82.9476730407324112,63.6126841134072]},"#aa88ff":{"lch":[64.4629200033750323,93.219110130063271,274.584640952303687],"luv":[64.4629200033750323,7.4511637136690565,-92.9208407880221756],"rgb":[0.66666666666666663,0.533333333333333326,1],"xyz":[0.434290465080235055,0.333743948379197741,0.987648624761375715],"hpluv":[274.584640952303687,183.499254977583263,64.4629200033750323],"hsluv":[274.584640952303687,99.999999999998451,64.4629200033750323]},"#889900":{"lch":[59.9037942457991477,67.5360782410098892,95.4734085527772578],"luv":[59.9037942457991477,-6.44184579214223074,67.2281524881211396],"rgb":[0.533333333333333326,0.6,0],"xyz":[0.215438501120102766,0.280166683792846538,0.0427283862870331613],"hpluv":[95.4734085527772578,143.060860652479761,59.9037942457991477],"hsluv":[95.4734085527772578,100.000000000002359,59.9037942457991477]},"#889911":{"lch":[59.9403212197486,66.0293008977046867,95.6505578181906628],"luv":[59.9403212197486,-6.50131434341495318,65.7084582747741166],"rgb":[0.533333333333333326,0.6,0.0666666666666666657],"xyz":[0.216450166619739898,0.280571349992701391,0.048056491251788791],"hpluv":[95.6505578181906628,139.783837686775883,59.9403212197486],"hsluv":[95.6505578181906628,97.642419329775592,59.9403212197486]},"#889922":{"lch":[60.0079397017320275,63.2737960078627495,95.9966659299995655],"luv":[60.0079397017320275,-6.6102508868722456,62.9275602932231308],"rgb":[0.533333333333333326,0.6,0.133333333333333331],"xyz":[0.218325524758216899,0.281321493248092191,0.0579333774477679905],"hpluv":[95.9966659299995655,133.799503075015934,60.0079397017320275],"hsluv":[95.9966659299995655,93.3344688530494864,60.0079397017320275]},"#889933":{"lch":[60.1190111745068521,58.8410136656902196,96.6225595920901696],"luv":[60.1190111745068521,-6.78603238946032139,58.4483930798370039],"rgb":[0.533333333333333326,0.6,0.2],"xyz":[0.221413275490674633,0.282556593541075318,0.0741955313053791338],"hpluv":[96.6225595920901696,124.196009967059197,60.1190111745068521],"hsluv":[96.6225595920901696,86.4129060235578,60.1190111745068521]},"#889944":{"lch":[60.2788030378330859,52.6619605596060651,97.6740140778758104],"luv":[60.2788030378330859,-7.03230554676784081,52.1903129773946],"rgb":[0.533333333333333326,0.6,0.266666666666666663],"xyz":[0.22587127073489352,0.284339791638762884,0.0976743062582657723],"hpluv":[97.6740140778758104,110.859197411007315,60.2788030378330859],"hsluv":[97.6740140778758104,76.7791514013919,60.2788030378330859]},"#889955":{"lch":[60.491478208304315,44.7890969420590679,99.4433583384469557],"luv":[60.491478208304315,-7.34865909500015935,44.1821277711999301],"rgb":[0.533333333333333326,0.6,0.333333333333333315],"xyz":[0.231833684774255533,0.286724757254507745,0.129076353532239674],"hpluv":[99.4433583384469557,93.954467458231008,60.491478208304315],"hsluv":[99.4433583384469557,64.5165507795669555,60.491478208304315]},"#889966":{"lch":[60.7603321241253269,35.3998784596055387,102.614945913325585],"luv":[60.7603321241253269,-7.73125582812020351,34.5453191948634597],"rgb":[0.533333333333333326,0.6,0.4],"xyz":[0.23941868054776369,0.289758755563911063,0.169023997939383636],"hpluv":[102.614945913325585,73.9300429237522394,60.7603321241253269],"hsluv":[102.614945913325585,49.862982431557576,60.7603321241253269]},"#889977":{"lch":[61.0879169406466644,24.8557994274465628,109.198389045907604],"luv":[61.0879169406466644,-8.17358342252196,23.4734594640953418],"rgb":[0.533333333333333326,0.6,0.466666666666666674],"xyz":[0.248732693567965624,0.293484360771991859,0.218077799845781545],"hpluv":[109.198389045907604,51.6311437806165543,61.0879169406466644],"hsluv":[109.198389045907604,33.1759220302134779,61.0879169406466644]},"#889988":{"lch":[61.4761176658877702,14.1684419896747276,127.715012949229816],"luv":[61.4761176658877702,-8.66732250724137,11.2081340539023326],"rgb":[0.533333333333333326,0.6,0.533333333333333326],"xyz":[0.259873110669909424,0.297940527612769457,0.276750663249353712],"hpluv":[127.715012949229816,29.2452265306994263,61.4761176658877702],"hsluv":[127.715012949229816,14.8910328511789984,61.4761176658877702]},"#889999":{"lch":[61.9262069462763094,9.41507553536713537,192.177050630058915],"luv":[61.9262069462763094,-9.20324067004397861,-1.98595279549067061],"rgb":[0.533333333333333326,0.6,0.6],"xyz":[0.272930074778982124,0.303163313256398614,0.345517340890471647],"hpluv":[192.177050630058915,19.2925065058214678,61.9262069462763094],"hsluv":[192.177050630058915,19.2169899754877207,61.9262069462763094]},"#8899aa":{"lch":[62.4388911462841207,18.6148502867865133,238.334617604481764],"luv":[62.4388911462841207,-9.77200531832159669,-15.8436284751369474],"rgb":[0.533333333333333326,0.6,0.66666666666666663],"xyz":[0.28798776774423468,0.309186390442499737,0.424821190507470248],"hpluv":[238.334617604481764,37.8306403353000036,62.4388911462841207],"hsluv":[238.334617604481764,23.6900457250072343,62.4388911462841207]},"#8899bb":{"lch":[63.0143540484962,31.8509402607766567,251.009167860858838],"luv":[63.0143540484962,-10.3648329189902189,-30.1173145226625429],"rgb":[0.533333333333333326,0.6,0.733333333333333282],"xyz":[0.305125359851571354,0.316041427285434495,0.515079175606111939],"hpluv":[251.009167860858838,64.1389868285616132,63.0143540484962],"hsluv":[251.009167860858838,32.2218698989210282,63.0143540484962]},"#8899cc":{"lch":[63.6523012354060143,45.9199042321153357,256.173658840600297],"luv":[63.6523012354060143,-10.9739341944061159,-44.5893526863026821],"rgb":[0.533333333333333326,0.6,0.8],"xyz":[0.324417735295293053,0.323758377462923297,0.616685686276382095],"hpluv":[256.173658840600297,91.543221315317254,63.6523012354060143],"hsluv":[256.173658840600297,48.1563502503440546,63.6523012354060143]},"#8899dd":{"lch":[64.3520063546654,60.2052734177332738,258.898139298145679],"luv":[64.3520063546654,-11.5927562398827622,-59.0786166905309358],"rgb":[0.533333333333333326,0.6,0.866666666666666696],"xyz":[0.345936060845926652,0.332365707683176803,0.730015534176388092],"hpluv":[258.898139298145679,118.716686841439611,64.3520063546654],"hsluv":[258.898139298145679,64.7736147673059435,64.3520063546654]},"#8899ee":{"lch":[65.1123593572591091,74.4513212160393465,260.556144021857],"luv":[65.1123593572591091,-12.2160522582942246,-73.442271874149526],"rgb":[0.533333333333333326,0.6,0.933333333333333348],"xyz":[0.369748241112101361,0.34189057978964682,0.855426350244911315],"hpluv":[260.556144021857,145.093615685215838,65.1123593572591091],"hsluv":[260.556144021857,82.0482136329290626,65.1123593572591091]},"#8899ff":{"lch":[65.9319161385595862,88.5102230179824829,261.65889869963604],"luv":[65.9319161385595862,-12.8398242875011679,-87.5739601191992],"rgb":[0.533333333333333326,0.6,1],"xyz":[0.395919289521932782,0.352358999153579544,0.993260538536693161],"hpluv":[261.65889869963604,170.348009793708229,65.9319161385595862],"hsluv":[261.65889869963604,99.9999999999983373,65.9319161385595862]},"#aa9900":{"lch":[62.7844580943873609,69.6780489210530618,75.8779002673010297],"luv":[62.7844580943873609,17.0006834702273615,67.5722373685362072],"rgb":[0.66666666666666663,0.6,0],"xyz":[0.279679277130872483,0.313290833923400402,0.0457396726625379293],"hpluv":[75.8779002673010297,140.82610179048271,62.7844580943873609],"hsluv":[75.8779002673010297,100.000000000002217,62.7844580943873609]},"#aa9911":{"lch":[62.8183644916567232,68.2796688580209548,75.7117398414304],"luv":[62.8183644916567232,16.8514534980901978,66.1675274916835576],"rgb":[0.66666666666666663,0.6,0.0666666666666666657],"xyz":[0.280690942630509588,0.313695500123255255,0.0510677776272935591],"hpluv":[75.7117398414304,137.925354096716262,62.8183644916567232],"hsluv":[75.7117398414304,97.9039601429264792,62.8183644916567232]},"#aa9922":{"lch":[62.8811408657966098,65.7186920323652259,75.3888160486312415],"luv":[62.8811408657966098,16.5780820569936154,63.5933461751813311],"rgb":[0.66666666666666663,0.6,0.133333333333333331],"xyz":[0.282566300768986645,0.314445643378646056,0.0609446638232727586],"hpluv":[75.3888160486312415,132.619634057532949,62.8811408657966098],"hsluv":[75.3888160486312415,94.0678156084237287,62.8811408657966098]},"#aa9933":{"lch":[62.984284118013818,61.5887344728930373,74.8105333616033477],"luv":[62.984284118013818,16.1369729495721401,59.4371122952427768],"rgb":[0.66666666666666663,0.6,0.2],"xyz":[0.28565405150144435,0.315680743671629183,0.0772068176808839],"hpluv":[74.8105333616033477,124.08189266143988,62.984284118013818],"hsluv":[74.8105333616033477,87.8877322232676335,62.984284118013818]},"#aa9944":{"lch":[63.1327254984845325,55.810649390305,73.8551623649617284],"luv":[63.1327254984845325,15.5190685808424753,53.6095802609072862],"rgb":[0.66666666666666663,0.6,0.266666666666666663],"xyz":[0.290112046745663266,0.317463941769316749,0.10068559263377054],"hpluv":[73.8551623649617284,112.176494362550613,63.1327254984845325],"hsluv":[73.8551623649617284,79.2518346201028407,63.1327254984845325]},"#aa9955":{"lch":[63.330394330910508,48.4114193249398497,72.2912631539462893],"luv":[63.330394330910508,14.725704471349518,46.1174495053405593],"rgb":[0.66666666666666663,0.6,0.333333333333333315],"xyz":[0.296074460785025251,0.319848907385061609,0.132087639907744442],"hpluv":[72.2912631539462893,97.0007181904759,63.330394330910508],"hsluv":[72.2912631539462893,68.2014618333714253,63.330394330910508]},"#aa9966":{"lch":[63.5804407621292285,39.5252766283835086,69.6158026784446662],"luv":[63.5804407621292285,13.7671883687516523,37.0501284339143524],"rgb":[0.66666666666666663,0.6,0.4],"xyz":[0.303659456558533436,0.322882905694464928,0.172035284314888404],"hpluv":[69.6158026784446662,78.8843243984218105,63.5804407621292285],"hsluv":[69.6158026784446662,54.9106459007729129,63.5804407621292285]},"#aa9977":{"lch":[63.8853523521207762,29.4269320044373437,64.5162682653354835],"luv":[63.8853523521207762,12.6610788645847681,26.563911782313685],"rgb":[0.66666666666666663,0.6,0.466666666666666674],"xyz":[0.312973469578735342,0.326608510902545723,0.221089086221286313],"hpluv":[64.5162682653354835,58.4497984351079,63.8853523521207762],"hsluv":[64.5162682653354835,39.6604297676390303,63.8853523521207762]},"#aa9988":{"lch":[64.2470245358341288,18.7498828458428441,52.4386898809200943],"luv":[64.2470245358341288,11.4301164327749429,14.8630597477787205],"rgb":[0.66666666666666663,0.6,0.533333333333333326],"xyz":[0.324113886680679142,0.331064677743323321,0.279761949624858508],"hpluv":[52.4386898809200943,37.0326564248891472,64.2470245358341288],"hsluv":[52.4386898809200943,22.8076315183033955,64.2470245358341288]},"#aa9999":{"lch":[64.6668097656484,10.3324715423982241,12.1770506300641514],"luv":[64.6668097656484,10.0999956892392,2.17946214737001709],"rgb":[0.66666666666666663,0.6,0.6],"xyz":[0.337170850789751841,0.336287463386952479,0.348528627265976387],"hpluv":[12.1770506300641514,20.2750581327120152,64.6668097656484],"hsluv":[12.1770506300641514,9.39861318597140283,64.6668097656484]},"#aa99aa":{"lch":[65.1455571833188,14.2173372068657535,307.715012949255367],"luv":[65.1455571833188,8.69723339065650514,-11.2468132643064216],"rgb":[0.66666666666666663,0.6,0.66666666666666663],"xyz":[0.352228543755004397,0.342310540573053601,0.427832476882975],"hpluv":[307.715012949255367,27.6931773999722353,65.1455571833188],"hsluv":[307.715012949255367,11.6506794595111955,65.1455571833188]},"#aa99bb":{"lch":[65.6836488991384186,26.2061362707181722,286.054514249721478],"luv":[65.6836488991384186,7.24735484809431529,-25.1840708771488],"rgb":[0.66666666666666663,0.6,0.733333333333333282],"xyz":[0.369366135862341072,0.34916557741598836,0.51809046198161679],"hpluv":[286.054514249721478,50.6273330900370553,65.6836488991384186],"hsluv":[286.054514249721478,27.5721610485895,65.6836488991384186]},"#aa99cc":{"lch":[66.2810360009151651,39.8419200501833544,278.33213307587846],"luv":[66.2810360009151651,5.77353773601307907,-39.4213756139487757],"rgb":[0.66666666666666663,0.6,0.8],"xyz":[0.388658511306062771,0.356882527593477161,0.619696972651887],"hpluv":[278.33213307587846,76.2764194246967,66.2810360009151651],"hsluv":[278.33213307587846,44.416066179202609,66.2810360009151651]},"#aa99dd":{"lch":[66.937275739096421,53.9476968390211695,274.567192844176702],"luv":[66.937275739096421,4.29575598209881182,-53.7763932853180151],"rgb":[0.66666666666666663,0.6,0.866666666666666696],"xyz":[0.41017683685669637,0.365489857813730668,0.733026820551892944],"hpluv":[274.567192844176702,102.269045280662851,66.937275739096421],"hsluv":[274.567192844176702,62.1125641321495365,66.937275739096421]},"#aa99ee":{"lch":[67.6515703211096309,68.1578213039093299,272.380002942583644],"luv":[67.6515703211096309,2.83038594926376286,-68.0990273078393358],"rgb":[0.66666666666666663,0.6,0.933333333333333348],"xyz":[0.433989017122871079,0.375014729920200685,0.858437636620416167],"hpluv":[272.380002942583644,127.843056183363871,67.6515703211096309],"hsluv":[272.380002942583644,80.63443597048024,67.6515703211096309]},"#aa99ff":{"lch":[68.4228071241374778,82.2834014236355387,270.968064044661787],"luv":[68.4228071241374778,1.39018638405132466,-82.2716569157370543],"rgb":[0.66666666666666663,0.6,1],"xyz":[0.4601600655327025,0.385483149284133408,0.996271824912198],"hpluv":[270.968064044661787,152.598644218259693,68.4228071241374778],"hsluv":[270.968064044661787,99.9999999999981668,68.4228071241374778]},"#770000":{"lch":[23.4140868272264697,78.7423116347599432,12.177050630061796],"luv":[23.4140868272264697,76.9706458719381317,16.6093743302492847],"rgb":[0.466666666666666674,0,0],"xyz":[0.0760757904266185919,0.0392265794387260461,0.00356605267624767169],"hpluv":[12.177050630061796,426.746789183125429,23.4140868272264697],"hsluv":[12.177050630061796,100.000000000002359,23.4140868272264697]},"#770011":{"lch":[23.5491569362977273,75.7570426868466456,9.89164947332394462],"luv":[23.5491569362977273,74.6308667748156864,13.0139633123970793],"rgb":[0.466666666666666674,0,0.0666666666666666657],"xyz":[0.0770874559262557102,0.0396312456385809,0.00889415764100330228],"hpluv":[9.89164947332394462,408.213135586655085,23.5491569362977273],"hsluv":[9.89164947332394462,99.9999999999965183,23.5491569362977273]},"#770022":{"lch":[23.7971287372198219,70.9964864167640854,5.53723409440817704],"luv":[23.7971287372198219,70.6651956613751224,6.85063542055327357],"rgb":[0.466666666666666674,0,0.133333333333333331],"xyz":[0.0789628140647327392,0.0403813888939717203,0.0187710438369825],"hpluv":[5.53723409440817704,378.574731225432288,23.7971287372198219],"hsluv":[5.53723409440817704,99.9999999999967741,23.7971287372198219]},"#770033":{"lch":[24.198804347572846,65.0463245726941182,358.140059561726389],"luv":[24.198804347572846,65.0120550988218895,-2.11116845467566527],"rgb":[0.466666666666666674,0,0.2],"xyz":[0.0820505647971904728,0.0416164891869548331,0.0350331976945936416],"hpluv":[358.140059561726389,341.089366306392606,24.198804347572846],"hsluv":[358.140059561726389,99.9999999999971578,24.198804347572846]},"#770044":{"lch":[24.764944554878376,59.7650645123016702,347.391874641304071],"luv":[24.764944554878376,58.3238787679626398,-13.0456161839744915],"rgb":[0.466666666666666674,0,0.266666666666666663],"xyz":[0.0865085600414093464,0.0433996872846424062,0.0585119726474802801],"hpluv":[347.391874641304071,306.231145677972847,24.764944554878376],"hsluv":[347.391874641304071,99.9999999999975557,24.764944554878376]},"#770055":{"lch":[25.4983947844981387,57.0853266397623571,333.997796644431901],"luv":[25.4983947844981387,51.3069893372134587,-25.0265331742018731],"rgb":[0.466666666666666674,0,0.333333333333333315],"xyz":[0.0924709740807713454,0.0457846529003872391,0.0899140199214541885],"hpluv":[333.997796644431901,284.086748448009075,25.4983947844981387],"hsluv":[333.997796644431901,99.999999999998,25.4983947844981387]},"#770066":{"lch":[26.3955149445472088,58.0812929265372375,320.022905340944305],"luv":[26.3955149445472088,44.5077732621065394,-37.3161453966930949],"rgb":[0.466666666666666674,0,0.4],"xyz":[0.100055969854279517,0.0488186512097905506,0.129861664328598164],"hpluv":[320.022905340944305,279.219318659546161,26.3955149445472088],"hsluv":[320.022905340944305,99.9999999999984,26.3955149445472088]},"#770077":{"lch":[27.4476614837194361,62.5213221502200156,307.715012949243601],"luv":[27.4476614837194361,38.2464397320582776,-49.4583215569799322],"rgb":[0.466666666666666674,0,0.466666666666666674],"xyz":[0.109369982874481436,0.052544256417871367,0.178915466234996073],"hpluv":[307.715012949243601,289.04278373048345,27.4476614837194361],"hsluv":[307.715012949243601,99.9999999999988631,27.4476614837194361]},"#770088":{"lch":[28.6427236217895711,69.3985842918787341,298.067280282401043],"luv":[28.6427236217895711,32.6525926425722872,-61.2370124633397808],"rgb":[0.466666666666666674,0,0.533333333333333326],"xyz":[0.120510399976425264,0.0570004232586489579,0.237588329638568241],"hpluv":[298.067280282401043,307.450798390810235,28.6427236217895711],"hsluv":[298.067280282401043,99.9999999999991473,28.6427236217895711]},"#770099":{"lch":[29.9665727349335924,77.70857748467688,290.909274437861086],"luv":[29.9665727349335924,27.7333531267432782,-72.5912125469701],"rgb":[0.466666666666666674,0,0.6],"xyz":[0.133567364085497964,0.0622232089022781223,0.30635500727968612],"hpluv":[290.909274437861086,329.057057444315717,29.9665727349335924],"hsluv":[290.909274437861086,99.9999999999993605,29.9665727349335924]},"#7700aa":{"lch":[31.4042918618800115,86.7647813143177,285.668616902051383],"luv":[31.4042918618800115,23.4328336498598695,-83.5405864455078415],"rgb":[0.466666666666666674,0,0.66666666666666663],"xyz":[0.14862505705075052,0.0682462860883792238,0.385658856896684721],"hpluv":[285.668616902051383,350.585377409449279,31.4042918618800115],"hsluv":[285.668616902051383,99.9999999999996447,31.4042918618800115]},"#7700bb":{"lch":[32.9411141237069387,96.170393631615,281.802895608829544],"luv":[32.9411141237069387,19.6712233173334745,-94.1370680681067853],"rgb":[0.466666666666666674,0,0.733333333333333282],"xyz":[0.165762649158087166,0.0751013229313139824,0.475916841995326467],"hpluv":[281.802895608829544,370.460950364720645,32.9411141237069387],"hsluv":[281.802895608829544,99.9999999999998295,32.9411141237069387]},"#7700cc":{"lch":[34.5630635499026226,105.713400517707811,278.906152205018032],"luv":[34.5630635499026226,16.3661753747823724,-104.438840249301762],"rgb":[0.466666666666666674,0,0.8],"xyz":[0.185055024601808893,0.082818273108802784,0.577523352665596623],"hpluv":[278.906152205018032,388.112061604616713,34.5630635499026226],"hsluv":[278.906152205018032,99.9999999999998721,34.5630635499026226]},"#7700dd":{"lch":[36.2573361534597964,115.285120662302717,276.696107756350386],"luv":[36.2573361534597964,13.4426218553338188,-114.498711624961956],"rgb":[0.466666666666666674,0,0.866666666666666696],"xyz":[0.206573350152442436,0.091425603329056318,0.690853200565602621],"hpluv":[276.696107756350386,403.475057258468723,36.2573361534597964],"hsluv":[276.696107756350386,100.000000000000156,36.2573361534597964]},"#7700ee":{"lch":[38.012479203832,124.831519574090535,274.979891409884715],"luv":[38.012479203832,10.8361388436516783,-124.360308676593633],"rgb":[0.466666666666666674,0,0.933333333333333348],"xyz":[0.230385530418617201,0.100950475435526349,0.816264016634125844],"hpluv":[274.979891409884715,416.713325299391272,38.012479203832],"hsluv":[274.979891409884715,100.000000000000156,38.012479203832]},"#7700ff":{"lch":[39.8184284160989037,134.326708962856742,273.625091115001112],"luv":[39.8184284160989037,8.49315165227522861,-134.057939398617776],"rgb":[0.466666666666666674,0,1],"xyz":[0.256556578828448567,0.111418894799459045,0.954098204925907689],"hpluv":[273.625091115001112,428.072753406140123,39.8184284160989037],"hsluv":[273.625091115001112,100.000000000000313,39.8184284160989037]},"#771100":{"lch":[24.7134353555624457,74.5310598854495794,14.479461840222152],"luv":[24.7134353555624457,72.1637543524892351,18.6352205622059],"rgb":[0.466666666666666674,0.0666666666666666657,0],"xyz":[0.078080190687547,0.0432353799605829231,0.00423418609655712257],"hpluv":[14.479461840222152,382.686818993669249,24.7134353555624457],"hsluv":[14.479461840222152,100.000000000002174,24.7134353555624457]},"#771111":{"lch":[24.8400617115613187,71.7342088143168723,12.1770506300618244],"luv":[24.8400617115613187,70.1202221387804912,15.1311321924069837],"rgb":[0.466666666666666674,0.0666666666666666657,0.0666666666666666657],"xyz":[0.0790918561871841175,0.043640046160437776,0.00956229106131275403],"hpluv":[12.1770506300618244,366.448517223619376,24.8400617115613187],"hsluv":[12.1770506300618244,85.8702458957174173,24.8400617115613187]},"#771122":{"lch":[25.0727380413203562,67.2476760425649616,7.76714475492354417],"luv":[25.0727380413203562,66.6307123231625,9.0883501491595],"rgb":[0.466666666666666674,0.0666666666666666657,0.133333333333333331],"xyz":[0.0809672143256611465,0.0443901894158286,0.0194391772572919501],"hpluv":[7.76714475492354417,340.341449223453765,25.0727380413203562],"hsluv":[7.76714475492354417,86.6206298981217,25.0727380413203562]},"#771133":{"lch":[25.4501908259833556,61.6001849310061189,0.209311103178295294],"luv":[25.4501908259833556,61.599773884646936,0.225035318388215971],"rgb":[0.466666666666666674,0.0666666666666666657,0.2],"xyz":[0.0840549650581188801,0.0456252897088117101,0.0357013311149031],"hpluv":[0.209311103178295294,307.135699817562568,25.4501908259833556],"hsluv":[0.209311103178295294,87.6964449022470802,25.4501908259833556]},"#771144":{"lch":[25.9833113937366775,56.5829308746863688,349.098656617234155],"luv":[25.9833113937366775,55.5618510799655,-10.7008771106518541],"rgb":[0.466666666666666674,0.0666666666666666657,0.266666666666666663],"xyz":[0.0885129603023377537,0.0474084878064992832,0.0591801060677897353],"hpluv":[349.098656617234155,276.331419289390624,25.9833113937366775],"hsluv":[349.098656617234155,88.9762099121112442,25.9833113937366775]},"#771155":{"lch":[26.6758393728738312,54.157242934368746,335.112354986374442],"luv":[26.6758393728738312,49.127918835603694,-22.7915456504066185],"rgb":[0.466666666666666674,0.0666666666666666657,0.333333333333333315],"xyz":[0.0944753743416997527,0.0497934534222441161,0.0905821533417636438],"hpluv":[335.112354986374442,257.618934567198892,26.6758393728738312],"hsluv":[335.112354986374442,90.3225181656420375,26.6758393728738312]},"#771166":{"lch":[27.5255776115618076,55.4731266930874796,320.490705765847224],"luv":[27.5255776115618076,42.7987039146097388,-35.2921907557026557],"rgb":[0.466666666666666674,0.0666666666666666657,0.4],"xyz":[0.102060370115207924,0.0528274517316474276,0.130529797748907606],"hpluv":[320.490705765847224,255.732268141411282,27.5255776115618076],"hsluv":[320.490705765847224,91.6238582413064364,27.5255776115618076]},"#771177":{"lch":[28.525624322061,60.3055315504910538,307.715012949243658],"luv":[28.525624322061,36.8909645322892956,-47.7054909990940672],"rgb":[0.466666666666666674,0.0666666666666666657,0.466666666666666674],"xyz":[0.111374383135409843,0.056553056939728244,0.179583599655305515],"hpluv":[307.715012949243658,268.263334170626,28.525624322061],"hsluv":[307.715012949243658,92.8109433172232201,28.525624322061]},"#771188":{"lch":[29.665668786552871,67.5901402176946,297.828537901307072],"luv":[29.665668786552871,31.5529142063876336,-59.77324367751811],"rgb":[0.466666666666666674,0.0666666666666666657,0.533333333333333326],"xyz":[0.122514800237353672,0.0610092237805058418,0.238256463058877682],"hpluv":[297.828537901307072,289.113605882780575,29.665668786552871],"hsluv":[297.828537901307072,93.8529472884676892,29.665668786552871]},"#771199":{"lch":[30.9332504381216253,76.2730393291315494,290.583951381139741],"luv":[30.9332504381216253,26.816032696200331,-71.4036197887723461],"rgb":[0.466666666666666674,0.0666666666666666657,0.6],"xyz":[0.135571764346426371,0.066232009424135,0.307023140699995589],"hpluv":[290.583951381139741,312.885056330098905,30.9332504381216253],"hsluv":[290.583951381139741,94.745562802664864,30.9332504381216253]},"#7711aa":{"lch":[32.3148680584756391,85.6471240548678452,285.332056603477554],"luv":[32.3148680584756391,22.6461849228904,-82.5989114172104166],"rgb":[0.466666666666666674,0.0666666666666666657,0.66666666666666663],"xyz":[0.150629457311678927,0.0722550866102361078,0.38632699031699419],"hpluv":[285.332056603477554,336.317699636744408,32.3148680584756391],"hsluv":[285.332056603477554,95.4992611083078771,32.3148680584756391]},"#7711bb":{"lch":[33.796865882550442,95.3131880713117,281.486339493443666],"luv":[33.796865882550442,18.9801244444786903,-93.4042755787407],"rgb":[0.466666666666666674,0.0666666666666666657,0.733333333333333282],"xyz":[0.167767049419015574,0.0791101234531708664,0.476584975415635936],"hpluv":[281.486339493443666,357.862255189103962,33.796865882550442],"hsluv":[281.486339493443666,96.130904738193,33.796865882550442]},"#7711cc":{"lch":[35.36607449089243,105.064609202725904,278.619980375929231],"luv":[35.36607449089243,15.7470979978009513,-103.877817707002151],"rgb":[0.466666666666666674,0.0666666666666666657,0.8],"xyz":[0.1870594248627373,0.086827073630659668,0.578191486085906092],"hpluv":[278.619980375929231,376.971848031202455,35.36607449089243],"hsluv":[278.619980375929231,96.6587778670915441,35.36607449089243]},"#7711dd":{"lch":[37.0102245888209,114.800572621107989,276.441726024966442],"luv":[37.0102245888209,12.8797770828984923,-114.075776641796878],"rgb":[0.466666666666666674,0.0666666666666666657,0.866666666666666696],"xyz":[0.208577750413370844,0.0954344038509132,0.69152133398591209],"hpluv":[276.441726024966442,393.605954910771402,37.0102245888209],"hsluv":[276.441726024966442,97.1000737310191084,37.0102245888209]},"#7711ee":{"lch":[38.7181742300654648,124.475046910670883,274.755182332196796],"luv":[38.7181742300654648,10.3187754184265525,-124.046604859938796],"rgb":[0.466666666666666674,0.0666666666666666657,0.933333333333333348],"xyz":[0.232389930679545609,0.104959275957383219,0.816932150054435313],"hpluv":[274.755182332196796,407.949828918098,38.7181742300654648],"hsluv":[274.755182332196796,97.4698666617264706,38.7181742300654648]},"#7711ff":{"lch":[40.4799968781786,134.069342311184641,273.42679883886251],"luv":[40.4799968781786,8.01376323316973682,-133.829623576382744],"rgb":[0.466666666666666674,0.0666666666666666657,1],"xyz":[0.258560979089377,0.115427695321315929,0.954766338346217158],"hpluv":[273.42679883886251,420.269946860795244,40.4799968781786],"hsluv":[273.42679883886251,99.99999999999946,40.4799968781786]},"#772200":{"lch":[26.9238486490213944,67.8779226750429814,18.9619118830866213],"luv":[26.9238486490213944,64.1945131058521241,22.0562207502031953],"rgb":[0.466666666666666674,0.133333333333333331,0],"xyz":[0.0817958144223149414,0.0506666274301188907,0.00547272734147973266],"hpluv":[18.9619118830866213,319.912145739235086,26.9238486490213944],"hsluv":[18.9619118830866213,100.000000000002203,26.9238486490213944]},"#772211":{"lch":[27.0378210495853537,65.3114997865878451,16.6506371445360628],"luv":[27.0378210495853537,62.5729698674152957,18.7140440938083152],"rgb":[0.466666666666666674,0.133333333333333331,0.0666666666666666657],"xyz":[0.0828074799219520596,0.0510712936299737436,0.0108008323062353633],"hpluv":[16.6506371445360628,306.518925183772069,27.0378210495853537],"hsluv":[16.6506371445360628,87.77659617077137,27.0378210495853537]},"#772222":{"lch":[27.2475131582451553,61.1491638550902934,12.1770506300618262],"luv":[27.2475131582451553,59.7733358183195094,12.8983939049434628],"rgb":[0.466666666666666674,0.133333333333333331,0.133333333333333331],"xyz":[0.0846828380604290887,0.0518214368853645649,0.0206777185022145593],"hpluv":[12.1770506300618262,284.775733052529233,27.2475131582451553],"hsluv":[12.1770506300618262,66.7317810633447,27.2475131582451553]},"#772233":{"lch":[27.5884028886125066,55.830319472153235,4.36926883706767555],"luv":[27.5884028886125066,55.668063043001986,4.25339034219168255],"rgb":[0.466666666666666674,0.133333333333333331,0.2],"xyz":[0.0877705887928868222,0.0530565371783476777,0.0369398723598257],"hpluv":[4.36926883706767555,256.792821962959806,27.5884028886125066],"hsluv":[4.36926883706767555,69.0869865520346,27.5884028886125066]},"#772244":{"lch":[28.0713586292933357,51.0577981227000137,352.597218961633928],"luv":[28.0713586292933357,50.6322267647614197,-6.57847717790113862],"rgb":[0.466666666666666674,0.133333333333333331,0.266666666666666663],"xyz":[0.0922285840371057,0.0548397352760352508,0.0604186473127123411],"hpluv":[352.597218961633928,230.801153887638264,28.0713586292933357],"hsluv":[352.597218961633928,71.9536276136468871,28.0713586292933357]},"#772255":{"lch":[28.7011983995690869,48.8793621784160877,337.425357822166575],"luv":[28.7011983995690869,45.134235573623549,-18.7641367015226166],"rgb":[0.466666666666666674,0.133333333333333331,0.333333333333333315],"xyz":[0.0981909980764677,0.0572247008917800837,0.0918206945866862495],"hpluv":[337.425357822166575,216.105005327694982,28.7011983995690869],"hsluv":[337.425357822166575,75.0482997779786416,28.7011983995690869]},"#772266":{"lch":[29.4776386596593341,50.6214045611569148,321.457127980188602],"luv":[29.4776386596593341,39.5931335065919541,-31.5421999688275427],"rgb":[0.466666666666666674,0.133333333333333331,0.4],"xyz":[0.105775993849975866,0.0602586992011833952,0.131768338993830225],"hpluv":[321.457127980188602,217.911839443782668,29.4776386596593341],"hsluv":[321.457127980188602,78.1196257410634871,29.4776386596593341]},"#772277":{"lch":[30.3962065887853328,56.0773495547330114,307.715012949243828],"luv":[30.3962065887853328,34.3044404103525125,-44.3607315225559375],"rgb":[0.466666666666666674,0.133333333333333331,0.466666666666666674],"xyz":[0.115090006870177786,0.0639843044092642116,0.180822140900228134],"hpluv":[307.715012949243828,234.103236488433623,30.3962065887853328],"hsluv":[307.715012949243828,80.9925899090149,30.3962065887853328]},"#772288":{"lch":[31.4492100235983827,64.0564791390884,297.353574907339521],"luv":[31.4492100235983827,29.432687880373738,-56.8941948166328118],"rgb":[0.466666666666666674,0.133333333333333331,0.533333333333333326],"xyz":[0.126230423972121614,0.0684404712500418094,0.239495004303800302],"hpluv":[297.353574907339521,258.459589193709576,31.4492100235983827],"hsluv":[297.353574907339521,83.5725358287189692,31.4492100235983827]},"#772299":{"lch":[32.6267183371791276,73.3979299617999885,289.947447059718741],"luv":[32.6267183371791276,25.040297814612174,-68.9944896932561136],"rgb":[0.466666666666666674,0.133333333333333331,0.6],"xyz":[0.139287388081194341,0.073663256893670967,0.308261681944918209],"hpluv":[289.947447059718741,285.462946683821,32.6267183371791276],"hsluv":[289.947447059718741,85.8272099061853169,32.6267183371791276]},"#7722aa":{"lch":[33.91747454857272,83.3484305918169213,284.681710760769079],"luv":[33.91747454857272,21.1245907707188039,-80.6269963900962],"rgb":[0.466666666666666674,0.133333333333333331,0.66666666666666663],"xyz":[0.154345081046446869,0.0796863340797720754,0.38756553156191681],"hpluv":[284.681710760769079,311.826661765562392,33.91747454857272],"hsluv":[284.681710760769079,87.7639475735253,33.91747454857272]},"#7722bb":{"lch":[35.3096729107126137,93.4985765466947,280.880145280973409],"luv":[35.3096729107126137,17.6483381470917493,-91.8178630599952186],"rgb":[0.466666666666666674,0.133333333333333331,0.733333333333333282],"xyz":[0.171482673153783516,0.086541370922706834,0.477823516660558556],"hpluv":[280.880145280973409,336.008784107710085,35.3096729107126137],"hsluv":[280.880145280973409,89.410850129911168,35.3096729107126137]},"#7722cc":{"lch":[36.7915673195940158,103.646851370476796,278.075561058441508],"luv":[36.7915673195940158,14.5601992392030191,-102.619054746808203],"rgb":[0.466666666666666674,0.133333333333333331,0.8],"xyz":[0.19077504859750527,0.0942583211001956356,0.579430027330828712],"hpluv":[278.075561058441508,357.476214898523438,36.7915673195940158],"hsluv":[278.075561058441508,90.8041771911133395,36.7915673195940158]},"#7722dd":{"lch":[38.351906528896663,113.703099806952181,275.960131804992216],"luv":[38.351906528896663,11.8065226659589069,-113.088465053903391],"rgb":[0.466666666666666674,0.133333333333333331,0.866666666666666696],"xyz":[0.212293374148138814,0.10286565132044917,0.69275987523083471],"hpluv":[275.960131804992216,376.205095027198126,38.351906528896663],"hsluv":[275.960131804992216,91.9810564333708101,38.351906528896663]},"#7722ee":{"lch":[39.9802139341708269,123.633267676123751,274.331320845995606],"luv":[39.9802139341708269,9.33725773346982812,-123.280170726255989],"rgb":[0.466666666666666674,0.133333333333333331,0.933333333333333348],"xyz":[0.236105554414313523,0.112390523426919187,0.818170691299357933],"hpluv":[274.331320845995606,392.400507860275241,39.9802139341708269],"hsluv":[274.331320845995606,92.975835565241681,39.9802139341708269]},"#7722ff":{"lch":[41.6669409214524222,133.430100966175758,273.053819065229],"luv":[41.6669409214524222,7.10835060884393233,-133.240621416539511],"rgb":[0.466666666666666674,0.133333333333333331,1],"xyz":[0.262276602824144944,0.122858942790851897,0.956004879591139778],"hpluv":[273.053819065229,406.351179140502,41.6669409214524222],"hsluv":[273.053819065229,99.9999999999994,41.6669409214524222]},"#eeaa00":{"lch":[74.1441199778221716,94.3993067628715323,52.9277228913731435],"luv":[74.1441199778221716,56.9059790518510553,75.3189130661151438],"rgb":[0.933333333333333348,0.66666666666666663,0],"xyz":[0.496332043879122442,0.469286695915611562,0.0644413600602487119],"hpluv":[52.9277228913731435,161.559096825574699,74.1441199778221716],"hsluv":[52.9277228913731435,100.00000000000226,74.1441199778221716]},"#eeaa11":{"lch":[74.170022976797469,93.4032488378738748,52.6298301838218165],"luv":[74.170022976797469,56.6922374254564474,74.2304325001913412],"rgb":[0.933333333333333348,0.66666666666666663,0.0666666666666666657],"xyz":[0.497343709378759546,0.469691362115466415,0.0697694650250043485],"hpluv":[52.6298301838218165,159.798572537124,74.170022976797469],"hsluv":[52.6298301838218165,98.6103970010943698,74.170022976797469]},"#eeaa22":{"lch":[74.2180009061856794,91.5777923210439866,52.06484069365154],"luv":[74.2180009061856794,56.2992155036066038,72.2280442769616],"rgb":[0.933333333333333348,0.66666666666666663,0.133333333333333331],"xyz":[0.499219067517236603,0.470441505370857216,0.0796463512209835411],"hpluv":[52.06484069365154,156.574215350823607,74.2180009061856794],"hsluv":[52.06484069365154,96.0561964998804427,74.2180009061856794]},"#eeaa33":{"lch":[74.296884894391,88.6315089581908353,51.0969321655322659],"luv":[74.296884894391,55.6610065739707096,68.9738843866158646],"rgb":[0.933333333333333348,0.66666666666666663,0.2],"xyz":[0.502306818249694365,0.471676605663840343,0.0959085050785946913],"hpluv":[51.0969321655322659,151.375944062314744,74.296884894391],"hsluv":[51.0969321655322659,91.9112466174575786,74.296884894391]},"#eeaa44":{"lch":[74.4105324975616,84.5080331915566,49.6113532778883268],"luv":[74.4105324975616,54.7585847399730952,64.3669563610119582],"rgb":[0.933333333333333348,0.66666666666666663,0.266666666666666663],"xyz":[0.506764813493913224,0.473459803761527909,0.11938728003148133],"hpluv":[49.6113532778883268,144.112916810009352,74.4105324975616],"hsluv":[49.6113532778883268,86.056132752536,74.4105324975616]},"#eeaa55":{"lch":[74.5620870475656545,79.2349762990306203,47.4460085751506284],"luv":[74.5620870475656545,53.5853993814341081,58.3676832008958897],"rgb":[0.933333333333333348,0.66666666666666663,0.333333333333333315],"xyz":[0.512727227533275154,0.475844769377272769,0.150789327305455245],"hpluv":[47.4460085751506284,134.846041865267,74.5620870475656545],"hsluv":[47.4460085751506284,78.4547380743125302,74.5620870475656545]},"#eeaa66":{"lch":[74.7541548019056705,72.9335579755352512,44.3584242628533616],"luv":[74.7541548019056705,52.1460491859645643,50.9911113162453518],"rgb":[0.933333333333333348,0.66666666666666663,0.4],"xyz":[0.520312223306783395,0.478878767686676088,0.190736971712599179],"hpluv":[44.3584242628533616,123.803063546095515,74.7541548019056705],"hsluv":[44.3584242628533616,69.1456590086766,74.7541548019056705]},"#eeaa77":{"lch":[74.988898345165353,65.8409092602829702,39.9757578623994689],"luv":[74.988898345165353,50.4549646902964213,42.3003767160737851],"rgb":[0.933333333333333348,0.66666666666666663,0.466666666666666674],"xyz":[0.529626236326985245,0.482604372894756883,0.239790773618997088],"hpluv":[39.9757578623994689,111.41359114675457,74.988898345165353],"hsluv":[39.9757578623994689,69.3768546233612398,74.988898345165353]},"#eeaa88":{"lch":[75.268091919562039,58.355059996267,33.7246537035848917],"luv":[75.268091919562039,48.5347963512250544,32.3988668060016],"rgb":[0.933333333333333348,0.66666666666666663,0.533333333333333326],"xyz":[0.540766653428929156,0.487060539735534481,0.298463637022569284],"hpluv":[33.7246537035848917,98.3800275430836706,75.268091919562039],"hsluv":[33.7246537035848917,69.7313730072723388,75.268091919562039]},"#eeaa99":{"lch":[75.5931575717450102,51.1191249468368198,24.7740386445795764],"luv":[75.5931575717450102,46.4145012045046172,21.4209946843594],"rgb":[0.933333333333333348,0.66666666666666663,0.6],"xyz":[0.5538236175380018,0.492283325379163639,0.367230314663687163],"hpluv":[24.7740386445795764,85.8104641434512274,75.5931575717450102],"hsluv":[24.7740386445795764,70.1099573125584925,75.5931575717450102]},"#eeaaaa":{"lch":[75.9651912478537,45.142946910964838,12.1770506300622827],"luv":[75.9651912478537,44.1272513869876164,9.52215001119964199],"rgb":[0.933333333333333348,0.66666666666666663,0.66666666666666663],"xyz":[0.568881310503254412,0.498306402565264761,0.446534164280685764],"hpluv":[12.1770506300622827,75.4075094474617771,75.9651912478537],"hsluv":[12.1770506300622827,70.5013292017584661,75.9651912478537]},"#eeaabb":{"lch":[76.3849837125259512,41.8257198613105743,355.706426922992932],"luv":[76.3849837125259512,41.7083375548448743,-3.13136077895000353],"rgb":[0.933333333333333348,0.66666666666666663,0.733333333333333282],"xyz":[0.586018902610591,0.505161439408199464,0.53679214937932751],"hpluv":[355.706426922992932,71.0120800923082243,76.3849837125259512],"hsluv":[355.706426922992932,70.8933377227291857,76.3849837125259512]},"#eeaacc":{"lch":[76.8530390510081,42.4751513806234229,337.329003704434115],"luv":[76.8530390510081,39.1932374848878169,-16.3715796507258275],"rgb":[0.933333333333333348,0.66666666666666663,0.8],"xyz":[0.605311278054312729,0.512878389585688321,0.638398660049597666],"hpluv":[337.329003704434115,73.8860979443606283,76.8530390510081],"hsluv":[337.329003704434115,71.273377003825658,76.8530390510081]},"#eeaadd":{"lch":[77.3695923472492666,47.3596417233686893,320.637369166639587],"luv":[77.3695923472492666,36.6159833837478814,-30.0367345929437413],"rgb":[0.933333333333333348,0.66666666666666663,0.866666666666666696],"xyz":[0.626829603604946328,0.521485719805941828,0.751728507949603664],"hpluv":[320.637369166639587,84.6581146126829,77.3695923472492666],"hsluv":[320.637369166639587,71.6287050870027144,77.3695923472492666]},"#eeaaee":{"lch":[77.9346274334411078,55.5926087174301244,307.715012949246329],"luv":[77.9346274334411078,34.00790779424905,-43.9772708506012506],"rgb":[0.933333333333333348,0.66666666666666663,0.933333333333333348],"xyz":[0.650641783871121,0.531010591912411845,0.877139324018126887],"hpluv":[307.715012949246329,102.440850498764817,77.9346274334411078],"hsluv":[307.715012949246329,71.9466349992656,77.9346274334411078]},"#eeaaff":{"lch":[78.5478951631237123,66.0054362136172,298.40296943037481],"luv":[78.5478951631237123,31.3967924706888546,-58.0599606639755166],"rgb":[0.933333333333333348,0.66666666666666663,1],"xyz":[0.676812832280952459,0.541479011276344568,1.01497351230990884],"hpluv":[298.40296943037481,125.797711632464541,78.5478951631237123],"hsluv":[298.40296943037481,99.9999999999967457,78.5478951631237123]},"#773300":{"lch":[30.1331354048611715,59.6402239078303253,26.8671398719653283],"luv":[30.1331354048611715,53.2024709950710601,26.952799257122777],"rgb":[0.466666666666666674,0.2,0],"xyz":[0.0879135365113257461,0.0629020716081407,0.0075119680378166135],"hpluv":[26.8671398719653283,251.150628123644026,30.1331354048611715],"hsluv":[26.8671398719653283,100.000000000002174,30.1331354048611715]},"#773311":{"lch":[30.23185303241101,57.2493346092074376,24.6191658238461528],"luv":[30.23185303241101,52.0451874365790204,23.8492091669378929],"rgb":[0.466666666666666674,0.2,0.0666666666666666657],"xyz":[0.0889252020109628644,0.0633067378079955473,0.012840073002572245],"hpluv":[24.6191658238461528,240.295148301589592,30.23185303241101],"hsluv":[24.6191658238461528,89.9983576544591131,30.23185303241101]},"#773322":{"lch":[30.4137421865898716,53.2944669038914185,20.1857997859538507],"luv":[30.4137421865898716,50.0210446853216055,18.3900867632275506],"rgb":[0.466666666666666674,0.2,0.133333333333333331],"xyz":[0.0908005601494399,0.0640568810633863617,0.022716959198551441],"hpluv":[20.1857997859538507,222.35740076876786,30.4137421865898716],"hsluv":[20.1857997859538507,72.5478159849102,30.4137421865898716]},"#773333":{"lch":[30.7101510688592612,48.0738359215612618,12.1770506300619186],"luv":[30.7101510688592612,46.9921967440780932,10.1403720532853221],"rgb":[0.466666666666666674,0.2,0.2],"xyz":[0.093888310881897627,0.0652919813563694745,0.0389791130561625843],"hpluv":[12.1770506300619186,198.639745699191,30.7101510688592612],"hsluv":[12.1770506300619186,46.5474493854848177,30.7101510688592612]},"#773344":{"lch":[31.1315732769052218,43.177963340605487,359.450637080068248],"luv":[31.1315732769052218,43.1759786068728815,-0.413992248148033204],"rgb":[0.466666666666666674,0.2,0.266666666666666663],"xyz":[0.0983463061261165,0.0670751794540570545,0.0624578880090492228],"hpluv":[359.450637080068248,175.995032884643848,31.1315732769052218],"hsluv":[359.450637080068248,50.753084379908266,31.1315732769052218]},"#773355":{"lch":[31.6836931484193158,40.8566925980369149,342.103665666318761],"luv":[31.6836931484193158,38.8798033655970627,-12.5550874271345432],"rgb":[0.466666666666666674,0.2,0.333333333333333315],"xyz":[0.1043087201654785,0.0694601450698018874,0.0938599352830231382],"hpluv":[342.103665666318761,163.631433468067485,31.6836931484193158],"hsluv":[342.103665666318761,55.4419897041632623,31.6836931484193158]},"#773366":{"lch":[32.368092831934419,42.8604868736005429,323.403106692152903],"luv":[32.368092831934419,34.4105334223914952,-25.55262265656037],"rgb":[0.466666666666666674,0.2,0.4],"xyz":[0.111893715938986671,0.0724941433792052,0.1338075796901671],"hpluv":[323.403106692152903,168.027093700417197,32.368092831934419],"hsluv":[323.403106692152903,60.2559031079253913,32.368092831934419]},"#773377":{"lch":[33.18286532501061,49.0630735877418189,307.715012949244226],"luv":[33.18286532501061,30.0135669321659,-38.8119954380674201],"rgb":[0.466666666666666674,0.2,0.466666666666666674],"xyz":[0.12120772895918859,0.0762197485872860153,0.182861381596565],"hpluv":[307.715012949244226,187.620458725202155,33.18286532501061],"hsluv":[307.715012949244226,64.9109644958811458,33.18286532501061]},"#773388":{"lch":[34.1232577260479,58.0074356166469371,296.464975996700218],"luv":[34.1232577260479,25.8510525803809479,-51.9286594021626868],"rgb":[0.466666666666666674,0.2,0.533333333333333326],"xyz":[0.132348146061132432,0.0806759154280636132,0.241534245000137177],"hpluv":[296.464975996700218,215.711106662248483,34.1232577260479],"hsluv":[296.464975996700218,69.2226633917654226,34.1232577260479]},"#773399":{"lch":[35.1823459678372572,68.3160830057283,288.793689920994325],"luv":[35.1823459678372572,22.0088074868374761,-64.6737936899706369],"rgb":[0.466666666666666674,0.2,0.6],"xyz":[0.145405110170205132,0.0858987010716927707,0.310300922641255084],"hpluv":[288.793689920994325,246.398176299420243,35.1823459678372572],"hsluv":[288.793689920994325,73.0971646513407,35.1823459678372572]},"#7733aa":{"lch":[36.3517007299652,79.1457370086552316,283.529620316849901],"luv":[36.3517007299652,18.5159885211015585,-76.9493720294691741],"rgb":[0.466666666666666674,0.2,0.66666666666666663],"xyz":[0.160462803135457688,0.0919217782577938791,0.389604772258253684],"hpluv":[283.529620316849901,276.275338575971432,36.3517007299652],"hsluv":[283.529620316849901,76.5077273075914093,36.3517007299652]},"#7733bb":{"lch":[37.6219984216960484,90.0609255961329183,279.823655256592],"luv":[37.6219984216960484,15.3658639022925581,-88.7404110074345596],"rgb":[0.466666666666666674,0.2,0.733333333333333282],"xyz":[0.177600395242794307,0.0987768151007286377,0.479862757356895431],"hpluv":[279.823655256592,303.762299466947354,37.6219984216960484],"hsluv":[279.823655256592,79.4699002038008615,37.6219984216960484]},"#7733cc":{"lch":[38.9835424310364687,100.85881095677091,277.137789072490136],"luv":[38.9835424310364687,12.5323059717609908,-100.077175492935524],"rgb":[0.466666666666666674,0.2,0.8],"xyz":[0.196892770686516061,0.106493765278217439,0.581469268027165587],"hpluv":[277.137789072490136,328.300745951509327,38.9835424310364687],"hsluv":[277.137789072490136,82.0218198813884,38.9835424310364687]},"#7733dd":{"lch":[40.4266769703902469,111.457640409912926,275.137669231249674],"luv":[40.4266769703902469,9.98093438608736,-111.009848907770674],"rgb":[0.466666666666666674,0.2,0.866666666666666696],"xyz":[0.218411096237149605,0.115101095498470973,0.694799115927171584],"hpluv":[275.137669231249674,349.849394775278881,40.4266769703902469],"hsluv":[275.137669231249674,84.2108753320266459,40.4266769703902469]},"#7733ee":{"lch":[41.9420918590451066,121.83559331992231,273.612094072304103],"luv":[41.9420918590451066,7.67578650940870766,-121.593561100411392],"rgb":[0.466666666666666674,0.2,0.933333333333333348],"xyz":[0.242223276503324342,0.12462596760494099,0.820209931995694808],"hpluv":[273.612094072304103,368.606867281158145,41.9420918590451066],"hsluv":[273.612094072304103,91.3228806729277665,41.9420918590451066]},"#7733ff":{"lch":[43.521028110395612,131.998699032970592,272.424037139620168],"luv":[43.521028110395612,5.58285979872954208,-131.88058319125102],"rgb":[0.466666666666666674,0.2,1],"xyz":[0.268394324913155735,0.135094386968873714,0.958044120287476653],"hpluv":[272.424037139620168,384.866252510120546,43.521028110395612],"hsluv":[272.424037139620168,99.9999999999993605,43.521028110395612]},"#eebb00":{"lch":[78.2979307719844115,92.4506686575273307,61.8965912674010781],"luv":[78.2979307719844115,43.5502151824584587,81.5506277890334275],"rgb":[0.933333333333333348,0.733333333333333282,0],"xyz":[0.530286541787721277,0.537195691732810121,0.0757595260297813378],"hpluv":[61.8965912674010781,173.778692590363192,78.2979307719844115],"hsluv":[61.8965912674010781,100.000000000002373,78.2979307719844115]},"#eebb11":{"lch":[78.3216028454340858,91.4822746680663528,61.6861071172261504],"luv":[78.3216028454340858,43.3901974999079059,80.5375523551748],"rgb":[0.933333333333333348,0.733333333333333282,0.0666666666666666657],"xyz":[0.531298207287358437,0.537600357932665,0.0810876309945369744],"hpluv":[61.6861071172261504,172.182825477748111,78.3216028454340858],"hsluv":[61.6861071172261504,98.7812238781787642,78.3216028454340858]},"#eebb22":{"lch":[78.3654531575016335,89.702527227679937,61.2866058237147371],"luv":[78.3654531575016335,43.0956539167563477,78.672155204492924],"rgb":[0.933333333333333348,0.733333333333333282,0.133333333333333331],"xyz":[0.533173565425835383,0.53835050118805583,0.090964517190516167],"hpluv":[61.2866058237147371,169.241982225815036,78.3654531575016335],"hsluv":[61.2866058237147371,96.5386826089343,78.3654531575016335]},"#eebb33":{"lch":[78.4375634156200192,86.8156112143301897,60.6012126372659665],"luv":[78.4375634156200192,42.6165086308843897,75.6358614853528906],"rgb":[0.933333333333333348,0.733333333333333282,0.2],"xyz":[0.5362613161582932,0.539585601481039,0.107226671048127303],"hpluv":[60.6012126372659665,164.44952499458185,78.4375634156200192],"hsluv":[60.6012126372659665,92.89304460263088,78.4375634156200192]},"#eebb44":{"lch":[78.5414800230656,82.7424491039972878,59.5464137785053],"luv":[78.5414800230656,41.9372005918819397,71.3273025583039839],"rgb":[0.933333333333333348,0.733333333333333282,0.266666666666666663],"xyz":[0.540719311402512059,0.541368799578726523,0.130705446001013942],"hpluv":[59.5464137785053,157.640041580932575,78.5414800230656],"hsluv":[59.5464137785053,87.729612164687,78.5414800230656]},"#eebb55":{"lch":[78.6801087960333,77.4695312482544,58.0014729567720551],"luv":[78.6801087960333,41.0509080282697809,65.6989438414256455],"rgb":[0.933333333333333348,0.733333333333333282,0.333333333333333315],"xyz":[0.546681725441874,0.543753765194471272,0.162107493274987857],"hpluv":[58.0014729567720551,148.738759066450825,78.6801087960333],"hsluv":[58.0014729567720551,81.0022494643358613,78.6801087960333]},"#eebb66":{"lch":[78.8558787138066748,71.0520814803831229,55.7790951769469174],"luv":[78.8558787138066748,39.9586324736418845,58.7512210386423703],"rgb":[0.933333333333333348,0.733333333333333282,0.4],"xyz":[0.55426672121538223,0.546787763503874591,0.202055137682131819],"hpluv":[55.7790951769469174,137.768430134850121,78.8558787138066748],"hsluv":[55.7790951769469174,72.7264864885570574,78.8558787138066748]},"#eebb77":{"lch":[79.0708286262536,63.6259938562226566,52.5733668905169],"luv":[79.0708286262536,38.6683825737350801,50.5274507898760348],"rgb":[0.933333333333333348,0.733333333333333282,0.466666666666666674],"xyz":[0.56358073423558408,0.550513368711955442,0.251108939588529756],"hpluv":[52.5733668905169,124.876553308513152,79.0708286262536],"hsluv":[52.5733668905169,64.3532422469102841,79.0708286262536]},"#eebb88":{"lch":[79.3266586201773833,55.4370708593257149,47.8613800964459557],"luv":[79.3266586201773833,37.1942049853437169,41.1079060640423961],"rgb":[0.933333333333333348,0.733333333333333282,0.533333333333333326],"xyz":[0.574721151337528,0.554969535552733,0.309781802992101896],"hpluv":[47.8613800964459557,110.403075040931697,79.3266586201773833],"hsluv":[47.8613800964459557,64.6428486235092379,79.3266586201773833]},"#eebb99":{"lch":[79.6247632766216071,46.9114913521919519,40.7190885070752131],"luv":[79.6247632766216071,35.5550187983100727,30.6027557441907163],"rgb":[0.933333333333333348,0.733333333333333282,0.6],"xyz":[0.587778115446600635,0.560192321196362197,0.378548480633219775],"hpluv":[40.7190885070752131,95.0436922052712845,79.6247632766216071],"hsluv":[40.7190885070752131,64.94797236425741,79.6247632766216071]},"#eebbaa":{"lch":[79.9662551563314,38.821829319770238,29.5464132636418633],"luv":[79.9662551563314,33.7733033676501,19.1441482278540249],"rgb":[0.933333333333333348,0.733333333333333282,0.66666666666666663],"xyz":[0.602835808411853247,0.566215398382463264,0.457852330250218431],"hpluv":[29.5464132636418633,80.2381481795300573,79.9662551563314],"hsluv":[29.5464132636418633,65.2570717669902081,79.9662551563314]},"#eebbbb":{"lch":[80.3519829843595,32.6073830473385868,12.1770506300627979],"luv":[80.3519829843595,31.8737319395561,6.87798236703069765],"rgb":[0.933333333333333348,0.733333333333333282,0.733333333333333282],"xyz":[0.61997340051918981,0.573070435225398,0.548110315348860122],"hpluv":[12.1770506300627979,68.9527679352530498,80.3519829843595],"hsluv":[12.1770506300627979,65.5572779496269646,80.3519829843595]},"#eebbcc":{"lch":[80.7825470949933,30.4869713003172755,348.56539147946927],"luv":[80.7825470949933,29.8818538307637169,-6.04402437976891349],"rgb":[0.933333333333333348,0.733333333333333282,0.8],"xyz":[0.639265775962911564,0.58078738540288688,0.649716826019130278],"hpluv":[348.56539147946927,66.1649916626687542,80.7825470949933],"hsluv":[348.56539147946927,65.8346704867411,80.7825470949933]},"#eebbdd":{"lch":[81.2583136554081165,33.9595526191752555,325.014354592586812],"luv":[81.2583136554081165,27.8229160969035512,-19.4714291709468021],"rgb":[0.933333333333333348,0.733333333333333282,0.866666666666666696],"xyz":[0.660784101513545163,0.589394715623140386,0.763046673919136276],"hpluv":[325.014354592586812,75.8902298772919721,81.2583136554081165],"hsluv":[325.014354592586812,66.0744631525984119,81.2583136554081165]},"#eebbee":{"lch":[81.7794285687783429,42.0458499431423576,307.715012949247921],"luv":[81.7794285687783429,25.7208902583653902,-33.2609275540891716],"rgb":[0.933333333333333348,0.733333333333333282,0.933333333333333348],"xyz":[0.684596281779719873,0.598919587729610403,0.888457489987659499],"hpluv":[307.715012949247921,97.0917602325266245,81.7794285687783429],"hsluv":[307.715012949247921,66.2610602343042103,81.7794285687783429]},"#eebbff":{"lch":[82.3458315671937697,52.842459086223478,296.523687653639684],"luv":[82.3458315671937697,23.5977388768935938,-47.2807804734349446],"rgb":[0.933333333333333348,0.733333333333333282,1],"xyz":[0.710767330189551294,0.609388007093543127,1.02629167827944134],"hpluv":[296.523687653639684,126.563624284615543,82.3458315671937697],"hsluv":[296.523687653639684,99.9999999999958504,82.3458315671937697]},"#774400":{"lch":[34.1007355557283631,52.2824067620925845,38.9690248280103901],"luv":[34.1007355557283631,40.6488429776156863,32.8804139483986475],"rgb":[0.466666666666666674,0.266666666666666663,0],"xyz":[0.0967461069942917862,0.0805672125740730105,0.0104561581988052085],"hpluv":[38.9690248280103901,194.549962435525771,34.1007355557283631],"hsluv":[38.9690248280103901,100.000000000002302,34.1007355557283631]},"#774411":{"lch":[34.1844760931178726,49.9480603042207,37.0032460066389604],"luv":[34.1844760931178726,39.8885915773263164,30.0617529450848728],"rgb":[0.466666666666666674,0.266666666666666663,0.0666666666666666657],"xyz":[0.0977577724939289,0.0809718787739278634,0.0157842631635608383],"hpluv":[37.0032460066389604,185.408237524396696,34.1844760931178726],"hsluv":[37.0032460066389604,92.0774266797174477,34.1844760931178726]},"#774422":{"lch":[34.3389737161705639,45.9687551907429608,33.0232295817012798],"luv":[34.3389737161705639,38.542488289151045,25.0520069109664867],"rgb":[0.466666666666666674,0.266666666666666663,0.133333333333333331],"xyz":[0.0996331306324059335,0.0817220220293186778,0.0256611493595400378],"hpluv":[33.0232295817012798,169.869245826721482,34.3389737161705639],"hsluv":[33.0232295817012798,78.0803941927279794,34.3389737161705639]},"#774433":{"lch":[34.5913049894652787,40.4066166426811861,25.4401077009201266],"luv":[34.5913049894652787,36.4885814660887746,17.357364174931714],"rgb":[0.466666666666666674,0.266666666666666663,0.2],"xyz":[0.102720881364863667,0.0829571223223017906,0.041923303217151181],"hpluv":[25.4401077009201266,148.226163260119392,34.5913049894652787],"hsluv":[25.4401077009201266,56.8050953227402715,34.5913049894652787]},"#774444":{"lch":[34.9512320153617324,34.6101233100924119,12.1770506300620909],"luv":[34.9512320153617324,33.8314114683579277,7.30042694631360689],"rgb":[0.466666666666666674,0.266666666666666663,0.266666666666666663],"xyz":[0.107178876609082541,0.0847403204199893706,0.0654020781700378195],"hpluv":[12.1770506300620909,125.655060642768362,34.9512320153617324],"hsluv":[12.1770506300620909,29.4448754689639038,34.9512320153617324]},"#774455":{"lch":[35.4248138391838907,31.0799263948782318,351.580242092888511],"luv":[35.4248138391838907,30.7449438027498871,-4.55085214842230634],"rgb":[0.466666666666666674,0.266666666666666663,0.333333333333333315],"xyz":[0.11314129064844454,0.0871252860357342,0.0968041254440117349],"hpluv":[351.580242092888511,111.329877567225012,35.4248138391838907],"hsluv":[351.580242092888511,35.0525071981411855,35.4248138391838907]},"#774466":{"lch":[36.0149447056398699,32.55773059028094,327.386935336661793],"luv":[36.0149447056398699,27.4243377055297302,-17.5474078599198116],"rgb":[0.466666666666666674,0.266666666666666663,0.4],"xyz":[0.120726286421952711,0.090159284345137522,0.136751769851155697],"hpluv":[327.386935336661793,114.712488009680612,36.0149447056398699],"hsluv":[327.386935336661793,41.0162201785438469,36.0149447056398699]},"#774477":{"lch":[36.7217587051522898,39.3078830273429531,307.715012949244965],"luv":[36.7217587051522898,24.0459818745983789,-31.0950224919964064],"rgb":[0.466666666666666674,0.266666666666666663,0.466666666666666674],"xyz":[0.130040299442154617,0.0938848895532183314,0.185805571757553606],"hpluv":[307.715012949244965,135.82994003022975,36.7217587051522898],"hsluv":[307.715012949244965,46.9930223744603381,36.7217587051522898]},"#774488":{"lch":[37.5430301686231331,49.3077922843884906,294.880307130505798],"luv":[37.5430301686231331,20.7449732069104158,-44.731470651041306],"rgb":[0.466666666666666674,0.266666666666666663,0.533333333333333326],"xyz":[0.141180716544098472,0.0983410563939959292,0.244478435161125773],"hpluv":[294.880307130505798,166.657768282509579,37.5430301686231331],"hsluv":[294.880307130505798,52.7229750286883814,37.5430301686231331]},"#774499":{"lch":[38.4745988052595678,60.7540316024919775,286.849160899925266],"luv":[38.4745988052595678,17.609743748149274,-58.1459309073396042],"rgb":[0.466666666666666674,0.266666666666666663,0.6],"xyz":[0.154237680653171172,0.103563842037625087,0.313245112802243653],"hpluv":[286.849160899925266,200.373520820200838,38.4745988052595678],"hsluv":[286.849160899925266,58.0391908614757739,38.4745988052595678]},"#7744aa":{"lch":[39.5108096650206306,72.6607854160185695,281.662296555210446],"luv":[39.5108096650206306,14.6878600390207232,-71.1607792589909423],"rgb":[0.466666666666666674,0.266666666666666663,0.66666666666666663],"xyz":[0.169295373618423728,0.109586919223726181,0.392548962419242253],"hpluv":[281.662296555210446,233.358425064810547,39.5108096650206306],"hsluv":[281.662296555210446,62.855979622580108,39.5108096650206306]},"#7744bb":{"lch":[40.6449442050895,84.5532389367896684,278.156646558388104],"luv":[40.6449442050895,11.9964108827533504,-83.6978873128468],"rgb":[0.466666666666666674,0.266666666666666663,0.733333333333333282],"xyz":[0.186432965725760347,0.11644195606666094,0.482806947517884],"hpluv":[278.156646558388104,263.975148792079324,40.6449442050895],"hsluv":[278.156646558388104,67.1480450168623832,40.6449442050895]},"#7744cc":{"lch":[41.8696179576200223,96.2178725735773099,275.685728840067554],"luv":[41.8696179576200223,9.53248740063005151,-95.7445073439828747],"rgb":[0.466666666666666674,0.266666666666666663,0.8],"xyz":[0.205725341169482101,0.124158906244149742,0.584413458188154156],"hpluv":[275.685728840067554,291.605746800226,41.8696179576200223],"hsluv":[275.685728840067554,71.7563947172966721,41.8696179576200223]},"#7744dd":{"lch":[43.1771261833787037,107.572507589609089,273.881356516641858],"luv":[43.1771261833787037,7.28165300546471084,-107.325774717094461],"rgb":[0.466666666666666674,0.266666666666666663,0.866666666666666696],"xyz":[0.227243666720115645,0.132766236464403276,0.697743306088160153],"hpluv":[273.881356516641858,316.145413845169799,43.1771261833787037],"hsluv":[273.881356516641858,81.1040313116107683,43.1771261833787037]},"#7744ee":{"lch":[44.5597272061305958,118.600491111934247,272.524492751992966],"luv":[44.5597272061305958,5.22393127379498168,-118.485387428318177],"rgb":[0.466666666666666674,0.266666666666666663,0.933333333333333348],"xyz":[0.251055846986290354,0.14229110857087332,0.823154122156683377],"hpluv":[272.524492751992966,337.740615485066769,44.5597272061305958],"hsluv":[272.524492751992966,90.4775463334620866,44.5597272061305958]},"#7744ff":{"lch":[46.0098610845945188,129.316457315512423,271.478956563127554],"luv":[46.0098610845945188,3.33763127257498882,-129.273378350389976],"rgb":[0.466666666666666674,0.266666666666666663,1],"xyz":[0.277226895396121775,0.152759527934806016,0.960988310448465222],"hpluv":[271.478956563127554,356.649979093308843,46.0098610845945188],"hsluv":[271.478956563127554,99.9999999999992752,46.0098610845945188]},"#eecc00":{"lch":[82.5742071813858161,93.0890420253441278,70.6743105766144737],"luv":[82.5742071813858161,30.8066573410433797,87.8437226480516529],"rgb":[0.933333333333333348,0.8,0],"xyz":[0.568510285097338142,0.613643178352045071,0.088500773799653279],"hpluv":[70.6743105766144737,226.330948640265689,82.5742071813858161],"hsluv":[70.6743105766144737,100.000000000002331,82.5742071813858161]},"#eecc11":{"lch":[82.5958706312260773,92.1609271203023,70.5494354113464226],"luv":[82.5958706312260773,30.6889817522442812,86.9012248859824297],"rgb":[0.933333333333333348,0.8,0.0666666666666666657],"xyz":[0.569521950596975302,0.6140478445519,0.0938288787644089156],"hpluv":[70.5494354113464226,224.395635781555484,82.5958706312260773],"hsluv":[70.5494354113464226,98.9293851282895389,82.5958706312260773]},"#eecc22":{"lch":[82.636003730849751,90.4517890224530277,70.3125751850760849],"luv":[82.636003730849751,30.4721781878481224,85.1643851257694848],"rgb":[0.933333333333333348,0.8,0.133333333333333331],"xyz":[0.571397308735452247,0.61479798780729078,0.103705764960388108],"hpluv":[70.3125751850760849,220.820363432361461,82.636003730849751],"hsluv":[70.3125751850760849,96.9576791715233668,82.636003730849751]},"#eecc33":{"lch":[82.7020112487531,87.6695564091762236,69.9066450473675332],"luv":[82.7020112487531,30.1189443150749909,82.3334701948554084],"rgb":[0.933333333333333348,0.8,0.2],"xyz":[0.574485059467910064,0.616033088100273907,0.119967918817999258],"hpluv":[69.9066450473675332,214.968262161852493,82.7020112487531],"hsluv":[69.9066450473675332,93.7473974454290726,82.7020112487531]},"#eecc44":{"lch":[82.7971553193909102,83.7217279628800242,69.2828434677537786],"luv":[82.7971553193909102,29.6169744667019792,78.3081257375581],"rgb":[0.933333333333333348,0.8,0.266666666666666663],"xyz":[0.578943054712128924,0.617816286197961473,0.143446693770885897],"hpluv":[69.2828434677537786,206.594355258371763,82.7971553193909102],"hsluv":[69.2828434677537786,89.1900904304584685,82.7971553193909102]},"#eecc55":{"lch":[82.9241214704336471,78.5673404382155098,68.3706518767947387],"luv":[82.9241214704336471,28.9599810639926183,73.0352413585910085],"rgb":[0.933333333333333348,0.8,0.333333333333333315],"xyz":[0.584905468751490853,0.620201251813706222,0.174848741044859812],"hpluv":[68.3706518767947387,195.532369916851508,82.9241214704336471],"hsluv":[68.3706518767947387,83.2339277722755497,82.9241214704336471]},"#eecc66":{"lch":[83.0851700146488241,72.2150018940459688,67.0599726095305186],"luv":[83.0851700146488241,28.1470538355007811,66.503758231685552],"rgb":[0.933333333333333348,0.8,0.4],"xyz":[0.592490464524999094,0.623235250123109541,0.214796385452003746],"hpluv":[67.0599726095305186,181.688085793908328,83.0851700146488241],"hsluv":[67.0599726095305186,75.8779818086204898,83.0851700146488241]},"#eecc77":{"lch":[83.2822165713090925,64.7250307453925586,65.1677162202921778],"luv":[83.2822165713090925,27.1821511319325673,58.740618526133936],"rgb":[0.933333333333333348,0.8,0.466666666666666674],"xyz":[0.601804477545200944,0.626960855331190392,0.263850187358401655],"hpluv":[65.1677162202921778,165.044758034407693,83.2822165713090925],"hsluv":[65.1677162202921778,67.1675472191497533,83.2822165713090925]},"#eecc88":{"lch":[83.5168798492942699,56.2182636624862511,62.3679934299132839],"luv":[83.5168798492942699,26.0735255024375405,49.8062690541919793],"rgb":[0.933333333333333348,0.8,0.533333333333333326],"xyz":[0.612944894647144856,0.631417022171967934,0.322523050761973851],"hpluv":[62.3679934299132839,145.689263900370548,83.5168798492942699],"hsluv":[62.3679934299132839,57.1887031148042198,83.5168798492942699]},"#eecc99":{"lch":[83.79051243806407,46.9027423702446598,58.0311593919332083],"luv":[83.79051243806407,24.8330316313984234,39.7892923013655633],"rgb":[0.933333333333333348,0.8,0.6],"xyz":[0.6260018587562175,0.636639807815597147,0.39128972840309173],"hpluv":[58.0311593919332083,123.89218615802821,83.79051243806407],"hsluv":[58.0311593919332083,56.9799526918745158,83.79051243806407]},"#eeccaa":{"lch":[84.1042222244633,37.1556922719042646,50.8162292091241454],"luv":[84.1042222244633,23.475329457535171,28.8002495660129298],"rgb":[0.933333333333333348,0.8,0.66666666666666663],"xyz":[0.641059551721470111,0.642662885001698214,0.470593578020090331],"hpluv":[50.8162292091241454,100.353156070069275,84.1042222244633],"hsluv":[50.8162292091241454,57.1375361174420533,84.1042222244633]},"#eeccbb":{"lch":[84.4588885299527,27.7950211383377486,37.6158086991229084],"luv":[84.4588885299527,22.0170273242058485,16.9650731765535063],"rgb":[0.933333333333333348,0.8,0.733333333333333282],"xyz":[0.658197143828806674,0.649517921844633,0.560851563118732077],"hpluv":[37.6158086991229084,77.0182985337263517,84.4588885299527],"hsluv":[37.6158086991229084,57.2612530554736736,84.4588885299527]},"#eecccc":{"lch":[84.8551753311588897,20.9471233587290264,12.1770506300631585],"luv":[84.8551753311588897,20.4758227261490333,4.41844550641173317],"rgb":[0.933333333333333348,0.8,0.8],"xyz":[0.677489519272528429,0.65723487202212183,0.662458073789002233],"hpluv":[12.1770506300631585,59.764130158742411,84.8551753311588897],"hsluv":[12.1770506300631585,57.3329985994000637,84.8551753311588897]},"#eeccdd":{"lch":[85.2935429882433596,20.7797326136980232,335.241604291037675],"luv":[85.2935429882433596,18.8696973425293919,-8.70240252448279],"rgb":[0.933333333333333348,0.8,0.866666666666666696],"xyz":[0.699007844823162,0.665842202242375336,0.775787921689008231],"hpluv":[335.241604291037675,61.2821093808529582,85.2935429882433596],"hsluv":[335.241604291037675,57.3323512744098664,85.2935429882433596]},"#eeccee":{"lch":[85.7742593547863805,28.14328338963319,307.715012949251047],"luv":[85.7742593547863805,17.2162128855465397,-22.2631177921859056],"rgb":[0.933333333333333348,0.8,0.933333333333333348],"xyz":[0.722820025089336737,0.675367074348845353,0.901198737757531454],"hpluv":[307.715012949251047,86.153290074940827,85.7742593547863805],"hsluv":[307.715012949251047,57.2362127773837557,85.7742593547863805]},"#eeccff":{"lch":[86.2974107975625344,39.333162863939684,293.258584701896098],"luv":[86.2974107975625344,15.5319389668875889,-36.1366375415599919],"rgb":[0.933333333333333348,0.8,1],"xyz":[0.748991073499168158,0.685835493712778077,1.03903292604931341],"hpluv":[293.258584701896098,125.558261528980708,86.2974107975625344],"hsluv":[293.258584701896098,99.9999999999940314,86.2974107975625344]},"#775500":{"lch":[38.5848153490983421,48.2339285723334328,54.8056311564330656],"luv":[38.5848153490983421,27.7997213245256276,39.4168410682499868],"rgb":[0.466666666666666674,0.333333333333333315,0],"xyz":[0.108559363708637752,0.104193726002765275,0.0143939104369204193],"hpluv":[54.8056311564330656,158.626424871442595,38.5848153490983421],"hsluv":[54.8056311564330656,100.000000000002302,38.5848153490983421]},"#775511":{"lch":[38.6553893217116595,45.9150245993572952,53.4685955296553956],"luv":[38.6553893217116595,27.3315290852913257,36.8941323494598521],"rgb":[0.466666666666666674,0.333333333333333315,0.0666666666666666657],"xyz":[0.10957102920827487,0.104598392202620127,0.0197220154016760491],"hpluv":[53.4685955296553956,150.724584795248319,38.6553893217116595],"hsluv":[53.4685955296553956,93.8009130268131344,38.6553893217116595]},"#775522":{"lch":[38.7857346943923531,41.8305053308362176,50.7011784026830412],"luv":[38.7857346943923531,26.4939762066725,32.3706719268134577],"rgb":[0.466666666666666674,0.333333333333333315,0.133333333333333331],"xyz":[0.111446387346751899,0.105348535458010942,0.0295989015976552486],"hpluv":[50.7011784026830412,136.854920013655288,38.7857346943923531],"hsluv":[50.7011784026830412,82.7342982429400138,38.7857346943923531]},"#775533":{"lch":[38.9990050188249739,35.7224202133018096,45.1472123185964946],"luv":[38.9990050188249739,25.1945818654867857,25.3243825298663161],"rgb":[0.466666666666666674,0.333333333333333315,0.2],"xyz":[0.114534138079209633,0.106583635750994055,0.0458610554552663918],"hpluv":[45.1472123185964946,116.232257903435652,38.9990050188249739],"hsluv":[45.1472123185964946,65.6272728324870656,38.9990050188249739]},"#775544":{"lch":[39.3040305977305735,28.372964966311546,34.1730058033032336],"luv":[39.3040305977305735,23.4742392428959334,15.9369141601135258],"rgb":[0.466666666666666674,0.333333333333333315,0.266666666666666663],"xyz":[0.118992133323428506,0.108366833848681635,0.0693398304081530303],"hpluv":[34.1730058033032336,91.6024225041024,39.3040305977305735],"hsluv":[34.1730058033032336,43.1049791856067799,39.3040305977305735]},"#775555":{"lch":[39.7068052905653701,21.9117916496410494,12.1770506300624941],"luv":[39.7068052905653701,21.4187864245998618,4.62192615633957704],"rgb":[0.466666666666666674,0.333333333333333315,0.333333333333333315],"xyz":[0.124954547362790505,0.110751799464426468,0.100741877682126946],"hpluv":[12.1770506300624941,70.0248633547080601,39.7068052905653701],"hsluv":[12.1770506300624941,16.4089959502104463,39.7068052905653701]},"#775566":{"lch":[40.21091767922141,20.7753835118276839,337.09176723456028],"luv":[40.21091767922141,19.1368182791551824,-8.08694912894311],"rgb":[0.466666666666666674,0.333333333333333315,0.4],"xyz":[0.132539543136298676,0.113785797773829786,0.140689522089270908],"hpluv":[337.09176723456028,65.5608222190156482,40.21091767922141],"hsluv":[337.09176723456028,22.8015335286909036,40.21091767922141]},"#775577":{"lch":[40.8178321801082404,27.3616881241227183,307.715012949246557],"luv":[40.8178321801082404,16.7380842217685313,-21.6448264854847388],"rgb":[0.466666666666666674,0.333333333333333315,0.466666666666666674],"xyz":[0.141853556156500582,0.117511402981910595,0.189743323995668817],"hpluv":[307.715012949246557,85.0613515767839,40.8178321801082404],"hsluv":[307.715012949246557,29.4286369924042717,40.8178321801082404]},"#775588":{"lch":[41.5271394874135922,38.3484586217177892,291.922773984013077],"luv":[41.5271394874135922,14.317648223710199,-35.5754020076188269],"rgb":[0.466666666666666674,0.333333333333333315,0.533333333333333326],"xyz":[0.152993973258444438,0.121967569822688193,0.248416187399240984],"hpluv":[291.922773984013077,117.180466459805771,41.5271394874135922],"hsluv":[291.922773984013077,36.0000576829853429,41.5271394874135922]},"#775599":{"lch":[42.336815252734,50.9328741768069335,283.566916489070877],"luv":[42.336815252734,11.9478768110398388,-49.5116744982298442],"rgb":[0.466666666666666674,0.333333333333333315,0.6],"xyz":[0.166050937367517137,0.127190355466317351,0.317182865040358863],"hpluv":[283.566916489070877,152.657914615048412,42.336815252734],"hsluv":[283.566916489070877,42.2975255710275704,42.336815252734]},"#7755aa":{"lch":[43.2434937800222059,63.9392804809027098,278.705184193400783],"luv":[43.2434937800222059,9.67722671121172517,-63.202712533524668],"rgb":[0.466666666666666674,0.333333333333333315,0.66666666666666663],"xyz":[0.181108630332769693,0.133213432652418445,0.396486714657357464],"hpluv":[278.705184193400783,187.623095354238075,43.2434937800222059],"hsluv":[278.705184193400783,48.1780536314011272,43.2434937800222059]},"#7755bb":{"lch":[44.2427493107278096,76.8690732738289171,275.624120681329657],"luv":[44.2427493107278096,7.53331271169703509,-76.4990432983646116],"rgb":[0.466666666666666674,0.333333333333333315,0.733333333333333282],"xyz":[0.198246222440106312,0.140068469495353204,0.486744699755999211],"hpluv":[275.624120681329657,220.469676556121556,44.2427493107278096],"hsluv":[275.624120681329657,58.1137757976744496,44.2427493107278096]},"#7755cc":{"lch":[45.3293721892173949,89.4999308488430785,273.541003165926895],"luv":[45.3293721892173949,5.52776894932058127,-89.3290624175056536],"rgb":[0.466666666666666674,0.333333333333333315,0.8],"xyz":[0.217538597883828067,0.147785419672842,0.588351210426269366],"hpluv":[273.541003165926895,250.543028147628775,45.3293721892173949],"hsluv":[273.541003165926895,68.560007412736141,45.3293721892173949]},"#7755dd":{"lch":[46.4976270234735622,101.740884988783861,272.062259876532949],"luv":[46.4976270234735622,3.66119191329505167,-101.674988822595736],"rgb":[0.466666666666666674,0.333333333333333315,0.866666666666666696],"xyz":[0.23905692343446161,0.15639274989309554,0.701681058326275364],"hpluv":[272.062259876532949,277.654072578046794,46.4976270234735622],"hsluv":[272.062259876532949,78.9623412233913911,46.4976270234735622]},"#7755ee":{"lch":[47.7414825998049253,113.569026574645434,270.972372145675877],"luv":[47.7414825998049253,1.92729827623402139,-113.552672000560818],"rgb":[0.466666666666666674,0.333333333333333315,0.933333333333333348],"xyz":[0.26286910370063632,0.165917621999565584,0.827091874394798587],"hpluv":[270.972372145675877,301.858443342198598,47.7414825998049253],"hsluv":[270.972372145675877,89.4067229175139175,47.7414825998049253]},"#7755ff":{"lch":[49.0548071408334749,124.996939079083958,270.144864217432826],"luv":[49.0548071408334749,0.31603661949764611,-124.996539552082652],"rgb":[0.466666666666666674,0.333333333333333315,1],"xyz":[0.289040152110467741,0.17638604136349828,0.964926062686580432],"hpluv":[270.144864217432826,323.338286172745597,49.0548071408334749],"hsluv":[270.144864217432826,99.9999999999992184,49.0548071408334749]},"#eedd00":{"lch":[86.9434330779808562,96.0018853881048528,78.7633058197047831],"luv":[86.9434330779808562,18.7071720605167293,94.1615829920517],"rgb":[0.933333333333333348,0.866666666666666696,0],"xyz":[0.611144275644513346,0.69891115944639659,0.102712103982044597],"hpluv":[78.7633058197047831,323.365375109368927,86.9434330779808562],"hsluv":[78.7633058197047831,100.000000000002331,86.9434330779808562]},"#eedd11":{"lch":[86.9632971622836,95.1251800329902153,78.7103442402005555],"luv":[86.9632971622836,18.6225708681111755,93.2845095960255293],"rgb":[0.933333333333333348,0.866666666666666696,0.0666666666666666657],"xyz":[0.612155941144150506,0.699315825646251499,0.108040208946800234],"hpluv":[78.7103442402005555,320.953864246165836,86.9632971622836],"hsluv":[78.7103442402005555,99.0572185708442134,86.9632971622836]},"#eedd22":{"lch":[87.0000996195567,93.508678235103929,78.6100630695382421],"luv":[87.0000996195567,18.466577094457584,91.6671066178629559],"rgb":[0.933333333333333348,0.866666666666666696,0.133333333333333331],"xyz":[0.614031299282627452,0.700065968901642299,0.117917095142779427],"hpluv":[78.6100630695382421,316.490280961531141,87.0000996195567],"hsluv":[78.6100630695382421,97.3195837272491104,87.0000996195567]},"#eedd33":{"lch":[87.0606371109171704,90.8714304533391157,78.438725785200063],"luv":[87.0606371109171704,18.2120693177914781,89.0277339024194561],"rgb":[0.933333333333333348,0.866666666666666696,0.2],"xyz":[0.617119050015085269,0.701301069194625426,0.134179249000390577],"hpluv":[78.438725785200063,309.159510866930361,87.0606371109171704],"hsluv":[78.438725785200063,94.4866487647953335,87.0606371109171704]},"#eedd44":{"lch":[87.1479139339873399,87.1163282896156375,78.1766823729436737],"luv":[87.1479139339873399,17.8496481580416315,85.2680755927926839],"rgb":[0.933333333333333348,0.866666666666666696,0.266666666666666663],"xyz":[0.621577045259304128,0.703084267292313,0.157658023953277215],"hpluv":[78.1766823729436737,298.614243514229941,87.1479139339873399],"hsluv":[78.1766823729436737,90.4569971269957449,87.1479139339873399]},"#eedd55":{"lch":[87.2644132886328,82.1887294441124823,77.7961103956051119],"luv":[87.2644132886328,17.3739699699556027,80.3313912186301],"rgb":[0.933333333333333348,0.866666666666666696,0.333333333333333315],"xyz":[0.627539459298666058,0.705469232908057742,0.189060071227251103],"hpluv":[77.7961103956051119,284.577035202400168,87.2644132886328],"hsluv":[77.7961103956051119,85.1762064326895114,87.2644132886328]},"#eedd66":{"lch":[87.4122373516825775,76.0722975624531,77.2543738936701],"luv":[87.4122373516825775,16.7832968217641607,74.1978126646801428],"rgb":[0.933333333333333348,0.866666666666666696,0.4],"xyz":[0.635124455072174299,0.70850323121746106,0.229007715634395093],"hpluv":[77.2543738936701,266.820521177772889,87.4122373516825775],"hsluv":[77.2543738936701,78.6319742502837187,87.4122373516825775]},"#eedd77":{"lch":[87.5931821049200323,68.7867162946957,76.4818073814204666],"luv":[87.5931821049200323,16.0791769624109904,66.8810317415814524],"rgb":[0.933333333333333348,0.866666666666666696,0.466666666666666674],"xyz":[0.644438468092376149,0.712228836425541911,0.278061517540793],"hpluv":[76.4818073814204666,245.153905791490757,87.5931821049200323],"hsluv":[76.4818073814204666,70.850552214552053,87.5931821049200323]},"#eedd88":{"lch":[87.8087818591101694,60.3863988515096,75.3563176494847],"luv":[87.8087818591101694,15.266108392374667,58.4248500280990655],"rgb":[0.933333333333333348,0.866666666666666696,0.533333333333333326],"xyz":[0.65557888519432006,0.716685003266319454,0.336734380944365141],"hpluv":[75.3563176494847,219.413652035392374,87.8087818591101694],"hsluv":[75.3563176494847,61.8928475378351,87.8087818591101694]},"#eedd99":{"lch":[88.0603378936253165,50.9615259485641658,73.6438422487017164],"luv":[88.0603378936253165,14.3511385044238935,48.8990996914362483],"rgb":[0.933333333333333348,0.866666666666666696,0.6],"xyz":[0.668635849303392704,0.721907788909948667,0.405501058585483076],"hpluv":[73.6438422487017164,189.463858183723431,88.0603378936253165],"hsluv":[73.6438422487017164,51.8496821371243328,88.0603378936253165]},"#eeddaa":{"lch":[88.3489381850503719,40.6474355343677374,70.8361013393810595],"luv":[88.3489381850503719,13.3433963411670824,38.3948927541556],"rgb":[0.933333333333333348,0.866666666666666696,0.66666666666666663],"xyz":[0.683693542268645316,0.727930866096049733,0.484804908202481677],"hpluv":[70.8361013393810595,155.230940371192503,88.3489381850503719],"hsluv":[70.8361013393810595,42.897511243529749,88.3489381850503719]},"#eeddbb":{"lch":[88.6754719765582422,29.6681200622416164,65.6052069824857256],"luv":[88.6754719765582422,12.2535763784239329,27.0193858917206811],"rgb":[0.933333333333333348,0.866666666666666696,0.733333333333333282],"xyz":[0.700831134375981879,0.734785902938984492,0.575062893301123368],"hpluv":[65.6052069824857256,116.881954111652547,88.6754719765582422],"hsluv":[65.6052069824857256,42.5880034653653823,88.6754719765582422]},"#eeddcc":{"lch":[89.0406413623298,18.5684245799280596,53.3136761054906927],"luv":[89.0406413623298,11.093403559257359,14.8903589228712931],"rgb":[0.933333333333333348,0.866666666666666696,0.8],"xyz":[0.720123509819703633,0.742502853116473349,0.676669403971393524],"hpluv":[53.3136761054906927,75.8171941810365837,89.0406413623298],"hsluv":[53.3136761054906927,42.1389745374101,89.0406413623298]},"#eedddd":{"lch":[89.4449712115231677,10.1024117660870978,12.1770506300652031],"luv":[89.4449712115231677,9.87511215198720294,2.13093488339032255],"rgb":[0.933333333333333348,0.866666666666666696,0.866666666666666696],"xyz":[0.741641835370337232,0.751110183336726855,0.789999251871399522],"hpluv":[12.1770506300652031,42.9711785560074802,89.4449712115231677],"hsluv":[12.1770506300652031,41.5103310668104939,89.4449712115231677]},"#eeddee":{"lch":[89.8888182614484919,14.0763196099440542,307.715012949260654],"luv":[89.8888182614484919,8.61096808409750203,-11.1352594229299271],"rgb":[0.933333333333333348,0.866666666666666696,0.933333333333333348],"xyz":[0.765454015636511942,0.760635055443196872,0.915410067939922745],"hpluv":[307.715012949260654,62.7286135322124423,89.8888182614484919],"hsluv":[307.715012949260654,40.6526002298302203,89.8888182614484919]},"#eeddff":{"lch":[90.3723799019863776,25.8444533047225526,286.436741223308786],"luv":[90.3723799019863776,7.31285770395748802,-24.7882609075678033],"rgb":[0.933333333333333348,0.866666666666666696,1],"xyz":[0.791625064046343363,0.771103474807129596,1.05324425623170459],"hpluv":[286.436741223308786,121.429851146909542,90.3723799019863776],"hsluv":[286.436741223308786,99.9999999999912461,90.3723799019863776]},"#776600":{"lch":[43.3967364031710616,48.7618731822316747,71.5665709091534836],"luv":[43.3967364031710616,15.4186312136361749,46.2599836547520695],"rgb":[0.466666666666666674,0.4,0],"xyz":[0.123587421414484214,0.134249841414458615,0.0194032630055357667],"hpluv":[71.5665709091534836,142.581321953300886,43.3967364031710616],"hsluv":[71.5665709091534836,100.000000000002203,43.3967364031710616]},"#776611":{"lch":[43.4563559440565683,46.5521225716425278,71.0105555334865812],"luv":[43.4563559440565683,15.1477793781447385,44.0186880294754204],"rgb":[0.466666666666666674,0.4,0.0666666666666666657],"xyz":[0.124599086914121332,0.134654507614313468,0.0247313679702914],"hpluv":[71.0105555334865812,135.933189968578517,43.4563559440565683],"hsluv":[71.0105555334865812,95.1446041192036,43.4563559440565683]},"#776622":{"lch":[43.5665595032511135,42.5748985848782695,69.8598868578742582],"luv":[43.5665595032511135,14.6592646006394602,39.9715892964128727],"rgb":[0.466666666666666674,0.4,0.133333333333333331],"xyz":[0.126474445052598361,0.135404650869704296,0.0346082541662705925],"hpluv":[69.8598868578742582,124.005139157578384,43.5665595032511135],"hsluv":[69.8598868578742582,86.4059851293991699,43.5665595032511135]},"#776633":{"lch":[43.7471247164395862,36.3538810550032,67.535659471968259],"luv":[43.7471247164395862,13.8911218179866047,33.5952586297408544],"rgb":[0.466666666666666674,0.4,0.2],"xyz":[0.129562195785056095,0.136639751162687395,0.0508704080238817358],"hpluv":[67.535659471968259,105.448545621014873,43.7471247164395862],"hsluv":[67.535659471968259,72.7162107178341,43.7471247164395862]},"#776644":{"lch":[44.0059094002531381,28.0798421405657628,62.7556004259007807],"luv":[44.0059094002531381,12.8545871201011757,24.9647175952547435],"rgb":[0.466666666666666674,0.4,0.266666666666666663],"xyz":[0.134020191029274982,0.138422949260375,0.0743491829767683743],"hpluv":[62.7556004259007807,80.969785387169,44.0059094002531381],"hsluv":[62.7556004259007807,54.3487361937933,44.0059094002531381]},"#776655":{"lch":[44.348573895236818,18.4503377813959695,51.0995937541716287],"luv":[44.348573895236818,11.5862323365157813,14.3587668165439446],"rgb":[0.466666666666666674,0.4,0.333333333333333315],"xyz":[0.139982605068636967,0.140807914876119822,0.10575123025074229],"hpluv":[51.0995937541716287,52.7914984191523473,44.348573895236818],"hsluv":[51.0995937541716287,32.0544530960382303,44.348573895236818]},"#776666":{"lch":[44.7789425039584543,10.3722772339139464,12.177050630063178],"luv":[44.7789425039584543,10.1389057710203723,2.18785849257654696],"rgb":[0.466666666666666674,0.4,0.4],"xyz":[0.147567600842145152,0.143841913185523113,0.145698874657886251],"hpluv":[12.177050630063178,29.3927086392471182,44.7789425039584543],"hsluv":[12.177050630063178,6.88762268030489189,44.7789425039584543]},"#776677":{"lch":[45.2992151274866899,14.0123007519981453,307.715012949251729],"luv":[45.2992151274866899,8.57180555029232849,-11.0846164558105222],"rgb":[0.466666666666666674,0.4,0.466666666666666674],"xyz":[0.156881613862347058,0.147567518393603936,0.194752676564284161],"hpluv":[307.715012949251729,39.2516664249610088,45.2992151274866899],"hsluv":[307.715012949251729,13.5798811229143528,45.2992151274866899]},"#776688":{"lch":[45.9101336093725934,25.9566305949561666,285.511882327844],"luv":[45.9101336093725934,6.94179491604529719,-25.0111606125461954],"rgb":[0.466666666666666674,0.4,0.533333333333333326],"xyz":[0.168022030964290886,0.152023685234381534,0.253425539967856328],"hpluv":[285.511882327844,71.7429261821633304,45.9101336093725934],"hsluv":[285.511882327844,20.4210179876919788,45.9101336093725934]},"#776699":{"lch":[46.6111419677041781,39.5636276789354753,277.694853057332239],"luv":[46.6111419677041781,5.29745753469698322,-39.2073663842078446],"rgb":[0.466666666666666674,0.4,0.6],"xyz":[0.181078995073363613,0.157246470878010691,0.322192217608974207],"hpluv":[277.694853057332239,107.707436484347127,46.6111419677041781],"hsluv":[277.694853057332239,30.3115853005661187,46.6111419677041781]},"#7766aa":{"lch":[47.4005539940279945,53.5010996637438936,273.94010537559177],"luv":[47.4005539940279945,3.67625443841083355,-53.3746458398921959],"rgb":[0.466666666666666674,0.4,0.66666666666666663],"xyz":[0.196136688038616142,0.163269548064111786,0.401496067225972808],"hpluv":[273.94010537559177,143.224929654224553,47.4005539940279945],"hsluv":[273.94010537559177,41.7476492103462178,47.4005539940279945]},"#7766bb":{"lch":[48.2757296522395052,67.3356727079262356,271.790784098674919],"luv":[48.2757296522395052,2.10423911354751,-67.3027859511178],"rgb":[0.466666666666666674,0.4,0.733333333333333282],"xyz":[0.213274280145952788,0.170124584907046544,0.491754052324614555],"hpluv":[271.790784098674919,176.992833999799871,48.2757296522395052],"hsluv":[271.790784098674919,53.26174830093764,48.2757296522395052]},"#7766cc":{"lch":[49.2332558923506838,80.8618894300095263,270.423298283194697],"luv":[49.2332558923506838,0.597398061184884921,-80.8596826468393886],"rgb":[0.466666666666666674,0.4,0.8],"xyz":[0.232566655589674542,0.177841535084535346,0.59336056299488471],"hpluv":[270.423298283194697,208.412927467485218,49.2332558923506838],"hsluv":[270.423298283194697,64.812294986267446,49.2332558923506838]},"#7766dd":{"lch":[50.2691251722936698,93.9789905273776327,269.490145829531343],"luv":[50.2691251722936698,-0.836273601566472236,-93.9752696564806769],"rgb":[0.466666666666666674,0.4,0.866666666666666696],"xyz":[0.254084981140308086,0.18644886530478888,0.706690410894890708],"hpluv":[269.490145829531343,237.229544488008315,50.2691251722936698],"hsluv":[269.490145829531343,76.411365903071939,50.2691251722936698]},"#7766ee":{"lch":[51.378904811117593,106.647241299318011,268.82087794331261],"luv":[51.378904811117593,-2.19459861633770803,-106.624658562961542],"rgb":[0.466666666666666674,0.4,0.933333333333333348],"xyz":[0.277897161406482796,0.195973737411258925,0.832101226963413931],"hpluv":[268.82087794331261,263.392927722023558,51.378904811117593],"hsluv":[268.82087794331261,88.1124589032604177,51.378904811117593]},"#7766ff":{"lch":[52.5578914047646748,118.864223743766644,268.322642340607558],"luv":[52.5578914047646748,-3.47930230784918848,-118.81329109850806],"rgb":[0.466666666666666674,0.4,1],"xyz":[0.304068209816314217,0.206442156775191621,0.969935415255195776],"hpluv":[268.322642340607558,286.980608281330717,52.5578914047646748],"hsluv":[268.322642340607558,99.9999999999990621,52.5578914047646748]},"#eeee00":{"lch":[91.3819857871042416,100.73955854358779,85.8743202181747591],"luv":[91.3819857871042416,7.24765584469138,100.478505862268193],"rgb":[0.933333333333333348,0.933333333333333348,0],"xyz":[0.658323051985028163,0.793268712127427555,0.118438362762215782],"hpluv":[85.8743202181747591,533.074105620447313,91.3819857871042416],"hsluv":[85.8743202181747591,100.000000000002302,91.3819857871042416]},"#eeee11":{"lch":[91.4002420948697,99.9206079899190485,85.8743202181747449],"luv":[91.4002420948697,7.18873686735402107,99.6616775060856526],"rgb":[0.933333333333333348,0.933333333333333348,0.0666666666666666657],"xyz":[0.659334717484665322,0.793673378327282464,0.123766467726971419],"hpluv":[85.8743202181747449,529.940172906192515,91.4002420948697],"hsluv":[85.8743202181747449,99.1672499526241182,91.4002420948697]},"#eeee22":{"lch":[91.4340680155716,98.4094794247264559,85.8743202181747],"luv":[91.4340680155716,7.08001949817026599,98.1544648222952105],"rgb":[0.933333333333333348,0.933333333333333348,0.133333333333333331],"xyz":[0.661210075623142268,0.794423521582673264,0.133643353922950597],"hpluv":[85.8743202181747,524.128135432551403,91.4340680155716],"hsluv":[85.8743202181747,97.631382664670781,91.4340680155716]},"#eeee33":{"lch":[91.4897155548310224,95.9410009888260475,85.874320218174617],"luv":[91.4897155548310224,6.90242608380469225,95.6923831080380864],"rgb":[0.933333333333333348,0.933333333333333348,0.2],"xyz":[0.664297826355600085,0.795658621875656391,0.149905507780561748],"hpluv":[85.874320218174617,514.550466890897383,91.4897155548310224],"hsluv":[85.874320218174617,95.1245282264191,91.4897155548310224]},"#eeee44":{"lch":[91.569956182858661,92.4193611961338917,85.8743202181745],"luv":[91.569956182858661,6.64906351605686385,92.1798691594911],"rgb":[0.933333333333333348,0.933333333333333348,0.266666666666666663],"xyz":[0.668755821599819,0.797441819973344,0.173384282733448386],"hpluv":[85.8743202181745,500.701064757674544,91.569956182858661],"hsluv":[85.8743202181745,91.5525623856835438,91.569956182858661]},"#eeee55":{"lch":[91.6770884747666912,87.7855710128071536,85.8743202181743612],"luv":[91.6770884747666912,6.31568785915728625,87.5580868047623682],"rgb":[0.933333333333333348,0.933333333333333348,0.333333333333333315],"xyz":[0.674718235639180874,0.799826785589088707,0.204786330007422301],"hpluv":[85.8743202181743612,482.129233036801622,91.6770884747666912],"hsluv":[85.8743202181743612,86.8606098102410584,91.6770884747666912]},"#eeee66":{"lch":[91.8130678710263197,82.0131153940214261,85.8743202181741481],"luv":[91.8130678710263197,5.90039150181238092,81.8005897091115912],"rgb":[0.933333333333333348,0.933333333333333348,0.4],"xyz":[0.682303231412689115,0.802860783898492,0.244733974414566263],"hpluv":[85.8743202181741481,458.402522986492727,91.8130678710263197],"hsluv":[85.8743202181741481,81.0287908474737435,91.8130678710263197]},"#eeee77":{"lch":[91.9795762822891163,75.1051560234190703,85.8743202181738923],"luv":[91.9795762822891163,5.40340190972927914,74.9105313631138],"rgb":[0.933333333333333348,0.933333333333333348,0.466666666666666674],"xyz":[0.691617244432891,0.806586389106572876,0.2937877763209642],"hpluv":[85.8743202181738923,429.072804464814112,91.9795762822891163],"hsluv":[85.8743202181738923,74.0694118243717838,91.9795762822891163]},"#eeee88":{"lch":[92.1780636375363542,67.0918310376028444,85.8743202181734233],"luv":[92.1780636375363542,4.82688735568056,66.9179718045445497],"rgb":[0.933333333333333348,0.933333333333333348,0.533333333333333326],"xyz":[0.702757661534834877,0.811042555947350419,0.35246063972453634],"hpluv":[85.8743202181734233,393.637417052406249,92.1780636375363542],"hsluv":[85.8743202181734233,66.0241185279663085,92.1780636375363542]},"#eeee99":{"lch":[92.4097746137617264,58.0271343519240759,85.8743202181728549],"luv":[92.4097746137617264,4.17473240419888647,57.8767650309654],"rgb":[0.933333333333333348,0.933333333333333348,0.6],"xyz":[0.715814625643907521,0.816265341590979632,0.421227317365654219],"hpluv":[85.8743202181728549,351.489405737917593,92.4097746137617264],"hsluv":[85.8743202181728549,56.9604957584853295,92.4097746137617264]},"#eeeeaa":{"lch":[92.6757669457712,47.9852530272659195,85.8743202181718885],"luv":[92.6757669457712,3.45227440531043239,47.8609058577161903],"rgb":[0.933333333333333348,0.933333333333333348,0.66666666666666663],"xyz":[0.730872318609160132,0.822288418777080699,0.500531166982652875],"hpluv":[85.8743202181718885,301.850049763156903,92.6757669457712],"hsluv":[85.8743202181718885,46.9680087594427178,92.6757669457712]},"#eeeebb":{"lch":[92.9769247593952741,37.0564456712956627,85.8743202181703253],"luv":[92.9769247593952741,2.66600696822725,36.9604189997225347],"rgb":[0.933333333333333348,0.933333333333333348,0.733333333333333282],"xyz":[0.748009910716496695,0.829143455620015457,0.590789152081294566],"hpluv":[85.8743202181703253,243.673832720465015,92.9769247593952741],"hsluv":[85.8743202181703253,36.1533987495139,92.9769247593952741]},"#eeeecc":{"lch":[93.3139689281547788,25.3426537884513579,85.8743202181670711],"luv":[93.3139689281547788,1.82326422217474082,25.2769817940640493],"rgb":[0.933333333333333348,0.933333333333333348,0.8],"xyz":[0.76730228616021845,0.836860405797504314,0.692395662751564722],"hpluv":[85.8743202181670711,175.509740066336235,93.3139689281547788],"hsluv":[85.8743202181670711,24.635760697738192,93.3139689281547788]},"#eeeedd":{"lch":[93.6874656794852143,12.9530841337210045,85.8743202181571377],"luv":[93.6874656794852143,0.931902991100789779,12.919518001474831],"rgb":[0.933333333333333348,0.933333333333333348,0.866666666666666696],"xyz":[0.788820611710852,0.84546773601775782,0.80572551065157072],"hpluv":[85.8743202181571377,95.2907564198152812,93.6874656794852143],"hsluv":[85.8743202181571377,12.5415797244653469,93.6874656794852143]},"#eeeeee":{"lch":[94.0978342288501466,4.90671076366048496e-12,0],"luv":[94.0978342288501466,4.6515081442594671e-12,1.56182025281704723e-12],"rgb":[0.933333333333333348,0.933333333333333348,0.933333333333333348],"xyz":[0.812632791977026758,0.854992608124227838,0.931136326720093943],"hpluv":[0,3.87295813278393312e-11,94.0978342288501466],"hsluv":[0,3.8714510065860851e-11,94.0978342288501466]},"#eeeeff":{"lch":[94.5453539438838391,13.4050739145486393,265.874320218197],"luv":[94.5453539438838391,-0.964421163933715353,-13.3703365130825738],"rgb":[0.933333333333333348,0.933333333333333348,1],"xyz":[0.838803840386858179,0.865461027488160561,1.06897051501187579],"hpluv":[265.874320218197,114.885858328026472,94.5453539438838391],"hsluv":[265.874320218197,99.999999999981938,94.5453539438838391]},"#777700":{"lch":[48.4055282063088868,53.3622847060179737,85.8743202181747],"luv":[48.4055282063088868,3.83912219020021839,53.2240036999738706],"rgb":[0.466666666666666674,0.466666666666666674,0],"xyz":[0.142041159467901856,0.171157317521294372,0.0255545090233414707],"hpluv":[85.8743202181747,139.887458074797621,48.4055282063088868],"hsluv":[85.8743202181747,100.000000000002331,48.4055282063088868]},"#777711":{"lch":[48.4562461221814829,51.3697569370731628,85.874320218174617],"luv":[48.4562461221814829,3.69577080233359201,51.2366392921178502],"rgb":[0.466666666666666674,0.466666666666666674,0.0666666666666666657],"xyz":[0.143052824967539,0.171561983721149225,0.0308826139880971],"hpluv":[85.874320218174617,134.523163178361983,48.4562461221814829],"hsluv":[85.874320218174617,96.1652781669932324,48.4562461221814829]},"#777722":{"lch":[48.5500530694338579,47.7524066126053768,85.8743202181744323],"luv":[48.5500530694338579,3.43552238949120969,47.6286628324468282],"rgb":[0.466666666666666674,0.466666666666666674,0.133333333333333331],"xyz":[0.144928183106016,0.172312126976540053,0.0407595001840763],"hpluv":[85.8743202181744323,124.808706278838557,48.5500530694338579],"hsluv":[85.8743202181744323,89.2207979160694293,48.5500530694338579]},"#777733":{"lch":[48.7039135074563063,42.0024110114446501,85.874320218174],"luv":[48.7039135074563063,3.02184190658892726,41.8935675523809934],"rgb":[0.466666666666666674,0.466666666666666674,0.2],"xyz":[0.148015933838473723,0.173547227269523152,0.0570216540416874432],"hpluv":[85.874320218174,109.433348296247431,48.7039135074563063],"hsluv":[85.874320218174,78.2295638238963704,48.7039135074563063]},"#777744":{"lch":[48.9247697387985312,34.1210359912247227,85.8743202181732528],"luv":[48.9247697387985312,2.45482042510454956,34.0326160292585],"rgb":[0.466666666666666674,0.466666666666666674,0.266666666666666663],"xyz":[0.152473929082692611,0.175330425367210746,0.0805004289945740747],"hpluv":[85.8743202181732528,88.497855114462908,48.9247697387985312],"hsluv":[85.8743202181732528,63.2636094274766378,48.9247697387985312]},"#777755":{"lch":[49.2178287935421537,24.2815247917763841,85.8743202181716327],"luv":[49.2178287935421537,1.74692184102758041,24.2186025669317253],"rgb":[0.466666666666666674,0.466666666666666674,0.333333333333333315],"xyz":[0.158436343122054624,0.177715390982955579,0.11190247626854799],"hpluv":[85.8743202181716327,62.6026663147617,49.2178287935421537],"hsluv":[85.8743202181716327,44.7521651878825324,49.2178287935421537]},"#777766":{"lch":[49.5868745078829676,12.7836483150604128,85.8743202181664742],"luv":[49.5868745078829676,0.919713018071489197,12.750521252385596],"rgb":[0.466666666666666674,0.466666666666666674,0.4],"xyz":[0.166021338895562781,0.18074938929235887,0.151850120675691952],"hpluv":[85.8743202181664742,32.7135296885410085,49.5868745078829676],"hsluv":[85.8743202181664742,23.385605928338574,49.5868745078829676]},"#777777":{"lch":[50.0344387925380687,2.67192546523751356e-12,0],"luv":[50.0344387925380687,2.52749706171116152e-12,8.66570421158112546e-13],"rgb":[0.466666666666666674,0.466666666666666674,0.466666666666666674],"xyz":[0.175335351915764714,0.184474994500439693,0.200903922582089861],"hpluv":[0,6.77633132918180515e-12,50.0344387925380687],"hsluv":[0,1.94020402484744743e-12,50.0344387925380687]},"#777788":{"lch":[50.5619220099523545,13.6772258441596737,265.874320218187563],"luv":[50.5619220099523545,-0.984000994856362388,-13.6417831984777926],"rgb":[0.466666666666666674,0.466666666666666674,0.533333333333333326],"xyz":[0.186475769017708515,0.188931161341217291,0.259576785985662029],"hpluv":[265.874320218187563,34.3252548472133,50.5619220099523545],"hsluv":[265.874320218187563,11.1797639211738336,50.5619220099523545]},"#777799":{"lch":[51.1696982290560669,27.8798810968622455,265.87432021818239],"luv":[51.1696982290560669,-2.00580373888746255,-27.8076342276045096],"rgb":[0.466666666666666674,0.466666666666666674,0.6],"xyz":[0.199532733126781242,0.194153946984846448,0.328343463626779908],"hpluv":[265.87432021818239,69.1380916549642563,51.1696982290560669],"hsluv":[265.87432021818239,22.9846011782403536,51.1696982290560669]},"#7777aa":{"lch":[51.8572203345112,42.2927406525888614,265.874320218180628],"luv":[51.8572203345112,-3.04272952363285398,-42.1831448442758443],"rgb":[0.466666666666666674,0.466666666666666674,0.66666666666666663],"xyz":[0.21459042609203377,0.200177024170947543,0.407647313243778564],"hpluv":[265.874320218180628,103.489412577951782,51.8572203345112],"hsluv":[265.874320218180628,35.2207148819814435,51.8572203345112]},"#7777bb":{"lch":[52.6231302285762439,56.6671214785474,265.874320218179832],"luv":[52.6231302285762439,-4.07688697591046,-56.5202764435038816],"rgb":[0.466666666666666674,0.466666666666666674,0.733333333333333282],"xyz":[0.231728018199370445,0.207032061013882301,0.497905298342420255],"hpluv":[265.874320218179832,136.645017565491173,52.6231302285762439],"hsluv":[265.874320218179832,47.751077300634,52.6231302285762439]},"#7777cc":{"lch":[53.4653742998309696,70.8221320427834513,265.874320218179378],"luv":[53.4653742998309696,-5.09526194727884452,-70.6386062488075],"rgb":[0.466666666666666674,0.466666666666666674,0.8],"xyz":[0.251020393643092143,0.214749011191371103,0.599511809012690411],"hpluv":[265.874320218179378,168.087613695837888,53.4653742998309696],"hsluv":[265.874320218179378,60.4968982098403671,53.4653742998309696]},"#7777dd":{"lch":[54.3813217092404102,84.6378263199215581,265.874320218179037],"luv":[54.3813217092404102,-6.08922498249284594,-84.4184990584042083],"rgb":[0.466666666666666674,0.466666666666666674,0.866666666666666696],"xyz":[0.272538719193725743,0.223356341411624637,0.712841656912696409],"hpluv":[265.874320218179037,197.494074150637061,54.3813217092404102],"hsluv":[265.874320218179037,73.4330970128385445,54.3813217092404102]},"#7777ee":{"lch":[55.3678819060931,98.0443353361264656,265.874320218178809],"luv":[55.3678819060931,-7.05374939408338086,-97.7902669542745713],"rgb":[0.466666666666666674,0.466666666666666674,0.933333333333333348],"xyz":[0.296350899459900452,0.232881213518094682,0.838252472981219632],"hpluv":[265.874320218178809,224.700440227144242,55.3678819060931],"hsluv":[265.874320218178809,86.5809092876847,55.3678819060931]},"#7777ff":{"lch":[56.4216176153771158,111.010032393554411,265.874320218178696],"luv":[56.4216176153771158,-7.98655981550332,-110.722365194803288],"rgb":[0.466666666666666674,0.466666666666666674,1],"xyz":[0.322521947869731873,0.243349632882027378,0.976086661273001477],"hpluv":[265.874320218178696,249.664056525023511,56.4216176153771158],"hsluv":[265.874320218178696,99.99999999999892,56.4216176153771158]},"#eeff00":{"lch":[95.8710857598618702,106.837421111995667,91.929871543819857],"luv":[95.8710857598618702,-3.59788306357601462,106.776822332015158],"rgb":[0.933333333333333348,1,0],"xyz":[0.710175424414702,0.896973456986776663,0.135722486905439893],"hpluv":[91.929871543819857,1221.941869030823,95.8710857598618702],"hsluv":[91.929871543819857,100.000000000002217,95.8710857598618702]},"#eeff11":{"lch":[95.8879066370154192,106.077593073364397,91.9648080695471748],"luv":[95.8879066370154192,-3.63693915095535747,106.015227330089402],"rgb":[0.933333333333333348,1,0.0666666666666666657],"xyz":[0.71118708991433921,0.897378123186631571,0.14105059187019553],"hpluv":[91.9648080695471748,1218.36968740939687,95.8879066370154192],"hsluv":[91.9648080695471748,99.9999999999846096,95.8879066370154192]},"#eeff22":{"lch":[95.9190746883988083,104.674935415410417,92.0306447189025221],"luv":[95.9190746883988083,-3.7090534526558554,104.609201443781629],"rgb":[0.933333333333333348,1,0.133333333333333331],"xyz":[0.713062448052816156,0.898128266442022372,0.150927478066174708],"hpluv":[92.0306447189025221,1211.72771901411761,95.9190746883988083],"hsluv":[92.0306447189025221,99.9999999999843254,95.9190746883988083]},"#eeff33":{"lch":[95.9703546560603,102.38192729680722,92.1421884898051076],"luv":[95.9703546560603,-3.826988551916231,102.31037677397255],"rgb":[0.933333333333333348,1,0.2],"xyz":[0.716150198785274,0.899363366735005498,0.167189631923785859],"hpluv":[92.1421884898051076,1200.73225066318059,95.9703546560603],"hsluv":[92.1421884898051076,99.9999999999843,95.9703546560603]},"#eeff44":{"lch":[96.0443082677326316,99.1069805797193482,92.3105231291127666],"luv":[96.0443082677326316,-3.99552836231266495,99.0264073504377],"rgb":[0.933333333333333348,1,0.266666666666666663],"xyz":[0.720608194029492832,0.901146564832693064,0.190668406876672497],"hpluv":[92.3105231291127666,1184.71704479359755,96.0443082677326316],"hsluv":[92.3105231291127666,99.999999999984,96.0443082677326316]},"#eeff55":{"lch":[96.1430663154878,94.7914212488158086,92.5502587525383831],"luv":[96.1430663154878,-4.21781218752730513,94.6975374691506744],"rgb":[0.933333333333333348,1,0.333333333333333315],"xyz":[0.726570608068854762,0.903531530448437814,0.222070454150646412],"hpluv":[92.5502587525383831,1163.01160371768833,96.1430663154878],"hsluv":[92.5502587525383831,99.9999999999832312,96.1430663154878]},"#eeff66":{"lch":[96.2684490440968261,89.4056432425818315,92.8821944044194083],"luv":[96.2684490440968261,-4.49554545672610839,89.2925479234763912],"rgb":[0.933333333333333348,1,0.4],"xyz":[0.734155603842363,0.906565528757841133,0.262018098557790347],"hpluv":[92.8821944044194083,1134.86447310352946,96.2684490440968261],"hsluv":[92.8821944044194083,99.9999999999826912,96.2684490440968261]},"#eeff77":{"lch":[96.4220309754045104,82.947030730659,93.3376121292550494],"luv":[96.4220309754045104,-4.82912482473711879,82.8063370791148827],"rgb":[0.933333333333333348,1,0.466666666666666674],"xyz":[0.743469616862564853,0.910291133965922,0.311071900464188311],"hpluv":[93.3376121292550494,1099.34916045901696,96.4220309754045104],"hsluv":[93.3376121292550494,99.9999999999824354,96.4220309754045104]},"#eeff88":{"lch":[96.6051797330544559,75.4384320618763553,93.966065888554354],"luv":[96.6051797330544559,-5.21774760700183382,75.2577713054536446],"rgb":[0.933333333333333348,1,0.533333333333333326],"xyz":[0.754610033964508764,0.914747300806699526,0.369744763867760451],"hpluv":[93.966065888554354,1055.22684316018899,96.6051797330544559],"hsluv":[93.966065888554354,99.9999999999810711,96.6051797330544559]},"#eeff99":{"lch":[96.8190810543072,66.9270103141668926,94.8508818247366],"luv":[96.8190810543072,-5.65953211211599072,66.6872881879637589],"rgb":[0.933333333333333348,1,0.6],"xyz":[0.767666998073581408,0.919970086450328739,0.43851144150887833],"hpluv":[94.8508818247366,1000.72847038880911,96.8190810543072],"hsluv":[94.8508818247366,99.9999999999804,96.8190810543072]},"#eeffaa":{"lch":[97.0647558759300182,57.4841926777339438,96.1432585072641785],"luv":[97.0647558759300182,-6.15165762861061438,57.1540857352402938],"rgb":[0.933333333333333348,1,0.66666666666666663],"xyz":[0.782724691038834,0.925993163636429806,0.517815291125877],"hpluv":[96.1432585072641785,933.191048721381,97.0647558759300182],"hsluv":[96.1432585072641785,99.9999999999786127,97.0647558759300182]},"#eeffbb":{"lch":[97.3430726615411857,47.2094061136043166,98.1473956779809242],"luv":[97.3430726615411857,-6.69052372550339935,46.7329104366258861],"rgb":[0.933333333333333348,1,0.733333333333333282],"xyz":[0.799862283146170583,0.932848200479364564,0.608073276224518677],"hpluv":[98.1473956779809242,848.432918810296883,97.3430726615411857],"hsluv":[98.1473956779809242,99.9999999999760689,97.3430726615411857]},"#eeffcc":{"lch":[97.6547568121604,36.2474903433398126,101.573139749476653],"luv":[97.6547568121604,-7.27192346215819718,35.5105573787715443],"rgb":[0.933333333333333348,1,0.8],"xyz":[0.819154658589892337,0.940565150656853421,0.709679786894788833],"hpluv":[101.573139749476653,739.717147432346792,97.6547568121604],"hsluv":[101.573139749476653,99.999999999972971,97.6547568121604]},"#eeffdd":{"lch":[98.0003982932414743,24.8675243497069864,108.50155795297276],"luv":[98.0003982932414743,-7.89122250686935445,23.5822470225029335],"rgb":[0.933333333333333348,1,0.866666666666666696],"xyz":[0.840672984140525936,0.949172480877106928,0.823009634794794831],"hpluv":[108.50155795297276,596.728870831386416,98.0003982932414743],"hsluv":[108.50155795297276,99.9999999999688072,98.0003982932414743]},"#eeffee":{"lch":[98.3804582036479,13.96608756186059,127.715012949221688],"luv":[98.3804582036479,-8.54353535492541205,11.0480588984987129],"rgb":[0.933333333333333348,1,0.933333333333333348],"xyz":[0.864485164406700646,0.958697352983577,0.948420450863318],"hpluv":[127.715012949221688,414.943064796341446,98.3804582036479],"hsluv":[127.715012949221688,99.9999999999608491,98.3804582036479]},"#eeffff":{"lch":[98.7952747621608438,9.43620053547767768,192.177050630058204],"luv":[98.7952747621608438,-9.22389036737693679,-1.99040876112424892],"rgb":[0.933333333333333348,1,1],"xyz":[0.890656212816532067,0.969165772347509669,1.0862546391551],"hpluv":[192.177050630058204,378.040319927501173,98.7952747621608438],"hsluv":[192.177050630058204,99.999999999948713,98.7952747621608438]},"#778800":{"lch":[53.5249548615687303,60.5938372915660253,96.5029793655947259],"luv":[53.5249548615687303,-6.86254771619202231,60.2039745910497572],"rgb":[0.466666666666666674,0.533333333333333326,0],"xyz":[0.164113529192872309,0.215302056971235917,0.0329119655983314136],"hpluv":[96.5029793655947259,143.651932639250902,53.5249548615687303],"hsluv":[96.5029793655947259,100.000000000002373,53.5249548615687303]},"#778811":{"lch":[53.5684856288310272,58.8481082257442409,96.7583563096261088],"luv":[53.5684856288310272,-6.9253766303469888,58.4391906196240143],"rgb":[0.466666666666666674,0.533333333333333326,0.0666666666666666657],"xyz":[0.165125194692509442,0.21570672317109077,0.0382400705630870433],"hpluv":[96.7583563096261088,139.399900460742,53.5684856288310272],"hsluv":[96.7583563096261088,96.9357421545617,53.5684856288310272]},"#778822":{"lch":[53.6490362820541407,55.6690512282284615,97.2652817371477],"luv":[53.6490362820541407,-7.04010577997538,55.2220986133077147],"rgb":[0.466666666666666674,0.533333333333333326,0.133333333333333331],"xyz":[0.167000552830986443,0.216456866426481598,0.0481169567590662428],"hpluv":[97.2652817371477,131.671329649176641,53.6490362820541407],"hsluv":[97.2652817371477,91.3605066517003337,53.6490362820541407]},"#778833":{"lch":[53.7812573057213,50.5917713326567053,98.2096275165039856],"luv":[53.7812573057213,-7.22426441450666346,50.0733195448945381],"rgb":[0.466666666666666674,0.533333333333333326,0.2],"xyz":[0.170088303563444176,0.217691966719464697,0.064379110616677393],"hpluv":[98.2096275165039856,119.368094402160139,53.7812573057213],"hsluv":[98.2096275165039856,82.4672262716137539,53.7812573057213]},"#778844":{"lch":[53.9712743947247162,43.5928841845235198,99.8805739619221811],"luv":[53.9712743947247162,-7.48032491712259429,42.9462954241638357],"rgb":[0.466666666666666674,0.533333333333333326,0.266666666666666663],"xyz":[0.174546298807663064,0.219475164817152291,0.0878578855695640315],"hpluv":[99.8805739619221811,102.492540276722124,53.9712743947247162],"hsluv":[99.8805739619221811,70.2195807792145672,53.9712743947247162]},"#778855":{"lch":[54.2238135722873,34.8221097745323078,102.954066597198249],"luv":[54.2238135722873,-7.80606678579386326,33.9358903004666175],"rgb":[0.466666666666666674,0.533333333333333326,0.333333333333333315],"xyz":[0.180508712847025077,0.221860130432897124,0.119259932843537933],"hpluv":[102.954066597198249,81.4900057495692636,54.2238135722873],"hsluv":[102.954066597198249,54.8454134878709638,54.2238135722873]},"#778866":{"lch":[54.542475349788262,24.6519214642532667,109.417534351990682],"luv":[54.542475349788262,-8.19552569001744224,23.2497438812554442],"rgb":[0.466666666666666674,0.533333333333333326,0.4],"xyz":[0.188093708620533234,0.224894128742300414,0.159207577250681909],"hpluv":[109.417534351990682,57.3528835536874197,54.542475349788262],"hsluv":[109.417534351990682,36.7830408334215164,54.542475349788262]},"#778877":{"lch":[54.9298804020046703,14.1239929232838151,127.715012949231166],"luv":[54.9298804020046703,-8.6401314869560828,11.1729720300858784],"rgb":[0.466666666666666674,0.533333333333333326,0.466666666666666674],"xyz":[0.197407721640735168,0.228619733950381238,0.208261379157079818],"hpluv":[127.715012949231166,32.6278280107521041,54.9298804020046703],"hsluv":[127.715012949231166,16.6133799052879709,54.9298804020046703]},"#778888":{"lch":[55.3877640712208574,9.3400800844087577,192.177050630059369],"luv":[55.3877640712208574,-9.12993258220805437,-1.97013375878514596],"rgb":[0.466666666666666674,0.533333333333333326,0.533333333333333326],"xyz":[0.208548138742678968,0.233075900791158835,0.266934242560651958],"hpluv":[192.177050630059369,21.3981433643613,55.3877640712208574],"hsluv":[192.177050630059369,21.3143847536295468,55.3877640712208574]},"#778899":{"lch":[55.9170512374386703,18.5603965019494623,238.655736169794807],"luv":[55.9170512374386703,-9.65472976501325597,-15.851640655596027],"rgb":[0.466666666666666674,0.533333333333333326,0.6],"xyz":[0.221605102851751695,0.238298686434788,0.335700920201769892],"hpluv":[238.655736169794807,42.1194135101242679,55.9170512374386703],"hsluv":[238.655736169794807,26.1912729818073053,55.9170512374386703]},"#7788aa":{"lch":[56.5179258756863732,31.8473117719276075,251.310804784322386],"luv":[56.5179258756863732,-10.2049729927717898,-30.1680260095876527],"rgb":[0.466666666666666674,0.533333333333333326,0.66666666666666663],"xyz":[0.236662795817004223,0.244321763620889087,0.415004769818768493],"hpluv":[251.310804784322386,71.5032678590983721,56.5179258756863732],"hsluv":[251.310804784322386,31.1149405392867244,56.5179258756863732]},"#7788bb":{"lch":[57.1899017055338845,45.9393215269311881,256.438388794294667],"luv":[57.1899017055338845,-10.7723499078102041,-44.6584565319768387],"rgb":[0.466666666666666674,0.533333333333333326,0.733333333333333282],"xyz":[0.253800387924340898,0.251176800463823846,0.505262754917410239],"hpluv":[256.438388794294667,101.930593576715296,57.1899017055338845],"hsluv":[256.438388794294667,41.4357647235180622,57.1899017055338845]},"#7788cc":{"lch":[57.9318961804226547,60.1932243037694406,259.131204763586595],"luv":[57.9318961804226547,-11.3500713849249486,-59.1134513595764233],"rgb":[0.466666666666666674,0.533333333333333326,0.8],"xyz":[0.273092763368062652,0.258893750641312648,0.606869265587680395],"hpluv":[259.131204763586595,131.8466774878151,57.9318961804226547],"hsluv":[259.131204763586595,55.5026255722761661,57.9318961804226547]},"#7788dd":{"lch":[58.7423077351926679,74.3397271130694861,260.762999043897821],"luv":[58.7423077351926679,-11.9329115646152975,-73.3757497327060264],"rgb":[0.466666666666666674,0.533333333333333326,0.866666666666666696],"xyz":[0.29461108891869614,0.267501080861566209,0.720199113487686393],"hpluv":[260.762999043897821,160.586593274196787,58.7423077351926679],"hsluv":[260.762999043897821,69.9489143241080598,58.7423077351926679]},"#7788ee":{"lch":[59.6190949291064101,88.2283098571320465,261.84384456781811],"luv":[59.6190949291064101,-12.5170812067924775,-87.3358880318318285],"rgb":[0.466666666666666674,0.533333333333333326,0.933333333333333348],"xyz":[0.318423269184870905,0.277025952968036226,0.845609929556209616],"hpluv":[261.84384456781811,187.785436290663455,59.6190949291064101],"hsluv":[261.84384456781811,84.7689484415743237,59.6190949291064101]},"#7788ff":{"lch":[60.55985551741054,101.77153783075579,262.604380260147],"luv":[60.55985551741054,-13.1000102630052879,-100.924901008354297],"rgb":[0.466666666666666674,0.533333333333333326,1],"xyz":[0.344594317594702271,0.28749437233196895,0.983444117847991461],"hpluv":[262.604380260147,213.245970352856943,60.55985551741054],"hsluv":[262.604380260147,99.9999999999987921,60.55985551741054]},"#779900":{"lch":[58.6994568897504223,69.1976359459353603,103.993850276975294],"luv":[58.6994568897504223,-16.7332165977800322,67.1439668384135899],"rgb":[0.466666666666666674,0.6,0],"xyz":[0.189983129645339782,0.267041257876171612,0.0415351657491536685],"hpluv":[103.993850276975294,149.587912305351722,58.6994568897504223],"hsluv":[103.993850276975294,100.000000000002444,58.6994568897504223]},"#779911":{"lch":[58.7371702745588493,67.6759907780605232,104.326162498332039],"luv":[58.7371702745588493,-16.7458460058928829,65.5714600214076],"rgb":[0.466666666666666674,0.6,0.0666666666666666657],"xyz":[0.190994795144976914,0.267445924076026464,0.0468632707139093],"hpluv":[104.326162498332039,146.20456366036808,58.7371702745588493],"hsluv":[104.326162498332039,97.5197891999702,58.7371702745588493]},"#779922":{"lch":[58.8069803361006223,64.8997387816913,104.97431376012679],"luv":[58.8069803361006223,-16.7691829588827659,62.6958578920751464],"rgb":[0.466666666666666674,0.6,0.133333333333333331],"xyz":[0.192870153283453916,0.268196067331417265,0.0567401569098885],"hpluv":[104.97431376012679,140.04041716275114,58.8069803361006223],"hsluv":[104.97431376012679,92.9911396041894704,58.8069803361006223]},"#779933":{"lch":[58.9216385591388132,60.4528100001228097,106.14237332279157],"luv":[58.9216385591388132,-16.8074000849803582,58.0693855598141369],"rgb":[0.466666666666666674,0.6,0.2],"xyz":[0.195957904015911677,0.269431167624400392,0.0730023107674996341],"hpluv":[106.14237332279157,130.191012221085145,58.9216385591388132],"hsluv":[106.14237332279157,85.724115661044948,58.9216385591388132]},"#779944":{"lch":[59.0865618982540752,54.3006768161790845,108.091337704968765],"luv":[59.0865618982540752,-16.8621369683366211,51.6161974534756354],"rgb":[0.466666666666666674,0.6,0.266666666666666663],"xyz":[0.200415899260130537,0.271214365722087958,0.0964810857203862726],"hpluv":[108.091337704968765,116.615384645059635,59.0865618982540752],"hsluv":[108.091337704968765,75.6282332091309399,59.0865618982540752]},"#779955":{"lch":[59.3060149965037056,46.5647823410072945,111.326222899357617],"luv":[59.3060149965037056,-16.9345685221747893,43.3762532203180413],"rgb":[0.466666666666666674,0.6,0.333333333333333315],"xyz":[0.206378313299492522,0.273599331337832818,0.127883132994360188],"hpluv":[111.326222899357617,99.6318422422000367,59.3060149965037056],"hsluv":[111.326222899357617,62.8087826319283806,59.3060149965037056]},"#779966":{"lch":[59.5833535636433282,37.5662597340720836,116.949978591108717],"luv":[59.5833535636433282,-17.0254963867212936,33.4866591823296957],"rgb":[0.466666666666666674,0.6,0.4],"xyz":[0.213963309073000707,0.276633329647236137,0.16783077740150415],"hpluv":[116.949978591108717,80.0041177209304522,59.5833535636433282],"hsluv":[116.949978591108717,47.5357009492008,59.5833535636433282]},"#779977":{"lch":[59.921152065724,28.0111989307655129,127.71501294923614],"luv":[59.921152065724,-17.1354122862910181,22.1586306282167591],"rgb":[0.466666666666666674,0.6,0.466666666666666674],"xyz":[0.223277322093202613,0.280358934855316932,0.216884579307902059],"hpluv":[127.71501294923614,59.3185968765002301,59.921152065724],"hsluv":[127.71501294923614,30.2037385091367128,59.921152065724]},"#779988":{"lch":[60.3212826107906608,19.7788738743410271,150.794869664161695],"luv":[60.3212826107906608,-17.2645515875173317,9.65086059473676272],"rgb":[0.466666666666666674,0.6,0.533333333333333326],"xyz":[0.234417739195146468,0.28481510169609453,0.275557442711474199],"hpluv":[150.794869664161695,41.6073752981458043,60.3212826107906608],"hsluv":[150.794869664161695,33.5278156565034706,60.3212826107906608]},"#779999":{"lch":[60.7849725890424537,17.8137422376051369,192.177050630060307],"luv":[60.7849725890424537,-17.4129412378011317,-3.75751113860251662],"rgb":[0.466666666666666674,0.6,0.6],"xyz":[0.247474703304219168,0.290037887339723688,0.344324120352592133],"hpluv":[192.177050630060307,37.1876097830212373,60.7849725890424537],"hsluv":[192.177050630060307,37.0420465685486562,60.7849725890424537]},"#7799aa":{"lch":[61.3128540464897895,25.0117677757311512,225.340924984985747],"luv":[61.3128540464897895,-17.5804418295499474,-17.7909131959243076],"rgb":[0.466666666666666674,0.6,0.66666666666666663],"xyz":[0.262532396269471724,0.29606096452582481,0.423627969969590734],"hpluv":[225.340924984985747,51.7645188682129742,61.3128540464897895],"hsluv":[225.340924984985747,40.6599304384258815,61.3128540464897895]},"#7799bb":{"lch":[61.9050111975332129,36.7727368637825478,241.108601392342877],"luv":[61.9050111975332129,-17.766782778670386,-32.1958942436537],"rgb":[0.466666666666666674,0.6,0.733333333333333282],"xyz":[0.279669988376808343,0.302916001368759569,0.513885955068232425],"hpluv":[241.108601392342877,75.37710856774234,61.9050111975332129],"hsluv":[241.108601392342877,44.3026829048042927,61.9050111975332129]},"#7799cc":{"lch":[62.5610290710097274,50.0883036089361084,248.973595844380469],"luv":[62.5610290710097274,-17.971590279241223,-46.7531827927901],"rgb":[0.466666666666666674,0.6,0.8],"xyz":[0.298962363820530097,0.31063295154624837,0.615492465738502581],"hpluv":[248.973595844380469,101.594866952252644,62.5610290710097274],"hsluv":[248.973595844380469,49.5852758814030068,62.5610290710097274]},"#7799dd":{"lch":[63.2800443412030518,63.9273589508424962,253.464421950176984],"luv":[63.2800443412030518,-18.1944086519195096,-61.2835272829234228],"rgb":[0.466666666666666674,0.6,0.866666666666666696],"xyz":[0.320480689371163641,0.319240281766501877,0.728822313638508579],"hpluv":[253.464421950176984,128.191525099113591,63.2800443412030518],"hsluv":[253.464421950176984,65.7895471985927429,63.2800443412030518]},"#7799ee":{"lch":[64.0607982423263138,77.8622331281598292,256.304567564122067],"luv":[64.0607982423263138,-18.434716379612933,-75.6484539148497106],"rgb":[0.466666666666666674,0.6,0.933333333333333348],"xyz":[0.344292869637338406,0.328765153872971894,0.854233129707031802],"hpluv":[256.304567564122067,154.231767587931557,64.0607982423263138],"hsluv":[256.304567564122067,82.5871459557978085,64.0607982423263138]},"#7799ff":{"lch":[64.9016907971027,91.67329289213788,258.23504341307023],"luv":[64.9016907971027,-18.6919383586334327,-89.7474460365571929],"rgb":[0.466666666666666674,0.6,1],"xyz":[0.370463918047169771,0.339233573236904618,0.992067317998813758],"hpluv":[258.23504341307023,179.236372955016122,64.9016907971027],"hsluv":[258.23504341307023,99.9999999999984368,64.9016907971027]},"#660000":{"lch":[19.330201679573328,65.0080772249371819,12.1770506300617765],"luv":[19.330201679573328,63.5454254137925432,13.7123671721378795],"rgb":[0.4,0,0],"xyz":[0.0547936733227042463,0.0282529878070199789,0.00256845343700170745],"hpluv":[12.1770506300617765,426.746789183125202,19.330201679573328],"hsluv":[12.1770506300617765,100.000000000002217,19.330201679573328]},"#660011":{"lch":[19.4980803058243595,61.695772445130423,8.9911342856641614],"luv":[19.4980803058243595,60.9376877881905799,9.641916024853316],"rgb":[0.4,0,0.0666666666666666657],"xyz":[0.0558053388223413716,0.0286576540068748317,0.0078965584017573389],"hpluv":[8.9911342856641614,401.51602003210553,19.4980803058243595],"hsluv":[8.9911342856641614,99.9999999999966178,19.4980803058243595]},"#660022":{"lch":[19.8051492014688648,56.728751528179842,2.87530221933591967],"luv":[19.8051492014688648,56.6573341637173584,2.84565201787440492],"rgb":[0.4,0,0.133333333333333331],"xyz":[0.0576806969608183867,0.029407797262265653,0.0177734445977365332],"hpluv":[2.87530221933591967,363.466537566247382,19.8051492014688648],"hsluv":[2.87530221933591967,99.9999999999968594,19.8051492014688648]},"#660033":{"lch":[20.2995520444984123,51.2727836305606957,352.516911450402631],"luv":[20.2995520444984123,50.836110988726972,-6.67743669143524787],"rgb":[0.4,0,0.2],"xyz":[0.0607684476932761272,0.0306428975552487659,0.0340355984553476765],"hpluv":[352.516911450402631,320.508659944055125,20.2995520444984123],"hsluv":[352.516911450402631,99.9999999999973852,20.2995520444984123]},"#660044":{"lch":[20.9904438433464762,47.7800185043531087,338.095292373375855],"luv":[20.9904438433464762,44.3305689635839855,-17.8250055719836844],"rgb":[0.4,0,0.266666666666666663],"xyz":[0.0652264429374950078,0.0324260956529363389,0.057514373408234315],"hpluv":[338.095292373375855,288.844444062118953,20.9904438433464762],"hsluv":[338.095292373375855,99.999999999997911,20.9904438433464762]},"#660055":{"lch":[21.8759682447435324,48.0792454528985687,322.009867044845],"luv":[21.8759682447435324,37.8920594608334085,-29.5940141436867741],"rgb":[0.4,0,0.333333333333333315],"xyz":[0.071188856976857,0.0348110612686811718,0.0889164206822082304],"hpluv":[322.009867044845,278.887908627948889,21.8759682447435324],"hsluv":[322.009867044845,99.9999999999984,21.8759682447435324]},"#660066":{"lch":[22.9458380566939866,52.2668983658326383,307.715012949243601],"luv":[22.9458380566939866,31.9734565677830815,-41.3464235441515271],"rgb":[0.4,0,0.4],"xyz":[0.0787738527503651781,0.0378450595780844834,0.128864065089352192],"hpluv":[307.715012949243601,289.042783730483393,22.9458380566939866],"hsluv":[307.715012949243601,99.9999999999988,22.9458380566939866]},"#660077":{"lch":[24.1840444716539054,59.1802438936044553,296.875135467660698],"luv":[24.1840444716539054,26.7522904844618061,-52.7884099129864097],"rgb":[0.4,0,0.466666666666666674],"xyz":[0.0880878657705671,0.0415706647861653,0.177917866995750101],"hpluv":[296.875135467660698,310.518260327731298,24.1840444716539054],"hsluv":[296.875135467660698,99.9999999999992326,24.1840444716539054]},"#660088":{"lch":[25.5714349826340381,67.6035320092512819,289.201479741547303],"luv":[25.5714349826340381,22.2341957091879898,-63.8426039670327725],"rgb":[0.4,0,0.533333333333333326],"xyz":[0.0992282828725109256,0.0460268316269428907,0.236590730399322269],"hpluv":[289.201479741547303,335.469941782198191,25.5714349826340381],"hsluv":[289.201479741547303,99.9999999999995168,25.5714349826340381]},"#660099":{"lch":[27.0878540213863559,76.7583277742970296,283.827270614430063],"luv":[27.0878540213863559,18.3449067131383,-74.5339203342523291],"rgb":[0.4,0,0.6],"xyz":[0.112285246981583625,0.0512496172705720551,0.305357408040440148],"hpluv":[283.827270614430063,359.575614235331898,27.0878540213863559],"hsluv":[283.827270614430063,99.9999999999996732,27.0878540213863559]},"#6600aa":{"lch":[28.7136916664512327,86.2331190336617226,280.0081392435834],"luv":[28.7136916664512327,14.9862877024472088,-84.9209161465722246],"rgb":[0.4,0,0.66666666666666663],"xyz":[0.127342939946836181,0.0572726944566731566,0.384661257657438749],"hpluv":[280.0081392435834,381.087223541781498,28.7136916664512327],"hsluv":[280.0081392435834,99.9999999999998863,28.7136916664512327]},"#6600bb":{"lch":[30.4308478844127208,95.8259209373334784,277.232006261077231],"luv":[30.4308478844127208,12.063278317584528,-95.06358103774852],"rgb":[0.4,0,0.733333333333333282],"xyz":[0.144480532054172828,0.0641277312996079152,0.474919242756080495],"hpluv":[277.232006261077231,399.584170303460496,30.4308478844127208],"hsluv":[277.232006261077231,100.000000000000071,30.4308478844127208]},"#6600cc":{"lch":[32.2232190058254631,105.440117399912424,275.16595430901134],"luv":[32.2232190058254631,9.49391256045434,-105.011827817640437],"rgb":[0.4,0,0.8],"xyz":[0.163772907497894554,0.0718446814770967168,0.576525753426350707],"hpluv":[275.16595430901134,415.218107165999243,32.2232190058254631],"hsluv":[275.16595430901134,100.000000000000284,32.2232190058254631]},"#6600dd":{"lch":[34.0768449366564425,115.029794578821409,273.594219506454294],"luv":[34.0768449366564425,7.21119822634443164,-114.803537667557165],"rgb":[0.4,0,0.866666666666666696],"xyz":[0.185291233048528098,0.0804520116973502508,0.689855601326356704],"hpluv":[273.594219506454294,428.341637585051217,34.0768449366564425],"hsluv":[273.594219506454294,100.000000000000313,34.0768449366564425]},"#6600ee":{"lch":[35.9798440153965657,124.573148355199,272.374748889870204],"luv":[35.9798440153965657,5.16172842086039729,-124.466163477612255],"rgb":[0.4,0,0.933333333333333348],"xyz":[0.209103413314702835,0.0899768838038202817,0.815266417394879928],"hpluv":[272.374748889870204,439.343788723350144,35.9798440153965657],"hsluv":[272.374748889870204,100.000000000000313,35.9798440153965657]},"#6600ff":{"lch":[37.9222328155672699,134.059876636217865,271.411957283269032],"luv":[37.9222328155672699,3.30334385288953181,-134.01917192367489],"rgb":[0.4,0,1],"xyz":[0.235274461724534228,0.100445303167752992,0.953100605686661773],"hpluv":[271.411957283269032,448.58447779597617,37.9222328155672699],"hsluv":[271.411957283269032,100.00000000000054,37.9222328155672699]},"#661100":{"lch":[20.9278595225824304,60.6482483509225645,15.3961031612090817],"luv":[20.9278595225824304,58.4717927536604165,16.1015365791022269],"rgb":[0.4,0.0666666666666666657,0],"xyz":[0.0567980735836326536,0.0322617883288768559,0.00323658685731115833],"hpluv":[15.3961031612090817,367.733145903292666,20.9278595225824304],"hsluv":[15.3961031612090817,100.00000000000216,20.9278595225824304]},"#661111":{"lch":[21.0816163302651134,57.5811303886473453,12.1770506300618102],"luv":[21.0816163302651134,56.2855814623301782,12.1457768908291825],"rgb":[0.4,0.0666666666666666657,0.0666666666666666657],"xyz":[0.0578097390832697788,0.0326664545287317087,0.00856469182206678892],"hpluv":[12.1770506300618102,346.589664487627374,21.0816163302651134],"hsluv":[12.1770506300618102,81.2167011616125762,21.0816163302651134]},"#661122":{"lch":[21.363314856368774,52.932385078801687,5.93410154371749865],"luv":[21.363314856368774,52.6487447994206548,5.4723908098767966],"rgb":[0.4,0.0666666666666666657,0.133333333333333331],"xyz":[0.059685097221746794,0.0334165977841225301,0.018441578018045985],"hpluv":[5.93410154371749865,314.406957937895,21.363314856368774],"hsluv":[5.93410154371749865,82.5199513610387356,21.363314856368774]},"#661133":{"lch":[21.8180817632255923,47.7742586248590229,355.183549580278111],"luv":[21.8180817632255923,47.6055578330604661,-4.01131531521171425],"rgb":[0.4,0.0666666666666666657,0.2],"xyz":[0.0627728479542045414,0.0346516980771056429,0.0347037318756571317],"hpluv":[355.183549580278111,277.854041301729922,21.8180817632255923],"hsluv":[355.183549580278111,84.3121175303292603,21.8180817632255923]},"#661144":{"lch":[22.4559756968324393,44.5402485804784689,339.935360677682411],"luv":[22.4559756968324393,41.8369301419790247,-15.2808710453946635],"rgb":[0.4,0.0666666666666666657,0.266666666666666663],"xyz":[0.0672308431984234151,0.036434896174793216,0.0581825068285437702],"hpluv":[339.935360677682411,251.686564911624259,22.4559756968324393],"hsluv":[339.935360677682411,86.3348863624116518,22.4559756968324393]},"#661155":{"lch":[23.2773926977910151,45.1903944783221903,322.792583995755933],"luv":[23.2773926977910151,35.9919645110905364,-27.3267313035930464],"rgb":[0.4,0.0666666666666666657,0.333333333333333315],"xyz":[0.073193257237785414,0.0388198617905380489,0.0895845541025176717],"hpluv":[322.792583995755933,246.349182588766354,23.2773926977910151],"hsluv":[322.792583995755933,88.344826800164725,23.2773926977910151]},"#661166":{"lch":[24.275087751098269,49.8658315110702119,307.715012949243715],"luv":[24.275087751098269,30.5046415204515107,-39.4470277460696508],"rgb":[0.4,0.0666666666666666657,0.4],"xyz":[0.0807782530112935854,0.0418538600999413604,0.129532198509661634],"hpluv":[307.715012949243715,260.664316843383688,24.275087751098269],"hsluv":[307.715012949243715,90.1819147598703239,24.275087751098269]},"#661177":{"lch":[25.4363091503391701,57.3032374709331265,296.512546946797],"luv":[25.4363091503391701,25.5798087859014238,-51.2770358652572114],"rgb":[0.4,0.0666666666666666657,0.466666666666666674],"xyz":[0.0900922660314955,0.0455794653080221768,0.178586000416059543],"hpluv":[296.512546946797,285.867241464858182,25.4363091503391701],"hsluv":[296.512546946797,91.7740463972148461,25.4363091503391701]},"#661188":{"lch":[26.7449145171680129,66.1973281861227179,288.734792076243366],"luv":[26.7449145171680129,21.2617948521868456,-62.6898902427238127],"rgb":[0.4,0.0666666666666666657,0.533333333333333326],"xyz":[0.101232683133439333,0.0500356321487997746,0.23725886381963171],"hpluv":[288.734792076243366,314.078764213635395,26.7449145171680129],"hsluv":[288.734792076243366,93.110372692245349,26.7449145171680129]},"#661199":{"lch":[28.1832309630650286,75.7381406209258614,283.36677781159608],"luv":[28.1832309630650286,17.5094321789343716,-73.6864012521064637],"rgb":[0.4,0.0666666666666666657,0.6],"xyz":[0.114289647242512032,0.0552584177924289321,0.306025541460749617],"hpluv":[283.36677781159608,341.006914961476241,28.1832309630650286],"hsluv":[283.36677781159608,94.2123428080992,28.1832309630650286]},"#6611aa":{"lch":[29.733500038717203,85.5146667147819102,279.591039159426828],"luv":[29.733500038717203,14.2479867443400359,-84.3193518539685],"rgb":[0.4,0.0666666666666666657,0.66666666666666663],"xyz":[0.129347340207764588,0.0612814949785300336,0.385329391077748218],"hpluv":[279.591039159426828,364.950446526832081,29.733500038717203],"hsluv":[279.591039159426828,95.1136535912152254,29.733500038717203]},"#6611bb":{"lch":[31.378866229854367,95.3367425151459287,276.866082014695],"luv":[31.378866229854367,11.3974241300945351,-94.6530147253534153],"rgb":[0.4,0.0666666666666666657,0.733333333333333282],"xyz":[0.146484932315101235,0.0681365318214647853,0.475587376176389964],"hpluv":[276.866082014695,385.533736621086632,31.378866229854367],"hsluv":[276.866082014695,95.8493220980777636,31.378866229854367]},"#6611cc":{"lch":[33.1039576367877899,105.121866511028642,274.848446148865946],"luv":[33.1039576367877899,8.88494143701037409,-104.745714157780327],"rgb":[0.4,0.0666666666666666657,0.8],"xyz":[0.165777307758822962,0.0758534819989535869,0.577193886846660176],"hpluv":[274.848446148865946,402.951217622234481,33.1039576367877899],"hsluv":[274.848446148865946,96.4508528344463372,33.1039576367877899]},"#6611dd":{"lch":[34.8951509835915559,114.837148656435488,273.319244536407894],"luv":[34.8951509835915559,6.64899595047804048,-114.644500803094743],"rgb":[0.4,0.0666666666666666657,0.866666666666666696],"xyz":[0.187295633309456505,0.0844608122192071209,0.690523734746666173],"hpluv":[273.319244536407894,417.596303228590671,34.8951509835915559],"hsluv":[273.319244536407894,96.944722371929771,34.8951509835915559]},"#6611ee":{"lch":[36.7406193088150914,124.471664845310258,272.136065946829319],"luv":[36.7406193088150914,4.63940101804097527,-124.385173182164465],"rgb":[0.4,0.0666666666666666657,0.933333333333333348],"xyz":[0.211107813575631242,0.0939856843256771657,0.815934550815189397],"hpluv":[272.136065946829319,429.895948632666091,36.7406193088150914],"hsluv":[272.136065946829319,97.3524117238680446,36.7406193088150914]},"#6611ff":{"lch":[38.6302462525687815,134.023748920536207,271.203906716280642],"luv":[38.6302462525687815,2.81591803113255,-133.994163605572282],"rgb":[0.4,0.0666666666666666657,1],"xyz":[0.237278861985462636,0.104454103689609862,0.953768739106971242],"hpluv":[271.203906716280642,440.244168299440901,38.6302462525687815],"hsluv":[271.203906716280642,99.999999999999531,38.6302462525687815]},"#662200":{"lch":[23.5697003211059126,54.0433218319152,21.7646438431993481],"luv":[23.5697003211059126,50.1908335966774928,20.038983444740694],"rgb":[0.4,0.133333333333333331,0],"xyz":[0.0605136973184005889,0.0396930357984128235,0.00447512810223376842],"hpluv":[21.7646438431993481,290.955989204018863,23.5697003211059126],"hsluv":[21.7646438431993481,100.000000000002302,23.5697003211059126]},"#662211":{"lch":[23.7037155268300239,51.2256671637292627,18.5481266113504795],"luv":[23.7037155268300239,48.5648418325832196,16.2949413667354186],"rgb":[0.4,0.133333333333333331,0.0666666666666666657],"xyz":[0.0615253628180377071,0.0400977019982676763,0.0098032330669894],"hpluv":[18.5481266113504795,274.227196288753476,23.7037155268300239],"hsluv":[18.5481266113504795,84.4421944630679775,23.7037155268300239]},"#662222":{"lch":[23.9497782760704823,46.8639841586094761,12.177050630061828],"luv":[23.9497782760704823,45.8095660888384515,9.88517404858116],"rgb":[0.4,0.133333333333333331,0.133333333333333331],"xyz":[0.0634007209565147362,0.0408478452536585,0.0196801192629685942],"hpluv":[12.177050630061828,248.300181449835577,23.9497782760704823],"hsluv":[12.177050630061828,58.184428739378582,23.9497782760704823]},"#662233":{"lch":[24.3484354577474491,41.8866591548313139,0.79920805816821483],"luv":[24.3484354577474491,41.8825842907357284,0.584250188216085209],"rgb":[0.4,0.133333333333333331,0.2],"xyz":[0.0664884716889724697,0.0420829455466416105,0.0359422731205797374],"hpluv":[0.79920805816821483,218.295100847162672,24.3484354577474491],"hsluv":[0.79920805816821483,61.8388407102714908,24.3484354577474491]},"#662244":{"lch":[24.9104705449366364,38.7518995195090881,343.921953822216381],"luv":[24.9104705449366364,37.2361321960480467,-10.7322027305005232],"rgb":[0.4,0.133333333333333331,0.266666666666666663],"xyz":[0.0709464669331913433,0.0438661436443291836,0.059421048073466376],"hpluv":[343.921953822216381,197.40147375767063,24.9104705449366364],"hsluv":[343.921953822216381,66.1143919991375,24.9104705449366364]},"#662255":{"lch":[25.6388481254070371,39.7515606661792376,324.488651014584605],"luv":[25.6388481254070371,32.3577893991285421,-23.0902585650003651],"rgb":[0.4,0.133333333333333331,0.333333333333333315],"xyz":[0.0769088809725533423,0.0462511092600740165,0.0908230953474402913],"hpluv":[324.488651014584605,196.74105716675524,25.6388481254070371],"hsluv":[324.488651014584605,70.5303777194930746,25.6388481254070371]},"#662266":{"lch":[26.530115175026431,45.1550068711170525,307.715012949244],"luv":[26.530115175026431,27.6228683191850166,-35.7204674010796381],"rgb":[0.4,0.133333333333333331,0.4],"xyz":[0.0844938767460615137,0.049285107569477328,0.130770739754584253],"hpluv":[307.715012949244,215.976303505553034,26.530115175026431],"hsluv":[307.715012949244,74.7212231760600076,26.530115175026431]},"#662277":{"lch":[27.5758503181253047,53.47184404785515,295.772994892671647],"luv":[27.5758503181253047,23.2499163509258366,-48.1526686233805137],"rgb":[0.4,0.133333333333333331,0.466666666666666674],"xyz":[0.0938078897662634331,0.0530107127775581444,0.179824541660982162],"hpluv":[295.772994892671647,246.056915236342576,27.5758503181253047],"hsluv":[295.772994892671647,78.4792949436714622,27.5758503181253047]},"#662288":{"lch":[28.7641691288539221,63.1969785740596492,287.807032602413699],"luv":[28.7641691288539221,19.3264050913403267,-60.169329123196718],"rgb":[0.4,0.133333333333333331,0.533333333333333326],"xyz":[0.104948306868207261,0.0574668796183357422,0.23849740506455433],"hpluv":[287.807032602413699,278.794247273594806,28.7641691288539221],"hsluv":[287.807032602413699,81.7283139306751565,28.7641691288539221]},"#662299":{"lch":[30.081149723697223,73.446586603294,282.467625610713],"luv":[30.081149723697223,15.8562317990126083,-71.7145800853016766],"rgb":[0.4,0.133333333333333331,0.6],"xyz":[0.118005270977279975,0.0626896652619649,0.307264082705672237],"hpluv":[282.467625610713,309.825038390781458,30.081149723697223],"hsluv":[282.467625610713,84.475317587044259,30.081149723697223]},"#6622aa":{"lch":[31.512047889249807,83.7990879252892569,278.786617054458873],"luv":[31.512047889249807,12.8007301136733549,-82.8156292354725565],"rgb":[0.4,0.133333333333333331,0.66666666666666663],"xyz":[0.133062963942532531,0.068712742448066,0.386567932322670837],"hpluv":[278.786617054458873,337.444217562648532,31.512047889249807],"hsluv":[278.786617054458873,86.7692530837111349,31.512047889249807]},"#6622bb":{"lch":[33.0422299311305281,94.07636648958254,276.16643073789237],"luv":[33.0422299311305281,10.1053888262289746,-93.5320471739658643],"rgb":[0.4,0.133333333333333331,0.733333333333333282],"xyz":[0.150200556049869149,0.0755677792910007529,0.476825917421312584],"hpluv":[276.16643073789237,361.285484259324733,33.0422299311305281],"hsluv":[276.16643073789237,88.6739591516067662,33.0422299311305281]},"#6622cc":{"lch":[34.6578144612334853,104.214655833315277,274.245119058655746],"luv":[34.6578144612334853,7.71433729467952212,-103.928742369761551],"rgb":[0.4,0.133333333333333331,0.8],"xyz":[0.169492931493590904,0.0832847294684895545,0.578432428091582684],"hpluv":[274.245119058655746,381.563613242959605,34.6578144612334853],"hsluv":[274.245119058655746,90.2534916489383079,34.6578144612334853]},"#6622dd":{"lch":[36.346058304563158,114.200305800004017,272.799119030217753],"luv":[36.346058304563158,5.5769048208672336,-114.064052082299],"rgb":[0.4,0.133333333333333331,0.866666666666666696],"xyz":[0.191011257044224447,0.0918920596887430885,0.691762275991588682],"hpluv":[272.799119030217753,398.702789727268566,36.346058304563158],"hsluv":[272.799119030217753,91.5654894217155118,36.346058304563158]},"#6622ee":{"lch":[38.0955422395423,124.039689220569301,271.686141036519132],"luv":[38.0955422395423,3.64980151132168062,-123.985980864222597],"rgb":[0.4,0.133333333333333331,0.933333333333333348],"xyz":[0.214823437310399185,0.101416931795213133,0.817173092060111905],"hpluv":[271.686141036519132,413.167199445381073,38.0955422395423],"hsluv":[271.686141036519132,92.6590152569973498,38.0955422395423]},"#6622ff":{"lch":[39.8962147757429264,133.745689778340022,270.812765394378914],"luv":[39.8962147757429264,1.89717678294479941,-133.732233416399],"rgb":[0.4,0.133333333333333331,1],"xyz":[0.240994485720230578,0.111885351159145829,0.95500728035189375],"hpluv":[270.812765394378914,425.390148773484384,39.8962147757429264],"hsluv":[270.812765394378914,99.99999999999946,39.8962147757429264]},"#ddaa00":{"lch":[72.3107430320736881,86.5721801417344494,59.9465914104400071],"luv":[72.3107430320736881,43.355958426121056,74.9333253195491267],"rgb":[0.866666666666666696,0.66666666666666663,0],"xyz":[0.441922241377765923,0.441231641500849037,0.0618909005679976823],"hpluv":[59.9465914104400071,151.919966798177825,72.3107430320736881],"hsluv":[59.9465914104400071,100.000000000002402,72.3107430320736881]},"#ddaa11":{"lch":[72.3377322217577188,85.4954146103564625,59.6744594052448178],"luv":[72.3377322217577188,43.1676990261245663,73.7971251485224],"rgb":[0.866666666666666696,0.66666666666666663,0.0666666666666666657],"xyz":[0.442933906877403,0.44163630770070389,0.067219005532753312],"hpluv":[59.6744594052448178,149.974443711406025,72.3377322217577188],"hsluv":[59.6744594052448178,98.5180859943944398,72.3377322217577188]},"#ddaa22":{"lch":[72.3877194091470386,83.5208789068112623,59.1557200492863586],"luv":[72.3877194091470386,42.8217010650181038,71.708013019916109],"rgb":[0.866666666666666696,0.66666666666666663,0.133333333333333331],"xyz":[0.444809265015880084,0.44238645095609469,0.0770958917287325],"hpluv":[59.1557200492863586,146.409577733002152,72.3877194091470386],"hsluv":[59.1557200492863586,95.7957425728033911,72.3877194091470386]},"#ddaa33":{"lch":[72.4698996386445771,80.3304907566891,58.2589820164620633],"luv":[72.4698996386445771,42.2603136650720543,68.3158373595774435],"rgb":[0.866666666666666696,0.66666666666666663,0.2],"xyz":[0.44789701574833779,0.443621551249077817,0.0933580455863436548],"hpluv":[58.2589820164620633,140.657238526484292,72.4698996386445771],"hsluv":[58.2589820164620633,91.3821490755410082,72.4698996386445771]},"#ddaa44":{"lch":[72.5882801580772679,75.8571050863154,56.8623293870095949],"luv":[72.5882801580772679,41.467485474955744,63.5196665644635701],"rgb":[0.866666666666666696,0.66666666666666663,0.266666666666666663],"xyz":[0.452355010992556705,0.445404749346765383,0.116836820539230293],"hpluv":[56.8623293870095949,132.607804442486071,72.5882801580772679],"hsluv":[56.8623293870095949,85.1564308385751332,72.5882801580772679]},"#ddaa55":{"lch":[72.7461171317656579,70.1198989219024469,54.780917696258733],"luv":[72.7461171317656579,40.4384565855633085,57.2846528644045065],"rgb":[0.866666666666666696,0.66666666666666663,0.333333333333333315],"xyz":[0.45831742503191869,0.447789714962510244,0.148238867813204195],"hpluv":[54.780917696258733,122.3124851735341,72.7461171317656579],"hsluv":[54.780917696258733,77.0893717991816345,72.7461171317656579]},"#ddaa66":{"lch":[72.9460991959627307,63.2340905833455835,51.7145858463931702],"luv":[72.9460991959627307,39.17852917707404,49.6345954292357661],"rgb":[0.866666666666666696,0.66666666666666663,0.4],"xyz":[0.465902420805426876,0.450823713271913562,0.188186512220348157],"hpluv":[51.7145858463931702,109.998947735143361,72.9460991959627307],"hsluv":[51.7145858463931702,67.2337497701281421,72.9460991959627307]},"#ddaa77":{"lch":[73.1904440644495651,55.4382228560327377,47.150998877343909],"luv":[73.1904440644495651,37.7017926183457632,40.6444508733775294],"rgb":[0.866666666666666696,0.66666666666666663,0.466666666666666674],"xyz":[0.475216433825628781,0.454549318479994358,0.237240314126746066],"hpluv":[47.150998877343909,96.1156803308001173,73.1904440644495651],"hsluv":[47.150998877343909,55.7140089565642214,73.1904440644495651]},"#ddaa88":{"lch":[73.4809558021361511,47.1613293807763228,40.1850915920125189],"luv":[73.4809558021361511,36.0295555463961819,30.4312687229965526],"rgb":[0.866666666666666696,0.66666666666666663,0.533333333333333326],"xyz":[0.486356850927572582,0.459005485320771955,0.295913177530318261],"hpluv":[40.1850915920125189,81.4424009312931645,73.4809558021361511],"hsluv":[40.1850915920125189,45.325944585658668,73.4809558021361511]},"#ddaa99":{"lch":[73.8190624606049539,39.1833139250455389,29.2463480703396321],"luv":[73.8190624606049539,34.1885051927702435,19.1436204212419021],"rgb":[0.866666666666666696,0.66666666666666663,0.6],"xyz":[0.499413815036645281,0.464228270964401113,0.36467985517143614],"hpluv":[29.2463480703396321,67.3553294964948,73.8190624606049539],"hsluv":[29.2463480703396321,46.1073405736803323,73.8190624606049539]},"#ddaaaa":{"lch":[74.2058435914849923,32.9500913661112946,12.1770506300625296],"luv":[74.2058435914849923,32.2087294789219527,6.95027095793437244],"rgb":[0.866666666666666696,0.66666666666666663,0.66666666666666663],"xyz":[0.514471508001897893,0.470251348150502235,0.443983704788434741],"hpluv":[12.1770506300625296,56.3453191386000114,74.2058435914849923],"hsluv":[12.1770506300625296,46.9171896008106,74.2058435914849923]},"#ddaabb":{"lch":[74.6420527030620633,30.7078714289026884,348.787813428378513],"luv":[74.6420527030620633,30.1217754775259223,-5.97093039446416807],"rgb":[0.866666666666666696,0.66666666666666663,0.733333333333333282],"xyz":[0.531609100109234456,0.477106384993437,0.534241689887076543],"hpluv":[348.787813428378513,52.2042025244198,74.6420527030620633],"hsluv":[348.787813428378513,47.7320050944543937,74.6420527030620633]},"#ddaacc":{"lch":[75.1281375044867445,34.0548346014018435,325.184688201169763],"luv":[75.1281375044867445,27.9589055182432595,-19.4430286208394669],"rgb":[0.866666666666666696,0.66666666666666663,0.8],"xyz":[0.55090147555295621,0.484823335170925795,0.635848200557346699],"hpluv":[325.184688201169763,57.5195499622066393,75.1281375044867445],"hsluv":[325.184688201169763,48.5278754329488109,75.1281375044867445]},"#ddaadd":{"lch":[75.6642595524878772,42.092894356631966,307.715012949247466],"luv":[75.6642595524878772,25.749668941594777,-33.2981426616688125],"rgb":[0.866666666666666696,0.66666666666666663,0.866666666666666696],"xyz":[0.572419801103589809,0.493430665391179302,0.749178048457352697],"hpluv":[307.715012949247466,70.5922995729826255,75.6642595524878772],"hsluv":[307.715012949247466,49.2811497501269855,75.6642595524878772]},"#ddaaee":{"lch":[76.2503141773092636,52.9001531738191915,296.399494755977059],"luv":[76.2503141773092636,23.5208512504545659,-47.3834967290038875],"rgb":[0.866666666666666696,0.66666666666666663,0.933333333333333348],"xyz":[0.596231981369764519,0.502955537497649319,0.87458886452587592],"hpluv":[296.399494755977059,89.1958388421213,76.2503141773092636],"hsluv":[296.399494755977059,73.8038640729286,76.2503141773092636]},"#ddaaff":{"lch":[76.8859510948180542,65.1444004641461447,289.080822119258073],"luv":[76.8859510948180542,21.295808093697417,-61.565261872824486],"rgb":[0.866666666666666696,0.66666666666666663,1],"xyz":[0.62240302977959594,0.513423956861582,1.01242305281765765],"hpluv":[289.080822119258073,113.514774922986319,76.8859510948180542],"hsluv":[289.080822119258073,99.9999999999968736,76.8859510948180542]},"#663300":{"lch":[27.2772702365161024,46.6784293424923,33.1138040531735385],"luv":[27.2772702365161024,39.0972512948193938,25.5006020923387098],"rgb":[0.4,0.2,0],"xyz":[0.0666314194074114075,0.0519284799764346272,0.00651436879857064926],"hpluv":[33.1138040531735385,217.147410386557254,27.2772702365161024],"hsluv":[33.1138040531735385,100.000000000002288,27.2772702365161024]},"#663311":{"lch":[27.3893959478715772,43.971204952951652,30.1269617465812196],"luv":[27.3893959478715772,38.0313691656755353,22.0699303215615963],"rgb":[0.4,0.2,0.0666666666666666657],"xyz":[0.0676430849070485257,0.0523331461762894801,0.0118424737633262799],"hpluv":[30.1269617465812196,203.716046393577358,27.3893959478715772],"hsluv":[30.1269617465812196,87.8713966090680572,27.3893959478715772]},"#663322":{"lch":[27.5957277293980781,39.608651287835805,23.9834802389854467],"luv":[27.5957277293980781,36.1889469500517436,16.0998563809655693],"rgb":[0.4,0.2,0.133333333333333331],"xyz":[0.0695184430455255548,0.0530832894316803,0.0217193599593054759],"hpluv":[23.9834802389854467,182.132533879714401,27.5957277293980781],"hsluv":[23.9834802389854467,66.9779468056010501,27.5957277293980781]},"#663333":{"lch":[27.9312558147072,34.2527069144242517,12.1770506300619683],"luv":[27.9312558147072,33.482036777055967,7.2250359324586606],"rgb":[0.4,0.2,0.2],"xyz":[0.0726061937779832883,0.0543183897246634143,0.0379815138169166192],"hpluv":[12.1770506300619683,155.612242967619039,27.9312558147072],"hsluv":[12.1770506300619683,36.4647718300342518,27.9312558147072]},"#663344":{"lch":[28.4068233476218452,30.4023991370198274,352.642674566889241],"luv":[28.4068233476218452,30.1520905841737843,-3.89323858637544307],"rgb":[0.4,0.2,0.266666666666666663],"xyz":[0.0770641890222021619,0.0561015878223509873,0.0614602887698032577],"hpluv":[352.642674566889241,135.807736934047625,28.4068233476218452],"hsluv":[352.642674566889241,42.3197568133242044,28.4068233476218452]},"#663355":{"lch":[29.027378781744666,31.164203729876963,328.257954430910445],"luv":[29.027378781744666,26.5028264215118483,-16.3953586660521324],"rgb":[0.4,0.2,0.333333333333333315],"xyz":[0.0830266030615641609,0.0584865534380958202,0.0928623360437771661],"hpluv":[328.257954430910445,136.234637721643935,29.027378781744666],"hsluv":[328.257954430910445,48.648881209958347,29.027378781744666]},"#663366":{"lch":[29.7928910898429251,37.2833882928919067,307.715012949244567],"luv":[29.7928910898429251,22.8075289246907325,-29.4935190668720466],"rgb":[0.4,0.2,0.4],"xyz":[0.0906115988350723323,0.0615205517474991317,0.132809980450921128],"hpluv":[307.715012949244567,158.796911496206434,29.7928910898429251],"hsluv":[307.715012949244567,54.9388950129523792,29.7928910898429251]},"#663377":{"lch":[30.6992208566667273,46.7654342463890345,294.320996437271049],"luv":[30.6992208566667273,19.2602655771695837,-42.6151148086008646],"rgb":[0.4,0.2,0.466666666666666674],"xyz":[0.0999256118552742517,0.0652461569555799481,0.181863782357319037],"hpluv":[294.320996437271049,193.302265796468333,30.6992208566667273],"hsluv":[294.320996437271049,60.8304716126584424,30.6992208566667273]},"#663388":{"lch":[31.7390466224972485,57.6768981875091811,286.074834637191429],"luv":[31.7390466224972485,15.9703082974272554,-55.4217812544619122],"rgb":[0.4,0.2,0.533333333333333326],"xyz":[0.11106602895721808,0.0697023237963575459,0.240536645760891205],"hpluv":[286.074834637191429,230.593651019326217,31.7390466224972485],"hsluv":[286.074834637191429,66.1275975958513,31.7390466224972485]},"#663399":{"lch":[32.9028065942714818,68.9918273860838696,280.844497617061506],"luv":[32.9028065942714818,12.9804074562249703,-67.7597319087197292],"rgb":[0.4,0.2,0.6],"xyz":[0.124122993066290793,0.0749251094399867,0.309303323402009112],"hpluv":[280.844497617061506,266.074975063872387,32.9028065942714818],"hsluv":[280.844497617061506,70.7618769362906761,32.9028065942714818]},"#6633aa":{"lch":[34.1795810026756612,80.2563017922262,277.366876751775067],"luv":[34.1795810026756612,10.2906460265496023,-79.5938225097975],"rgb":[0.4,0.2,0.66666666666666663],"xyz":[0.139180686031543321,0.0809481866260878,0.388607173019007712],"hpluv":[277.366876751775067,297.955725741163178,34.1795810026756612],"hsluv":[277.366876751775067,74.7463951454814293,34.1795810026756612]},"#6633bb":{"lch":[35.5578512622049701,91.2933310256451875,274.950579703742051],"luv":[35.5578512622049701,7.87828999249439477,-90.9527615663878208],"rgb":[0.4,0.2,0.733333333333333282],"xyz":[0.15631827813888,0.0878032234690225566,0.478865158117649459],"hpluv":[274.950579703742051,325.793841875348,35.5578512622049701],"hsluv":[274.950579703742051,78.1373397599298158,35.5578512622049701]},"#6633cc":{"lch":[37.0261004663704369,102.052471518039624,273.208108112313198],"luv":[37.0261004663704369,5.71114175070883,-101.892540467119574],"rgb":[0.4,0.2,0.8],"xyz":[0.175610653582601722,0.0955201736465113582,0.58047166878791967],"hpluv":[273.208108112313198,349.747708937339723,37.0261004663704369],"hsluv":[273.208108112313198,81.008127051099,37.0261004663704369]},"#6633dd":{"lch":[38.5732487885037258,112.538160698021628,271.912259810227567],"luv":[38.5732487885037258,3.75528971541350476,-112.475488051606391],"rgb":[0.4,0.2,0.866666666666666696],"xyz":[0.197128979133235266,0.104127503866764892,0.693801516687925668],"hpluv":[271.912259810227567,370.214070757058153,38.5732487885037258],"hsluv":[271.912259810227567,83.8924044294761,38.5732487885037258]},"#6633ee":{"lch":[40.1889386764538372,122.775879994578517,270.923585069715159],"luv":[40.1889386764538372,1.97901241536538453,-122.759929204537158],"rgb":[0.4,0.2,0.933333333333333348],"xyz":[0.22094115939941,0.113652375973234937,0.819212332756448891],"hpluv":[270.923585069715159,387.655406037674595,40.1889386764538372],"hsluv":[270.923585069715159,91.8481370725274502,40.1889386764538372]},"#6633ff":{"lch":[41.8636962738951581,132.796565847050772,270.152898062524457],"luv":[41.8636962738951581,0.354377123439640451,-132.796093005873018],"rgb":[0.4,0.2,1],"xyz":[0.247112207809241397,0.124120795337167633,0.957046521048230736],"hpluv":[270.152898062524457,402.521052726566381,41.8636962738951581],"hsluv":[270.152898062524457,99.9999999999993747,41.8636962738951581]},"#ddbb00":{"lch":[76.6269242453545871,86.8164471599593,69.4373142874166263],"luv":[76.6269242453545871,30.4927107526369845,81.2852390562642],"rgb":[0.866666666666666696,0.733333333333333282,0],"xyz":[0.475876739286364758,0.509140637318047595,0.0732090665375303],"hpluv":[69.4373142874166263,149.25100710879434,76.6269242453545871],"hsluv":[69.4373142874166263,100.000000000002373,76.6269242453545871]},"#ddbb11":{"lch":[76.6514577805917412,85.7837129406502754,69.2755127455160391],"luv":[76.6514577805917412,30.3566774947925779,80.2328956062352461],"rgb":[0.866666666666666696,0.733333333333333282,0.0666666666666666657],"xyz":[0.476888404786001863,0.509545303517902504,0.0785371715022859379],"hpluv":[69.2755127455160391,147.663405788509436,76.6514577805917412],"hsluv":[69.2755127455160391,98.710789014839,76.6514577805917412]},"#ddbb22":{"lch":[76.6969020797125722,83.8847347199512257,68.9672438614109353],"luv":[76.6969020797125722,30.1063672837106679,78.2959473281657523],"rgb":[0.866666666666666696,0.733333333333333282,0.133333333333333331],"xyz":[0.478763762924478919,0.510295446773293304,0.0884140576982651305],"hpluv":[68.9672438614109353,144.735860207932831,76.6969020797125722],"hsluv":[68.9672438614109353,96.3396664069398554,76.6969020797125722]},"#ddbb33":{"lch":[76.7716285455552452,80.8014056767331823,68.4347482297151828],"luv":[76.7716285455552452,29.6994133556607949,75.1452726767666093],"rgb":[0.866666666666666696,0.733333333333333282,0.2],"xyz":[0.481851513656936625,0.511530547066276431,0.104676211555876281],"hpluv":[68.4347482297151828,139.9591753538609,76.7716285455552452],"hsluv":[68.4347482297151828,92.4878111801133542,76.7716285455552452]},"#ddbb44":{"lch":[76.8793043130786771,76.4437058057830683,67.6060651816737277],"luv":[76.8793043130786771,29.122950030038453,70.6788082728408398],"rgb":[0.866666666666666696,0.733333333333333282,0.266666666666666663],"xyz":[0.486309508901155541,0.513313745163964,0.128154986508762919],"hpluv":[67.6060651816737277,133.157612926581692,76.8793043130786771],"hsluv":[67.6060651816737277,87.0382611213693167,76.8793043130786771]},"#ddbb55":{"lch":[77.0229278214451654,70.786451757311653,66.3713649049339551],"luv":[77.0229278214451654,28.3717024864450664,64.851894732620238],"rgb":[0.866666666666666696,0.733333333333333282,0.333333333333333315],"xyz":[0.492271922940517526,0.515698710779708747,0.159557033782736835],"hpluv":[66.3713649049339551,124.235507886155276,77.0229278214451654],"hsluv":[66.3713649049339551,79.9485715087726,77.0229278214451654]},"#ddbb66":{"lch":[77.2049977781888259,63.8693414267369732,64.5489675558404912],"luv":[77.2049977781888259,27.4471820183984,57.6710063509733359],"rgb":[0.866666666666666696,0.733333333333333282,0.4],"xyz":[0.499856918714025711,0.518732709089112065,0.199504678189880769],"hpluv":[64.5489675558404912,113.177180957201557,77.2049977781888259],"hsluv":[64.5489675558404912,71.2432689272834665,77.2049977781888259]},"#ddbb77":{"lch":[77.4276024714994264,55.80459657383539,61.8158033937064815],"luv":[77.4276024714994264,26.3569386858829375,49.1880552764299495],"rgb":[0.866666666666666696,0.733333333333333282,0.466666666666666674],"xyz":[0.509170931734227561,0.522458314297192916,0.248558480096278678],"hpluv":[61.8158033937064815,100.062778032150931,77.4276024714994264],"hsluv":[61.8158033937064815,61.00659046349368,77.4276024714994264]},"#ddbb88":{"lch":[77.6924726660212883,46.8021917196541537,57.5480835848938881],"luv":[77.6924726660212883,25.1136643841879952,39.4936578574539112],"rgb":[0.866666666666666696,0.733333333333333282,0.533333333333333326],"xyz":[0.520311348836171472,0.526914481137970458,0.307231343499850873],"hpluv":[57.5480835848938881,85.1204314231653285,77.6924726660212883],"hsluv":[57.5480835848938881,49.3735690170151145,77.6924726660212883]},"#ddbb99":{"lch":[78.001015952892,37.2494741955694195,50.4191367157405352],"luv":[78.001015952892,23.7341209657771088,28.7091419207933036],"rgb":[0.866666666666666696,0.733333333333333282,0.6],"xyz":[0.533368312945244116,0.532137266781599672,0.375998021140968752],"hpluv":[50.4191367157405352,68.8881727109007471,78.001015952892],"hsluv":[50.4191367157405352,37.2278198354843894,78.001015952892]},"#ddbbaa":{"lch":[78.3543411988951135,27.9779961680489,37.3601297670291643],"luv":[78.3543411988951135,22.2379488027189254,16.9776883770144309],"rgb":[0.866666666666666696,0.733333333333333282,0.66666666666666663],"xyz":[0.548426005910496728,0.538160343967700738,0.455301870757967353],"hpluv":[37.3601297670291643,52.7537881236722086,78.3543411988951135],"hsluv":[37.3601297670291643,37.9002282962103152,78.3543411988951135]},"#ddbbbb":{"lch":[78.7532777240269724,21.1216737069600953,12.1770506300632171],"luv":[78.7532777240269724,20.6464457718990104,4.45526398447083238],"rgb":[0.866666666666666696,0.733333333333333282,0.733333333333333282],"xyz":[0.565563598017833291,0.545015380810635497,0.545559855856609155],"hpluv":[12.1770506300632171,40.7192307977840144,78.7532777240269724],"hsluv":[12.1770506300632171,38.5653299871361952,78.7532777240269724]},"#ddbbcc":{"lch":[79.1983918483363425,20.8793784390591419,335.381067074864461],"luv":[79.1983918483363425,18.9814116783666442,-8.69795692664743747],"rgb":[0.866666666666666696,0.733333333333333282,0.8],"xyz":[0.584855973461555,0.552732330988124354,0.647166366526879311],"hpluv":[335.381067074864461,41.2776027841095186,79.1983918483363425],"hsluv":[335.381067074864461,39.1976988204569,79.1983918483363425]},"#ddbbdd":{"lch":[79.6900023594157858,28.2216267397768341,307.715012949250536],"luv":[79.6900023594157858,17.264138203128045,-22.325092338948604],"rgb":[0.866666666666666696,0.733333333333333282,0.866666666666666696],"xyz":[0.606374299012188644,0.56133966120837786,0.760496214426885309],"hpluv":[307.715012949250536,57.3946451248898555,79.6900023594157858],"hsluv":[307.715012949250536,39.7709084435557401,79.6900023594157858]},"#ddbbee":{"lch":[80.2281958041266,39.4567857635703447,293.154060026294076],"luv":[80.2281958041266,15.5145982189510505,-36.2785774927409221],"rgb":[0.866666666666666696,0.733333333333333282,0.933333333333333348],"xyz":[0.630186479278363354,0.570864533314847877,0.885907030495408532],"hpluv":[293.154060026294076,82.8233888781043674,80.2281958041266],"hsluv":[293.154060026294076,68.7191774169969278,80.2281958041266]},"#ddbbff":{"lch":[80.8128420975971409,52.2658591287574765,285.253756774661895],"luv":[80.8128420975971409,13.7508586713070624,-50.4245368473411],"rgb":[0.866666666666666696,0.733333333333333282,1],"xyz":[0.656357527688194775,0.581332952678780601,1.02374121878719038],"hpluv":[285.253756774661895,113.64059963508393,80.8128420975971409],"hsluv":[285.253756774661895,99.9999999999962768,80.8128420975971409]},"#664400":{"lch":[31.7142168878436834,41.7146560735594463,49.9018869072924431],"luv":[31.7142168878436834,26.8683448374877969,31.9093180282686859],"rgb":[0.4,0.266666666666666663,0],"xyz":[0.0754639898903774337,0.0695936209423669294,0.00945855895955924342],"hpluv":[49.9018869072924431,166.906788900061372,31.7142168878436834],"hsluv":[49.9018869072924431,100.000000000002103,31.7142168878436834]},"#664411":{"lch":[31.8065195391856221,38.988494662362406,47.7128576067384387],"luv":[31.8065195391856221,26.2332728657793552,28.8429906699465946],"rgb":[0.4,0.266666666666666663,0.0666666666666666657],"xyz":[0.0764756553900145519,0.0699982871422217823,0.0147866639243148749],"hpluv":[47.7128576067384387,155.546285842055198,31.8065195391856221],"hsluv":[47.7128576067384387,90.7993319288460157,31.8065195391856221]},"#664422":{"lch":[31.9766874661881033,34.3475437583520318,43.0092135947734064],"luv":[31.9766874661881033,25.116436032279772,23.4290077311931029],"rgb":[0.4,0.266666666666666663,0.133333333333333331],"xyz":[0.078351013528491581,0.0707484303976126,0.0246635501202940727],"hpluv":[43.0092135947734064,136.301783870263904,31.9766874661881033],"hsluv":[43.0092135947734064,74.6688439558526227,31.9766874661881033]},"#664433":{"lch":[32.2542649002247757,27.9288783689085562,32.9719795273007179],"luv":[32.2542649002247757,23.4305644913898661,15.1997004759998031],"rgb":[0.4,0.266666666666666663,0.2],"xyz":[0.0814387642609493145,0.0719835306905957095,0.0409257039779052159],"hpluv":[32.9719795273007179,109.876716511985933,32.2542649002247757],"hsluv":[32.9719795273007179,50.4508902462759465,32.2542649002247757]},"#664444":{"lch":[32.6494757012261942,21.7704999617243,12.1770506300622419],"luv":[32.6494757012261942,21.2806737346177428,4.59212303669972144],"rgb":[0.4,0.266666666666666663,0.266666666666666663],"xyz":[0.0858967595051681881,0.0737667287882832895,0.0644044789307918475],"hpluv":[12.1770506300622419,84.6119136876739,32.6494757012261942],"hsluv":[12.1770506300622419,19.8271939783404392,32.6494757012261942]},"#664455":{"lch":[33.1682230288457163,20.3425996427482829,337.72581918360828],"luv":[33.1682230288457163,18.8246474429619,-7.71064257201243208],"rgb":[0.4,0.266666666666666663,0.333333333333333315],"xyz":[0.0918591735445301871,0.0761516944040281224,0.0958065262047657629],"hpluv":[337.72581918360828,77.8257963773028649,33.1682230288457163],"hsluv":[337.72581918360828,26.9902218950403885,33.1682230288457163]},"#664466":{"lch":[33.8127168447387447,26.5268160416637819,307.715012949245931],"luv":[33.8127168447387447,16.2273642995468066,-20.9843898457416387],"rgb":[0.4,0.266666666666666663,0.4],"xyz":[0.0994441693180383585,0.0791856927134314409,0.135754170611909725],"hpluv":[307.715012949245931,99.5507152142919125,33.8127168447387447],"hsluv":[307.715012949245931,34.4415155187259359,33.8127168447387447]},"#664477":{"lch":[34.5819879544663067,37.1994974310500766,291.489286484323088],"luv":[34.5819879544663067,13.6271894146704895,-34.6136146303646512],"rgb":[0.4,0.266666666666666663,0.466666666666666674],"xyz":[0.108758182338240278,0.0829112979215122503,0.184807972518307634],"hpluv":[291.489286484323088,136.49804898345451,34.5819879544663067],"hsluv":[291.489286484323088,41.7425383187140824,34.5819879544663067]},"#664488":{"lch":[35.4724176022540263,49.4256461635840623,283.003444619748336],"luv":[35.4724176022540263,11.1212465051830698,-48.1582015326441066],"rgb":[0.4,0.266666666666666663,0.533333333333333326],"xyz":[0.119898599440184106,0.0873674647622898481,0.243480835921879801],"hpluv":[283.003444619748336,176.807585609029246,35.4724176022540263],"hsluv":[283.003444619748336,48.5905204317402166,35.4724176022540263]},"#664499":{"lch":[36.4782980897457563,61.9753280698008169,278.131406705371774],"luv":[36.4782980897457563,8.76603164871553453,-61.3522450974139844],"rgb":[0.4,0.266666666666666663,0.6],"xyz":[0.132955563549256806,0.092590250405919,0.312247513562997736],"hpluv":[278.131406705371774,215.5875082467536,36.4782980897457563],"hsluv":[278.131406705371774,54.8155424382278511,36.4782980897457563]},"#6644aa":{"lch":[37.5923984663849922,74.3597011725147468,275.081334091822],"luv":[37.5923984663849922,6.58602388672208239,-74.0674655150911576],"rgb":[0.4,0.266666666666666663,0.66666666666666663],"xyz":[0.148013256514509361,0.0986133275920201,0.391551363179996281],"hpluv":[275.081334091822,251.001852587777108,37.5923984663849922],"hsluv":[275.081334091822,60.3520360208115179,37.5923984663849922]},"#6644bb":{"lch":[38.8064988843830392,86.3901107279874765,273.04172423936518],"luv":[38.8064988843830392,4.58413310153298603,-86.2684006766171905],"rgb":[0.4,0.266666666666666663,0.733333333333333282],"xyz":[0.165150848621846,0.105468364434954859,0.481809348278638083],"hpluv":[273.04172423936518,282.487278503057098,38.8064988843830392],"hsluv":[273.04172423936518,65.2044789549227346,38.8064988843830392]},"#6644cc":{"lch":[40.1118623747323184,98.0126069922284415,271.608181870646],"luv":[40.1118623747323184,2.75066337520804938,-97.9740015535209],"rgb":[0.4,0.266666666666666663,0.8],"xyz":[0.184443224065567735,0.11318531461244366,0.583415858948908239],"hpluv":[271.608181870646,310.061926380003911,40.1118623747323184],"hsluv":[271.608181870646,73.249037078124374,40.1118623747323184]},"#6644dd":{"lch":[41.4996246628331491,109.23540368219534,270.561113733160255],"luv":[41.4996246628331491,1.06975602599714947,-109.230165429047204],"rgb":[0.4,0.266666666666666663,0.866666666666666696],"xyz":[0.205961549616201278,0.121792644832697194,0.696745706848914237],"hpluv":[270.561113733160255,334.009312605211903,41.4996246628331491],"hsluv":[270.561113733160255,82.0982912580276434,41.4996246628331491]},"#6644ee":{"lch":[42.9610953823040305,120.093362966476874,269.772657810053431],"luv":[42.9610953823040305,-0.476513570908160711,-120.092417593346411],"rgb":[0.4,0.266666666666666663,0.933333333333333348],"xyz":[0.229773729882376043,0.131317516939167239,0.82215652291743746],"hpluv":[269.772657810053431,354.717803858999673,42.9610953823040305],"hsluv":[269.772657810053431,90.971694410809846,42.9610953823040305]},"#6644ff":{"lch":[44.4879743720372502,130.630057251556309,269.16406595263021],"luv":[44.4879743720372502,-1.90579898569535566,-130.61615439053088],"rgb":[0.4,0.266666666666666663,1],"xyz":[0.255944778292207409,0.141785936303099935,0.959990711209219305],"hpluv":[269.16406595263021,372.597392941492103,44.4879743720372502],"hsluv":[269.16406595263021,99.9999999999993463,44.4879743720372502]},"#ddcc00":{"lch":[81.0484811072975475,89.5621409057231119,78.2088923998372394],"luv":[81.0484811072975475,18.3014975440108643,87.6723004789036224],"rgb":[0.866666666666666696,0.8,0],"xyz":[0.514100482595981623,0.585588123937282434,0.0859503143074022424],"hpluv":[78.2088923998372394,197.564965691755532,81.0484811072975475],"hsluv":[78.2088923998372394,100.000000000002245,81.0484811072975475]},"#ddcc11":{"lch":[81.070830830397739,88.588371741804238,78.1407504993947413],"luv":[81.070830830397739,18.2056357525625714,86.6974880530521261],"rgb":[0.866666666666666696,0.8,0.0666666666666666657],"xyz":[0.515112148095618783,0.585992790137137343,0.0912784192721578791],"hpluv":[78.1407504993947413,195.686226016320433,81.070830830397739],"hsluv":[78.1407504993947413,98.8754134531589699,81.070830830397739]},"#ddcc22":{"lch":[81.1122340585289265,86.7947856050049751,78.0111959233441894],"luv":[81.1122340585289265,18.0290607078827385,84.9016358983162149],"rgb":[0.866666666666666696,0.8,0.133333333333333331],"xyz":[0.516987506234095728,0.586742933392528143,0.101155305468137072],"hpluv":[78.0111959233441894,192.214732219338657,81.1122340585289265],"hsluv":[78.0111959233441894,96.8049917221618443,81.1122340585289265]},"#ddcc33":{"lch":[81.1803270736657367,83.8738846457710139,77.7882255314295747],"luv":[81.1803270736657367,17.7414783140301893,81.9760237679585089],"rgb":[0.866666666666666696,0.8,0.2],"xyz":[0.520075256966553545,0.58797803368551127,0.117417459325748208],"hpluv":[77.7882255314295747,186.530107062901806,81.1803270736657367],"hsluv":[77.7882255314295747,93.4358723678778631,81.1803270736657367]},"#ddcc44":{"lch":[81.2784695635313312,79.7261575767135469,77.443216014682],"luv":[81.2784695635313312,17.3330313363216426,77.8191893214074213],"rgb":[0.866666666666666696,0.8,0.266666666666666663],"xyz":[0.524533252210772405,0.589761231783198836,0.140896234278634847],"hpluv":[77.443216014682,178.389435414851135,81.2784695635313312],"hsluv":[77.443216014682,88.6570950843060643,81.2784695635313312]},"#ddcc55":{"lch":[81.4094229919429893,74.303525235023784,76.9333685993953509],"luv":[81.4094229919429893,16.7988406729037365,72.37964364652683],"rgb":[0.866666666666666696,0.8,0.333333333333333315],"xyz":[0.530495666250134335,0.592146197398943586,0.172298281552608762],"hpluv":[76.9333685993953509,167.620308244181615,81.4094229919429893],"hsluv":[76.9333685993953509,82.4185745103993668,81.4094229919429893]},"#ddcc66":{"lch":[81.5755062452221154,67.6049359495878406,76.1891492108976252],"luv":[81.5755062452221154,16.1384724175358123,65.6504156329288548],"rgb":[0.866666666666666696,0.8,0.4],"xyz":[0.538080662023642575,0.595180195708346904,0.212245925959752724],"hpluv":[76.1891492108976252,154.10859642349061,81.5755062452221154],"hsluv":[76.1891492108976252,74.724981631947216,81.5755062452221154]},"#ddcc77":{"lch":[81.7786782860545571,59.6741108071854,75.0887439649445554],"luv":[81.7786782860545571,15.3554995822328237,57.6646176889111857],"rgb":[0.866666666666666696,0.8,0.466666666666666674],"xyz":[0.547394675043844425,0.598905800916427755,0.261299727866150633],"hpluv":[75.0887439649445554,137.792143148878608,81.7786782860545571],"hsluv":[75.0887439649445554,65.6305091544174104,81.7786782860545571]},"#ddcc88":{"lch":[82.020587165389415,50.599662209211,73.3985048227604722],"luv":[82.020587165389415,14.4570002873895778,48.4904213054152891],"rgb":[0.866666666666666696,0.8,0.533333333333333326],"xyz":[0.558535092145788337,0.603361967757205298,0.319972591269722773],"hpluv":[73.3985048227604722,118.661765286999071,82.020587165389415],"hsluv":[73.3985048227604722,55.2326761810852389,82.020587165389415]},"#ddcc99":{"lch":[82.3026016456871901,40.5232855707982438,70.6109505258247765],"luv":[82.3026016456871901,13.4529549720920478,38.2250529884698622],"rgb":[0.866666666666666696,0.8,0.6],"xyz":[0.571592056254861,0.608584753400834511,0.388739268910840707],"hpluv":[70.6109505258247765,96.7842051030752231,82.3026016456871901],"hsluv":[70.6109505258247765,43.6647666281718685,82.3026016456871901]},"#ddccaa":{"lch":[82.6258332993788542,29.6818113573176419,65.4008685536862231],"luv":[82.6258332993788542,12.3555588351715961,26.9879619705157374],"rgb":[0.866666666666666696,0.8,0.66666666666666663],"xyz":[0.586649749220113592,0.614607830586935577,0.468043118527839308],"hpluv":[65.4008685536862231,72.4135107626852,82.6258332993788542],"hsluv":[65.4008685536862231,31.0871436920773085,82.6258332993788542]},"#ddccbb":{"lch":[82.9911533066729419,18.6379527757414252,53.1465475992889],"luv":[82.9911533066729419,11.1784915779275345,14.9135713265793797],"rgb":[0.866666666666666696,0.8,0.733333333333333282],"xyz":[0.603787341327450156,0.621462867429870336,0.55830110362648111],"hpluv":[53.1465475992889,46.5946179098545272,82.9911533066729419],"hsluv":[53.1465475992889,24.678645774572626,82.9911533066729419]},"#ddcccc":{"lch":[83.3992063850657,10.164901186858037,12.1770506300648638],"luv":[83.3992063850657,9.93619558955776228,2.14411598208697862],"rgb":[0.866666666666666696,0.8,0.8],"xyz":[0.62307971677117191,0.629179817607359193,0.659907614296751266],"hpluv":[12.1770506300648638,26.1289592314662436,83.3992063850657],"hsluv":[12.1770506300648638,25.0002112827592455,83.3992063850657]},"#ddccdd":{"lch":[83.8504233095379163,14.1290270468723165,307.715012949259346],"luv":[83.8504233095379163,8.64321103323171513,-11.1769543403501022],"rgb":[0.866666666666666696,0.8,0.866666666666666696],"xyz":[0.644598042321805509,0.637787147827612699,0.773237462196757264],"hpluv":[307.715012949259346,37.4791950150616557,83.8504233095379163],"hsluv":[307.715012949259346,25.214872966603707,83.8504233095379163]},"#ddccee":{"lch":[84.3450329093034,25.9620569722210597,286.361909425528779],"luv":[84.3450329093034,7.31360586969829818,-24.9106316943502399],"rgb":[0.866666666666666696,0.8,0.933333333333333348],"xyz":[0.668410222587980218,0.647312019934082716,0.898648278265280487],"hpluv":[286.361909425528779,71.3464154396222199,84.3450329093034],"hsluv":[286.361909425528779,60.879598082714125,84.3450329093034]},"#ddccff":{"lch":[84.8830740665913623,39.380529428060008,278.705583312848262],"luv":[84.8830740665913623,5.96052452183370107,-38.926831947371717],"rgb":[0.866666666666666696,0.8,1],"xyz":[0.694581270997811639,0.65778043929801544,1.03648246655706222],"hpluv":[278.705583312848262,112.590543218900592,84.8830740665913623],"hsluv":[278.705583312848262,99.9999999999947704,84.8830740665913623]},"#665500":{"lch":[36.5970311204425656,41.5054710368830655,69.2006364019199651],"luv":[36.5970311204425656,14.7384507745119784,38.800543743107859],"rgb":[0.4,0.333333333333333315,0],"xyz":[0.0872772466047234,0.0932201343710592,0.0133963111976744542],"hpluv":[69.2006364019199651,143.912599562803223,36.5970311204425656],"hsluv":[69.2006364019199651,100.000000000002359,36.5970311204425656]},"#665511":{"lch":[36.673028710438345,38.8606023214232366,68.2658014049057869],"luv":[36.673028710438345,14.3901304021596417,36.0980686435250391],"rgb":[0.4,0.333333333333333315,0.0666666666666666657],"xyz":[0.0882889121043605174,0.0936248005709140463,0.0187244161624300839],"hpluv":[68.2658014049057869,134.462776824764262,36.673028710438345],"hsluv":[68.2658014049057869,93.0449405246809107,36.673028710438345]},"#665522":{"lch":[36.8133307706753357,34.1687527519613923,66.2355675996872719],"luv":[36.8133307706753357,13.769229594380441,31.2715842419585037],"rgb":[0.4,0.333333333333333315,0.133333333333333331],"xyz":[0.0901642702428375464,0.0943749438263048607,0.0286013023584092835],"hpluv":[66.2355675996872719,117.777773408929676,36.8133307706753357],"hsluv":[66.2355675996872719,80.6853283069105629,36.8133307706753357]},"#665533":{"lch":[37.0427251812615097,27.0303271109949854,61.7081001991288645],"luv":[37.0427251812615097,12.8113945713483854,23.8014023297917383],"rgb":[0.4,0.333333333333333315,0.2],"xyz":[0.09325202097529528,0.0956100441192879735,0.0448634562160204267],"hpluv":[61.7081001991288645,92.5950345984193177,37.0427251812615097],"hsluv":[61.7081001991288645,61.7209513910547045,37.0427251812615097]},"#665544":{"lch":[37.3704580906404473,18.1024774089589755,50.3425610862832542],"luv":[37.3704580906404473,11.5529306171195891,13.9366237840407656],"rgb":[0.4,0.333333333333333315,0.266666666666666663],"xyz":[0.0977100162195141536,0.0973932422169755535,0.0683422311689070583],"hpluv":[50.3425610862832542,61.4679768710498351,37.3704580906404473],"hsluv":[50.3425610862832542,37.0117339514184067,37.3704580906404473]},"#665555":{"lch":[37.8025949068387348,10.2943047784276782,12.1770506300631105],"luv":[37.8025949068387348,10.0626876598879917,2.1714115065313786],"rgb":[0.4,0.333333333333333315,0.333333333333333315],"xyz":[0.103672430258876153,0.0997782078327203864,0.0997442784428809737],"hpluv":[12.1770506300631105,34.5553054430909654,37.8025949068387348],"hsluv":[12.1770506300631105,8.09737912949257321,37.8025949068387348]},"#665566":{"lch":[38.3424918197480693,13.7697499972876347,307.715012949250308],"luv":[38.3424918197480693,8.42342892447929,-10.8927434626015351],"rgb":[0.4,0.333333333333333315,0.4],"xyz":[0.111257426032384324,0.102812206142123705,0.139691922850024935],"hpluv":[307.715012949250308,45.570631638882567,38.3424918197480693],"hsluv":[307.715012949250308,15.7660506346962208,38.3424918197480693]},"#665577":{"lch":[38.9911218270375812,25.5692820710091411,285.225395910208761],"luv":[38.9911218270375812,6.71492531026355,-24.671805035392353],"rgb":[0.4,0.333333333333333315,0.466666666666666674],"xyz":[0.120571439052586243,0.106537811350204514,0.188745724756422845],"hpluv":[285.225395910208761,83.2131821356252885,38.9911218270375812],"hsluv":[285.225395910208761,23.5948697041559434,38.9911218270375812]},"#665588":{"lch":[39.7473800461840554,39.003702064123587,277.369365694294345],"luv":[39.7473800461840554,5.00282395952989312,-38.6815269493963],"rgb":[0.4,0.333333333333333315,0.533333333333333326],"xyz":[0.131711856154530071,0.110993978190982112,0.247418588159995],"hpluv":[277.369365694294345,124.519293959659265,39.7473800461840554],"hsluv":[277.369365694294345,31.2388068533835614,39.7473800461840554]},"#665599":{"lch":[40.6084045881889466,52.6763518020623636,273.629018089310307],"luv":[40.6084045881889466,3.33420095564239061,-52.5707251534733189],"rgb":[0.4,0.333333333333333315,0.6],"xyz":[0.144768820263602771,0.11621676383461127,0.316185265801112947],"hpluv":[273.629018089310307,164.603508765513965,40.6084045881889466],"hsluv":[273.629018089310307,39.2894117268144569,40.6084045881889466]},"#6655aa":{"lch":[41.5699140891343575,66.1399121177165,271.505962745252077],"luv":[41.5699140891343575,1.73822184255944534,-66.1170670838121168],"rgb":[0.4,0.333333333333333315,0.66666666666666663],"xyz":[0.159826513228855327,0.122239841020712364,0.395489115418111492],"hpluv":[271.505962745252077,201.894186201954597,41.5699140891343575],"hsluv":[271.505962745252077,49.6682832978127067,41.5699140891343575]},"#6655bb":{"lch":[42.6265484117568647,79.2031960637105499,270.166039680829499],"luv":[42.6265484117568647,0.229525718995523903,-79.2028634876978],"rgb":[0.4,0.333333333333333315,0.733333333333333282],"xyz":[0.176964105336191974,0.129094877863647123,0.485747100516753294],"hpluv":[270.166039680829499,235.777232293519603,42.6265484117568647],"hsluv":[270.166039680829499,59.8653820834470309,42.6265484117568647]},"#6655cc":{"lch":[43.7721949853351333,91.7929775852419,269.258674658723919],"luv":[43.7721949853351333,-1.18763654850412936,-91.7852943199147688],"rgb":[0.4,0.333333333333333315,0.8],"xyz":[0.1962564807799137,0.136811828041135924,0.58735361118702345],"hpluv":[269.258674658723919,266.103421792879146,43.7721949853351333],"hsluv":[269.258674658723919,69.9112236392489734,43.7721949853351333]},"#6655dd":{"lch":[45.0002850881211458,103.899953671233533,268.61259940679895],"luv":[45.0002850881211458,-2.51566121975990953,-103.869494181457682],"rgb":[0.4,0.333333333333333315,0.866666666666666696],"xyz":[0.217774806330547244,0.145419158261389458,0.700683459087029448],"hpluv":[268.61259940679895,292.98097185143456,45.0002850881211458],"hsluv":[268.61259940679895,79.8793625185682714,45.0002850881211458]},"#6655ee":{"lch":[46.3040490971424106,115.549020689755764,268.134901078425969],"luv":[46.3040490971424106,-3.7607010001107648,-115.487805894602445],"rgb":[0.4,0.333333333333333315,0.933333333333333348],"xyz":[0.241586986596722,0.154944030367859503,0.826094275155552671],"hpluv":[268.134901078425969,316.655201018988919,46.3040490971424106],"hsluv":[268.134901078425969,89.8701820385079344,46.3040490971424106]},"#6655ff":{"lch":[47.6767252326213651,126.781348408818275,267.771145841725911],"luv":[47.6767252326213651,-4.93065761335473951,-126.685432942615918],"rgb":[0.4,0.333333333333333315,1],"xyz":[0.267758035006553374,0.165412449731792199,0.963928463447334516],"hpluv":[267.771145841725911,337.433561350206048,47.6767252326213651],"hsluv":[267.771145841725911,99.9999999999992468,47.6767252326213651]},"#dddd00":{"lch":[85.547159878993142,94.3072427966830844,85.8743202181747449],"luv":[85.547159878993142,6.78488618903739749,94.0628585750738466],"rgb":[0.866666666666666696,0.866666666666666696,0],"xyz":[0.556734473143156827,0.670856105031634,0.100161644489793561],"hpluv":[85.8743202181747449,283.614606809988061,85.547159878993142],"hsluv":[85.8743202181747449,100.000000000002203,85.547159878993142]},"#dddd11":{"lch":[85.5675738163798627,93.4011806547303394,85.8743202181746881],"luv":[85.5675738163798627,6.71970001318247423,93.159144368282],"rgb":[0.866666666666666696,0.866666666666666696,0.0666666666666666657],"xyz":[0.557746138642794,0.671260771231488862,0.105489749454549198],"hpluv":[85.8743202181746881,281.335749103468061,85.5675738163798627],"hsluv":[85.8743202181746881,99.0156164862488,85.5675738163798627]},"#dddd22":{"lch":[85.6053941241358558,91.7307060091609401,85.8743202181746739],"luv":[85.6053941241358558,6.59951857201479086,91.4929985275198447],"rgb":[0.866666666666666696,0.866666666666666696,0.133333333333333331],"xyz":[0.559621496781270933,0.672010914486879662,0.11536663565052839],"hpluv":[85.8743202181746739,277.118842420723468,85.6053941241358558],"hsluv":[85.8743202181746739,97.2017654403352083,85.6053941241358558]},"#dddd33":{"lch":[85.667603455332241,89.0058006932873,85.8743202181745602],"luv":[85.667603455332241,6.4034766573555908,88.775154428206335],"rgb":[0.866666666666666696,0.866666666666666696,0.2],"xyz":[0.56270924751372875,0.673246014779862789,0.131628789508139526],"hpluv":[85.8743202181745602,270.196330508983522,85.667603455332241],"hsluv":[85.8743202181745602,94.2458512979473113,85.667603455332241]},"#dddd44":{"lch":[85.7572852094861418,85.1265937151141117,85.8743202181744607],"luv":[85.7572852094861418,6.12438910193468278,84.9059998802570419],"rgb":[0.866666666666666696,0.866666666666666696,0.266666666666666663],"xyz":[0.567167242757947609,0.675029212877550355,0.155107564461026165],"hpluv":[85.8743202181744607,260.24482525674506,85.7572852094861418],"hsluv":[85.8743202181744607,90.0440000232135844,85.7572852094861418]},"#dddd55":{"lch":[85.8769849033878074,80.0369945631262,85.874320218174276],"luv":[85.8769849033878074,5.75822050268421481,79.8295897229865545],"rgb":[0.866666666666666696,0.866666666666666696,0.333333333333333315],"xyz":[0.573129656797309539,0.677414178493295105,0.18650961173500008],"hpluv":[85.874320218174276,247.008869171162701,85.8769849033878074],"hsluv":[85.874320218174276,84.5423921226573327,85.8769849033878074]},"#dddd66":{"lch":[86.0288537292730098,73.7198014533942398,85.8743202181739775],"luv":[86.0288537292730098,5.30373328608645522,73.5287667485177252],"rgb":[0.866666666666666696,0.866666666666666696,0.4],"xyz":[0.58071465257081778,0.680448176802698423,0.226457256142144042],"hpluv":[85.8743202181739775,230.281095596483937,86.0288537292730098],"hsluv":[85.8743202181739775,77.7321300368988,86.0288537292730098]},"#dddd77":{"lch":[86.2147251389940834,66.1931358813644124,85.8743202181736365],"luv":[86.2147251389940834,4.76223119383214133,66.0216054929389315],"rgb":[0.866666666666666696,0.866666666666666696,0.466666666666666674],"xyz":[0.59002866559101963,0.684173782010779274,0.275511058048541924],"hpluv":[85.8743202181736365,209.886373280136951,86.2147251389940834],"hsluv":[85.8743202181736365,69.6453389130317362,86.2147251389940834]},"#dddd88":{"lch":[86.4361603707972,57.5066396271378224,85.8743202181730823],"luv":[86.4361603707972,4.13728567831694072,57.3576190965201391],"rgb":[0.866666666666666696,0.866666666666666696,0.533333333333333326],"xyz":[0.601169082692963541,0.688629948851556817,0.334183921452114119],"hpluv":[85.8743202181730823,185.665493576193455,86.4361603707972],"hsluv":[85.8743202181730823,60.3508056243124429,86.4361603707972]},"#dddd99":{"lch":[86.6944777431662,47.7369558995854888,85.8743202181722154],"luv":[86.6944777431662,3.43441079587341314,47.613252157820078],"rgb":[0.866666666666666696,0.866666666666666696,0.6],"xyz":[0.614226046802036185,0.693852734495186,0.402950599093232054],"hpluv":[85.8743202181722154,157.456397081560084,86.6944777431662],"hsluv":[85.8743202181722154,49.9486591868920939,86.6944777431662]},"#ddddaa":{"lch":[86.990772885999732,36.9824894935128,85.874320218170638],"luv":[86.990772885999732,2.66068622896724838,36.886654469181245],"rgb":[0.866666666666666696,0.866666666666666696,0.66666666666666663],"xyz":[0.629283739767288797,0.699875811681287097,0.482254448710230599],"hpluv":[85.874320218170638,125.071764704863014,86.990772885999732],"hsluv":[85.874320218170638,38.5641267001819443,86.990772885999732]},"#ddddbb":{"lch":[87.3259337660435477,25.3576808227713499,85.8743202181676821],"luv":[87.3259337660435477,1.82434533444747116,25.2919698878957568],"rgb":[0.866666666666666696,0.866666666666666696,0.733333333333333282],"xyz":[0.64642133187462536,0.706730848524221855,0.572512433808872401],"hpluv":[85.8743202181676821,88.2719508819342735,87.3259337660435477],"hsluv":[85.8743202181676821,26.340671416181145,87.3259337660435477]},"#ddddcc":{"lch":[87.7006527393466797,12.9871390430395461,85.8743202181585445],"luv":[87.7006527393466797,0.934353054076054512,12.9534846621895881],"rgb":[0.866666666666666696,0.866666666666666696,0.8],"xyz":[0.665713707318347114,0.714447798701710712,0.674118944479142557],"hpluv":[85.8743202181585445,46.7319159493201113,87.7006527393466797],"hsluv":[85.8743202181585445,13.4329442518860063,87.7006527393466797]},"#dddddd":{"lch":[88.1154369871094,4.67545248961294327e-12,0],"luv":[88.1154369871094,4.4193702762792188e-12,1.52611347670073729e-12],"rgb":[0.866666666666666696,0.866666666666666696,0.866666666666666696],"xyz":[0.687232032868980713,0.723055128921964219,0.787448792379148554],"hpluv":[0,1.74708563976297451e-11,88.1154369871094],"hsluv":[0,1.74437740136320375e-11,88.1154369871094]},"#ddddee":{"lch":[88.5706181797242209,13.4751686036456029,265.874320218195521],"luv":[88.5706181797242209,-0.969464090371862097,-13.4402495614536726],"rgb":[0.866666666666666696,0.866666666666666696,0.933333333333333348],"xyz":[0.711044213135155423,0.732580001028434236,0.912859608447671778],"hpluv":[265.874320218195521,52.5550848411252431,88.5706181797242209],"hsluv":[265.874320218195521,47.1269490590101725,88.5706181797242209]},"#ddddff":{"lch":[89.0663618949558753,27.3146757005029208,265.874320218186369],"luv":[89.0663618949558753,-1.9651403266809826,-27.2438934831293338],"rgb":[0.866666666666666696,0.866666666666666696,1],"xyz":[0.737215261544986844,0.743048420392367,1.05069379673945362],"hpluv":[265.874320218186369,111.815120511018762,89.0663618949558753],"hsluv":[265.874320218186369,99.9999999999922125,89.0663618949558753]},"#666600":{"lch":[41.7321583215394583,46.0055575524193685,85.8743202181747449],"luv":[41.7321583215394583,3.30984623025532709,45.8863404908370924],"rgb":[0.4,0.4,0],"xyz":[0.102305304310569861,0.123276249782752534,0.0184056637662898],"hpluv":[85.8743202181747449,139.887458074797365,41.7321583215394583],"hsluv":[85.8743202181747449,100.000000000002203,41.7321583215394583]},"#666611":{"lch":[41.7952597887023742,43.6298127640598423,85.8743202181746],"luv":[41.7952597887023742,3.13892449057558931,43.5167521176544625],"rgb":[0.4,0.4,0.0666666666666666657],"xyz":[0.103316969810206979,0.123680915982607387,0.0237337687310454348],"hpluv":[85.8743202181746,132.463323325332908,41.7952597887023742],"hsluv":[85.8743202181746,94.6927802880713756,41.7952597887023742]},"#666622":{"lch":[41.9118699845736913,39.3503176022612067,85.874320218174276],"luv":[41.9118699845736913,2.83103840719259514,39.248346677737],"rgb":[0.4,0.4,0.133333333333333331],"xyz":[0.105192327948684008,0.124431059237998201,0.0336106549270246274],"hpluv":[85.874320218174276,119.138061739500813,41.9118699845736913],"hsluv":[85.874320218174276,85.1670788640685288,41.9118699845736913]},"#666633":{"lch":[42.1028501842444953,32.6344620115447057,85.8743202181736507],"luv":[42.1028501842444953,2.34786962297492563,32.5498943011565842],"rgb":[0.4,0.4,0.2],"xyz":[0.108280078681141742,0.125666159530981314,0.0498728087846357776],"hpluv":[85.8743202181736507,98.3567766096709306,42.1028501842444953],"hsluv":[85.8743202181736507,70.3113616926845,42.1028501842444953]},"#666644":{"lch":[42.3763861696741557,23.5947988734222314,85.8743202181723575],"luv":[42.3763861696741557,1.69751569722617934,23.5336562041455402],"rgb":[0.4,0.4,0.266666666666666663],"xyz":[0.112738073925360616,0.127449357628668908,0.0733515837375224161],"hpluv":[85.8743202181723575,70.6531759312171346,42.3763861696741557],"hsluv":[85.8743202181723575,50.5071554688203506,42.3763861696741557]},"#666655":{"lch":[42.7382714661199543,12.562340839470254,85.87432021816781],"luv":[42.7382714661199543,0.903791165304248856,12.5297872646162745],"rgb":[0.4,0.4,0.333333333333333315],"xyz":[0.118700487964722615,0.129834323244413741,0.104753631011496318],"hpluv":[85.87432021816781,37.2986356199978459,42.7382714661199543],"hsluv":[85.87432021816781,26.6633164497530721,42.7382714661199543]},"#666666":{"lch":[43.1922895629847048,2.27708065554704512e-12,0],"luv":[43.1922895629847048,2.15069538500574498e-12,7.48067960001998255e-13],"rgb":[0.4,0.4,0.4],"xyz":[0.126285483738230786,0.132868321553817031,0.144701275418640279],"hpluv":[0,6.68977504875838914e-12,43.1922895629847048],"hsluv":[0,1.91542116883063395e-12,43.1922895629847048]},"#666677":{"lch":[43.7404449074606489,13.5883126365404472,265.874320218186085],"luv":[43.7404449074606489,-0.977604179760566572,-13.5531003971814314],"rgb":[0.4,0.4,0.466666666666666674],"xyz":[0.135599496758432692,0.136593926761897855,0.193755077325038189],"hpluv":[265.874320218186085,39.4204575510779804,43.7404449074606489],"hsluv":[265.874320218186085,10.3527957183817456,43.7404449074606489]},"#666688":{"lch":[44.3831523723879684,27.7327571842679852,265.874320218181708],"luv":[44.3831523723879684,-1.9952189844931838,-27.660891566352042],"rgb":[0.4,0.4,0.533333333333333326],"xyz":[0.146739913860376547,0.141050093602675453,0.252427940728610356],"hpluv":[265.874320218181708,79.2892354857961692,44.3831523723879684],"hsluv":[265.874320218181708,21.2254167484079588,44.3831523723879684]},"#666699":{"lch":[45.1194249231942308,42.0446421145154,265.87432021818023],"luv":[45.1194249231942308,-3.02488020162380478,-41.9356892193690598],"rgb":[0.4,0.4,0.6],"xyz":[0.159796877969449247,0.14627287924630461,0.321194618369728291],"hpluv":[265.87432021818023,118.245992523098394,45.1194249231942308],"hsluv":[265.87432021818023,32.3647541960069702,45.1194249231942308]},"#6666aa":{"lch":[45.9470714788517682,56.2348015337582652,265.874320218179548],"luv":[45.9470714788517682,-4.04578393932889835,-56.0890767962662125],"rgb":[0.4,0.4,0.66666666666666663],"xyz":[0.174854570934701803,0.152295956432405705,0.400498467986726892],"hpluv":[265.874320218179548,155.305436018888514,45.9470714788517682],"hsluv":[265.874320218179548,43.5990379455573205,45.9470714788517682]},"#6666bb":{"lch":[46.8629040956598786,70.1103551977131,265.874320218179093],"luv":[46.8629040956598786,-5.04405352741049562,-69.9286738753289541],"rgb":[0.4,0.4,0.733333333333333282],"xyz":[0.191992163042038422,0.159150993275340463,0.490756453085368638],"hpluv":[265.874320218179093,189.841997809706953,46.8629040956598786],"hsluv":[265.874320218179093,54.8353857399755285,46.8629040956598786]},"#6666cc":{"lch":[47.8629477245616854,83.5592716582008,265.874320218178866],"luv":[47.8629477245616854,-6.01162892081844,-83.3427393224351505],"rgb":[0.4,0.4,0.8],"xyz":[0.211284538485760176,0.166867943452829265,0.592362963755638794],"hpluv":[265.874320218178866,221.531011478982748,47.8629477245616854],"hsluv":[265.874320218178866,66.0482344892977693,47.8629477245616854]},"#6666dd":{"lch":[48.9426439028117102,96.5306872715973583,265.874320218178696],"luv":[48.9426439028117102,-6.94485076081307,-96.2805413000828736],"rgb":[0.4,0.4,0.866666666666666696],"xyz":[0.23280286403639372,0.175475273673082799,0.705692811655644792],"hpluv":[265.874320218178696,250.274901054084751,48.9426439028117102],"hsluv":[265.874320218178696,77.2646968282616911,48.9426439028117102]},"#6666ee":{"lch":[50.0970402589656203,109.016062738443594,265.874320218178525],"luv":[50.0970402589656203,-7.84310469187671711,-108.73356263723052],"rgb":[0.4,0.4,0.933333333333333348],"xyz":[0.256615044302568429,0.185000145779552844,0.831103627724168],"hpluv":[265.874320218178525,276.132643737939816,50.0970402589656203],"hsluv":[265.874320218178525,88.5507283896609181,50.0970402589656203]},"#6666ff":{"lch":[51.3209595583197142,121.033610519319112,265.874320218178411],"luv":[51.3209595583197142,-8.70770100014002502,-120.719968599376287],"rgb":[0.4,0.4,1],"xyz":[0.28278609271239985,0.19546856514348554,0.96893781601594986],"hpluv":[265.874320218178411,299.261292593223402,51.3209595583197142],"hsluv":[265.874320218178411,99.9999999999991616,51.3209595583197142]},"#ddee00":{"lch":[90.1008574130140261,100.518542770188731,92.3281002120423295],"luv":[90.1008574130140261,-4.08324753875312307,100.435574027231638],"rgb":[0.866666666666666696,0.933333333333333348,0],"xyz":[0.603913249483671644,0.765213657712664919,0.115887903269964759],"hpluv":[92.3281002120423295,458.324419080212692,90.1008574130140261],"hsluv":[92.3281002120423295,100.000000000002288,90.1008574130140261]},"#ddee11":{"lch":[90.1195571422023676,99.6821059706602739,92.3717344777628284],"luv":[90.1195571422023676,-4.12512016496088219,99.5967149778072667],"rgb":[0.866666666666666696,0.933333333333333348,0.0666666666666666657],"xyz":[0.604924914983308804,0.765618323912519827,0.121216008234720396],"hpluv":[92.3717344777628284,455.439701471196656,90.1195571422023676],"hsluv":[92.3717344777628284,99.1349582088955827,90.1195571422023676]},"#ddee22":{"lch":[90.1542040339558213,98.139145338163118,92.4541942657322409],"luv":[90.1542040339558213,-4.20238430415396635,98.0491295925940562],"rgb":[0.866666666666666696,0.933333333333333348,0.133333333333333331],"xyz":[0.606800273121785749,0.766368467167910628,0.131092894430699575],"hpluv":[92.4541942657322409,450.094002053356689,90.1542040339558213],"hsluv":[92.4541942657322409,97.539848527320828,90.1542040339558213]},"#ddee33":{"lch":[90.2112004280082402,95.6198982889531237,92.5945991605726562],"luv":[90.2112004280082402,-4.32860020636881337,95.5218727257959728],"rgb":[0.866666666666666696,0.933333333333333348,0.2],"xyz":[0.609888023854243566,0.767603567460893754,0.147355048288310725],"hpluv":[92.5945991605726562,441.296742170845221,90.2112004280082402],"hsluv":[92.5945991605726562,94.9371734060285348,90.2112004280082402]},"#ddee44":{"lch":[90.2933822328294582,92.028546743238266,92.808164678773025],"luv":[90.2933822328294582,-4.50867173729536486,91.9180357429253689],"rgb":[0.866666666666666696,0.933333333333333348,0.266666666666666663],"xyz":[0.614346019098462426,0.76938676555858132,0.170833823241197363],"hpluv":[92.808164678773025,428.602609406071736,90.2933822328294582],"hsluv":[92.808164678773025,91.2305485856041827,90.2933822328294582]},"#ddee55":{"lch":[90.4030992965535,87.3081168904988658,93.1158428735316477],"luv":[90.4030992965535,-4.74562541158387852,87.1790474507375137],"rgb":[0.866666666666666696,0.933333333333333348,0.333333333333333315],"xyz":[0.620308433137824355,0.77177173117432607,0.202235870515171279],"hpluv":[93.1158428735316477,411.63119840797242,90.4030992965535],"hsluv":[93.1158428735316477,86.365058197250562,90.4030992965535]},"#ddee66":{"lch":[90.5423480313319828,81.4363754503924,93.5488244177654451],"luv":[90.5423480313319828,-5.04083628618753,81.2802141731499717],"rgb":[0.866666666666666696,0.933333333333333348,0.4],"xyz":[0.627893428911332596,0.774805729483729388,0.242183514922315241],"hpluv":[93.5488244177654451,390.03815237863023,90.5423480313319828],"hsluv":[93.5488244177654451,80.3228278296054583,90.5423480313319828]},"#ddee77":{"lch":[90.7128424721769449,74.4235139877598613,94.1564113073248],"luv":[90.7128424721769449,-5.39417557361030209,74.2277731322134855],"rgb":[0.866666666666666696,0.933333333333333348,0.466666666666666674],"xyz":[0.637207441931534446,0.77853133469181024,0.291237316828713122],"hpluv":[94.1564113073248,363.492124647987794,90.7128424721769449],"hsluv":[94.1564113073248,73.1200108954656116,90.7128424721769449]},"#ddee88":{"lch":[90.9160566530372449,66.3104835404903099,95.0215233218939801],"luv":[90.9160566530372449,-5.80415396856009735,66.0559764448523197],"rgb":[0.866666666666666696,0.933333333333333348,0.533333333333333326],"xyz":[0.648347859033478358,0.782987501532587782,0.349910180232285317],"hpluv":[95.0215233218939801,331.65301907995223,90.9160566530372449],"hsluv":[95.0215233218939801,64.803658473982523,90.9160566530372449]},"#ddee99":{"lch":[91.1532518637430798,57.1683554138076389,96.2947128608995513],"luv":[91.1532518637430798,-6.26808654843775237,56.8236918172404799],"rgb":[0.866666666666666696,0.933333333333333348,0.6],"xyz":[0.661404823142551,0.788210287176217,0.418676857873403252],"hpluv":[96.2947128608995513,294.152965661212647,91.1532518637430798],"hsluv":[96.2947128608995513,55.4479539090275679,91.1532518637430798]},"#ddeeaa":{"lch":[91.4254953447680805,47.1012792006961263,98.2790075719046712],"luv":[91.4254953447680805,-6.78228473243696595,46.6104185365255219],"rgb":[0.866666666666666696,0.933333333333333348,0.66666666666666663],"xyz":[0.676462516107803613,0.794233364362318062,0.497980707490401797],"hpluv":[98.2790075719046712,250.593114601078071,91.4254953447680805],"hsluv":[98.2790075719046712,45.1497304611624699,91.4254953447680805]},"#ddeebb":{"lch":[91.7336739482950634,36.2629153409390739,101.681625346389353],"luv":[91.7336739482950634,-7.34227032126066,35.5118303605101318],"rgb":[0.866666666666666696,0.933333333333333348,0.733333333333333282],"xyz":[0.693600108215140176,0.80108840120525282,0.588238692589043599],"hpluv":[101.681625346389353,200.613962446551909,91.7336739482950634],"hsluv":[101.681625346389353,34.0234190840686495,91.7336739482950634]},"#ddeecc":{"lch":[92.0785048140775189,24.9340669502590622,108.575873850927678],"luv":[92.0785048140775189,-7.94300120518182506,23.6350677285782567],"rgb":[0.866666666666666696,0.933333333333333348,0.8],"xyz":[0.712892483658861931,0.808805351382741677,0.689845203259313755],"hpluv":[108.575873850927678,144.339382081965653,92.0785048140775189],"hsluv":[108.575873850927678,22.1956929245148693,92.0785048140775189]},"#ddeedd":{"lch":[92.4605443140240908,14.0242187757329084,127.71501294922345],"luv":[92.4605443140240908,-8.57909621466854766,11.0940443666446207],"rgb":[0.866666666666666696,0.933333333333333348,0.866666666666666696],"xyz":[0.73441080920949553,0.817412681602995184,0.803175051159319753],"hpluv":[127.71501294922345,85.5555802205660854,92.4605443140240908],"hsluv":[127.71501294922345,19.0167034911391681,92.4605443140240908]},"#ddeeee":{"lch":[92.8801960589335636,9.45784403502816851,192.177050630058346],"luv":[92.8801960589335636,-9.24504689815110403,-1.99497409554724747],"rgb":[0.866666666666666696,0.933333333333333348,0.933333333333333348],"xyz":[0.758222989475670239,0.826937553709465201,0.928585867227843],"hpluv":[192.177050630058346,61.3009405779386327,92.8801960589335636],"hsluv":[192.177050630058346,16.5065503962475049,92.8801960589335636]},"#ddeeff":{"lch":[93.3377184761608305,18.4254994321377019,237.36941304521946],"luv":[93.3377184761608305,-9.93540601395951306,-15.5173044263971267],"rgb":[0.866666666666666696,0.933333333333333348,1],"xyz":[0.78439403788550166,0.837405973073397925,1.06642005551962482],"hpluv":[237.36941304521946,128.083838047846456,93.3377184761608305],"hsluv":[237.36941304521946,99.9999999999860592,93.3377184761608305]},"#667700":{"lch":[46.9985837429297462,53.5023535392226,97.7743932102929705],"luv":[46.9985837429297462,-7.23741162388150272,53.0105810873873509],"rgb":[0.4,0.466666666666666674,0],"xyz":[0.12075904236398749,0.160183725889588319,0.0245569097840955056],"hpluv":[97.7743932102929705,144.453291553004675,46.9985837429297462],"hsluv":[97.7743932102929705,100.000000000002416,46.9985837429297462]},"#667711":{"lch":[47.0515894602548315,51.4525286527524344,98.1592061252685681],"luv":[47.0515894602548315,-7.3023584206057679,50.9317019768564],"rgb":[0.4,0.466666666666666674,0.0666666666666666657],"xyz":[0.121770707863624608,0.160588392089443172,0.0298850147488511353],"hpluv":[98.1592061252685681,138.762383385982389,47.0515894602548315],"hsluv":[98.1592061252685681,95.8888552433840573,47.0515894602548315]},"#667722":{"lch":[47.1496128779850068,47.7434140964333835,98.9413563019921],"luv":[47.1496128779850068,-7.4204465613794337,47.1632331632727],"rgb":[0.4,0.466666666666666674,0.133333333333333331],"xyz":[0.123646066002101637,0.161338535344834,0.0397619009448303348],"hpluv":[98.9413563019921,128.491579290861381,47.1496128779850068],"hsluv":[98.9413563019921,88.4562635009272071,47.1496128779850068]},"#667733":{"lch":[47.3103471969426579,41.884713336750373,100.466311561708949],"luv":[47.3103471969426579,-7.6086666810921777,41.1878307590699961],"rgb":[0.4,0.466666666666666674,0.2],"xyz":[0.126733816734559357,0.162573635637817099,0.0560240548024414781],"hpluv":[100.466311561708949,112.341117260385403,47.3103471969426579],"hsluv":[100.466311561708949,76.7252257071794,47.3103471969426579]},"#667744":{"lch":[47.5409803755201068,33.9506682862991624,103.399633201782777],"luv":[47.5409803755201068,-7.86778476785512915,33.0264415269496823],"rgb":[0.4,0.466666666666666674,0.266666666666666663],"xyz":[0.131191811978778244,0.164356833735504693,0.0795028297553281166],"hpluv":[103.399633201782777,90.6190532449782324,47.5409803755201068],"hsluv":[103.399633201782777,60.8161329795325543,47.5409803755201068]},"#667755":{"lch":[47.8468512336942808,24.3055974565694441,109.700167733355244],"luv":[47.8468512336942808,-8.19336864569332768,22.8829800934354815],"rgb":[0.4,0.466666666666666674,0.333333333333333315],"xyz":[0.137154226018140257,0.166741799351249526,0.110904877029302018],"hpluv":[109.700167733355244,64.4602914823941262,47.8468512336942808],"hsluv":[109.700167733355244,41.23982633361328,47.8468512336942808]},"#667766":{"lch":[48.2317738399223543,14.0211946941261125,127.715012949232488],"luv":[48.2317738399223543,-8.57724628010491408,11.0916521267580634],"rgb":[0.4,0.466666666666666674,0.4],"xyz":[0.144739221791648415,0.169775797660652816,0.15085252143644598],"hpluv":[127.715012949232488,36.8885098590324958,48.2317738399223543],"hsluv":[127.715012949232488,18.7828263722028552,48.2317738399223543]},"#667777":{"lch":[48.6982180758881356,9.21652694043341,192.177050630059739],"luv":[48.6982180758881356,-9.00915932709454736,-1.94407228846053126],"rgb":[0.4,0.466666666666666674,0.466666666666666674],"xyz":[0.154053234811850348,0.17350140286873364,0.199906323342843889],"hpluv":[192.177050630059739,24.0156061835451808,48.6982180758881356],"hsluv":[192.177050630059739,23.9216020554503501,48.6982180758881356]},"#667788":{"lch":[49.2474401880289605,18.4334880243097601,239.056580638027469],"luv":[49.2474401880289605,-9.47834019220879398,-15.8099509152663327],"rgb":[0.4,0.466666666666666674,0.533333333333333326],"xyz":[0.165193651913794148,0.177957569709511237,0.258579186746416056],"hpluv":[239.056580638027469,47.4966726259429564,49.2474401880289605],"hsluv":[239.056580638027469,29.274081353383373,49.2474401880289605]},"#667799":{"lch":[49.8796002039077422,31.7351192214463786,251.680675473596239],"luv":[49.8796002039077422,-9.97474964621831,-30.126768188683684],"rgb":[0.4,0.466666666666666674,0.6],"xyz":[0.178250616022866876,0.183180355353140395,0.327345864387534],"hpluv":[251.680675473596239,80.734004933806176,49.8796002039077422],"hsluv":[251.680675473596239,34.661761655835349,49.8796002039077422]},"#6677aa":{"lch":[50.5938810850088174,45.7960576637453798,256.758518919433186],"luv":[50.5938810850088174,-10.4898463625666416,-44.5784928057335676],"rgb":[0.4,0.466666666666666674,0.66666666666666663],"xyz":[0.193308308988119404,0.18920343253924149,0.406649714004532592],"hpluv":[256.758518919433186,114.860161977636537,50.5938810850088174],"hsluv":[256.758518919433186,39.9381656359214858,50.5938810850088174]},"#6677bb":{"lch":[51.388614147457119,59.9444468574027738,259.409682348511467],"luv":[51.388614147457119,-11.0169047239158306,-58.9233783768730106],"rgb":[0.4,0.466666666666666674,0.733333333333333282],"xyz":[0.210445901095456078,0.196058469382176248,0.496907699103174338],"hpluv":[259.409682348511467,148.020333314730891,51.388614147457119],"hsluv":[259.409682348511467,49.2101017344363356,51.388614147457119]},"#6677cc":{"lch":[52.2614099661724225,73.9004259234932306,261.00752312302825],"luv":[52.2614099661724225,-11.5509895931656974,-72.9921063615257566],"rgb":[0.4,0.466666666666666674,0.8],"xyz":[0.229738276539177805,0.20377541955966505,0.598514209773444494],"hpluv":[261.00752312302825,179.434168102703751,52.2614099661724225],"hsluv":[261.00752312302825,61.6581230008595327,52.2614099661724225]},"#6677dd":{"lch":[53.2092913421323,87.5170631601914266,262.060353074135],"luv":[53.2092913421323,-12.0887245225321198,-86.6781349799548],"rgb":[0.4,0.466666666666666674,0.866666666666666696],"xyz":[0.251256602089811376,0.212382749779918584,0.711844057673450492],"hpluv":[262.060353074135,208.710638687620559,53.2092913421323],"hsluv":[262.060353074135,74.2459971892304083,53.2092913421323]},"#6677ee":{"lch":[54.2288239257805884,100.719531231348427,262.797438231409785],"luv":[54.2288239257805884,-12.6279723106459851,-99.9247631309883531],"rgb":[0.4,0.466666666666666674,0.933333333333333348],"xyz":[0.275068782355986086,0.221907621886388629,0.837254873741973715],"hpluv":[262.797438231409785,235.68005803746027,54.2288239257805884],"hsluv":[262.797438231409785,87.0042080584200193,54.2288239257805884]},"#6677ff":{"lch":[55.3162401631211793,113.47857319487936,263.336661992011841],"luv":[55.3162401631211793,-13.1675101506557386,-112.712036849566218],"rgb":[0.4,0.466666666666666674,1],"xyz":[0.301239830765817507,0.232376041250321325,0.97508906203375556],"hpluv":[263.336661992011841,260.315806593762318,55.3162401631211793],"hsluv":[263.336661992011841,99.999999999999,55.3162401631211793]},"#ddff00":{"lch":[94.69236188875891,107.73563953931891,97.6513944636985],"luv":[94.69236188875891,-14.3445112693176284,106.77641604488548],"rgb":[0.866666666666666696,1,0],"xyz":[0.65576562191334542,0.868918402572014,0.13317202741318887],"hpluv":[97.6513944636985,949.977135711580445,94.69236188875891],"hsluv":[97.6513944636985,100.000000000002302,94.69236188875891]},"#ddff11":{"lch":[94.7095428290633237,106.965998536257018,97.7198690947758308],"luv":[94.7095428290633237,-14.3687245726656343,105.996531061225838],"rgb":[0.866666666666666696,1,0.0666666666666666657],"xyz":[0.65677728741298258,0.869323068771868934,0.138500132377944507],"hpluv":[97.7198690947758308,946.378692368412885,94.7095428290633237],"hsluv":[97.7198690947758308,99.9999999999867697,94.7095428290633237]},"#ddff22":{"lch":[94.7413776147606086,105.545731309599958,97.8489007917202827],"luv":[94.7413776147606086,-14.4134418215914106,104.556941866783148],"rgb":[0.866666666666666696,1,0.133333333333333331],"xyz":[0.658652645551459526,0.870073212027259735,0.148377018573923686],"hpluv":[97.8489007917202827,939.695870823628752,94.7413776147606086],"hsluv":[97.8489007917202827,99.9999999999872,94.7413776147606086]},"#ddff33":{"lch":[94.7937532988665197,103.225383790498825,98.0674915546983],"luv":[94.7937532988665197,-14.4865977424562669,102.203807876928138],"rgb":[0.866666666666666696,1,0.2],"xyz":[0.661740396283917343,0.871308312320242861,0.164639172431534836],"hpluv":[98.0674915546983,928.656435156239354,94.7937532988665197],"hsluv":[98.0674915546983,99.9999999999868834,94.7937532988665197]},"#ddff44":{"lch":[94.8692843830354491,99.9146373114600692,98.397314807396512],"luv":[94.8692843830354491,-14.5912004882884094,98.8434702820129729],"rgb":[0.866666666666666696,1,0.266666666666666663],"xyz":[0.666198391528136202,0.873091510417930428,0.188117947384421474],"hpluv":[98.397314807396512,912.633071017653265,94.8692843830354491],"hsluv":[98.397314807396512,99.9999999999866276,94.8692843830354491]},"#ddff55":{"lch":[94.9701440016210654,95.558111661139634,98.8668834316730738],"luv":[94.9701440016210654,-14.7292629682473848,94.4161083536863828],"rgb":[0.866666666666666696,1,0.333333333333333315],"xyz":[0.672160805567498132,0.875476476033675177,0.21951999465839539],"hpluv":[98.8668834316730738,891.031026100052486,94.9701440016210654],"hsluv":[98.8668834316730738,99.9999999999861586,94.9701440016210654]},"#ddff66":{"lch":[95.0981866754888,90.1320341607989235,99.5166683548804798],"luv":[95.0981866754888,-14.9019372161492765,88.8915960547979438],"rgb":[0.866666666666666696,1,0.4],"xyz":[0.679745801341006373,0.878510474343078496,0.259467639065539379],"hpluv":[99.5166683548804798,863.234823568518,95.0981866754888],"hsluv":[99.5166683548804798,99.9999999999856186,95.0981866754888]},"#ddff77":{"lch":[95.2550143462764396,83.6430269583913599,100.407261812829162],"luv":[95.2550143462764396,-15.1095945804084604,82.2669806810598487],"rgb":[0.866666666666666696,1,0.466666666666666674],"xyz":[0.689059814361208223,0.882236079551159347,0.308521440971937233],"hpluv":[100.407261812829162,828.556184265804632,95.2550143462764396],"hsluv":[100.407261812829162,99.9999999999855476,95.2550143462764396]},"#ddff88":{"lch":[95.4420158908659175,76.1281736437493,101.633961649281417],"luv":[95.4420158908659175,-15.3518949618923237,74.5641880758576434],"rgb":[0.866666666666666696,1,0.533333333333333326],"xyz":[0.700200231463152134,0.886692246391936889,0.367194304375509428],"hpluv":[101.633961649281417,786.17501332264635,95.4420158908659175],"hsluv":[101.633961649281417,99.9999999999848512,95.4420158908659175]},"#ddff99":{"lch":[95.6603925662724208,67.6570848719276086,103.355147801887099],"luv":[95.6603925662724208,-15.6278614338241617,65.8274341013866859],"rgb":[0.866666666666666696,1,0.6],"xyz":[0.713257195572224778,0.891915032035566102,0.435960982016627363],"hpluv":[103.355147801887099,735.074270676232231,95.6603925662724208],"hsluv":[103.355147801887099,99.9999999999844107,95.6603925662724208]},"#ddffaa":{"lch":[95.9111754000973775,58.338925144698,105.852499131344544],"luv":[95.9111754000973775,-15.935965587620279,56.1201852084333268],"rgb":[0.866666666666666696,1,0.66666666666666663],"xyz":[0.72831488853747739,0.897938109221667169,0.515264831633625908],"hpluv":[105.852499131344544,673.992295850936557,95.9111754000973775],"hsluv":[105.852499131344544,99.9999999999831886,95.9111754000973775]},"#ddffbb":{"lch":[96.1952377631310185,48.3433070572267596,109.672211431084662],"luv":[96.1952377631310185,-16.2742233848326485,45.5216980180866813],"rgb":[0.866666666666666696,1,0.733333333333333282],"xyz":[0.745452480644814,0.904793146064601927,0.60552281673226771],"hpluv":[109.672211431084662,601.502194015230771,96.1952377631310185],"hsluv":[109.672211431084662,99.9999999999821654,96.1952377631310185]},"#ddffcc":{"lch":[96.513305005727517,37.9644197829535202,115.996292551248089],"luv":[96.513305005727517,-16.6402982513575566,34.1232712904577653],"rgb":[0.866666666666666696,1,0.8],"xyz":[0.764744856088535707,0.912510096242090785,0.707129327402537866],"hpluv":[115.996292551248089,516.693096965009204,96.513305005727517],"hsluv":[115.996292551248089,99.9999999999804885,96.513305005727517]},"#ddffdd":{"lch":[96.8659623148576,27.841508205801528,127.715012949232161],"luv":[96.8659623148576,-17.0316066426751398,22.0243945284064],"rgb":[0.866666666666666696,1,0.866666666666666696],"xyz":[0.786263181639169306,0.921117426462344291,0.820459175302543864],"hpluv":[127.715012949232161,422.676993554754517,96.8659623148576],"hsluv":[127.715012949232161,99.9999999999786411,96.8659623148576]},"#ddffee":{"lch":[97.2536615310726802,19.7831433293950418,151.864226334417424],"luv":[97.2536615310726802,-17.4454209009420502,9.32898974060759478],"rgb":[0.866666666666666696,1,0.933333333333333348],"xyz":[0.810075361905344,0.930642298568814308,0.945869991371067087],"hpluv":[151.864226334417424,343.73229759561508,97.2536615310726802],"hsluv":[151.864226334417424,99.9999999999752,97.2536615310726802]},"#ddffff":{"lch":[97.6767274082888406,18.2904922799610645,192.177050630059568],"luv":[97.6767274082888406,-17.878964623675607,-3.85807359036494368],"rgb":[0.866666666666666696,1,1],"xyz":[0.836246410315175437,0.941110717932747,1.08370417966284882],"hpluv":[192.177050630059568,376.852754928906336,97.6767274082888406],"hsluv":[192.177050630059568,99.9999999999715072,97.6767274082888406]},"#668800":{"lch":[52.32310792684153,62.4331707825390509,105.73052795354684],"luv":[52.32310792684153,-16.9264656143939405,60.0948881001240167],"rgb":[0.4,0.533333333333333326,0],"xyz":[0.142831412088957943,0.204328465339529863,0.0319143663590854554],"hpluv":[105.73052795354684,151.412310196323318,52.32310792684153],"hsluv":[105.73052795354684,100.000000000002359,52.32310792684153]},"#668811":{"lch":[52.3681821172622222,60.6739112189649603,106.201766876928076],"luv":[52.3681821172622222,-16.9292783492562116,58.26425179456308],"rgb":[0.4,0.533333333333333326,0.0666666666666666657],"xyz":[0.143843077588595075,0.204733131539384716,0.0372424713238410851],"hpluv":[106.201766876928076,147.019120365759306,52.3681821172622222],"hsluv":[106.201766876928076,96.7617570127925859,52.3681821172622222]},"#668822":{"lch":[52.4515808002199,57.4815115963739842,107.134347730867304],"luv":[52.4515808002199,-16.9348150675510247,54.9302850350507796],"rgb":[0.4,0.533333333333333326,0.133333333333333331],"xyz":[0.145718435727072076,0.205483274794775544,0.0471193575198202846],"hpluv":[107.134347730867304,139.062145386582984,52.4515808002199],"hsluv":[107.134347730867304,90.8761910280814647,52.4515808002199]},"#668833":{"lch":[52.5884544541714121,52.4173031151438593,108.860637572968898],"luv":[52.5884544541714121,-16.9448041098426323,49.6028958786070291],"rgb":[0.4,0.533333333333333326,0.2],"xyz":[0.14880618645952981,0.206718375087758643,0.0633815113774314209],"hpluv":[108.860637572968898,126.480505252334424,52.5884544541714121],"hsluv":[108.860637572968898,81.504484256448066,52.5884544541714121]},"#668844":{"lch":[52.7851097594501937,45.5231929703366234,111.874794573011059],"luv":[52.7851097594501937,-16.9610118856818559,42.2455343678863215],"rgb":[0.4,0.533333333333333326,0.266666666666666663],"xyz":[0.153264181703748698,0.208501573185446237,0.0868602863303180595],"hpluv":[111.874794573011059,109.436101408621766,52.7851097594501937],"hsluv":[111.874794573011059,68.6312430201703734,52.7851097594501937]},"#668855":{"lch":[53.0463844713544859,37.0894540992544819,117.255878513522262],"luv":[53.0463844713544859,-16.9856764955971045,32.9714179156375593],"rgb":[0.4,0.533333333333333326,0.333333333333333315],"xyz":[0.15922659574311071,0.21088653880119107,0.118262333604291975],"hpluv":[117.255878513522262,88.7225425584692715,53.0463844713544859],"hsluv":[117.255878513522262,52.5261258187504225,53.0463844713544859]},"#668866":{"lch":[53.3759296841588906,27.8248149657310222,127.715012949236794],"luv":[53.3759296841588906,-17.0213948144824521,22.0111891193247189],"rgb":[0.4,0.533333333333333326,0.4],"xyz":[0.166811591516618868,0.213920537110594361,0.158209978011435937],"hpluv":[127.715012949236794,66.1494380276081415,53.3759296841588906],"hsluv":[127.715012949236794,33.681854155652033,53.3759296841588906]},"#668877":{"lch":[53.7763606180623839,19.6211535767711887,150.461713858693599],"luv":[53.7763606180623839,-17.0709226847205855,9.67332757511772101],"rgb":[0.4,0.533333333333333326,0.466666666666666674],"xyz":[0.176125604536820801,0.217646142318675184,0.207263779917833846],"hpluv":[150.461713858693599,46.2990901048939207,53.7763606180623839],"hsluv":[150.461713858693599,37.1484166060608132,53.7763606180623839]},"#668888":{"lch":[54.2493559855519436,17.5313913512660982,192.17705063006045],"luv":[54.2493559855519436,-17.1369431164247104,-3.69795393909545],"rgb":[0.4,0.533333333333333326,0.533333333333333326],"xyz":[0.187266021638764601,0.222102309159452782,0.265936643321406],"hpluv":[192.17705063006045,41.0072951616226788,54.2493559855519436],"hsluv":[192.17705063006045,40.8467805779917228,54.2493559855519436]},"#668899":{"lch":[54.7957384612029728,24.7393499057112685,225.882505108050964],"luv":[54.7957384612029728,-17.2218541013304964,-17.7607200042594577],"rgb":[0.4,0.533333333333333326,0.6],"xyz":[0.200322985747837329,0.22732509480308194,0.33470332096252392],"hpluv":[225.882505108050964,57.2902642666713859,54.7957384612029728],"hsluv":[225.882505108050964,44.6631352998217963,54.7957384612029728]},"#6688aa":{"lch":[55.4155508256813363,36.5699037808867828,241.717344836465486],"luv":[55.4155508256813363,-17.3276119763631087,-32.2042190673817643],"rgb":[0.4,0.533333333333333326,0.66666666666666663],"xyz":[0.215380678713089857,0.233348171989183034,0.414007170579522521],"hpluv":[241.717344836465486,83.7397171719788389,55.4155508256813363],"hsluv":[241.717344836465486,48.4952118884804193,55.4155508256813363]},"#6688bb":{"lch":[56.1081340603271457,49.918102431374308,249.531909378681803],"luv":[56.1081340603271457,-17.4556451944419777,-46.7666270025424495],"rgb":[0.4,0.533333333333333326,0.733333333333333282],"xyz":[0.232518270820426531,0.240203208832117793,0.504265155678164323],"hpluv":[249.531909378681803,112.8941838879785,56.1081340603271457],"hsluv":[249.531909378681803,52.2580147864780216,56.1081340603271457]},"#6688cc":{"lch":[56.8722093096567107,63.7230017864969795,253.960340799970709],"luv":[56.8722093096567107,-17.6068348542363715,-61.2423082770199372],"rgb":[0.4,0.533333333333333326,0.8],"xyz":[0.251810646264148286,0.247920159009606594,0.605871666348434479],"hpluv":[253.960340799970709,142.178999158492672,56.8722093096567107],"hsluv":[253.960340799970709,56.6402695601832349,56.8722093096567107]},"#6688dd":{"lch":[57.7059632125805564,77.5471512008463719,256.744147904563079],"luv":[57.7059632125805564,-17.7815469636593271,-75.4809727477468755],"rgb":[0.4,0.533333333333333326,0.866666666666666696],"xyz":[0.273328971814781774,0.256527489229860128,0.719201514248440477],"hpluv":[256.744147904563079,170.523595036459966,57.7059632125805564],"hsluv":[256.744147904563079,70.7529337108087475,57.7059632125805564]},"#6688ee":{"lch":[58.6071348177704721,91.1720868217648501,258.626369492504523],"luv":[58.6071348177704721,-17.979697586292076,-89.3816529839368599],"rgb":[0.4,0.533333333333333326,0.933333333333333348],"xyz":[0.297141152080956539,0.266052361336330145,0.8446123303169637],"hpluv":[258.626369492504523,197.40162879311913,58.6071348177704721],"hsluv":[258.626369492504523,85.1920367601911295,58.6071348177704721]},"#6688ff":{"lch":[59.57310174908622,104.481663139573541,259.967822360236937],"luv":[59.57310174908622,-18.2008336002305597,-102.884146439906075],"rgb":[0.4,0.533333333333333326,1],"xyz":[0.323312200490787904,0.276520780700262869,0.982446518608745434],"hpluv":[259.967822360236937,222.550815911907222,59.57310174908622],"hsluv":[259.967822360236937,99.9999999999987352,59.57310174908622]},"#669900":{"lch":[57.6618978033021961,71.9113437902946373,111.072092359847389],"luv":[57.6618978033021961,-25.8551729794803826,67.1025438856612624],"rgb":[0.4,0.6,0],"xyz":[0.168701012541425444,0.25606766624446553,0.0405375665099077104],"hpluv":[111.072092359847389,158.251486754186431,57.6618978033021961],"hsluv":[111.072092359847389,100.000000000002444,57.6618978033021961]},"#669911":{"lch":[57.7006802499588929,70.3894808316696867,111.521292839157113],"luv":[57.7006802499588929,-25.8221679479897865,65.4820177928093727],"rgb":[0.4,0.6,0.0666666666666666657],"xyz":[0.169712678041062576,0.256472332444320383,0.0458656714746633401],"hpluv":[111.521292839157113,154.798288730060023,57.7006802499588929],"hsluv":[111.521292839157113,97.4070268725327821,57.7006802499588929]},"#669922":{"lch":[57.7724648019637499,67.6202459496272326,112.394641072548438],"luv":[57.7724648019637499,-25.7622250908158499,62.5204400229094404],"rgb":[0.4,0.6,0.133333333333333331],"xyz":[0.171588036179539577,0.257222475699711184,0.0557425576706425396],"hpluv":[112.394641072548438,148.523500329687067,57.7724648019637499],"hsluv":[112.394641072548438,92.6757293451634183,57.7724648019637499]},"#669933":{"lch":[57.8903535973237524,63.206621217633213,113.958803391015238],"luv":[57.8903535973237524,-25.6669247559924365,57.7605915769530824],"rgb":[0.4,0.6,0.2],"xyz":[0.174675786911997311,0.258457575992694311,0.0720047115282536898],"hpluv":[113.958803391015238,138.546544821103367,57.8903535973237524],"hsluv":[113.958803391015238,85.092275495173979,57.8903535973237524]},"#669944":{"lch":[58.0598969225296457,57.1535921702901888,116.538768682419729],"luv":[58.0598969225296457,-25.5364113217858204,51.131446241744662],"rgb":[0.4,0.6,0.266666666666666663],"xyz":[0.179133782156216198,0.260240774090381877,0.0954834864811403283],"hpluv":[116.538768682419729,124.912700512594284,58.0598969225296457],"hsluv":[116.538768682419729,74.5746503624431796,58.0598969225296457]},"#669955":{"lch":[58.2854489010818355,49.6561447471622515,120.7300937454592],"luv":[58.2854489010818355,-25.3740154630121886,42.6836274282534163],"rgb":[0.4,0.6,0.333333333333333315],"xyz":[0.185096196195578211,0.262625739706126737,0.126885533755114244],"hpluv":[120.7300937454592,108.106592630407334,58.2854489010818355],"hsluv":[120.7300937454592,61.2495338993745833,58.2854489010818355]},"#669966":{"lch":[58.5704165792398754,41.1710358166226,127.715012949238272],"luv":[58.5704165792398754,-25.1857364161826034,32.5688942303571949],"rgb":[0.4,0.6,0.4],"xyz":[0.192681191969086368,0.265659738015530056,0.166833178162258178],"hpluv":[127.715012949238272,89.1975256314243552,58.5704165792398754],"hsluv":[127.715012949238272,45.4174387408809324,58.5704165792398754]},"#669977":{"lch":[58.9173908027988489,32.643461159974926,139.926834832055846],"luv":[58.9173908027988489,-24.9795271581232114,21.0147276798767138],"rgb":[0.4,0.6,0.466666666666666674],"xyz":[0.201995204989288302,0.269385343223610851,0.215886980068656087],"hpluv":[139.926834832055846,70.3059403526018514,58.9173908027988489],"hsluv":[139.926834832055846,47.7876005322921813,58.9173908027988489]},"#669988":{"lch":[59.328227692638464,26.116847909850911,161.480821243886396],"luv":[59.328227692638464,-24.7644493579715288,8.29528738156475498],"rgb":[0.4,0.6,0.533333333333333326],"xyz":[0.213135622091232102,0.273841510064388449,0.274559843472228282],"hpluv":[161.480821243886396,55.8597144892801083,59.328227692638464],"hsluv":[161.480821243886396,50.3655359274122105,59.328227692638464]},"#669999":{"lch":[59.8041090330486043,25.1148951486962346,192.17705063006062],"luv":[59.8041090330486043,-24.5498215694726056,-5.29756729424584893],"rgb":[0.4,0.6,0.6],"xyz":[0.226192586200304829,0.279064295708017607,0.343326521113346161],"hpluv":[192.17705063006062,53.2892577697712042,59.8041090330486043],"hsluv":[192.17705063006062,53.0806679813151447,59.8041090330486043]},"#6699aa":{"lch":[60.3455948386344119,31.1785657150768039,218.6653689057203],"luv":[60.3455948386344119,-24.3444790905776323,-19.4794583563761137],"rgb":[0.4,0.6,0.66666666666666663],"xyz":[0.241250279165557358,0.285087372894118729,0.422630370730344762],"hpluv":[218.6653689057203,65.5616517705923911,60.3455948386344119],"hsluv":[218.6653689057203,55.8649153078387357,60.3455948386344119]},"#6699bb":{"lch":[60.9526745558420231,41.7013653705125407,234.60099737489486],"luv":[60.9526745558420231,-24.1562241025528444,-33.9923625373734168],"rgb":[0.4,0.6,0.733333333333333282],"xyz":[0.258387871272894032,0.291942409737053488,0.512888355828986509],"hpluv":[234.60099737489486,86.8154127469588,60.9526745558420231],"hsluv":[234.60099737489486,58.6571249967150123,60.9526745558420231]},"#6699cc":{"lch":[61.6248198105828493,54.2138016672169485,243.734276496040906],"luv":[61.6248198105828493,-23.9914938552849968,-48.6162988492970101],"rgb":[0.4,0.6,0.8],"xyz":[0.277680246716615731,0.299659359914542289,0.614494866499256664],"hpluv":[243.734276496040906,111.633239234030881,61.6248198105828493],"hsluv":[243.734276496040906,61.4057918386087067,61.6248198105828493]},"#6699dd":{"lch":[62.361039595623,67.5283063616342361,249.312993820438976],"luv":[62.361039595623,-23.8552311607989473,-63.1743627299522288],"rgb":[0.4,0.6,0.866666666666666696],"xyz":[0.29919857226724933,0.308266690134795796,0.727824714399262662],"hpluv":[249.312993820438976,137.407942777337979,62.361039595623],"hsluv":[249.312993820438976,66.62550454031512,62.361039595623]},"#6699ee":{"lch":[63.1599376048740453,81.0888167917790526,252.968345076420633],"luv":[63.1599376048740453,-23.7509145884581336,-77.5325110189427278],"rgb":[0.4,0.6,0.933333333333333348],"xyz":[0.323010752533424039,0.317791562241265813,0.853235530467785885],"hpluv":[252.968345076420633,162.914071535813093,63.1599376048740453],"hsluv":[252.968345076420633,83.0301883133999183,63.1599376048740453]},"#6699ff":{"lch":[64.0197707514621186,94.6074384193794771,255.504450424431923],"luv":[64.0197707514621186,-23.6806962224400728,-91.5958079318982499],"rgb":[0.4,0.6,1],"xyz":[0.34918180094325546,0.328259981605198536,0.99106971875956773],"hpluv":[255.504450424431923,187.521252715437782,64.0197707514621186],"hsluv":[255.504450424431923,99.9999999999985079,64.0197707514621186]},"#550000":{"lch":[15.1243819173422267,50.8637728648741643,12.1770506300617765],"luv":[15.1243819173422267,49.7193613905117289,10.7288626130266547],"rgb":[0.333333333333333315,0,0],"xyz":[0.0374622858816120868,0.019316491157706641,0.00175604465070052949],"hpluv":[12.1770506300617765,426.746789183125202,15.1243819173422267],"hsluv":[12.1770506300617765,100.000000000002203,15.1243819173422267]},"#550011":{"lch":[15.3402258633588957,47.2707050856887108,7.4875089370669734],"luv":[15.3402258633588957,46.8676416739534929,6.15984766208174239],"rgb":[0.333333333333333315,0,0.0666666666666666657],"xyz":[0.0384739513812492051,0.0197211573575614939,0.00708414961545616138],"hpluv":[7.4875089370669734,391.020613457768548,15.3402258633588957],"hsluv":[7.4875089370669734,99.9999999999966889,15.3402258633588957]},"#550022":{"lch":[15.7326592199860933,42.4312907985821823,358.411234527054887],"luv":[15.7326592199860933,42.4149789665186745,-1.17643448760390168],"rgb":[0.333333333333333315,0,0.133333333333333331],"xyz":[0.0403493095197262272,0.0204713006129523117,0.0169610358114353557],"hpluv":[358.411234527054887,342.234221563623748,15.7326592199860933],"hsluv":[358.411234527054887,99.9999999999971578,15.7326592199860933]},"#550033":{"lch":[16.358416636328208,38.360101220613565,343.406058671947278],"luv":[16.358416636328208,36.7625096026365128,-10.9551473459637485],"rgb":[0.333333333333333315,0,0.2],"xyz":[0.0434370602521839677,0.0217064009059354281,0.0332231896690465],"hpluv":[343.406058671947278,297.562230749163234,16.358416636328208],"hsluv":[343.406058671947278,99.9999999999977547,16.358416636328208]},"#550044":{"lch":[17.2212923868602061,37.8614359764106112,324.728975934647224],"luv":[17.2212923868602061,30.9112016871952413,-21.8628896637516235],"rgb":[0.333333333333333315,0,0.266666666666666663],"xyz":[0.0478950554964028483,0.0234895990036230046,0.0567019646219331375],"hpluv":[324.728975934647224,278.978456842737614,17.2212923868602061],"hsluv":[324.728975934647224,99.9999999999983089,17.2212923868602061]},"#550055":{"lch":[18.3096014215038,41.7063030886972754,307.715012949243544],"luv":[18.3096014215038,25.5131777875110508,-32.9923245090298636],"rgb":[0.333333333333333315,0,0.333333333333333315],"xyz":[0.0538574695357648403,0.025874564619367834,0.0881040118959070528],"hpluv":[307.715012949243544,289.042783730483393,18.3096014215038],"hsluv":[307.715012949243544,99.9999999999988,18.3096014215038]},"#550066":{"lch":[19.6013792550641099,48.6148100748190828,295.355623011865077],"luv":[19.6013792550641099,20.818580180871372,-43.9316113733990079],"rgb":[0.333333333333333315,0,0.4],"xyz":[0.0614424653092730116,0.028908562928771149,0.128051656303051015],"hpluv":[295.355623011865077,314.717786655224245,19.6013792550641099],"hsluv":[295.355623011865077,99.9999999999992468,19.6013792550641099]},"#550077":{"lch":[21.069395574911745,57.1127554515679421,287.139622223683091],"luv":[21.069395574911745,16.83119884103942,-54.5763463493480572],"rgb":[0.333333333333333315,0,0.466666666666666674],"xyz":[0.0707564783294749311,0.0326341681368519654,0.177105458209448924],"hpluv":[287.139622223683091,343.969838941793114,21.069395574911745],"hsluv":[287.139622223683091,99.9999999999995737,21.069395574911745]},"#550088":{"lch":[22.6852054601189934,66.3294491167530822,281.703433904835379],"luv":[22.6852054601189934,13.454662288017035,-64.9505033302079084],"rgb":[0.333333333333333315,0,0.533333333333333326],"xyz":[0.0818968954314187592,0.0370903349776295563,0.235778321613021091],"hpluv":[281.703433904835379,371.024851449370942,22.6852054601189934],"hsluv":[281.703433904835379,99.9999999999998721,22.6852054601189934]},"#550099":{"lch":[24.4218644362266417,75.8503102235033424,278.01254475278904],"luv":[24.4218644362266417,10.5727682252252198,-75.1098271403773339],"rgb":[0.333333333333333315,0,0.6],"xyz":[0.0949538595404914726,0.0423131206212587208,0.304544999254138971],"hpluv":[278.01254475278904,394.110378481836165,24.4218644362266417],"hsluv":[278.01254475278904,100.000000000000071,24.4218644362266417]},"#5500aa":{"lch":[26.2553935553790794,85.4876195151354,275.424483319872081],"luv":[26.2553935553790794,8.0814629277942,-85.1047768771603614],"rgb":[0.333333333333333315,0,0.66666666666666663],"xyz":[0.110011552505744015,0.0483361978073598153,0.383848848871137571],"hpluv":[275.424483319872081,413.165469396605374,26.2553935553790794],"hsluv":[275.424483319872081,100.00000000000027,26.2553935553790794]},"#5500bb":{"lch":[28.1653177219846,95.1546470205467756,273.553022331801344],"luv":[28.1653177219846,5.89694295360029841,-94.9717479748942708],"rgb":[0.333333333333333315,0,0.733333333333333282],"xyz":[0.127149144613080661,0.0551912346502945739,0.474106833969779318],"hpluv":[273.553022331801344,428.701175528050442,28.1653177219846],"hsluv":[273.553022331801344,100.000000000000355,28.1653177219846]},"#5500cc":{"lch":[30.1346298593711452,104.80902699908826,272.162345307959299],"luv":[30.1346298593711452,3.95455850560158062,-104.734395532324456],"rgb":[0.333333333333333315,0,0.8],"xyz":[0.146441520056802388,0.0629081848277833755,0.575713344640049529],"hpluv":[272.162345307959299,441.338845171454864,30.1346298593711452],"hsluv":[272.162345307959299,100.000000000000441,30.1346298593711452]},"#5500dd":{"lch":[32.1494591091083208,114.428501102308275,271.104225820707256],"luv":[32.1494591091083208,2.20517261265448461,-114.407250986418532],"rgb":[0.333333333333333315,0,0.866666666666666696],"xyz":[0.167959845607435931,0.0715155150480369095,0.689043192540055527],"hpluv":[271.104225820707256,451.647764573950099,32.1494591091083208],"hsluv":[271.104225820707256,100.000000000000483,32.1494591091083208]},"#5500ee":{"lch":[34.1986254005705774,124.000502171291956,270.282536199645165],"luv":[34.1986254005705774,0.611467178704377612,-123.998994538754019],"rgb":[0.333333333333333315,0,0.933333333333333348],"xyz":[0.191772025873610696,0.0810403871545069404,0.81445400860857875],"hpluv":[270.282536199645165,460.101999214721616,34.1986254005705774],"hsluv":[270.282536199645165,100.000000000000597,34.1986254005705774]},"#5500ff":{"lch":[36.2731838611955055,133.517545782829444,269.6330586770423],"luv":[36.2731838611955055,-0.855085145745556,-133.514807647929],"rgb":[0.333333333333333315,0,1],"xyz":[0.217943074283442062,0.0915088065184396504,0.952288196900360595],"hpluv":[269.6330586770423,467.080772865482345,36.2731838611955055],"hsluv":[269.6330586770423,100.000000000000668,36.2731838611955055]},"#551100":{"lch":[17.1436512350983392,46.6418802884309827,16.9386517648024579],"luv":[17.1436512350983392,44.618427652544149,13.5889996193616174],"rgb":[0.333333333333333315,0.0666666666666666657,0],"xyz":[0.0394666861425404941,0.0233252916795635146,0.00242417807100998037],"hpluv":[16.9386517648024579,345.232802292268,17.1436512350983392],"hsluv":[16.9386517648024579,100.000000000002245,17.1436512350983392]},"#551111":{"lch":[17.3342210988239742,43.3325537190722372,12.1770506300618173],"luv":[17.3342210988239742,42.3575912084996133,9.14027783111198566],"rgb":[0.333333333333333315,0.0666666666666666657,0.0666666666666666657],"xyz":[0.0404783516421776124,0.0237299578794183674,0.0077522830357656114],"hpluv":[12.1770506300618173,317.211759513802576,17.3342210988239742],"hsluv":[12.1770506300618173,74.3325474389658751,17.3342210988239742]},"#551122":{"lch":[17.681833534927847,38.7809423842287515,2.75476418742331486],"luv":[17.681833534927847,38.7361268795629599,1.86385798259144919],"rgb":[0.333333333333333315,0.0666666666666666657,0.133333333333333331],"xyz":[0.0423537097806546345,0.0244801011348091888,0.0176291692317448075],"hpluv":[2.75476418742331486,278.311009894887945,17.681833534927847],"hsluv":[2.75476418742331486,76.7057995287142234,17.681833534927847]},"#551133":{"lch":[18.2390179286851222,34.9181665436168771,346.660743506282301],"luv":[18.2390179286851222,33.9761101882180157,-8.05619582966011727],"rgb":[0.333333333333333315,0.0666666666666666657,0.2],"xyz":[0.045441460513112375,0.0257152014277923,0.0338913230893559542],"hpluv":[346.660743506282301,242.9345634355779,18.2390179286851222],"hsluv":[346.660743506282301,79.7834922439867285,18.2390179286851222]},"#551144":{"lch":[19.0128230091186055,34.7408929356053093,326.164658676814156],"luv":[19.0128230091186055,28.8572161490225767,-19.3440098762325228],"rgb":[0.333333333333333315,0.0666666666666666657,0.266666666666666663],"xyz":[0.0498994557573312555,0.0274983995254798746,0.0573700980422425927],"hpluv":[326.164658676814156,231.864199750183133,19.0128230091186055],"hsluv":[326.164658676814156,83.0221027238197706,19.0128230091186055]},"#551155":{"lch":[19.9971255718025702,39.1813209297373,307.715012949243771],"luv":[19.9971255718025702,23.9685594933690105,-30.9949038651824331],"rgb":[0.333333333333333315,0.0666666666666666657,0.333333333333333315],"xyz":[0.0558618697966932476,0.0298833651412247076,0.0887721453162165],"hpluv":[307.715012949243771,248.628452083429778,19.9971255718025702],"hsluv":[307.715012949243771,86.0178721207098391,19.9971255718025702]},"#551166":{"lch":[21.1763147828962417,46.7756191769153702,294.771362117319313],"luv":[21.1763147828962417,19.5989049109657927,-42.4716549674572263],"rgb":[0.333333333333333315,0.0666666666666666657,0.4],"xyz":[0.0634468655702014189,0.0329173634506280191,0.128719789723360456],"hpluv":[294.771362117319313,280.29057047770084,21.1763147828962417],"hsluv":[294.771362117319313,88.5810746573468464,21.1763147828962417]},"#551177":{"lch":[22.529041607596703,55.8726050260016436,286.442196236272423],"luv":[22.529041607596703,15.8146223861076685,-53.5877384405836494],"rgb":[0.333333333333333315,0.0666666666666666657,0.466666666666666674],"xyz":[0.0727608785904033384,0.0366429686587088355,0.177773591629758365],"hpluv":[286.442196236272423,314.699121073082495,22.529041607596703],"hsluv":[286.442196236272423,90.6792509168865166,22.529041607596703]},"#551188":{"lch":[24.0315326783493077,65.5523157673088548,281.05474383939486],"luv":[24.0315326783493077,12.5694476912001676,-64.3359548557037613],"rgb":[0.333333333333333315,0.0666666666666666657,0.533333333333333326],"xyz":[0.0839012956923471664,0.0410991354994864333,0.236446455033330533],"hpluv":[281.05474383939486,346.135302225987516,24.0315326783493077],"hsluv":[281.05474383939486,92.3586421581981654,24.0315326783493077]},"#551199":{"lch":[25.6600874124784752,75.409923320082811,277.450872837297311],"luv":[25.6600874124784752,9.77886091464338847,-74.7731931533810439],"rgb":[0.333333333333333315,0.0666666666666666657,0.6],"xyz":[0.0969582598014198799,0.0463219211431155908,0.30521313267444844],"hpluv":[277.450872837297311,372.914863977489176,25.6600874124784752],"hsluv":[277.450872837297311,93.6909530677945099,25.6600874124784752]},"#5511aa":{"lch":[27.3926712394503795,85.2829889480110097,274.948569823839534],"luv":[27.3926712394503795,7.3566383451248436,-84.9650991652784882],"rgb":[0.333333333333333315,0.0666666666666666657,0.66666666666666663],"xyz":[0.112015952766672422,0.0523449983292166923,0.38451698229144704],"hpluv":[274.948569823839534,395.063906765864772,27.3926712394503795],"hsluv":[274.948569823839534,94.7471527755802185,27.3926712394503795]},"#5511bb":{"lch":[29.2097366740877575,95.1102004757886732,273.151254165932869],"luv":[29.2097366740877575,5.22840137893499524,-94.9663838079847125],"rgb":[0.333333333333333315,0.0666666666666666657,0.733333333333333282],"xyz":[0.129153544874009069,0.0592000351721514509,0.474774967390088787],"hpluv":[273.151254165932869,413.179515249173164,29.2097366740877575],"hsluv":[273.151254165932869,95.5878244802283,29.2097366740877575]},"#5511cc":{"lch":[31.0944914716528729,104.870266468627406,271.822015936655589],"luv":[31.0944914716528729,3.33433100744475697,-104.81724584215],"rgb":[0.333333333333333315,0.0666666666666666657,0.8],"xyz":[0.148445920317730795,0.0669169853496402456,0.576381478060359],"hpluv":[271.822015936655589,427.964986778194486,31.0944914716528729],"hsluv":[271.822015936655589,96.2613872132177733,31.0944914716528729]},"#5511dd":{"lch":[33.0328257175950526,114.557035031638449,270.814150293263936],"luv":[33.0328257175950526,1.62775523553093748,-114.545469959022128],"rgb":[0.333333333333333315,0.0666666666666666657,0.866666666666666696],"xyz":[0.169964245868364339,0.0755243155698937796,0.689711325960365],"hpluv":[270.814150293263936,440.063516862193467,33.0328257175950526],"hsluv":[270.814150293263936,96.8053522828386832,33.0328257175950526]},"#5511ee":{"lch":[35.0130604571318926,124.169729525043778,270.033521846843314],"luv":[35.0130604571318926,0.0726475571782520396,-124.169708273213573],"rgb":[0.333333333333333315,0.0666666666666666657,0.933333333333333348],"xyz":[0.193776426134539104,0.0850491876763638244,0.815122142028888219],"hpluv":[270.033521846843314,450.012925469310176,35.0130604571318926],"hsluv":[270.033521846843314,97.2483877085506663,35.0130604571318926]},"#5511ff":{"lch":[37.0256255288684244,133.709282746677673,269.417732433602225],"luv":[37.0256255288684244,-1.35879534673770408,-133.702378317802101],"rgb":[0.333333333333333315,0.0666666666666666657,1],"xyz":[0.219947474544370469,0.0955176070402965205,0.952956330320670064],"hpluv":[269.417732433602225,458.245787382607887,37.0256255288684244],"hsluv":[269.417732433602225,99.999999999999531,37.0256255288684244]},"#552200":{"lch":[20.34436993371488,40.5799496107340403,26.5709502396200712],"luv":[20.34436993371488,36.2939416756913289,18.1516420207988389],"rgb":[0.333333333333333315,0.133333333333333331,0],"xyz":[0.0431823098773084293,0.0307565391490994891,0.0036627193159325909],"hpluv":[26.5709502396200712,253.10841584108,20.34436993371488],"hsluv":[26.5709502396200712,100.000000000002359,20.34436993371488]},"#552211":{"lch":[20.5030711832139332,37.4561676233306144,21.8926823519782197],"luv":[20.5030711832139332,34.7549742653004543,13.9662542166947503],"rgb":[0.333333333333333315,0.133333333333333331,0.0666666666666666657],"xyz":[0.0441939753769455546,0.031161205348954342,0.00899082428068822236],"hpluv":[21.8926823519782197,231.816181029165051,20.5030711832139332],"hsluv":[21.8926823519782197,79.998991439989,20.5030711832139332]},"#552222":{"lch":[20.7936643332181177,32.9512801850020054,12.1770506300619488],"luv":[20.7936643332181177,32.2098915499349658,6.95052171940595098],"rgb":[0.333333333333333315,0.133333333333333331,0.133333333333333331],"xyz":[0.0460693335154225697,0.0319113486043451633,0.0188677104766674167],"hpluv":[12.1770506300619488,201.08542320769223,20.7936643332181177],"hsluv":[12.1770506300619488,47.1205474310924046,20.7936643332181177]},"#552233":{"lch":[21.2623572347893699,28.8586800011052311,354.1745907436],"luv":[21.2623572347893699,28.7096478626609084,-2.92908364650122532],"rgb":[0.333333333333333315,0.133333333333333331,0.2],"xyz":[0.0491570842478803102,0.0331464488973282762,0.0351298643342785599],"hpluv":[354.1745907436,172.228245917758017,21.2623572347893699],"hsluv":[354.1745907436,52.8325366869496236,21.2623572347893699]},"#552244":{"lch":[21.9189283311679688,28.7014290952845421,329.54904741067952],"luv":[21.9189283311679688,24.7424491748557642,-14.5459011732283336],"rgb":[0.333333333333333315,0.133333333333333331,0.266666666666666663],"xyz":[0.0536150794920991908,0.0349296469950158492,0.0586086392871652],"hpluv":[329.54904741067952,166.158870546468904,21.9189283311679688],"hsluv":[329.54904741067952,59.1960886419386,21.9189283311679688]},"#552255":{"lch":[22.7630226511172538,33.9275210993755394,307.715012949244226],"luv":[22.7630226511172538,20.7546297224435,-26.8388157904337739],"rgb":[0.333333333333333315,0.133333333333333331,0.333333333333333315],"xyz":[0.0595774935314611828,0.0373146126107606821,0.0900106865611391138],"hpluv":[307.715012949244226,189.13048019699076,22.7630226511172538],"hsluv":[307.715012949244226,65.4333859354686211,22.7630226511172538]},"#552266":{"lch":[23.7863579144178132,42.6539605518829816,293.531429927677038],"luv":[23.7863579144178132,17.0296819355444384,-39.1069083914310625],"rgb":[0.333333333333333315,0.133333333333333331,0.4],"xyz":[0.0671624893049693611,0.0403486109201639936,0.129958330968283076],"hpluv":[293.531429927677038,227.546804006344104,23.7863579144178132],"hsluv":[293.531429927677038,71.0608597854246,23.7863579144178132]},"#552277":{"lch":[24.975052770659552,52.81712200152176,285.022920758889427],"luv":[24.975052770659552,13.6904851349353347,-51.0119495147337858],"rgb":[0.333333333333333315,0.133333333333333331,0.466666666666666674],"xyz":[0.0764765023251712805,0.04407421612824481,0.179012132874680985],"hpluv":[285.022920758889427,268.353735360872861,24.975052770659552],"hsluv":[285.022920758889427,75.8822745115455604,24.975052770659552]},"#552288":{"lch":[26.3119033569515395,63.3751525334233818,279.769698022236867],"luv":[26.3119033569515395,10.754023379801918,-62.4560720809542573],"rgb":[0.333333333333333315,0.133333333333333331,0.533333333333333326],"xyz":[0.0876169194271151086,0.0485303829690224,0.237684996278253152],"hpluv":[279.769698022236867,305.637106002952862,26.3119033569515395],"hsluv":[279.769698022236867,79.8897505498065357,26.3119033569515395]},"#552299":{"lch":[27.7783456471686065,73.9162973481211,276.357347681517297],"luv":[27.7783456471686065,8.18468635974612368,-73.4617582341209783],"rgb":[0.333333333333333315,0.133333333333333331,0.6],"xyz":[0.100673883536187808,0.0537531686126515654,0.306451673919371059],"hpluv":[276.357347681517297,337.654974874305083,27.7783456471686065],"hsluv":[276.357347681517297,83.1678045973750102,27.7783456471686065]},"#5522aa":{"lch":[29.3559430420228864,84.3037876124251824,274.032676149589577],"luv":[29.3559430420228864,5.92869585954675404,-84.0950603258353482],"rgb":[0.333333333333333315,0.133333333333333331,0.66666666666666663],"xyz":[0.115731576501440364,0.0597762457987526669,0.38575552353636966],"hpluv":[274.032676149589577,364.410076381253305,29.3559430420228864],"hsluv":[274.032676149589577,85.8312635149374898,29.3559430420228864]},"#5522bb":{"lch":[31.0273723986379082,94.5090555446981568,272.384235640696716],"luv":[31.0273723986379082,3.93164792491766635,-94.4272403734501324],"rgb":[0.333333333333333315,0.133333333333333331,0.733333333333333282],"xyz":[0.132869168608777,0.0666312826416874254,0.476013508635011406],"hpluv":[272.384235640696716,386.516244750379769,31.0273723986379082],"hsluv":[272.384235640696716,87.9935415010939437,31.0273723986379082]},"#5522cc":{"lch":[32.7769760620793207,104.54175742802569,271.176024316906762],"luv":[32.7769760620793207,2.1456208028374788,-104.519736688869415],"rgb":[0.333333333333333315,0.133333333333333331,0.8],"xyz":[0.152161544052498737,0.0743482328191762271,0.577620019305281507],"hpluv":[271.176024316906762,404.725193356887132,32.7769760620793207],"hsluv":[271.176024316906762,89.7538092894248507,32.7769760620793207]},"#5522dd":{"lch":[34.5909880118612847,114.421842397276407,270.265889656874094],"luv":[34.5909880118612847,0.530989812409553341,-114.420610326139567],"rgb":[0.333333333333333315,0.133333333333333331,0.866666666666666696],"xyz":[0.173679869603132281,0.0829555630394297611,0.690949867205287505],"hpluv":[270.265889656874094,419.744772471420788,34.5909880118612847],"hsluv":[270.265889656874094,91.1938440016712519,34.5909880118612847]},"#5522ee":{"lch":[36.4575428526747132,124.16924767107497,269.564389707514863],"luv":[36.4575428526747132,-0.94402906580191559,-124.165659005715739],"rgb":[0.333333333333333315,0.133333333333333331,0.933333333333333348],"xyz":[0.197492049869307018,0.092480435145899792,0.816360683273810728],"hpluv":[269.564389707514863,432.181309790662738,36.4575428526747132],"hsluv":[269.564389707514863,92.960018101107309,36.4575428526747132]},"#5522ff":{"lch":[38.3665568136218695,133.800754994484379,269.013084090219763],"luv":[38.3665568136218695,-2.30459494965050871,-133.780906258001124],"rgb":[0.333333333333333315,0.133333333333333331,1],"xyz":[0.223663098279138411,0.102948854509832488,0.954194871565592573],"hpluv":[269.013084090219763,442.532391911887146,38.3665568136218695],"hsluv":[269.013084090219763,99.9999999999994458,38.3665568136218695]},"#ccaa00":{"lch":[70.5858735612972623,80.4904122142546186,67.9906634155396],"luv":[70.5858735612972623,30.1643998932495876,74.6244962294604335],"rgb":[0.8,0.66666666666666663,0],"xyz":[0.392753797737474875,0.415879162748823417,0.059586129772359088],"hpluv":[67.9906634155396,144.699051457387782,70.5858735612972623],"hsluv":[67.9906634155396,100.000000000002373,70.5858735612972623]},"#ccaa11":{"lch":[70.6139482370970342,79.3332745728624786,67.7767588069511078],"luv":[70.6139482370970342,30.0051392857341135,73.4401802210267078],"rgb":[0.8,0.66666666666666663,0.0666666666666666657],"xyz":[0.393765463237112,0.416283828948678269,0.0649142347371147177],"hpluv":[67.7767588069511078,142.56214209062793,70.6139482370970342],"hsluv":[67.7767588069511078,98.4234445622979308,70.6139482370970342]},"#ccaa22":{"lch":[70.6659431154106,77.2098224605726529,67.3668792611096166],"luv":[70.6659431154106,29.7125737342128318,71.263733037795],"rgb":[0.8,0.66666666666666663,0.133333333333333331],"xyz":[0.395640821375589036,0.41703397220406907,0.0747911209330939103],"hpluv":[67.3668792611096166,138.644204697820271,70.6659431154106],"hsluv":[67.3668792611096166,95.5289103121581746,70.6659431154106]},"#ccaa33":{"lch":[70.7514162745237911,73.7740913884545,66.6515854645136159],"luv":[70.7514162745237911,29.2382542862800783,67.7328653349528622],"rgb":[0.8,0.66666666666666663,0.2],"xyz":[0.398728572108046742,0.418269072497052197,0.0910532747907050605],"hpluv":[66.6515854645136159,132.314688307412609,70.7514162745237911],"hsluv":[66.6515854645136159,90.8407422295077822,70.7514162745237911]},"#ccaa44":{"lch":[70.8745233475107597,68.9449101039795096,65.5199261400916271],"luv":[70.8745233475107597,28.5691680681362534,62.74713750555],"rgb":[0.8,0.66666666666666663,0.266666666666666663],"xyz":[0.403186567352265657,0.420052270594739763,0.114532049743591699],"hpluv":[65.5199261400916271,123.438713002021714,70.8745233475107597],"hsluv":[65.5199261400916271,84.237349466135143,70.8745233475107597]},"#ccaa55":{"lch":[71.0386313772099,62.7256766939065713,63.7915144306433959],"luv":[71.0386313772099,27.7020883768036121,56.2770363138665672],"rgb":[0.8,0.66666666666666663,0.333333333333333315],"xyz":[0.409148981391627642,0.422437236210484623,0.1459340970175656],"hpluv":[63.7915144306433959,112.044384698186093,71.0386313772099],"hsluv":[63.7915144306433959,75.6976413431368229,71.0386313772099]},"#ccaa66":{"lch":[71.2465086991263661,55.2096541299921952,61.1466680322388356],"luv":[71.2465086991263661,26.6424757380098143,48.3558103613508123],"rgb":[0.8,0.66666666666666663,0.4],"xyz":[0.416733977165135827,0.425471234519887942,0.185881741424709562],"hpluv":[61.1466680322388356,98.331070119416168,71.2465086991263661],"hsluv":[61.1466680322388356,65.2901205751262,71.2465086991263661]},"#ccaa77":{"lch":[71.5004247203994794,46.6032511345785068,56.9687004258729388],"luv":[71.5004247203994794,25.4032971934547263,39.0709035986321638],"rgb":[0.8,0.66666666666666663,0.466666666666666674],"xyz":[0.426047990185337733,0.429196839727968737,0.234935543331107471],"hpluv":[56.9687004258729388,82.707885898124573,71.5004247203994794],"hsluv":[56.9687004258729388,53.160756563752912,71.5004247203994794]},"#ccaa88":{"lch":[71.8022091544958556,37.3024926838847648,49.9478623796008847],"luv":[71.8022091544958556,24.003572993357885,28.5535364531929083],"rgb":[0.8,0.66666666666666663,0.533333333333333326],"xyz":[0.437188407287281533,0.433653006568746335,0.293608406734679639],"hpluv":[49.9478623796008847,65.9233659814751149,71.8022091544958556],"hsluv":[49.9478623796008847,39.5178130280575743,71.8022091544958556]},"#ccaa99":{"lch":[72.1532912119235874,28.1535194843350283,37.0598425499876214],"luv":[72.1532912119235874,22.4666918036374241,16.9666855559712388],"rgb":[0.8,0.66666666666666663,0.6],"xyz":[0.450245371396354233,0.438875792212375493,0.362375084375797574],"hpluv":[37.0598425499876214,49.5126161932360702,72.1532912119235874],"hsluv":[37.0598425499876214,26.6696495224772221,72.1532912119235874]},"#ccaaaa":{"lch":[72.5547286434336,21.297823518763618,12.177050630063027],"luv":[72.5547286434336,20.8186322940273918,4.49241984263274841],"rgb":[0.8,0.66666666666666663,0.66666666666666663],"xyz":[0.465303064361606789,0.444898869398476615,0.441678933992796174],"hpluv":[12.177050630063027,37.2485034287350203,72.5547286434336],"hsluv":[12.177050630063027,27.9047031904792959,72.5547286434336]},"#ccaabb":{"lch":[73.0072318845295,20.9674028584132515,335.544386587188285],"luv":[73.0072318845295,19.0862548050106788,-8.68025691700441193],"rgb":[0.8,0.66666666666666663,0.733333333333333282],"xyz":[0.482440656468943463,0.451753906241411374,0.531936919091437921],"hpluv":[335.544386587188285,36.4433325399841053,73.0072318845295],"hsluv":[335.544386587188285,29.1493731958161852,73.0072318845295]},"#ccaacc":{"lch":[73.5111862218870442,28.2733952257813925,307.715012949249683],"luv":[73.5111862218870442,17.2958067637387,-22.366044486780595],"rgb":[0.8,0.66666666666666663,0.8],"xyz":[0.501733031912665162,0.459470856418900175,0.633543429761708077],"hpluv":[307.715012949249683,48.8049486057506,73.5111862218870442],"hsluv":[307.715012949249683,30.3693282248248444,73.5111862218870442]},"#ccaadd":{"lch":[74.0666736076556,39.5441054640130645,293.032470315564865],"luv":[74.0666736076556,15.4717391639018693,-36.3917787995197202],"rgb":[0.8,0.66666666666666663,0.866666666666666696],"xyz":[0.523251357463298761,0.468078186639153682,0.746873277661714075],"hpluv":[293.032470315564865,67.7482749884916871,74.0666736076556],"hsluv":[293.032470315564865,52.1368854824616719,74.0666736076556]},"#ccaaee":{"lch":[74.6734949675833093,52.4074038625381462,285.081329657377239],"luv":[74.6734949675833093,13.6358764846886817,-50.6023601436286],"rgb":[0.8,0.66666666666666663,0.933333333333333348],"xyz":[0.54706353772947347,0.477603058745623699,0.872284093730237298],"hpluv":[285.081329657377239,89.0564736794959799,74.6734949675833093],"hsluv":[285.081329657377239,75.3315532053798194,74.6734949675833093]},"#ccaaff":{"lch":[75.3311933526529316,65.9300530396585458,280.316334998223624],"luv":[75.3311933526529316,11.8069327652914797,-64.8642292214135239],"rgb":[0.8,0.66666666666666663,1],"xyz":[0.573234586139304891,0.488071478109556423,1.01011828202201914],"hpluv":[280.316334998223624,111.057502918871393,75.3311933526529316],"hsluv":[280.316334998223624,99.9999999999973426,75.3311933526529316]},"#553300":{"lch":[24.6368918170402651,35.1311640480653367,43.6144672720514848],"luv":[24.6368918170402651,25.4348822629288698,24.2335604409056025],"rgb":[0.333333333333333315,0.2,0],"xyz":[0.049300031966319241,0.0429919833271212859,0.00570196001226947087],"hpluv":[43.6144672720514848,180.944734702515461,24.6368918170402651],"hsluv":[43.6144672720514848,100.000000000002245,24.6368918170402651]},"#553311":{"lch":[24.7639934196671305,31.9442274162558917,39.8156129865950632],"luv":[24.7639934196671305,24.536650698978292,20.4544967598277161],"rgb":[0.333333333333333315,0.2,0.0666666666666666657],"xyz":[0.0503116974659563593,0.0433966495269761388,0.0110300649770251023],"hpluv":[39.8156129865950632,163.685811409294416,24.7639934196671305],"hsluv":[39.8156129865950632,85.3309596574143256,24.7639934196671305]},"#553322":{"lch":[24.9975315322943885,26.9096454002331456,31.2519949010175395],"luv":[24.9975315322943885,23.0048892205904032,13.9608054035092266],"rgb":[0.333333333333333315,0.2,0.133333333333333331],"xyz":[0.0521870556044333814,0.0441467927823669601,0.0209069511730043],"hpluv":[31.2519949010175395,136.59983556614165,24.9975315322943885],"hsluv":[31.2519949010175395,60.4417762068684823,24.9975315322943885]},"#553333":{"lch":[25.3763514371309924,21.2787516643900716,12.1770506300621495],"luv":[25.3763514371309924,20.7999895475976082,4.48839695377019332],"rgb":[0.333333333333333315,0.2,0.2],"xyz":[0.0552748063368911219,0.0453818930753500729,0.0371691050306154416],"hpluv":[12.1770506300621495,106.403592780468983,25.3763514371309924],"hsluv":[12.1770506300621495,24.9336598370546909,25.3763514371309924]},"#553344":{"lch":[25.9113402150992655,19.4972565515274532,338.627269772390264],"luv":[25.9113402150992655,18.1564179844864455,-7.10545558065754257],"rgb":[0.333333333333333315,0.2,0.266666666666666663],"xyz":[0.05973280158111,0.047165091173037646,0.0606478799835020801],"hpluv":[338.627269772390264,95.4823185470749536,25.9113402150992655],"hsluv":[338.627269772390264,32.9723178491547841,25.9113402150992655]},"#553355":{"lch":[26.6061908173450519,25.0719265662328183,307.715012949245363],"luv":[26.6061908173450519,15.3373584467403763,-19.8334802195371829],"rgb":[0.333333333333333315,0.2,0.333333333333333315],"xyz":[0.065695215620472,0.0495500567887824789,0.0920499272574759886],"hpluv":[307.715012949245363,119.576085528419512,26.6061908173450519],"hsluv":[307.715012949245363,41.369683748934996,26.6061908173450519]},"#553366":{"lch":[27.4586282592714284,35.2024776289392847,290.893042573756475],"luv":[27.4586282592714284,12.5540679631371699,-32.8878367910220533],"rgb":[0.333333333333333315,0.2,0.4],"xyz":[0.0732802113939801658,0.0525840550981857904,0.13199757166461995],"hpluv":[290.893042573756475,162.679833835368925,27.4586282592714284],"hsluv":[290.893042573756475,49.429407074258,27.4586282592714284]},"#553377":{"lch":[28.461655060413058,46.8206771520520633,282.253113271302652],"luv":[28.461655060413058,9.93678843358592445,-45.7540822725452898],"rgb":[0.333333333333333315,0.2,0.466666666666666674],"xyz":[0.0825942244141820853,0.0563096603062666068,0.18105137357101786],"hpluv":[282.253113271302652,208.74537696470955,28.461655060413058],"hsluv":[282.253113271302652,56.732994513665389,28.461655060413058]},"#553388":{"lch":[29.6048600369324433,58.6666973974172876,277.388246485053742],"luv":[29.6048600369324433,7.54407762538358551,-58.1796207988872567],"rgb":[0.333333333333333315,0.2,0.533333333333333326],"xyz":[0.0937346415161259133,0.0607658271470442046,0.239724236974590027],"hpluv":[277.388246485053742,251.459446283522851,29.6048600369324433],"hsluv":[277.388246485053742,63.1061783000114715,29.6048600369324433]},"#553399":{"lch":[30.8756880539778678,70.2946203588512759,274.394660626066695],"luv":[30.8756880539778678,5.38640350826703,-70.0879469569565714],"rgb":[0.333333333333333315,0.2,0.6],"xyz":[0.106791605625198627,0.0659886127906733622,0.308490914615707934],"hpluv":[274.394660626066695,288.898157334443908,30.8756880539778678],"hsluv":[274.394660626066695,68.537799314251,30.8756880539778678]},"#5533aa":{"lch":[32.2605562861205,81.571224268378316,272.422737250332261],"luv":[32.2605562861205,3.44819039224039026,-81.498310483475251],"rgb":[0.333333333333333315,0.2,0.66666666666666663],"xyz":[0.121849298590451169,0.0720116899767744567,0.387794764232706535],"hpluv":[272.422737250332261,320.851781583216223,32.2605562861205],"hsluv":[272.422737250332261,73.1042224024611897,32.2605562861205]},"#5533bb":{"lch":[33.7457437232739395,92.4864953275551755,271.055064965734516],"luv":[33.7457437232739395,1.70298313903478205,-92.4708152143261231],"rgb":[0.333333333333333315,0.2,0.733333333333333282],"xyz":[0.138986890697787802,0.0788667268197092153,0.478052749331348281],"hpluv":[271.055064965734516,347.775228922495899,33.7457437232739395],"hsluv":[271.055064965734516,76.9172199670655772,33.7457437232739395]},"#5533cc":{"lch":[35.3180325241442,103.075547069605378,270.067872161558512],"luv":[35.3180325241442,0.12210251098248695,-103.075474748725966],"rgb":[0.333333333333333315,0.2,0.8],"xyz":[0.158279266141509556,0.0865836769971980169,0.579659260001618493],"hpluv":[270.067872161558512,370.338167129355497,35.3180325241442],"hsluv":[270.067872161558512,80.0940957669769205,35.3180325241442]},"#5533dd":{"lch":[36.9651203282397915,113.385246995104879,269.332372034398134],"luv":[36.9651203282397915,-1.32116971635525937,-113.377549570986602],"rgb":[0.333333333333333315,0.2,0.866666666666666696],"xyz":[0.179797591692143099,0.0951910072174515509,0.69298910790162449],"hpluv":[269.332372034398134,389.227711455139399,36.9651203282397915],"hsluv":[269.332372034398134,84.8119298710034855,36.9651203282397915]},"#5533ee":{"lch":[38.6758450270606247,123.460606758128,268.77009087446072],"luv":[38.6758450270606247,-2.64999738284680575,-123.432163292052948],"rgb":[0.333333333333333315,0.2,0.933333333333333348],"xyz":[0.203609771958317837,0.104715879323921596,0.818399923970147714],"hpluv":[268.77009087446072,405.067987408818738,38.6758450270606247],"hsluv":[268.77009087446072,92.2936685874649356,38.6758450270606247]},"#5533ff":{"lch":[40.4402700894382363,133.340096114557781,268.33094335317071],"luv":[40.4402700894382363,-3.88371885476632706,-133.283524712158766],"rgb":[0.333333333333333315,0.2,1],"xyz":[0.22978082036814923,0.115184298687854292,0.956234112261929559],"hpluv":[268.33094335317071,418.394573227645935,40.4402700894382363],"hsluv":[268.33094335317071,99.99999999999946,40.4402700894382363]},"#ccbb00":{"lch":[75.0632334950121418,83.0331806403360275,77.5616137481136292],"luv":[75.0632334950121418,17.8844849446013434,81.0842419062853423],"rgb":[0.8,0.733333333333333282,0],"xyz":[0.426708295646073654,0.483788158566022,0.0709042957418917],"hpluv":[77.5616137481136292,140.366584388758554,75.0632334950121418],"hsluv":[77.5616137481136292,100.000000000002373,75.0632334950121418]},"#ccbb11":{"lch":[75.0886164663743898,81.9438461169387438,77.472162284636525],"luv":[75.0886164663743898,17.7747618107910519,79.9928231718707394],"rgb":[0.8,0.733333333333333282,0.0666666666666666657],"xyz":[0.427719961145710759,0.484192824765876828,0.0762324007066473436],"hpluv":[77.472162284636525,138.478250548668058,75.0886164663743898],"hsluv":[77.472162284636525,98.6397508878022222,75.0886164663743898]},"#ccbb22":{"lch":[75.1356323460541802,79.9401497843360289,77.301186242421764],"luv":[75.1356323460541802,17.5729239259544805,77.9847414064744839],"rgb":[0.8,0.733333333333333282,0.133333333333333331],"xyz":[0.429595319284187815,0.484942968021267629,0.0861092869026265362],"hpluv":[77.301186242421764,135.007637737713509,75.1356323460541802],"hsluv":[77.301186242421764,96.1390577710114087,75.1356323460541802]},"#ccbb33":{"lch":[75.2129378077961235,76.6847204783522471,77.0041162235267223],"luv":[75.2129378077961235,17.2449407213965777,74.720535158405653],"rgb":[0.8,0.733333333333333282,0.2],"xyz":[0.432683070016645521,0.486178068314250755,0.102371440760237686],"hpluv":[77.0041162235267223,129.376563997369885,75.2129378077961235],"hsluv":[77.0041162235267223,92.0797058264172392,75.2129378077961235]},"#ccbb44":{"lch":[75.3243183189310628,72.0782997366288,76.5373230188340585],"luv":[75.3243183189310628,16.7806861485978907,70.0977165484408431],"rgb":[0.8,0.733333333333333282,0.266666666666666663],"xyz":[0.437141065260864436,0.487961266411938321,0.125850215713124325],"hpluv":[76.5373230188340585,121.425150369898518,75.3243183189310628],"hsluv":[76.5373230188340585,86.34290383100182,75.3243183189310628]},"#ccbb55":{"lch":[75.4728625341146397,66.0852327898053,75.831238609121371],"luv":[75.4728625341146397,16.1762634357197506,64.0748507149330351],"rgb":[0.8,0.733333333333333282,0.333333333333333315],"xyz":[0.443103479300226422,0.490346232027683182,0.157252262987098212],"hpluv":[75.831238609121371,111.10994393806304,75.4728625341146397],"hsluv":[75.831238609121371,78.8905565478608395,75.4728625341146397]},"#ccbb66":{"lch":[75.6611363515091284,58.7289677793131,74.7643785098968863],"luv":[75.6611363515091284,15.4333320312120961,56.6648384700597134],"rgb":[0.8,0.733333333333333282,0.4],"xyz":[0.450688475073734607,0.493380230337086501,0.197199907394242202],"hpluv":[74.7643785098968863,98.4960546107130739,75.6611363515091284],"hsluv":[74.7643785098968863,69.7569980114599701,75.6611363515091284]},"#ccbb77":{"lch":[75.8912747684230737,50.090867045562554,73.1036630558194389],"luv":[75.8912747684230737,14.5584607724557671,47.9285528814827799],"rgb":[0.8,0.733333333333333282,0.466666666666666674],"xyz":[0.460002488093936512,0.497105835545167296,0.246253709300640111],"hpluv":[73.1036630558194389,83.7540906733876795,75.8912747684230737],"hsluv":[73.1036630558194389,59.0406908273499624,75.8912747684230737]},"#ccbb88":{"lch":[76.1650362860674335,40.3168412407358332,70.3426656865815119],"luv":[76.1650362860674335,13.5623472284534756,37.9672283066009157],"rgb":[0.8,0.733333333333333282,0.533333333333333326],"xyz":[0.471142905195880313,0.501562002385944838,0.304926572704212251],"hpluv":[70.3426656865815119,67.6831847004182379,76.1650362860674335],"hsluv":[70.3426656865815119,46.8939441374685586,76.1650362860674335]},"#ccbb99":{"lch":[76.4838383644648871,29.6573629081618826,65.1594516064859732],"luv":[76.4838383644648871,12.4588924968264081,26.9134756658990248],"rgb":[0.8,0.733333333333333282,0.6],"xyz":[0.484199869304953068,0.506784788029574,0.373693250345330186],"hpluv":[65.1594516064859732,50.6096239917615662,76.4838383644648871],"hsluv":[65.1594516064859732,33.5105935092195324,76.4838383644648871]},"#ccbbaa":{"lch":[76.8487828748923,18.695758935396551,52.9508743401004551],"luv":[76.8487828748923,11.26418644921627,14.9214444946778713],"rgb":[0.8,0.733333333333333282,0.66666666666666663],"xyz":[0.499257562270205568,0.512807865215675118,0.452997099962328786],"hpluv":[52.9508743401004551,32.5142912020767696,76.8487828748923],"hsluv":[52.9508743401004551,19.1124274046376854,76.8487828748923]},"#ccbbbb":{"lch":[77.2606763328388126,10.2255548171674207,12.1770506300639045],"luv":[77.2606763328388126,9.99548454110707,2.15690985147396086],"rgb":[0.8,0.733333333333333282,0.733333333333333282],"xyz":[0.516395154377542243,0.519662902058609877,0.543255085060970533],"hpluv":[12.1770506300639045,18.1733155366010308,77.2606763328388126],"hsluv":[12.1770506300639045,17.1437484893634,77.2606763328388126]},"#ccbbcc":{"lch":[77.7200476270310361,14.1732404034447406,307.715012949257925],"luv":[77.7200476270310361,8.67025786172679247,-11.2119299027867267],"rgb":[0.8,0.733333333333333282,0.8],"xyz":[0.535687529821264,0.527379852236098734,0.644861595731240689],"hpluv":[307.715012949257925,25.815587331502627,77.7200476270310361],"hsluv":[307.715012949257925,18.1614974693692588,77.7200476270310361]},"#ccbbdd":{"lch":[78.2271648233418375,26.0669286991650679,286.275412631614586],"luv":[78.2271648233418375,7.3053819239814537,-25.022313377306272],"rgb":[0.8,0.733333333333333282,0.866666666666666696],"xyz":[0.557205855371897485,0.53598718245635224,0.758191443631246687],"hpluv":[286.275412631614586,48.8074477639820898,78.2271648233418375],"hsluv":[286.275412631614586,43.4510455050629929,78.2271648233418375]},"#ccbbee":{"lch":[78.7820519440635,39.5678846485468299,278.599571826643512],"luv":[78.7820519440635,5.9165048525659989,-39.1230426461218741],"rgb":[0.8,0.733333333333333282,0.933333333333333348],"xyz":[0.581018035638072305,0.545512054562822257,0.88360225969976991],"hpluv":[278.599571826643512,76.4037468789834,78.7820519440635],"hsluv":[278.599571826643512,70.6968150087455314,78.7820519440635]},"#ccbbff":{"lch":[79.3845061922316546,53.5695670840829834,274.837592460092935],"luv":[79.3845061922316546,4.51760925339512553,-53.3787385033564235],"rgb":[0.8,0.733333333333333282,1],"xyz":[0.607189084047903616,0.555980473926755,1.02143644799155164],"hpluv":[274.837592460092935,107.038572744282547,79.3845061922316546],"hsluv":[274.837592460092935,99.9999999999963762,79.3845061922316546]},"#554400":{"lch":[29.5776499109456879,34.0768703371065413,65.9474553070004674],"luv":[29.5776499109456879,13.8888553561515469,31.1180460322924546],"rgb":[0.333333333333333315,0.266666666666666663,0],"xyz":[0.0581326024492852811,0.0606571242930536,0.0086461501732580659],"hpluv":[65.9474553070004674,146.195957524823825,29.5776499109456879],"hsluv":[65.9474553070004674,100.000000000002217,29.5776499109456879]},"#554411":{"lch":[29.6787804923011507,30.8713815411758574,64.2244588846852906],"luv":[29.6787804923011507,13.4243191404277429,27.7998175151708296],"rgb":[0.333333333333333315,0.266666666666666663,0.0666666666666666657],"xyz":[0.0591442679489224,0.0610617904929084548,0.0139742551380136974],"hpluv":[64.2244588846852906,131.992525946838612,29.6787804923011507],"hsluv":[64.2244588846852906,89.4077694450363509,29.6787804923011507]},"#554422":{"lch":[29.8650740872788916,25.3442505658492152,60.1547603291711539],"luv":[29.8650740872788916,12.6127938179319639,21.9829131111162219],"rgb":[0.333333333333333315,0.266666666666666663,0.133333333333333331],"xyz":[0.0610196260873994215,0.0618119337482992762,0.0238511413339928952],"hpluv":[60.1547603291711539,107.684992873038837,29.8650740872788916],"hsluv":[60.1547603291711539,70.9921927199271892,29.8650740872788916]},"#554433":{"lch":[30.1685472793317686,17.4710669916127905,49.2680266756281497],"luv":[30.1685472793317686,11.400244593092479,13.2390560480378525],"rgb":[0.333333333333333315,0.266666666666666663,0.2],"xyz":[0.064107376819857162,0.0630470340412823821,0.0401132951916040384],"hpluv":[49.2680266756281497,73.4859575586117302,30.1685472793317686],"hsluv":[49.2680266756281497,43.7071568358896,30.1685472793317686]},"#554444":{"lch":[30.5997780424982437,10.1013456632853149,12.1770506300629258],"luv":[30.5997780424982437,9.87407003600776356,2.13071000682558],"rgb":[0.333333333333333315,0.266666666666666663,0.266666666666666663],"xyz":[0.0685653720640760356,0.0648302321389699621,0.06359207014449067],"hpluv":[12.1770506300629258,41.8890279889816597,30.5997780424982437],"hsluv":[12.1770506300629258,9.81589763549682282,30.5997780424982437]},"#554455":{"lch":[31.1643459369041338,13.3310860490153988,307.715012949249],"luv":[31.1643459369041338,8.15508312366709198,-10.5457325251654854],"rgb":[0.333333333333333315,0.266666666666666663,0.333333333333333315],"xyz":[0.0745277861034380346,0.0672151977547148,0.0949941174184645853],"hpluv":[307.715012949249,54.2808752323906702,31.1643459369041338],"hsluv":[307.715012949249,18.7795296363480162,31.1643459369041338]},"#554466":{"lch":[31.8635722620044533,24.8340912161126894,284.841165372516684],"luv":[31.8635722620044533,6.36101223964894835,-24.005616214070443],"rgb":[0.333333333333333315,0.266666666666666663,0.4],"xyz":[0.0821127818769462,0.0702491960641181135,0.134941761825608547],"hpluv":[284.841165372516684,98.8992811700442331,31.8635722620044533],"hsluv":[284.841165372516684,27.8963704264996828,31.8635722620044533]},"#554477":{"lch":[32.6951743277909443,37.9095930577936784,276.944338121378166],"luv":[32.6951743277909443,4.58346102749711282,-37.6314912117090259],"rgb":[0.333333333333333315,0.266666666666666663,0.466666666666666674],"xyz":[0.0914267948971481254,0.0739748012721989229,0.183995563732006456],"hpluv":[276.944338121378166,147.131204947893167,32.6951743277909443],"hsluv":[276.944338121378166,36.6308714978363952,32.6951743277909443]},"#554488":{"lch":[33.6539551717380903,51.1018638808679526,273.231940865766],"luv":[33.6539551717380903,2.88102600900669881,-51.0205858574182116],"rgb":[0.333333333333333315,0.266666666666666663,0.533333333333333326],"xyz":[0.102567211999091953,0.0784309681129765207,0.242668427135578624],"hpluv":[273.231940865766,192.681471981123309,33.6539551717380903],"hsluv":[273.231940865766,44.6505812495932801,33.6539551717380903]},"#554499":{"lch":[34.7325237210335871,63.9719124096453271,271.149517924849135],"luv":[34.7325237210335871,1.28337422751110575,-63.9590378909774913],"rgb":[0.333333333333333315,0.266666666666666663,0.6],"xyz":[0.115624176108164667,0.0836537537566056782,0.311435104776696559],"hpluv":[271.149517924849135,233.718085138698228,34.7325237210335871],"hsluv":[271.149517924849135,51.7999710200133876,34.7325237210335871]},"#5544aa":{"lch":[35.9219992682327671,76.3678985235758461,269.849629436139082],"luv":[35.9219992682327671,-0.200424374653859844,-76.367635520403681],"rgb":[0.333333333333333315,0.266666666666666663,0.66666666666666663],"xyz":[0.130681869073417223,0.0896768309427067867,0.390738954393695104],"hpluv":[269.849629436139082,269.767524553786757,35.9219992682327671],"hsluv":[269.849629436139082,58.0490239963672465,35.9219992682327671]},"#5544bb":{"lch":[37.2126506061998725,88.2627815084196925,268.978337620063314],"luv":[37.2126506061998725,-1.57376312233016602,-88.2487499584998574],"rgb":[0.333333333333333315,0.266666666666666663,0.733333333333333282],"xyz":[0.147819461180753842,0.0965318677856415452,0.480996939492336906],"hpluv":[268.978337620063314,300.972163983169935,37.2126506061998725],"hsluv":[268.978337620063314,66.0075029321504729,37.2126506061998725]},"#5544cc":{"lch":[38.5944341452357733,99.6871153018899605,268.363808876145868],"luv":[38.5944341452357733,-2.84637030136680202,-99.6464707519528758],"rgb":[0.333333333333333315,0.266666666666666663,0.8],"xyz":[0.167111836624475596,0.104248817963130347,0.582603450162607062],"hpluv":[268.363808876145868,327.758284181939189,38.5944341452357733],"hsluv":[268.363808876145868,74.5283681063652352,38.5944341452357733]},"#5544dd":{"lch":[40.0574145710935738,110.694467066426,267.913412719582],"luv":[40.0574145710935738,-4.03035995406870118,-110.621070496360275],"rgb":[0.333333333333333315,0.266666666666666663,0.866666666666666696],"xyz":[0.18863016217510914,0.112856148183383881,0.695933298062613059],"hpluv":[267.913412719582,350.65684831918054,40.0574145710935738],"hsluv":[267.913412719582,82.9425769408534,40.0574145710935738]},"#5544ee":{"lch":[41.5920687629554777,121.343449115737442,267.573227144435918],"luv":[41.5920687629554777,-5.13798666158471651,-121.23462268002875],"rgb":[0.333333333333333315,0.266666666666666663,0.933333333333333348],"xyz":[0.212442342441283877,0.122381020289853898,0.821344114131136283],"hpluv":[267.573227144435918,370.207437425804358,41.5920687629554777],"hsluv":[267.573227144435918,91.3878688389195872,41.5920687629554777]},"#5544ff":{"lch":[43.1894854939413833,131.689092168021887,267.309962581974105],"luv":[43.1894854939413833,-6.18053297470727,-131.543977468321657],"rgb":[0.333333333333333315,0.266666666666666663,1],"xyz":[0.23861339085111527,0.132849439653786594,0.959178302422918128],"hpluv":[267.309962581974105,386.911020330846497,43.1894854939413833],"hsluv":[267.309962581974105,99.9999999999994174,43.1894854939413833]},"#cccc00":{"lch":[79.627228346343,87.7811065558180132,85.8743202181747449],"luv":[79.627228346343,6.31536666608958797,87.5536339167982192],"rgb":[0.8,0.8,0],"xyz":[0.464932038955690574,0.560235645185256814,0.0836455435117636481],"hpluv":[85.8743202181747449,177.871840357077815,79.627228346343],"hsluv":[85.8743202181747449,100.000000000002245,79.627228346343]},"#cccc11":{"lch":[79.6502471087807891,86.7718911178833707,85.8743202181747],"luv":[79.6502471087807891,6.24275917928854351,86.5470337215737],"rgb":[0.8,0.8,0.0666666666666666657],"xyz":[0.465943704455327679,0.560640311385111723,0.0889736484765192848],"hpluv":[85.8743202181747,176.061859354342118,79.6502471087807891],"hsluv":[85.8743202181747,98.8217369524532927,79.6502471087807891]},"#cccc22":{"lch":[79.6928884771461838,84.9132131482774497,85.8743202181746597],"luv":[79.6928884771461838,6.10903754655005482,84.6931722597497298],"rgb":[0.8,0.8,0.133333333333333331],"xyz":[0.467819062593804735,0.561390454640502523,0.0988505346724984774],"hpluv":[85.8743202181746597,172.717957044242922,79.6928884771461838],"hsluv":[85.8743202181746597,96.653203912443459,79.6928884771461838]},"#cccc33":{"lch":[79.7630142061039891,81.8867831673476445,85.8743202181745602],"luv":[79.7630142061039891,5.89130259459140682,81.6745848549912665],"rgb":[0.8,0.8,0.2],"xyz":[0.470906813326262441,0.56262555493348565,0.115112688530109614],"hpluv":[85.8743202181745602,167.243641009868185,79.7630142061039891],"hsluv":[85.8743202181745602,93.1263971058523623,79.7630142061039891]},"#cccc44":{"lch":[79.8640786601047523,77.5899505798540901,85.8743202181744],"luv":[79.8640786601047523,5.58216917901353593,77.3888869169280156],"rgb":[0.8,0.8,0.266666666666666663],"xyz":[0.475364808570481356,0.564408753031173216,0.138591463482996252],"hpluv":[85.8743202181744,159.406599578518,79.8640786601047523],"hsluv":[85.8743202181744,88.1281264379617113,79.8640786601047523]},"#cccc55":{"lch":[79.9989166638852396,71.9729259129294832,85.8743202181741481],"luv":[79.9989166638852396,5.17805522174052,71.7864179952492236],"rgb":[0.8,0.8,0.333333333333333315],"xyz":[0.481327222609843342,0.566793718646918,0.169993510756970168],"hpluv":[85.8743202181741481,149.042041148428552,79.9989166638852396],"hsluv":[85.8743202181741481,81.6104176612222147,79.9989166638852396]},"#cccc66":{"lch":[80.1699032642976448,65.0330295388014,85.8743202181738],"luv":[80.1699032642976448,4.67876793832737103,64.8645054060685453],"rgb":[0.8,0.8,0.4],"xyz":[0.488912218383351527,0.569827716956321284,0.209941155164114129],"hpluv":[85.8743202181738,136.038559250079544,80.1699032642976448],"hsluv":[85.8743202181738,73.5839630734023,80.1699032642976448]},"#cccc77":{"lch":[80.3790384438565724,56.8098315426934803,85.8743202181733096],"luv":[80.3790384438565724,4.0871541782499472,56.6626166941875837],"rgb":[0.8,0.8,0.466666666666666674],"xyz":[0.498226231403553432,0.573553322164402135,0.258994957070512],"hpluv":[85.8743202181733096,120.326663009793734,80.3790384438565724],"hsluv":[85.8743202181733096,64.1122831116318252,80.3790384438565724]},"#cccc88":{"lch":[80.6279973255091704,47.3795499902223085,85.8743202181724854],"luv":[80.6279973255091704,3.40869741112766222,47.2567724166107865],"rgb":[0.8,0.8,0.533333333333333326],"xyz":[0.509366648505497288,0.578009489005179677,0.317667820474084206],"hpluv":[85.8743202181724854,101.866799769447482,80.6279973255091704],"hsluv":[85.8743202181724854,53.3047126681541172,80.6279973255091704]},"#cccc99":{"lch":[80.9181626169042119,36.8483625211582861,85.8743202181711496],"luv":[80.9181626169042119,2.65103653276840934,36.7528750683892724],"rgb":[0.8,0.8,0.6],"xyz":[0.522423612614569932,0.58323227464880889,0.386434498115202141],"hpluv":[85.8743202181711496,80.635831276566,80.9181626169042119],"hsluv":[85.8743202181711496,41.30786304104587,80.9181626169042119]},"#ccccaa":{"lch":[81.2506473976222452,25.3448572993520607,85.8743202181683216],"luv":[81.2506473976222452,1.82342275263520492,25.27917959487],"rgb":[0.8,0.8,0.66666666666666663],"xyz":[0.537481305579822544,0.58925535183491,0.465738347732200686],"hpluv":[85.8743202181683216,56.6117825452175509,81.2506473976222452],"hsluv":[85.8743202181683216,28.2959036617823898,81.2506473976222452]},"#ccccbb":{"lch":[81.6263125989092657,13.0121158497344798,85.8743202181599],"luv":[81.6263125989092657,0.936149997616518514,12.9783967449324749],"rgb":[0.8,0.8,0.733333333333333282],"xyz":[0.554618897687159107,0.596110388677844716,0.555996332830842488],"hpluv":[85.8743202181599,29.7570160502500514,81.6263125989092657],"hsluv":[85.8743202181599,14.4603328966824272,81.6263125989092657]},"#cccccc":{"lch":[82.0457816743453,4.34523248843710382e-12,0],"luv":[82.0457816743453,4.08534684758697557e-12,1.48019813318368677e-12],"rgb":[0.8,0.8,0.8],"xyz":[0.573911273130880861,0.603827338855333573,0.657602843501112644],"hpluv":[0,1.02065966511349575e-11,82.0457816743453],"hsluv":[0,1.01642596056880755e-11,82.0457816743453]},"#ccccdd":{"lch":[82.5094539517328087,13.5418343873660199,265.874320218194214],"luv":[82.5094539517328087,-0.974260325972223118,-13.5067425899839115],"rgb":[0.8,0.8,0.866666666666666696],"xyz":[0.59542959868151446,0.612434669075587079,0.770932691401118642],"hpluv":[265.874320218194214,32.7843842039110882,82.5094539517328087],"hsluv":[265.874320218194214,30.4637656032122131,82.5094539517328087]},"#ccccee":{"lch":[83.0175175610870895,27.4698052042972165,265.874320218185687],"luv":[83.0175175610870895,-1.97630103922669687,-27.3986209901955817],"rgb":[0.8,0.8,0.933333333333333348],"xyz":[0.61924177894768917,0.621959541182057096,0.896343507469641865],"hpluv":[265.874320218185687,68.7964750954906776,83.0175175610870895],"hsluv":[265.874320218185687,63.7216981471091941,83.0175175610870895]},"#ccccff":{"lch":[83.5699624582004219,41.6509292947620153,265.874320218182845],"luv":[83.5699624582004219,-2.99655473483939438,-41.5429966521238825],"rgb":[0.8,0.8,1],"xyz":[0.645412827357520591,0.63242796054598982,1.03417769576142371],"hpluv":[265.874320218182845,108.336501116640306,83.5699624582004219],"hsluv":[265.874320218182845,99.9999999999952536,83.5699624582004219]},"#555500":{"lch":[34.8595382729148753,38.4291768930055397,85.8743202181747307],"luv":[34.8595382729148753,2.76476741155027961,38.3295929776711901],"rgb":[0.333333333333333315,0.333333333333333315,0],"xyz":[0.0699458591636312466,0.084283637721745866,0.0125839024113732767],"hpluv":[85.8743202181747307,139.887458074797564,34.8595382729148753],"hsluv":[85.8743202181747307,100.000000000002331,34.8595382729148753]},"#555511":{"lch":[34.9408046802893,35.5443725161734108,85.8743202181745318],"luv":[34.9408046802893,2.55722164100294558,35.4522641737772517],"rgb":[0.333333333333333315,0.333333333333333315,0.0666666666666666657],"xyz":[0.0709575246632683648,0.0846883039216007188,0.0179120073761289064],"hpluv":[85.8743202181745318,129.085444875460666,34.9408046802893],"hsluv":[85.8743202181745318,92.2780688504912,34.9408046802893]},"#555522":{"lch":[35.0907688239250604,30.4130442263608813,85.8743202181740202],"luv":[35.0907688239250604,2.18805086034508589,30.3342330139914047],"rgb":[0.333333333333333315,0.333333333333333315,0.133333333333333331],"xyz":[0.0728328828017454,0.0854384471769915332,0.027788893572108106],"hpluv":[85.8743202181740202,109.978131404858061,35.0907688239250604],"hsluv":[85.8743202181740202,78.6190076783406653,35.0907688239250604]},"#555533":{"lch":[35.3357817552570097,22.5221214621125654,85.8743202181728549],"luv":[35.3357817552570097,1.62034247131604014,22.4637584885032275],"rgb":[0.333333333333333315,0.333333333333333315,0.2],"xyz":[0.0759206335342031274,0.0866735474699746461,0.0440510474297192492],"hpluv":[85.8743202181728549,80.8786547215116656,35.3357817552570097],"hsluv":[85.8743202181728549,57.8169450175211566,35.3357817552570097]},"#555544":{"lch":[35.6854507669058592,12.1926559388895619,85.8743202181691743],"luv":[35.6854507669058592,0.877194374836262392,12.1610603515028455],"rgb":[0.333333333333333315,0.333333333333333315,0.266666666666666663],"xyz":[0.080378628778422,0.0884567455676622261,0.0675298223826058808],"hpluv":[85.8743202181691743,43.355725530805,35.6854507669058592],"hsluv":[85.8743202181691743,30.9932899828832262,35.6854507669058592]},"#555555":{"lch":[36.1458508397197278,1.89718584003012571e-12,0],"luv":[36.1458508397197278,1.79982851973451413e-12,5.9994283991150471e-13],"rgb":[0.333333333333333315,0.333333333333333315,0.333333333333333315],"xyz":[0.086341042817784,0.090841711183407059,0.0989318696565798],"hpluv":[0,6.66025333978279224e-12,36.1458508397197278],"hsluv":[0,1.90696849203660445e-12,36.1458508397197278]},"#555566":{"lch":[36.7200402720523087,13.391014832031539,265.874320218184835],"luv":[36.7200402720523087,-0.963409690459316,-13.3563138627398903],"rgb":[0.333333333333333315,0.333333333333333315,0.4],"xyz":[0.0939260385912921714,0.0938757094928103775,0.138879514063723758],"hpluv":[265.874320218184835,46.2753453717946712,36.7200402720523087],"hsluv":[265.874320218184835,10.0205788523093844,36.7200402720523087]},"#555577":{"lch":[37.4084382237490445,27.3651172837118537,265.874320218181],"luv":[37.4084382237490445,-1.96876932050326592,-27.294204353927416],"rgb":[0.333333333333333315,0.333333333333333315,0.466666666666666674],"xyz":[0.103240051611494091,0.0976013147008911869,0.187933315970121667],"hpluv":[265.874320218181,92.8254499938530131,37.4084382237490445],"hsluv":[265.874320218181,20.457601163446,37.4084382237490445]},"#555588":{"lch":[38.2091925227490421,41.4380747403329508,265.874320218179832],"luv":[38.2091925227490421,-2.98124102314999906,-41.330693680935326],"rgb":[0.333333333333333315,0.333333333333333315,0.533333333333333326],"xyz":[0.114380468713437919,0.102057481541668785,0.246606179373693835],"hpluv":[265.874320218179832,137.616667264503377,38.2091925227490421],"hsluv":[265.874320218179832,30.9677616121988244,38.2091925227490421]},"#555599":{"lch":[39.1185695394092079,55.2798607696674651,265.874320218179207],"luv":[39.1185695394092079,-3.97708121608675258,-55.1366106295487626],"rgb":[0.333333333333333315,0.333333333333333315,0.6],"xyz":[0.127437432822510632,0.107280267185297942,0.315372857014811769],"hpluv":[265.874320218179207,179.317758559659353,39.1185695394092079],"hsluv":[265.874320218179207,41.3377460212352688,39.1185695394092079]},"#5555aa":{"lch":[40.1313601009005083,68.6985541131433166,265.874320218178866],"luv":[40.1313601009005083,-4.94248222285034178,-68.5205312786852829],"rgb":[0.333333333333333315,0.333333333333333315,0.66666666666666663],"xyz":[0.142495125787763188,0.113303344371399051,0.394676706631810315],"hpluv":[265.874320218178866,217.221618066114,40.1313601009005083],"hsluv":[265.874320218178866,51.4705865731736907,40.1313601009005083]},"#5555bb":{"lch":[41.2412811653463791,81.6070675548115787,265.874320218178639],"luv":[41.2412811653463791,-5.8711785983783864,-81.3955940869131],"rgb":[0.333333333333333315,0.333333333333333315,0.733333333333333282],"xyz":[0.159632717895099807,0.120158381214333809,0.484934691730452117],"hpluv":[265.874320218178639,251.093199488524249,41.2412811653463791],"hsluv":[265.874320218178639,61.3584924374872642,41.2412811653463791]},"#5555cc":{"lch":[42.4413509436270431,93.9883543596933,265.874320218178468],"luv":[42.4413509436270431,-6.76194392407029365,-93.7447964935174838],"rgb":[0.333333333333333315,0.333333333333333315,0.8],"xyz":[0.178925093338821561,0.127875331391822611,0.586541202400722272],"hpluv":[265.874320218178468,281.011551484187919,42.4413509436270431],"hsluv":[265.874320218178468,71.0546332315999791,42.4413509436270431]},"#5555dd":{"lch":[43.7242196004532389,105.866759380085014,265.874320218178411],"luv":[43.7242196004532389,-7.61652967783202328,-105.592420264465588],"rgb":[0.333333333333333315,0.333333333333333315,0.866666666666666696],"xyz":[0.200443418889455105,0.136482661612076145,0.69987105030072827],"hpluv":[265.874320218178411,307.239379297131052,43.7242196004532389],"hsluv":[265.874320218178411,80.6500300064864462,43.7242196004532389]},"#5555ee":{"lch":[45.0824447652298588,117.287521338877212,265.874320218178354],"luv":[45.0824447652298588,-8.43819053636753402,-116.983586892732674],"rgb":[0.333333333333333315,0.333333333333333315,0.933333333333333348],"xyz":[0.224255599155629842,0.146007533718546162,0.825281866369251493],"hpluv":[265.874320218178354,330.128999417958312,45.0824447652298588],"hsluv":[265.874320218178354,90.2572110855712708,45.0824447652298588]},"#5555ff":{"lch":[46.508708270344421,128.30356479361032,265.874320218178241],"luv":[46.508708270344421,-9.23073412981071,-127.971083789162734],"rgb":[0.333333333333333315,0.333333333333333315,1],"xyz":[0.250426647565461236,0.156475953082478858,0.963116054661033338],"hpluv":[265.874320218178241,350.061034522531031,46.508708270344421],"hsluv":[265.874320218178241,99.9999999999992468,46.508708270344421]},"#ccdd00":{"lch":[84.2515012159558552,94.1174138813685772,92.7819892835375555],"luv":[84.2515012159558552,-4.56806363508048818,94.0064912138661128],"rgb":[0.8,0.866666666666666696,0],"xyz":[0.507566029502865779,0.645503626279608334,0.0978568736941549666],"hpluv":[92.7819892835375555,256.902059824464118,84.2515012159558552],"hsluv":[92.7819892835375555,100.000000000002373,84.2515012159558552]},"#ccdd11":{"lch":[84.2724460606142287,93.1910749716768692,92.8373396690251695],"luv":[84.2724460606142287,-4.61302172096193619,93.0768310858219508],"rgb":[0.8,0.866666666666666696,0.0666666666666666657],"xyz":[0.508577695002502939,0.645908292479463242,0.103184978658910603],"hpluv":[92.8373396690251695,254.758074317949962,84.2724460606142287],"hsluv":[92.8373396690251695,98.9747327605244465,84.2724460606142287]},"#ccdd22":{"lch":[84.3112490917695396,91.4838404394451175,92.9423140418060711],"luv":[84.3112490917695396,-4.69591125178302349,91.3632392106652],"rgb":[0.8,0.866666666666666696,0.133333333333333331],"xyz":[0.510453053140979884,0.646658435734854,0.113061864854889796],"hpluv":[92.9423140418060711,250.792999873820406,84.3112490917695396],"hsluv":[92.9423140418060711,97.0860193213801637,84.3112490917695396]},"#ccdd33":{"lch":[84.3750724084435291,88.7007441607730271,93.1221866378423329],"luv":[84.3750724084435291,-4.83112791130122865,88.5690816130525],"rgb":[0.8,0.866666666666666696,0.2],"xyz":[0.513540803873437701,0.647893536027837169,0.129324018712500932],"hpluv":[93.1221866378423329,244.290353733928498,84.3750724084435291],"hsluv":[93.1221866378423329,94.0094146319777,84.3750724084435291]},"#ccdd44":{"lch":[84.4670755276021197,84.7426243382763857,93.3985511967960491],"luv":[84.4670755276021197,-5.02363867224446459,84.5935897939611152],"rgb":[0.8,0.866666666666666696,0.266666666666666663],"xyz":[0.517998799117656561,0.649676734125524735,0.152802793665387571],"hpluv":[93.3985511967960491,234.956854948695792,84.4670755276021197],"hsluv":[93.3985511967960491,89.638788485123,84.4670755276021197]},"#ccdd55":{"lch":[84.5898637292301601,79.5568981087007359,93.8026723407881633],"luv":[84.5898637292301601,-5.27624840258561711,79.3817437416967095],"rgb":[0.8,0.866666666666666696,0.333333333333333315],"xyz":[0.523961213157018491,0.652061699741269485,0.184204840939361486],"hpluv":[93.8026723407881633,222.570337020009788,84.5898637292301601],"hsluv":[93.8026723407881633,83.9211409492819485,84.5898637292301601]},"#ccdd66":{"lch":[84.7456349568684857,73.1331501088793772,94.3836122863904],"luv":[84.7456349568684857,-5.58984810871231,72.9192103836116],"rgb":[0.8,0.866666666666666696,0.4],"xyz":[0.531546208930526731,0.655095698050672803,0.224152485346505448],"hpluv":[94.3836122863904,206.963810787645969,84.7456349568684857],"hsluv":[94.3836122863904,76.851201462777,84.7456349568684857]},"#ccdd77":{"lch":[84.9362580835765186,65.5005774458529828,95.2238145131341156],"luv":[84.9362580835765186,-5.96359854749608687,65.2285300930849274],"rgb":[0.8,0.866666666666666696,0.466666666666666674],"xyz":[0.540860221950728581,0.658821303258753654,0.273206287252903357],"hpluv":[95.2238145131341156,188.015270942662227,84.9362580835765186],"hsluv":[95.2238145131341156,68.4671748287691,84.9362580835765186]},"#ccdd88":{"lch":[85.1633194008604733,56.7265968622164536,96.4730545580279],"luv":[85.1633194008604733,-6.39512608731957588,56.3649638862273221],"rgb":[0.8,0.866666666666666696,0.533333333333333326],"xyz":[0.552000639052672493,0.663277470099531197,0.331879150656475552],"hpluv":[96.4730545580279,165.642146962004915,85.1633194008604733],"hsluv":[96.4730545580279,58.8458897999489707,85.1633194008604733]},"#ccdd99":{"lch":[85.4281525463895548,46.9188240443766134,98.432972024211054],"luv":[85.4281525463895548,-6.88075351903593724,46.4115425375783843],"rgb":[0.8,0.866666666666666696,0.6],"xyz":[0.565057603161745137,0.66850025574316041,0.400645828297593432],"hpluv":[98.432972024211054,139.807612964747022,85.4281525463895548],"hsluv":[98.432972024211054,48.0968721297954644,85.4281525463895548]},"#ccddaa":{"lch":[85.7318592309590457,36.2402041704229134,101.807730551991185],"luv":[85.7318592309590457,-7.41576493035038453,35.4733537857886176],"rgb":[0.8,0.866666666666666696,0.66666666666666663],"xyz":[0.580115296126997748,0.674523332929261477,0.479949677914592032],"hpluv":[101.807730551991185,110.570541660882469,85.7318592309590457],"hsluv":[101.807730551991185,36.355428538792907,85.7318592309590457]},"#ccddbb":{"lch":[86.0753247228475828,24.9849555175277693,108.661729708420211],"luv":[86.0753247228475828,-7.99469198849898,23.671351930590518],"rgb":[0.8,0.866666666666666696,0.733333333333333282],"xyz":[0.597252888234334312,0.681378369772196235,0.570207663013233779],"hpluv":[108.661729708420211,78.3375416693066313,86.0753247228475828],"hsluv":[108.661729708420211,23.7751141135998658,86.0753247228475828]},"#ccddcc":{"lch":[86.4592303781436158,14.0773589090278701,127.715012949224516],"luv":[86.4592303781436158,-8.61160385902942771,11.1360815742673065],"rgb":[0.8,0.866666666666666696,0.8],"xyz":[0.616545263678056066,0.689095319949685092,0.671814173683503935],"hpluv":[127.715012949224516,45.5363150686036633,86.4592303781436158],"hsluv":[127.715012949224516,10.5200784033656536,86.4592303781436158]},"#ccdddd":{"lch":[86.8840646031333677,9.47353258269296106,192.177050630057835],"luv":[86.8840646031333677,-9.26038246071566817,-1.99828333241680145],"rgb":[0.8,0.866666666666666696,0.866666666666666696],"xyz":[0.638063589228689665,0.697702650169938599,0.785144021583509932],"hpluv":[192.177050630057835,31.7497104564534354,86.8840646031333677],"hsluv":[192.177050630057835,13.7818607651735867,86.8840646031333677]},"#ccddee":{"lch":[87.3501331068194276,18.4943223550678582,237.507437159903361],"luv":[87.3501331068194276,-9.9349674143158051,-15.5992429896340141],"rgb":[0.8,0.866666666666666696,0.933333333333333348],"xyz":[0.661875769494864374,0.707227522276408616,0.910554837652033155],"hpluv":[237.507437159903361,64.5162574350921432,87.3501331068194276],"hsluv":[237.507437159903361,51.9237885878372083,87.3501331068194276]},"#ccddff":{"lch":[87.8575689716950876,31.3946063828198874,250.2096672964189],"luv":[87.8575689716950876,-10.6295595905023852,-29.5403752996496962],"rgb":[0.8,0.866666666666666696,1],"xyz":[0.688046817904695795,0.717695941640341339,1.04838902594381489],"hpluv":[250.2096672964189,114.576774718516177,87.8575689716950876],"hsluv":[250.2096672964189,99.999999999992923,87.8575689716950876]},"#556600":{"lch":[40.3019892206732919,46.2375853800199934,99.381148915360626],"luv":[40.3019892206732919,-7.53678920078613679,45.6191967302971264],"rgb":[0.333333333333333315,0.4,0],"xyz":[0.0849739168694777086,0.114339753133439206,0.0175932549799886241],"hpluv":[99.381148915360626,145.582103533726,40.3019892206732919],"hsluv":[99.381148915360626,100.000000000002302,40.3019892206732919]},"#556611":{"lch":[40.3683315206726334,43.7939991819964618,99.9948312384981364],"luv":[40.3683315206726334,-7.60085740022420797,43.1293557931736729],"rgb":[0.333333333333333315,0.4,0.0666666666666666657],"xyz":[0.0859855823691148269,0.114744419333294059,0.0229213599447442573],"hpluv":[99.9948312384981364,137.661701347396985,40.3683315206726334],"hsluv":[99.9948312384981364,94.2576138599214204,40.3683315206726334]},"#556622":{"lch":[40.4909010608148421,39.4175015547736436,101.28961011017671],"luv":[40.4909010608148421,-7.7166980000465113,38.6547797923705758],"rgb":[0.333333333333333315,0.4,0.133333333333333331],"xyz":[0.0878609405075918559,0.115494562588684874,0.0327982461407234499],"hpluv":[101.28961011017671,123.529583899053776,40.4909010608148421],"hsluv":[101.28961011017671,83.977954812826539,40.4909010608148421]},"#556633":{"lch":[40.6915589391927455,32.6300466430477343,104.01044750968255],"luv":[40.6915589391927455,-7.89969574444685207,31.6593548745491518],"rgb":[0.333333333333333315,0.4,0.2],"xyz":[0.0909486912400495895,0.116729662881667987,0.0490603999983346],"hpluv":[104.01044750968255,101.754281640855311,40.6915589391927455],"hsluv":[104.01044750968255,68.015525760737134,40.6915589391927455]},"#556644":{"lch":[40.9787805135115306,23.7356999706126039,110.078417815454017],"luv":[40.9787805135115306,-8.1486066005911173,22.2931304119395044],"rgb":[0.333333333333333315,0.4,0.266666666666666663],"xyz":[0.0954066864842684631,0.118512860979355567,0.0725391749512212386],"hpluv":[110.078417815454017,73.4991539757345436,40.9787805135115306],"hsluv":[110.078417815454017,46.8659194429644117,40.9787805135115306]},"#556655":{"lch":[41.3584605937638372,13.8246485480389332,127.71501294923371],"luv":[41.3584605937638372,-8.45701225317865202,10.9361716896901875],"rgb":[0.333333333333333315,0.4,0.333333333333333315],"xyz":[0.101369100523630462,0.120897826595100399,0.10394122222519514],"hpluv":[127.71501294923371,42.4159365242361659,41.3584605937638372],"hsluv":[127.71501294923371,21.5972717302380097,41.3584605937638372]},"#556666":{"lch":[41.8343160733152146,9.01834401177998402,192.177050630060307],"luv":[41.8343160733152146,-8.8154354231024481,-1.90226891261946607],"rgb":[0.333333333333333315,0.4,0.4],"xyz":[0.108954096297138633,0.123931824904503718,0.143888866632339102],"hpluv":[192.177050630060307,27.3547941496945484,41.8343160733152146],"hsluv":[192.177050630060307,27.2477194602778816,41.8343160733152146]},"#556677":{"lch":[42.4081371223492525,18.1914318380534858,239.570903430569189],"luv":[42.4081371223492525,-9.21344558994119289,-15.6856817728697795],"rgb":[0.333333333333333315,0.4,0.466666666666666674],"xyz":[0.118268109317340553,0.127657430112584541,0.192942668538737],"hpluv":[239.570903430569189,54.4323412384199443,42.4081371223492525],"hsluv":[239.570903430569189,33.1626844996427934,42.4081371223492525]},"#556688":{"lch":[43.0800011190655425,31.444407039181371,252.144687081813345],"luv":[43.0800011190655425,-9.64130614192028546,-29.9298504828121246],"rgb":[0.333333333333333315,0.4,0.533333333333333326],"xyz":[0.129408526419284381,0.132113596953362111,0.251615531942309179],"hpluv":[252.144687081813345,92.6204805766441694,43.0800011190655425],"hsluv":[252.144687081813345,39.0862788716996903,43.0800011190655425]},"#556699":{"lch":[43.8484890486876964,45.3842681536749,257.153237313451427],"luv":[43.8484890486876964,-10.090933534038701,-44.2482186789059639],"rgb":[0.333333333333333315,0.4,0.6],"xyz":[0.142465490528357108,0.137336382596991269,0.320382209583427113],"hpluv":[257.153237313451427,131.337888607863903,43.8484890486876964],"hsluv":[257.153237313451427,44.8182326355090055,43.8484890486876964]},"#5566aa":{"lch":[44.7109144588579,59.3119903927914223,259.748012643434],"luv":[44.7109144588579,-10.5562103110165033,-58.3650462882037928],"rgb":[0.333333333333333315,0.4,0.66666666666666663],"xyz":[0.157523183493609636,0.143359459783092391,0.399686059200425714],"hpluv":[259.748012643434,168.332615885742257,44.7109144588579],"hsluv":[259.748012643434,50.2202557252039341,44.7109144588579]},"#5566bb":{"lch":[45.6635615252987463,72.9454914642558805,261.300749278862554],"luv":[45.6635615252987463,-11.0328519112314041,-72.1063166696695532],"rgb":[0.333333333333333315,0.4,0.733333333333333282],"xyz":[0.174660775600946283,0.15021449662602715,0.48994404429906746],"hpluv":[261.300749278862554,202.706651650989187,45.6635615252987463],"hsluv":[261.300749278862554,56.1551480082100767,45.6635615252987463]},"#5566cc":{"lch":[46.7019230239281953,86.153038102066219,262.316955218783903],"luv":[46.7019230239281953,-11.5180515282988498,-85.3796255742992],"rgb":[0.333333333333333315,0.4,0.8],"xyz":[0.193953151044668037,0.157931446803515951,0.591550554969337616],"hpluv":[262.316955218783903,234.085848684940913,46.7019230239281953],"hsluv":[262.316955218783903,67.0801136297732086,46.7019230239281953]},"#5566dd":{"lch":[47.8209277182799539,98.8836589551542,263.023825475898036],"luv":[47.8209277182799539,-12.010072956506761,-98.1515978267222664],"rgb":[0.333333333333333315,0.4,0.866666666666666696],"xyz":[0.215471476595301581,0.166538777023769485,0.704880402869343614],"hpluv":[263.023825475898036,262.38914084011509,47.8209277182799539],"hsluv":[263.023825475898036,77.9738615315733909,47.8209277182799539]},"#5566ee":{"lch":[49.0151480019121095,111.133834597019145,263.537783903780621],"luv":[49.0151480019121095,-12.5078880087352609,-110.427722650603215],"rgb":[0.333333333333333315,0.4,0.933333333333333348],"xyz":[0.23928365686147629,0.176063649130239502,0.830291218937866837],"hpluv":[263.537783903780621,287.710232398192659,49.0151480019121095],"hsluv":[263.537783903780621,88.9133133505171145,49.0151480019121095]},"#5566ff":{"lch":[50.2789812841098751,122.927042369796439,263.924295565134457],"luv":[50.2789812841098751,-13.0108962765956715,-122.236550687040406],"rgb":[0.333333333333333315,0.4,1],"xyz":[0.265454705271307712,0.186532068494172198,0.968125407229648682],"hpluv":[263.924295565134457,310.2417842032321,50.2789812841098751],"hsluv":[263.924295565134457,99.99999999999919,50.2789812841098751]},"#ccee00":{"lch":[88.9159222564839382,101.512339113439552,98.3897184755654],"luv":[88.9159222564839382,-14.8112090817394879,100.426007975120399],"rgb":[0.8,0.933333333333333348,0],"xyz":[0.554744805843380595,0.739861178960639299,0.113583132474326151],"hpluv":[98.3897184755654,409.405376777149172,88.9159222564839382],"hsluv":[98.3897184755654,100.000000000002402,88.9159222564839382]},"#ccee11":{"lch":[88.9350466502285855,100.665090554083037,98.4749110233884863],"luv":[88.9350466502285855,-14.8356507509631186,99.5658773027044],"rgb":[0.8,0.933333333333333348,0.0666666666666666657],"xyz":[0.555756471343017755,0.740265845160494207,0.118911237439081788],"hpluv":[98.4749110233884863,406.753799510206477,88.9350466502285855],"hsluv":[98.4749110233884863,99.103544824997428,88.9350466502285855]},"#ccee22":{"lch":[88.9704797513205108,99.1029038393990191,98.635890718104875],"luv":[88.9704797513205108,-14.8807650249594605,97.9793262973016823],"rgb":[0.8,0.933333333333333348,0.133333333333333331],"xyz":[0.557631829481494701,0.741015988415885,0.12878812363506098],"hpluv":[98.635890718104875,401.844579090604725,88.9704797513205108],"hsluv":[98.635890718104875,97.4508266239822376,88.9704797513205108]},"#ccee33":{"lch":[89.0287677898111696,96.5543294248683281,98.9099371535565837],"luv":[89.0287677898111696,-14.95450175665089,95.3892101230339335],"rgb":[0.8,0.933333333333333348,0.2],"xyz":[0.560719580213952518,0.742251088708868134,0.145050277492672131],"hpluv":[98.9099371535565837,393.778440936160052,89.0287677898111696],"hsluv":[98.9099371535565837,94.7550356083218333,89.0287677898111696]},"#ccee44":{"lch":[89.1128082270408157,92.9258219449750698,99.3266297509707101],"luv":[89.1128082270408157,-15.0597883526499068,91.6973890518296],"rgb":[0.8,0.933333333333333348,0.266666666666666663],"xyz":[0.565177575458171377,0.7440342868065557,0.168529052445558769],"hpluv":[99.3266297509707101,382.168331694223468,89.1128082270408157],"hsluv":[99.3266297509707101,90.9176847425828782,89.1128082270408157]},"#ccee55":{"lch":[89.224999764075946,88.1655281542066263,99.9265688821158591],"luv":[89.224999764075946,-15.1984931464969293,86.8456456063635187],"rgb":[0.8,0.933333333333333348,0.333333333333333315],"xyz":[0.571139989497533307,0.74641925242230045,0.199931099719532657],"hpluv":[99.9265688821158591,366.702481299920066,89.224999764075946],"hsluv":[99.9265688821158591,85.8839575374920372,89.224999764075946]},"#ccee66":{"lch":[89.3673776950467555,82.2600687786622444,100.76990980050725],"luv":[89.3673776950467555,-15.3715621348797811,80.8111006793235873],"rgb":[0.8,0.933333333333333348,0.4],"xyz":[0.578724985271041548,0.749453250731703768,0.239878744126676646],"hpluv":[100.76990980050725,347.124780760482849,89.3673776950467555],"hsluv":[100.76990980050725,79.6381055931254451,89.3673776950467555]},"#ccee77":{"lch":[89.5416863487684651,75.2338064272131817,101.95104715507324],"luv":[89.5416863487684651,-15.5791079616514043,73.6031047215169707],"rgb":[0.8,0.933333333333333348,0.466666666666666674],"xyz":[0.588038998291243398,0.753178855939784619,0.288932546033074555],"hpluv":[101.95104715507324,323.225079834159544,89.5416863487684651],"hsluv":[101.95104715507324,72.2002225208687349,89.5416863487684651]},"#ccee88":{"lch":[89.7494222523926481,67.150335761217363,103.626883623375818],"luv":[89.7494222523926481,-15.8204941270879562,65.2600916212887654],"rgb":[0.8,0.933333333333333348,0.533333333333333326],"xyz":[0.599179415393187309,0.757635022780562162,0.347605409436646695],"hpluv":[103.626883623375818,294.840431689210504,89.7494222523926481],"hsluv":[103.626883623375818,63.6228180815060256,89.7494222523926481]},"#ccee99":{"lch":[89.9918618926625697,58.1187887690418705,106.076645299715267],"luv":[89.9918618926625697,-16.094429395756972,55.8458857070554586],"rgb":[0.8,0.933333333333333348,0.6],"xyz":[0.61223637950226,0.762857808424191375,0.41637208707776463],"hpluv":[106.076645299715267,261.881276027636488,89.9918618926625697],"hsluv":[106.076645299715267,53.9866751643902418,89.9918618926625697]},"#cceeaa":{"lch":[90.2700807835134071,48.3136880988356481,109.842100564752428],"luv":[90.2700807835134071,-16.3990756203548145,45.4453823452884791],"rgb":[0.8,0.933333333333333348,0.66666666666666663],"xyz":[0.627294072467512565,0.768880885610292442,0.495675936694763231],"hpluv":[109.842100564752428,224.429228200920562,90.2700807835134071],"hsluv":[109.842100564752428,43.3959332818477037,90.2700807835134071]},"#cceebb":{"lch":[90.5849674500281736,38.0375276056681,116.096591597387416],"luv":[90.5849674500281736,-16.7321662581560417,34.1597441246474745],"rgb":[0.8,0.933333333333333348,0.733333333333333282],"xyz":[0.644431664574849128,0.7757359224532272,0.585933921793405],"hpluv":[116.096591597387416,183.067580850930824,90.5849674500281736],"hsluv":[116.096591597387416,31.9725829176952736,90.5849674500281736]},"#cceecc":{"lch":[90.9372344233822,27.9388105970907,127.715012949233042],"luv":[90.9372344233822,-17.0911298567764973,22.1013668762570106],"rgb":[0.8,0.933333333333333348,0.8],"xyz":[0.663724040018570882,0.783452872630716057,0.687540432463675133],"hpluv":[127.715012949233042,140.086760618050221,90.9372344233822],"hsluv":[127.715012949233042,30.3633811556705,90.9372344233822]},"#cceedd":{"lch":[91.327427526889025,19.8359452431300802,151.749458426713772],"luv":[91.327427526889025,-17.4732117028180483,9.38890816213244861],"rgb":[0.8,0.933333333333333348,0.866666666666666696],"xyz":[0.685242365569204481,0.792060202850969564,0.800870280363681131],"hpluv":[151.749458426713772,104.258293798779974,91.327427526889025],"hsluv":[151.749458426713772,29.0871711351253381,91.327427526889025]},"#cceeee":{"lch":[91.7559342603931,18.2870370266976643,192.177050630059739],"luv":[91.7559342603931,-17.87558711202,-3.8573447624494035],"rgb":[0.8,0.933333333333333348,0.933333333333333348],"xyz":[0.709054545835379191,0.801585074957439581,0.926281096432204354],"hpluv":[192.177050630059739,101.458793010104,91.7559342603931],"hsluv":[192.177050630059739,27.4217374065650326,91.7559342603931]},"#cceeff":{"lch":[92.2229917973594553,25.3309747642836847,223.758903531404655],"luv":[92.2229917973594553,-18.2954610486514362,-17.5195430170439934],"rgb":[0.8,0.933333333333333348,1],"xyz":[0.735225594245210612,0.812053494321372304,1.06411528472398609],"hpluv":[223.758903531404655,149.53216426558339,92.2229917973594553],"hsluv":[223.758903531404655,99.9999999999890861,92.2229917973594553]},"#557700":{"lch":[45.8045523271613533,55.5294361467329836,107.801769483020877],"luv":[45.8045523271613533,-16.9767207468495087,52.8706840456749276],"rgb":[0.333333333333333315,0.466666666666666674,0],"xyz":[0.103427654922895337,0.151247229240274977,0.023744500997794328],"hpluv":[107.801769483020877,153.83457187868342,45.8045523271613533],"hsluv":[107.801769483020877,100.000000000002288,45.8045523271613533]},"#557711":{"lch":[45.859623178970125,53.470483995502839,108.496139146384877],"luv":[45.859623178970125,-16.9630166203079504,50.7084679896019068],"rgb":[0.333333333333333315,0.466666666666666674,0.0666666666666666657],"xyz":[0.104439320422532456,0.15165189544012983,0.0290726059625499578],"hpluv":[108.496139146384877,147.952722071756682,45.859623178970125],"hsluv":[108.496139146384877,95.6324690191426,45.859623178970125]},"#557722":{"lch":[45.9614512879267494,49.76586948312967,109.899607245517743],"luv":[45.9614512879267494,-16.93896350220896,46.7943723206405409],"rgb":[0.333333333333333315,0.466666666666666674,0.133333333333333331],"xyz":[0.106314678561009485,0.152402038695520659,0.0389494921585291573],"hpluv":[109.899607245517743,137.396980684000368,45.9614512879267494],"hsluv":[109.899607245517743,87.7486210093461239,45.9614512879267494]},"#557733":{"lch":[46.1283843073061,43.9801463057798472,112.602269297118809],"luv":[46.1283843073061,-16.9029726498973396,40.6022509803905223],"rgb":[0.333333333333333315,0.466666666666666674,0.2],"xyz":[0.109402429293467218,0.153637138988503757,0.0552116460161403],"hpluv":[112.602269297118809,120.983948144693443,46.1283843073061],"hsluv":[112.602269297118809,75.3373974156097432,46.1283843073061]},"#557744":{"lch":[46.3678258482665413,36.3216896494577526,117.654446368962965],"luv":[46.3678258482665413,-16.8582748313623227,32.1724060135666861],"rgb":[0.333333333333333315,0.466666666666666674,0.266666666666666663],"xyz":[0.113860424537686092,0.155420337086191351,0.0786904209690269391],"hpluv":[117.654446368962965,99.4005156049610861,46.3678258482665413],"hsluv":[117.654446368962965,58.5682493514162346,46.3678258482665413]},"#557755":{"lch":[46.6852246722490349,27.4798560002662136,127.715012949237362],"luv":[46.6852246722490349,-16.8103715694690621,21.7383047520213317],"rgb":[0.333333333333333315,0.466666666666666674,0.333333333333333315],"xyz":[0.119822838577048091,0.157805302701936184,0.110092468243000841],"hpluv":[127.715012949237362,74.6920408293198506,46.6852246722490349],"hsluv":[127.715012949237362,38.0315615795731219,46.6852246722490349]},"#557766":{"lch":[47.0844103757355299,19.3533005907945039,150.034269154893224],"luv":[47.0844103757355299,-16.7662346577491,9.66662397939114371],"rgb":[0.333333333333333315,0.466666666666666674,0.4],"xyz":[0.127407834350556276,0.160839301011339475,0.150040112650144802],"hpluv":[150.034269154893224,52.1575559127659147,47.0844103757355299],"hsluv":[150.034269154893224,41.6155983808333403,47.0844103757355299]},"#557777":{"lch":[47.5677829408255519,17.1184872206298522,192.177050630060563],"luv":[47.5677829408255519,-16.733329138647683,-3.61085871511915846],"rgb":[0.333333333333333315,0.466666666666666674,0.466666666666666674],"xyz":[0.136721847370758182,0.164564906219420298,0.199093914556542712],"hpluv":[192.177050630060563,45.665876663612373,47.5677829408255519],"hsluv":[192.177050630060563,45.4871270252879683,47.5677829408255519]},"#557788":{"lch":[48.1364533988364371,24.3189053895014062,226.569261606948],"luv":[48.1364533988364371,-16.7186932071720697,-17.6605338760746164],"rgb":[0.333333333333333315,0.466666666666666674,0.533333333333333326],"xyz":[0.147862264472702,0.169021073060197896,0.257766777960114879],"hpluv":[226.569261606948,64.1075619232690173,48.1364533988364371],"hsluv":[226.569261606948,49.4930397679002567,48.1364533988364371]},"#557799":{"lch":[48.7903733600049776,36.1922931768580227,242.470518495943224],"luv":[48.7903733600049776,-16.7282575252316086,-32.0943528610435749],"rgb":[0.333333333333333315,0.466666666666666674,0.6],"xyz":[0.160919228581774709,0.174243858703827054,0.326533455601232814],"hpluv":[242.470518495943224,94.128532149155447,48.7903733600049776],"hsluv":[242.470518495943224,53.4981409183259657,48.7903733600049776]},"#5577aa":{"lch":[49.5284680294880957,49.5215284063763121,250.210257263218182],"luv":[49.5284680294880957,-16.7664778987851584,-46.5968560588918308],"rgb":[0.333333333333333315,0.466666666666666674,0.66666666666666663],"xyz":[0.175976921547027265,0.180266935889928148,0.405837305218231414],"hpluv":[250.210257263218182,126.875705911364861,49.5284680294880957],"hsluv":[250.210257263218182,57.3943781585142503,49.5284680294880957]},"#5577bb":{"lch":[50.3487764471929324,63.2168000831305,254.554261837862072],"luv":[50.3487764471929324,-16.8362555209572413,-60.9336057753316069],"rgb":[0.333333333333333315,0.466666666666666674,0.733333333333333282],"xyz":[0.193114513654363912,0.187121972732862907,0.496095290316873161],"hpluv":[254.554261837862072,159.324628464713726,50.3487764471929324],"hsluv":[254.554261837862072,61.1035457400689737,50.3487764471929324]},"#5577cc":{"lch":[51.2485971738404942,76.8367273058076279,257.264224247337211],"luv":[51.2485971738404942,-16.9390629845235594,-74.9463195111900546],"rgb":[0.333333333333333315,0.466666666666666674,0.8],"xyz":[0.212406889098085638,0.194838922910351708,0.597701800987143317],"hpluv":[257.264224247337211,190.250673687597981,51.2485971738404942],"hsluv":[257.264224247337211,64.5753193228694329,51.2485971738404942]},"#5577dd":{"lch":[52.2246350466270428,90.1721178795433502,259.084439545341468],"luv":[52.2246350466270428,-17.075183181685393,-88.5406627612090347],"rgb":[0.333333333333333315,0.466666666666666674,0.866666666666666696],"xyz":[0.233925214648719182,0.203446253130605242,0.711031648887149315],"hpluv":[259.084439545341468,219.096874823476185,52.2246350466270428],"hsluv":[259.084439545341468,74.9139940771913757,52.2246350466270428]},"#5577ee":{"lch":[53.2731438322457791,103.123503170291656,260.373961187264626],"luv":[53.2731438322457791,-17.2439851141504441,-101.671539200978515],"rgb":[0.333333333333333315,0.466666666666666674,0.933333333333333348],"xyz":[0.257737394914893947,0.212971125237075287,0.836442464955672538],"hpluv":[260.373961187264626,245.63410016831412,53.2731438322457791],"hsluv":[260.373961187264626,87.3510385353649,53.2731438322457791]},"#5577ff":{"lch":[54.3900599484937572,115.652149768064447,261.324783585170792],"luv":[54.3900599484937572,-17.4441870719707097,-114.32899931064253],"rgb":[0.333333333333333315,0.466666666666666674,1],"xyz":[0.283908443324725313,0.223439544601007983,0.974276653247454383],"hpluv":[261.324783585170792,269.819603010977914,54.3900599484937572],"hsluv":[261.324783585170792,99.9999999999989768,54.3900599484937572]},"#ccff00":{"lch":[93.605159534834371,109.568762044642341,102.903766821995461],"luv":[93.605159534834371,-24.4682604068618268,106.801768939739262],"rgb":[0.8,1,0],"xyz":[0.606597178273054372,0.843565923819988406,0.130867256617550276],"hpluv":[102.903766821995461,795.170643052662513,93.605159534834371],"hsluv":[102.903766821995461,100.000000000002359,93.605159534834371]},"#ccff11":{"lch":[93.6226829283917681,108.793716578542018,103.00230683973929],"luv":[93.6226829283917681,-24.4775292120886689,106.004355243751533],"rgb":[0.8,1,0.0666666666666666657],"xyz":[0.607608843772691531,0.843970590019843314,0.136195361582305913],"hpluv":[103.00230683973929,791.823376913543598,93.6226829283917681],"hsluv":[103.00230683973929,99.9999999999883755,93.6226829283917681]},"#ccff22":{"lch":[93.6551518183817535,107.364125357399203,103.187929529698394],"luv":[93.6551518183817535,-24.4946701604029187,104.532609971684906],"rgb":[0.8,1,0.133333333333333331],"xyz":[0.609484201911168477,0.844720733275234115,0.146072247778285091],"hpluv":[103.187929529698394,785.615721446726184,93.6551518183817535],"hsluv":[103.187929529698394,99.9999999999883613,93.6551518183817535]},"#ccff33":{"lch":[93.7085695338431464,105.030410790236445,103.502196488744218],"luv":[93.7085695338431464,-24.5227776356263192,102.127472150246831],"rgb":[0.8,1,0.2],"xyz":[0.612571952643626294,0.845955833568217241,0.162334401635896242],"hpluv":[103.502196488744218,775.386532390006209,93.7085695338431464],"hsluv":[103.502196488744218,99.9999999999882334,93.7085695338431464]},"#ccff44":{"lch":[93.7856006692118456,101.704796230104463,103.975902087852319],"luv":[93.7856006692118456,-24.5631097372148304,98.6940687997238],"rgb":[0.8,1,0.266666666666666663],"xyz":[0.617029947887845154,0.847739031665904808,0.18581317658878288],"hpluv":[103.975902087852319,760.597322717251814,93.7856006692118456],"hsluv":[103.975902087852319,99.9999999999883329,93.7856006692118456]},"#ccff55":{"lch":[93.8884584724407887,97.3367975087049473,104.649262803016768],"luv":[93.8884584724407887,-24.6166025777849207,94.1725810773922802],"rgb":[0.8,1,0.333333333333333315],"xyz":[0.622992361927207083,0.850123997281649557,0.217215223862756796],"hpluv":[104.649262803016768,740.773636872505676,93.8884584724407887],"hsluv":[104.649262803016768,99.999999999988,93.8884584724407887]},"#ccff66":{"lch":[94.0190298395239381,91.9106503723783561,105.578857731119598],"luv":[94.0190298395239381,-24.6839280463924027,88.5340123798424514],"rgb":[0.8,1,0.4],"xyz":[0.630577357700715324,0.853157995591052876,0.257162868269900757],"hpluv":[105.578857731119598,715.472563222964368,94.0190298395239381],"hsluv":[105.578857731119598,99.9999999999875371,94.0190298395239381]},"#ccff77":{"lch":[94.1789424927264349,85.4453105292158597,106.848417981185563],"luv":[94.1789424927264349,-24.7655268674123263,81.7775627566241781],"rgb":[0.8,1,0.466666666666666674],"xyz":[0.639891370720917174,0.856883600799133727,0.306216670176298666],"hpluv":[106.848417981185563,684.262206540111833,94.1789424927264349],"hsluv":[106.848417981185563,99.9999999999873381,94.1789424927264349]},"#ccff88":{"lch":[94.3696051468525781,77.9966506735583778,108.587502777405675],"luv":[94.3696051468525781,-24.8616333733667219,73.92818611532],"rgb":[0.8,1,0.533333333333333326],"xyz":[0.651031787822861086,0.861339767639911269,0.364889533579870862],"hpluv":[108.587502777405675,646.714804777793233,94.3696051468525781],"hsluv":[108.587502777405675,99.9999999999870397,94.3696051468525781]},"#ccff99":{"lch":[94.5922333645115572,69.6635615227201868,111.00626449694991],"luv":[94.5922333645115572,-24.9722983929036886,65.0338074927618],"rgb":[0.8,1,0.6],"xyz":[0.66408875193193373,0.866562553283540482,0.433656211220988741],"hpluv":[111.00626449694991,602.43247210261859,94.5922333645115572],"hsluv":[111.00626449694991,99.999999999986656,94.5922333645115572]},"#ccffaa":{"lch":[94.8478672375315881,60.6030718965076574,114.464397640121035],"luv":[94.8478672375315881,-25.0974127381864349,55.1620539605116],"rgb":[0.8,1,0.66666666666666663],"xyz":[0.679146444897186341,0.872585630469641549,0.512960060837987397],"hpluv":[114.464397640121035,551.164539659931279,94.8478672375315881],"hsluv":[114.464397640121035,99.9999999999858886,94.8478672375315881]},"#ccffbb":{"lch":[95.1373841969384,51.0680528276179899,119.615591899534252],"luv":[95.1373841969384,-25.2367319023901224,44.3965469658538439],"rgb":[0.8,1,0.733333333333333282],"xyz":[0.696284037004522904,0.879440667312576307,0.603218045936629088],"hpluv":[119.615591899534252,493.192076617112832,95.1373841969384],"hsluv":[119.615591899534252,99.999999999985036,95.1373841969384]},"#ccffcc":{"lch":[95.4615088709507802,41.5047839306073527,127.715012949235671],"luv":[95.4615088709507802,-25.3899015983654444,32.8329101048280876],"rgb":[0.8,1,0.8],"xyz":[0.715576412448244659,0.887157617490065165,0.704824556606899244],"hpluv":[127.715012949235671,430.524428546451247,95.4615088709507802],"hsluv":[127.715012949235671,99.9999999999844,95.4615088709507802]},"#ccffdd":{"lch":[95.8208211701733603,32.8093273722257,141.163585516297758],"luv":[95.8208211701733603,-25.5564832849791728,20.5746962243056899],"rgb":[0.8,1,0.866666666666666696],"xyz":[0.737094737998878258,0.895764947710318671,0.818154404506905242],"hpluv":[141.163585516297758,370.598640927928557,95.8208211701733603],"hsluv":[141.163585516297758,99.9999999999829612,95.8208211701733603]},"#ccffee":{"lch":[96.2157633520208293,26.8716381406037179,163.283084738459195],"luv":[96.2157633520208293,-25.7359786647352209,7.72944619800421506],"rgb":[0.8,1,0.933333333333333348],"xyz":[0.760906918265053,0.905289819816788688,0.943565220575428465],"hpluv":[163.283084738459195,336.210724351278486,96.2157633520208293],"hsluv":[163.283084738459195,99.9999999999813411,96.2157633520208293]},"#ccffff":{"lch":[96.6466465538527899,26.5246444827845806,192.177050630060279],"luv":[96.6466465538527899,-25.9278521925209873,-5.59493034995961125],"rgb":[0.8,1,1],"xyz":[0.787077966674884388,0.915758239180721412,1.08139940886721031],"hpluv":[192.177050630060279,375.729722461639881,96.6466465538527899],"hsluv":[192.177050630060279,99.9999999999789111,96.6466465538527899]},"#558800":{"lch":[51.3121649295003266,65.2833526322192,113.133039202335894],"luv":[51.3121649295003266,-25.6477049188799029,60.0342515843809466],"rgb":[0.333333333333333315,0.533333333333333326,0],"xyz":[0.125500024647865804,0.195391968690216522,0.0311019575727842744],"hpluv":[113.133039202335894,161.443824642532,51.3121649295003266],"hsluv":[113.133039202335894,100.000000000002416,51.3121649295003266]},"#558811":{"lch":[51.3586018009433758,63.5282336791645363,113.757082680238781],"luv":[51.3586018009433758,-25.5929736747770171,58.1449582756467862],"rgb":[0.333333333333333315,0.533333333333333326,0.0666666666666666657],"xyz":[0.126511690147502937,0.195796634890071375,0.0364300625375399076],"hpluv":[113.757082680238781,156.961418592175818,51.3586018009433758],"hsluv":[113.757082680238781,96.6047658949560315,51.3586018009433758]},"#558822":{"lch":[51.4445144263052754,60.3557257759597761,114.985955444381503],"luv":[51.4445144263052754,-25.4940226670596211,54.707115096615226],"rgb":[0.333333333333333315,0.533333333333333326,0.133333333333333331],"xyz":[0.128387048285979938,0.196546778145462203,0.0463069487335191],"hpluv":[114.985955444381503,148.873956641671725,51.4445144263052754],"hsluv":[114.985955444381503,90.4397474873449454,51.4445144263052754]},"#558833":{"lch":[51.5854933484676366,55.3603846502330512,117.238150003797628],"luv":[51.5854933484676366,-25.3378965271949284,49.2215723864945502],"rgb":[0.333333333333333315,0.533333333333333326,0.2],"xyz":[0.131474799018437671,0.197781878438445302,0.0625691025911302434],"hpluv":[117.238150003797628,136.179218375975154,51.5854933484676366],"hsluv":[117.238150003797628,80.6386945119108844,51.5854933484676366]},"#558844":{"lch":[51.788002513998137,48.6519311113283521,121.094634958525788],"luv":[51.788002513998137,-25.1264429677671792,41.6614001762900799],"rgb":[0.333333333333333315,0.533333333333333326,0.266666666666666663],"xyz":[0.135932794262656559,0.199565076536132896,0.0860478775440168819],"hpluv":[121.094634958525788,119.20933058927335,51.788002513998137],"hsluv":[121.094634958525788,67.2069053574962112,51.788002513998137]},"#558855":{"lch":[52.0569745246593669,40.6501953066927229,127.715012949238655],"luv":[52.0569745246593669,-24.8671203906742271,32.1568764333225801],"rgb":[0.333333333333333315,0.533333333333333326,0.333333333333333315],"xyz":[0.141895208302018572,0.201950042151877729,0.117449924817990797],"hpluv":[127.715012949238655,99.0884509425644495,52.0569745246593669],"hsluv":[127.715012949238655,50.4536826414745647,52.0569745246593669]},"#558866":{"lch":[52.3961000606252156,32.296627997442414,139.535908661945541],"luv":[52.3961000606252156,-24.57168930668605,20.9595864611130054],"rgb":[0.333333333333333315,0.533333333333333326,0.4],"xyz":[0.149480204075526729,0.20498404046128102,0.157397569225134759],"hpluv":[139.535908661945541,78.2163498792783258,52.3961000606252156],"hsluv":[139.535908661945541,52.7717106037122505,52.3961000606252156]},"#558877":{"lch":[52.8079833364028417,25.6675371494617757,160.900154113051656],"luv":[52.8079833364028417,-24.2545338981935465,8.39881233868101873],"rgb":[0.333333333333333315,0.533333333333333326,0.466666666666666674],"xyz":[0.158794217095728663,0.208709645669361843,0.206451371131532668],"hpluv":[160.900154113051656,61.6770996704155934,52.8079833364028417],"hsluv":[160.900154113051656,55.3375604028527732,52.8079833364028417]},"#558888":{"lch":[53.2942460543653311,24.4817100724115,192.177050630060762],"luv":[53.2942460543653311,-23.9308828659180151,-5.16400748714853908],"rgb":[0.333333333333333315,0.533333333333333326,0.533333333333333326],"xyz":[0.169934634197672463,0.213165812510139441,0.265124234535104808],"hpluv":[192.177050630060762,58.2908991249141764,53.2942460543653311],"hsluv":[192.177050630060762,58.0627314448554515,53.2942460543653311]},"#558899":{"lch":[53.8556132197311399,30.5464388010487,219.367537814697016],"luv":[53.8556132197311399,-23.6152401502492637,-19.3753801529742589],"rgb":[0.333333333333333315,0.533333333333333326,0.6],"xyz":[0.18299159830674519,0.218388598153768598,0.333890912176222743],"hpluv":[219.367537814697016,71.9728892793730921,53.8556132197311399],"hsluv":[219.367537814697016,60.861676067449,53.8556132197311399]},"#5588aa":{"lch":[54.491995562986105,41.1624410064978434,235.49057853568965],"luv":[54.491995562986105,-23.3202411533326384,-33.9192114024460452],"rgb":[0.333333333333333315,0.533333333333333326,0.66666666666666663],"xyz":[0.198049291271997718,0.224411675339869693,0.413194761793221343],"hpluv":[235.49057853568965,95.8534470006528494,54.491995562986105],"hsluv":[235.49057853568965,63.6587877222075207,54.491995562986105]},"#5588bb":{"lch":[55.2025746803936102,53.7318677649407164,244.589939769846183],"luv":[55.2025746803936102,-23.0560079965343867,-48.5338449823709865],"rgb":[0.333333333333333315,0.533333333333333326,0.733333333333333282],"xyz":[0.215186883379334393,0.231266712182804451,0.503452746891863],"hpluv":[244.589939769846183,123.512789385845494,55.2025746803936102],"hsluv":[244.589939769846183,66.3923972476147,55.2025746803936102]},"#5588cc":{"lch":[55.9858924676882,67.0258402153595227,250.085698604565607],"luv":[55.9858924676882,-22.8299557310329213,-63.0179052166444436],"rgb":[0.333333333333333315,0.533333333333333326,0.8],"xyz":[0.234479258823056119,0.238983662360293253,0.60505925756213319],"hpluv":[250.085698604565607,151.915814945370954,55.9858924676882],"hsluv":[250.085698604565607,69.0160689386852653,55.9858924676882]},"#5588dd":{"lch":[56.8399439373084761,80.4799585659197589,253.656315856923044],"luv":[56.8399439373084761,-22.6469326722406379,-77.2278458285038596],"rgb":[0.333333333333333315,0.533333333333333326,0.866666666666666696],"xyz":[0.255997584373689691,0.247590992580546787,0.718389105462139188],"hpluv":[253.656315856923044,179.669115472769334,56.8399439373084761],"hsluv":[253.656315856923044,71.4978966707909791,56.8399439373084761]},"#5588ee":{"lch":[57.7622712344346212,93.8110643698785083,256.11666422549024],"luv":[57.7622712344346212,-22.5095618551803298,-91.0704969970917517],"rgb":[0.333333333333333315,0.533333333333333326,0.933333333333333348],"xyz":[0.2798097646398644,0.257115864687016804,0.843799921530662411],"hpluv":[256.11666422549024,206.086302990026525,57.7622712344346212],"hsluv":[256.11666422549024,85.5354286092897098,57.7622712344346212]},"#5588ff":{"lch":[58.7500561820581169,106.871298098059711,257.890974112124525],"luv":[58.7500561820581169,-22.4186692043534066,-104.493433421771144],"rgb":[0.333333333333333315,0.533333333333333326,1],"xyz":[0.305980813049695821,0.267584284050949528,0.981634109822444256],"hpluv":[257.890974112124525,230.829932612430156,58.7500561820581169],"hsluv":[257.890974112124525,99.9999999999988489,58.7500561820581169]},"#559900":{"lch":[56.7948235068901113,75.0667586450735769,116.650835958582277],"luv":[56.7948235068901113,-33.6713638042581849,67.0914116190665766],"rgb":[0.333333333333333315,0.6,0],"xyz":[0.151369625100333277,0.247131169595152217,0.0397251577236065259],"hpluv":[116.650835958582277,167.717444253109818,56.7948235068901113],"hsluv":[116.650835958582277,100.000000000002373,56.7948235068901113]},"#559911":{"lch":[56.8345345919718,73.5501475520203343,117.179331557793219],"luv":[56.8345345919718,-33.596019870913949,65.4288289193465431],"rgb":[0.333333333333333315,0.6,0.0666666666666666657],"xyz":[0.152381290599970409,0.24753583579500707,0.0450532626883621556],"hpluv":[117.179331557793219,164.214146288467191,56.8345345919718],"hsluv":[117.179331557793219,97.3073310640873501,56.8345345919718]},"#559922":{"lch":[56.9080340332033785,70.7973668034807559,118.203267177206257],"luv":[56.9080340332033785,-33.458907670269852,62.3920559351826256],"rgb":[0.333333333333333315,0.6,0.133333333333333331],"xyz":[0.154256648738447411,0.248285979050397898,0.0549301488843413552],"hpluv":[118.203267177206257,157.863907732936383,56.9080340332033785],"hsluv":[118.203267177206257,92.3971004449738444,56.9080340332033785]},"#559933":{"lch":[57.0287279601738675,66.4302504595433163,120.024921583566851],"luv":[57.0287279601738675,-33.2401456716524066,57.5158316626386181],"rgb":[0.333333333333333315,0.6,0.2],"xyz":[0.157344399470905172,0.249521079343381,0.0711923027419525],"hpluv":[120.024921583566851,147.812625691912672,57.0287279601738675],"hsluv":[120.024921583566851,84.5348632876942645,57.0287279601738675]},"#559944":{"lch":[57.2022813646338335,60.4886548808755862,122.993651447985457],"luv":[57.2022813646338335,-32.9388613723515604,50.7337045837447178],"rgb":[0.333333333333333315,0.6,0.266666666666666663],"xyz":[0.161802394715124032,0.251304277441068591,0.0946710776948391369],"hpluv":[122.993651447985457,134.183743453609452,57.2022813646338335],"hsluv":[122.993651447985457,73.6468983233054075,57.2022813646338335]},"#559955":{"lch":[57.4331244004656583,53.227141365646645,127.715012949239252],"luv":[57.4331244004656583,-32.5608701853658573,42.1060365117673499],"rgb":[0.333333333333333315,0.6,0.333333333333333315],"xyz":[0.167764808754486017,0.253689243056813396,0.126073124968813038],"hpluv":[127.715012949239252,117.600732304920115,57.4331244004656583],"hsluv":[127.715012949239252,59.8797334066369444,57.4331244004656583]},"#559966":{"lch":[57.7247064038159152,45.1954856350919556,135.286653522876605],"luv":[57.7247064038159152,-32.1175213159608433,31.7977475037242847],"rgb":[0.333333333333333315,0.6,0.4],"xyz":[0.175349804527994202,0.256723241366216715,0.166020769375957],"hpluv":[135.286653522876605,99.3510934192793371,57.7247064038159152],"hsluv":[135.286653522876605,61.4133131906424055,57.7247064038159152]},"#559977":{"lch":[58.0796295741768631,37.4448814339638858,147.624029462041108],"luv":[58.0796295741768631,-31.624170974627738,20.0507096076703846],"rgb":[0.333333333333333315,0.6,0.466666666666666674],"xyz":[0.184663817548196107,0.260448846574297566,0.215074571282354909],"hpluv":[147.624029462041108,81.8102930750829671,58.0796295741768631],"hsluv":[147.624029462041108,63.1432913181764448,58.0796295741768631]},"#559988":{"lch":[58.4997327930321092,31.9103493306277741,167.047427400638497],"luv":[58.4997327930321092,-31.0984204046450543,7.15252701768072],"rgb":[0.333333333333333315,0.6,0.533333333333333326],"xyz":[0.195804234650139963,0.264905013415075108,0.273747434685927105],"hpluv":[167.047427400638497,69.2176742514874093,58.4997327930321092],"hsluv":[167.047427400638497,65.0191416919107752,58.4997327930321092]},"#559999":{"lch":[58.9861545428406373,31.2617491707160085,192.177050630060933],"luv":[58.9861545428406373,-30.5583742056962677,-6.59414339527129822],"rgb":[0.333333333333333315,0.6,0.6],"xyz":[0.208861198759212663,0.270127799058704321,0.342514112327045],"hpluv":[192.177050630060933,67.2515837667627494,58.9861545428406373],"hsluv":[192.177050630060933,66.9883413382070216,58.9861545428406373]},"#5599aa":{"lch":[59.5393884281606915,36.5784761777074152,214.841775998693208],"luv":[59.5393884281606915,-30.0211576326403424,-20.8977274812183715],"rgb":[0.333333333333333315,0.6,0.66666666666666663],"xyz":[0.223918891724465219,0.276150876244805388,0.421817961944043585],"hpluv":[214.841775998693208,77.957978019602777,59.5393884281606915],"hsluv":[214.841775998693208,69.0007957908225,59.5393884281606915]},"#5599bb":{"lch":[60.1593377819191488,46.1560476826162613,230.269588518041076],"luv":[60.1593377819191488,-29.5018430010724479,-35.4967885479802],"rgb":[0.333333333333333315,0.6,0.733333333333333282],"xyz":[0.241056483831801838,0.283005913087740146,0.512075947042685331],"hpluv":[230.269588518041076,97.3564866347465312,60.1593377819191488],"hsluv":[230.269588518041076,71.0120526680823758,60.1593377819191488]},"#5599cc":{"lch":[60.8453721774886276,57.9560381686168284,239.960256152221575],"luv":[60.8453721774886276,-29.0128279276179057,-50.1712883614184761],"rgb":[0.333333333333333315,0.6,0.8],"xyz":[0.260348859275523592,0.290722863265228948,0.613682457712955487],"hpluv":[239.960256152221575,120.867757439807349,60.8453721774886276],"hsluv":[239.960256152221575,72.9851794318318667,60.8453721774886276]},"#5599dd":{"lch":[61.596386585270082,70.7674616346471623,246.194917025964173],"luv":[61.596386585270082,-28.563620381934669,-64.7468394355121],"rgb":[0.333333333333333315,0.6,0.866666666666666696],"xyz":[0.281867184826157136,0.29933019348548251,0.727012305612961485],"hpluv":[246.194917025964173,145.7866339341696,61.596386585270082],"hsluv":[246.194917025964173,74.8914393241793164,61.596386585270082]},"#5599ee":{"lch":[62.4108626997728209,83.9573424358243,250.401946751580681],"luv":[62.4108626997728209,-28.1609349474859023,-79.0935970339554757],"rgb":[0.333333333333333315,0.6,0.933333333333333348],"xyz":[0.305679365092331845,0.308855065591952527,0.852423121681484708],"hpluv":[250.401946751580681,170.701691169737018,62.4108626997728209],"hsluv":[250.401946751580681,83.3865807682554845,62.4108626997728209]},"#5599ff":{"lch":[63.2869312953637,97.1853240423286309,253.372761171991215],"luv":[63.2869312953637,-27.8089904224615658,-93.1216798650875859],"rgb":[0.333333333333333315,0.6,1],"xyz":[0.331850413502163266,0.319323484955885251,0.990257309973266553],"hpluv":[253.372761171991215,194.861470594675211,63.2869312953637],"hsluv":[253.372761171991215,99.9999999999986215,63.2869312953637]},"#440000":{"lch":[10.7708306123528814,36.2226426723970221,12.1770506300617765],"luv":[10.7708306123528814,35.407649887332731,7.64056094984030221],"rgb":[0.266666666666666663,0,0],"xyz":[0.0238384275584062923,0.0122916892098035059,0.00111742629180027137],"hpluv":[12.1770506300617765,426.746789183125145,10.7708306123528814],"hsluv":[12.1770506300617765,100.000000000002203,10.7708306123528814]},"#440011":{"lch":[11.0614468716721248,32.5827232355020158,4.73042674181564848],"luv":[11.0614468716721248,32.4717377839629151,2.68702414036008763],"rgb":[0.266666666666666663,0,0.0666666666666666657],"xyz":[0.024850093058043414,0.0126963554096583605,0.00644553125655590239],"hpluv":[4.73042674181564848,373.778888471265759,11.0614468716721248],"hsluv":[4.73042674181564848,99.999999999996831,11.0614468716721248]},"#440022":{"lch":[11.5842423793746683,28.6540476811609395,350.304317532446703],"luv":[11.5842423793746683,28.2447579299318896,-4.82577434136679706],"rgb":[0.266666666666666663,0,0.133333333333333331],"xyz":[0.0267254511965204326,0.0134464986650491784,0.0163224174525351],"hpluv":[350.304317532446703,313.875682434467763,11.5842423793746683],"hsluv":[350.304317532446703,99.9999999999974847,11.5842423793746683]},"#440033":{"lch":[12.4041921203750505,27.3919603751935874,328.642516788172941],"luv":[12.4041921203750505,23.3910134404871357,-14.2541216293086901],"rgb":[0.266666666666666663,0,0.2],"xyz":[0.0298132019289781731,0.0146815989580322912,0.0325845713101462417],"hpluv":[328.642516788172941,280.216663156604227,12.4041921203750505],"hsluv":[328.642516788172941,99.9999999999981668,12.4041921203750505]},"#440044":{"lch":[13.5105146335658439,30.7747615701782742,307.715012949243601],"luv":[13.5105146335658439,18.8259784531467211,-24.3447835271332202],"rgb":[0.266666666666666663,0,0.266666666666666663],"xyz":[0.0342711971731970502,0.0164647970557198695,0.0560633462630328802],"hpluv":[307.715012949243601,289.042783730483222,13.5105146335658439],"hsluv":[307.715012949243601,99.9999999999987779,13.5105146335658439]},"#440055":{"lch":[14.871657786523194,37.5926423334987589,293.358518425732086],"luv":[14.871657786523194,14.9048564440935021,-34.5116214049025416],"rgb":[0.266666666666666663,0,0.333333333333333315],"xyz":[0.0402336112125590423,0.0188497626714647,0.0874653935370067886],"hpluv":[293.358518425732086,320.761913781574776,14.871657786523194],"hsluv":[293.358518425732086,99.999999999999261,14.871657786523194]},"#440066":{"lch":[16.4463097679727497,46.0898544445027,284.618444278650202],"luv":[16.4463097679727497,11.6321972733021664,-44.597832562922008],"rgb":[0.266666666666666663,0,0.4],"xyz":[0.0478186069860672205,0.0218837609808680139,0.127413037944150764],"hpluv":[284.618444278650202,355.611827609674208,16.4463097679727497],"hsluv":[284.618444278650202,99.9999999999996447,16.4463097679727497]},"#440077":{"lch":[18.1919811936642475,55.3198462112611651,279.251207899416613],"luv":[18.1919811936642475,8.8934050845755,-54.6002997321373],"rgb":[0.266666666666666663,0,0.466666666666666674],"xyz":[0.0571326200062691331,0.0256093661889488303,0.176466839850548673],"hpluv":[279.251207899416613,385.869357778503058,18.1919811936642475],"hsluv":[279.251207899416613,100.000000000000028,18.1919811936642475]},"#440088":{"lch":[20.0701231572475791,64.8751824688912,275.807883046004235],"luv":[20.0701231572475791,6.56492582220058196,-64.5421648949036353],"rgb":[0.266666666666666663,0,0.533333333333333326],"xyz":[0.0682730371082129611,0.0300655330297264212,0.235139703254120841],"hpluv":[275.807883046004235,410.173767132845569,20.0701231572475791],"hsluv":[275.807883046004235,100.000000000000284,20.0701231572475791]},"#440099":{"lch":[22.0482755473713041,74.5764302852581267,273.495279820248],"luv":[22.0482755473713041,4.54664979059262,-74.4377050275844283],"rgb":[0.266666666666666663,0,0.6],"xyz":[0.0813300012172856746,0.0352883186733555787,0.303906380895238748],"hpluv":[273.495279820248,429.20649964036636,22.0482755473713041],"hsluv":[273.495279820248,100.000000000000384,22.0482755473713041]},"#4400aa":{"lch":[24.1003299188330615,84.3353594354864811,271.878389761009714],"luv":[24.1003299188330615,2.7643624238057809,-84.290041828810061],"rgb":[0.266666666666666663,0,0.66666666666666663],"xyz":[0.0963876941825382166,0.0413113958594566871,0.383210230512237349],"hpluv":[271.878389761009714,444.044033459252,24.1003299188330615],"hsluv":[271.878389761009714,100.000000000000398,24.1003299188330615]},"#4400bb":{"lch":[26.2058661049044161,94.1030045511215434,270.708980538846049],"luv":[26.2058661049044161,1.16440507249082947,-94.0958002589677704],"rgb":[0.266666666666666663,0,0.733333333333333282],"xyz":[0.113525286289874863,0.0481664327023914457,0.473468215610879095],"hpluv":[270.708980538846049,455.663559843794246,26.2058661049044161],"hsluv":[270.708980538846049,100.000000000000597,26.2058661049044161]},"#4400cc":{"lch":[28.3491756730399374,103.84959146554381,269.838851579513857],"luv":[28.3491756730399374,-0.292083914573144032,-103.849180711969012],"rgb":[0.266666666666666663,0,0.8],"xyz":[0.132817661733596604,0.0558833828798802473,0.575074726281149196],"hpluv":[269.838851579513857,464.840204698682,28.3491756730399374],"hsluv":[269.838851579513857,100.00000000000054,28.3491756730399374]},"#4400dd":{"lch":[30.5182871942398464,113.556060117994207,269.175711116484081],"luv":[30.5182871942398464,-1.63362415099869285,-113.544308803456943],"rgb":[0.266666666666666663,0,0.866666666666666696],"xyz":[0.154335987284230147,0.0644907131001337813,0.688404574181155193],"hpluv":[269.175711116484081,472.160320460814546,30.5182871942398464],"hsluv":[269.175711116484081,100.000000000000583,30.5182871942398464]},"#4400ee":{"lch":[32.7041215904695406,123.209994802530275,268.6598990566049],"luv":[32.7041215904695406,-2.88151723804096926,-123.176295112519156],"rgb":[0.266666666666666663,0,0.933333333333333348],"xyz":[0.178148167550404884,0.0740155852066038122,0.813815390249678416],"hpluv":[268.6598990566049,478.060407115886846,32.7041215904695406],"hsluv":[268.6598990566049,100.000000000000682,32.7041215904695406]},"#4400ff":{"lch":[34.8998090420324161,132.803387625161918,268.251574356178935],"luv":[34.8998090420324161,-4.05197057625710322,-132.741558297197031],"rgb":[0.266666666666666663,0,1],"xyz":[0.204319215960236278,0.0844840045705365084,0.951649578541460262],"hpluv":[268.251574356178935,482.864668803745815,34.8998090420324161],"hsluv":[268.251574356178935,100.000000000000824,34.8998090420324161]},"#441100":{"lch":[13.412021407860891,32.8203905090178907,19.8063713084711637],"luv":[13.412021407860891,30.878837797926078,11.1209446277644677],"rgb":[0.266666666666666663,0.0666666666666666657,0],"xyz":[0.025842827819334703,0.0163004897316603795,0.00178555971210972225],"hpluv":[19.8063713084711637,310.519467471828818,13.412021407860891],"hsluv":[19.8063713084711637,100.00000000000226,13.412021407860891]},"#441111":{"lch":[13.6534230745514442,29.3615880370140658,12.1770506300618155],"luv":[13.6534230745514442,28.7009658227648572,6.19333616848069],"rgb":[0.266666666666666663,0.0666666666666666657,0.0666666666666666657],"xyz":[0.0268544933189718248,0.0167051559315152323,0.00711366467686535414],"hpluv":[12.1770506300618155,272.883526996448495,13.6534230745514442],"hsluv":[12.1770506300618155,63.9450685777404857,13.6534230745514442]},"#441122":{"lch":[14.0908014406849,25.4444274015795777,356.558123350094036],"luv":[14.0908014406849,25.3985311285907684,-1.52758053936917793],"rgb":[0.266666666666666663,0.0666666666666666657,0.133333333333333331],"xyz":[0.0287298514574488434,0.0174552991869060536,0.0169905508728445502],"hpluv":[356.558123350094036,229.137575437366081,14.0908014406849],"hsluv":[356.558123350094036,68.4589860949294,14.0908014406849]},"#441133":{"lch":[14.7844111345271223,24.27011571268606,331.648240125609],"luv":[14.7844111345271223,21.358884082162259,-11.5254755854986932],"rgb":[0.266666666666666663,0.0666666666666666657,0.2],"xyz":[0.0318176021899065839,0.0186903994798891665,0.0332527047304557],"hpluv":[331.648240125609,208.308572243058649,14.7844111345271223],"hsluv":[331.648240125609,73.8494669394836762,14.7844111345271223]},"#441144":{"lch":[15.733846020816415,28.3218749128348932,307.715012949243942],"luv":[15.733846020816415,17.3254634530922189,-22.4043949865608347],"rgb":[0.266666666666666663,0.0666666666666666657,0.266666666666666663],"xyz":[0.0362755974341254644,0.0204735975775767395,0.0567314796833423354],"hpluv":[307.715012949243942,228.415952286272613,15.733846020816415],"hsluv":[307.715012949243942,79.0249627886423127,15.733846020816415]},"#441155":{"lch":[16.9210970319156715,36.0495621705848492,292.339268883647492],"luv":[16.9210970319156715,13.7020846665308547,-33.3440220801582683],"rgb":[0.266666666666666663,0.0666666666666666657,0.333333333333333315],"xyz":[0.0422380114734874565,0.0228585631933215724,0.0881335269573162439],"hpluv":[292.339268883647492,270.340308544513618,16.9210970319156715],"hsluv":[292.339268883647492,83.4150097743113292,16.9210970319156715]},"#441166":{"lch":[18.3175541838796221,45.305096001334384,283.521508601515677],"luv":[18.3175541838796221,10.592801308498224,-44.0493392019540195],"rgb":[0.266666666666666663,0.0666666666666666657,0.4],"xyz":[0.0498230072469956348,0.025892561502724884,0.128081171364460206],"hpluv":[283.521508601515677,313.84766122316239,18.3175541838796221],"hsluv":[283.521508601515677,86.9023417707839485,18.3175541838796221]},"#441177":{"lch":[19.8903241139664431,55.0653797371295326,278.304914930180701],"luv":[19.8903241139664431,7.95370312292975612,-54.4879312529533735],"rgb":[0.266666666666666663,0.0666666666666666657,0.466666666666666674],"xyz":[0.0591370202671975473,0.0296181667108057,0.177134973270858115],"hpluv":[278.304914930180701,351.298345972174616,19.8903241139664431],"hsluv":[278.304914930180701,89.590178354910762,19.8903241139664431]},"#441188":{"lch":[21.6068634066631873,64.9598488176177824,275.03199667533886],"luv":[21.6068634066631873,5.69776159856002,-64.7094851716016422],"rgb":[0.266666666666666663,0.0666666666666666657,0.533333333333333326],"xyz":[0.0702774373691413823,0.0340743335515832912,0.235807836674430282],"hpluv":[275.03199667533886,381.498298720028686,21.6068634066631873],"hsluv":[275.03199667533886,91.6417594317348545,21.6068634066631873]},"#441199":{"lch":[23.437698327746169,74.8628785955689153,272.864058339832695],"luv":[23.437698327746169,3.74063102269824954,-74.769367197849931],"rgb":[0.266666666666666663,0.0666666666666666657,0.6],"xyz":[0.0833344014782140818,0.0392971191952124557,0.304574514315548162],"hpluv":[272.864058339832695,405.313331644098525,23.437698327746169],"hsluv":[272.864058339832695,93.2101268622270283,23.437698327746169]},"#4411aa":{"lch":[25.3575925472355337,84.7316846097945273,271.361966301038933],"luv":[25.3575925472355337,2.01394993465393446,-84.7077468858332878],"rgb":[0.266666666666666663,0.0666666666666666657,0.66666666666666663],"xyz":[0.0983920944434666378,0.0453201963813135572,0.383878363932546762],"hpluv":[271.361966301038933,424.011024215555381,25.3575925472355337],"hsluv":[271.361966301038933,94.4180404350203872,25.3575925472355337]},"#4411bb":{"lch":[27.345710117802,94.5503656807627,270.282295464151048],"luv":[27.345710117802,0.465846378280231621,-94.5492180693092337],"rgb":[0.266666666666666663,0.0666666666666666657,0.733333333333333282],"xyz":[0.115529686550803284,0.0521752332242483158,0.474136349031188509],"hpluv":[270.282295464151048,438.746165283595928,27.345710117802],"hsluv":[270.282295464151048,95.3579307613671,27.345710117802]},"#4411cc":{"lch":[29.3852471201757481,104.311620276565549,269.482476007084244],"luv":[29.3852471201757481,-0.942181651797373232,-104.307365120864873],"rgb":[0.266666666666666663,0.0666666666666666657,0.8],"xyz":[0.134822061994525,0.0598921834017371174,0.575742859701458665],"hpluv":[269.482476007084244,450.445933463405538,29.3852471201757481],"hsluv":[269.482476007084244,96.097629526357963,29.3852471201757481]},"#4411dd":{"lch":[31.4628506304707116,114.011096091836691,268.874895171215144],"luv":[31.4628506304707116,-2.23866735310417164,-113.989115272223103],"rgb":[0.266666666666666663,0.0666666666666666657,0.866666666666666696],"xyz":[0.156340387545158555,0.0684995136219906514,0.689072707601464662],"hpluv":[268.874895171215144,459.820552568088715,31.4628506304707116],"hsluv":[268.874895171215144,96.6865382756064378,31.4628506304707116]},"#4411ee":{"lch":[33.5680052377948073,123.64577428881995,268.40345713539682],"luv":[33.5680052377948073,-3.44493495426529961,-123.597774747940718],"rgb":[0.266666666666666663,0.0666666666666666657,0.933333333333333348],"xyz":[0.180152567811333292,0.0780243857284606823,0.814483523669987886],"hpluv":[268.40345713539682,467.404695294247745,33.5680052377948073],"hsluv":[268.40345713539682,97.1606953094382817,33.5680052377948073]},"#4411ff":{"lch":[35.6924730299026081,133.21354134861582,268.030966648817412],"luv":[35.6924730299026081,-4.57713081064657,-133.134884505082312],"rgb":[0.266666666666666663,0.0666666666666666657,1],"xyz":[0.206323616221164685,0.0884928050923933784,0.952317711961769731],"hpluv":[268.030966648817412,473.599309181226886,35.6924730299026081],"hsluv":[268.030966648817412,99.999999999999531,35.6924730299026081]},"#99aa00":{"lch":[66.1528677227115907,74.3468963767982842,94.6234982733471384],"luv":[66.1528677227115907,-5.99293371363564553,74.1049643840839565],"rgb":[0.6,0.66666666666666663,0],"xyz":[0.275106719282890377,0.355217387920677,0.0540714229698005533],"hpluv":[94.6234982733471384,142.611154102436132,66.1528677227115907],"hsluv":[94.6234982733471384,100.000000000002217,66.1528677227115907]},"#99aa11":{"lch":[66.184052262829,73.0311244080130706,94.7508326892346275],"luv":[66.184052262829,-6.04863423256243316,72.7802112955118901],"rgb":[0.6,0.66666666666666663,0.0666666666666666657],"xyz":[0.276118384782527482,0.355622054120531828,0.059399527934556183],"hpluv":[94.7508326892346275,140.021252931940353,66.184052262829],"hsluv":[94.7508326892346275,98.1390759685954,66.184052262829]},"#99aa22":{"lch":[66.2417975711995695,70.6178785015108872,94.9968669170454376],"luv":[66.2417975711995695,-6.15090676716144458,70.3494926065273],"rgb":[0.6,0.66666666666666663,0.133333333333333331],"xyz":[0.277993742921004539,0.356372197375922628,0.0692764141305353826],"hpluv":[94.9968669170454376,135.276352185575888,66.2417975711995695],"hsluv":[94.9968669170454376,94.7283581868373403,66.2417975711995695]},"#99aa33":{"lch":[66.3366981156763273,66.7162457715457,95.432805623918],"luv":[66.3366981156763273,-6.31658226271684953,66.416550937003791],"rgb":[0.6,0.66666666666666663,0.2],"xyz":[0.281081493653462244,0.357607297668905755,0.0855385679881465189],"hpluv":[95.432805623918,127.619510800204154,66.3366981156763273],"hsluv":[95.432805623918,89.220332613511431,66.3366981156763273]},"#99aa44":{"lch":[66.4733277612737652,61.2361369282317085,96.1403021162386],"luv":[66.4733277612737652,-6.55002950525979344,60.8848222414533211],"rgb":[0.6,0.66666666666666663,0.266666666666666663],"xyz":[0.28553948889768116,0.359390495766593321,0.109017342941033157],"hpluv":[96.1403021162386,116.896010950353556,66.4733277612737652],"hsluv":[96.1403021162386,81.495914591183535,66.4733277612737652]},"#99aa55":{"lch":[66.6553605356915853,54.1785870660784568,97.2658616968833769],"luv":[66.6553605356915853,-6.85216039608048888,53.7435316515674231],"rgb":[0.6,0.66666666666666663,0.333333333333333315],"xyz":[0.291501902937043145,0.361775461382338182,0.140419390215007073],"hpluv":[97.2658616968833769,103.141138146130345,66.6553605356915853],"hsluv":[97.2658616968833769,71.5645731506566563,66.6553605356915853]},"#99aa66":{"lch":[66.8857782590742573,45.6318272725976186,99.1048787772859328],"luv":[66.8857782590742573,-7.22087825912546055,45.0568815765480224],"rgb":[0.6,0.66666666666666663,0.4],"xyz":[0.29908689871055133,0.3648094596917415,0.180367034622151035],"hpluv":[99.1048787772859328,86.5711928674077882,66.8857782590742573],"hsluv":[99.1048787772859328,59.5487850828384495,66.8857782590742573]},"#99aa77":{"lch":[67.16697930835997,35.7793898766585272,102.348317274789],"luv":[67.16697930835997,-7.65157453727816339,34.9516544250255947],"rgb":[0.6,0.66666666666666663,0.466666666666666674],"xyz":[0.308400911730753235,0.368535064899822296,0.229420836528548944],"hpluv":[102.348317274789,67.5952906506277742,67.16697930835997],"hsluv":[102.348317274789,45.6652750399669927,67.16697930835997]},"#99aa88":{"lch":[67.5008436530857523,24.9656779050761699,109.02352802026725],"luv":[67.5008436530857523,-8.13772239581267165,23.6021725158659379],"rgb":[0.6,0.66666666666666663,0.533333333333333326],"xyz":[0.319541328832697036,0.372991231740599893,0.288093699932121083],"hpluv":[109.02352802026725,46.9324783865521482,67.5008436530857523],"hsluv":[109.02352802026725,30.201776912068496,67.5008436530857523]},"#99aa99":{"lch":[67.8887769686822509,14.1753245834603039,127.715012949228395],"luv":[67.8887769686822509,-8.67153282620695443,11.213578621049983],"rgb":[0.6,0.66666666666666663,0.6],"xyz":[0.332598292941769791,0.378214017384229051,0.356860377573239],"hpluv":[127.715012949228395,26.4956363039349618,67.8887769686822509],"hsluv":[127.715012949228395,13.4910013502760879,67.8887769686822509]},"#99aaaa":{"lch":[68.3317447891119798,9.45739632834534838,192.177050630059227],"luv":[68.3317447891119798,-9.24460926466251642,-1.99487965930680966],"rgb":[0.6,0.66666666666666663,0.66666666666666663],"xyz":[0.347655985907022291,0.384237094570330173,0.436164227190237619],"hpluv":[192.177050630059227,17.5625836428344968,68.3317447891119798],"hsluv":[192.177050630059227,17.4938385380963979,68.3317447891119798]},"#99aabb":{"lch":[68.8303024285350205,18.6222464744475609,238.07162859052869],"luv":[68.8303024285350205,-9.84853629911531137,-15.8048852105949411],"rgb":[0.6,0.66666666666666663,0.733333333333333282],"xyz":[0.364793578014358966,0.391092131413264932,0.52642221228887931],"hpluv":[238.07162859052869,34.3314162301526622,68.8303024285350205],"hsluv":[238.07162859052869,21.6214176811966929,68.8303024285350205]},"#99aacc":{"lch":[69.3846237501618646,31.7868422871013969,250.758533684062627],"luv":[69.3846237501618646,-10.475354770609286,-30.0111693376804425],"rgb":[0.6,0.66666666666666663,0.8],"xyz":[0.38408595345808072,0.398809081590753733,0.628028722959149466],"hpluv":[250.758533684062627,58.1330991079694357,69.3846237501618646],"hsluv":[250.758533684062627,38.7837447081888556,69.3846237501618646]},"#99aadd":{"lch":[69.9945303682966,45.800012761152324,255.951164454091042],"luv":[69.9945303682966,-11.1178995355210173,-44.4300965432191859],"rgb":[0.6,0.66666666666666663,0.866666666666666696],"xyz":[0.405604279008714208,0.40741641181100724,0.741358570859155463],"hpluv":[255.951164454091042,83.0311057452140346,69.9945303682966],"hsluv":[255.951164454091042,58.1375555879370935,69.9945303682966]},"#99aaee":{"lch":[70.6595219654936,60.0690973767372896,258.700300270425373],"luv":[70.6595219654936,-11.7699993169592201,-58.9046990972259],"rgb":[0.6,0.66666666666666663,0.933333333333333348],"xyz":[0.429416459274889,0.416941283917477257,0.866769386927678687],"hpluv":[258.700300270425373,107.874733956899746,70.6595219654936],"hsluv":[258.700300270425373,78.5353046306170199,70.6595219654936]},"#99aaff":{"lch":[71.378807837336737,74.3523754541628676,260.378973553217],"luv":[71.378807837336737,-12.4265554124673407,-73.3065921746310636],"rgb":[0.6,0.66666666666666663,1],"xyz":[0.455587507684720339,0.42740970328141,1.00460357521946064],"hpluv":[260.378973553217,132.179737350703419,71.378807837336737],"hsluv":[260.378973553217,99.99999999999784,71.378807837336737]},"#442200":{"lch":[17.3350542344952459,28.221345162136295,35.6239292836567927],"luv":[17.3350542344952459,22.9399340369809366,16.4378754448194186],"rgb":[0.266666666666666663,0.133333333333333331,0],"xyz":[0.0295584515541026382,0.023731737201196354,0.00302410095703233277],"hpluv":[35.6239292836567927,206.581692971425213,17.3350542344952459],"hsluv":[35.6239292836567927,100.000000000002331,17.3350542344952459]},"#442211":{"lch":[17.5234603686317101,24.6335663377647,28.604455948929278],"luv":[17.5234603686317101,21.6269347365689519,11.7935696215031331],"rgb":[0.266666666666666663,0.133333333333333331,0.0666666666666666657],"xyz":[0.03057011705373976,0.0241364034010512069,0.00835220592178796337],"hpluv":[28.604455948929278,178.380241443971528,17.5234603686317101],"hsluv":[28.604455948929278,74.2089163354216765,17.5234603686317101]},"#442222":{"lch":[17.8672188947691239,19.9697171584766728,12.1770506300619807],"luv":[17.8672188947691239,19.520407715454283,4.21227800744330061],"rgb":[0.266666666666666663,0.133333333333333331,0.133333333333333331],"xyz":[0.0324454751922167786,0.0248865466564420282,0.0182290921177671594],"hpluv":[12.1770506300619807,141.825486578211439,17.8672188947691239],"hsluv":[12.1770506300619807,33.2341074785113406,17.8672188947691239]},"#442233":{"lch":[18.4184657925371695,17.8165085202964129,340.00784749027008],"luv":[18.4184657925371695,16.7428760354525643,-6.09131167444770583],"rgb":[0.266666666666666663,0.133333333333333331,0.2],"xyz":[0.0355332259246745191,0.026121646949425141,0.0344912459753783],"hpluv":[340.00784749027008,122.746318288975218,18.4184657925371695],"hsluv":[340.00784749027008,42.0888291674463915,18.4184657925371695]},"#442244":{"lch":[19.1844846541763658,22.4593922221866436,307.715012949244738],"luv":[19.1844846541763658,13.7391814744519145,-17.7668002578431441],"rgb":[0.266666666666666663,0.133333333333333331,0.266666666666666663],"xyz":[0.0399912211688934,0.0279048450471127141,0.0579700209282649412],"hpluv":[307.715012949244738,148.554970924606664,19.1844846541763658],"hsluv":[307.715012949244738,51.3954955066877517,19.1844846541763658]},"#442255":{"lch":[20.1595909359386596,31.6741463862469885,290.023039430837684],"luv":[20.1595909359386596,10.8451637140407797,-29.7596030436068872],"rgb":[0.266666666666666663,0.133333333333333331,0.333333333333333315],"xyz":[0.0459536352082553917,0.030289810662857547,0.0893720682022388496],"hpluv":[290.023039430837684,199.371249454156271,20.1595909359386596],"hsluv":[290.023039430837684,59.9942694866150177,20.1595909359386596]},"#442266":{"lch":[21.3287002071660226,42.3208084503031685,281.207510247893651],"luv":[21.3287002071660226,8.22559640374024781,-41.5137373852322256],"rgb":[0.266666666666666663,0.133333333333333331,0.4],"xyz":[0.0535386309817635631,0.0333238089722608585,0.129319712609382825],"hpluv":[281.207510247893651,251.784442505332123,21.3287002071660226],"hsluv":[281.207510247893651,67.3437899952651406,21.3287002071660226]},"#442277":{"lch":[22.6709734328231463,53.1747129073287113,276.391210783405313],"luv":[22.6709734328231463,5.91922219198187882,-52.8442324328661215],"rgb":[0.266666666666666663,0.133333333333333331,0.466666666666666674],"xyz":[0.0628526440019654825,0.0370494141803416749,0.178373514515780734],"hpluv":[276.391210783405313,297.628360698128461,22.6709734328231463],"hsluv":[276.391210783405313,73.3546851738733,22.6709734328231463]},"#442288":{"lch":[24.1630625686767715,63.8732961962266543,273.501787345358252],"luv":[24.1630625686767715,3.90136026108148481,-63.7540379512086801],"rgb":[0.266666666666666663,0.133333333333333331,0.533333333333333326],"xyz":[0.0739930611039093106,0.0415055810211192727,0.237046377919352902],"hpluv":[273.501787345358252,335.433687598002,24.1630625686767715],"hsluv":[273.501787345358252,78.1624380374364875,24.1630625686767715]},"#442299":{"lch":[25.7815797239733442,74.3421908873045112,271.638748742297366],"luv":[25.7815797239733442,2.1260128283266071,-74.3117851715204836],"rgb":[0.266666666666666663,0.133333333333333331,0.6],"xyz":[0.087050025212982024,0.0467283666647484303,0.305813055560470781],"hpluv":[271.638748742297366,365.902315457699217,25.7815797239733442],"hsluv":[271.638748742297366,81.974423252689391,25.7815797239733442]},"#4422aa":{"lch":[27.5046927955253,84.5952413694672885,270.370058715866037],"luv":[27.5046927955253,0.546375125789773097,-84.5934769150692176],"rgb":[0.266666666666666663,0.133333333333333331,0.66666666666666663],"xyz":[0.102107718178234566,0.0527514438508495317,0.385116905177469382],"hpluv":[270.370058715866037,390.281946032504152,27.5046927955253],"hsluv":[270.370058715866037,84.9950544768410765,27.5046927955253]},"#4422bb":{"lch":[29.3129652277151251,94.666070770970677,269.4687873747244],"luv":[29.3129652277151251,-0.87767531850734,-94.6620020982533],"rgb":[0.266666666666666663,0.133333333333333331,0.733333333333333282],"xyz":[0.119245310285571213,0.0596064806937842903,0.475374890276111128],"hpluv":[269.4687873747244,409.801860030343846,29.3129652277151251],"hsluv":[269.4687873747244,87.3984435941311517,29.3129652277151251]},"#4422cc":{"lch":[31.1896477872922873,104.586362634530047,268.806646243455475],"luv":[31.1896477872922873,-2.17816227055809408,-104.563678484665701],"rgb":[0.266666666666666663,0.133333333333333331,0.8],"xyz":[0.138537685729292953,0.0673234308712731,0.576981400946381284],"hpluv":[268.806646243455475,425.504262664631483,31.1896477872922873],"hsluv":[268.806646243455475,89.3235413687926325,31.1896477872922873]},"#4422dd":{"lch":[33.1206275871571,114.38069493574325,268.306702684458742],"luv":[33.1206275871571,-3.37987077956927,-114.330747603157818],"rgb":[0.266666666666666663,0.133333333333333331,0.866666666666666696],"xyz":[0.160056011279926497,0.0759307610915266329,0.690311248846387282],"hpluv":[268.306702684458742,438.22131720165,33.1206275871571],"hsluv":[268.306702684458742,90.877884626449017,33.1206275871571]},"#4422ee":{"lch":[35.0941942457284952,124.066768949832422,267.920557621455941],"luv":[35.0941942457284952,-4.50178121539094178,-123.985068147498538],"rgb":[0.266666666666666663,0.133333333333333331,0.933333333333333348],"xyz":[0.183868191546101234,0.0854556331979966499,0.815722064914910505],"hpluv":[267.920557621455941,448.600262181889605,35.0941942457284952],"hsluv":[267.920557621455941,93.3452679661598523,35.0941942457284952]},"#4422ff":{"lch":[37.1007304630435,133.656986375695226,267.616535799179189],"luv":[37.1007304630435,-5.55843332369103926,-133.54135623850334],"rgb":[0.266666666666666663,0.133333333333333331,1],"xyz":[0.210039239955932627,0.0959240525619293599,0.95355625320669235],"hpluv":[267.616535799179189,457.139270395610822,37.1007304630435],"hsluv":[267.616535799179189,99.999999999999531,37.1007304630435]},"#bbaa00":{"lch":[68.9787767407419,76.4078567958722346,76.7962953219783344],"luv":[68.9787767407419,17.4526104568015299,74.3879490803561652],"rgb":[0.733333333333333282,0.66666666666666663,0],"xyz":[0.348671553863065253,0.393149255751080451,0.0575197745907461769],"hpluv":[76.7962953219783344,140.560034871296551,68.9787767407419],"hsluv":[76.7962953219783344,100.000000000002245,68.9787767407419]},"#bbaa11":{"lch":[69.0079227935645747,75.1793224892161902,76.6760735029220797],"luv":[69.0079227935645747,17.325534429098667,73.1556996185784811],"rgb":[0.733333333333333282,0.66666666666666663,0.0666666666666666657],"xyz":[0.349683219362702358,0.393553921950935304,0.0628478795555018],"hpluv":[76.6760735029220797,138.241608756115426,69.0079227935645747],"hsluv":[76.6760735029220797,98.327691673723,69.0079227935645747]},"#bbaa22":{"lch":[69.0618990033698168,72.923722885125926,76.4446579961253718],"luv":[69.0618990033698168,17.0921879270318975,70.8923583420220496],"rgb":[0.733333333333333282,0.66666666666666663,0.133333333333333331],"xyz":[0.351558577501179415,0.394304065206326104,0.072724765751481],"hpluv":[76.4446579961253718,133.98915323660276,69.0618990033698168],"hsluv":[76.4446579961253718,95.2591470849694701,69.0618990033698168]},"#bbaa33":{"lch":[69.1506211183474448,69.2704933393546298,76.037430434814425],"luv":[69.1506211183474448,16.7141363744442764,67.2237970716773248],"rgb":[0.733333333333333282,0.66666666666666663,0.2],"xyz":[0.35464632823363712,0.395539165499309231,0.0889869196090921494],"hpluv":[76.037430434814425,127.113454601419591,69.1506211183474448],"hsluv":[76.037430434814425,90.2940538071316752,69.1506211183474448]},"#bbaa44":{"lch":[69.2783900215706439,64.125663575375043,75.3840533289293688],"luv":[69.2783900215706439,16.1813855024742246,62.0504914743025964],"rgb":[0.733333333333333282,0.66666666666666663,0.266666666666666663],"xyz":[0.359104323477856036,0.397322363596996797,0.112465694561978788],"hpluv":[75.3840533289293688,117.455514697890109,69.2783900215706439],"hsluv":[75.3840533289293688,83.3108908827552455,69.2783900215706439]},"#bbaa55":{"lch":[69.4486803199850158,57.4759826537307603,74.3632861967268752],"luv":[69.4486803199850158,15.4919003466967737,55.3487994961044762],"rgb":[0.733333333333333282,0.66666666666666663,0.333333333333333315],"xyz":[0.365066737517218,0.399707329212741658,0.143867741835952689],"hpluv":[74.3632861967268752,105.017514149864908,69.4486803199850158],"hsluv":[74.3632861967268752,74.2978448337225501,69.4486803199850158]},"#bbaa66":{"lch":[69.6643364030220766,49.3851711615203186,72.7428070953876],"luv":[69.6643364030220766,14.6506772614363818,47.1619845472377079],"rgb":[0.733333333333333282,0.66666666666666663,0.4],"xyz":[0.372651733290726206,0.402741327522145,0.183815386243096651],"hpluv":[72.7428070953876,89.9550160304510342,69.6643364030220766],"hsluv":[72.7428070953876,63.3404983901227254,69.6643364030220766]},"#bbaa77":{"lch":[69.927675331165787,39.998456174204172,70.017617272721],"luv":[69.927675331165787,13.6687200676018641,37.5904587366697314],"rgb":[0.733333333333333282,0.66666666666666663,0.466666666666666674],"xyz":[0.381965746310928111,0.406466932730225772,0.23286918814949456],"hpluv":[70.017617272721,72.5827577171275635,69.927675331165787],"hsluv":[70.017617272721,50.6076787731359303,69.927675331165787]},"#bbaa88":{"lch":[70.2405480333122,29.5797452752191568,64.8698942165899837],"luv":[70.2405480333122,12.5617839686329518,26.7798975739685403],"rgb":[0.733333333333333282,0.66666666666666663,0.533333333333333326],"xyz":[0.393106163412871912,0.41092309957100337,0.291542051553066728],"hpluv":[64.8698942165899837,53.4374671266607422,70.2405480333122],"hsluv":[64.8698942165899837,36.3337734813298923,70.2405480333122]},"#bbaa99":{"lch":[70.6043801086793,18.7359983934483161,52.7186742094296079],"luv":[70.6043801086793,11.3489394865138475,14.907689570511744],"rgb":[0.733333333333333282,0.66666666666666663,0.6],"xyz":[0.406163127521944611,0.416145885214632527,0.360308729194184663],"hpluv":[52.7186742094296079,33.6732102985619051,70.6043801086793],"hsluv":[52.7186742094296079,20.7983697782308,70.6043801086793]},"#bbaaaa":{"lch":[71.0202025015365876,10.2824341490213804,12.177050630064155],"luv":[71.0202025015365876,10.0510841141786607,2.16890759569567715],"rgb":[0.733333333333333282,0.66666666666666663,0.66666666666666663],"xyz":[0.421220820487197167,0.422168962400733649,0.439612578811183263],"hpluv":[12.177050630064155,18.3718697222702261,71.0202025015365876],"hsluv":[12.177050630064155,12.5020210815887047,71.0202025015365876]},"#bbaabb":{"lch":[71.4886774714552615,14.2047670368859897,307.715012949256788],"luv":[71.4886774714552615,8.68954378602241562,-11.236869464535129],"rgb":[0.733333333333333282,0.66666666666666663,0.733333333333333282],"xyz":[0.438358412594533842,0.429023999243668408,0.529870563909825],"hpluv":[307.715012949256788,25.2136766683934965,71.4886774714552615],"hsluv":[307.715012949256788,14.1682246563909,71.4886774714552615]},"#bbaacc":{"lch":[72.010122844957138,26.1519063744379174,286.174295641089373],"luv":[72.010122844957138,7.28488198445553525,-25.1167812724863673],"rgb":[0.733333333333333282,0.66666666666666663,0.8],"xyz":[0.45765078803825554,0.43674094942115721,0.631477074580095166],"hpluv":[286.174295641089373,46.0838895939184923,72.010122844957138],"hsluv":[286.174295641089373,33.6938059680335442,72.010122844957138]},"#bbaadd":{"lch":[72.5845361735228494,39.7272427931479,278.476565574149959],"luv":[72.5845361735228494,5.85598959517198825,-39.2932717625671799],"rgb":[0.733333333333333282,0.66666666666666663,0.866666666666666696],"xyz":[0.47916911358888914,0.445348279641410716,0.744806922480101163],"hpluv":[278.476565574149959,69.451822258827633,72.5845361735228494],"hsluv":[278.476565574149959,54.5084651382981775,72.5845361735228494]},"#bbaaee":{"lch":[73.2116196006959825,53.7916684525604,274.71268656160521],"luv":[73.2116196006959825,4.41947960396952144,-53.6098106221266093],"rgb":[0.733333333333333282,0.66666666666666663,0.933333333333333348],"xyz":[0.502981293855063849,0.454873151747880733,0.870217738548624387],"hpluv":[274.71268656160521,93.2340021292866084,73.2116196006959825],"hsluv":[274.71268656160521,76.5987468488048506,73.2116196006959825]},"#bbaaff":{"lch":[73.8908057188696574,67.9996555049746121,272.519622378571285],"luv":[73.8908057188696574,2.98936916429642707,-67.9339150998584671],"rgb":[0.733333333333333282,0.66666666666666663,1],"xyz":[0.52915234226489527,0.465341571111813457,1.00805192684040623],"hpluv":[272.519622378571285,116.776549017196231,73.8908057188696574],"hsluv":[272.519622378571285,99.9999999999974847,73.8908057188696574]},"#99bb00":{"lch":[71.0859361318702696,82.3913749493211327,101.26222245755217],"luv":[71.0859361318702696,-16.0909976916487061,80.8048170552163185],"rgb":[0.6,0.733333333333333282,0],"xyz":[0.309061217191489157,0.423126383737875533,0.0653895889393331653],"hpluv":[101.26222245755217,147.074503152999483,71.0859361318702696],"hsluv":[101.26222245755217,100.000000000002302,71.0859361318702696]},"#99bb11":{"lch":[71.1136894680978457,81.2167121813616291,101.442926834262664],"luv":[71.1136894680978457,-16.1127230849120338,79.6023523040561685],"rgb":[0.6,0.733333333333333282,0.0666666666666666657],"xyz":[0.310072882691126261,0.423531049937730386,0.0707176939040888],"hpluv":[101.442926834262664,144.921066000062638,71.1136894680978457],"hsluv":[101.442926834262664,98.4331733262411,71.1136894680978457]},"#99bb22":{"lch":[71.1650900316793837,79.0601549481488917,101.789083890819583],"luv":[71.1650900316793837,-16.1527448632600859,77.392486287802754],"rgb":[0.6,0.733333333333333282,0.133333333333333331],"xyz":[0.311948240829603318,0.424281193193121187,0.080594580100068],"hpluv":[101.789083890819583,140.971066242853169,71.1650900316793837],"hsluv":[101.789083890819583,95.5563304227746357,71.1650900316793837]},"#99bb33":{"lch":[71.2495884989653,75.5680342451554168,102.392870056849247],"luv":[71.2495884989653,-16.2179420391938294,73.807222923575253],"rgb":[0.6,0.733333333333333282,0.2],"xyz":[0.315035991562061,0.425516293486104313,0.0968567339576791309],"hpluv":[102.392870056849247,134.584514176993849,71.2495884989653],"hsluv":[102.392870056849247,90.8963478676004826,71.2495884989653]},"#99bb44":{"lch":[71.3712967033779648,70.652786516275043,103.347443045401377],"luv":[71.3712967033779648,-16.3105834167977157,68.7443169368786471],"rgb":[0.6,0.733333333333333282,0.266666666666666663],"xyz":[0.319493986806279939,0.427299491583791879,0.120335508910565769],"hpluv":[103.347443045401377,125.616021445862458,71.3712967033779648],"hsluv":[103.347443045401377,84.331672265085615,71.3712967033779648]},"#99bb55":{"lch":[71.5335490617920442,64.3081830776187502,104.804237401434776],"luv":[71.5335490617920442,-16.4318507493525949,62.1734404042074189],"rgb":[0.6,0.733333333333333282,0.333333333333333315],"xyz":[0.325456400845641924,0.42968445719953674,0.151737556184539685],"hpluv":[104.804237401434776,114.076396323867073,71.5335490617920442],"hsluv":[104.804237401434776,75.8403293762878263,71.5335490617920442]},"#99bb66":{"lch":[71.7390905918245494,56.6109161874071347,107.032342660002968],"luv":[71.7390905918245494,-16.5819871692753225,54.1279367156704367],"rgb":[0.6,0.733333333333333282,0.4],"xyz":[0.33304139661915011,0.432718455508940059,0.191685200591683647],"hpluv":[107.032342660002968,100.134479122606095,71.7390905918245494],"hsluv":[107.032342660002968,65.4891515707011,71.7390905918245494]},"#99bb77":{"lch":[71.9901757540345102,47.73532562127712,110.555323727161408],"luv":[71.9901757540345102,-16.7604289857032249,44.6961892378372099],"rgb":[0.6,0.733333333333333282,0.466666666666666674],"xyz":[0.342355409639352,0.436444060717020854,0.240739002498081556],"hpluv":[110.555323727161408,84.1406731320706,71.9901757540345102],"hsluv":[110.555323727161408,53.4218452589237,71.9901757540345102]},"#99bb88":{"lch":[72.2886271035685581,38.007890289968195,116.511646356383693],"luv":[72.2886271035685581,-16.9659512259030869,34.0111191126451473],"rgb":[0.6,0.733333333333333282,0.533333333333333326],"xyz":[0.353495826741295815,0.440900227557798452,0.299411865901653695],"hpluv":[116.511646356383693,66.7180145269523592,72.2886271035685581],"hsluv":[116.511646356383693,39.8440619041218724,72.2886271035685581]},"#99bb99":{"lch":[72.6358740128595315,28.1115962970155238,127.715012949234961],"luv":[72.6358740128595315,-17.1968288028560856,22.2380512970816788],"rgb":[0.6,0.733333333333333282,0.6],"xyz":[0.366552790850368515,0.44612301320142761,0.36817854354277163],"hpluv":[127.715012949234961,49.1104221429672094,72.6358740128595315],"hsluv":[127.715012949234961,25.0059581073328268,72.6358740128595315]},"#99bbaa":{"lch":[73.0329812495468929,19.8989345424194468,151.280397210880039],"luv":[73.0329812495468929,-17.4510036711552878,9.56190706882358654],"rgb":[0.6,0.733333333333333282,0.66666666666666663],"xyz":[0.381610483815621071,0.452146090387528732,0.447482393159770231],"hpluv":[151.280397210880039,34.5740392557976648,73.0329812495468929],"hsluv":[151.280397210880039,28.0327457551748473,73.0329812495468929]},"#99bbbb":{"lch":[73.4806726048520602,18.1342571597367979,192.177050630060279],"luv":[73.4806726048520602,-17.7262447217336288,-3.82511840348453136],"rgb":[0.6,0.733333333333333282,0.733333333333333282],"xyz":[0.398748075922957745,0.45900112723046349,0.537740378258412],"hpluv":[192.177050630060279,31.3159775944509384,73.4806726048520602],"hsluv":[192.177050630060279,31.1933976709334857,73.4806726048520602]},"#99bbcc":{"lch":[73.9793524714423,25.2831678504957686,224.541830016242],"luv":[73.9793524714423,-18.0202882726228886,-17.734367401402082],"rgb":[0.6,0.733333333333333282,0.8],"xyz":[0.418040451366679444,0.466718077407952292,0.639346888928682189],"hpluv":[224.541830016242,43.3670907410057183,73.9793524714423],"hsluv":[224.541830016242,34.4349286550277398,73.9793524714423]},"#99bbdd":{"lch":[74.5291269946933284,36.8692317824205347,240.185846709470951],"luv":[74.5291269946933284,-18.3309507682094441,-31.9893184697537762],"rgb":[0.6,0.733333333333333282,0.866666666666666696],"xyz":[0.439558776917313043,0.475325407628205798,0.752676736828688187],"hpluv":[240.185846709470951,62.7736499155611796,74.5291269946933284],"hsluv":[240.185846709470951,50.9371920612126914,74.5291269946933284]},"#99bbee":{"lch":[75.129825653719962,50.0395173115419851,248.109771752659725],"luv":[75.129825653719962,-18.6562099892881648,-46.4316607672792],"rgb":[0.6,0.733333333333333282,0.933333333333333348],"xyz":[0.463370957183487753,0.484850279734675815,0.87808755289721141],"hpluv":[248.109771752659725,84.5162185097210568,75.129825653719962],"hsluv":[248.109771752659725,74.708817528734329,75.129825653719962]},"#99bbff":{"lch":[75.7810236401202104,63.8171103470632701,252.684342225014],"luv":[75.7810236401202104,-18.9942553989637197,-60.9248868270445527],"rgb":[0.6,0.733333333333333282,1],"xyz":[0.489542005593319174,0.495318699098608539,1.01592174118899314],"hpluv":[252.684342225014,106.860202909060845,75.7810236401202104],"hsluv":[252.684342225014,99.9999999999971,75.7810236401202104]},"#443300":{"lch":[22.2907133772276609,26.4379209369795269,61.2454831359909],"luv":[22.2907133772276609,12.7181702882918319,23.1778300966244757],"rgb":[0.266666666666666663,0.2,0],"xyz":[0.0356761736431134499,0.0359671813792181508,0.00506334165336921362],"hpluv":[61.2454831359909,150.502134175174433,22.2907133772276609],"hsluv":[61.2454831359909,100.000000000002217,22.2907133772276609]},"#443311":{"lch":[22.433780901835803,22.5495741902090607,57.6291729330006959],"luv":[22.433780901835803,12.072970412625418,19.0453847841311372],"rgb":[0.266666666666666663,0.2,0.0666666666666666657],"xyz":[0.0366878391427505751,0.0363718475790730036,0.0103914466181248451],"hpluv":[57.6291729330006959,127.548453681164943,22.433780901835803],"hsluv":[57.6291729330006959,82.4396262904162853,22.433780901835803]},"#443322":{"lch":[22.6962080128251955,16.3034653251506185,47.6268315603120129],"luv":[22.6962080128251955,10.9878263584328284,12.044527949459761],"rgb":[0.266666666666666663,0.2,0.133333333333333331],"xyz":[0.0385631972812275903,0.037121990834463825,0.0202683328141040411],"hpluv":[47.6268315603120129,91.1519465603444,22.6962080128251955],"hsluv":[47.6268315603120129,53.1527363908354289,22.6962080128251955]},"#443333":{"lch":[23.1206934094119845,9.67437860897999613,12.1770506300626202],"luv":[23.1206934094119845,9.4567095438703852,2.04064844418642899],"rgb":[0.266666666666666663,0.2,0.2],"xyz":[0.0416509480136853308,0.0383570911274469378,0.0365304866717151844],"hpluv":[12.1770506300626202,53.0959690287213917,23.1206934094119845],"hsluv":[12.1770506300626202,12.4420312875371923,23.1206934094119845]},"#443344":{"lch":[23.7177668131648574,12.5269391023357528,307.715012949247694],"luv":[23.7177668131648574,7.66315882209806354,-9.90960141180911],"rgb":[0.266666666666666663,0.2,0.266666666666666663],"xyz":[0.0461089432579042113,0.0401402892251345109,0.0600092616246018229],"hpluv":[307.715012949247694,67.0209373905010608,23.7177668131648574],"hsluv":[307.715012949247694,23.1872031280306743,23.7177668131648574]},"#443355":{"lch":[24.4893027034144382,23.4497607107203301,284.299245815683662],"luv":[24.4893027034144382,5.79176863833153277,-22.7232632654309157],"rgb":[0.266666666666666663,0.2,0.333333333333333315],"xyz":[0.0520713572972662,0.0425252548408793438,0.0914113088985757383],"hpluv":[284.299245815683662,121.507006770462795,24.4893027034144382],"hsluv":[284.299245815683662,34.0172562824217479,24.4893027034144382]},"#443366":{"lch":[25.4301832846655458,35.8361728283181407,276.366541048647719],"luv":[25.4301832846655458,3.97382245046802396,-35.6151655634680964],"rgb":[0.266666666666666663,0.2,0.4],"xyz":[0.0596563530707743817,0.0455592531502826553,0.1313589533057197],"hpluv":[276.366541048647719,178.818092823782393,25.4301832846655458],"hsluv":[276.366541048647719,44.0521665839457555,25.4301832846655458]},"#443377":{"lch":[26.5300434901181958,48.2102429207408818,272.708376965990851],"luv":[26.5300434901181958,2.27805419202829862,-48.1563909733176416],"rgb":[0.266666666666666663,0.2,0.466666666666666674],"xyz":[0.0689703660909762872,0.0492848583583634717,0.180412755212117609],"hpluv":[272.708376965990851,230.590114205629249,26.5300434901181958],"hsluv":[272.708376965990851,52.8563285469964583,26.5300434901181958]},"#443388":{"lch":[27.7750487339787355,60.1896827108213373,270.691543734184165],"luv":[27.7750487339787355,0.726454682878815761,-60.1852986070773568],"rgb":[0.266666666666666663,0.2,0.533333333333333326],"xyz":[0.0801107831929201153,0.0537410251991410626,0.239085618615689777],"hpluv":[270.691543734184165,274.983446475144433,27.7750487339787355],"hsluv":[270.691543734184165,60.324174233719404,27.7750487339787355]},"#443399":{"lch":[29.1495234429961272,71.6961686956082218,269.452076389218803],"luv":[29.1495234429961272,-0.685625105343165342,-71.6928903298230438],"rgb":[0.266666666666666663,0.2,0.6],"xyz":[0.0931677473019928426,0.058963810842770227,0.307852296256807656],"hpluv":[269.452076389218803,312.107220431461315,29.1495234429961272],"hsluv":[269.452076389218803,66.5368599437509,29.1495234429961272]},"#4433aa":{"lch":[30.6372824460415245,82.7612763398458924,268.632918119842316],"luv":[30.6372824460415245,-1.97450330946598829,-82.7377193188284821],"rgb":[0.266666666666666663,0.2,0.66666666666666663],"xyz":[0.108225440267245371,0.0649868880288713285,0.387156145873806257],"hpluv":[268.632918119842316,342.78062465137026,30.6372824460415245],"hsluv":[268.632918119842316,71.6553387322885698,30.6372824460415245]},"#4433bb":{"lch":[32.2226022397772525,93.4505902198726375,268.062492493372758],"luv":[32.2226022397772525,-3.15951219941267691,-93.3971642776391633],"rgb":[0.266666666666666663,0.2,0.733333333333333282],"xyz":[0.125363032374582017,0.0718419248718060871,0.477414130972448],"hpluv":[268.062492493372758,368.010970109266054,32.2226022397772525],"hsluv":[268.062492493372758,75.8581190135042789,32.2226022397772525]},"#4433cc":{"lch":[33.8908458580626331,103.832026214070311,267.649236367220567],"luv":[33.8908458580626331,-4.25888397543315911,-103.744646006447894],"rgb":[0.266666666666666663,0.2,0.8],"xyz":[0.144655407818303772,0.0795588750492948887,0.579020641642718159],"hpluv":[267.649236367220567,388.765974213008576,33.8908458580626331],"hsluv":[267.649236367220567,79.3114034284002,33.8908458580626331]},"#4433dd":{"lch":[35.628800942302739,113.96424557581804,267.340372831489958],"luv":[35.628800942302739,-5.28823530427115518,-113.841485571087048],"rgb":[0.266666666666666663,0.2,0.866666666666666696],"xyz":[0.166173733368937315,0.0881662052695484227,0.692350489542724157],"hpluv":[267.340372831489958,405.888493424646128,35.628800942302739],"hsluv":[267.340372831489958,85.5677988674314,35.628800942302739]},"#4433ee":{"lch":[37.4248062251042484,123.894025620863303,267.103630337901393],"luv":[37.4248062251042484,-6.26032296204841732,-123.73575853791813],"rgb":[0.266666666666666663,0.2,0.933333333333333348],"xyz":[0.189985913635112053,0.0976910773760184536,0.81776130561124738],"hpluv":[267.103630337901393,420.078186698807599,37.4248062251042484],"hsluv":[267.103630337901393,92.6566888343209,37.4248062251042484]},"#4433ff":{"lch":[39.2687372084732473,133.657198385904053,266.918330051954797],"luv":[39.2687372084732473,-7.18532525912719411,-133.4639193988003],"rgb":[0.266666666666666663,0.2,1],"xyz":[0.216156962044943446,0.10815949673995115,0.955595493903029225],"hpluv":[266.918330051954797,431.901531941155895,39.2687372084732473],"hsluv":[266.918330051954797,99.99999999999946,39.2687372084732473]},"#bbbb00":{"lch":[73.6141498101152223,81.1522849996882485,85.8743202181747591],"luv":[73.6141498101152223,5.83845950082822274,80.9419900380996],"rgb":[0.733333333333333282,0.733333333333333282,0],"xyz":[0.382626051771664,0.461058251568279,0.0688379405602788],"hpluv":[85.8743202181747591,139.887458074797564,73.6141498101152223],"hsluv":[85.8743202181747591,100.000000000002331,73.6141498101152223]},"#bbbb11":{"lch":[73.6403599567658205,80.0195247391518478,85.8743202181747449],"luv":[73.6403599567658205,5.75696364516240155,79.8121651696532695],"rgb":[0.733333333333333282,0.733333333333333282,0.0666666666666666657],"xyz":[0.383637717271301082,0.461462917768133862,0.0741660455250344325],"hpluv":[85.8743202181747449,137.885751829634614,73.6403599567658205],"hsluv":[85.8743202181747449,98.5690595334933732,73.6403599567658205]},"#bbbb22":{"lch":[73.6889060807276763,77.9361940700347873,85.8743202181746597],"luv":[73.6889060807276763,5.60707948923862176,77.7342331648256817],"rgb":[0.733333333333333282,0.733333333333333282,0.133333333333333331],"xyz":[0.385513075409778139,0.462213061023524663,0.0840429317210136251],"hpluv":[85.8743202181746597,134.207383902194948,73.6889060807276763],"hsluv":[85.8743202181746597,95.9395400768792541,73.6889060807276763]},"#bbbb33":{"lch":[73.768722281637082,74.5519121144895536,85.8743202181745318],"luv":[73.768722281637082,5.36359906059884217,74.3587211095223],"rgb":[0.733333333333333282,0.733333333333333282,0.2],"xyz":[0.388600826142235845,0.46344816131650779,0.100305085578624775],"hpluv":[85.8743202181745318,128.24069174643796,73.768722281637082],"hsluv":[85.8743202181745318,91.6741883163470419,73.768722281637082]},"#bbbb44":{"lch":[73.8837085661944144,69.7637661309282464,85.8743202181743328],"luv":[73.8837085661944144,5.01911835485944824,69.5829829463408629],"rgb":[0.733333333333333282,0.733333333333333282,0.266666666666666663],"xyz":[0.39305882138645476,0.465231359414195356,0.123783860531511414],"hpluv":[85.8743202181743328,119.817583791868643,73.8837085661944144],"hsluv":[85.8743202181743328,85.652842249664161,73.8837085661944144]},"#bbbb55":{"lch":[74.0370403615741,63.5337415760462747,85.8743202181740628],"luv":[74.0370403615741,4.57090243520957262,63.3691026414263376],"rgb":[0.733333333333333282,0.733333333333333282,0.333333333333333315],"xyz":[0.399021235425816745,0.467616325029940216,0.155185907805485301],"hpluv":[85.8743202181740628,108.891682763750694,74.0370403615741],"hsluv":[85.8743202181740628,77.8423486010655239,74.0370403615741]},"#bbbb66":{"lch":[74.2313474843288361,55.8815023675101799,85.8743202181735512],"luv":[74.2313474843288361,4.02036601211528843,55.7366931561128212],"rgb":[0.733333333333333282,0.733333333333333282,0.4],"xyz":[0.40660623119932493,0.470650323339343535,0.195133552212629291],"hpluv":[85.8743202181735512,95.5256619678334857,74.2313474843288361],"hsluv":[85.8743202181735512,68.2875100330713138,74.2313474843288361]},"#bbbb77":{"lch":[74.468808451125966,46.8772880877030289,85.8743202181728549],"luv":[74.468808451125966,3.37256243628739805,46.7558120565865849],"rgb":[0.733333333333333282,0.733333333333333282,0.466666666666666674],"xyz":[0.415920244219526836,0.47437592854742433,0.2441873541190272],"hpluv":[85.8743202181728549,79.8780401793102328,74.468808451125966],"hsluv":[85.8743202181728549,57.1016453359253688,74.468808451125966]},"#bbbb88":{"lch":[74.7512063572608128,36.6333476151433146,85.874320218171647],"luv":[74.7512063572608128,2.63556739569020726,36.5384173438683746],"rgb":[0.733333333333333282,0.733333333333333282,0.533333333333333326],"xyz":[0.427060661321470636,0.478832095388201928,0.30286021752259934],"hpluv":[85.874320218171647,62.1867310089120195,74.7512063572608128],"hsluv":[85.874320218171647,44.4548295213588744,74.7512063572608128]},"#bbbb99":{"lch":[75.079965438194165,25.2938928616919938,85.8743202181691316],"luv":[75.079965438194165,1.81975614231989979,25.2283472245258693],"rgb":[0.733333333333333282,0.733333333333333282,0.6],"xyz":[0.440117625430543336,0.484054881031831086,0.371626895163717275],"hpluv":[85.8743202181691316,42.7494899193068392,75.079965438194165],"hsluv":[85.8743202181691316,30.559916169503893,75.079965438194165]},"#bbbbaa":{"lch":[75.4561775549407372,13.0242335847304886,85.8743202181613583],"luv":[75.4561775549407372,0.937021801842234714,12.9904830784884187],"rgb":[0.733333333333333282,0.733333333333333282,0.66666666666666663],"xyz":[0.455175318395795891,0.490077958217932208,0.450930744780715875],"hpluv":[85.8743202181613583,21.9026519543336242,75.4561775549407372],"hsluv":[85.8743202181613583,15.6573378741524305,75.4561775549407372]},"#bbbbbb":{"lch":[75.8806235332097856,3.97454725928322e-12,0],"luv":[75.8806235332097856,3.75098259432623098e-12,1.31421287976393485e-12],"rgb":[0.733333333333333282,0.733333333333333282,0.733333333333333282],"xyz":[0.472312910503132566,0.496932995060866967,0.541188729879357622],"hpluv":[0,6.64654731741433278e-12,75.8806235332097856],"hsluv":[0,6.51507609526145538e-12,75.8806235332097856]},"#bbbbcc":{"lch":[76.3537921403793,13.6026726964261613,265.874320218192793],"luv":[76.3537921403793,-0.97863730689855577,-13.5674232449512715],"rgb":[0.733333333333333282,0.733333333333333282,0.8],"xyz":[0.491605285946854265,0.504649945238355713,0.642795240549627778],"hpluv":[265.874320218192793,23.0577392955455913,76.3537921403793],"hsluv":[265.874320218192793,22.3559583930985184,76.3537921403793]},"#bbbbdd":{"lch":[76.875898300454,27.6153317552162676,265.874320218184891],"luv":[76.875898300454,-1.98677087225565296,-27.543770429115412],"rgb":[0.733333333333333282,0.733333333333333282,0.866666666666666696],"xyz":[0.513123611497487864,0.51325727545860933,0.756125088449633775],"hpluv":[265.874320218184891,48.094692651754464,76.875898300454],"hsluv":[265.874320218184891,46.4508399898830717,76.875898300454]},"#bbbbee":{"lch":[77.4469014383288794,41.8833893600305487,265.874320218182334],"luv":[77.4469014383288794,-3.01327895494808,-41.7748543291725554],"rgb":[0.733333333333333282,0.733333333333333282,0.933333333333333348],"xyz":[0.536935791763662573,0.522782147565079347,0.881535904518157],"hpluv":[265.874320218182334,75.1781465494946,77.4469014383288794],"hsluv":[265.874320218182334,72.306149300046286,77.4469014383288794]},"#bbbbff":{"lch":[78.0665243938900915,56.270213901735211,265.874320218181083],"luv":[78.0665243938900915,-4.04833166396953814,-56.1243973979724444],"rgb":[0.733333333333333282,0.733333333333333282,1],"xyz":[0.563106840173494,0.533250566929012,1.01937009280993873],"hpluv":[265.874320218181083,104.437018855576454,78.0665243938900915],"hsluv":[265.874320218181083,99.9999999999968,78.0665243938900915]},"#99cc00":{"lch":[76.0430979526319,91.0941172293808,106.263360497649074],"luv":[76.0430979526319,-25.5111694560196547,87.4489475453331124],"rgb":[0.6,0.8,0],"xyz":[0.347284960501106077,0.499573870357110428,0.0781308367092051204],"hpluv":[106.263360497649074,152.00919412554731,76.0430979526319],"hsluv":[106.263360497649074,100.000000000002444,76.0430979526319]},"#99cc11":{"lch":[76.0679435797449202,90.0431717383104342,106.457693210299354],"luv":[76.0679435797449202,-25.5098862277023812,86.3540299079582496],"rgb":[0.6,0.8,0.0666666666666666657],"xyz":[0.348296626000743181,0.499978536556965281,0.083458941673960757],"hpluv":[106.457693210299354,150.416675371578,76.0679435797449202],"hsluv":[106.457693210299354,98.6698238814781377,76.0679435797449202]},"#99cc22":{"lch":[76.1139653123302224,88.1120975577654235,106.827460928226145],"luv":[76.1139653123302224,-25.5076232207001254,84.3392132620406301],"rgb":[0.6,0.8,0.133333333333333331],"xyz":[0.350171984139220238,0.500728679812356137,0.0933358278699399496],"hpluv":[106.827460928226145,147.536178080277807,76.1139653123302224],"hsluv":[106.827460928226145,96.2239688839219554,76.1139653123302224]},"#99cc33":{"lch":[76.1896394090333615,84.9806694979027668,107.464683868975555],"luv":[76.1896394090333615,-25.5042190273125513,81.0632407452271195],"rgb":[0.6,0.8,0.2],"xyz":[0.353259734871677944,0.501963780105339263,0.109597981727551086],"hpluv":[107.464683868975555,142.843382477451314,76.1896394090333615],"hsluv":[107.464683868975555,92.2523981769505497,76.1896394090333615]},"#99cc44":{"lch":[76.2986765643697566,80.5641186971074461,108.452476349375274],"luv":[76.2986765643697566,-25.4999909675489818,76.4220366262018445],"rgb":[0.6,0.8,0.266666666666666663],"xyz":[0.357717730115896859,0.503746978203026829,0.133076756680437724],"hpluv":[108.452476349375274,136.177549938509202,76.2986765643697566],"hsluv":[108.452476349375274,86.6370393323296,76.2986765643697566]},"#99cc55":{"lch":[76.4441084930992645,74.8483308647658276,109.915235611542258],"luv":[76.4441084930992645,-25.4955548836031696,70.3722197633315858],"rgb":[0.6,0.8,0.333333333333333315],"xyz":[0.363680144155258844,0.506131943818771579,0.16447880395441164],"hpluv":[109.915235611542258,127.465568679298812,76.4441084930992645],"hsluv":[109.915235611542258,79.3378797119037245,76.4441084930992645]},"#99cc66":{"lch":[76.6284587708723279,67.8919791104198111,112.053749389120497],"luv":[76.6284587708723279,-25.4918238993559072,62.9244606001029396],"rgb":[0.6,0.8,0.4],"xyz":[0.37126513992876703,0.509165942128174898,0.204426448361555602],"hpluv":[112.053749389120497,116.726185086844026,76.6284587708723279],"hsluv":[112.053749389120497,70.3850130172815796,76.6284587708723279]},"#99cc77":{"lch":[76.8538330837355801,59.8379910057359723,115.212918879407354],"luv":[76.8538330837355801,-25.4899847789994141,54.1372869986012262],"rgb":[0.6,0.8,0.466666666666666674],"xyz":[0.380579152948968935,0.512891547336255749,0.253480250267953511],"hpluv":[115.212918879407354,104.093311342856381,76.8538330837355801],"hsluv":[115.212918879407354,59.8707914454029577,76.8538330837355801]},"#99cc88":{"lch":[77.1219726780439885,50.9458531819172649,120.024060615406185],"luv":[77.1219726780439885,-25.4914521322680621,44.1097021597488919],"rgb":[0.6,0.8,0.533333333333333326],"xyz":[0.391719570050912735,0.517347714177033291,0.31215311367152565],"hpluv":[120.024060615406185,89.8814395273866324,77.1219726780439885],"hsluv":[120.024060615406185,47.9401368886289845,77.1219726780439885]},"#99cc99":{"lch":[77.4342891130262103,41.681173098632776,127.715012949236964],"luv":[77.4342891130262103,-25.4978049096247332,32.9724450969124447],"rgb":[0.6,0.8,0.6],"xyz":[0.40477653415998549,0.522570499820662504,0.380919791312643585],"hpluv":[127.715012949236964,74.7648437658604337,77.4342891130262103],"hsluv":[127.715012949236964,34.7788947556027495,77.4342891130262103]},"#99ccaa":{"lch":[77.7918890721377352,32.9651751214879525,140.702563314804109],"luv":[77.7918890721377352,-25.5107121176450882,20.8783701002018844],"rgb":[0.6,0.8,0.66666666666666663],"xyz":[0.419834227125238,0.528593577006763571,0.460223640929642186],"hpluv":[140.702563314804109,60.2770963674260756,77.7918890721377352],"hsluv":[140.702563314804109,37.0803100068772622,77.7918890721377352]},"#99ccbb":{"lch":[78.1955939192693421,26.7536671513630395,162.617393192268167],"luv":[78.1955939192693421,-25.5318556358660231,7.9926875226808507],"rgb":[0.6,0.8,0.733333333333333282],"xyz":[0.436971819232574665,0.535448613849698329,0.550481626028283877],"hpluv":[162.617393192268167,50.006554278151107,78.1955939192693421],"hsluv":[162.617393192268167,39.5096284608221353,78.1955939192693421]},"#99cccc":{"lch":[78.6459566685868481,26.1512486118356264,192.177050630060364],"luv":[78.6459566685868481,-25.562857556775878,-5.51616873291790277],"rgb":[0.6,0.8,0.8],"xyz":[0.45626419467629642,0.543165564027187187,0.652088136698554],"hpluv":[192.177050630060364,50.1138147500145,78.6459566685868481],"hsluv":[192.177050630060364,42.0292910605185952,78.6459566685868481]},"#99ccdd":{"lch":[79.1432779300782,32.1756084020034763,217.269502822152816],"luv":[79.1432779300782,-25.6052179328205156,-19.4844191766612091],"rgb":[0.6,0.8,0.866666666666666696],"xyz":[0.477782520226929908,0.551772894247440693,0.76541798459856],"hpluv":[217.269502822152816,63.4104034428488532,79.1432779300782],"hsluv":[217.269502822152816,44.6030324020319142,79.1432779300782]},"#99ccee":{"lch":[79.6876217339600146,42.4043636674930298,232.761609201673764],"luv":[79.6876217339600146,-25.6602666815912279,-33.7591583407321],"rgb":[0.6,0.8,0.933333333333333348],"xyz":[0.501594700493104728,0.56129776635391071,0.890828800667083254],"hpluv":[232.761609201673764,86.2263034184575901,79.6876217339600146],"hsluv":[232.761609201673764,69.2463215394111842,79.6876217339600146]},"#99ccff":{"lch":[80.278831719152322,54.6396736698167231,241.908088190648726],"luv":[80.278831719152322,-25.7291311718118969,-48.2027566419988105],"rgb":[0.6,0.8,1],"xyz":[0.527765748902936,0.571766185717843434,1.02866298895886521],"hpluv":[241.908088190648726,115.039816302159181,80.278831719152322],"hsluv":[241.908088190648726,99.9999999999963762,80.278831719152322]},"#444400":{"lch":[27.7455139749470092,30.5866720374503593,85.8743202181747307],"luv":[27.7455139749470092,2.20054242411605072,30.5074108925390952],"rgb":[0.266666666666666663,0.266666666666666663,0],"xyz":[0.044508744126079483,0.0536323223451504599,0.00800753181435780864],"hpluv":[85.8743202181747307,139.887458074797593,27.7455139749470092],"hsluv":[85.8743202181747307,100.000000000002331,27.7455139749470092]},"#444411":{"lch":[27.8552611903384602,27.0161424908788135,85.8743202181744],"luv":[27.8552611903384602,1.9436625081132386,26.9461338811715763],"rgb":[0.266666666666666663,0.266666666666666663,0.0666666666666666657],"xyz":[0.0455204096257166,0.0540369885450053128,0.0133356367791134401],"hpluv":[85.8743202181744,123.070915058641674,27.8552611903384602],"hsluv":[85.8743202181744,87.9785198418851451,27.8552611903384602]},"#444422":{"lch":[28.0572627170229296,20.802612285424587,85.8743202181735086],"luv":[28.0572627170229296,1.49663326596887214,20.7487051828516122],"rgb":[0.266666666666666663,0.266666666666666663,0.133333333333333331],"xyz":[0.0473957677641936234,0.0547871318003961341,0.0232125229750926379],"hpluv":[85.8743202181735086,94.0831614915658463,28.0572627170229296],"hsluv":[85.8743202181735086,67.2563236092702539,28.0572627170229296]},"#444433":{"lch":[28.3858756417530103,11.5666907278610811,85.8743202181704],"luv":[28.3858756417530103,0.832159628943940688,11.5367172430437677],"rgb":[0.266666666666666663,0.266666666666666663,0.2],"xyz":[0.0504835184966513639,0.056022232093379247,0.0394746768327037811],"hpluv":[85.8743202181704,51.7066205750809758,28.3858756417530103],"hsluv":[85.8743202181704,36.9630139018145201,28.3858756417530103]},"#444444":{"lch":[28.8519023983998864,1.56211738287899238e-12,0],"luv":[28.8519023983998864,1.45745810878583046e-12,5.6216241338882039e-13],"rgb":[0.266666666666666663,0.266666666666666663,0.266666666666666663],"xyz":[0.0549415137408702445,0.05780543019106682,0.0629534517855904197],"hpluv":[0,6.87034486140541504e-12,28.8519023983998864],"hsluv":[0,1.96712204652458306e-12,28.8519023983998864]},"#444455":{"lch":[29.4604491554767947,12.996237632929807,265.874320218183527],"luv":[29.4604491554767947,-0.935007647451096213,-12.9625596743385874],"rgb":[0.266666666666666663,0.266666666666666663,0.333333333333333315],"xyz":[0.0609039277802322365,0.0601903958068116529,0.094355499059564335],"hpluv":[265.874320218183527,55.9780294653588157,29.4604491554767947],"hsluv":[265.874320218183527,10.903125265393685,29.4604491554767947]},"#444466":{"lch":[30.2117995944983235,26.5936989313503034,265.874320218180401],"luv":[30.2117995944983235,-1.9132700229980284,-26.52478502590359],"rgb":[0.266666666666666663,0.266666666666666663,0.4],"xyz":[0.0684889235537404079,0.0632243941162149714,0.134303143466708297],"hpluv":[265.874320218180401,111.69699235114156,30.2117995944983235],"hsluv":[265.874320218180401,21.7557908165695544,30.2117995944983235]},"#444477":{"lch":[31.1022350000615333,40.188693881548005,265.874320218179378],"luv":[31.1022350000615333,-2.89135495838767076,-40.084550420447286],"rgb":[0.266666666666666663,0.266666666666666663,0.466666666666666674],"xyz":[0.0778029365739423273,0.0669499993242957808,0.183356945373106206],"hpluv":[265.874320218179378,163.965176201048621,31.1022350000615333],"hsluv":[265.874320218179378,31.9363305989270607,31.1022350000615333]},"#444488":{"lch":[32.1249060438116132,53.4239352836437,265.874320218178923],"luv":[32.1249060438116132,-3.84355760936744639,-53.2854945186250859],"rgb":[0.266666666666666663,0.266666666666666663,0.533333333333333326],"xyz":[0.0889433536758861554,0.0714061661650733787,0.242029808776678373],"hpluv":[265.874320218178923,211.024721596932807,32.1249060438116132],"hsluv":[265.874320218178923,41.1023574005893479,32.1249060438116132]},"#444499":{"lch":[33.2707247827276404,66.1374776044503818,265.874320218178639],"luv":[33.2707247827276404,-4.75822688765494473,-65.9660914467787336],"rgb":[0.266666666666666663,0.266666666666666663,0.6],"xyz":[0.102000317784958869,0.0766289518087025362,0.31079648641779628],"hpluv":[265.874320218178639,252.246234683596128,33.2707247827276404],"hsluv":[265.874320218178639,50.2337582903708224,33.2707247827276404]},"#4444aa":{"lch":[34.5292085317775772,78.2936422443982707,265.874320218178468],"luv":[34.5292085317775772,-5.63279591471267516,-78.090755061511743],"rgb":[0.266666666666666663,0.266666666666666663,0.66666666666666663],"xyz":[0.117058010750211411,0.0826520289948036446,0.390100336034794881],"hpluv":[265.874320218178468,287.726060771882089,34.5292085317775772],"hsluv":[265.874320218178468,59.0260968416557645,34.5292085317775772]},"#4444bb":{"lch":[35.8892144652077647,89.9250819913669801,265.874320218178354],"luv":[35.8892144652077647,-6.46961387860876,-89.6920535355044],"rgb":[0.266666666666666663,0.266666666666666663,0.733333333333333282],"xyz":[0.134195602857548058,0.0895070658377384,0.480358321133436628],"hpluv":[265.874320218178354,317.948086985701252,35.8892144652077647],"hsluv":[265.874320218178354,67.4283717547759807,35.8892144652077647]},"#4444cc":{"lch":[37.3395287853000397,101.093816173965237,265.874320218178298],"luv":[37.3395287853000397,-7.27314272811459173,-100.831845482823283],"rgb":[0.266666666666666663,0.266666666666666663,0.8],"xyz":[0.153487978301269812,0.0972240160152272,0.581964831803706728],"hpluv":[265.874320218178298,343.55405942077391,37.3395287853000397],"hsluv":[265.874320218178298,75.5808548987534294,37.3395287853000397]},"#4444dd":{"lch":[38.8693012328948697,111.868746538356049,265.874320218178241],"luv":[38.8693012328948697,-8.04833956400084105,-111.578854100252741],"rgb":[0.266666666666666663,0.266666666666666663,0.866666666666666696],"xyz":[0.175006303851903355,0.105831346235480739,0.695294679703712726],"hpluv":[265.874320218178241,365.208910634554,38.8693012328948697],"hsluv":[265.874320218178241,83.6313726076760702,38.8693012328948697]},"#4444ee":{"lch":[40.4683363226646691,122.314460404417545,265.874320218178127],"luv":[40.4683363226646691,-8.799851087852959,-121.997499338533331],"rgb":[0.266666666666666663,0.266666666666666663,0.933333333333333348],"xyz":[0.198818484118078065,0.115356218341950756,0.820705495772236],"hpluv":[265.874320218178127,383.532154053589807,40.4683363226646691],"hsluv":[265.874320218178127,91.7249319236633625,40.4683363226646691]},"#4444ff":{"lch":[42.1272645151277203,132.4867415013303,265.874320218178127],"luv":[42.1272645151277203,-9.53169063144130568,-132.143420370999962],"rgb":[0.266666666666666663,0.266666666666666663,1],"xyz":[0.224989532527909486,0.12582463770588348,0.958539684064017794],"hpluv":[265.874320218178127,399.069452944254863,42.1272645151277203],"hsluv":[265.874320218178127,99.9999999999994458,42.1272645151277203]},"#bbcc00":{"lch":[78.3160688649495711,87.6272661942945916,93.3039767998847651],"luv":[78.3160688649495711,-5.05025027162958828,87.4816137990130471],"rgb":[0.733333333333333282,0.8,0],"xyz":[0.420849795081280953,0.537505738187513904,0.081579188330150737],"hpluv":[93.3039767998847651,164.876849582678972,78.3160688649495711],"hsluv":[93.3039767998847651,100.000000000002302,78.3160688649495711]},"#bbcc11":{"lch":[78.3397318378619332,86.5943586896397193,93.3754549086192],"luv":[78.3397318378619332,-5.09856582429126703,86.4441298377475249],"rgb":[0.733333333333333282,0.8,0.0666666666666666657],"xyz":[0.421861460580918057,0.537910404387368812,0.0869072932949063737],"hpluv":[93.3754549086192,163.146061131239662,78.3397318378619332],"hsluv":[93.3754549086192,98.7690619278293,78.3397318378619332]},"#bbcc22":{"lch":[78.3835653101130134,84.6929692802742125,93.5116381573829329],"luv":[78.3835653101130134,-5.18755307791811582,84.5339478468458481],"rgb":[0.733333333333333282,0.8,0.133333333333333331],"xyz":[0.423736818719395114,0.538660547642759613,0.0967841794908855663],"hpluv":[93.5116381573829329,159.95035726483485,78.3835653101130134],"hsluv":[93.5116381573829329,96.5043106774720343,78.3835653101130134]},"#bbcc33":{"lch":[78.4556479267243,81.5996211754986405,93.7468972468941644],"luv":[78.4556479267243,-5.33246113691784,81.4251990123951],"rgb":[0.733333333333333282,0.8,0.2],"xyz":[0.42682456945185282,0.53989564793574274,0.113046333348496703],"hpluv":[93.7468972468941644,154.72407311273281,78.4556479267243],"hsluv":[93.7468972468941644,92.8230308779070157,78.4556479267243]},"#bbcc44":{"lch":[78.5595248117047475,77.2136355312914873,94.1131309849175],"luv":[78.5595248117047475,-5.53822791342104281,77.0147618547127877],"rgb":[0.733333333333333282,0.8,0.266666666666666663],"xyz":[0.431282564696071735,0.541678846033430306,0.136525108301383341],"hpluv":[94.1131309849175,147.254264694427633,78.5595248117047475],"hsluv":[94.1131309849175,87.6101015600037556,78.5595248117047475]},"#bbcc55":{"lch":[78.6981007967589079,71.4912273296626921,94.6593076474989488],"luv":[78.6981007967589079,-5.80727962831129307,71.2549723768110823],"rgb":[0.733333333333333282,0.8,0.333333333333333315],"xyz":[0.43724497873543372,0.544063811649175,0.167927155575357256],"hpluv":[94.6593076474989488,137.398731222980217,78.6981007967589079],"hsluv":[94.6593076474989488,80.8199795518833639,78.6981007967589079]},"#bbcc66":{"lch":[78.8738041161037273,64.440755538040392,95.4673459440295176],"luv":[78.8738041161037273,-6.13981465986491681,64.1475927081912403],"rgb":[0.733333333333333282,0.8,0.4],"xyz":[0.444829974508941905,0.547097809958578374,0.207874799982501218],"hpluv":[95.4673459440295176,125.075317361724217,78.8738041161037273],"hsluv":[95.4673459440295176,72.4696955468646848,78.8738041161037273]},"#bbcc77":{"lch":[79.0886730863018244,56.1202023011108153,96.6860819525870454],"luv":[79.0886730863018244,-6.5340457953894715,55.7385266387743386],"rgb":[0.733333333333333282,0.8,0.466666666666666674],"xyz":[0.454143987529143811,0.550823415166659225,0.2569286018888991],"hpluv":[96.6860819525870454,110.256785788709905,79.0886730863018244],"hsluv":[96.6860819525870454,62.6323703341884,79.0886730863018244]},"#bbcc88":{"lch":[79.3444074564468451,46.6379090458556931,98.6154841820407],"luv":[79.3444074564468451,-6.9864776714612713,46.1116437563841473],"rgb":[0.733333333333333282,0.8,0.533333333333333326],"xyz":[0.465284404631087611,0.555279582007436767,0.315601465292471295],"hpluv":[98.6154841820407,92.9740665461038702,79.3444074564468451],"hsluv":[98.6154841820407,51.4293340198482483,79.3444074564468451]},"#bbcc99":{"lch":[79.6424016540563,36.1659853952486898,101.956116252097843],"luv":[79.6424016540563,-7.49223418159530397,35.3814206410296137],"rgb":[0.733333333333333282,0.8,0.6],"xyz":[0.478341368740160311,0.560502367651066,0.38436814293358923],"hpluv":[101.956116252097843,73.3480812445522616,79.6424016540563],"hsluv":[101.956116252097843,39.0205672484538439,79.6424016540563]},"#bbccaa":{"lch":[79.9837682606211899,25.01387761080953,108.762036830266098],"luv":[79.9837682606211899,-8.04542335958215382,23.6847046866463593],"rgb":[0.733333333333333282,0.8,0.66666666666666663],"xyz":[0.493399061705412867,0.566525444837167,0.463671992550587775],"hpluv":[108.762036830266098,51.7527419020047645,79.9837682606211899],"hsluv":[108.762036830266098,25.5939208298632828,79.9837682606211899]},"#bbccbb":{"lch":[80.3693561861161356,14.1229851396422195,127.715012949226079],"luv":[80.3693561861161356,-8.63951499109438892,11.1721748094634776],"rgb":[0.733333333333333282,0.8,0.733333333333333282],"xyz":[0.510536653812749486,0.573380481680101806,0.553929977649229577],"hpluv":[127.715012949226079,29.8960175179438359,80.3693561861161356],"hsluv":[127.715012949226079,11.3539027840963094,80.3693561861161356]},"#bbcccc":{"lch":[80.7997661027856537,9.48102181692548207,192.177050630058517],"luv":[80.7997661027856537,-9.26770319062559622,-1.99986306118322021],"rgb":[0.733333333333333282,0.8,0.8],"xyz":[0.52982902925647124,0.581097431857590663,0.655536488319499733],"hpluv":[192.177050630058517,20.5979746439306091,80.7997661027856537],"hsluv":[192.177050630058517,14.8313634310922779,80.7997661027856537]},"#bbccdd":{"lch":[81.2753646562375138,18.5534915910332536,237.666646406054781],"luv":[81.2753646562375138,-9.9232294288842251,-15.6767843616051454],"rgb":[0.733333333333333282,0.8,0.866666666666666696],"xyz":[0.551347354807104839,0.589704762077844169,0.76886633621950573],"hpluv":[237.666646406054781,41.5059211719903089,81.2753646562375138],"hsluv":[237.666646406054781,34.6395739712995834,81.2753646562375138]},"#bbccee":{"lch":[81.7962983545147466,31.5457627715974915,250.366116177600304],"luv":[81.7962983545147466,-10.5996485000078611,-29.7116576534899401],"rgb":[0.733333333333333282,0.8,0.933333333333333348],"xyz":[0.575159535073279549,0.599229634184314186,0.894277152288029],"hpluv":[250.366116177600304,72.9233806917818725,81.7962983545147466],"hsluv":[250.366116177600304,65.9765826509477478,81.7962983545147466]},"#bbccff":{"lch":[82.3625076456434329,45.3963265868234203,255.598148289110497],"luv":[82.3625076456434329,-11.2910283768039683,-43.9697526234994669],"rgb":[0.733333333333333282,0.8,1],"xyz":[0.601330583483111,0.60969805354824691,1.0321113405798108],"hpluv":[255.598148289110497,108.847942718229262,82.3625076456434329],"hsluv":[255.598148289110497,99.9999999999958789,82.3625076456434329]},"#99dd00":{"lch":[81.0072374435841738,100.100388992767378,110.059278565234735],"luv":[81.0072374435841738,-34.3336498242400623,94.028125400062109],"rgb":[0.6,0.866666666666666696,0],"xyz":[0.389918951048281226,0.584841851451462,0.0923421668915964389],"hpluv":[110.059278565234735,220.251619684458433,81.0072374435841738],"hsluv":[110.059278565234735,100.000000000002245,81.0072374435841738]},"#99dd11":{"lch":[81.0296061686003,99.1554895677318626,110.248463134872608],"luv":[81.0296061686003,-34.3169109383134483,93.0277417498051733],"rgb":[0.6,0.866666666666666696,0.0666666666666666657],"xyz":[0.39093061654791833,0.585246517651316855,0.0976702718563520755],"hpluv":[110.248463134872608,218.472914234601802,81.0296061686003],"hsluv":[110.248463134872608,98.8616036668283,81.0296061686003]},"#99dd22":{"lch":[81.0710445633976,97.4178442494470431,110.606606003803336],"luv":[81.0710445633976,-34.2861684396920552,91.184949591117217],"rgb":[0.6,0.866666666666666696,0.133333333333333331],"xyz":[0.392805974686395387,0.585996660906707656,0.107547158052331268],"hpluv":[110.606606003803336,215.192819254761019,81.0710445633976],"hsluv":[110.606606003803336,96.7659338960775131,81.0710445633976]},"#99dd33":{"lch":[81.1391953168863154,94.5961335984436857,111.218234049095599],"luv":[81.1391953168863154,-34.2363517117206513,88.1833358024404106],"rgb":[0.6,0.866666666666666696,0.2],"xyz":[0.395893725418853093,0.587231761199690783,0.123809311909942404],"hpluv":[111.218234049095599,209.840835623165077,81.1391953168863154],"hsluv":[111.218234049095599,93.3562182204636599,81.1391953168863154]},"#99dd44":{"lch":[81.2374208116197565,90.6080011845065343,112.152709421166279],"luv":[81.2374208116197565,-34.1661449288095653,83.9195115533635487],"rgb":[0.6,0.866666666666666696,0.266666666666666663],"xyz":[0.400351720663072,0.589014959297378349,0.147288086862829043],"hpluv":[112.152709421166279,202.22119953609328,81.2374208116197565],"hsluv":[112.152709421166279,88.5208972681928827,81.2374208116197565]},"#99dd55":{"lch":[81.3684846041416421,85.4315699411036604,113.506988965296216],"luv":[81.3684846041416421,-34.0753153837539244,78.3417259453695607],"rgb":[0.6,0.866666666666666696,0.333333333333333315],"xyz":[0.406314134702434,0.591399924913123098,0.178690134136802958],"hpluv":[113.506988965296216,192.231211336261111,81.3684846041416421],"hsluv":[113.506988965296216,82.2103932307851579,81.3684846041416421]},"#99dd66":{"lch":[81.5347071887187695,79.1067404569191837,115.426438711198742],"luv":[81.5347071887187695,-33.9646313013793,71.4442454385217758],"rgb":[0.6,0.866666666666666696,0.4],"xyz":[0.413899130475942179,0.594433923222526417,0.21863777854394692],"hpluv":[115.426438711198742,179.864586291563711,81.5347071887187695],"hsluv":[115.426438711198742,74.4308834765056,81.5347071887187695]},"#99dd77":{"lch":[81.7380487099571,71.7428264562351217,118.139890255285593],"luv":[81.7380487099571,-33.8357763954940651,63.2627329764024324],"rgb":[0.6,0.866666666666666696,0.466666666666666674],"xyz":[0.423213143496144084,0.598159528430607268,0.267691580450344802],"hpluv":[118.139890255285593,165.232292085670224,81.7380487099571],"hsluv":[118.139890255285593,65.2389156719347,81.7380487099571]},"#99dd88":{"lch":[81.9801580086414248,63.5371271244577898,122.023063704989269],"luv":[81.9801580086414248,-33.6912346765093815,53.8689820694792942],"rgb":[0.6,0.866666666666666696,0.533333333333333326],"xyz":[0.434353560598087884,0.60261569527138481,0.326364443853917],"hpluv":[122.023063704989269,148.614644251947254,81.9801580086414248],"hsluv":[122.023063704989269,54.7350081565161943,81.9801580086414248]},"#99dd99":{"lch":[82.2624042681600827,54.8181455895933,127.715012949238044],"luv":[82.2624042681600827,-33.5341421039979721,43.3646215160552],"rgb":[0.6,0.866666666666666696,0.6],"xyz":[0.447410524707160584,0.607838480915014,0.395131121495034932],"hpluv":[127.715012949238044,130.58293025992694,82.2624042681600827],"hsluv":[127.715012949238044,43.0558433261763724,82.2624042681600827]},"#99ddaa":{"lch":[82.5858991321833855,46.1452119261310898,136.311935434488049],"luv":[82.5858991321833855,-33.3681126370237138,31.8739649675161907],"rgb":[0.6,0.866666666666666696,0.66666666666666663],"xyz":[0.46246821767241314,0.61386155810111509,0.474434971112033477],"hpluv":[136.311935434488049,112.281381223378744,82.5858991321833855],"hsluv":[136.311935434488049,44.8180878493830122,82.5858991321833855]},"#99ddbb":{"lch":[82.9515135213076,38.5190468703316,149.523212457301526],"luv":[82.9515135213076,-33.1970516149390349,19.536446347119437],"rgb":[0.6,0.866666666666666696,0.733333333333333282],"xyz":[0.479605809779749814,0.620716594944049849,0.564692956210675279],"hpluv":[149.523212457301526,96.0401150933983416,82.9515135213076],"hsluv":[149.523212457301526,46.6955526922259807,82.9515135213076]},"#99ddcc":{"lch":[83.3598915829196585,33.6584009809739158,168.866706644517421],"luv":[83.3598915829196585,-33.0249710093605202,6.49917274942921],"rgb":[0.6,0.866666666666666696,0.8],"xyz":[0.498898185223471513,0.628433545121538706,0.666299466880945435],"hpluv":[168.866706644517421,86.2854242091523,83.3598915829196585],"hsluv":[168.866706644517421,48.6618587245334879,83.3598915829196585]},"#99dddd":{"lch":[83.811463234187741,33.6120761253887,192.17705063006062],"luv":[83.811463234187741,-32.85581988586,-7.08990557672323529],"rgb":[0.6,0.866666666666666696,0.866666666666666696],"xyz":[0.520416510774105112,0.637040875341792212,0.779629314780951432],"hpluv":[192.17705063006062,88.9162454401141,83.811463234187741],"hsluv":[192.17705063006062,50.6906605199231777,83.811463234187741]},"#99ddee":{"lch":[84.3064561843391402,38.9043785470910208,212.822778279485817],"luv":[84.3064561843391402,-32.6933403312743565,-21.0878203738277712],"rgb":[0.6,0.866666666666666696,0.933333333333333348],"xyz":[0.544228691040279822,0.646565747448262229,0.905040130849474656],"hpluv":[212.822778279485817,106.615167592423816,84.3064561843391402],"hsluv":[212.822778279485817,60.6575363344623781,84.3064561843391402]},"#99ddff":{"lch":[84.8449079615810575,48.055447414973429,227.378328123916845],"luv":[84.8449079615810575,-32.5409551013358396,-35.3611689193969099],"rgb":[0.6,0.866666666666666696,1],"xyz":[0.570399739450111243,0.657034166812195,1.04287431914125639],"hpluv":[227.378328123916845,137.001856984753886,84.8449079615810575],"hsluv":[227.378328123916845,99.999999999994813,84.8449079615810575]},"#445500":{"lch":[33.4053570608210535,38.7644311760376397,101.469350612776353],"luv":[33.4053570608210535,-7.7080633936099785,37.9903525006263791],"rgb":[0.266666666666666663,0.333333333333333315,0],"xyz":[0.0563220008404254485,0.0772588357738427239,0.0119452840524730177],"hpluv":[101.469350612776353,147.25044771073371,33.4053570608210535],"hsluv":[101.469350612776353,100.000000000002245,33.4053570608210535]},"#445511":{"lch":[33.4914653280992525,35.8039831739898275,102.524785035338],"luv":[33.4914653280992525,-7.76452054412734,34.9519303021045076],"rgb":[0.266666666666666663,0.333333333333333315,0.0666666666666666657],"xyz":[0.0573336663400625668,0.0776635019736975768,0.0172733890172286492],"hpluv":[102.524785035338,135.655223597469387,33.4914653280992525],"hsluv":[102.524785035338,91.5452633494882093,33.4914653280992525]},"#445522":{"lch":[33.6502992474903806,30.5965852313305291,104.897478349629381],"luv":[33.6502992474903806,-7.86608410210478493,29.5681543001366229],"rgb":[0.266666666666666663,0.333333333333333315,0.133333333333333331],"xyz":[0.0592090244785395889,0.0784136452290883912,0.0271502752132078452],"hpluv":[104.897478349629381,115.378092601865731,33.6502992474903806],"hsluv":[104.897478349629381,76.6558497494370243,33.6502992474903806]},"#445533":{"lch":[33.9096245159150911,22.79863905315759,110.61032755328398],"luv":[33.9096245159150911,-8.02535730567797501,21.3394372651287],"rgb":[0.266666666666666663,0.333333333333333315,0.2],"xyz":[0.0622967752109973294,0.0796487455220715,0.0434124290708189919],"hpluv":[110.61032755328398,85.3149751467856419,33.9096245159150911],"hsluv":[110.61032755328398,54.1403397653178331,33.9096245159150911]},"#445544":{"lch":[34.2793424585633204,13.4702363502677187,127.715012949235046],"luv":[34.2793424585633204,-8.24020614134090401,10.6558092175245633],"rgb":[0.266666666666666663,0.333333333333333315,0.266666666666666663],"xyz":[0.0667547704552162,0.081431943619759084,0.0668912040237056305],"hpluv":[127.715012949235046,49.8634197051089814,34.2793424585633204],"hsluv":[127.715012949235046,25.3893680776039865,34.2793424585633204]},"#445555":{"lch":[34.7654846399243738,8.70030094248716424,192.177050630060222],"luv":[34.7654846399243738,-8.50454817645784544,-1.83518304377262664],"rgb":[0.266666666666666663,0.333333333333333315,0.333333333333333315],"xyz":[0.0727171844945782,0.0838169092355039169,0.098293251297679532],"hpluv":[192.177050630060222,31.7559649298661668,34.7654846399243738],"hsluv":[192.177050630060222,31.6316627668381969,34.7654846399243738]},"#445566":{"lch":[35.3707740335649916,17.7582093223154978,240.254504050727519],"luv":[35.3707740335649916,-8.81070452432763318,-15.4183489427423961],"rgb":[0.266666666666666663,0.333333333333333315,0.4],"xyz":[0.0803021802680863733,0.0868509075449072354,0.138240895704823508],"hpluv":[240.254504050727519,63.7079944588343352,35.3707740335649916],"hsluv":[240.254504050727519,38.2083413049732812,35.3707740335649916]},"#445577":{"lch":[36.0950574442792913,30.8488081821149329,252.743594747999822],"luv":[36.0950574442792913,-9.15124765847803623,-29.4602042177260124],"rgb":[0.266666666666666663,0.333333333333333315,0.466666666666666674],"xyz":[0.0896161932882882928,0.0905765127529880448,0.187294697611221417],"hpluv":[252.743594747999822,108.450105614435046,36.0950574442792913],"hsluv":[252.743594747999822,44.7362415879762878,36.0950574442792913]},"#445588":{"lch":[36.935739068143242,44.5159055243500319,257.651563208142],"luv":[36.935739068143242,-9.5200062368872409,-43.4860359874579245],"rgb":[0.266666666666666663,0.333333333333333315,0.533333333333333326],"xyz":[0.100756610390232121,0.0950326795937656427,0.245967561014793584],"hpluv":[257.651563208142,152.935302017774575,36.935739068143242],"hsluv":[257.651563208142,50.9359550606187952,36.935739068143242]},"#445599":{"lch":[37.8882410462664865,58.0440865604997711,260.167284745959819],"luv":[37.8882410462664865,-9.91231220062277885,-57.1914508600732674],"rgb":[0.266666666666666663,0.333333333333333315,0.6],"xyz":[0.113813574499304834,0.1002554652373948,0.314734238655911491],"hpluv":[260.167284745959819,194.398479571090235,37.8882410462664865],"hsluv":[260.167284745959819,56.6374271499956805,37.8882410462664865]},"#4455aa":{"lch":[38.9464770503006932,71.1678309986128141,261.658277796723496],"luv":[38.9464770503006932,-10.3247958657557941,-70.4149043837850144],"rgb":[0.266666666666666663,0.333333333333333315,0.66666666666666663],"xyz":[0.128871267464557376,0.106278542423495909,0.394038088272910092],"hpluv":[261.658277796723496,231.875507383352442,38.9464770503006932],"hsluv":[261.658277796723496,61.7617646139185652,38.9464770503006932]},"#4455bb":{"lch":[40.1033117689144,83.7900384834958,262.625350778636744],"luv":[40.1033117689144,-10.7550224317659584,-83.0969316013408417],"rgb":[0.266666666666666663,0.333333333333333315,0.733333333333333282],"xyz":[0.146008859571894023,0.113133579266430667,0.484296073371551838],"hpluv":[262.625350778636744,265.125486140416797,40.1033117689144],"hsluv":[262.625350778636744,66.2950009745661,40.1033117689144]},"#4455cc":{"lch":[41.3509797710146,95.8983760986006075,263.292411358069444],"luv":[41.3509797710146,-11.2011488171863753,-95.24196975873555],"rgb":[0.266666666666666663,0.333333333333333315,0.8],"xyz":[0.165301235015615777,0.120850529443919469,0.585902584041821939],"hpluv":[263.292411358069444,294.28272942652967,41.3509797710146],"hsluv":[263.292411358069444,71.9850161095278906,41.3509797710146]},"#4455dd":{"lch":[42.6814446156526657,107.523441304607104,263.773623462042394],"luv":[42.6814446156526657,-11.661670844638417,-106.88917561239117],"rgb":[0.266666666666666663,0.333333333333333315,0.866666666666666696],"xyz":[0.186819560566249321,0.129457859664173,0.699232431941827937],"hpluv":[263.773623462042394,319.67109728436958,42.6814446156526657],"hsluv":[263.773623462042394,81.2732363837730247,42.6814446156526657]},"#4455ee":{"lch":[44.0866885883675,118.714724855013472,264.132858108854521],"luv":[44.0866885883675,-12.1352655753704255,-118.092850024109339],"rgb":[0.266666666666666663,0.333333333333333315,0.933333333333333348],"xyz":[0.21063174083242403,0.13898273177064302,0.82464324801035116],"hpluv":[264.132858108854521,341.693279595385377,44.0866885883675],"hsluv":[264.132858108854521,90.5684283810677186,44.0866885883675]},"#4455ff":{"lch":[45.5589321196955765,129.526958246416882,264.408404412275218],"luv":[45.5589321196955765,-12.6207071057408875,-128.910630534181024],"rgb":[0.266666666666666663,0.333333333333333315,1],"xyz":[0.236802789242255451,0.149451151134575744,0.962477436302133],"hpluv":[264.408404412275218,360.766296003954039,45.5589321196955765],"hsluv":[264.408404412275218,99.9999999999992752,45.5589321196955765]},"#bbdd00":{"lch":[83.0607051195576673,95.2176030862527796,99.223939245402],"luv":[83.0607051195576673,-15.2627740644400269,93.9863802119702427],"rgb":[0.733333333333333282,0.866666666666666696,0],"xyz":[0.463483785628456102,0.622773719281865423,0.0957905185125420555],"hpluv":[99.223939245402,239.164338292747971,83.0607051195576673],"hsluv":[99.223939245402,100.00000000000216,83.0607051195576673]},"#bbdd11":{"lch":[83.082156377860457,94.2793845093074765,99.3314951275217481],"luv":[83.082156377860457,-15.2870500651298524,93.0317604034238457],"rgb":[0.733333333333333282,0.866666666666666696,0.0666666666666666657],"xyz":[0.464495451128093206,0.623178385481720332,0.101118623477297692],"hpluv":[99.3314951275217481,237.15213625798873,83.082156377860457],"hsluv":[99.3314951275217481,98.93507934353417,83.082156377860457]},"#bbdd22":{"lch":[83.1218967422411765,92.5513012339483794,99.5354402549794486],"luv":[83.1218967422411765,-15.3318301742674485,91.2725497814347],"rgb":[0.733333333333333282,0.866666666666666696,0.133333333333333331],"xyz":[0.466370809266570263,0.623928528737111132,0.110995509673276885],"hpluv":[99.5354402549794486,233.433860498438293,83.1218967422411765],"hsluv":[99.5354402549794486,96.9737920722735538,83.1218967422411765]},"#bbdd33":{"lch":[83.1872593514570298,89.7372330308786,99.8847694763800718],"luv":[83.1872593514570298,-15.4049421957575614,88.4050832700449263],"rgb":[0.733333333333333282,0.866666666666666696,0.2],"xyz":[0.469458559999027969,0.625163629030094259,0.127257663530888021],"hpluv":[99.8847694763800718,227.34486653748678,83.1872593514570298],"hsluv":[99.8847694763800718,93.7802848880547373,83.1872593514570298]},"#bbdd44":{"lch":[83.2814760883348697,85.7419087717973,100.421139587323779],"luv":[83.2814760883348697,-15.5091702542505097,84.3275788686944452],"rgb":[0.733333333333333282,0.866666666666666696,0.266666666666666663],"xyz":[0.473916555243246884,0.626946827127781825,0.15073643848377466],"hpluv":[100.421139587323779,218.62539011377612,83.2814760883348697],"hsluv":[100.421139587323779,89.2463889616074511,83.2814760883348697]},"#bbdd55":{"lch":[83.4072088624658,80.5207963453540572,101.204557559233223],"luv":[83.4072088624658,-15.6461875861262687,78.9860459708531835],"rgb":[0.733333333333333282,0.866666666666666696,0.333333333333333315],"xyz":[0.479878969282608869,0.629331792743526575,0.182138485757748575],"hpluv":[101.204557559233223,207.093501481883948,83.4072088624658],"hsluv":[101.204557559233223,83.3201121340644448,83.4072088624658]},"#bbdd66":{"lch":[83.5666996797624364,74.0772937371066149,102.328486133362119],"luv":[83.5666996797624364,-15.816696660053216,72.3690372616455164],"rgb":[0.733333333333333282,0.866666666666666696,0.4],"xyz":[0.487463965056117055,0.632365791052929893,0.222086130164892537],"hpluv":[102.328486133362119,192.635686460640301,83.5666996797624364],"hsluv":[102.328486133362119,75.9999631534792854,83.5666996797624364]},"#bbdd77":{"lch":[83.7618505003220122,66.4632811318093388,103.948126608074304],"luv":[83.7618505003220122,-16.0205304866066705,64.5035684418593149],"rgb":[0.733333333333333282,0.866666666666666696,0.466666666666666674],"xyz":[0.49677797807631896,0.636091396261010744,0.271139932071290446],"hpluv":[103.948126608074304,175.207590447676779,83.7618505003220122],"hsluv":[103.948126608074304,67.3303268013154,83.7618505003220122]},"#bbdd88":{"lch":[83.9942706402616,57.7845188457632091,106.339844930601203],"luv":[83.9942706402616,-16.2567564016803381,55.4505950331715454],"rgb":[0.733333333333333282,0.866666666666666696,0.533333333333333326],"xyz":[0.50791839517826276,0.640547563101788286,0.329812795474862641],"hpluv":[106.339844930601203,154.850612540446264,83.9942706402616],"hsluv":[106.339844930601203,57.39610210967858,83.9942706402616]},"#bbdd99":{"lch":[84.2653073070245711,48.2191913160874819,110.040291826115165],"luv":[84.2653073070245711,-16.5237946272095257,45.2996095159246153],"rgb":[0.733333333333333282,0.866666666666666696,0.6],"xyz":[0.520975359287335515,0.6457703487454175,0.39857947311598052],"hpluv":[110.040291826115165,131.749772406416298,84.2653073070245711],"hsluv":[110.040291826115165,46.3161497548768466,84.2653073070245711]},"#bbddaa":{"lch":[84.5760668100806328,38.0784660246866622,116.212889721452115],"luv":[84.5760668100806328,-16.8195514991441222,34.1624393473425059],"rgb":[0.733333333333333282,0.866666666666666696,0.66666666666666663],"xyz":[0.536033052252588,0.651793425931518566,0.477883322732979121],"hpluv":[116.212889721452115,106.421399158629868,84.5760668100806328],"hsluv":[116.212889721452115,34.2356923349747433,84.5760668100806328]},"#bbddbb":{"lch":[84.9274305013996553,28.0212505683590543,127.715012949233824],"luv":[84.9274305013996553,-17.1415612181778,22.1665821095230058],"rgb":[0.733333333333333282,0.866666666666666696,0.733333333333333282],"xyz":[0.55317064435992469,0.658648462774453325,0.568141307831620868],"hpluv":[127.715012949233824,80.3800713533813109,84.9274305013996553],"hsluv":[127.715012949233824,21.3181094477761164,84.9274305013996553]},"#bbddcc":{"lch":[85.3200677868051,19.876471170849122,151.617083508593169],"luv":[85.3200677868051,-17.4871274790593141,9.44851727715650291],"rgb":[0.733333333333333282,0.866666666666666696,0.8],"xyz":[0.572463019803646445,0.666365412951942182,0.669747818501891],"hpluv":[151.617083508593169,58.7374284962306703,85.3200677868051],"hsluv":[151.617083508593169,24.0698773292010699,85.3200677868051]},"#bbdddd":{"lch":[85.7544476215988,18.2643967282432129,192.177050630059739],"luv":[85.7544476215988,-17.8534562098583329,-3.85256916996079246],"rgb":[0.733333333333333282,0.866666666666666696,0.866666666666666696],"xyz":[0.593981345354279933,0.674972743172195688,0.783077666401897],"hpluv":[192.177050630059739,55.8245506661868234,85.7544476215988],"hsluv":[192.177050630059739,26.9205986284609722,85.7544476215988]},"#bbddee":{"lch":[86.2308493598319359,25.3453434934362818,223.980933900351914],"luv":[86.2308493598319359,-18.2377721186398958,-17.6002870700688909],"rgb":[0.733333333333333282,0.866666666666666696,0.933333333333333348],"xyz":[0.617793525620454753,0.684497615278665705,0.908488482470420244],"hpluv":[223.980933900351914,80.4705047412629142,86.2308493598319359],"hsluv":[223.980933900351914,55.5800524236117397,86.2308493598319359]},"#bbddff":{"lch":[86.7493734858622076,36.743147173338194,239.520163688183],"luv":[86.7493734858622076,-18.6374141011141354,-31.6655279416778761],"rgb":[0.733333333333333282,0.866666666666666696,1],"xyz":[0.643964574030286063,0.694966034642598429,1.0463226707622022],"hpluv":[239.520163688183,121.752323062157373,86.7493734858622076],"hsluv":[239.520163688183,99.9999999999938325,86.7493734858622076]},"#99ee00":{"lch":[85.9664003491010646,109.204546268980621,112.979852313128234],"luv":[85.9664003491010646,-42.6342645949387915,100.538313136150634],"rgb":[0.6,0.933333333333333348,0],"xyz":[0.437097727388796042,0.679199404132492912,0.108068425671767623],"hpluv":[112.979852313128234,339.428934639809256,85.9664003491010646],"hsluv":[112.979852313128234,100.000000000002444,85.9664003491010646]},"#99ee11":{"lch":[85.9866468155118326,108.350123359521945,113.156064955940181],"luv":[85.9866468155118326,-42.6072764400583495,99.6211284135251702],"rgb":[0.6,0.933333333333333348,0.0666666666666666657],"xyz":[0.438109392888433147,0.67960407033234782,0.11339653063652326],"hpluv":[113.156064955940181,337.317445797395,85.9866468155118326],"hsluv":[113.156064955940181,99.0182391276988,85.9866468155118326]},"#99ee22":{"lch":[86.0241571186350455,106.77763062148405,113.488368653358094],"luv":[86.0241571186350455,-42.5576013317541353,97.9301433166804287],"rgb":[0.6,0.933333333333333348,0.133333333333333331],"xyz":[0.439984751026910204,0.680354213587738621,0.123273416832502453],"hpluv":[113.488368653358094,333.419677856626379,86.0241571186350455],"hsluv":[113.488368653358094,97.2091916908085238,86.0241571186350455]},"#99ee33":{"lch":[86.0858572784747906,104.220652596579697,114.05202992935186],"luv":[86.0858572784747906,-42.476800751453851,95.1717701084636],"rgb":[0.6,0.933333333333333348,0.2],"xyz":[0.443072501759367909,0.681589313880721748,0.139535570690113603],"hpluv":[114.05202992935186,327.048640581280779,86.0858572784747906],"hsluv":[114.05202992935186,94.2610252844147709,86.0858572784747906]},"#99ee44":{"lch":[86.1748066309051239,100.599171066032113,114.904029942881266],"luv":[86.1748066309051239,-42.3622716989010186,91.2448966007484756],"rgb":[0.6,0.933333333333333348,0.266666666666666663],"xyz":[0.447530497003586825,0.683372511978409314,0.163014345643000241],"hpluv":[114.904029942881266,317.953677409096201,86.1748066309051239],"hsluv":[114.904029942881266,90.0700159696272777,86.1748066309051239]},"#99ee55":{"lch":[86.2935317577421586,95.884762204841536,116.119599614249481],"luv":[86.2935317577421586,-42.2129155656731854,86.0927254913233355],"rgb":[0.6,0.933333333333333348,0.333333333333333315],"xyz":[0.45349291104294881,0.685757477594154063,0.194416392916974157],"hpluv":[116.119599614249481,305.984138616458665,86.2935317577421586],"hsluv":[116.119599614249481,84.5822993375075924,86.2935317577421586]},"#99ee66":{"lch":[86.4441689863048879,90.1009507230509143,117.805124209421223],"luv":[86.4441689863048879,-42.0290075887870955,79.6978283411745565],"rgb":[0.6,0.933333333333333348,0.4],"xyz":[0.461077906816457,0.688791475903557382,0.234364037324118091],"hpluv":[117.805124209421223,291.090686380889622,86.4441689863048879],"hsluv":[117.805124209421223,77.7887546135139587,86.4441689863048879]},"#99ee77":{"lch":[86.6285404402691199,83.3280712532883712,120.117619079442107],"luv":[86.6285404402691199,-41.8120893585486826,72.0785449510868261],"rgb":[0.6,0.933333333333333348,0.466666666666666674],"xyz":[0.470391919836658901,0.692517081111638233,0.283417839230516],"hpluv":[120.117619079442107,273.344218704658658,86.6285404402691199],"hsluv":[120.117619079442107,69.7211272565473,86.6285404402691199]},"#99ee88":{"lch":[86.8481992617441563,75.7142340291470646,123.296374810060541],"luv":[86.8481992617441563,-41.5648380664255939,63.2851441582641],"rgb":[0.6,0.933333333333333348,0.533333333333333326],"xyz":[0.481532336938602701,0.696973247952415775,0.342090702634088195],"hpluv":[123.296374810060541,252.981665625798911,86.8481992617441563],"hsluv":[123.296374810060541,60.4476982156994964,86.8481992617441563]},"#99ee99":{"lch":[87.1044587056640864,67.4980907628946483,127.715012949238613],"luv":[87.1044587056640864,-41.2908999939099388,53.3952604107227131],"rgb":[0.6,0.933333333333333348,0.6],"xyz":[0.4945893010476754,0.702196033596045,0.410857380275206074],"hpluv":[127.715012949238613,230.504268403717248,87.1044587056640864],"hsluv":[127.715012949238613,50.0680020008431583,87.1044587056640864]},"#99eeaa":{"lch":[87.3984122167822477,59.0554460818204134,133.961345837807],"luv":[87.3984122167822477,-40.9946911699179566,42.5085992218733182],"rgb":[0.6,0.933333333333333348,0.66666666666666663],"xyz":[0.509646994012928,0.708219110782146,0.490161229892204675],"hpluv":[133.961345837807,206.883546406693341,87.3984122167822477],"hsluv":[133.961345837807,51.4281429353489514,87.3984122167822477]},"#99eebb":{"lch":[87.7309483141988409,50.9899623050450046,142.923108379062683],"luv":[87.7309483141988409,-40.6811762109167603,30.7411476358032338],"rgb":[0.6,0.933333333333333348,0.733333333333333282],"xyz":[0.526784586120264575,0.715074147625080814,0.580419214990846477],"hpluv":[142.923108379062683,183.977628608542716,87.7309483141988409],"hsluv":[142.923108379062683,52.8887094272277523,87.7309483141988409]},"#99eecc":{"lch":[88.1027624984453581,44.2777406304916781,155.702396707036257],"luv":[88.1027624984453581,-40.3556400464907483,18.219237958245273],"rgb":[0.6,0.933333333333333348,0.8],"xyz":[0.546076961563986329,0.722791097802569671,0.682025725661116633],"hpluv":[155.702396707036257,165.259943503195302,88.1027624984453581],"hsluv":[155.702396707036257,54.4312604691531305,88.1027624984453581]},"#99eedd":{"lch":[88.514367527899708,40.3437945821223494,172.775068456479858],"luv":[88.514367527899708,-40.023467685182176,5.07383442158517628],"rgb":[0.6,0.933333333333333348,0.866666666666666696],"xyz":[0.567595287114619929,0.731398428022823177,0.795355573561122631],"hpluv":[172.775068456479858,156.503534311163719,88.514367527899708],"hsluv":[172.775068456479858,56.0368199873083199,88.514367527899708]},"#99eeee":{"lch":[88.9661029048661476,40.6035054290346196,192.177050630060762],"luv":[88.9661029048661476,-39.6899452486728,-8.56463071492281891],"rgb":[0.6,0.933333333333333348,0.933333333333333348],"xyz":[0.591407467380794638,0.740923300129293194,0.920766389629645854],"hpluv":[192.177050630060762,164.568757380081195,88.9661029048661476],"hsluv":[192.177050630060762,57.6866071933722324,88.9661029048661476]},"#99eeff":{"lch":[89.4581440962481338,45.3723498615675496,209.831659516829347],"luv":[89.4581440962481338,-39.3600920674606272,-22.5706287994267498],"rgb":[0.6,0.933333333333333348,1],"xyz":[0.617578515790626059,0.751391719493225918,1.05860057792142759],"hpluv":[209.831659516829347,193.255751503994162,89.4581440962481338],"hsluv":[209.831659516829347,99.9999999999917293,89.4581440962481338]},"#446600":{"lch":[39.1245088935371612,48.4489514943966242,110.29724752770484],"luv":[39.1245088935371612,-16.806485623906017,45.4405429311736668],"rgb":[0.266666666666666663,0.4,0],"xyz":[0.0713500585462719106,0.107314951185536064,0.0169546366210883669],"hpluv":[110.29724752770484,157.13568029472475,39.1245088935371612],"hsluv":[110.29724752770484,100.000000000002302,39.1245088935371612]},"#446611":{"lch":[39.1937103273453289,46.0071342898824156,111.370502443062165],"luv":[39.1937103273453289,-16.7648801632844737,42.843846683952],"rgb":[0.266666666666666663,0.4,0.0666666666666666657],"xyz":[0.0723617240459090288,0.107719617385390917,0.022282741585844],"hpluv":[111.370502443062165,148.9526145018813,39.1937103273453289],"hsluv":[111.370502443062165,93.861989786091,39.1937103273453289]},"#446622":{"lch":[39.3215343087732165,41.6757739733598,113.610346420587263],"luv":[39.3215343087732165,-16.6917518579939177,38.1871124358693947],"rgb":[0.266666666666666663,0.4,0.133333333333333331],"xyz":[0.0742370821843860579,0.108469760640781732,0.0321596277818231926],"hpluv":[113.610346420587263,134.490790122462073,39.3215343087732165],"hsluv":[113.610346420587263,82.9003633409612,39.3215343087732165]},"#446633":{"lch":[39.530716823468623,35.0960892868442684,118.194686061271412],"luv":[39.530716823468623,-16.5818151114938139,30.931842668007679],"rgb":[0.266666666666666663,0.4,0.2],"xyz":[0.0773248329168437915,0.109704860933764844,0.0484217816394343359],"hpluv":[118.194686061271412,112.658344014206364,39.530716823468623],"hsluv":[118.194686061271412,65.945418212904,39.530716823468623]},"#446644":{"lch":[39.8299759493166761,26.8801274380109838,127.715012949238059],"luv":[39.8299759493166761,-16.4434970133495142,21.2638815143349724],"rgb":[0.266666666666666663,0.4,0.266666666666666663],"xyz":[0.0817828281610626651,0.111488059031452424,0.0719005565923209744],"hpluv":[127.715012949238059,85.6368345314009,39.8299759493166761],"hsluv":[127.715012949238059,43.6044123282566858,39.8299759493166761]},"#446655":{"lch":[40.2252775564066809,18.9132283301115756,149.466153210293243],"luv":[40.2252775564066809,-16.2905155992652197,9.6088140463343148],"rgb":[0.266666666666666663,0.4,0.333333333333333315],"xyz":[0.087745242200424664,0.113873024647197257,0.10330260386629489],"hpluv":[149.466153210293243,59.6631175613842473,40.2252775564066809],"hsluv":[149.466153210293243,47.2452022491104273,40.2252775564066809]},"#446666":{"lch":[40.7202569602655728,16.510473073285187,192.177050630060847],"luv":[40.7202569602655728,-16.1389950297194247,-3.48260829470770128],"rgb":[0.266666666666666663,0.4,0.4],"xyz":[0.0953302379739328354,0.116907022956600576,0.143250248273438852],"hpluv":[192.177050630060847,51.4503500463259655,40.7202569602655728],"hsluv":[192.177050630060847,51.2489582821824214,40.7202569602655728]},"#446677":{"lch":[41.3164898648363632,23.6752994583974647,227.46784435344162],"luv":[41.3164898648363632,-16.0045942322577233,-17.4462823519963166],"rgb":[0.266666666666666663,0.4,0.466666666666666674],"xyz":[0.104644250994134755,0.120632628164681385,0.192304050179836761],"hpluv":[227.46784435344162,72.7128872034151783,41.3164898648363632],"hsluv":[227.46784435344162,55.4049423234493261,41.3164898648363632]},"#446688":{"lch":[42.0137303768536654,35.5424939627414,243.425378218088099],"luv":[42.0137303768536654,-15.9003964812462133,-31.7875175002811758],"rgb":[0.266666666666666663,0.4,0.533333333333333326],"xyz":[0.115784668096078583,0.125088795005458969,0.2509769135834089],"hpluv":[243.425378218088099,107.348500116853913,42.0137303768536654],"hsluv":[243.425378218088099,59.5313600522085409,42.0137303768536654]},"#446699":{"lch":[42.8101553746289696,48.7666560663799089,251.050944767945737],"luv":[42.8101553746289696,-15.8358652521886238,-46.1238779333558782],"rgb":[0.266666666666666663,0.4,0.6],"xyz":[0.128841632205151296,0.130311580649088155,0.319743591224526835],"hpluv":[251.050944767945737,144.549135771893674,42.8101553746289696],"hsluv":[251.050944767945737,63.4907652576423231,42.8101553746289696]},"#4466aa":{"lch":[43.7026231888915078,62.2363741998113298,255.27738032783347],"luv":[43.7026231888915078,-15.8167390859625119,-60.1929982491778404],"rgb":[0.266666666666666663,0.4,0.66666666666666663],"xyz":[0.143899325170403825,0.136334657835189249,0.399047440841525436],"hpluv":[255.27738032783347,180.707469421570693,43.7026231888915078],"hsluv":[255.27738032783347,67.1924648453768896,43.7026231888915078]},"#4466bb":{"lch":[44.6869405362706402,75.5191451090451409,257.888120209084718],"luv":[44.6869405362706402,-15.8455247037125186,-73.83807029483539],"rgb":[0.266666666666666663,0.4,0.733333333333333282],"xyz":[0.161036917277740499,0.143189694678124,0.489305425940167182],"hpluv":[257.888120209084718,214.444923406304468,44.6869405362706402],"hsluv":[257.888120209084718,70.5866413561882098,44.6869405362706402]},"#4466cc":{"lch":[45.7581261645645299,88.428992560325014,259.626929599743789],"luv":[45.7581261645645299,-15.9222446749778896,-86.983727499712],"rgb":[0.266666666666666663,0.4,0.8],"xyz":[0.180329292721462225,0.150906644855612809,0.590911936610437283],"hpluv":[259.626929599743789,245.225581131482073,45.7581261645645299],"hsluv":[259.626929599743789,73.6549291646736179,45.7581261645645299]},"#4466dd":{"lch":[46.9106590907269165,100.895184366494064,260.849495088158733],"luv":[46.9106590907269165,-16.0451985527389489,-99.6111933055317422],"rgb":[0.266666666666666663,0.4,0.866666666666666696],"xyz":[0.201847618272095769,0.159513975075866343,0.704241784510443281],"hpluv":[260.849495088158733,272.92180192815988,46.9106590907269165],"hsluv":[260.849495088158733,78.541907894368677,46.9106590907269165]},"#4466ee":{"lch":[48.1387014995781897,112.90717489320852,261.744736192665698],"luv":[48.1387014995781897,-16.2116120228509466,-111.737253313235385],"rgb":[0.266666666666666663,0.4,0.933333333333333348],"xyz":[0.225659798538270506,0.16903884718233636,0.829652600578966504],"hpluv":[261.744736192665698,297.623004098842955,48.1387014995781897],"hsluv":[261.744736192665698,89.2025828989012126,48.1387014995781897]},"#4466ff":{"lch":[49.4362898036433194,124.485902067172418,262.421323096893047],"luv":[49.4362898036433194,-16.4181334215125325,-123.398479360286501],"rgb":[0.266666666666666663,0.4,1],"xyz":[0.251830846948101872,0.179507266546269084,0.967486788870748349],"hpluv":[262.421323096893047,319.531462910383539,49.4362898036433194],"hsluv":[262.421323096893047,99.9999999999992,49.4362898036433194]},"#bbee00":{"lch":[87.830324097455545,103.474670767003104,103.901308289378321],"luv":[87.830324097455545,-24.8598111448325625,100.444000717728017],"rgb":[0.733333333333333282,0.933333333333333348,0],"xyz":[0.510662561968970863,0.717131271962896388,0.111516777292713254],"hpluv":[103.901308289378321,376.707439149390723,87.830324097455545],"hsluv":[103.901308289378321,100.000000000002331,87.830324097455545]},"#bbee11":{"lch":[87.8498503793181413,102.621932764236291,104.023160127863235],"luv":[87.8498503793181413,-24.8667401733108697,99.5635792718425705],"rgb":[0.733333333333333282,0.933333333333333348,0.0666666666666666657],"xyz":[0.511674227468608,0.717535938162751297,0.116844882257468891],"hpluv":[104.023160127863235,374.263941750279344,87.8498503793181413],"hsluv":[104.023160127863235,99.0733759990956315,87.8498503793181413]},"#bbee22":{"lch":[87.8860274909110757,101.050540606732312,104.253301125000391],"luv":[87.8860274909110757,-24.8795662288424886,97.9398741125263],"rgb":[0.733333333333333282,0.933333333333333348,0.133333333333333331],"xyz":[0.513549585607085,0.718286081418142097,0.126721768453448069],"hpluv":[104.253301125000391,369.744422226518111,87.8860274909110757],"hsluv":[104.253301125000391,97.3653524759520224,87.8860274909110757]},"#bbee33":{"lch":[87.9455377581158899,98.4895893313188111,104.644745385959411],"luv":[87.9455377581158899,-24.9006321902472507,95.2898615970127878],"rgb":[0.733333333333333282,0.933333333333333348,0.2],"xyz":[0.516637336339542785,0.719521181711125224,0.142983922311059219],"hpluv":[104.644745385959411,362.331462484484575,87.9455377581158899],"hsluv":[104.644745385959411,94.5802259429375454,87.9455377581158899]},"#bbee44":{"lch":[88.03133674845418,94.8494424101932339,105.239087045756335],"luv":[88.03133674845418,-24.9309340294718567,91.5142898892991781],"rgb":[0.733333333333333282,0.933333333333333348,0.266666666666666663],"xyz":[0.521095331583761645,0.72130437980881279,0.166462697263945858],"hpluv":[105.239087045756335,351.690778632920285,88.03133674845418],"hsluv":[105.239087045756335,90.61757843521751,88.03133674845418]},"#bbee55":{"lch":[88.145869167101,90.085489786575252,106.092871571181419],"luv":[88.145869167101,-24.9712578135623886,86.5553681367929499],"rgb":[0.733333333333333282,0.933333333333333348,0.333333333333333315],"xyz":[0.527057745623123575,0.72368934542455754,0.197864744537919773],"hpluv":[106.092871571181419,337.573290416608245,88.145869167101],"hsluv":[106.092871571181419,85.422816781051381,88.145869167101]},"#bbee66":{"lch":[88.2912067804751786,84.1961694748550116,107.288882190620882],"luv":[88.2912067804751786,-25.0222263001917433,80.3920589686599527],"rgb":[0.733333333333333282,0.933333333333333348,0.4],"xyz":[0.534642741396631815,0.726723343733960858,0.237812388945063735],"hpluv":[107.288882190620882,319.804166688067426,88.2912067804751786],"hsluv":[107.288882190620882,78.9823949944632631,88.2912067804751786]},"#bbee77":{"lch":[88.4691221578712828,77.2243366572971439,108.954917992899311],"luv":[88.4691221578712828,-25.0843250262429365,73.0368044901840534],"rgb":[0.733333333333333282,0.933333333333333348,0.466666666666666674],"xyz":[0.543956754416833665,0.730448948942041709,0.286866190851461644],"hpluv":[108.954917992899311,298.285685525501094,88.4691221578712828],"hsluv":[108.954917992899311,71.3203705839542,88.4691221578712828]},"#bbee88":{"lch":[88.6811325759484106,69.2626802552854599,111.298371855766348],"luv":[88.6811325759484106,-25.1579200624522237,64.5321465184381822],"rgb":[0.733333333333333282,0.933333333333333348,0.533333333333333326],"xyz":[0.555097171518777577,0.734905115782819252,0.34553905425503384],"hpluv":[111.298371855766348,273.019747479454225,88.6811325759484106],"hsluv":[111.298371855766348,62.4946759175697224,88.6811325759484106]},"#bbee99":{"lch":[88.9285282571087095,60.4678989000773228,114.674688063820184],"luv":[88.9285282571087095,-25.2432722518949362,54.9467378777547069],"rgb":[0.733333333333333282,0.933333333333333348,0.6],"xyz":[0.568154135627850221,0.740127901426448465,0.414305731896151719],"hpluv":[114.674688063820184,244.173567048365754,88.9285282571087095],"hsluv":[114.674688063820184,52.5925914284503548,88.9285282571087095]},"#bbeeaa":{"lch":[89.2123917942545148,51.0969811847688931,119.731125412935242],"luv":[89.2123917942545148,-25.3405499711494109,44.3706886734509212],"rgb":[0.733333333333333282,0.933333333333333348,0.66666666666666663],"xyz":[0.583211828593102832,0.746150978612549531,0.493609581513150319],"hpluv":[119.731125412935242,212.254877789093854,89.2123917942545148],"hsluv":[119.731125412935242,41.7253920748903084,89.2123917942545148]},"#bbeebb":{"lch":[89.5336124490095,41.6027669810227181,127.715012949236097],"luv":[89.5336124490095,-25.4498411950279184,32.9104208971130276],"rgb":[0.733333333333333282,0.933333333333333348,0.733333333333333282],"xyz":[0.600349420700439396,0.75300601545548429,0.583867566611792066],"hpluv":[127.715012949236097,178.587287563939924,89.5336124490095],"hsluv":[127.715012949236097,37.7465419844818,89.5336124490095]},"#bbeecc":{"lch":[89.8928974614309766,32.8889663829363883,141.03222670888556],"luv":[89.8928974614309766,-25.571165029146556,20.6833176446640721],"rgb":[0.733333333333333282,0.933333333333333348,0.8],"xyz":[0.61964179614416115,0.760722965632973147,0.685474077282062222],"hpluv":[141.03222670888556,146.627829178506289,89.8928974614309766],"hsluv":[141.03222670888556,37.1073685119788,89.8928974614309766]},"#bbeedd":{"lch":[90.290781675649967,26.8655052232995288,163.094148385079734],"luv":[90.290781675649967,-25.704482585445124,7.81248653872008436],"rgb":[0.733333333333333282,0.933333333333333348,0.866666666666666696],"xyz":[0.641160121694794749,0.769330295853226653,0.79880392518206822],"hpluv":[163.094148385079734,125.084011642469022,90.290781675649967],"hsluv":[163.094148385079734,36.2429238875219255,90.290781675649967]},"#bbeeee":{"lch":[90.7276363011350782,26.4447005646089579,192.177050630060336],"luv":[90.7276363011350782,-25.8497069757021904,-5.5780675168164624],"rgb":[0.733333333333333282,0.933333333333333348,0.933333333333333348],"xyz":[0.664972301960969459,0.77885516795969667,0.924214741250591443],"hpluv":[192.177050630060336,129.38009793870765,90.7276363011350782],"hsluv":[192.177050630060336,36.8413123479339077,90.7276363011350782]},"#bbeeff":{"lch":[91.2036773284388289,32.4261328799939648,216.675663960190036],"luv":[91.2036773284388289,-26.0067122100428421,-19.367627980086624],"rgb":[0.733333333333333282,0.933333333333333348,1],"xyz":[0.69114335037080088,0.789323587323629394,1.06204892954237318],"hpluv":[216.675663960190036,167.86892764061264,91.2036773284388289],"hsluv":[216.675663960190036,99.9999999999901235,91.2036773284388289]},"#99ff00":{"lch":[90.9122626200542214,118.290950299530564,115.261698016578393],"luv":[90.9122626200542214,-50.4810643573161286,106.978554225220847],"rgb":[0.6,1,0],"xyz":[0.48895009981846993,0.782904148991842,0.125352549814991721],"hpluv":[115.261698016578393,591.369219456757151,90.9122626200542214],"hsluv":[115.261698016578393,100.000000000002402,90.9122626200542214]},"#99ff11":{"lch":[90.9306796583728,117.513960007406183,115.422432906031332],"luv":[90.9306796583728,-50.4474247175277384,106.134764031356056],"rgb":[0.6,1,0.0666666666666666657],"xyz":[0.489961765318107034,0.783308815191696928,0.130680654779747357],"hpluv":[115.422432906031332,588.764777700997797,90.9306796583728],"hsluv":[115.422432906031332,99.9999999999905356,90.9306796583728]},"#99ff22":{"lch":[90.9648031673089577,116.082935310332914,115.724658723180369],"luv":[90.9648031673089577,-50.3854319755480944,104.577990585497247],"rgb":[0.6,1,0.133333333333333331],"xyz":[0.491837123456584091,0.784058958447087728,0.140557540975726536],"hpluv":[115.724658723180369,583.951350293788323,90.9648031673089577],"hsluv":[115.724658723180369,99.9999999999904219,90.9648031673089577]},"#99ff33":{"lch":[91.0209396556716399,113.753057852482627,116.234667099004312],"luv":[91.0209396556716399,-50.2843870930134642,102.035477092383132],"rgb":[0.6,1,0.2],"xyz":[0.494924874189041797,0.785294058740070855,0.156819694833337686],"hpluv":[116.234667099004312,576.067585056329449,91.0209396556716399],"hsluv":[116.234667099004312,99.9999999999905924,91.0209396556716399]},"#99ff44":{"lch":[91.1018839706868562,110.446777199697451,116.999375135233294],"luv":[91.1018839706868562,-50.1407143313292565,98.409345898362929],"rgb":[0.6,1,0.266666666666666663],"xyz":[0.499382869433260712,0.787077256837758421,0.180298469786224325],"hpluv":[116.999375135233294,564.777897061868,91.1018839706868562],"hsluv":[116.999375135233294,99.9999999999903793,91.1018839706868562]},"#99ff55":{"lch":[91.2099533036034558,106.130684884370282,118.07780645420398],"luv":[91.2099533036034558,-49.9525457622324112,93.6400846106921279],"rgb":[0.6,1,0.333333333333333315],"xyz":[0.505345283472622642,0.789462222453503171,0.21170051706019824],"hpluv":[118.07780645420398,549.854625367801646,91.2099533036034558],"hsluv":[118.07780645420398,99.9999999999901377,91.2099533036034558]},"#99ff66":{"lch":[91.3471179899501351,100.815112661229691,119.549522622156928],"luv":[91.3471179899501351,-49.7195590247369807,87.7020660605103899],"rgb":[0.6,1,0.4],"xyz":[0.512930279246130882,0.792496220762906489,0.251648161467342202],"hpluv":[119.549522622156928,531.176396965461777,91.3471179899501351],"hsluv":[119.549522622156928,99.9999999999902656,91.3471179899501351]},"#99ff77":{"lch":[91.5150716426202,94.5571579863012488,121.52621580287979],"luv":[91.5150716426202,-49.442863485124569,80.6006164792656534],"rgb":[0.6,1,0.466666666666666674],"xyz":[0.522244292266332732,0.79622182597098734,0.300701963373740111],"hpluv":[121.52621580287979,508.746904082031563,91.5150716426202],"hsluv":[121.52621580287979,99.9999999999900098,91.5150716426202]},"#99ff88":{"lch":[91.7152730008064481,87.4673964918121385,124.169042550433474],"luv":[91.7152730008064481,-49.1248751175299461,72.3691377159004077],"rgb":[0.6,1,0.533333333333333326],"xyz":[0.533384709368276644,0.800677992811764883,0.359374826777312251],"hpluv":[124.169042550433474,482.74240688111388,91.7152730008064481],"hsluv":[124.169042550433474,99.999999999989754,91.7152730008064481]},"#99ff99":{"lch":[91.9489728509177,79.7227767672504,127.715012949239039],"luv":[91.9489728509177,-48.7691602166467675,63.0657604984184559],"rgb":[0.6,1,0.6],"xyz":[0.546441673477349288,0.805900778455394096,0.428141504418430185],"hpluv":[127.715012949239039,453.611771943482722,91.9489728509177],"hsluv":[127.715012949239039,99.9999999999896119,91.9489728509177]},"#99ffaa":{"lch":[92.2172324754492365,71.5909188251234525,132.515331265000469],"luv":[92.2172324754492365,-48.380245540777544,52.769418223432119],"rgb":[0.6,1,0.66666666666666663],"xyz":[0.561499366442601899,0.811923855641495162,0.507445354035428786],"hpluv":[132.515331265000469,422.278899597361089,92.2172324754492365],"hsluv":[132.515331265000469,99.999999999989285,92.2172324754492365]},"#99ffbb":{"lch":[92.5209371039878334,63.4744472180726902,139.080731133451],"luv":[92.5209371039878334,-47.9634018094000325,41.5754439123617558],"rgb":[0.6,1,0.733333333333333282],"xyz":[0.578636958549938463,0.818778892484429921,0.597703339134070477],"hpluv":[139.080731133451,390.542311531215887,92.5209371039878334],"hsluv":[139.080731133451,99.9999999999889866,92.5209371039878334]},"#99ffcc":{"lch":[92.8608063839845,55.9838497302527216,148.091690615728766],"luv":[92.8608063839845,-47.524412431304512,29.5909049148346774],"rgb":[0.6,1,0.8],"xyz":[0.597929333993660217,0.826495842661918778,0.699309849804340633],"hpluv":[148.091690615728766,361.818313682118117,92.8608063839845],"hsluv":[148.091690615728766,99.999999999988475,92.8608063839845]},"#99ffdd":{"lch":[93.237403107538583,50.0214511206169306,160.217319691395858],"luv":[93.237403107538583,-47.0693412211659066,16.9299347080170577],"rgb":[0.6,1,0.866666666666666696],"xyz":[0.619447659544293816,0.835103172882172284,0.812639697704346631],"hpluv":[160.217319691395858,342.295010089686684,93.237403107538583],"hsluv":[160.217319691395858,99.999999999988,93.237403107538583]},"#99ffee":{"lch":[93.6511409780710267,46.7516947594382444,175.449324589633676],"luv":[93.6511409780710267,-46.6043124006013088,3.70931645277729727],"rgb":[0.6,1,0.933333333333333348],"xyz":[0.643259839810468526,0.844628044988642301,0.938050513772869854],"hpluv":[175.449324589633676,341.869484566500148,93.6511409780710267],"hsluv":[175.449324589633676,99.9999999999875,93.6511409780710267]},"#99ffff":{"lch":[94.102291921527609,47.1972299789563579,192.177050630060847],"luv":[94.102291921527609,-46.1353140316371437,-9.95546668362271703],"rgb":[0.6,1,1],"xyz":[0.6694308882203,0.855096464352575,1.07588470206465181],"hpluv":[192.177050630060847,372.830957625984183,94.102291921527609],"hsluv":[192.177050630060847,99.999999999986585,94.102291921527609]},"#447700":{"lch":[44.83248944102629,58.4741115144389809,115.479055163134589],"luv":[44.83248944102629,-25.1544589141716,52.7870714677211339],"rgb":[0.266666666666666663,0.466666666666666674,0],"xyz":[0.0898037965996895393,0.144222427292371835,0.0231058826388940708],"hpluv":[115.479055163134589,165.50461307776385,44.83248944102629],"hsluv":[115.479055163134589,100.00000000000216,44.83248944102629]},"#447711":{"lch":[44.8893318820142468,56.4264635629906337,116.3750363045054],"luv":[44.8893318820142468,-25.0671673404006405,50.5527735317644158],"rgb":[0.266666666666666663,0.466666666666666674,0.0666666666666666657],"xyz":[0.0908154620993266576,0.144627093492226688,0.0284339876036497],"hpluv":[116.3750363045054,159.506732057184706,44.8893318820142468],"hsluv":[116.3750363045054,95.4073228169634433,44.8893318820142468]},"#447722":{"lch":[44.9944227930058389,52.7636609180533824,118.171656995978211],"luv":[44.9944227930058389,-24.9105023189221484,46.5131248971114388],"rgb":[0.266666666666666663,0.466666666666666674,0.133333333333333331],"xyz":[0.0926908202378036866,0.145377236747617516,0.0383108737996289],"hpluv":[118.171656995978211,148.804327803607492,44.9944227930058389],"hsluv":[118.171656995978211,87.128369469673089,44.9944227930058389]},"#447733":{"lch":[45.1666686690004795,47.1090234718488,121.574089601592789],"luv":[45.1666686690004795,-24.6663168629185812,40.1351828809748881],"rgb":[0.266666666666666663,0.466666666666666674,0.2],"xyz":[0.0957785709702614202,0.146612337040600615,0.0545730276572400433],"hpluv":[121.574089601592789,132.350433634303585,45.1666686690004795],"hsluv":[121.574089601592789,74.1245535442141232,45.1666686690004795]},"#447744":{"lch":[45.4136534494367368,39.7908238780444137,127.715012949239082],"luv":[45.4136534494367368,-24.3414133770851677,31.4770592606648769],"rgb":[0.266666666666666663,0.466666666666666674,0.266666666666666663],"xyz":[0.100236566214480294,0.148395535138288209,0.0780518026101266749],"hpluv":[127.715012949239082,111.18234158710581,45.4136534494367368],"hsluv":[127.715012949239082,56.6116285441109,45.4136534494367368]},"#447755":{"lch":[45.7409133262359902,31.7219583115713704,139.030718806592802],"luv":[45.7409133262359902,-23.9520203549447466,20.798638417872084],"rgb":[0.266666666666666663,0.466666666666666674,0.333333333333333315],"xyz":[0.106198980253842293,0.150780500754033042,0.10945384988410059],"hpluv":[139.030718806592802,88.0023935360314766,45.7409133262359902],"hsluv":[139.030718806592802,58.7992252631310066,45.7409133262359902]},"#447766":{"lch":[46.1522822994750328,25.0075472636366349,160.141849635166039],"luv":[46.1522822994750328,-23.5205108300662609,8.49488024846472],"rgb":[0.266666666666666663,0.466666666666666674,0.4],"xyz":[0.113783976027350464,0.153814499063436333,0.149401494291244552],"hpluv":[160.141849635166039,68.7570511480334,46.1522822994750328],"hsluv":[160.141849635166039,61.2825519214888672,46.1522822994750328]},"#447777":{"lch":[46.650089933282672,23.6026970305602966,192.177050630060933],"luv":[46.650089933282672,-23.0716472128555,-4.97859438013953248],"rgb":[0.266666666666666663,0.466666666666666674,0.466666666666666674],"xyz":[0.123097989047552384,0.157540104271517156,0.198455296197642461],"hpluv":[192.177050630060933,64.2019875277067,46.650089933282672],"hsluv":[192.177050630060933,63.9506821134950414,46.650089933282672]},"#447788":{"lch":[47.2353114433284134,29.6592888392359697,220.273189901853613],"luv":[47.2353114433284134,-22.6291741496980734,-19.1727382434503575],"rgb":[0.266666666666666663,0.466666666666666674,0.533333333333333326],"xyz":[0.134238406149496226,0.161996271112294754,0.257128159601214601],"hpluv":[220.273189901853613,79.6770556088496,47.2353114433284134],"hsluv":[220.273189901853613,66.6958169909158585,47.2353114433284134]},"#447799":{"lch":[47.9077085122244526,40.3569508451274856,236.603980798736757],"luv":[47.9077085122244526,-22.2133832668581981,-33.6934576046404],"rgb":[0.266666666666666663,0.466666666666666674,0.6],"xyz":[0.147295370258568925,0.167219056755923912,0.325894837242332536],"hpluv":[236.603980798736757,106.893740352524901,47.9077085122244526],"hsluv":[236.603980798736757,69.4246608010291197,47.9077085122244526]},"#4477aa":{"lch":[48.6659751090485,52.9419227285019574,245.636459716194196],"luv":[48.6659751090485,-21.8398581964299439,-48.2272513849846476],"rgb":[0.266666666666666663,0.466666666666666674,0.66666666666666663],"xyz":[0.162353063223821481,0.173242133942025,0.405198686859331136],"hpluv":[245.636459716194196,138.042751347741245,48.6659751090485],"hsluv":[245.636459716194196,72.0643617009564,48.6659751090485]},"#4477bb":{"lch":[49.5078912458612,66.145388752002,251.014275727268966],"luv":[49.5078912458612,-21.5192486824625604,-62.5470573991759125],"rgb":[0.266666666666666663,0.466666666666666674,0.733333333333333282],"xyz":[0.1794906553311581,0.180097170784959765,0.495456671957972883],"hpluv":[251.014275727268966,169.536991245322184,49.5078912458612],"hsluv":[251.014275727268966,74.5637193650047578,49.5078912458612]},"#4477cc":{"lch":[50.4304819457797606,79.4031370336833,254.471410742848605],"luv":[50.4304819457797606,-21.2577420931439356,-76.5046833330565761],"rgb":[0.266666666666666663,0.466666666666666674,0.8],"xyz":[0.198783030774879854,0.187814120962448566,0.597063182628243094],"hpluv":[254.471410742848605,199.794656417231295,50.4304819457797606],"hsluv":[254.471410742848605,76.8911855438839638,50.4304819457797606]},"#4477dd":{"lch":[51.4301761714764183,92.4467030892661654,256.833353640671476],"luv":[51.4301761714764183,-21.0578873175855144,-90.0164334652001514],"rgb":[0.266666666666666663,0.466666666666666674,0.866666666666666696],"xyz":[0.220301356325513398,0.1964214511827021,0.710393030528249092],"hpluv":[256.833353640671476,228.093412194404408,51.4301761714764183],"hsluv":[256.833353640671476,79.0312420746427904,51.4301761714764183]},"#4477ee":{"lch":[52.5029598761355913,105.148975578657073,258.524369979875587],"luv":[52.5029598761355913,-20.9195063280493,-103.046985983248078],"rgb":[0.266666666666666663,0.466666666666666674,0.933333333333333348],"xyz":[0.244113536591688135,0.205946323289172145,0.835803846596772315],"hpluv":[258.524369979875587,254.132720010738154,52.5029598761355913],"hsluv":[258.524369979875587,87.6254974090696,52.5029598761355913]},"#4477ff":{"lch":[53.6445179522116,117.458222301342076,259.779939364455799],"luv":[53.6445179522116,-20.8405325230258285,-115.594576820663164],"rgb":[0.266666666666666663,0.466666666666666674,1],"xyz":[0.270284585001519528,0.216414742653104841,0.973638034888554],"hpluv":[259.779939364455799,277.841684308431127,53.6445179522116],"hsluv":[259.779939364455799,99.999999999999,53.6445179522116]},"#bbff00":{"lch":[92.6117448358007778,112.09772632761252,107.605046807390437],"luv":[92.6117448358007778,-33.9043888880720843,106.847520616749406],"rgb":[0.733333333333333282,1,0],"xyz":[0.56251493439864475,0.820836016822245496,0.128800901435937365],"hpluv":[107.605046807390437,698.685604225905081,92.6117448358007778],"hsluv":[107.605046807390437,100.000000000002302,92.6117448358007778]},"#bbff11":{"lch":[92.6295901709342,111.320425805292416,107.729052066712285],"luv":[92.6295901709342,-33.8988588935206678,106.033506813595423],"rgb":[0.733333333333333282,1,0.0666666666666666657],"xyz":[0.56352659989828191,0.821240683022100404,0.134129006400693],"hpluv":[107.729052066712285,695.618439183936061,92.6295901709342],"hsluv":[107.729052066712285,99.9999999999893703,92.6295901709342]},"#bbff22":{"lch":[92.6626551654141,109.887399193340656,107.962519071076329],"luv":[92.6626551654141,-33.888700280085942,104.531318248662245],"rgb":[0.733333333333333282,1,0.133333333333333331],"xyz":[0.565401958036758856,0.821990826277491204,0.14400589259667218],"hpluv":[107.962519071076329,689.937572971075,92.6626551654141],"hsluv":[107.962519071076329,99.9999999999891713,92.6626551654141]},"#bbff33":{"lch":[92.7170524122382318,107.550157892444602,108.357408717671873],"luv":[92.7170524122382318,-33.8722333827189388,102.076972272674624],"rgb":[0.733333333333333282,1,0.2],"xyz":[0.568489708769216673,0.823225926570474331,0.160268046454283331],"hpluv":[108.357408717671873,680.59767216104342,92.7170524122382318],"hsluv":[108.357408717671873,99.9999999999894271,92.7170524122382318]},"#bbff44":{"lch":[92.7954935084343475,104.224206838295117,108.951712424811362],"luv":[92.7954935084343475,-33.8490183743317,98.5744857768270464],"rgb":[0.733333333333333282,1,0.266666666666666663],"xyz":[0.572947704013435533,0.825009124668161897,0.183746821407169969],"hpluv":[108.951712424811362,667.142517523628385,92.7954935084343475],"hsluv":[108.951712424811362,99.9999999999890576,92.7954935084343475]},"#bbff55":{"lch":[92.9002292713318809,99.8647848732016,109.794505003516988],"luv":[92.9002292713318809,-33.8189779888925628,93.9640994505754605],"rgb":[0.733333333333333282,1,0.333333333333333315],"xyz":[0.578910118052797462,0.827394090283906647,0.215148868681143884],"hpluv":[109.794505003516988,649.201221057988732,92.9002292713318809],"hsluv":[109.794505003516988,99.9999999999888445,92.9002292713318809]},"#bbff66":{"lch":[93.0331768315467826,94.4651128464689691,110.953951756581517],"luv":[93.0331768315467826,-33.7823795150753,88.2179595059619146],"rgb":[0.733333333333333282,1,0.4],"xyz":[0.586495113826305703,0.83042808859331,0.255096513088287846],"hpluv":[110.953951756581517,626.470359589551208,93.0331768315467826],"hsluv":[110.953951756581517,99.9999999999888871,93.0331768315467826]},"#bbff77":{"lch":[93.1959878807374196,88.0576290523864742,112.529317332402641],"luv":[93.1959878807374196,-33.7398191848892566,81.3373876867131571],"rgb":[0.733333333333333282,1,0.466666666666666674],"xyz":[0.595809126846507553,0.834153693801390816,0.304150314994685755],"hpluv":[112.529317332402641,598.713569857690459,93.1959878807374196],"hsluv":[112.529317332402641,99.9999999999886455,93.1959878807374196]},"#bbff88":{"lch":[93.3900894470196334,80.7182094219550805,114.670873894576516],"luv":[93.3900894470196334,-33.6921989698203319,73.3502901212028888],"rgb":[0.733333333333333282,1,0.533333333333333326],"xyz":[0.606949543948451464,0.838609860642168359,0.362823178398257951],"hpluv":[114.670873894576516,565.785048639302204,93.3900894470196334],"hsluv":[114.670873894576516,99.9999999999880913,93.3900894470196334]},"#bbff99":{"lch":[93.6167101348934239,72.575742292483838,117.61482369288214],"luv":[93.6167101348934239,-33.6406927329059684,64.3081811417119411],"rgb":[0.733333333333333282,1,0.6],"xyz":[0.620006508057524108,0.843832646285797572,0.43158985603937583],"hpluv":[117.61482369288214,527.702623330867254,93.6167101348934239],"hsluv":[117.61482369288214,99.9999999999881,93.6167101348934239]},"#bbffaa":{"lch":[93.8768980816178384,63.8331941826517948,121.746607961207644],"luv":[93.8768980816178384,-33.5867019719833948,54.2826872050868303],"rgb":[0.733333333333333282,1,0.66666666666666663],"xyz":[0.63506420102277672,0.849855723471898639,0.510893705656374486],"hpluv":[121.746607961207644,484.836572610502856,93.8768980816178384],"hsluv":[121.746607961207644,99.9999999999878781,93.8768980816178384]},"#bbffbb":{"lch":[94.1715339943383,54.8143223318485937,127.715012949237362],"luv":[94.1715339943383,-33.5318032859449531,43.3615970772812602],"rgb":[0.733333333333333282,1,0.733333333333333282],"xyz":[0.652201793130113283,0.856710760314833397,0.601151690755016177],"hpluv":[127.715012949237362,438.38038704048256,94.1715339943383],"hsluv":[127.715012949237362,99.999999999986926,94.1715339943383]},"#bbffcc":{"lch":[94.5013412228876888,46.0666753200389323,136.612331153023604],"luv":[94.5013412228876888,-33.4776907719138919,31.6446329670924698],"rgb":[0.733333333333333282,1,0.8],"xyz":[0.671494168573835,0.864427710492322254,0.702758201425286333],"hpluv":[136.612331153023604,391.513584290668746,94.5013412228876888],"hsluv":[136.612331153023604,99.9999999999865707,94.5013412228876888]},"#bbffdd":{"lch":[94.8668940681869515,38.5674836948257322,150.076437256866],"luv":[94.8668940681869515,-33.4261169986321818,19.2391658068743077],"rgb":[0.733333333333333282,1,0.866666666666666696],"xyz":[0.693012494124468637,0.873035040712575761,0.816088049325292331],"hpluv":[150.076437256866,352.109825744613431,94.8668940681869515],"hsluv":[150.076437256866,99.9999999999853628,94.8668940681869515]},"#bbffee":{"lch":[95.2686250900245568,33.9600576278843675,169.384373669661102],"luv":[95.2686250900245568,-33.3788361105619771,6.25610214058809699],"rgb":[0.733333333333333282,1,0.933333333333333348],"xyz":[0.716824674390643346,0.882559912819045778,0.941498865393815554],"hpluv":[169.384373669661102,337.406400875084444,95.2686250900245568],"hsluv":[169.384373669661102,99.9999999999845,95.2686250900245568]},"#bbffff":{"lch":[95.7068319095003,34.1048965933827191,192.177050630060478],"luv":[95.7068319095003,-33.3375521201936849,-7.19385781613020914],"rgb":[0.733333333333333282,1,1],"xyz":[0.742995722800474767,0.893028332182978501,1.0793330536855974],"hpluv":[192.177050630060478,374.679972152143307,95.7068319095003],"hsluv":[192.177050630060478,99.9999999999829186,95.7068319095003]},"#448800":{"lch":[50.4956227619448157,68.4221216779621244,118.715311426014551],"luv":[50.4956227619448157,-32.873947818662586,60.0074186224478723],"rgb":[0.266666666666666663,0.533333333333333326,0],"xyz":[0.111876166324659992,0.18836716674231338,0.0304633392138840171],"hpluv":[118.715311426014551,171.942062028892252,50.4956227619448157],"hsluv":[118.715311426014551,100.000000000002373,50.4956227619448157]},"#448811":{"lch":[50.543205868460916,66.6756511812714763,119.435612575278299],"luv":[50.543205868460916,-32.7674265649617098,58.0683925794095899],"rgb":[0.266666666666666663,0.533333333333333326,0.0666666666666666657],"xyz":[0.112887831824297111,0.188771832942168233,0.0357914441786396503],"hpluv":[119.435612575278299,167.395510973175305,50.543205868460916],"hsluv":[119.435612575278299,96.4702491056824272,50.543205868460916]},"#448822":{"lch":[50.6312327062127565,63.5295563644356918,120.846986072134357],"luv":[50.6312327062127565,-32.5745953261955492,54.5426463530750425],"rgb":[0.266666666666666663,0.533333333333333326,0.133333333333333331],"xyz":[0.11476318996277414,0.189521976197559061,0.0456683303746188429],"hpluv":[120.846986072134357,159.219643782083125,50.6312327062127565],"hsluv":[120.846986072134357,90.0662104861249,50.6312327062127565]},"#448833":{"lch":[50.775662969350762,58.6076690216783831,123.408487274566809],"luv":[50.775662969350762,-32.2696404838739213,48.9237076599487182],"rgb":[0.266666666666666663,0.533333333333333326,0.2],"xyz":[0.117850940695231873,0.19075707649054216,0.0619304842322299931],"hpluv":[123.408487274566809,146.466455796741883,50.775662969350762],"hsluv":[123.408487274566809,79.8990388198805732,50.775662969350762]},"#448844":{"lch":[50.9830910358637652,52.0733509329185,127.715012949239537],"luv":[50.9830910358637652,-31.855056956676961,41.1933152789351382],"rgb":[0.266666666666666663,0.533333333333333326,0.266666666666666663],"xyz":[0.122308935939450747,0.192540274588229754,0.0854092591851166316],"hpluv":[127.715012949239537,129.607069016793787,50.9830910358637652],"hsluv":[127.715012949239537,65.9930987522981241,50.9830910358637652]},"#448855":{"lch":[51.2585265038955384,44.4350179761376651,134.860489600104756],"luv":[51.2585265038955384,-31.3437036744621551,31.4967151066136601],"rgb":[0.266666666666666663,0.533333333333333326,0.333333333333333315],"xyz":[0.128271349978812732,0.194925240203974587,0.116811306459090533],"hpluv":[134.860489600104756,110.001490313735033,51.2585265038955384],"hsluv":[134.860489600104756,67.3517725464548676,51.2585265038955384]},"#448866":{"lch":[51.6056896491522537,36.7437212642011914,146.829747927558799],"luv":[51.6056896491522537,-30.7562765884277063,20.1035445321824895],"rgb":[0.266666666666666663,0.533333333333333326,0.4],"xyz":[0.135856345752320917,0.197959238513377878,0.156758950866234509],"hpluv":[146.829747927558799,90.3493178961374781,51.6056896491522537],"hsluv":[146.829747927558799,68.9308752248562797,51.6056896491522537]},"#448877":{"lch":[52.0271709342862039,31.0045548915217921,166.266503182991642],"luv":[52.0271709342862039,-30.1181499011556575,7.36067052332227245],"rgb":[0.266666666666666663,0.533333333333333326,0.466666666666666674],"xyz":[0.145170358772522823,0.201684843721458701,0.205812752772632418],"hpluv":[166.266503182991642,75.6196418937204555,52.0271709342862039],"hsluv":[166.266503182991642,70.6726995402934506,52.0271709342862039]},"#448888":{"lch":[52.5245390493459041,30.1341009641634088,192.177050630061],"luv":[52.5245390493459041,-29.456097564679137,-6.35628485662009179],"rgb":[0.266666666666666663,0.533333333333333326,0.533333333333333326],"xyz":[0.156310775874466679,0.206141010562236299,0.264485616176204585],"hpluv":[192.177050630061,72.8006598676027181,52.5245390493459041],"hsluv":[192.177050630061,72.5156967272479847,52.5245390493459041]},"#448899":{"lch":[53.0984315279962118,35.4547108695225,215.690916113393854],"luv":[53.0984315279962118,-28.7954664423823949,-20.6847198484066084],"rgb":[0.266666666666666663,0.533333333333333326,0.6],"xyz":[0.169367739983539378,0.211363796205865456,0.333252293817322465],"hpluv":[215.690916113393854,84.7289026839812,53.0984315279962118],"hsluv":[215.690916113393854,74.4011420122721319,53.0984315279962118]},"#4488aa":{"lch":[53.7486427971268625,45.1587425535104146,231.425064236121358],"luv":[53.7486427971268625,-28.1581765792043193,-35.3048030832715654],"rgb":[0.266666666666666663,0.533333333333333326,0.66666666666666663],"xyz":[0.184425432948791934,0.217386873391966551,0.412556143434321065],"hpluv":[231.425064236121358,106.613859301848393,53.7486427971268625],"hsluv":[231.425064236121358,76.2778611087785,53.7486427971268625]},"#4488bb":{"lch":[54.4742155909258514,57.0545505189943469,241.113543257937238],"luv":[54.4742155909258514,-27.5616516575745152,-49.9557513488787208],"rgb":[0.266666666666666663,0.533333333333333326,0.733333333333333282],"xyz":[0.201563025056128553,0.224241910234901309,0.502814128532962812],"hpluv":[241.113543257937238,132.904176722924205,54.4742155909258514],"hsluv":[241.113543257937238,78.1047803623200707,54.4742155909258514]},"#4488cc":{"lch":[55.273536978614473,69.875332030770025,247.25266296501286],"luv":[55.273536978614473,-27.0185618464256976,-64.4403549195783398],"rgb":[0.266666666666666663,0.533333333333333326,0.8],"xyz":[0.220855400499850307,0.231958860412390111,0.604420639203233],"hpluv":[247.25266296501286,160.415361718249983,55.273536978614473],"hsluv":[247.25266296501286,79.8515774594708603,55.273536978614473]},"#4488dd":{"lch":[56.1444377207636194,82.97891177410213,251.348812353132246],"luv":[56.1444377207636194,-26.53714651812043,-78.6211145551246631],"rgb":[0.266666666666666663,0.533333333333333326,0.866666666666666696],"xyz":[0.242373726050483851,0.240566190632643645,0.717750487103239],"hpluv":[251.348812353132246,187.542769341675751,56.1444377207636194],"hsluv":[251.348812353132246,81.4979766670821,56.1444377207636194]},"#4488ee":{"lch":[57.0842924141545609,96.0325607902411775,254.216059778839536],"luv":[57.0842924141545609,-26.1218678035424112,-92.4115834426919776],"rgb":[0.266666666666666663,0.533333333333333326,0.933333333333333348],"xyz":[0.266185906316658616,0.25009106273911369,0.843161303171762189],"hpluv":[254.216059778839536,213.472145126724115,57.0842924141545609],"hsluv":[254.216059778839536,85.8050168900109469,57.0842924141545609]},"#4488ff":{"lch":[58.090117466996233,108.861046277687535,256.304473865935392],"luv":[58.090117466996233,-25.7741898685227575,-105.765866579412872],"rgb":[0.266666666666666663,0.533333333333333326,1],"xyz":[0.29235695472649,0.260559482103046358,0.980995491463544],"hpluv":[256.304473865935392,237.798754650411269,58.090117466996233],"hsluv":[256.304473865935392,99.9999999999988631,58.090117466996233]},"#449900":{"lch":[56.0984423000037538,78.159424491283,120.852962610827774],"luv":[56.0984423000037538,-40.0830169860907191,67.0987882610508279],"rgb":[0.266666666666666663,0.6,0],"xyz":[0.137745766777127493,0.240106367647249075,0.0390865393647062687],"hpluv":[120.852962610827774,176.794958777624345,56.0984423000037538],"hsluv":[120.852962610827774,100.000000000002416,56.0984423000037538]},"#449911":{"lch":[56.1389235634784143,76.6482268999804859,121.431666795625887],"luv":[56.1389235634784143,-39.9706170908808929,65.4010738159938256],"rgb":[0.266666666666666663,0.6,0.0666666666666666657],"xyz":[0.138757432276764625,0.240511033847103928,0.0444146443294619],"hpluv":[121.431666795625887,173.251641588156104,56.1389235634784143],"hsluv":[121.431666795625887,97.2234127009916,56.1389235634784143]},"#449922":{"lch":[56.21384509356389,73.9109075723002746,122.549403254372123],"luv":[56.21384509356389,-39.7660359546788555,62.3015621201611793],"rgb":[0.266666666666666663,0.6,0.133333333333333331],"xyz":[0.140632790415241626,0.241261177102494756,0.0542915305254411],"hpluv":[122.549403254372123,166.841685682494415,56.21384509356389],"hsluv":[122.549403254372123,92.1627352690631,56.21384509356389]},"#449933":{"lch":[56.3368647095541064,69.5846668696270143,124.526315047954697],"luv":[56.3368647095541064,-39.4395235157555177,57.3284383897480296],"rgb":[0.266666666666666663,0.6,0.2],"xyz":[0.143720541147699388,0.242496277395477855,0.0705536843830522342],"hpluv":[124.526315047954697,156.73291295139785,56.3368647095541064],"hsluv":[124.526315047954697,84.0665441712718859,56.3368647095541064]},"#449944":{"lch":[56.5137417426914368,63.7361451042890153,127.715012949239735],"luv":[56.5137417426914368,-38.9895886498958575,50.4193233757345922],"rgb":[0.266666666666666663,0.6,0.266666666666666663],"xyz":[0.148178536391918247,0.244279475493165449,0.0940324593359388727],"hpluv":[127.715012949239735,143.110354253444,56.5137417426914368],"hsluv":[127.715012949239735,72.8686777069245,56.5137417426914368]},"#449955":{"lch":[56.7489681974646629,56.6620380577650309,132.698160989074609],"luv":[56.7489681974646629,-38.4245724364924328,41.642992086692793],"rgb":[0.266666666666666663,0.6,0.333333333333333315],"xyz":[0.154140950431280233,0.246664441108910282,0.125434506609912788],"hpluv":[132.698160989074609,126.69910537289924,56.7489681974646629],"hsluv":[132.698160989074609,73.7405349232989664,56.7489681974646629]},"#449966":{"lch":[57.0460268500437166,48.9673458777373511,140.456743036678859],"luv":[57.0460268500437166,-37.7608817984154683,31.1755796757022061],"rgb":[0.266666666666666663,0.6,0.4],"xyz":[0.161725946204788418,0.249698439418313572,0.16538215101705675],"hpluv":[140.456743036678859,108.923224533285605,57.0460268500437166],"hsluv":[140.456743036678859,74.7718537787272766,57.0460268500437166]},"#449977":{"lch":[57.4075272841014481,41.7361359201695734,152.500832231763781],"luv":[57.4075272841014481,-37.0206846158697,19.2710651526888199],"rgb":[0.266666666666666663,0.6,0.466666666666666674],"xyz":[0.171039959224990323,0.253424044626394396,0.214435952923454659],"hpluv":[152.500832231763781,92.2534727828265915,57.4075272841014481],"hsluv":[152.500832231763781,75.9325502249844817,57.4075272841014481]},"#449988":{"lch":[57.8352917232380861,36.7607331244742284,170.245603374965924],"luv":[57.8352917232380861,-36.2292854489646174,6.22819200942437323],"rgb":[0.266666666666666663,0.6,0.533333333333333326],"xyz":[0.182180376326934179,0.257880211467172,0.273108816327026827],"hpluv":[170.245603374965924,80.6548633994409414,57.8352917232380861],"hsluv":[170.245603374965924,77.1878957355486222,57.8352917232380861]},"#449999":{"lch":[58.3304201548299517,36.2276744984656105,192.17705063006116],"luv":[58.3304201548299517,-35.4125684996312486,-7.64162232943372643],"rgb":[0.266666666666666663,0.6,0.6],"xyz":[0.195237340436006879,0.263102997110801151,0.341875493968144761],"hpluv":[192.17705063006116,78.8106081595615251,58.3304201548299517],"hsluv":[192.17705063006116,78.5021203184449803,58.3304201548299517]},"#4499aa":{"lch":[58.8933484328044585,41.0197173156303379,212.502133513081617],"luv":[58.8933484328044585,-34.5948579745346478,-22.041166266239177],"rgb":[0.266666666666666663,0.6,0.66666666666666663],"xyz":[0.210295033401259435,0.269126074296902273,0.421179343585143307],"hpluv":[212.502133513081617,88.3823902117899536,58.8933484328044585],"hsluv":[212.502133513081617,79.8414276244135692,58.8933484328044585]},"#4499bb":{"lch":[59.523905851944221,49.8962585520308082,227.36281958486083],"luv":[59.523905851944221,-33.7974051546762055,-36.7065664738854878],"rgb":[0.266666666666666663,0.6,0.733333333333333282],"xyz":[0.227432625508596054,0.275981111139837032,0.511437328683785108],"hpluv":[227.36281958486083,106.36919851968392,59.523905851944221],"hsluv":[227.36281958486083,81.1761313086710885,59.523905851944221]},"#4499cc":{"lch":[60.2213749252976385,61.1171242450200438,237.278146949597897],"luv":[60.2213749252976385,-33.0375484580145766,-51.4181219791773],"rgb":[0.266666666666666663,0.6,0.8],"xyz":[0.246725000952317808,0.283698061317325834,0.613043839354055264],"hpluv":[237.278146949597897,128.780934100622716,60.2213749252976385],"hsluv":[237.278146949597897,82.4818489079811741,60.2213749252976385]},"#4499dd":{"lch":[60.9845539619455508,73.4958381074912,243.904542785491344],"luv":[60.9845539619455508,-32.3284648877968195,-66.0038527445257728],"rgb":[0.266666666666666663,0.6,0.866666666666666696],"xyz":[0.268243326502951351,0.29230539153757934,0.726373687254061262],"hpluv":[243.904542785491344,152.926314240713424,60.9845539619455508],"hsluv":[243.904542785491344,83.7398679369964469,60.9845539619455508]},"#4499ee":{"lch":[61.8118218103912653,86.3580647779335351,248.479300934605874],"luv":[61.8118218103912653,-31.6793620640961606,-80.3376211460214193],"rgb":[0.266666666666666663,0.6,0.933333333333333348],"xyz":[0.292055506769126061,0.301830263644049357,0.851784503322584485],"hpluv":[248.479300934605874,177.284466220706,61.8118218103912653],"hsluv":[248.479300934605874,84.9368954206658344,61.8118218103912653]},"#4499ff":{"lch":[62.7012034705467585,99.3269113509348,251.755860244601337],"luv":[62.7012034705467585,-31.0959452870692914,-94.3338619225358173],"rgb":[0.266666666666666663,0.6,1],"xyz":[0.318226555178957482,0.312298683007982081,0.98961869161436633],"hpluv":[251.755860244601337,201.015886170810859,62.7012034705467585],"hsluv":[251.755860244601337,99.9999999999986073,62.7012034705467585]},"#330000":{"lch":[6.35863201887414942,21.3842798011123882,12.1770506300617836],"luv":[6.35863201887414942,20.9031433498234946,4.51065635013277699],"rgb":[0.2,0,0],"xyz":[0.0136521011456799905,0.00703936465324139522,0.000639942241203736136],"hpluv":[12.1770506300617836,426.746789183125031,6.35863201887414942],"hsluv":[12.1770506300617836,100.000000000002217,6.35863201887414942]},"#330011":{"lch":[6.72416549840036915,18.2596394021459751,358.956333183931122],"luv":[6.72416549840036915,18.2566101970553,-0.332588648601129133],"rgb":[0.2,0,0.0666666666666666657],"xyz":[0.0146637666453171122,0.00744403085309625,0.00596804720595936738],"hpluv":[358.956333183931122,344.582429927088697,6.72416549840036915],"hsluv":[358.956333183931122,99.9999999999970868,6.72416549840036915]},"#330022":{"lch":[7.4017671226143058,16.6083885778583671,334.642609555635659],"luv":[7.4017671226143058,15.0082373074967617,-7.11276205668364714],"rgb":[0.2,0,0.133333333333333331],"xyz":[0.0165391247837941326,0.00819417410848706854,0.0158449334019385643],"hpluv":[334.642609555635659,284.728805881674077,7.4017671226143058],"hsluv":[334.642609555635659,99.999999999998,7.4017671226143058]},"#330033":{"lch":[8.50665746950019,19.3767863388894384,307.715012949243601],"luv":[8.50665746950019,11.8534455994177517,-15.3282639670843448],"rgb":[0.2,0,0.2],"xyz":[0.0196268755162518696,0.00942927440147018139,0.0321070872595497075],"hpluv":[307.715012949243601,289.042783730483279,8.50665746950019],"hsluv":[307.715012949243601,99.9999999999987921,8.50665746950019]},"#330044":{"lch":[9.96321399083228343,25.9151774110163871,290.632214162589],"luv":[9.96321399083228343,9.13167627644372,-24.2530185467023678],"rgb":[0.2,0,0.266666666666666663],"xyz":[0.0240848707604707502,0.0112124724991577579,0.0555858622124363461],"hpluv":[290.632214162589,330.060881015257678,9.96321399083228343],"hsluv":[290.632214162589,99.9999999999994,9.96321399083228343]},"#330055":{"lch":[11.6870713271151807,34.2775786608295405,281.502617436257196],"luv":[11.6870713271151807,6.83538450996046,-33.589133919325],"rgb":[0.2,0,0.333333333333333315],"xyz":[0.0300472847998327422,0.0135974381149025891,0.0869879094864102614],"hpluv":[281.502617436257196,372.172061509357604,11.6870713271151807],"hsluv":[281.502617436257196,99.9999999999999289,11.6870713271151807]},"#330066":{"lch":[13.6097387714237676,43.4818398400869768,276.434806151814087],"luv":[13.6097387714237676,4.87312317733106592,-43.2079051375733059],"rgb":[0.2,0,0.4],"xyz":[0.0376322805733409205,0.0166314364243059024,0.126935553893554209],"hpluv":[276.434806151814087,405.412793254212261,13.6097387714237676],"hsluv":[276.434806151814087,100.00000000000027,13.6097387714237676]},"#330077":{"lch":[15.6735112457106673,53.108485659557914,273.408523183706109],"luv":[15.6735112457106673,3.15755804167271537,-53.0145364618510655],"rgb":[0.2,0,0.466666666666666674],"xyz":[0.046946293593542833,0.0203570416323867187,0.175989355799952119],"hpluv":[273.408523183706109,429.968801903614121,15.6735112457106673],"hsluv":[273.408523183706109,100.000000000000313,15.6735112457106673]},"#330088":{"lch":[17.8339183845063687,62.9511834901283365,271.47985970994057],"luv":[17.8339183845063687,1.62574911173865799,-62.9301870538574448],"rgb":[0.2,0,0.533333333333333326],"xyz":[0.058086710695486661,0.0248132084731643096,0.234662219203524286],"hpluv":[271.47985970994057,447.91587095992594,17.8339183845063687],"hsluv":[271.47985970994057,100.000000000000441,17.8339183845063687]},"#330099":{"lch":[20.0583065104412341,72.8932825114363,270.184356583024851],"luv":[20.0583065104412341,0.234543162084408924,-72.8929051746271313],"rgb":[0.2,0,0.6],"xyz":[0.0711436748045593814,0.0300359941167934706,0.303428896844642193],"hpluv":[270.184356583024851,461.139761646516433,20.0583065104412341],"hsluv":[270.184356583024851,100.000000000000625,20.0583065104412341]},"#3300aa":{"lch":[22.3232943619689834,82.8637729479105474,269.276671227287579],"luv":[22.3232943619689834,-1.04608331699459467,-82.8571697371855578],"rgb":[0.2,0,0.66666666666666663],"xyz":[0.0862013677698119235,0.0360590713028945756,0.382732746461640794],"hpluv":[269.276671227287579,471.026936966419044,22.3232943619689834],"hsluv":[269.276671227287579,100.000000000000554,22.3232943619689834]},"#3300bb":{"lch":[24.6123405885396807,92.8181896970849,268.61855571411644],"luv":[24.6123405885396807,-2.23769945956788,-92.7912120826788538],"rgb":[0.2,0,0.733333333333333282],"xyz":[0.10333895987714857,0.0429141081458293341,0.47299073156028254],"hpluv":[268.61855571411644,478.541387025058441,24.6123405885396807],"hsluv":[268.61855571411644,100.000000000000625,24.6123405885396807]},"#3300cc":{"lch":[26.9138017967000778,102.728605647013808,268.127719933063759],"luv":[26.9138017967000778,-3.35631165306985224,-102.673762910819349],"rgb":[0.2,0,0.8],"xyz":[0.122631335320870311,0.0506310583233181358,0.574597242230552752],"hpluv":[268.127719933063759,484.345947247320225,26.9138017967000778],"hsluv":[268.127719933063759,100.000000000000881,26.9138017967000778]},"#3300dd":{"lch":[29.2194977691074271,112.577730384171886,267.752877980499],"luv":[29.2194977691074271,-4.41413050162269105,-112.49115889867052],"rgb":[0.2,0,0.866666666666666696],"xyz":[0.144149660871503854,0.0592383885435716698,0.687927090130558749],"hpluv":[267.752877980499,488.89890937186334,29.2194977691074271],"hsluv":[267.752877980499,100.000000000000753,29.2194977691074271]},"#3300ee":{"lch":[31.5236887929336334,122.355215968494591,267.460804758990776],"luv":[31.5236887929336334,-5.42068013199621,-122.235081304851008],"rgb":[0.2,0,0.933333333333333348],"xyz":[0.167961841137678591,0.0687632606500417,0.813337906199082],"hpluv":[267.460804758990776,492.52103452607281,31.5236887929336334],"hsluv":[267.460804758990776,100.000000000000824,31.5236887929336334]},"#3300ff":{"lch":[33.8223579343154,132.055276159319874,267.229255072945307],"luv":[33.8223579343154,-6.38352242786170443,-131.900896899631505],"rgb":[0.2,0,1],"xyz":[0.194132889547509985,0.0792316800139744,0.951172094490863818],"hpluv":[267.229255072945307,495.440155164142311,33.8223579343154],"hsluv":[267.229255072945307,100.000000000000881,33.8223579343154]},"#331100":{"lch":[9.83576796362177319,19.9321083570360571,25.9770166386959609],"luv":[9.83576796362177319,17.918363864654,8.73047421223431108],"rgb":[0.2,0.0666666666666666657,0],"xyz":[0.0156565014066084,0.0110481651750982679,0.00130807566151318702],"hpluv":[25.9770166386959609,257.148675223584291,9.83576796362177319],"hsluv":[25.9770166386959609,100.000000000002302,9.83576796362177319]},"#331111":{"lch":[10.1474261289244687,16.4836545456174051,12.1770506300618813],"luv":[10.1474261289244687,16.1127799065782149,3.4769513746129066],"rgb":[0.2,0.0666666666666666657,0.0666666666666666657],"xyz":[0.0166681669062455212,0.0114528313749531225,0.00663618062626881826],"hpluv":[12.1770506300618813,206.127972902374523,10.1474261289244687],"hsluv":[12.1770506300618813,48.3021731216650707,10.1474261289244687]},"#331122":{"lch":[10.7062693823806221,14.2435433110065777,342.375847990242676],"luv":[10.7062693823806221,13.5749958919169824,-4.31254131423193],"rgb":[0.2,0.0666666666666666657,0.133333333333333331],"xyz":[0.0185435250447225398,0.0122029746303439404,0.0165130668222480161],"hpluv":[342.375847990242676,168.818174775843545,10.7062693823806221],"hsluv":[342.375847990242676,57.1044970617697913,10.7062693823806221]},"#331133":{"lch":[11.5784810016780177,17.5377888786733784,307.715012949244169],"luv":[11.5784810016780177,10.7284677021084427,-13.8735006223280077],"rgb":[0.2,0.0666666666666666657,0.2],"xyz":[0.0216312757771802804,0.0134380749233270532,0.0327752206798591628],"hpluv":[307.715012949244169,192.204068690519591,11.5784810016780177],"hsluv":[307.715012949244169,66.4967539441281,11.5784810016780177]},"#331144":{"lch":[12.7480449023252049,25.2894553184220108,288.641508688419037],"luv":[12.7480449023252049,8.08366941467993172,-23.9626968243691536],"rgb":[0.2,0.0666666666666666657,0.266666666666666663],"xyz":[0.0260892710213991574,0.0152212730210146297,0.0562539956327458],"hpluv":[288.641508688419037,251.73014018207067,12.7480449023252049],"hsluv":[288.641508688419037,74.5439781366083309,12.7480449023252049]},"#331155":{"lch":[14.1772863520069095,34.570642435857458,279.659572498507771],"luv":[14.1772863520069095,5.80074057604611415,-34.0805036230000695],"rgb":[0.2,0.0666666666666666657,0.333333333333333315],"xyz":[0.0320516850607611564,0.0176062386367594609,0.0876560429067197],"hpluv":[279.659572498507771,309.423764447612427,14.1772863520069095],"hsluv":[279.659572498507771,80.733364837348816,14.1772863520069095]},"#331166":{"lch":[15.8197098676790517,44.2946391552180785,274.993838621827194],"luv":[15.8197098676790517,3.85578699555013271,-44.1264995726595686],"rgb":[0.2,0.0666666666666666657,0.4],"xyz":[0.0396366808342693278,0.0206402369461627724,0.127603687313863678],"hpluv":[274.993838621827194,355.297359803625511,15.8197098676790517],"hsluv":[274.993838621827194,85.2848648605675095,15.8197098676790517]},"#331177":{"lch":[17.6293493428787755,54.1580116435351115,272.303494486185969],"luv":[17.6293493428787755,2.17675853502087469,-54.1142490242773135],"rgb":[0.2,0.0666666666666666657,0.466666666666666674],"xyz":[0.0489506938544712472,0.0243658421542435888,0.176657489220261588],"hpluv":[272.303494486185969,389.821469213037517,17.6293493428787755],"hsluv":[272.303494486185969,88.5936990192462588,17.6293493428787755]},"#331188":{"lch":[19.5658128626021437,64.0679547566568,270.623065923527406],"luv":[19.5658128626021437,0.696696562564985133,-64.064166587888522],"rgb":[0.2,0.0666666666666666657,0.533333333333333326],"xyz":[0.0600911109564150753,0.0288220089950211832,0.235330352623833755],"hpluv":[270.623065923527406,415.51077593183,19.5658128626021437],"hsluv":[270.623065923527406,91.0112456871911348,19.5658128626021437]},"#331199":{"lch":[21.5959931816331263,73.9854871429769645,269.508319412823],"luv":[21.5959931816331263,-0.634894604710849,-73.9827629696574576],"rgb":[0.2,0.0666666666666666657,0.6],"xyz":[0.0731480750654877887,0.0340447946386503442,0.304097030264951662],"hpluv":[269.508319412823,434.723064450461493,21.5959931816331263],"hsluv":[269.508319412823,92.7998436287799,21.5959931816331263]},"#3311aa":{"lch":[23.6938673935249824,83.8866252842298792,268.733700318675346],"luv":[23.6938673935249824,-1.85383566080119344,-83.8661385478044821],"rgb":[0.2,0.0666666666666666657,0.66666666666666663],"xyz":[0.0882057680307403308,0.0400678718247514457,0.383400879881950263],"hpluv":[268.733700318675346,449.258286440651602,23.6938673935249824],"hsluv":[268.733700318675346,94.1436997610677,23.6938673935249824]},"#3311bb":{"lch":[25.8394818705352094,93.7535423490500079,268.175268957576],"luv":[25.8394818705352094,-2.98531729009247,-93.7060007879569525],"rgb":[0.2,0.0666666666666666657,0.733333333333333282],"xyz":[0.105343360138076977,0.0469229086676862042,0.473658864980592],"hpluv":[268.175268957576,460.408371224539451,25.8394818705352094],"hsluv":[268.175268957576,95.1697562295976525,25.8394818705352094]},"#3311cc":{"lch":[28.017750605254669,103.572636018550753,267.760492630427507],"luv":[28.017750605254669,-4.04728980779695124,-103.493528189171812],"rgb":[0.2,0.0666666666666666657,0.8],"xyz":[0.124635735581798718,0.0546398588451750059,0.57526537565086211],"hpluv":[267.760492630427507,469.084508820223505,28.017750605254669],"hsluv":[267.760492630427507,95.9655004656031423,28.017750605254669]},"#3311dd":{"lch":[30.2173526676312889,113.33386550323506,267.444704079349265],"luv":[30.2173526676312889,-5.05282540459801588,-113.221173043455181],"rgb":[0.2,0.0666666666666666657,0.866666666666666696],"xyz":[0.146154061132432261,0.0632471890654285329,0.688595223550868107],"hpluv":[267.444704079349265,475.929488946899937,30.2173526676312889],"hsluv":[267.444704079349265,96.591763702558211,30.2173526676312889]},"#3311ee":{"lch":[32.429822932533412,123.030197380053124,267.199217974228532],"luv":[32.429822932533412,-6.01167404447580456,-122.883234180085807],"rgb":[0.2,0.0666666666666666657,0.933333333333333348],"xyz":[0.169966241398607,0.0727720611718985777,0.814006039619391331],"hpluv":[267.199217974228532,481.400425551936735,32.429822932533412],"hsluv":[267.199217974228532,97.0913881744298095,32.429822932533412]},"#3311ff":{"lch":[34.6488414224811834,132.657034918193688,267.004954598207064],"luv":[34.6488414224811834,-6.93127707868383425,-132.475832933200962],"rgb":[0.2,0.0666666666666666657,1],"xyz":[0.196137289808438392,0.0832404805358312738,0.951840227911173176],"hpluv":[267.004954598207064,485.826158631145177,34.6488414224811834],"hsluv":[267.004954598207064,99.999999999999531,34.6488414224811834]},"#88aa00":{"lch":[64.9493872277699467,75.8454165204624502,102.522158340464031],"luv":[64.9493872277699467,-16.4445883060260414,74.0412231301438624],"rgb":[0.533333333333333326,0.66666666666666663,0],"xyz":[0.245272120749672057,0.339833923051985953,0.0526729261635559762],"hpluv":[102.522158340464031,148.181371186867864,64.9493872277699467],"hsluv":[102.522158340464031,100.000000000002217,64.9493872277699467]},"#88aa11":{"lch":[64.9815053546997206,74.514883993558044,102.764001416735823],"luv":[64.9815053546997206,-16.4630035423646639,72.6734989589568414],"rgb":[0.533333333333333326,0.66666666666666663,0.0666666666666666657],"xyz":[0.246283786249309189,0.340238589251840806,0.0580010311283116059],"hpluv":[102.764001416735823,145.509915409181133,64.9815053546997206],"hsluv":[102.764001416735823,98.0498740713468635,64.9815053546997206]},"#88aa22":{"lch":[65.040976504183746,72.0784265262596762,103.230826782560158],"luv":[65.040976504183746,-16.4969246852166869,70.1651697527462801],"rgb":[0.533333333333333326,0.66666666666666663,0.133333333333333331],"xyz":[0.24815914438778619,0.340988732507231607,0.0678779173242908],"hpluv":[103.230826782560158,140.623392494363173,65.040976504183746],"hsluv":[103.230826782560158,94.4776072436414296,65.040976504183746]},"#88aa33":{"lch":[65.138705174337673,68.1506383708936596,104.056367163177015],"luv":[65.138705174337673,-16.5521781693680836,66.1100212389152],"rgb":[0.533333333333333326,0.66666666666666663,0.2],"xyz":[0.251246895120243952,0.342223832800214733,0.0841400711819019487],"hpluv":[104.056367163177015,132.760883332008575,65.138705174337673],"hsluv":[104.056367163177015,88.7139905695652544,65.138705174337673]},"#88aa44":{"lch":[65.2793887406011,62.6606585185119442,105.391240881396499],"luv":[65.2793887406011,-16.6306856640551395,60.4133960336360687],"rgb":[0.533333333333333326,0.66666666666666663,0.266666666666666663],"xyz":[0.255704890364462811,0.344007030897902299,0.107618846134788587],"hpluv":[105.391240881396499,121.803060858356815,65.2793887406011],"hsluv":[105.391240881396499,80.6421361820775,65.2793887406011]},"#88aa55":{"lch":[65.4667902277309821,55.6467221212728731,107.50018297907917],"luv":[65.4667902277309821,-16.7334615527701551,53.0711687011330397],"rgb":[0.533333333333333326,0.66666666666666663,0.333333333333333315],"xyz":[0.261667304403824796,0.34639199651364716,0.139020893408762503],"hpluv":[107.50018297907917,107.859366541167589,65.4667902277309821],"hsluv":[107.50018297907917,70.2829236383929157,65.4667902277309821]},"#88aa66":{"lch":[65.7039511656785606,47.2674293485405386,110.898270106627507],"luv":[65.7039511656785606,-16.8607549547505542,44.1579530727492582],"rgb":[0.533333333333333326,0.66666666666666663,0.4],"xyz":[0.269252300177333,0.349425994823050479,0.178968537815906464],"hpluv":[110.898270106627507,91.2871867148882075,65.7039511656785606],"hsluv":[110.898270106627507,57.7776943224234358,65.7039511656785606]},"#88aa77":{"lch":[65.993303036365262,37.8517489546572605,116.707912668539493],"luv":[65.993303036365262,-17.0121797895697142,33.8133204186420073],"rgb":[0.533333333333333326,0.66666666666666663,0.466666666666666674],"xyz":[0.278566313197534887,0.353151600031131274,0.228022339722304374],"hpluv":[116.707912668539493,72.782239014817236,65.993303036365262],"hsluv":[116.707912668539493,43.3670204896631262,65.993303036365262]},"#88aa88":{"lch":[66.3367341259492,28.0952907790087707,127.715012949235486],"luv":[66.3367341259492,-17.1868541575625393,22.2251526006848934],"rgb":[0.533333333333333326,0.66666666666666663,0.533333333333333326],"xyz":[0.289706730299478743,0.357607766871908872,0.286695203125876541],"hpluv":[127.715012949235486,53.7426121206727316,66.3367341259492],"hsluv":[127.715012949235486,27.3645684281827677,66.3367341259492]},"#88aa99":{"lch":[66.7356352778598705,19.8636867466165334,151.061783220075199],"luv":[66.7356352778598705,-17.3835461247401071,9.6113669837720046],"rgb":[0.533333333333333326,0.66666666666666663,0.6],"xyz":[0.302763694408551443,0.36283055251553803,0.35546188076699442],"hpluv":[151.061783220075199,37.7695130125235536,66.7356352778598705],"hsluv":[151.061783220075199,30.5390729913306274,66.7356352778598705]},"#88aaaa":{"lch":[67.1909358184889811,18.0059400546344968,192.177050630060364],"luv":[67.1909358184889811,-17.6008146924254447,-3.79805205519771905],"rgb":[0.533333333333333326,0.66666666666666663,0.66666666666666663],"xyz":[0.317821387373804,0.368853629701639152,0.434765730383993],"hpluv":[192.177050630060364,34.0051297749840913,67.1909358184889811],"hsluv":[192.177050630060364,33.872023720911649,67.1909358184889811]},"#88aabb":{"lch":[67.7031355134684674,25.1829477340388976,224.903065382651],"luv":[67.7031355134684674,-17.8371340556046292,-17.7768812016541453],"rgb":[0.533333333333333326,0.66666666666666663,0.733333333333333282],"xyz":[0.334958979481140617,0.37570866654457391,0.525023715482634823],"hpluv":[224.903065382651,47.1994684953027459,67.7031355134684674],"hsluv":[224.903065382651,37.296330310174362,67.7031355134684674]},"#88aacc":{"lch":[68.2723356589922901,36.8600300209604939,240.606662797769701],"luv":[68.2723356589922901,-18.0909926283411373,-32.1150712106857341],"rgb":[0.533333333333333326,0.66666666666666663,0.8],"xyz":[0.354251354924862372,0.383425616722062712,0.626630226152905],"hpluv":[240.606662797769701,68.5094136262693,68.2723356589922901],"hsluv":[240.606662797769701,40.7502319604911136,68.2723356589922901]},"#88aadd":{"lch":[68.8982708583434,50.1120766914241216,248.506358436024811],"luv":[68.8982708583434,-18.3609632112572676,-46.6271944285953168],"rgb":[0.533333333333333326,0.66666666666666663,0.866666666666666696],"xyz":[0.375769680475495915,0.392032946942316218,0.739960074052911],"hpluv":[248.506358436024811,92.2939864083951278,68.8982708583434],"hsluv":[248.506358436024811,59.5109742880650217,68.8982708583434]},"#88aaee":{"lch":[69.5803420919898,63.9362726255054454,253.044423586561948],"luv":[69.5803420919898,-18.6457452648911577,-61.1570367231747554],"rgb":[0.533333333333333326,0.66666666666666663,0.933333333333333348],"xyz":[0.39958186074167068,0.401557819048786235,0.8653708901214342],"hpluv":[253.044423586561948,116.600410917186778,69.5803420919898],"hsluv":[253.044423586561948,79.2673662112875093,69.5803420919898]},"#88aaff":{"lch":[70.3176511000829549,77.916964899147743,255.928474825822],"luv":[70.3176511000829549,-18.9441834980668631,-75.578907974954177],"rgb":[0.533333333333333326,0.66666666666666663,1],"xyz":[0.425752909151502046,0.412026238412718959,1.00320507841321604],"hpluv":[255.928474825822,140.607018245256825,70.3176511000829549],"hsluv":[255.928474825822,99.9999999999979394,70.3176511000829549]},"#332200":{"lch":[14.6681357538016819,18.4720509904151484,54.0318728094203635],"luv":[14.6681357538016819,10.8492842291989344,14.9502407842332925],"rgb":[0.2,0.133333333333333331,0],"xyz":[0.0193721251413763347,0.0184794126446342424,0.00254661690643579732],"hpluv":[54.0318728094203635,159.801011716648361,14.6681357538016819],"hsluv":[54.0318728094203635,100.000000000002359,14.6681357538016819]},"#332211":{"lch":[14.8903804788128475,14.003495227987683,44.8263438888978243],"luv":[14.8903804788128475,9.93193249146711,9.87190941941900668],"rgb":[0.2,0.133333333333333331,0.0666666666666666657],"xyz":[0.0203837906410134564,0.0188840788444890953,0.00787472187119143],"hpluv":[44.8263438888978243,119.33558852926538,14.8903804788128475],"hsluv":[44.8263438888978243,67.0844803779226595,14.8903804788128475]},"#332222":{"lch":[15.2941064614028619,8.70381909014442101,12.1770506300622809],"luv":[15.2941064614028619,8.50798716741232397,1.83592513820952408],"rgb":[0.2,0.133333333333333331,0.133333333333333331],"xyz":[0.0222591487794904751,0.0196342220998799166,0.0177516080671706253],"hpluv":[12.1770506300622809,72.2146104972558476,15.2941064614028619],"hsluv":[12.1770506300622809,16.9221215783466867,15.2941064614028619]},"#332233":{"lch":[15.9369990430381634,10.9638268591401484,307.7150129492465],"luv":[15.9369990430381634,6.70694938589646661,-8.67308072902737],"rgb":[0.2,0.133333333333333331,0.2],"xyz":[0.0253468995119482156,0.0208693223928630295,0.0340137619247817685],"hpluv":[307.7150129492465,87.2961214462547,15.9369990430381634],"hsluv":[307.7150129492465,30.2017993044426838,15.9369990430381634]},"#332244":{"lch":[16.8218835175385664,20.7382675483863608,283.478697838556343],"luv":[16.8218835175385664,4.83375477674434428,-20.1670661145035197],"rgb":[0.2,0.133333333333333331,0.266666666666666663],"xyz":[0.0298048947561670927,0.0226525204905506025,0.057492536877668407],"hpluv":[283.478697838556343,156.436171283708973,16.8218835175385664],"hsluv":[283.478697838556343,43.2894908809756558,16.8218835175385664]},"#332255":{"lch":[17.9355503164319856,31.8518286021958055,275.537546938931484],"luv":[17.9355503164319856,3.0736387963894658,-31.7031816992078603],"rgb":[0.2,0.133333333333333331,0.333333333333333315],"xyz":[0.0357673087955290847,0.0250374861062954354,0.0888945841516423224],"hpluv":[275.537546938931484,225.350740722061715,17.9355503164319856],"hsluv":[275.537546938931484,54.6600619512456092,17.9355503164319856]},"#332266":{"lch":[19.2543827660255502,42.9346801988288,271.988815040461645],"luv":[19.2543827660255502,1.49002234071320738,-42.9088172430781114],"rgb":[0.2,0.133333333333333331,0.4],"xyz":[0.043352304569037263,0.028071484415698747,0.12884222855878627],"hpluv":[271.988815040461645,282.955381276792764,19.2543827660255502],"hsluv":[271.988815040461645,63.8744485302889515,19.2543827660255502]},"#332277":{"lch":[20.7496984269819,53.7295137018198687,270.083996688769219],"luv":[20.7496984269819,0.0787684479011579453,-53.7294559637975908],"rgb":[0.2,0.133333333333333331,0.466666666666666674],"xyz":[0.0526663175892391755,0.0317970896237795633,0.17789603046518418],"hpluv":[270.083996688769219,328.579487011522247,20.7496984269819],"hsluv":[270.083996688769219,71.0892762838988546,20.7496984269819]},"#332288":{"lch":[22.3919640579388926,64.2366699579867,268.940142222195846],"luv":[22.3919640579388926,-1.18818265954209568,-64.2256801385464087],"rgb":[0.2,0.133333333333333331,0.533333333333333326],"xyz":[0.063806734691183,0.0362532564645571542,0.236568893868756347],"hpluv":[268.940142222195846,364.024117005976393,22.3919640579388926],"hsluv":[268.940142222195846,76.6637840765232426,22.3919640579388926]},"#332299":{"lch":[24.1535324867621668,74.5121507797046689,268.199285594367666],"luv":[24.1535324867621668,-2.34141182983712737,-74.4753543426316469],"rgb":[0.2,0.133333333333333331,0.6],"xyz":[0.076863698800255717,0.0414760421081863187,0.305335571509874282],"hpluv":[268.199285594367666,391.458538227207669,24.1535324867621668],"hsluv":[268.199285594367666,80.9654036049547301,24.1535324867621668]},"#3322aa":{"lch":[26.0100477302332607,84.6098540849434926,267.692459882235937],"luv":[26.0100477302332607,-3.40667075751279169,-84.541244387726735],"rgb":[0.2,0.133333333333333331,0.66666666666666663],"xyz":[0.0919213917655082591,0.0474991192942874202,0.384639421126872882],"hpluv":[267.692459882235937,412.780453116303818,26.0100477302332607],"hsluv":[267.692459882235937,84.3023702715129,26.0100477302332607]},"#3322bb":{"lch":[27.9408960039881222,94.5690254119923281,267.330995248517297],"luv":[27.9408960039881222,-4.40370835341661504,-94.4664380619492761],"rgb":[0.2,0.133333333333333331,0.733333333333333282],"xyz":[0.109058983872844906,0.0543541561372221788,0.474897406225514629],"hpluv":[267.330995248517297,429.484911570580266,27.9408960039881222],"hsluv":[267.330995248517297,86.9134730370406743,27.9408960039881222]},"#3322cc":{"lch":[29.9290875828623939,104.415306333233346,267.064581258752071],"luv":[29.9290875828623939,-5.34714045276937444,-104.278302084572317],"rgb":[0.2,0.133333333333333331,0.8],"xyz":[0.12835135931656666,0.0620711063147109804,0.576503916895784729],"hpluv":[267.064581258752071,442.700503900749,29.9290875828623939],"hsluv":[267.064581258752071,88.9774620844202389,29.9290875828623939]},"#3322dd":{"lch":[31.9608605817263296,114.164622106097937,266.862904678446171],"luv":[31.9608605817263296,-6.2476920173399213,-113.993540541052639],"rgb":[0.2,0.133333333333333331,0.866666666666666696],"xyz":[0.149869684867200204,0.0706784365349645144,0.689833764795790727],"hpluv":[266.862904678446171,453.265229710644405,31.9608605817263296],"hsluv":[266.862904678446171,90.6264253960307826,31.9608605817263296]},"#3322ee":{"lch":[34.0251904593745635,123.826689560879501,266.706806867468629],"luv":[34.0251904593745635,-7.11327635006579229,-123.622208147136817],"rgb":[0.2,0.133333333333333331,0.933333333333333348],"xyz":[0.173681865133374941,0.0802033086414345453,0.815244580864314],"hpluv":[266.706806867468629,461.799038215803307,34.0251904593745635],"hsluv":[266.706806867468629,93.6430785136650741,34.0251904593745635]},"#3322ff":{"lch":[36.1133053940478774,133.407509730883817,266.583697157343806],"luv":[36.1133053940478774,-7.94980801741223875,-133.170432923686747],"rgb":[0.2,0.133333333333333331,1],"xyz":[0.199852913543206334,0.0906717280053672414,0.953078769156095795],"hpluv":[266.583697157343806,468.761962088723578,36.1133053940478774],"hsluv":[266.583697157343806,99.999999999999531,36.1133053940478774]},"#aaaa00":{"lch":[67.4983691984715506,74.4102446110960472,85.8743202181747449],"luv":[67.4983691984715506,5.35340686476390193,74.217420717938225],"rgb":[0.66666666666666663,0.66666666666666663,0],"xyz":[0.309512896760441802,0.372958073182539818,0.0556842125390607443],"hpluv":[85.8743202181747449,139.887458074797593,67.4983691984715506],"hsluv":[85.8743202181747449,100.000000000002373,67.4983691984715506]},"#aaaa11":{"lch":[67.528557359020084,73.1276023311446863,85.8743202181746881],"luv":[67.528557359020084,5.26112782412359792,72.9381022286724345],"rgb":[0.66666666666666663,0.66666666666666663,0.0666666666666666657],"xyz":[0.310524562260078907,0.373362739382394671,0.061012317503816374],"hpluv":[85.8743202181746881,137.414698385368666,67.528557359020084],"hsluv":[85.8743202181746881,98.2323220941626118,67.528557359020084]},"#aaaa22":{"lch":[67.5844605157977,70.7729399531690575,85.8743202181746],"luv":[67.5844605157977,5.09172284764045369,70.589541633712912],"rgb":[0.66666666666666663,0.66666666666666663,0.133333333333333331],"xyz":[0.312399920398555964,0.374112882637785471,0.0708892036997955666],"hpluv":[85.8743202181746,132.880028295953878,67.5844605157977],"hsluv":[85.8743202181746,94.9906661574379854,67.5844605157977]},"#aaaa33":{"lch":[67.6763416895574181,66.9597491826677924,85.8743202181744607],"luv":[67.6763416895574181,4.81738479440415723,66.7862322215321882],"rgb":[0.66666666666666663,0.66666666666666663,0.2],"xyz":[0.315487671131013669,0.375347982930768598,0.0871513575574067167],"hpluv":[85.8743202181744607,125.549870841925909,67.6763416895574181],"hsluv":[85.8743202181744607,89.7506270896691376,67.6763416895574181]},"#aaaa44":{"lch":[67.8086418759902898,61.5895608625658824,85.8743202181741623],"luv":[67.8086418759902898,4.43102935143870269,61.429960004304057],"rgb":[0.66666666666666663,0.66666666666666663,0.266666666666666663],"xyz":[0.319945666375232585,0.377131181028456164,0.110630132510293355],"hpluv":[85.8743202181741623,115.255428047766188,67.8086418759902898],"hsluv":[85.8743202181741623,82.3915379076671854,67.8086418759902898]},"#aaaa55":{"lch":[67.9849384953625844,54.6449851984581514,85.8743202181737786],"luv":[67.9849384953625844,3.93140541890911,54.5033802508787772],"rgb":[0.66666666666666663,0.66666666666666663,0.333333333333333315],"xyz":[0.32590808041459457,0.379516146644201,0.142032179784267271],"hpluv":[85.8743202181737786,101.994541545207838,67.9849384953625844],"hsluv":[85.8743202181737786,72.9118556794948631,67.9849384953625844]},"#aaaa66":{"lch":[68.2081473948541515,46.1798212544818156,85.8743202181731675],"luv":[68.2081473948541515,3.32238354287766668,46.0601526125338268],"rgb":[0.66666666666666663,0.66666666666666663,0.4],"xyz":[0.333493076188102755,0.382550144953604343,0.181979824191411232],"hpluv":[85.8743202181731675,85.9122949373369806,68.2081473948541515],"hsluv":[85.8743202181731675,61.415294923296095,68.2081473948541515]},"#aaaa77":{"lch":[68.4806287458147551,36.3079853189649668,85.874320218171988],"luv":[68.4806287458147551,2.61215937225179973,36.2138981792368284],"rgb":[0.66666666666666663,0.66666666666666663,0.466666666666666674],"xyz":[0.342807089208304661,0.386275750161685139,0.231033626097809142],"hpluv":[85.874320218171988,67.2781031791916604,68.4806287458147551],"hsluv":[85.874320218171988,48.0944497134402909,68.4806287458147551]},"#aaaa88":{"lch":[68.804250183835336,25.1900382005990835,85.8743202181696574],"luv":[68.804250183835336,1.81228437202058101,25.1247616884732103],"rgb":[0.66666666666666663,0.66666666666666663,0.533333333333333326],"xyz":[0.353947506310248461,0.390731917002462736,0.289706489501381281],"hpluv":[85.8743202181696574,46.4571845078746506,68.804250183835336],"hsluv":[85.8743202181696574,33.210400093935057,68.804250183835336]},"#aaaa99":{"lch":[69.1804292601881485,13.0180161266067085,85.8743202181625236],"luv":[69.1804292601881485,0.936574490007753058,12.9842817320504498],"rgb":[0.66666666666666663,0.66666666666666663,0.6],"xyz":[0.36700447041932116,0.395954702646091894,0.358473167142499216],"hpluv":[85.8743202181625236,23.8781611725121081,69.1804292601881485],"hsluv":[85.8743202181625236,17.0695511242654057,69.1804292601881485]},"#aaaaaa":{"lch":[69.6101658300367916,3.6866289517569387e-12,0],"luv":[69.6101658300367916,3.46613397703382525e-12,1.25584564385283521e-12],"rgb":[0.66666666666666663,0.66666666666666663,0.66666666666666663],"xyz":[0.382062163384573716,0.401977779832193,0.437777016759497817],"hpluv":[0,6.72041492281092149e-12,69.6101658300367916],"hsluv":[0,4.48262290109626775e-12,69.6101658300367916]},"#aaaabb":{"lch":[70.0940699613229441,13.6540669730780309,265.874320218191428],"luv":[70.0940699613229441,-0.982334841759501587,-13.618684340418703],"rgb":[0.66666666666666663,0.66666666666666663,0.733333333333333282],"xyz":[0.399199755491910391,0.408832816675127775,0.528035001858139563],"hpluv":[265.874320218191428,24.7183841606301087,70.0940699613229441],"hsluv":[265.874320218191428,17.6184615311656536,70.0940699613229441]},"#aaaacc":{"lch":[70.6323884029978188,27.7441307883788433,265.87432021818438],"luv":[70.6323884029978188,-1.99603725260327192,-27.6722356973355303],"rgb":[0.66666666666666663,0.66666666666666663,0.8],"xyz":[0.41849213093563209,0.416549766852616576,0.629641512528409719],"hpluv":[265.87432021818438,49.8432735452352063,70.6323884029978188],"hsluv":[265.87432021818438,36.467826786828347,70.6323884029978188]},"#aaaadd":{"lch":[71.2250312240615813,42.0886841218373817,265.874320218182],"luv":[71.2250312240615813,-3.02804878123905441,-41.979617097899343],"rgb":[0.66666666666666663,0.66666666666666663,0.866666666666666696],"xyz":[0.440010456486265689,0.425157097072870083,0.742971360428415717],"hpluv":[265.874320218182,74.9845908684596,71.2250312240615813],"hsluv":[265.874320218182,56.4865697219014891,71.2250312240615813]},"#aaaaee":{"lch":[71.8715993709786432,56.5301989351418541,265.874320218180742],"luv":[71.8715993709786432,-4.0670361537863835,-56.3837087159979902],"rgb":[0.66666666666666663,0.66666666666666663,0.933333333333333348],"xyz":[0.463822636752440398,0.4346819691793401,0.86838217649693894],"hpluv":[265.874320218180742,99.8073514218055,71.8715993709786432],"hsluv":[265.874320218180742,77.6546881169827259,71.8715993709786432]},"#aaaaff":{"lch":[72.5714133442747595,70.9376272522327,265.87432021818006],"luv":[72.5714133442747595,-5.10357119085512778,-70.7538021683399],"rgb":[0.66666666666666663,0.66666666666666663,1],"xyz":[0.489993685162271819,0.445150388543272824,1.00621636478872079],"hpluv":[265.87432021818006,124.036757123492009,72.5714133442747595],"hsluv":[265.87432021818006,99.999999999997641,72.5714133442747595]},"#88bb00":{"lch":[70.0174964893220135,84.793654921948729,107.670265811619984],"luv":[70.0174964893220135,-25.7381496181260658,80.7930168347331659],"rgb":[0.533333333333333326,0.733333333333333282,0],"xyz":[0.279226618658270809,0.407742918869184512,0.0639910921330886],"hpluv":[107.670265811619984,153.672481251000221,70.0174964893220135],"hsluv":[107.670265811619984,100.000000000002288,70.0174964893220135]},"#88bb11":{"lch":[70.045943224524,83.6147085810298,107.921872667069366],"luv":[70.045943224524,-25.7299069713944561,79.5574721715938296],"rgb":[0.533333333333333326,0.733333333333333282,0.0666666666666666657],"xyz":[0.280238284157907913,0.408147585069039365,0.0693191970978442318],"hpluv":[107.921872667069366,151.474322676164348,70.045943224524],"hsluv":[107.921872667069366,98.3704135852689,70.045943224524]},"#88bb22":{"lch":[70.0986261940145567,81.4532385975490172,108.403169751544382],"luv":[70.0986261940145567,-25.7149121100318041,77.2876016784231],"rgb":[0.533333333333333326,0.733333333333333282,0.133333333333333331],"xyz":[0.28211364229638497,0.408897728324430165,0.0791960832938234244],"hpluv":[108.403169751544382,147.447759071005407,70.0986261940145567],"hsluv":[108.403169751544382,95.3794817356858431,70.0986261940145567]},"#88bb33":{"lch":[70.185227758130182,77.9617926087192643,109.240455548552404],"luv":[70.185227758130182,-25.6910124331637526,73.6071530961765887],"rgb":[0.533333333333333326,0.733333333333333282,0.2],"xyz":[0.285201393028842676,0.410132828617413292,0.0954582371514345607],"hpluv":[109.240455548552404,140.95335886915251,70.185227758130182],"hsluv":[109.240455548552404,90.5378353052476399,70.185227758130182]},"#88bb44":{"lch":[70.3099541281250708,73.067556170236557,110.558097475340105],"luv":[70.3099541281250708,-25.6581823155790048,68.4143657790612281],"rgb":[0.533333333333333326,0.733333333333333282,0.266666666666666663],"xyz":[0.289659388273061591,0.411916026715100858,0.118937012104321199],"hpluv":[110.558097475340105,131.870330314080604,70.3099541281250708],"hsluv":[110.558097475340105,83.7238240635208655,70.3099541281250708]},"#88bb55":{"lch":[70.4762099132372,66.7907607981454845,112.553407091589676],"luv":[70.4762099132372,-25.6172250438111178,61.682765089203194],"rgb":[0.533333333333333326,0.733333333333333282,0.333333333333333315],"xyz":[0.295621802312423576,0.414300992330845719,0.150339059378295115],"hpluv":[112.553407091589676,120.257778383662554,70.4762099132372],"hsluv":[112.553407091589676,74.9213657205140606,70.4762099132372]},"#88bb66":{"lch":[70.6867901559138687,59.2534136994931373,115.564788197424377],"luv":[70.6867901559138687,-25.56971066242372,53.4523800375924836],"rgb":[0.533333333333333326,0.733333333333333282,0.4],"xyz":[0.303206798085931761,0.417334990640249037,0.190286703785439076],"hpluv":[115.564788197424377,106.368844477737383,70.6867901559138687],"hsluv":[115.564788197424377,64.2082802413586791,70.6867901559138687]},"#88bb77":{"lch":[70.9439811929011483,50.7088031944788611,120.213509646437856],"luv":[70.9439811929011483,-25.5178724843925657,43.8203252530908287],"rgb":[0.533333333333333326,0.733333333333333282,0.466666666666666674],"xyz":[0.312520811106133667,0.421060595848329833,0.239340505691836986],"hpluv":[120.213509646437856,90.6999673798200519,70.9439811929011483],"hsluv":[120.213509646437856,51.7430673824667338,70.9439811929011483]},"#88bb88":{"lch":[71.2496205680497781,41.6266624709187667,127.715012949237462],"luv":[71.2496205680497781,-25.4644588867656232,32.9293237414924747],"rgb":[0.533333333333333326,0.733333333333333282,0.533333333333333326],"xyz":[0.323661228208077467,0.425516762689107431,0.298013369095409153],"hpluv":[127.715012949237462,74.1358655131278397,71.2496205680497781],"hsluv":[127.715012949237462,37.7483692132655,71.2496205680497781]},"#88bb99":{"lch":[71.605136773449729,32.9376822973712677,140.491872589160209],"luv":[71.605136773449729,-25.4125532319559895,20.9545473192710077],"rgb":[0.533333333333333326,0.733333333333333282,0.6],"xyz":[0.336718192317150167,0.430739548332736588,0.366780046736527088],"hpluv":[140.491872589160209,58.3697971606621948,71.605136773449729],"hsluv":[140.491872589160209,40.0947707109065163,71.605136773449729]},"#88bbaa":{"lch":[72.0115788449514298,26.624214972975043,162.310745910586235],"luv":[72.0115788449514298,-25.3653817896029707,8.0898843993512255],"rgb":[0.533333333333333326,0.733333333333333282,0.66666666666666663],"xyz":[0.351775885282402723,0.43676262551883771,0.446083896353525633],"hpluv":[162.310745910586235,46.9152251525928463,72.0115788449514298],"hsluv":[162.310745910586235,42.5902472855224445,72.0115788449514298]},"#88bbbb":{"lch":[72.4696411221425478,25.9090725846495289,192.177050630060563],"luv":[72.4696411221425478,-25.3261303787159093,-5.46508574835939687],"rgb":[0.533333333333333326,0.733333333333333282,0.733333333333333282],"xyz":[0.368913477389739397,0.443617662361772469,0.536341881452167435],"hpluv":[192.177050630060563,45.3664800039612786,72.4696411221425478],"hsluv":[192.177050630060563,45.1889022919971595,72.4696411221425478]},"#88bbcc":{"lch":[72.9796861172365539,31.9509756483125074,217.648879320727843],"luv":[72.9796861172365539,-25.297786835453639,-19.5163220435359541],"rgb":[0.533333333333333326,0.733333333333333282,0.8],"xyz":[0.388205852833461096,0.451334612539261271,0.637948392122437591],"hpluv":[217.648879320727843,55.5547835161394303,72.9796861172365539],"hsluv":[217.648879320727843,47.846459663484211,72.9796861172365539]},"#88bbdd":{"lch":[73.5417671198988501,42.2771793498237827,233.271065498294831],"luv":[73.5417671198988501,-25.2830202693059967,-33.8840490472881442],"rgb":[0.533333333333333326,0.733333333333333282,0.866666666666666696],"xyz":[0.409724178384094695,0.459941942759514777,0.751278240022443589],"hpluv":[233.271065498294831,72.9476439375157781,73.5417671198988501],"hsluv":[233.271065498294831,52.600286903313318,73.5417671198988501]},"#88bbee":{"lch":[74.1556513704433655,54.6140049995012049,242.42172167609948],"luv":[74.1556513704433655,-25.2841013367454792,-48.4087157615106349],"rgb":[0.533333333333333326,0.733333333333333282,0.933333333333333348],"xyz":[0.433536358650269404,0.469466814865984794,0.876689056090966812],"hpluv":[242.42172167609948,93.4542589851821646,74.1556513704433655],"hsluv":[242.42172167609948,75.5983078602269387,74.1556513704433655]},"#88bbff":{"lch":[74.8208441285393206,67.8489412305869877,248.103607922481928],"luv":[74.8208441285393206,-25.3028619495915343,-62.9543009116260492],"rgb":[0.533333333333333326,0.733333333333333282,1],"xyz":[0.459707407060100826,0.479935234229917518,1.01452324438274855],"hpluv":[248.103607922481928,115.069386567942303,74.8208441285393206],"hsluv":[248.103607922481928,99.9999999999973568,74.8208441285393206]},"#333300":{"lch":[20.3279441284931792,22.4095383785379596,85.8743202181747449],"luv":[20.3279441284931792,1.61224273913978733,22.3514671484727536],"rgb":[0.2,0.2,0],"xyz":[0.0254898472303871464,0.0307148568226560392,0.00458585760277267773],"hpluv":[85.8743202181747449,139.887458074797735,20.3279441284931792],"hsluv":[85.8743202181747449,100.000000000002458,20.3279441284931792]},"#333311":{"lch":[20.4867879892499971,17.9332091798965507,85.8743202181741],"luv":[20.4867879892499971,1.2901955319819518,17.8867377399899183],"rgb":[0.2,0.2,0.0666666666666666657],"xyz":[0.0265015127300242681,0.0311195230225108921,0.00991396256752831],"hpluv":[85.8743202181741,111.076827622251201,20.4867879892499971],"hsluv":[85.8743202181741,79.4044220625277717,20.4867879892499971]},"#333322":{"lch":[20.7776374982028358,10.4602453251552614,85.8743202181717749],"luv":[20.7776374982028358,0.752556982220839221,10.4331390411008691],"rgb":[0.2,0.2,0.133333333333333331],"xyz":[0.0283768708685012867,0.0318696662779017134,0.019790848763507507],"hpluv":[85.8743202181717749,63.8829601302186703,20.7776374982028358],"hsluv":[85.8743202181717749,45.6673964981637113,20.7776374982028358]},"#333333":{"lch":[21.246731294981295,1.12524964979295229e-12,0],"luv":[21.246731294981295,1.05794917113478783e-12,3.83314917077821647e-13],"rgb":[0.2,0.2,0.2],"xyz":[0.0314646216009590307,0.0331047665708848263,0.0360530026211186502],"hpluv":[0,6.72041492281092149e-12,21.246731294981295],"hsluv":[0,1.92419399944792236e-12,21.246731294981295]},"#333344":{"lch":[21.9038391599933462,12.2084714240410825,265.874320218182163],"luv":[21.9038391599933462,-0.878332211796974,-12.176834853004598],"rgb":[0.2,0.2,0.266666666666666663],"xyz":[0.0359226168451779043,0.0348879646685724,0.0595317775740052887],"hpluv":[265.874320218182163,70.7262082967351517,21.9038391599933462],"hsluv":[265.874320218182163,13.7757030029577514,21.9038391599933462]},"#333355":{"lch":[22.7485838486986935,25.0264321710322868,265.874320218179776],"luv":[22.7485838486986935,-1.80051382017376982,-24.9615796213830023],"rgb":[0.2,0.2,0.333333333333333315],"xyz":[0.0418850308845399,0.0372729302843172322,0.0909338248479792],"hpluv":[265.874320218179776,139.599512106194084,22.7485838486986935],"hsluv":[265.874320218179776,27.1905063829271256,22.7485838486986935]},"#333366":{"lch":[23.7726526978294,37.7235732610660364,265.874320218179],"luv":[23.7726526978294,-2.71400312032964841,-37.625817820292724],"rgb":[0.2,0.2,0.4],"xyz":[0.0494700266580480746,0.0403069285937205438,0.130881469255123173],"hpluv":[265.874320218179,201.360603518100845,23.7726526978294],"hsluv":[265.874320218179,39.2200280117306193,23.7726526978294]},"#333377":{"lch":[24.9621315786770737,49.9646270765614062,265.874320218178639],"luv":[24.9621315786770737,-3.59467945556105306,-49.8351506319748268],"rgb":[0.2,0.2,0.466666666666666674],"xyz":[0.0587840396782499941,0.0440325338018013601,0.179935271161521082],"hpluv":[265.874320218178639,253.992158426909725,24.9621315786770737],"hsluv":[265.874320218178639,49.4713434217918646,24.9621315786770737]},"#333388":{"lch":[26.2997861111378413,61.6680265106551175,265.874320218178468],"luv":[26.2997861111378413,-4.43667452222106906,-61.5082223194812912],"rgb":[0.2,0.2,0.533333333333333326],"xyz":[0.0699244567801938222,0.048488700642578958,0.238608134565093222],"hpluv":[265.874320218178468,297.541234413863208,26.2997861111378413],"hsluv":[265.874320218178468,57.953618257344317,26.2997861111378413]},"#333399":{"lch":[27.7670269025285634,72.8744236647892336,265.874320218178354],"luv":[27.7670269025285634,-5.24291301488723782,-72.6855796399362788],"rgb":[0.2,0.2,0.6],"xyz":[0.0829814208892665356,0.0537114862862081155,0.307374812206211157],"hpluv":[265.874320218178354,333.031319879373427,27.7670269025285634],"hsluv":[265.874320218178354,64.8662025552495862,27.7670269025285634]},"#3333aa":{"lch":[29.34539826905295,83.6653121043175361,265.874320218178241],"luv":[29.34539826905295,-6.01925794630032573,-83.4485049793509575],"rgb":[0.2,0.2,0.66666666666666663],"xyz":[0.0980391138545190777,0.059734563472309217,0.386678661823209757],"hpluv":[265.874320218178241,361.780166220798492,29.34539826905295],"hsluv":[265.874320218178241,70.4657614516561353,29.34539826905295]},"#3333bb":{"lch":[31.0175640968910713,94.1237197643615247,265.874320218178184],"luv":[31.0175640968910713,-6.77168271864664284,-93.8798111173964855],"rgb":[0.2,0.2,0.733333333333333282],"xyz":[0.115176705961855724,0.0665896003152439686,0.476936646921851504],"hpluv":[265.874320218178184,385.062051502536349,31.0175640968910713],"hsluv":[265.874320218178184,75.0004925607309758,31.0175640968910713]},"#3333cc":{"lch":[32.7678589751368321,104.319620441623087,265.874320218178127],"luv":[32.7678589751368321,-7.50522156082274261,-104.049290523324899],"rgb":[0.2,0.2,0.8],"xyz":[0.134469081405577451,0.0743065504927327702,0.578543157592121604],"hpluv":[265.874320218178127,403.977575952485893,32.7678589751368321],"hsluv":[265.874320218178127,79.524052836351089,32.7678589751368321]},"#3333dd":{"lch":[34.5825131799139243,114.307143948468337,265.874320218178127],"luv":[34.5825131799139243,-8.22376881440244745,-114.010932739554079],"rgb":[0.2,0.2,0.866666666666666696],"xyz":[0.155987406956211,0.0829138807129863,0.691873005492127602],"hpluv":[265.874320218178127,419.426773039758132,34.5825131799139243],"hsluv":[265.874320218178127,86.1542613798901584,34.5825131799139243]},"#3333ee":{"lch":[36.4496605331747929,124.126383834434506,265.87432021817807],"luv":[36.4496605331747929,-8.93020898923314732,-123.80472741871364],"rgb":[0.2,0.2,0.933333333333333348],"xyz":[0.179799587222385732,0.092438752819456349,0.817283821560650825],"hpluv":[265.87432021817807,432.12554656995303,36.4496605331747929],"hsluv":[265.87432021817807,92.9362870993519,36.4496605331747929]},"#3333ff":{"lch":[38.3592184432327414,133.806417871427385,265.87432021817807],"luv":[38.3592184432327414,-9.62663407069321231,-133.45967698167118],"rgb":[0.2,0.2,1],"xyz":[0.205970635632217125,0.102907172183389045,0.95511800985243267],"hpluv":[265.87432021817807,442.635784237250618,38.3592184432327414],"hsluv":[265.87432021817807,99.99999999999946,38.3592184432327414]},"#aabb00":{"lch":[72.2864137555308162,81.0402066187271686,93.9104624709461291],"luv":[72.2864137555308162,-5.52673715975233737,80.8515322376329664],"rgb":[0.66666666666666663,0.733333333333333282,0],"xyz":[0.343467394669040582,0.440867068999738376,0.0670023785085933632],"hpluv":[93.9104624709461291,142.260125307220505,72.2864137555308162],"hsluv":[93.9104624709461291,100.00000000000226,72.2864137555308162]},"#aabb11":{"lch":[72.3134178153803759,79.8795424406406198,94.0047051989067199],"luv":[72.3134178153803759,-5.5786590117117969,79.6845020324350912],"rgb":[0.66666666666666663,0.733333333333333282,0.0666666666666666657],"xyz":[0.344479060168677687,0.441271735199593229,0.072330483473349],"hpluv":[94.0047051989067199,140.170301198642704,72.3134178153803759],"hsluv":[94.0047051989067199,98.4998030851846522,72.3134178153803759]},"#aabb22":{"lch":[72.3634325080893319,77.7463008610920667,94.1853407287125179],"luv":[72.3634325080893319,-5.67416055225396132,77.5389656857163],"rgb":[0.66666666666666663,0.733333333333333282,0.133333333333333331],"xyz":[0.346354418307154743,0.44202187845498403,0.0822073696693281925],"hpluv":[94.1853407287125179,136.332658010127801,72.3634325080893319],"hsluv":[94.1853407287125179,95.7441801677588131,72.3634325080893319]},"#aabb33":{"lch":[72.4456578556837343,74.284969405898,94.5007685828256427],"luv":[72.4456578556837343,-5.82932493434540167,74.0558954469191377],"rgb":[0.66666666666666663,0.733333333333333282,0.2],"xyz":[0.349442169039612449,0.443256978747967156,0.0984695235269393288],"hpluv":[94.5007685828256427,130.115164427369336,72.4456578556837343],"hsluv":[94.5007685828256427,91.2774770665997721,72.4456578556837343]},"#aabb44":{"lch":[72.5641031469497193,69.3968632274838768,95.0004815565242922],"luv":[72.5641031469497193,-6.04891620231322502,69.1327363742496317],"rgb":[0.66666666666666663,0.733333333333333282,0.266666666666666663],"xyz":[0.353900164283831364,0.445040176845654722,0.121948298479825967],"hpluv":[95.0004815565242922,121.354905136961719,72.5641031469497193],"hsluv":[95.0004815565242922,84.978619462346515,72.5641031469497193]},"#aabb55":{"lch":[72.7220260779140659,63.0543258899363366,95.7659530899235705],"luv":[72.7220260779140659,-6.33475857174489843,62.7353078200147181],"rgb":[0.66666666666666663,0.733333333333333282,0.333333333333333315],"xyz":[0.359862578323193349,0.447425142461399583,0.153350345753799883],"hpluv":[95.7659530899235705,110.024206089370551,72.7220260779140659],"hsluv":[95.7659530899235705,76.8198788639563475,72.7220260779140659]},"#aabb66":{"lch":[72.922116394456026,55.2958006214329245,96.9449007941817342],"luv":[72.922116394456026,-6.68608027099689206,54.8900892418207675],"rgb":[0.66666666666666663,0.733333333333333282,0.4],"xyz":[0.367447574096701535,0.450459140770802902,0.193297990160943844],"hpluv":[96.9449007941817342,96.2215198645611167,72.922116394456026],"hsluv":[96.9449007941817342,66.8569788454327778,72.922116394456026]},"#aabb77":{"lch":[73.1665925415562555,46.2248747385797927,98.8352478745929801],"luv":[73.1665925415562555,-7.09985217623529596,45.6763740206356488],"rgb":[0.66666666666666663,0.733333333333333282,0.466666666666666674],"xyz":[0.37676158711690344,0.454184745978883697,0.242351792067341754],"hpluv":[98.8352478745929801,80.1682197570307267,73.1665925415562555],"hsluv":[98.8352478745929801,55.2184354086421223,73.1665925415562555]},"#aabb88":{"lch":[73.4572589636137,36.0214199172978056,102.133241078873],"luv":[73.4572589636137,-7.57119112276486117,35.2167539367396216],"rgb":[0.66666666666666663,0.733333333333333282,0.533333333333333326],"xyz":[0.387902004218847241,0.458640912819661295,0.301024655470913949],"hpluv":[102.133241078873,62.2250760292602862,73.4572589636137],"hsluv":[102.133241078873,42.0922357464751116,73.4572589636137]},"#aabb99":{"lch":[73.7955437608147236,25.0118273668521454,108.880774444702425],"luv":[73.7955437608147236,-8.09382587885112592,23.6660408786948082],"rgb":[0.66666666666666663,0.733333333333333282,0.6],"xyz":[0.40095896832792,0.463863698463290453,0.369791333112031828],"hpluv":[108.880774444702425,43.0085312761643337,73.7955437608147236],"hsluv":[108.880774444702425,27.7101400322224,73.7955437608147236]},"#aabbaa":{"lch":[74.1825262226786464,14.1574418893213867,127.715012949227386],"luv":[74.1825262226786464,-8.66059336811296632,11.1994322785447302],"rgb":[0.66666666666666663,0.733333333333333282,0.66666666666666663],"xyz":[0.416016661293172496,0.469886775649391575,0.449095182729030429],"hpluv":[127.715012949227386,24.2171200924073027,74.1825262226786464],"hsluv":[127.715012949227386,12.3308304853939106,74.1825262226786464]},"#aabbbb":{"lch":[74.6189593067414734,9.47715438031144153,192.177050630059],"luv":[74.6189593067414734,-9.26392276955498417,-1.99904729008021675],"rgb":[0.66666666666666663,0.733333333333333282,0.733333333333333282],"xyz":[0.43315425340050917,0.476741812492326333,0.539353167827672175],"hpluv":[192.177050630059,16.1164020856357908,74.6189593067414734],"hsluv":[192.177050630059,16.0533177597809029,74.6189593067414734]},"#aabbcc":{"lch":[75.1052899078477623,18.5983929047544514,237.852316168687679],"luv":[75.1052899078477623,-9.89626817417043547,-15.7468757175676597],"rgb":[0.66666666666666663,0.733333333333333282,0.8],"xyz":[0.452446628844230925,0.484458762669815135,0.640959678497942331],"hpluv":[237.852316168687679,31.4227520087917149,75.1052899078477623],"hsluv":[237.852316168687679,25.8004515395991127,75.1052899078477623]},"#aabbdd":{"lch":[75.6416785331857682,31.6798915222297,250.547006926215033],"luv":[75.6416785331857682,-10.5504613433008458,-29.8714461033234144],"rgb":[0.66666666666666663,0.733333333333333282,0.866666666666666696],"xyz":[0.473964954394864413,0.493066092890068641,0.754289526397948329],"hpluv":[250.547006926215033,53.1449318902714438,75.6416785331857682],"hsluv":[250.547006926215033,48.9122949421499484,75.6416785331857682]},"#aabbee":{"lch":[76.2280192594463699,45.6175545861468166,255.761586302643195],"luv":[76.2280192594463699,-11.2199701465387403,-44.2162137267639],"rgb":[0.66666666666666663,0.733333333333333282,0.933333333333333348],"xyz":[0.497777134661039178,0.502590964996538658,0.879700342466471552],"hpluv":[255.761586302643195,76.8288153841444483,76.2280192594463699],"hsluv":[255.761586302643195,73.6249760737912311,76.2280192594463699]},"#aabbff":{"lch":[76.863960378353255,59.8395450787859247,258.530312903596609],"luv":[76.863960378353255,-11.8990616804050067,-58.6445520603744583],"rgb":[0.66666666666666663,0.733333333333333282,1],"xyz":[0.523948183070870543,0.513059384360471382,1.01753453075825329],"hpluv":[258.530312903596609,104.151140840900069,76.863960378353255],"hsluv":[258.530312903596609,99.9999999999969305,76.863960378353255]},"#88cc00":{"lch":[75.0884647575288,93.9986167747887,111.475410134903882],"luv":[75.0884647575288,-34.413070492851,87.4727416674912348],"rgb":[0.533333333333333326,0.8,0],"xyz":[0.317450361967887784,0.484190405488419406,0.0767323399029605363],"hpluv":[111.475410134903882,158.85012628624969,75.0884647575288],"hsluv":[111.475410134903882,100.000000000002288,75.0884647575288]},"#88cc11":{"lch":[75.1138336746799,92.9472917959209752,111.713770271434171],"luv":[75.1138336746799,-34.3877142984514421,86.3520941119794685],"rgb":[0.533333333333333326,0.8,0.0666666666666666657],"xyz":[0.318462027467524889,0.484595071688274259,0.082060444867716173],"hpluv":[111.713770271434171,157.020421425354783,75.1138336746799],"hsluv":[111.713770271434171,98.6248626695712289,75.1138336746799]},"#88cc22":{"lch":[75.1608235532889495,91.0175657840787551,112.166724150973],"luv":[75.1608235532889495,-34.3412008388942667,84.2904455214339805],"rgb":[0.533333333333333326,0.8,0.133333333333333331],"xyz":[0.320337385606001945,0.48534521494366506,0.0919373310636953656],"hpluv":[112.166724150973,153.664310911800271,75.1608235532889495],"hsluv":[112.166724150973,96.0970283406349,75.1608235532889495]},"#88cc33":{"lch":[75.2380863503033908,87.8942550668024865,112.94545296029041],"luv":[75.2380863503033908,-34.2659803117460342,80.9397471396048331],"rgb":[0.533333333333333326,0.8,0.2],"xyz":[0.323425136338459651,0.486580315236648187,0.108199484921306516],"hpluv":[112.94545296029041,148.2388630129999,75.2380863503033908],"hsluv":[112.94545296029041,91.9942509365254324,75.2380863503033908]},"#88cc44":{"lch":[75.3494055810326415,83.5027286146262,114.147802574759467],"luv":[75.3494055810326415,-34.1602904869016655,76.1956707427555244],"rgb":[0.533333333333333326,0.8,0.266666666666666663],"xyz":[0.327883131582678566,0.488363513334335753,0.131678259874193154],"hpluv":[114.147802574759467,140.624231819797672,75.3494055810326415],"hsluv":[114.147802574759467,86.1974134191241177,75.3494055810326415]},"#88cc55":{"lch":[75.4978684165763241,77.8461227965530469,115.917002828128631],"luv":[75.4978684165763241,-34.0241050685150555,70.0169915716368365],"rgb":[0.533333333333333326,0.8,0.333333333333333315],"xyz":[0.333845545622040552,0.490748478950080613,0.16308030714816707],"hpluv":[115.917002828128631,130.840327774204638,75.4978684165763241],"hsluv":[115.917002828128631,78.6694108520956092,75.4978684165763241]},"#88cc66":{"lch":[75.6860396561484663,71.0106875190110287,118.477611184333398],"luv":[75.6860396561484663,-33.8589835890750237,62.4186428259808963],"rgb":[0.533333333333333326,0.8,0.4],"xyz":[0.341430541395548737,0.493782477259483932,0.203027951555311],"hpluv":[118.477611184333398,119.054896833398359,75.6860396561484663],"hsluv":[118.477611184333398,69.4467240035668141,75.6860396561484663]},"#88cc77":{"lch":[75.9160535408259705,63.1826013081171638,122.199343200922883],"luv":[75.9160535408259705,-33.6678964132470924,53.4650713940171656],"rgb":[0.533333333333333326,0.8,0.466666666666666674],"xyz":[0.350744554415750642,0.497508082467564727,0.252081753461708913],"hpluv":[122.199343200922883,105.609553255175555,75.9160535408259705],"hsluv":[122.199343200922883,58.6308874961384063,75.9160535408259705]},"#88cc88":{"lch":[76.1896681333118124,54.6887581458639929,127.715012949238314],"luv":[76.1896681333118124,-33.4549913615237,43.2622678616965288],"rgb":[0.533333333333333326,0.8,0.533333333333333326],"xyz":[0.361884971517694443,0.50196424930834227,0.310754616865281108],"hpluv":[127.715012949238314,91.92606633748386,76.1896681333118124],"hsluv":[127.715012949238314,46.3779062484352878,76.1896681333118124]},"#88cc99":{"lch":[76.5083007543168492,46.0935908553499587,136.122445502284393],"luv":[76.5083007543168492,-33.2253063874269188,31.9483666781575764],"rgb":[0.533333333333333326,0.8,0.6],"xyz":[0.374941935626767142,0.507187034951971483,0.379521294506399],"hpluv":[136.122445502284393,78.7570782006024643,76.5083007543168492],"hsluv":[136.122445502284393,48.1280089891728622,76.5083007543168492]},"#88ccaa":{"lch":[76.8730534179438223,38.4110576559043437,149.173477570542047],"luv":[76.8730534179438223,-32.9844501501569098,19.6833787378341469],"rgb":[0.533333333333333326,0.8,0.66666666666666663],"xyz":[0.389999628592019698,0.513210112138072549,0.458825144123397588],"hpluv":[149.173477570542047,66.8865090410736229,76.8730534179438223],"hsluv":[149.173477570542047,50.0095890879800891,76.8730534179438223]},"#88ccbb":{"lch":[77.2847330465352087,33.404634806871222,168.536638924911273],"luv":[77.2847330465352087,-32.73827895277973,6.638879257104497],"rgb":[0.533333333333333326,0.8,0.733333333333333282],"xyz":[0.407137220699356372,0.520065148981007308,0.54908312922203939],"hpluv":[168.536638924911273,59.444025112992847,77.2847330465352087],"hsluv":[168.536638924911273,51.9915664660802292,77.2847330465352087]},"#88cccc":{"lch":[77.7438691793350074,33.2404934388306,192.177050630060876],"luv":[77.7438691793350074,-32.4925976386916417,-7.01152642061846443],"rgb":[0.533333333333333326,0.8,0.8],"xyz":[0.426429596143078071,0.527782099158496165,0.650689639892309546],"hpluv":[192.177050630060876,60.6231146417445359,77.7438691793350074],"hsluv":[192.177050630060876,54.0427382519684585,77.7438691793350074]},"#88ccdd":{"lch":[78.2507307533704,38.5418325774740964,213.193277164244591],"luv":[78.2507307533704,-32.2529061156020589,-21.1003058159876602],"rgb":[0.533333333333333326,0.8,0.866666666666666696],"xyz":[0.44794792169371167,0.536389429378749671,0.764019487792315544],"hpluv":[213.193277164244591,72.2588367593471759,78.2507307533704],"hsluv":[213.193277164244591,56.1332045791076126,78.2507307533704]},"#88ccee":{"lch":[78.8053428571366368,47.78945312574524,227.924421751618695],"luv":[78.8053428571366368,-32.0242046898233,-35.4722728908382834],"rgb":[0.533333333333333326,0.8,0.933333333333333348],"xyz":[0.47176010195988638,0.545914301485219688,0.889430303860838767],"hpluv":[227.924421751618695,92.3999074491721473,78.8053428571366368],"hsluv":[227.924421751618695,70.4270935368067796,78.8053428571366368]},"#88ccff":{"lch":[79.4075039272108114,59.2521837878726885,237.529017152572294],"luv":[79.4075039272108114,-31.8108626015509195,-49.9889018100727327],"rgb":[0.533333333333333326,0.8,1],"xyz":[0.497931150369717801,0.556382720849152412,1.02726449215262061],"hpluv":[237.529017152572294,118.549697277888072,79.4075039272108114],"hsluv":[237.529017152572294,99.999999999996561,79.4075039272108114]},"#334400":{"lch":[26.2681529832905483,31.0251081485104194,104.276907196552472],"luv":[26.2681529832905483,-7.65105337509169647,30.0669040288198879],"rgb":[0.2,0.266666666666666663,0],"xyz":[0.034322417713353183,0.0483799977885883553,0.00753004776376127276],"hpluv":[104.276907196552472,149.872894059772364,26.2681529832905483],"hsluv":[104.276907196552472,100.000000000002302,26.2681529832905483]},"#334411":{"lch":[26.3856741683463127,27.3886432490873446,106.295788944443402],"luv":[26.3856741683463127,-7.68514827558869662,26.2883296351821087],"rgb":[0.2,0.266666666666666663,0.0666666666666666657],"xyz":[0.0353340832129903082,0.0487846639884432082,0.0128581527285169042],"hpluv":[106.295788944443402,131.716945387015755,26.3856741683463127],"hsluv":[106.295788944443402,86.6296124974134614,26.3856741683463127]},"#334422":{"lch":[26.6018195362025054,21.2226436820006832,111.412237748000109],"luv":[26.6018195362025054,-7.74787020962619799,19.7578114189793403],"rgb":[0.2,0.266666666666666663,0.133333333333333331],"xyz":[0.0372094413514673233,0.0495348072438340295,0.0227350389244961],"hpluv":[111.412237748000109,101.234249163259577,26.6018195362025054],"hsluv":[111.412237748000109,63.7673799144094,26.6018195362025054]},"#334433":{"lch":[26.9529945323855813,12.8320575385027151,127.715012949236225],"luv":[26.9529945323855813,-7.8498102472204323,10.150969399721264],"rgb":[0.2,0.266666666666666663,0.2],"xyz":[0.0402971920839250639,0.0507699075368171424,0.038997192782107247],"hpluv":[127.715012949236225,60.4127494816677171,26.9529945323855813],"hsluv":[127.715012949236225,30.7608572023581708,26.9529945323855813]},"#334444":{"lch":[27.4501004194092673,8.17817622085537721,192.177050630060421],"luv":[27.4501004194092673,-7.99417102070306651,-1.72504956193021397],"rgb":[0.2,0.266666666666666663,0.266666666666666663],"xyz":[0.0447551873281439444,0.0525531056345047154,0.0624759677349938855],"hpluv":[192.177050630060421,37.8052272806132379,27.4501004194092673],"hsluv":[192.177050630060421,37.6572465300637518,27.4501004194092673]},"#334455":{"lch":[28.0976851129048839,16.9879579660521678,241.20654356816641],"luv":[28.0976851129048839,-8.1823109542023289,-14.8875956186718064],"rgb":[0.2,0.266666666666666663,0.333333333333333315],"xyz":[0.0507176013675059364,0.0549380712502495483,0.0938780150089678],"hpluv":[241.20654356816641,76.720241835207986,28.0976851129048839],"hsluv":[241.20654356816641,44.9859363973003568,28.0976851129048839]},"#334466":{"lch":[28.8949601880565652,29.7043747380071501,253.545194757545516],"luv":[28.8949601880565652,-8.41402976058801855,-28.487786536758108],"rgb":[0.2,0.266666666666666663,0.4],"xyz":[0.0583025971410141147,0.0579720695596528598,0.133825659416111742],"hpluv":[253.545194757545516,130.448064952476017,28.8949601880565652],"hsluv":[253.545194757545516,52.1427730716471629,28.8949601880565652]},"#334477":{"lch":[29.8367962202096138,42.8398018741040758,258.299336276781332],"luv":[29.8367962202096138,-8.68785350705267589,-41.9496105590085691],"rgb":[0.2,0.266666666666666663,0.466666666666666674],"xyz":[0.0676166101612160342,0.0616976747677336762,0.182879461322509651],"hpluv":[258.299336276781332,182.19421868795277,29.8367962202096138],"hsluv":[258.299336276781332,58.7347196438674857,29.8367962202096138]},"#334488":{"lch":[30.9147794404111025,55.6960507233291082,260.699324576281469],"luv":[30.9147794404111025,-9.00134255207500189,-54.9638599302837605],"rgb":[0.2,0.266666666666666663,0.533333333333333326],"xyz":[0.0787570272631598622,0.066153841608511274,0.241552324726081818],"hpluv":[260.699324576281469,228.611238042833349,30.9147794404111025],"hsluv":[260.699324576281469,64.5716173949788583,30.9147794404111025]},"#334499":{"lch":[32.1182691124294664,68.0605660836803281,262.102678541403236],"luv":[32.1182691124294664,-9.35140200670356769,-67.4150720250304],"rgb":[0.2,0.266666666666666663,0.6],"xyz":[0.0918139913722325618,0.0713766272521404316,0.310319002367199726],"hpluv":[262.102678541403236,268.895014901030436,32.1182691124294664],"hsluv":[262.102678541403236,69.6097770986353623,32.1182691124294664]},"#3344aa":{"lch":[33.435366318838156,79.8975403264742852,263.001802037450773],"luv":[33.435366318838156,-9.73456660877536528,-79.3023023824649158],"rgb":[0.2,0.266666666666666663,0.66666666666666663],"xyz":[0.106871684337485118,0.07739970443824154,0.389622851984198326],"hpluv":[263.001802037450773,303.226149032408784,33.435366318838156],"hsluv":[263.001802037450773,73.891501645941716,33.435366318838156]},"#3344bb":{"lch":[34.8537252521307721,91.2457354427413492,263.615054402289786],"luv":[34.8537252521307721,-10.1472390443123768,-90.6797539490724773],"rgb":[0.2,0.266666666666666663,0.733333333333333282],"xyz":[0.124009276444821764,0.0842547412811763,0.479880837082840073],"hpluv":[263.615054402289786,332.202349056841342,34.8537252521307721],"hsluv":[263.615054402289786,77.4995146205371412,34.8537252521307721]},"#3344cc":{"lch":[36.3611746115969083,102.170263494902102,264.052905077601281],"luv":[36.3611746115969083,-10.5858721727669973,-101.620382074461631],"rgb":[0.2,0.266666666666666663,0.8],"xyz":[0.143301651888543491,0.0919716914586651,0.581487347753110284],"hpluv":[264.052905077601281,356.55451128807033,36.3611746115969083],"hsluv":[264.052905077601281,80.5286468598271767,36.3611746115969083]},"#3344dd":{"lch":[37.9461503215655611,112.73940211649635,264.376684246138268],"luv":[37.9461503215655611,-11.0470957042534899,-112.196855865421313],"rgb":[0.2,0.266666666666666663,0.866666666666666696],"xyz":[0.164819977439177034,0.100579021678918634,0.694817195653116282],"hpluv":[264.376684246138268,377.005191833442723,37.9461503215655611],"hsluv":[264.376684246138268,84.1625325255073,37.9461503215655611]},"#3344ee":{"lch":[39.5979632159824462,123.014623823289881,264.622878978329823],"luv":[39.5979632159824462,-11.5277944422180187,-122.473293536523641],"rgb":[0.2,0.266666666666666663,0.933333333333333348],"xyz":[0.188632157705351772,0.110103893785388651,0.820228011721639505],"hpluv":[264.622878978329823,394.205992168221826,39.5979632159824462],"hsluv":[264.622878978329823,91.9832832027675664,39.5979632159824462]},"#3344ff":{"lch":[41.3069357297154482,133.047388274610427,264.814390787746049],"luv":[41.3069357297154482,-12.0251481753234213,-132.502842754623401],"rgb":[0.2,0.266666666666666663,1],"xyz":[0.214803206115183165,0.120572313149321361,0.95806220001342135],"hpluv":[264.814390787746049,408.716999433792864,41.3069357297154482],"hsluv":[264.814390787746049,99.9999999999994458,41.3069357297154482]},"#aacc00":{"lch":[77.1199831352121,88.8460909387721,100.173289143969555],"luv":[77.1199831352121,-15.692520471132994,87.4492577233428108],"rgb":[0.66666666666666663,0.8,0],"xyz":[0.381691137978657502,0.517314555618973326,0.0797436262784653],"hpluv":[100.173289143969555,156.730643533439519,77.1199831352121],"hsluv":[100.173289143969555,100.000000000002373,77.1199831352121]},"#aacc11":{"lch":[77.1442576556984676,87.800209961997254,100.311366942902],"luv":[77.1442576556984676,-15.7160097521192821,86.3821967007212237],"rgb":[0.66666666666666663,0.8,0.0666666666666666657],"xyz":[0.382702803478294606,0.517719221818828235,0.085071731243220941],"hpluv":[100.311366942902,155.08420894585916,77.1442576556984676],"hsluv":[100.311366942902,98.7181568051142,77.1442576556984676]},"#aacc22":{"lch":[77.1892227090432641,85.8765024717939411,100.574350259733862],"luv":[77.1892227090432641,-15.7593085348968636,84.4181134075499102],"rgb":[0.66666666666666663,0.8,0.133333333333333331],"xyz":[0.384578161616771663,0.518469365074219,0.0949486174392001336],"hpluv":[100.574350259733862,152.047171814071362,77.1892227090432641],"hsluv":[100.574350259733862,96.3604791744028404,77.1892227090432641]},"#aacc33":{"lch":[77.2631626362465482,82.7513779572315116,101.028364552392574],"luv":[77.2631626362465482,-15.8299191574657527,81.2231753460099668],"rgb":[0.66666666666666663,0.8,0.2],"xyz":[0.387665912349229369,0.519704465367202162,0.111210771296811284],"hpluv":[101.028364552392574,147.088857703341773,77.2631626362465482],"hsluv":[101.028364552392574,92.5301726329619,77.2631626362465482]},"#aacc44":{"lch":[77.3697083481362569,78.3307208035327278,101.734312614214147],"luv":[77.3697083481362569,-15.9304072801298968,76.6937021240348],"rgb":[0.66666666666666663,0.8,0.266666666666666663],"xyz":[0.392123907593448284,0.521487663464889728,0.134689546249697922],"hpluv":[101.734312614214147,140.021584702469511,77.3697083481362569],"hsluv":[101.734312614214147,87.1104907412273377,77.3697083481362569]},"#aacc55":{"lch":[77.5118305539362495,72.5836718124644875,102.784946304826448],"luv":[77.5118305539362495,-16.0622064150904862,70.7841432727597493],"rgb":[0.66666666666666663,0.8,0.333333333333333315],"xyz":[0.398086321632810269,0.523872629080634478,0.16609159352367181],"hpluv":[102.784946304826448,130.736122666873541,77.5118305539362495],"hsluv":[102.784946304826448,80.0585735006639,77.5118305539362495]},"#aacc66":{"lch":[77.6920071630818114,65.5409770618580865,104.333567867024144],"luv":[77.6920071630818114,-16.225762577214013,63.5007425390513731],"rgb":[0.66666666666666663,0.8,0.4],"xyz":[0.405671317406318455,0.526906627390037796,0.2060392379308158],"hpluv":[104.333567867024144,119.198186871977654,77.6920071630818114],"hsluv":[104.333567867024144,71.3979720959128,77.6920071630818114]},"#aacc77":{"lch":[77.912311817127474,57.2990991241466574,106.653185897117098],"luv":[77.912311817127474,-16.4206512214041886,54.8958010589496865],"rgb":[0.66666666666666663,0.8,0.466666666666666674],"xyz":[0.41498533042652036,0.530632232598118647,0.255093039837213709],"hpluv":[106.653185897117098,105.457526508453554,77.912311817127474],"hsluv":[106.653185897117098,61.2114900666368769,77.912311817127474]},"#aacc88":{"lch":[78.1744663257663,48.0371110011961946,110.274462486898784],"luv":[78.1744663257663,-16.6457037997795574,45.0608985524173633],"rgb":[0.66666666666666663,0.8,0.533333333333333326],"xyz":[0.42612574752846416,0.53508839943889619,0.313765903240785848],"hpluv":[110.274462486898784,89.6844859178180513,78.1744663257663],"hsluv":[110.274462486898784,49.6324036967210418,78.1744663257663]},"#aacc99":{"lch":[78.4798746855988583,38.0746183254558517,116.349336294343573],"luv":[78.4798746855988583,-16.8991518201031816,34.1188397866961779],"rgb":[0.66666666666666663,0.8,0.6],"xyz":[0.43918271163753686,0.540311185082525403,0.382532580881903783],"hpluv":[116.349336294343573,72.2917022308792383,78.4798746855988583],"hsluv":[116.349336294343573,36.8338589582570535,78.4798746855988583]},"#aaccaa":{"lch":[78.8296472340984593,28.0820980315160789,127.715012949234293],"luv":[78.8296472340984593,-17.1787837008838338,22.2147163027108476],"rgb":[0.66666666666666663,0.8,0.66666666666666663],"xyz":[0.454240404602789416,0.546334262268626469,0.461836430498902384],"hpluv":[127.715012949234293,54.3703242245777503,78.8296472340984593],"hsluv":[127.715012949234293,23.0170216670413055,78.8296472340984593]},"#aaccbb":{"lch":[79.2246195207133,19.8998018903229301,151.462718702096396],"luv":[79.2246195207133,-17.4821042808439238,9.50674209115818236],"rgb":[0.66666666666666663,0.8,0.733333333333333282],"xyz":[0.47137799671012609,0.553189299111561228,0.55209441559754413],"hpluv":[151.462718702096396,39.3999249764932173,79.2246195207133],"hsluv":[151.462718702096396,25.9022649263565761,79.2246195207133]},"#aacccc":{"lch":[79.665368512397464,18.216345023755192,192.177050630059796],"luv":[79.665368512397464,-17.80648564660072,-3.84243346616347603],"rgb":[0.66666666666666663,0.8,0.8],"xyz":[0.490670372153847789,0.560906249289050085,0.653700926267814286],"hpluv":[192.177050630059796,36.9937893704297878,79.665368512397464],"hsluv":[192.177050630059796,28.9019874878943099,79.665368512397464]},"#aaccdd":{"lch":[80.1522276755556504,25.332665849504842,224.238778454296437],"luv":[80.1522276755556504,-18.1492995031005968,-17.6733382978265112],"rgb":[0.66666666666666663,0.8,0.866666666666666696],"xyz":[0.512188697704481388,0.569513579509303591,0.767030774167820284],"hpluv":[224.238778454296437,52.9363308364733882,80.1522276755556504],"hsluv":[224.238778454296437,37.9969627853472787,80.1522276755556504]},"#aaccee":{"lch":[80.6853018377357216,36.8247992939862954,239.828051209207672],"luv":[80.6853018377357216,-18.5080244281037345,-31.8358112007702587],"rgb":[0.66666666666666663,0.8,0.933333333333333348],"xyz":[0.536000877970656098,0.579038451615773608,0.892441590236343507],"hpluv":[239.828051209207672,79.4490805971393854,80.6853018377357216],"hsluv":[239.828051209207672,67.7857500876551313,80.6853018377357216]},"#aaccff":{"lch":[81.2644823279674284,49.9029399741520834,247.769045833277914],"luv":[81.2644823279674284,-18.8803249793402337,-46.1934708236816434],"rgb":[0.66666666666666663,0.8,1],"xyz":[0.562171926380487519,0.589506870979706332,1.03027577852812535],"hpluv":[247.769045833277914,111.562078640814406,81.2644823279674284],"hsluv":[247.769045833277914,99.9999999999962625,81.2644823279674284]},"#88dd00":{"lch":[80.1491214608994085,103.252993693735874,114.339076779275487],"luv":[80.1491214608994085,-42.5542610136121837,94.0761158653142218],"rgb":[0.533333333333333326,0.866666666666666696,0],"xyz":[0.360084352515062933,0.569458386582770926,0.0909436700853518548],"hpluv":[114.339076779275487,215.722602995807392,80.1491214608994085],"hsluv":[114.339076779275487,100.000000000002288,80.1491214608994085]},"#88dd11":{"lch":[80.1718911006532551,102.308936337717924,114.55620444532569],"luv":[80.1718911006532551,-42.518128048011647,93.0555062414261727],"rgb":[0.533333333333333326,0.866666666666666696,0.0666666666666666657],"xyz":[0.361096018014700038,0.569863052782625834,0.0962717750501074915],"hpluv":[114.55620444532569,214.038948901986089,80.1718911006532551],"hsluv":[114.55620444532569,98.8288322371321186,80.1718911006532551]},"#88dd22":{"lch":[80.2140714473537315,100.574216022873557,114.966813202702411],"luv":[80.2140714473537315,-42.4516967311958453,91.1757992740300125],"rgb":[0.533333333333333326,0.866666666666666696,0.133333333333333331],"xyz":[0.362971376153177094,0.570613196038016635,0.106148661246086684],"hpluv":[114.966813202702411,210.937294411552,80.2140714473537315],"hsluv":[114.966813202702411,96.6732644510524,80.2140714473537315]},"#88dd33":{"lch":[80.283440325316,97.7612202004146695,115.666709499512805],"luv":[80.283440325316,-42.3438510501166832,88.1150069699792908],"rgb":[0.533333333333333326,0.866666666666666696,0.2],"xyz":[0.3660591268856348,0.571848296330999761,0.122410815103697834],"hpluv":[115.666709499512805,205.88559104418357,80.283440325316],"hsluv":[115.666709499512805,93.1672856447162303,80.283440325316]},"#88dd44":{"lch":[80.3834168948860821,93.7943752395521,116.732715571790365],"luv":[80.3834168948860821,-42.1914333437924896,83.7691338081886698],"rgb":[0.533333333333333326,0.866666666666666696,0.266666666666666663],"xyz":[0.370517122129853715,0.573631494428687327,0.145889590056584473],"hpluv":[116.732715571790365,198.714220363605108,80.3834168948860821],"hsluv":[116.732715571790365,88.1979852499996184,80.3834168948860821]},"#88dd55":{"lch":[80.5168087418625475,88.6629430887769,118.270203219525229],"luv":[80.5168087418625475,-41.9934519908601374,78.0875628192801088],"rgb":[0.533333333333333326,0.866666666666666696,0.333333333333333315],"xyz":[0.376479536169215701,0.576016460044432077,0.17729163733055836],"hpluv":[118.270203219525229,189.352414361266369,80.5168087418625475],"hsluv":[118.270203219525229,81.7170886524359474,80.5168087418625475]},"#88dd66":{"lch":[80.6859701106092757,82.4238546620344437,120.433562333743893],"luv":[80.6859701106092757,-41.7508898851674672,71.0672569552589266],"rgb":[0.533333333333333326,0.866666666666666696,0.4],"xyz":[0.384064531942723886,0.579050458353835396,0.21723928173770235],"hpluv":[120.433562333743893,177.835721711884361,80.6859701106092757],"hsluv":[120.433562333743893,73.7344666622195604,80.6859701106092757]},"#88dd77":{"lch":[80.8928858528116734,75.2114908165065827,123.458458278308711],"luv":[80.8928858528116734,-41.4665196955592208,62.7478772165182832],"rgb":[0.533333333333333326,0.866666666666666696,0.466666666666666674],"xyz":[0.393378544962925791,0.582776063561916247,0.266293083644100259],"hpluv":[123.458458278308711,164.332036041008877,80.8928858528116734],"hsluv":[123.458458278308711,64.312379996729149,80.8928858528116734]},"#88dd88":{"lch":[81.1392211885512,67.2590471315356524,127.71501294923884],"luv":[81.1392211885512,-41.1446687958856145,53.2061617739807531],"rgb":[0.533333333333333326,0.866666666666666696,0.533333333333333326],"xyz":[0.404518962064869592,0.587232230402693789,0.324965947047672399],"hpluv":[127.71501294923884,149.199726190229825,81.1392211885512],"hsluv":[127.71501294923884,53.5585775308776633,81.1392211885512]},"#88dd99":{"lch":[81.4263538436063072,58.943488890057,133.791370377408185],"luv":[81.4263538436063072,-40.7909253788266,42.5492102073736831],"rgb":[0.533333333333333326,0.866666666666666696,0.6],"xyz":[0.417575926173942347,0.592455016046323,0.393732624688790334],"hpluv":[133.791370377408185,133.11083868071384,81.4263538436063072],"hsluv":[133.791370377408185,54.8771054313611515,81.4263538436063072]},"#88ddaa":{"lch":[81.7553965772464437,50.8758256364689956,142.591286230634154],"luv":[81.7553965772464437,-40.4117997418374131,30.906893661738728],"rgb":[0.533333333333333326,0.866666666666666696,0.66666666666666663],"xyz":[0.432633619139194847,0.598478093232424069,0.473036474305788934],"hpluv":[142.591286230634154,117.302359569381537,81.7553965772464437],"hsluv":[142.591286230634154,56.3076629138628,81.7553965772464437]},"#88ddbb":{"lch":[82.1272144034785327,44.0521153731503716,155.27715859232552],"luv":[82.1272144034785327,-40.0143654100278567,18.4238820470094566],"rgb":[0.533333333333333326,0.866666666666666696,0.733333333333333282],"xyz":[0.449771211246531522,0.605333130075358827,0.563294459404430681],"hpluv":[155.27715859232552,104.020343594656595,82.1272144034785327],"hsluv":[155.27715859232552,57.829298146967858,82.1272144034785327]},"#88ddcc":{"lch":[82.542438979776648,39.9525966793572422,172.446474622419316],"luv":[82.542438979776648,-39.6059077008678173,5.25186220437346396],"rgb":[0.533333333333333326,0.866666666666666696,0.8],"xyz":[0.469063586690253276,0.613050080252847684,0.664900970074700837],"hpluv":[172.446474622419316,96.9346789585341355,82.542438979776648],"hsluv":[172.446474622419316,59.4202271347422908,82.542438979776648]},"#88dddd":{"lch":[83.0014816422074375,40.0957403917498354,192.177050630060734],"luv":[83.0014816422074375,-39.1936046909777,-8.4575261684472629],"rgb":[0.533333333333333326,0.866666666666666696,0.866666666666666696],"xyz":[0.490581912240886764,0.621657410473101191,0.778230817974706834],"hpluv":[192.177050630060734,100.308679558078737,83.0014816422074375],"hsluv":[192.177050630060734,61.0588228331018783,83.0014816422074375]},"#88ddee":{"lch":[83.5045459788204,44.8677054153188,210.184175125347622],"luv":[83.5045459788204,-38.7842593009493157,-22.5586395802706683],"rgb":[0.533333333333333326,0.866666666666666696,0.933333333333333348],"xyz":[0.514394092507061584,0.631182282579571208,0.903641634043230058],"hpluv":[210.184175125347622,116.175045715242419,83.5045459788204],"hsluv":[210.184175125347622,62.7244468832174746,83.5045459788204]},"#88ddff":{"lch":[84.0516404633952732,53.2556266987753659,223.883407592331508],"luv":[84.0516404633952732,-38.3840933399078779,-36.9164347351224436],"rgb":[0.533333333333333326,0.866666666666666696,1],"xyz":[0.540565140916892894,0.641650701943503932,1.04147582233501179],"hpluv":[223.883407592331508,143.298172182841085,84.0516404633952732],"hsluv":[223.883407592331508,99.9999999999952,84.0516404633952732]},"#335500":{"lch":[32.2593993637483862,41.1235506245754365,113.326494368716226],"luv":[32.2593993637483862,-16.2836990313566261,37.7622504868051223],"rgb":[0.2,0.333333333333333315,0],"xyz":[0.0461356744276991415,0.0720065112172806193,0.0114678000018764836],"hpluv":[113.326494368716226,161.760937136611716,32.2593993637483862],"hsluv":[113.326494368716226,100.000000000002288,32.2593993637483862]},"#335511":{"lch":[32.3496341583576381,38.1897920123001313,115.090818108356473],"luv":[32.3496341583576381,-16.1945453684027605,34.5860797757347456],"rgb":[0.2,0.333333333333333315,0.0666666666666666657],"xyz":[0.0471473399273362598,0.0724111774171354722,0.016795904966632115],"hpluv":[115.090818108356473,149.801873896373706,32.3496341583576381],"hsluv":[115.090818108356473,90.8995446090399923,32.3496341583576381]},"#335522":{"lch":[32.5160201858231659,33.1206139518783189,118.966642902489184],"luv":[32.5160201858231659,-16.0403246718637718,28.9772851207727022],"rgb":[0.2,0.333333333333333315,0.133333333333333331],"xyz":[0.0490226980658132819,0.0731613206725262866,0.0266727911626113111],"hpluv":[118.966642902489184,129.252907346834121,32.5160201858231659],"hsluv":[118.966642902489184,74.935129302234273,32.5160201858231659]},"#335533":{"lch":[32.7875119073456176,25.8516304293262671,127.715012949238741],"luv":[32.7875119073456176,-15.8143300747053051,20.4502753072602665],"rgb":[0.2,0.333333333333333315,0.2],"xyz":[0.0521104487982710224,0.0743964209655094,0.0429349450202224578],"hpluv":[127.715012949238741,100.050394151032577,32.7875119073456176],"hsluv":[127.715012949238741,50.9434831873252207,32.7875119073456176]},"#335544":{"lch":[33.1742322541989836,18.1915220066791647,148.674883917516439],"luv":[33.1742322541989836,-15.539762262897943,9.45765624941535421],"rgb":[0.2,0.333333333333333315,0.266666666666666663],"xyz":[0.0565684440424899,0.0761796190631969794,0.0664137199731090894],"hpluv":[148.674883917516439,69.5836942134034899,33.1742322541989836],"hsluv":[148.674883917516439,54.5088767633859703,33.1742322541989836]},"#335555":{"lch":[33.6821363315134121,15.5994691341387064,192.177050630060819],"luv":[33.6821363315134121,-15.2484882598238034,-3.29044724269541522],"rgb":[0.2,0.333333333333333315,0.333333333333333315],"xyz":[0.0625308580818519,0.0785645846789418123,0.097815767247083],"hpluv":[192.177050630060819,58.7691644617976934,33.6821363315134121],"hsluv":[192.177050630060819,58.539124710901028,33.6821363315134121]},"#335566":{"lch":[34.3136156967701496,22.6822476529859181,228.692277460856218],"luv":[34.3136156967701496,-14.9726179113300351,-17.0383412183435361],"rgb":[0.2,0.333333333333333315,0.4],"xyz":[0.0701158538553600663,0.0815985829883451308,0.137763411654226953],"hpluv":[228.692277460856218,83.8800984368335,34.3136156967701496],"hsluv":[228.692277460856218,62.7386213411417089,34.3136156967701496]},"#335577":{"lch":[35.0679836745485218,34.4527831327976131,244.673076132176305],"luv":[35.0679836745485218,-14.7383029974912176,-31.1412377780608658],"rgb":[0.2,0.333333333333333315,0.466666666666666674],"xyz":[0.0794298668755619858,0.0853241881964259402,0.186817213560624862],"hpluv":[244.673076132176305,124.667382519216758,35.0679836745485218],"hsluv":[244.673076132176305,66.8604241763398335,35.0679836745485218]},"#335588":{"lch":[35.9419713942028523,47.4274747217606318,252.117898483801355],"luv":[35.9419713942028523,-14.5630489263951493,-45.1362710516793229],"rgb":[0.2,0.333333333333333315,0.533333333333333326],"xyz":[0.0905702839775058138,0.089780355037203538,0.245490076964197029],"hpluv":[252.117898483801355,167.443168522882189,35.9419713942028523],"hsluv":[252.117898483801355,70.7327730687023433,35.9419713942028523]},"#335599":{"lch":[36.9302538454711851,60.4953772811161272,256.174865065393647],"luv":[36.9302538454711851,-14.4559426241851021,-58.7427986669927833],"rgb":[0.2,0.333333333333333315,0.6],"xyz":[0.103627248086578527,0.0950031406808327,0.314256754605314936],"hpluv":[256.174865065393647,207.863972679723531,36.9302538454711851],"hsluv":[256.174865065393647,74.2581677802949258,36.9302538454711851]},"#3355aa":{"lch":[38.0259842211890557,73.2582460718320903,258.648348715518409],"luv":[38.0259842211890557,-14.4194259870406505,-71.8251402485603165],"rgb":[0.2,0.333333333333333315,0.66666666666666663],"xyz":[0.118684941051831069,0.101026217866933804,0.393560604222313537],"hpluv":[258.648348715518409,244.464262316607687,38.0259842211890557],"hsluv":[258.648348715518409,77.3978910060545,38.0259842211890557]},"#3355bb":{"lch":[39.2213032744107579,85.5750988898230815,260.277622363739169],"luv":[39.2213032744107579,-14.4514388960387397,-84.3460340729607623],"rgb":[0.2,0.333333333333333315,0.733333333333333282],"xyz":[0.135822533159167702,0.107881254709868563,0.483818589320955283],"hpluv":[260.277622363739169,276.862869377010384,39.2213032744107579],"hsluv":[260.277622363739169,80.1529964351826578,39.2213032744107579]},"#3355cc":{"lch":[40.5077939091134667,97.4185991778777,261.412040351160215],"luv":[40.5077939091134667,-14.5472816309580448,-96.326320717286734],"rgb":[0.2,0.333333333333333315,0.8],"xyz":[0.155114908602889456,0.115598204887357364,0.585425099991225495],"hpluv":[261.412040351160215,305.17054630009352,40.5077939091134667],"hsluv":[261.412040351160215,82.5478264076183734,40.5077939091134667]},"#3355dd":{"lch":[41.8768615158020552,108.813506268261335,262.235450095721887],"luv":[41.8768615158020552,-14.7009821832840935,-107.815862790406285],"rgb":[0.2,0.333333333333333315,0.866666666666666696],"xyz":[0.176633234153523,0.124205535107610898,0.698754947891231493],"hpluv":[262.235450095721887,329.72206067647727,41.8768615158020552],"hsluv":[262.235450095721887,84.6180359154754456,41.8768615158020552]},"#3355ee":{"lch":[43.3200322197542533,119.805986402952101,262.852770803428143],"luv":[43.3200322197542533,-14.9061911990543372,-118.875059797762361],"rgb":[0.2,0.333333333333333315,0.933333333333333348],"xyz":[0.200445414419697737,0.133730407214080915,0.824165763959754716],"hpluv":[262.852770803428143,350.936931775297865,43.3200322197542533],"hsluv":[262.852770803428143,90.8055999978327577,43.3200322197542533]},"#3355ff":{"lch":[44.8291710285026497,130.447860525532377,263.327743444412704],"luv":[44.8291710285026497,-15.1567128937849134,-129.564340657235334],"rgb":[0.2,0.333333333333333315,1],"xyz":[0.226616462829529131,0.144198826578013639,0.961999952251536561],"hpluv":[263.327743444412704,369.245812735261836,44.8291710285026497],"hsluv":[263.327743444412704,99.9999999999993,44.8291710285026497]},"#aadd00":{"lch":[81.9783608763648175,97.3184216433040916,105.014728605041086],"luv":[81.9783608763648175,-25.2120246284188454,93.9958988747909245],"rgb":[0.66666666666666663,0.866666666666666696,0],"xyz":[0.424325128525832707,0.602582536713324846,0.0939549564608566229],"hpluv":[105.014728605041086,227.603505169437568,81.9783608763648175],"hsluv":[105.014728605041086,100.000000000002203,81.9783608763648175]},"#aadd11":{"lch":[82.0002885274849262,96.374791846509865,105.167446282879951],"luv":[82.0002885274849262,-25.2155818179290208,93.017605521973266],"rgb":[0.66666666666666663,0.866666666666666696,0.0666666666666666657],"xyz":[0.425336794025469811,0.602987202913179754,0.0992830614256122596],"hpluv":[105.167446282879951,225.71449396257529,82.0002885274849262],"hsluv":[105.167446282879951,98.8971907906987298,82.0002885274849262]},"#aadd22":{"lch":[82.0409106120811,94.6380623122949345,105.456830413527484],"luv":[82.0409106120811,-25.2222030700150874,91.2151484706391216],"rgb":[0.66666666666666663,0.866666666666666696,0.133333333333333331],"xyz":[0.427212152163946868,0.603737346168570554,0.109159947621591452],"hpluv":[105.456830413527484,222.227322886837186,82.0409106120811],"hsluv":[105.456830413527484,96.86659260915998,82.0409106120811]},"#aadd33":{"lch":[82.1077210543303693,91.8137349028061891,105.951891130476156],"luv":[82.1077210543303693,-25.2331804702422886,88.2782448860360773],"rgb":[0.66666666666666663,0.866666666666666696,0.2],"xyz":[0.430299902896404574,0.604972446461553681,0.125422101479202602],"hpluv":[105.951891130476156,216.526835376233663,82.1077210543303693],"hsluv":[105.951891130476156,93.5615293661406469,82.1077210543303693]},"#aadd44":{"lch":[82.204019596801416,87.812555976334508,106.710442618715334],"luv":[82.204019596801416,-25.2491908313752447,84.1042409718896238],"rgb":[0.66666666666666663,0.866666666666666696,0.266666666666666663],"xyz":[0.434757898140623489,0.606755644559241247,0.148900876432089241],"hpluv":[106.710442618715334,208.386709262610594,82.204019596801416],"hsluv":[106.710442618715334,88.8720213109455415,82.204019596801416]},"#aadd55":{"lch":[82.332521082647844,82.6008871447080537,107.814707884186447],"luv":[82.332521082647844,-25.2708912490316564,78.6402480449573],"rgb":[0.66666666666666663,0.866666666666666696,0.333333333333333315],"xyz":[0.440720312179985474,0.609140610174986,0.180302923706063156],"hpluv":[107.814707884186447,197.666387369374576,82.332521082647844],"hsluv":[107.814707884186447,82.7472331150865,82.332521082647844]},"#aadd66":{"lch":[82.495508489392364,76.2000100439918526,109.390646830849064],"luv":[82.495508489392364,-25.2989483474785786,71.8777068583581666],"rgb":[0.66666666666666663,0.866666666666666696,0.4],"xyz":[0.448305307953493659,0.612174608484389315,0.22025056811320709],"hpluv":[109.390646830849064,184.308617744019813,82.495508489392364],"hsluv":[109.390646830849064,75.1895211365387723,82.495508489392364]},"#aadd77":{"lch":[82.694914273715753,68.6905071379487,111.642517734809914],"luv":[82.694914273715753,-25.3340491820501299,63.8480361711309499],"rgb":[0.66666666666666663,0.866666666666666696,0.466666666666666674],"xyz":[0.457619320973695565,0.615900213692470166,0.269304370019605],"hpluv":[111.642517734809914,168.351618208890358,82.694914273715753],"hsluv":[111.642517734809914,66.2494286969421182,82.694914273715753]},"#aadd88":{"lch":[82.9323686283524921,60.2252781448786436,114.920875432447886],"luv":[82.9323686283524921,-25.3769003534370228,54.6177357282387277],"rgb":[0.66666666666666663,0.866666666666666696,0.533333333333333326],"xyz":[0.468759738075639365,0.620356380533247709,0.327977233423177195],"hpluv":[114.920875432447886,149.967217229555729,82.9323686283524921],"hsluv":[114.920875432447886,56.0198042099318698,82.9323686283524921]},"#aadd99":{"lch":[83.2092305924335,51.0640475908324305,119.865599423026282],"luv":[83.2092305924335,-25.4282188712646082,44.2825320120006438],"rgb":[0.66666666666666663,0.866666666666666696,0.6],"xyz":[0.481816702184712065,0.625579166176876922,0.396743911064295074],"hpluv":[119.865599423026282,129.562195810811914,83.2092305924335],"hsluv":[119.865599423026282,44.6286172342680487,83.2092305924335]},"#aaddaa":{"lch":[83.526609727912188,41.6663179647472717,127.715012949236481],"luv":[83.526609727912188,-25.4887175141036408,32.9606937461220255],"rgb":[0.66666666666666663,0.866666666666666696,0.66666666666666663],"xyz":[0.496874395149964621,0.631602243362978,0.476047760681293675],"hpluv":[127.715012949236481,108.050849780995421,83.526609727912188],"hsluv":[127.715012949236481,32.2306770176982198,83.526609727912188]},"#aaddbb":{"lch":[83.8853825066367449,32.9442078204095523,140.880295511025736],"luv":[83.8853825066367449,-25.5590871805440472,20.7859060762739638],"rgb":[0.66666666666666663,0.866666666666666696,0.733333333333333282],"xyz":[0.514011987257301239,0.638457280205912747,0.566305745779935421],"hpluv":[140.880295511025736,87.605014056209555,83.8853825066367449],"hsluv":[140.880295511025736,34.4766875289621382,83.8853825066367449]},"#aaddcc":{"lch":[84.2862057978904602,26.8294893367150316,162.87488866986746],"luv":[84.2862057978904602,-25.639978502468459,7.90018990036700242],"rgb":[0.66666666666666663,0.866666666666666696,0.8],"xyz":[0.533304362701023,0.646174230383401604,0.667912256450205577],"hpluv":[162.87488866986746,73.4171355960865526,84.2862057978904602],"hsluv":[162.87488866986746,36.8333761539634708,84.2862057978904602]},"#aadddd":{"lch":[84.729528894444158,26.3242685722419552,192.177050630060421],"luv":[84.729528894444158,-25.7319846477226655,-5.55266440124834],"rgb":[0.66666666666666663,0.866666666666666696,0.866666666666666696],"xyz":[0.554822688251656593,0.654781560603655111,0.781242104350211575],"hpluv":[192.177050630060421,74.4077864529294146,84.729528894444158],"hsluv":[192.177050630060421,39.269697519551606,84.729528894444158]},"#aaddee":{"lch":[85.2156049558348769,32.3281965376105802,216.94937298104162],"luv":[85.2156049558348769,-25.8356267715816657,-19.4327733659894548],"rgb":[0.66666666666666663,0.866666666666666696,0.933333333333333348],"xyz":[0.578634868517831302,0.664306432710125128,0.906652920418734798],"hpluv":[216.94937298104162,94.7745998726022094,85.2156049558348769],"hsluv":[216.94937298104162,58.4216362813771397,85.2156049558348769]},"#aaddff":{"lch":[85.744502396509489,42.4619511969095527,232.326067904807843],"luv":[85.744502396509489,-25.9513430438233641,-33.608705623253762],"rgb":[0.66666666666666663,0.866666666666666696,1],"xyz":[0.604805916927662723,0.674774852074057852,1.04448710871051675],"hpluv":[232.326067904807843,129.682154580054771,85.744502396509489],"hsluv":[232.326067904807843,99.9999999999945572,85.744502396509489]},"#88ee00":{"lch":[85.1906878331824515,112.448241602139106,116.535675589642423],"luv":[85.1906878331824515,-50.2368100475369914,100.602534538950536],"rgb":[0.533333333333333326,0.933333333333333348,0],"xyz":[0.40726312885557775,0.663815939263801891,0.106669928865523039],"hpluv":[116.535675589642423,329.03324103323672,85.1906878331824515],"hsluv":[116.535675589642423,100.000000000002416,85.1906878331824515]},"#88ee11":{"lch":[85.2112458075113182,111.594873497969587,116.730132104203335],"luv":[85.2112458075113182,-50.1941202672300193,99.669283541253],"rgb":[0.533333333333333326,0.933333333333333348,0.0666666666666666657],"xyz":[0.408274794355214854,0.664220605463656799,0.111998033830278676],"hpluv":[116.730132104203335,327.047318494663614,85.2112458075113182],"hsluv":[116.730132104203335,98.9939616796445,85.2112458075113182]},"#88ee22":{"lch":[85.2493327369145,110.025246585506409,117.096539077460619],"luv":[85.2493327369145,-50.115524286233132,97.9489107224652429],"rgb":[0.533333333333333326,0.933333333333333348,0.133333333333333331],"xyz":[0.410150152493691911,0.6649707487190476,0.121874920026257869],"hpluv":[117.096539077460619,323.384561507736407,85.2493327369145],"hsluv":[117.096539077460619,97.140453749143191,85.2493327369145]},"#88ee33":{"lch":[85.3119799721786,107.475578977757436,117.717135468026783],"luv":[85.3119799721786,-49.9876247553973769,95.1432469906181097],"rgb":[0.533333333333333326,0.933333333333333348,0.2],"xyz":[0.413237903226149617,0.666205849012030726,0.138137073883869],"hpluv":[117.717135468026783,317.406918528502,85.3119799721786],"hsluv":[117.717135468026783,94.120593299189423,85.3119799721786]},"#88ee44":{"lch":[85.4022915890189864,103.870397610997969,118.652974854946393],"luv":[85.4022915890189864,-49.8062112723248518,91.1504296126099],"rgb":[0.533333333333333326,0.933333333333333348,0.266666666666666663],"xyz":[0.417695898470368532,0.667989047109718292,0.161615848836755643],"hpluv":[118.652974854946393,308.894438519259097,85.4022915890189864],"hsluv":[118.652974854946393,89.8292917088674869,85.4022915890189864]},"#88ee55":{"lch":[85.5228293578601466,99.1885702075232,119.98340282305692],"luv":[85.5228293578601466,-49.5693999595221584,85.9141842041562],"rgb":[0.533333333333333326,0.933333333333333348,0.333333333333333315],"xyz":[0.423658312509730517,0.670374012725463,0.193017896110729559],"hpluv":[119.98340282305692,297.731707367046795,85.5228293578601466],"hsluv":[119.98340282305692,84.2131356884780473,85.5228293578601466]},"#88ee66":{"lch":[85.6757572108422,93.4644574192068234,121.818598205465591],"luv":[85.6757572108422,-49.2774194314266083,79.4187681524083189],"rgb":[0.533333333333333326,0.933333333333333348,0.4],"xyz":[0.431243308283238702,0.673408011034866361,0.232965540517873521],"hpluv":[121.818598205465591,283.912655540997662,85.6757572108422],"hsluv":[121.818598205465591,77.2651144072775082,85.6757572108422]},"#88ee77":{"lch":[85.8629182835971676,86.7937408847250822,124.317503927832064],"luv":[85.8629182835971676,-48.9324360738715,71.6852157466327071],"rgb":[0.533333333333333326,0.933333333333333348,0.466666666666666674],"xyz":[0.440557321303440608,0.677133616242947212,0.282019342424271402],"hpluv":[124.317503927832064,267.563092583833793,85.8629182835971676],"hsluv":[124.317503927832064,69.0205357789205749,85.8629182835971676]},"#88ee88":{"lch":[86.0858807036169793,79.3454652904755164,127.71501294923921],"luv":[86.0858807036169793,-48.5383458294846,62.7672832477191918],"rgb":[0.533333333333333326,0.933333333333333348,0.533333333333333326],"xyz":[0.451697738405384408,0.681589783083724754,0.340692205827843597],"hpluv":[127.71501294923921,248.989760930573482,86.0858807036169793],"hsluv":[127.71501294923921,59.5524101967812,86.0858807036169793]},"#88ee99":{"lch":[86.3459670558122525,71.3853284581525429,132.362204285947513],"luv":[86.3459670558122525,-48.1005130697284287,52.7466184841000825],"rgb":[0.533333333333333326,0.933333333333333348,0.6],"xyz":[0.464754702514457163,0.686812568727354,0.409458883468961532],"hpluv":[132.362204285947513,228.778132650246619,86.3459670558122525],"hsluv":[132.362204285947513,60.5562348819982645,86.3459670558122525]},"#88eeaa":{"lch":[86.6442747471204768,63.319361027400987,138.776693085718904],"luv":[86.6442747471204768,-47.625461320552418,41.7271723811105204],"rgb":[0.533333333333333326,0.933333333333333348,0.66666666666666663],"xyz":[0.479812395479709664,0.692835645913455,0.488762733085960077],"hpluv":[138.776693085718904,207.981038552319745,86.6442747471204768],"hsluv":[138.776693085718904,61.6537348625427342,86.6442747471204768]},"#88eebb":{"lch":[86.9816911545789679,55.7684583245382299,147.664608842749317],"luv":[86.9816911545789679,-47.1205330954276,29.8291184029711189],"rgb":[0.533333333333333326,0.933333333333333348,0.733333333333333282],"xyz":[0.496949987587046338,0.699690682756389792,0.579020718184601879],"hpluv":[147.664608842749317,188.458500832318975,86.9816911545789679],"hsluv":[147.664608842749317,62.830800627143077,86.9816911545789679]},"#88eecc":{"lch":[87.3589058048410294,49.6608679924305463,159.75715297219557],"luv":[87.3589058048410294,-46.5935415809549696,17.182656741768227],"rgb":[0.533333333333333326,0.933333333333333348,0.8],"xyz":[0.516242363030768092,0.70740763293387865,0.680627228854872],"hpluv":[159.75715297219557,173.371642714007834,87.3589058048410294],"hsluv":[159.75715297219557,64.0722902507549179,87.3589058048410294]},"#88eedd":{"lch":[87.7764209496729,46.2191498548509543,175.132102674355139],"luv":[87.7764209496729,-46.0524373199716166,3.92209512827700335],"rgb":[0.533333333333333326,0.933333333333333348,0.866666666666666696],"xyz":[0.53776068858140158,0.716014963154132156,0.793957076754878],"hpluv":[175.132102674355139,167.447502067072264,87.7764209496729],"hsluv":[175.132102674355139,65.3626972838926434,87.7764209496729]},"#88eeee":{"lch":[88.2345613859691866,46.5524177333431339,192.177050630060933],"luv":[88.2345613859691866,-45.5050097647113958,-9.8194543195231],"rgb":[0.533333333333333326,0.933333333333333348,0.933333333333333348],"xyz":[0.56157286884757629,0.725539835260602173,0.919367892823401256],"hpluv":[192.177050630060933,175.887543813927181,88.2345613859691866],"hsluv":[192.177050630060933,66.6867488369664443,88.2345613859691866]},"#88eeff":{"lch":[88.7334840469836763,50.9233073192915242,208.009521596121829],"luv":[88.7334840469836763,-44.9586380478967271,-23.9145163700465169],"rgb":[0.533333333333333326,0.933333333333333348,1],"xyz":[0.587743917257407711,0.736008254624534897,1.05720208111518299],"hpluv":[208.009521596121829,201.749007974481685,88.7334840469836763],"hsluv":[208.009521596121829,99.9999999999925109,88.7334840469836763]},"#336600":{"lch":[38.2101034680229574,51.4017776291135888,118.130952889189317],"luv":[38.2101034680229574,-24.2353400261634,45.3298029694491902],"rgb":[0.2,0.4,0],"xyz":[0.0611637321335456105,0.10206262662897396,0.0164771525704918292],"hpluv":[118.130952889189317,170.702252266418213,38.2101034680229574],"hsluv":[118.130952889189317,100.000000000002288,38.2101034680229574]},"#336611":{"lch":[38.2816545292110959,48.9828222693822468,119.470954908934345],"luv":[38.2816545292110959,-24.0986808399199681,42.6447002480913682],"rgb":[0.2,0.4,0.0666666666666666657],"xyz":[0.0621753976331827357,0.102467292828828813,0.021805257535247459],"hpluv":[119.470954908934345,162.365005406289157,38.2816545292110959],"hsluv":[119.470954908934345,93.5286374368429,38.2816545292110959]},"#336622":{"lch":[38.4137944304132617,44.7307250918699282,122.230818066602779],"luv":[38.4137944304132617,-23.8562978467226365,37.8380076152656173],"rgb":[0.2,0.4,0.133333333333333331],"xyz":[0.0640507557716597509,0.103217436084219627,0.0316821437312266585],"hpluv":[122.230818066602779,147.760399550800031,38.4137944304132617],"hsluv":[122.230818066602779,81.994947572555219,38.4137944304132617]},"#336633":{"lch":[38.6299730126545171,38.3921679396875817,127.715012949239437],"luv":[38.6299730126545171,-23.4858075099586969,30.3706339201924216],"rgb":[0.2,0.4,0.2],"xyz":[0.0671385065041174844,0.10445253637720274,0.0479442975888378],"hpluv":[127.715012949239437,126.112332565807833,38.6299730126545171],"hsluv":[127.715012949239437,64.2136550115152,38.6299730126545171]},"#336644":{"lch":[38.9390987599147635,30.7877900918170191,138.353415806708398],"luv":[38.9390987599147635,-23.0064236741332095,20.4595329483365589],"rgb":[0.2,0.4,0.266666666666666663],"xyz":[0.0715965017483363719,0.10623573447489032,0.0714230725417244472],"hpluv":[138.353415806708398,100.330262339301328,38.9390987599147635],"hsluv":[138.353415806708398,66.1490613915476899,38.9390987599147635]},"#336655":{"lch":[39.3471830293532108,24.0314899024670439,159.111050143656939],"luv":[39.3471830293532108,-22.4519783641565418,8.56861566811244479],"rgb":[0.2,0.4,0.333333333333333315],"xyz":[0.077558915787698357,0.108620700090635153,0.102825119815698349],"hpluv":[159.111050143656939,77.5008343503898089,39.3471830293532108],"hsluv":[159.111050143656939,68.4324421599544337,39.3471830293532108]},"#336666":{"lch":[39.8577781510875653,22.3660784387423632,192.177050630061],"luv":[39.8577781510875653,-21.8628519700770774,-4.71775036033837925],"rgb":[0.2,0.4,0.4],"xyz":[0.0851439115612065422,0.111654698400038471,0.142772764222842297],"hpluv":[192.177050630061,71.205917149352544,39.8577781510875653],"hsluv":[192.177050630061,70.9271962998489727,39.8577781510875653]},"#336677":{"lch":[40.4722660639059,28.403364995264031,221.483563289625266],"luv":[40.4722660639059,-21.2782609928981294,-18.8145356618838697],"rgb":[0.2,0.4,0.466666666666666674],"xyz":[0.0944579245814084478,0.115380303608119281,0.191826566129240206],"hpluv":[221.483563289625266,89.0536244466218534,40.4722660639059],"hsluv":[221.483563289625266,73.4989606489913,40.4722660639059]},"#336688":{"lch":[41.1901179582142731,39.1584560294521253,238.034471274574031],"luv":[41.1901179582142731,-20.7308371309926542,-33.2207325394668516],"rgb":[0.2,0.4,0.533333333333333326],"xyz":[0.105598341683352276,0.119836470448896878,0.250499429532812401],"hpluv":[238.034471274574031,120.634589470818128,41.1901179582142731],"hsluv":[238.034471274574031,76.0346320246428746,41.1901179582142731]},"#336699":{"lch":[42.0091634944821948,51.6886413393569626,246.942440261812],"luv":[42.0091634944821948,-20.2441498032976277,-47.5593318103852951],"rgb":[0.2,0.4,0.6],"xyz":[0.118655305792425,0.12505925609252605,0.31926610717393028],"hpluv":[246.942440261812,156.131455895945,42.0091634944821948],"hsluv":[246.942440261812,78.4511744564818514,42.0091634944821948]},"#3366aa":{"lch":[42.9258754740709847,64.6951641030825,252.148217293940775],"luv":[42.9258754740709847,-19.832670948043944,-61.5802681172418218],"rgb":[0.2,0.4,0.66666666666666663],"xyz":[0.133712998757677531,0.131082333278627144,0.398569956790928881],"hpluv":[252.148217293940775,191.245834212653307,42.9258754740709847],"hsluv":[252.148217293940775,80.6959595489171,42.9258754740709847]},"#3366bb":{"lch":[43.9356615222631106,77.6311657782158164,255.449757662516049],"luv":[43.9356615222631106,-19.5031901130623,-75.1413566253536374],"rgb":[0.2,0.4,0.733333333333333282],"xyz":[0.150850590865014178,0.137937370121561903,0.488827941889570627],"hpluv":[255.449757662516049,224.211696450950683,43.9356615222631106],"hsluv":[255.449757662516049,82.7420790911240402,43.9356615222631106]},"#3366cc":{"lch":[45.0331492258045287,90.2591849706621332,257.681278432902445],"luv":[45.0331492258045287,-19.2567634880452658,-88.1810497302775786],"rgb":[0.2,0.4,0.8],"xyz":[0.170142966308735932,0.145654320299050705,0.590434452559840839],"hpluv":[257.681278432902445,254.330482568364204,45.0331492258045287],"hsluv":[257.681278432902445,84.5818015821218694,45.0331492258045287]},"#3366dd":{"lch":[46.2124513047425367,102.485732700579547,259.264483160570819],"luv":[46.2124513047425367,-19.0906003056708045,-100.691977769551045],"rgb":[0.2,0.4,0.866666666666666696],"xyz":[0.191661291859369476,0.154261650519304239,0.703764300459846837],"hpluv":[259.264483160570819,281.412724566330553,46.2124513047425367],"hsluv":[259.264483160570819,86.2202337385041488,46.2124513047425367]},"#3366ee":{"lch":[47.467400384741687,114.289765210034219,260.43068521754094],"luv":[47.467400384741687,-18.99960653492559,-112.699447129445844],"rgb":[0.2,0.4,0.933333333333333348],"xyz":[0.215473472125544213,0.163786522625774256,0.82917511652837006],"hpluv":[260.43068521754094,305.528142270574733,47.467400384741687],"hsluv":[260.43068521754094,89.4216395109538524,47.467400384741687]},"#3366ff":{"lch":[48.7917470574018068,125.686826272807437,261.315666926990161],"luv":[48.7917470574018068,-18.9775194272026404,-124.245853270525785],"rgb":[0.2,0.4,1],"xyz":[0.241644520535375606,0.17425494198970698,0.967009304820151905],"hpluv":[261.315666926990161,326.875761207371056,48.7917470574018068],"hsluv":[261.315666926990161,99.9999999999992184,48.7917470574018068]},"#aaee00":{"lch":[86.8465682321076713,106.130019137569278,108.773889799394041],"luv":[86.8465682321076713,-34.1562767274136,100.483479847491182],"rgb":[0.66666666666666663,0.933333333333333348,0],"xyz":[0.471503904866347523,0.696940089394355811,0.109681215241027807],"hpluv":[108.773889799394041,354.560190530248747,86.8465682321076713],"hsluv":[108.773889799394041,100.000000000002302,86.8465682321076713]},"#aaee11":{"lch":[86.8664697406872364,105.275413073012288,108.926122010215039],"luv":[86.8664697406872364,-34.1459453835818323,99.5839696515197801],"rgb":[0.66666666666666663,0.933333333333333348,0.0666666666666666657],"xyz":[0.472515570365984627,0.697344755594210719,0.115009320205783444],"hpluv":[108.926122010215039,352.296735211520456,86.8664697406872364],"hsluv":[108.926122010215039,99.0448212343627,86.8664697406872364]},"#aaee22":{"lch":[86.9033414770782286,103.701584155213482,109.21343759479339],"luv":[86.9033414770782286,-34.1269596340241961,97.9253245204656224],"rgb":[0.66666666666666663,0.933333333333333348,0.133333333333333331],"xyz":[0.474390928504461684,0.69809489884960152,0.124886206401762637],"hpluv":[109.21343759479339,348.114419217609168,86.9033414770782286],"hsluv":[109.21343759479339,97.2844700630890742,86.9033414770782286]},"#aaee33":{"lch":[86.9639927659971,101.139559122436452,109.701502859778287],"luv":[86.9639927659971,-34.0961634116812462,95.2190215245081504],"rgb":[0.66666666666666663,0.933333333333333348,0.2],"xyz":[0.47747867923691939,0.699329999142584646,0.141148360259373773],"hpluv":[109.701502859778287,341.266668172598315,86.9639927659971],"hsluv":[109.701502859778287,94.4148698146506,86.9639927659971]},"#aaee44":{"lch":[87.0514332975086091,97.5044422856038864,110.440992284795044],"luv":[87.0514332975086091,-34.052698770047833,91.3648180204122298],"rgb":[0.66666666666666663,0.933333333333333348,0.266666666666666663],"xyz":[0.481936674481138305,0.701113197240272212,0.164627135212260411],"hpluv":[110.440992284795044,331.464832239423686,87.0514332975086091],"hsluv":[110.440992284795044,90.3338544995677353,87.0514332975086091]},"#aaee55":{"lch":[87.1681505263978,92.7597711807761556,111.499860176168639],"luv":[87.1681505263978,-33.9963593100021271,86.3054036730909644],"rgb":[0.66666666666666663,0.933333333333333348,0.333333333333333315],"xyz":[0.48789908852050029,0.703498162856017,0.196029182486234327],"hpluv":[111.499860176168639,318.513853400728863,87.1681505263978],"hsluv":[111.499860176168639,84.9871568734489813,87.1681505263978]},"#aaee66":{"lch":[87.3162499846890086,86.9168013961255923,112.975973936880195],"luv":[87.3162499846890086,-33.9275471197994563,80.0215715377255492],"rgb":[0.66666666666666663,0.933333333333333348,0.4],"xyz":[0.495484084294008476,0.70653216116542028,0.235976826893378289],"hpluv":[112.975973936880195,302.308385752370668,87.3162499846890086],"hsluv":[112.975973936880195,78.3634586897027106,87.3162499846890086]},"#aaee77":{"lch":[87.4975302296396,80.0378594698754853,115.017197938190947],"luv":[87.4975302296396,-33.8472328521792534,72.5287789554594298],"rgb":[0.66666666666666663,0.933333333333333348,0.466666666666666674],"xyz":[0.504798097314210326,0.710257766373501132,0.285030628799776198],"hpluv":[115.017197938190947,282.845349503141222,87.4975302296396],"hsluv":[115.017197938190947,70.4907283307095,87.4975302296396]},"#aaee88":{"lch":[87.7135274362348838,72.2451165326571072,117.856267937731204],"luv":[87.7135274362348838,-33.7569011423620324,63.8735351149597861],"rgb":[0.66666666666666663,0.933333333333333348,0.533333333333333326],"xyz":[0.515938514416154237,0.714713933214278674,0.343703492203348393],"hpluv":[117.856267937731204,260.261444274219798,87.7135274362348838],"hsluv":[117.856267937731204,61.4321883079204412,87.7135274362348838]},"#aaee99":{"lch":[87.9655440812905312,63.7405265694191954,121.874104620002555],"luv":[87.9655440812905312,-33.6584769753751445,54.1291202131068871],"rgb":[0.66666666666666663,0.933333333333333348,0.6],"xyz":[0.528995478525226881,0.719936718857907887,0.412470169844466272],"hpluv":[121.874104620002555,234.922523447188695,87.9655440812905312],"hsluv":[121.874104620002555,51.2814060811362182,87.9655440812905312]},"#aaeeaa":{"lch":[88.2546687059401,54.8509913255605497,127.715012949237604],"luv":[88.2546687059401,-33.5542349686064441,43.3906045713616138],"rgb":[0.66666666666666663,0.933333333333333348,0.66666666666666663],"xyz":[0.544053171490479492,0.725959796044009,0.491774019461464873],"hpluv":[127.715012949237604,207.631017102058365,88.2546687059401],"hsluv":[127.715012949237604,42.8122115000723795,88.2546687059401]},"#aaeebb":{"lch":[88.5817905154621457,46.1299748711590425,136.47329364537066],"luv":[88.5817905154621457,-33.4466969972147226,31.7693726974624511],"rgb":[0.66666666666666663,0.933333333333333348,0.733333333333333282],"xyz":[0.561190763597816056,0.732814832886943712,0.582032004560106619],"hpluv":[136.47329364537066,180.106084736741337,88.5817905154621457],"hsluv":[136.47329364537066,42.5306558804052,88.5817905154621457]},"#aaeecc":{"lch":[88.947610994722524,38.5659339652702471,149.820563383504265],"luv":[88.947610994722524,-33.3385252257337896,19.3874701388989088],"rgb":[0.66666666666666663,0.933333333333333348,0.8],"xyz":[0.58048313904153781,0.740531783064432569,0.683638515230376775],"hpluv":[149.820563383504265,156.025185046421541,88.947610994722524],"hsluv":[149.820563383504265,43.7743007306855176,88.947610994722524]},"#aaeedd":{"lch":[89.3526538659385636,33.8378115459028308,169.14561851222],"luv":[89.3526538659385636,-33.2324178366612202,6.37211856022751721],"rgb":[0.66666666666666663,0.933333333333333348,0.866666666666666696],"xyz":[0.602001464592171409,0.749139113284686076,0.796968363130382773],"hpluv":[169.14561851222,142.575756051086472,89.3526538659385636],"hsluv":[169.14561851222,45.7128350403065866,89.3526538659385636]},"#aaeeee":{"lch":[89.797274219494,33.893604395025335,192.177050630060734],"luv":[89.797274219494,-33.1310138990311174,-7.14928925898844092],"rgb":[0.66666666666666663,0.933333333333333348,0.933333333333333348],"xyz":[0.625813644858346119,0.758663985391156093,0.922379179198906],"hpluv":[192.177050630060734,149.574468983420843,89.797274219494],"hsluv":[192.177050630060734,47.7079369778472326,89.797274219494]},"#aaeeff":{"lch":[90.2816673401601406,39.1749897548907384,212.508271358442045],"luv":[90.2816673401601406,-33.0368122621910558,-21.0534761464356919],"rgb":[0.66666666666666663,0.933333333333333348,1],"xyz":[0.65198469326817754,0.769132404755088817,1.06021336749068773],"hpluv":[212.508271358442045,182.211685385120148,90.2816673401601406],"hsluv":[212.508271358442045,99.9999999999910898,90.2816673401601406]},"#88ff00":{"lch":[90.2073775103659727,121.530167505498795,118.25137340908573],"luv":[90.2073775103659727,-57.5251845782800331,107.053420090856534],"rgb":[0.533333333333333326,1,0],"xyz":[0.459115501285251582,0.767520684123151,0.12395405300874715],"hpluv":[118.25137340908573,560.639311859311,90.2073775103659727],"hsluv":[118.25137340908573,100.00000000000226,90.2073775103659727]},"#88ff11":{"lch":[90.2260397586701828,120.75410845816802,118.424372307304225],"luv":[90.2260397586701828,-57.4787561773275684,106.196738640291272],"rgb":[0.533333333333333326,1,0.0666666666666666657],"xyz":[0.460127166784888686,0.767925350323005906,0.129282157973502787],"hpluv":[118.424372307304225,558.207032378019221,90.2260397586701828],"hsluv":[118.424372307304225,99.9999999999909335,90.2260397586701828]},"#88ff22":{"lch":[90.260617257984066,119.32542599803422,118.749452026898098],"luv":[90.260617257984066,-57.393189210317729,104.616342518179295],"rgb":[0.533333333333333326,1,0.133333333333333331],"xyz":[0.462002524923365743,0.768675493578396707,0.139159044169481966],"hpluv":[118.749452026898098,553.71568515647823,90.260617257984066],"hsluv":[118.749452026898098,99.9999999999907772,90.260617257984066]},"#88ff33":{"lch":[90.3174996442954665,117.001153508636776,119.297411154505227],"luv":[90.3174996442954665,-57.253701051451273,102.035697862378711],"rgb":[0.533333333333333326,1,0.2],"xyz":[0.465090275655823449,0.769910593871379834,0.155421198027093116],"hpluv":[119.297411154505227,546.370637823869743,90.3174996442954665],"hsluv":[119.297411154505227,99.9999999999907914,90.3174996442954665]},"#88ff44":{"lch":[90.399517385893148,113.706822542904789,120.117552028257023],"luv":[90.399517385893148,-57.0553255590242614,98.3561452994036074],"rgb":[0.533333333333333326,1,0.266666666666666663],"xyz":[0.469548270900042364,0.7716937919690674,0.178899972979979754],"hpluv":[120.117552028257023,535.877566613280692,90.399517385893148],"hsluv":[120.117552028257023,99.9999999999907914,90.399517385893148]},"#88ff55":{"lch":[90.5090160073098389,109.413894688598035,121.271093020798972],"luv":[90.5090160073098389,-56.7954345723420317,93.518334901057969],"rgb":[0.533333333333333326,1,0.333333333333333315],"xyz":[0.475510684939404349,0.774078757584812149,0.21030202025395367],"hpluv":[121.271093020798972,522.05545338002139,90.5090160073098389],"hsluv":[121.271093020798972,99.9999999999906493,90.5090160073098389]},"#88ff66":{"lch":[90.6479884721694,104.139810410505333,122.839359042112989],"luv":[90.6479884721694,-56.4735097148607039,87.4976731851854908],"rgb":[0.533333333333333326,1,0.4],"xyz":[0.483095680712912534,0.777112755894215468,0.250249664661097659],"hpluv":[122.839359042112989,504.839052288882328,90.6479884721694],"hsluv":[122.839359042112989,99.9999999999905498,90.6479884721694]},"#88ff77":{"lch":[90.8181461195308515,97.9515013566305441,124.934550835890477],"luv":[90.8181461195308515,-56.0909812525741813,80.3012978733306],"rgb":[0.533333333333333326,1,0.466666666666666674],"xyz":[0.49240969373311444,0.780838361102296319,0.299303466567495513],"hpluv":[124.934550835890477,484.301391198376791,90.8181461195308515],"hsluv":[124.934550835890477,99.9999999999904,90.8181461195308515]},"#88ff88":{"lch":[91.0209609702079803,90.9725812653771,127.715012949239437],"luv":[91.0209609702079803,-55.6510519447396348,71.9650676337452779],"rgb":[0.533333333333333326,1,0.533333333333333326],"xyz":[0.503550110835058295,0.785294527943073861,0.357976329971067708],"hpluv":[127.715012949239437,460.703998076760797,91.0209609702079803],"hsluv":[127.715012949239437,99.9999999999902087,91.0209609702079803]},"#88ff99":{"lch":[91.2576929391802167,83.3964386150156116,131.406800448379954],"luv":[91.2576929391802167,-55.158478848678719,62.5500454417735057],"rgb":[0.533333333333333326,1,0.6],"xyz":[0.51660707494413094,0.790517313586703074,0.426743007612185643],"hpluv":[131.406800448379954,434.595507650037121,91.2576929391802167],"hsluv":[131.406800448379954,99.9999999999900524,91.2576929391802167]},"#88ffaa":{"lch":[91.5294084976530229,75.5094657025462226,136.33125230150921],"luv":[91.5294084976530229,-54.6193101996060264,52.1383770748881048],"rgb":[0.533333333333333326,1,0.66666666666666663],"xyz":[0.531664767909383551,0.796540390772804141,0.506046857229184188],"hpluv":[136.33125230150921,406.99849880976177,91.5294084976530229],"hsluv":[136.33125230150921,99.9999999999897824,91.5294084976530229]},"#88ffbb":{"lch":[91.8369943060547911,67.7301008509963225,142.928263991524119],"luv":[91.8369943060547911,-54.0405872892441,40.8286846067776423],"rgb":[0.533333333333333326,1,0.733333333333333282],"xyz":[0.548802360016720114,0.8033954276157389,0.596304842327826],"hpluv":[142.928263991524119,379.751065707187763,91.8369943060547911],"hsluv":[142.928263991524119,99.9999999999894413,91.8369943060547911]},"#88ffcc":{"lch":[92.1811678623774498,60.665065650155249,151.731515164157571],"luv":[92.1811678623774498,-53.4300279465168941,28.7312078404662543],"rgb":[0.533333333333333326,1,0.8],"xyz":[0.568094735460441869,0.811112377793227757,0.697911352998096146],"hpluv":[151.731515164157571,356.080713038752435,92.1811678623774498],"hsluv":[151.731515164157571,99.9999999999893134,92.1811678623774498]},"#88ffdd":{"lch":[92.5624864174544371,55.1561732277505712,163.177123134509742],"luv":[92.5624864174544371,-52.7957106082625316,15.9629692256241533],"rgb":[0.533333333333333326,1,0.866666666666666696],"xyz":[0.589613061011075468,0.819719708013481263,0.811241200898102144],"hpluv":[163.177123134509742,341.369587308077,92.5624864174544371],"hsluv":[163.177123134509742,99.9999999999887,92.5624864174544371]},"#88ffee":{"lch":[92.9813549493531752,52.2127257219241301,177.098205352907513],"luv":[92.9813549493531752,-52.1457771028834927,2.64322864112605771],"rgb":[0.533333333333333326,1,0.933333333333333348],"xyz":[0.613425241277250177,0.82924458011995128,0.936652016966625367],"hpluv":[177.098205352907513,343.566349205584061,92.9813549493531752],"hsluv":[177.098205352907513,99.9999999999882,92.9813549493531752]},"#88ffff":{"lch":[93.4380337051328524,52.6732939730945162,192.177050630061075],"luv":[93.4380337051328524,-51.4881691068088543,-11.1105508416409933],"rgb":[0.533333333333333326,1,1],"xyz":[0.639596289687081598,0.839712999483884,1.07448620525840721],"hpluv":[192.177050630061075,372.044084252862206,93.4380337051328524],"hsluv":[192.177050630061075,99.9999999999874802,93.4380337051328524]},"#337700":{"lch":[44.0848685544221084,61.4877933810524127,120.932619831412623],"luv":[44.0848685544221084,-31.6065510805688668,52.7425318283298168],"rgb":[0.2,0.466666666666666674,0],"xyz":[0.0796174701869632462,0.138970102735809731,0.0226283985882975332],"hpluv":[120.932619831412623,176.985906279588789,44.0848685544221084],"hsluv":[120.932619831412623,100.000000000002217,44.0848685544221084]},"#337711":{"lch":[44.1431322932100159,59.4532082216814146,121.943929432148849],"luv":[44.1431322932100159,-31.4560442613915434,50.449987584497805],"rgb":[0.2,0.466666666666666674,0.0666666666666666657],"xyz":[0.0806291356866003645,0.139374768935664584,0.0279565035530531664],"hpluv":[121.943929432148849,170.903703930819205,44.1431322932100159],"hsluv":[121.943929432148849,95.223210781581642,44.1431322932100159]},"#337722":{"lch":[44.2508401312458517,55.8308883755444327,123.957293362486936],"luv":[44.2508401312458517,-31.1857277137109214,46.3091619851707605],"rgb":[0.2,0.466666666666666674,0.133333333333333331],"xyz":[0.0825044938250774,0.140124912191055412,0.037833389749032359],"hpluv":[123.957293362486936,160.100373243526178,44.2508401312458517],"hsluv":[123.957293362486936,86.6219708852072,44.2508401312458517]},"#337733":{"lch":[44.4273451577554681,50.2894934834324943,127.715012949239792],"luv":[44.4273451577554681,-30.7638100974309978,39.782171171385329],"rgb":[0.2,0.466666666666666674,0.2],"xyz":[0.0855922445575351271,0.141360012484038511,0.0540955436066435091],"hpluv":[127.715012949239792,143.636966976451419,44.4273451577554681],"hsluv":[127.715012949239792,73.1368174441878409,44.4273451577554681]},"#337744":{"lch":[44.6803728315295743,43.2379901525315873,134.305487238163835],"luv":[44.6803728315295743,-30.2010367205865329,30.9422231494797764],"rgb":[0.2,0.466666666666666674,0.266666666666666663],"xyz":[0.090050239801754,0.143143210581726105,0.0775743185595301477],"hpluv":[134.305487238163835,122.797079037201513,44.6803728315295743],"hsluv":[134.305487238163835,74.2422920898123664,44.6803728315295743]},"#337755":{"lch":[45.0155248592042057,35.7001949681147,145.791078733963843],"luv":[45.0155248592042057,-29.5238129364495734,20.071083439987369],"rgb":[0.2,0.466666666666666674,0.333333333333333315],"xyz":[0.096012653841116,0.145528176197470938,0.108976365833504049],"hpluv":[145.791078733963843,100.634662922797503,45.0155248592042057],"hsluv":[145.791078733963843,75.5860232244433377,45.0155248592042057]},"#337766":{"lch":[45.436632811343884,29.7520619336037022,165.22669317203713],"luv":[45.436632811343884,-28.7685269489331041,7.58663604567268468],"rgb":[0.2,0.466666666666666674,0.4],"xyz":[0.103597649614624171,0.148562174506874228,0.148924010240648025],"hpluv":[165.22669317203713,83.0902864995861847,45.436632811343884],"hsluv":[165.22669317203713,77.1054195363406194,45.436632811343884]},"#337777":{"lch":[45.9459628200325696,28.6191137838588361,192.177050630061018],"luv":[45.9459628200325696,-27.9751968985082726,-6.03672363647301413],"rgb":[0.2,0.466666666666666674,0.466666666666666674],"xyz":[0.11291166263482609,0.152287779714955052,0.197977812147045934],"hpluv":[192.177050630061018,79.0402219352416324,45.9459628200325696],"hsluv":[192.177050630061018,78.7308353184449743,45.9459628200325696]},"#337788":{"lch":[46.5443737533918309,33.948531272854666,216.805091226728479],"luv":[46.5443737533918309,-27.1818468531358306,-20.3383867904182836],"rgb":[0.2,0.466666666666666674,0.533333333333333326],"xyz":[0.124052079736769919,0.156743946555732649,0.256650675550618101],"hpluv":[216.805091226728479,92.5535593562344587,46.5443737533918309],"hsluv":[216.805091226728479,80.3955897349876381,46.5443737533918309]},"#337799":{"lch":[47.2314677007312085,43.7891028043947799,232.889035089769209],"luv":[47.2314677007312085,-26.4206199262946413,-34.9204290798973105],"rgb":[0.2,0.466666666666666674,0.6],"xyz":[0.137109043845842632,0.161966732199361807,0.325417353191736],"hpluv":[232.889035089769209,117.645124104106614,47.2314677007312085],"hsluv":[232.889035089769209,82.0429045074046144,47.2314677007312085]},"#3377aa":{"lch":[48.0057466772197472,55.756363166772573,242.534195481556935],"luv":[48.0057466772197472,-25.7159019754829359,-49.471854818395343],"rgb":[0.2,0.466666666666666674,0.66666666666666663],"xyz":[0.15216673681109516,0.167989809385462902,0.404721202808734581],"hpluv":[242.534195481556935,147.380673097935755,48.0057466772197472],"hsluv":[242.534195481556935,83.6292827510673078,48.0057466772197472]},"#3377bb":{"lch":[48.8647777502949623,68.5281348418467076,248.528316013511841],"luv":[48.8647777502949623,-25.0841318464231762,-63.7721851155626],"rgb":[0.2,0.466666666666666674,0.733333333333333282],"xyz":[0.169304328918431835,0.17484484622839766,0.494979187907376328],"hpluv":[248.528316013511841,177.955866809146045,48.8647777502949623],"hsluv":[248.528316013511841,85.1249045257873,48.8647777502949623]},"#3377cc":{"lch":[49.8053630390326845,81.4640551302433096,252.471981644912631],"luv":[49.8053630390326845,-24.5347040681135518,-77.6816617648812553],"rgb":[0.2,0.466666666666666674,0.8],"xyz":[0.188596704362153561,0.182561796405886462,0.596585698577646539],"hpluv":[252.471981644912631,207.553107999557341,49.8053630390326845],"hsluv":[252.471981644912631,86.5120902950020678,49.8053630390326845]},"#3377dd":{"lch":[50.8237086019957047,94.2508792352234,255.202895611269554],"luv":[50.8237086019957047,-24.0713820337122506,-91.1251710758325],"rgb":[0.2,0.466666666666666674,0.866666666666666696],"xyz":[0.210115029912787105,0.19116912662614,0.709915546477652537],"hpluv":[255.202895611269554,235.319753343529385,50.8237086019957047],"hsluv":[255.202895611269554,87.7828608732328,50.8237086019957047]},"#3377ee":{"lch":[51.9155858415672498,106.73807185779232,257.174602046687482],"luv":[51.9155858415672498,-23.6937959642247655,-104.075069141100855],"rgb":[0.2,0.466666666666666674,0.933333333333333348],"xyz":[0.233927210178961842,0.200693998732610041,0.83532636254617576],"hpluv":[257.174602046687482,260.892095272406607,51.9155858415672498],"hsluv":[257.174602046687482,88.9363454602875692,51.9155858415672498]},"#3377ff":{"lch":[53.0764799083082721,118.861737619173724,258.646767383963777],"luv":[53.0764799083082721,-23.3987809317452253,-116.535873106771263],"rgb":[0.2,0.466666666666666674,1],"xyz":[0.260098258588793207,0.211162418096542737,0.973160550837957605],"hpluv":[258.646767383963777,284.170694785425781,53.0764799083082721],"hsluv":[258.646767383963777,99.9999999999990763,53.0764799083082721]},"#aaff00":{"lch":[91.7137860391432156,115.080534629040301,111.722667154579099],"luv":[91.7137860391432156,-42.5929524944460596,106.908230966149674],"rgb":[0.66666666666666663,1,0],"xyz":[0.523356277296021299,0.800644834253704918,0.126965339384251918],"hpluv":[111.722667154579099,635.020942157405898,91.7137860391432156],"hsluv":[111.722667154579099,100.000000000002359,91.7137860391432156]},"#aaff11":{"lch":[91.7319300755291209,114.302910123776968,111.867287470019974],"luv":[91.7319300755291209,-42.5730312099484394,106.078707931238455],"rgb":[0.66666666666666663,1,0.0666666666666666657],"xyz":[0.524367942795658459,0.801049500453559826,0.132293444349007555],"hpluv":[111.867287470019974,632.205251281199821,91.7319300755291209],"hsluv":[111.867287470019974,99.9999999999902087,91.7319300755291209]},"#aaff22":{"lch":[91.76554812600844,112.870020698142184,112.139393409643191],"luv":[91.76554812600844,-42.5363318976714595,104.548084827461963],"rgb":[0.66666666666666663,1,0.133333333333333331],"xyz":[0.526243300934135405,0.801799643708950627,0.142170330544986734],"hpluv":[112.139393409643191,626.996151229530483,91.76554812600844],"hsluv":[112.139393409643191,99.9999999999901,91.76554812600844]},"#aaff33":{"lch":[91.8208541183991116,110.535111156119868,112.599114759903571],"luv":[91.8208541183991116,-42.4765495373732875,102.047800258971023],"rgb":[0.66666666666666663,1,0.2],"xyz":[0.529331051666593222,0.803034744001933753,0.158432484402597884],"hpluv":[112.599114759903571,618.449193227995465,91.8208541183991116],"hsluv":[112.599114759903571,99.9999999999900808,91.8208541183991116]},"#aaff44":{"lch":[91.9006031807778498,107.217215837920833,113.289723447654],"luv":[91.9006031807778498,-42.3916247074254713,98.4808688360338],"rgb":[0.66666666666666663,1,0.266666666666666663],"xyz":[0.533789046910812082,0.80481794209962132,0.181911259355484523],"hpluv":[113.289723447654,606.175591066234915,91.9006031807778498],"hsluv":[113.289723447654,99.9999999999900808,91.9006031807778498]},"#aaff55":{"lch":[92.0070808640835338,102.877427982590888,114.266397603879824],"luv":[92.0070808640835338,-42.2805422001356135,93.7876374559873796],"rgb":[0.66666666666666663,1,0.333333333333333315],"xyz":[0.539751460950174,0.807202907715366069,0.213313306629458438],"hpluv":[114.266397603879824,589.885725054723707,92.0070808640835338],"hsluv":[114.266397603879824,99.9999999999897,92.0070808640835338]},"#aaff66":{"lch":[92.142232175119787,97.5178938455906,115.604656391492952],"luv":[92.142232175119787,-42.1432392632638226,87.9413839126902559],"rgb":[0.66666666666666663,1,0.4],"xyz":[0.547336456723682252,0.810236906024769388,0.2532609510366024],"hpluv":[115.604656391492952,569.381090837871511,92.142232175119787],"hsluv":[115.604656391492952,99.9999999999898,92.142232175119787]},"#aaff77":{"lch":[92.3077308115560555,91.1840841453542197,117.412488820025033],"luv":[92.3077308115560555,-41.9805406670279666,80.9454841651530899],"rgb":[0.66666666666666663,1,0.466666666666666674],"xyz":[0.556650469743884102,0.813962511232850239,0.302314752943000309],"hpluv":[117.412488820025033,544.56608764574878,92.3077308115560555],"hsluv":[117.412488820025033,99.9999999999895692,92.3077308115560555]},"#aaff88":{"lch":[92.5050204995058749,83.9705472319660657,119.849478645386625],"luv":[92.5050204995058749,-41.7940850853900727,72.8306752289927601],"rgb":[0.66666666666666663,1,0.533333333333333326],"xyz":[0.567790886845828,0.818418678073627781,0.360987616346572504],"hpluv":[119.849478645386625,515.487838204951345,92.5050204995058749],"hsluv":[119.849478645386625,99.9999999999892708,92.5050204995058749]},"#aaff99":{"lch":[92.7353415895377,76.0327408171719,123.158131820453576],"luv":[92.7353415895377,-41.5862309318022625,63.6518897838709137],"rgb":[0.66666666666666663,1,0.6],"xyz":[0.580847850954900657,0.823641463717257,0.429754293987690383],"hpluv":[123.158131820453576,482.430180447041607,92.7353415895377],"hsluv":[123.158131820453576,99.9999999999891145,92.7353415895377]},"#aaffaa":{"lch":[92.9997492696274435,67.6109506527765802,127.715012949238414],"luv":[92.9997492696274435,-41.3599402641421108,53.4845397242865488],"rgb":[0.66666666666666663,1,0.66666666666666663],"xyz":[0.595905543920153269,0.829664540903358061,0.509058143604689],"hpluv":[127.715012949238414,446.121940639593902,92.9997492696274435],"hsluv":[127.715012949238414,99.9999999999887308,92.9997492696274435]},"#aaffbb":{"lch":[93.2991268167713201,59.0781485982363,134.10730048328],"luv":[93.2991268167713201,-41.1186450338129887,42.4203332421914823],"rgb":[0.66666666666666663,1,0.733333333333333282],"xyz":[0.613043136027489832,0.836519577746292819,0.599316128703330731],"hpluv":[134.10730048328,408.190288953842469,93.2991268167713201],"hsluv":[134.10730048328,99.9999999999883613,93.2991268167713201]},"#aaffcc":{"lch":[93.6341958749929404,51.0306218960527929,143.208028901391231],"luv":[93.6341958749929404,-40.8661030238149436,30.5628204644932246],"rgb":[0.66666666666666663,1,0.8],"xyz":[0.632335511471211587,0.844236527923781677,0.700922639373600886],"hpluv":[143.208028901391231,372.11656739719416,93.6341958749929404],"hsluv":[143.208028901391231,99.9999999999879492,93.6341958749929404]},"#aaffdd":{"lch":[94.005524978734,44.4262644213682094,156.066165366624773],"luv":[94.005524978734,-40.6062520520773305,18.0229094410556279],"rgb":[0.66666666666666663,1,0.866666666666666696],"xyz":[0.653853837021845186,0.852843858144035183,0.814252487273606884],"hpluv":[156.066165366624773,345.018188987702331,94.005524978734],"hsluv":[156.066165366624773,99.999999999986926,94.005524978734]},"#aaffee":{"lch":[94.4135370960349576,40.641316399200953,173.054449077896464],"luv":[94.4135370960349576,-40.3430708217409446,4.91459411670529711],"rgb":[0.66666666666666663,1,0.933333333333333348],"xyz":[0.677666017288019895,0.8623687302505052,0.939663303342130107],"hpluv":[173.054449077896464,339.745490646316398,94.4135370960349576],"hsluv":[173.054449077896464,99.9999999999862865,94.4135370960349576]},"#aaffff":{"lch":[94.8585166918378633,41.0030022313427764,192.177050630060705],"luv":[94.8585166918378633,-40.0804535568370639,-8.64889788711415264],"rgb":[0.66666666666666663,1,1],"xyz":[0.703837065697851316,0.872837149614437924,1.07749749163391195],"hpluv":[192.177050630060705,373.711432895013843,94.8585166918378633],"hsluv":[192.177050630060705,99.9999999999852491,94.8585166918378633]},"#338800":{"lch":[49.8717454753508918,71.2965557675853461,122.69380865426514],"luv":[49.8717454753508918,-38.5107906934601871,60.0009821960016509],"rgb":[0.2,0.533333333333333326,0],"xyz":[0.101689839911933699,0.183114842185751275,0.0299858551632874795],"hpluv":[122.69380865426514,181.406693814272955,49.8717454753508918],"hsluv":[122.69380865426514,100.000000000002245,49.8717454753508918]},"#338811":{"lch":[49.9202331837381053,69.5570511040883162,123.47043015419375],"luv":[49.9202331837381053,-38.361169332567485,58.0224443274741475],"rgb":[0.2,0.533333333333333326,0.0666666666666666657],"xyz":[0.102701505411570818,0.183519508385606128,0.0353139601280431092],"hpluv":[123.47043015419375,176.808802540010674,49.9202331837381053],"hsluv":[123.47043015419375,96.3624965314944291,49.9202331837381053]},"#338822":{"lch":[50.0099282713402,66.4316762124597915,124.985970570646856],"luv":[50.0099282713402,-38.0903182709230137,54.426971791721833],"rgb":[0.2,0.533333333333333326,0.133333333333333331],"xyz":[0.104576863550047847,0.184269651640996956,0.0451908463240223088],"hpluv":[124.985970570646856,168.561468288507513,50.0099282713402],"hsluv":[124.985970570646856,89.7672781446156876,50.0099282713402]},"#338833":{"lch":[50.1570811029395429,61.5658815699287487,127.715012949239991],"luv":[50.1570811029395429,-37.6619639194057143,48.7025076070614134],"rgb":[0.2,0.533333333333333326,0.2],"xyz":[0.10766461428250558,0.185504751933980055,0.061453000181633452],"hpluv":[127.715012949239991,155.756856758587162,50.1570811029395429],"hsluv":[127.715012949239991,79.3080015418374416,50.1570811029395429]},"#338844":{"lch":[50.3683877843642165,55.1600753981733334,132.238380805917416],"luv":[50.3683877843642165,-37.0795228857786441,40.8380080377971524],"rgb":[0.2,0.533333333333333326,0.266666666666666663],"xyz":[0.112122609526724454,0.187287950031667649,0.0849317751345200905],"hpluv":[132.238380805917416,138.965222681713072,50.3683877843642165],"hsluv":[132.238380805917416,79.9701630926319922,50.3683877843642165]},"#338855":{"lch":[50.648916869713247,47.7759983149871488,139.558488969535745],"luv":[50.648916869713247,-36.3608093871966886,30.990926990033774],"rgb":[0.2,0.533333333333333326,0.333333333333333315],"xyz":[0.118085023566086453,0.189672915647412482,0.116333822408493992],"hpluv":[139.558488969535745,119.695806374350084,50.648916869713247],"hsluv":[139.558488969535745,80.7922551095087726,50.648916869713247]},"#338866":{"lch":[51.0024095938582747,40.50700493167151,151.3112863122482],"luv":[51.0024095938582747,-35.5343950908498,19.4454162738124445],"rgb":[0.2,0.533333333333333326,0.4],"xyz":[0.125670019339594624,0.192706913956815773,0.156281466815637954],"hpluv":[151.3112863122482,100.78102351571394,51.0024095938582747],"hsluv":[151.3112863122482,81.7453783644028249,51.0024095938582747]},"#338877":{"lch":[51.4314426692160964,35.2513066472794421,169.271441625736571],"luv":[51.4314426692160964,-34.635118433957949,6.56225505495134165],"rgb":[0.2,0.533333333333333326,0.466666666666666674],"xyz":[0.134984032359796557,0.196432519164896596,0.205335268722035863],"hpluv":[169.271441625736571,86.9732781104886499,51.4314426692160964],"hsluv":[169.271441625736571,82.7938072280844182,51.4314426692160964]},"#338888":{"lch":[51.9375397067754818,34.4751674240590873,192.177050630061075],"luv":[51.9375397067754818,-33.6994920276336458,-7.27196025816705482],"rgb":[0.2,0.533333333333333326,0.533333333333333326],"xyz":[0.146124449461740358,0.200888686005674194,0.26400813212560803],"hpluv":[192.177050630061075,84.229522237058,51.9375397067754818],"hsluv":[192.177050630061075,83.8998231764876579,51.9375397067754818]},"#338899":{"lch":[52.5212658253882267,39.2899369869163,213.503984387174484],"luv":[52.5212658253882267,-32.7618132949538179,-21.68784770470414],"rgb":[0.2,0.533333333333333326,0.6],"xyz":[0.159181413570813085,0.206111471649303352,0.332774809766725965],"hpluv":[213.503984387174484,94.9260641143146415,52.5212658253882267],"hsluv":[213.503984387174484,85.0278067813718081,52.5212658253882267]},"#3388aa":{"lch":[53.1823203703714142,48.3403865273999855,228.783963154055925],"luv":[53.1823203703714142,-31.8514822326876157,-36.3631138545534753],"rgb":[0.2,0.533333333333333326,0.66666666666666663],"xyz":[0.174239106536065613,0.212134548835404446,0.412078659383724566],"hpluv":[228.783963154055925,115.340588590435829,53.1823203703714142],"hsluv":[228.783963154055925,86.1470646970195588,53.1823203703714142]},"#3388bb":{"lch":[53.9196335036436238,59.7107302664646866,238.732819450220632],"luv":[53.9196335036436238,-30.9916356267104831,-51.0381213421469],"rgb":[0.2,0.533333333333333326,0.733333333333333282],"xyz":[0.191376698643402288,0.218989585678339205,0.502336644482366257],"hpluv":[238.732819450220632,140.522147305520861,53.9196335036436238],"hsluv":[238.732819450220632,87.2332789223686262,53.9196335036436238]},"#3388cc":{"lch":[54.7314676322995268,72.1439684856409826,245.254262274299492],"luv":[54.7314676322995268,-30.1989009668194051,-65.5192992121664446],"rgb":[0.2,0.533333333333333326,0.8],"xyz":[0.210669074087124014,0.226706535855828,0.603943155152636413],"hpluv":[245.254262274299492,167.263916186866481,54.7314676322995268],"hsluv":[245.254262274299492,88.2687848362996,54.7314676322995268]},"#3388dd":{"lch":[55.6155220749816692,84.9545141717074728,249.692682338977761],"luv":[55.6155220749816692,-29.4839257322198733,-79.6741338300441697],"rgb":[0.2,0.533333333333333326,0.866666666666666696],"xyz":[0.232187399637757558,0.23531386607608154,0.717273003052642411],"hpluv":[249.692682338977761,193.833915517882872,55.6155220749816692],"hsluv":[249.692682338977761,89.2420383366021923,55.6155220749816692]},"#3388ee":{"lch":[56.5690381344568323,97.7754852991564434,252.83721230554255],"luv":[56.5690381344568323,-28.8523290085395629,-93.4215640859675602],"rgb":[0.2,0.533333333333333326,0.933333333333333348],"xyz":[0.255999579903932295,0.244838738182551585,0.842683819121165634],"hpluv":[252.83721230554255,219.32619909500923,56.5690381344568323],"hsluv":[252.83721230554255,90.146641202583325,56.5690381344568323]},"#3388ff":{"lch":[57.5889013880528182,110.410831334845568,255.145344615238457],"luv":[57.5889013880528182,-28.3057941013035759,-106.720821287817699],"rgb":[0.2,0.533333333333333326,1],"xyz":[0.282170628313763716,0.255307157546484254,0.980518007412947479],"hpluv":[255.145344615238457,243.283252172694205,57.5889013880528182],"hsluv":[255.145344615238457,99.9999999999988489,57.5889013880528182]},"#339900":{"lch":[55.5688440832231,80.82821284508357,123.866754715109295],"luv":[55.5688440832231,-45.0426054376311527,67.1145564473163603],"rgb":[0.2,0.6,0],"xyz":[0.127559440364401172,0.23485404309068697,0.0386090553141097345],"hpluv":[123.866754715109295,184.574176757765827,55.5688440832231],"hsluv":[123.866754715109295,100.00000000000226,55.5688440832231]},"#339911":{"lch":[55.6099261578814463,79.3206910999707446,124.475743785225987],"luv":[55.6099261578814463,-44.9000555787807372,65.3892731692238556],"rgb":[0.2,0.6,0.0666666666666666657],"xyz":[0.128571105864038304,0.235258709290541823,0.0439371602788653642],"hpluv":[124.475743785225987,180.997883954149785,55.6099261578814463],"hsluv":[124.475743785225987,97.1571693172972601,55.6099261578814463]},"#339922":{"lch":[55.6859569378682124,76.5942224429011418,125.649114872203555],"luv":[55.6859569378682124,-44.6406262928881503,62.240576763164114],"rgb":[0.2,0.6,0.133333333333333331],"xyz":[0.130446464002515305,0.236008852545932651,0.0538140464748445638],"hpluv":[125.649114872203555,174.537861698610129,55.6859569378682124],"hsluv":[125.649114872203555,91.9778413864117113,55.6859569378682124]},"#339933":{"lch":[55.8107903110879278,72.2971425020977563,127.715012949240148],"luv":[55.8107903110879278,-44.2266447414942618,57.191613973364035],"rgb":[0.2,0.6,0.2],"xyz":[0.133534214734973067,0.23724395283891575,0.070076200332455707],"hpluv":[127.715012949240148,164.377468022308932,55.8107903110879278],"hsluv":[127.715012949240148,83.6974291768240874,55.8107903110879278]},"#339944":{"lch":[55.9902586993563602,66.5149718399310501,131.021169741293448],"luv":[55.9902586993563602,-43.6562926505411042,50.1833597009719128],"rgb":[0.2,0.6,0.266666666666666663],"xyz":[0.137992209979191927,0.239027150936603344,0.0935549752853423455],"hpluv":[131.021169741293448,150.746162046382238,55.9902586993563602],"hsluv":[131.021169741293448,84.1112663411127386,55.9902586993563602]},"#339955":{"lch":[56.2289015921924,59.572114639014508,136.121417864766215],"luv":[56.2289015921924,-42.9401916463123783,41.2913645202220323],"rgb":[0.2,0.6,0.333333333333333315],"xyz":[0.143954624018553912,0.241412116552348177,0.124957022559316261],"hpluv":[136.121417864766215,134.438216783596687,56.2289015921924],"hsluv":[136.121417864766215,84.6329955380286236,56.2289015921924]},"#339966":{"lch":[56.5302268191487514,52.1043875673731947,143.898662284026642],"luv":[56.5302268191487514,-42.0991012865816785,30.700698275986678],"rgb":[0.2,0.6,0.4],"xyz":[0.151539619792062097,0.244446114861751468,0.164904666966460223],"hpluv":[143.898662284026642,116.958797396111564,56.5302268191487514],"hsluv":[143.898662284026642,85.2491724948614689,56.5302268191487514]},"#339977":{"lch":[56.8968484427531678,45.1992705399313124,155.596009487994166],"luv":[56.8968484427531678,-41.1609366004351855,18.6748856895258584],"rgb":[0.2,0.6,0.466666666666666674],"xyz":[0.160853632812264,0.248171720069832291,0.213958468872858132],"hpluv":[155.596009487994166,100.805108459810327,56.8968484427531678],"hsluv":[155.596009487994166,85.9413862611579873,56.8968484427531678]},"#339988":{"lch":[57.330574208667926,40.5351988689668303,172.17134267960472],"luv":[57.330574208667926,-40.1574041849560217,5.52134371985359085],"rgb":[0.2,0.6,0.533333333333333326],"xyz":[0.171994049914207858,0.252627886910609889,0.272631332276430272],"hpluv":[172.17134267960472,89.7191897797317,57.330574208667926],"hsluv":[172.17134267960472,86.6885468018933665,57.330574208667926]},"#339999":{"lch":[57.8324724587931627,40.0212192418936539,192.177050630061103],"luv":[57.8324724587931627,-39.1207602326874735,-8.44180717763071],"rgb":[0.2,0.6,0.6],"xyz":[0.185051014023280558,0.257850672554239047,0.341398009917548206],"hpluv":[192.177050630061103,87.8128114771670312,57.8324724587931627],"hsluv":[192.177050630061103,87.4690863712762194,57.8324724587931627]},"#3399aa":{"lch":[58.4029323329449568,44.4430671798845367,211.035048784986628],"luv":[58.4029323329449568,-38.0811346860811923,-22.913170914918652],"rgb":[0.2,0.6,0.66666666666666663],"xyz":[0.200108706988533114,0.263873749740340169,0.420701859534546807],"hpluv":[211.035048784986628,96.5625435737210154,58.4029323329449568],"hsluv":[211.035048784986628,88.2627766327166,58.4029323329449568]},"#3399bb":{"lch":[59.0417237507550823,52.8166449153409445,225.431517702392057],"luv":[59.0417237507550823,-37.064675814253917,-37.6272213549907448],"rgb":[0.2,0.6,0.733333333333333282],"xyz":[0.217246299095869733,0.270728786583274927,0.510959844633188554],"hpluv":[225.431517702392057,113.514439229551684,59.0417237507550823],"hsluv":[225.431517702392057,89.0519907331041196,59.0417237507550823]},"#3399cc":{"lch":[59.7480598269018373,63.5982744854026194,235.423336237979868],"luv":[59.7480598269018373,-36.0925574956591646,-52.364757336811472],"rgb":[0.2,0.6,0.8],"xyz":[0.236538674539591487,0.278445736760763729,0.612566355303458709],"hpluv":[235.423336237979868,135.070607162709791,59.7480598269018373],"hsluv":[235.423336237979868,89.8223822716188636,59.7480598269018373]},"#3399dd":{"lch":[60.5206621982976856,75.6357863680042186,242.281144195606601],"luv":[60.5206621982976856,-35.1807304699237235,-66.9558689220665286],"rgb":[0.2,0.6,0.866666666666666696],"xyz":[0.25805700009022503,0.287053066981017235,0.725896203203464707],"hpluv":[242.281144195606601,158.58531958905732,60.5206621982976856],"hsluv":[242.281144195606601,90.5630616197976508,60.5206621982976856]},"#3399ee":{"lch":[61.3578284965586818,88.2341933332873083,247.095644636752098],"luv":[61.3578284965586818,-34.3402162860227946,-81.277441019049661],"rgb":[0.2,0.6,0.933333333333333348],"xyz":[0.28186918035639974,0.296577939087487252,0.85130701927198793],"hpluv":[247.095644636752098,182.476215369006297,61.3578284965586818],"hsluv":[247.095644636752098,91.2664056494933504,61.3578284965586818]},"#3399ff":{"lch":[62.2575005434706554,100.992674077385175,250.5808182685887],"luv":[62.2575005434706554,-33.5777301361133595,-95.2473425151972],"rgb":[0.2,0.6,1],"xyz":[0.308040228766231161,0.30704635845142,0.989141207563769775],"hpluv":[250.5808182685887,205.84367033720622,62.2575005434706554],"hsluv":[250.5808182685887,99.9999999999985789,62.2575005434706554]},"#220000":{"lch":[3.07250446727781679,10.3329293192956264,12.1770506300617765],"luv":[3.07250446727781679,10.1004431663672367,2.17955870775360072],"rgb":[0.133333333333333331,0,0],"xyz":[0.00659672420629513,0.00340143591887099878,0.000309221447170077699],"hpluv":[12.1770506300617765,426.746789183125429,3.07250446727781679],"hsluv":[12.1770506300617765,100.000000000002217,3.07250446727781679]},"#220011":{"lch":[3.43803794680403607,8.12070857757986353,344.488545895364155],"luv":[3.43803794680403607,7.82492808895188574,-2.17172931202554675],"rgb":[0.133333333333333331,0,0.0666666666666666657],"xyz":[0.00760838970593225201,0.00380610211872585338,0.00563732641192570948],"hpluv":[344.488545895364155,299.724735916282839,3.43803794680403607],"hsluv":[344.488545895364155,99.9999999999976836,3.43803794680403607]},"#220022":{"lch":[4.11563957101797229,9.37475958111893348,307.715012949243601],"luv":[4.11563957101797229,5.73486236359989565,-7.41602797151862436],"rgb":[0.133333333333333331,0,0.133333333333333331],"xyz":[0.00948374784440927,0.00455624537411667124,0.0155142126079049047],"hpluv":[307.715012949243601,289.042783730483393,4.11563957101797229],"hsluv":[307.715012949243601,99.9999999999988205,4.11563957101797229]},"#220033":{"lch":[5.23130109110515384,14.2535250315243012,286.735013267555587],"luv":[5.23130109110515384,4.10424250296207127,-13.6498413654214126],"rgb":[0.133333333333333331,0,0.2],"xyz":[0.0125714985768670112,0.00579134566709978496,0.0317763664655160497],"hpluv":[286.735013267555587,345.74180296647927,5.23130109110515384],"hsluv":[286.735013267555587,99.9999999999995737,5.23130109110515384]},"#220044":{"lch":[6.84205732813722722,21.3889830656619786,277.641816515271671],"luv":[6.84205732813722722,2.84430225454687724,-21.1990221771654959],"rgb":[0.133333333333333331,0,0.266666666666666663],"xyz":[0.01702949382108589,0.0075745437647873606,0.0552551414184026882],"hpluv":[277.641816515271671,396.682237683346386,6.84205732813722722],"hsluv":[277.641816515271671,100.000000000000085,6.84205732813722722]},"#220055":{"lch":[8.95766614306443,30.4428627575942237,273.263558660643355],"luv":[8.95766614306443,1.73308321478426808,-30.3934913336449455],"rgb":[0.133333333333333331,0,0.333333333333333315],"xyz":[0.0229919078604478855,0.00995950938053219263,0.0866571886923766],"hpluv":[273.263558660643355,431.250830347711485,8.95766614306443],"hsluv":[273.263558660643355,100.000000000000242,8.95766614306443]},"#220066":{"lch":[11.2709410858812937,40.3162667149428913,270.881506896841],"luv":[11.2709410858812937,0.620249265146302853,-40.3114952920317435],"rgb":[0.133333333333333331,0,0.4],"xyz":[0.0305769036339560568,0.0129935076899355059,0.126604833099520558],"hpluv":[270.881506896841,453.899240935372916,11.2709410858812937],"hsluv":[270.881506896841,100.000000000000469,11.2709410858812937]},"#220077":{"lch":[13.6616791408408957,50.492834518379162,269.459540268375122],"luv":[13.6616791408408957,-0.476281836738408071,-50.4905881656414763],"rgb":[0.133333333333333331,0,0.466666666666666674],"xyz":[0.0398909166541579763,0.0167191128980163223,0.175658635005918468],"hpluv":[269.459540268375122,468.991527020998944,13.6616791408408957],"hsluv":[269.459540268375122,100.000000000000711,13.6616791408408957]},"#220088":{"lch":[16.0923146306383913,60.7890037695263104,268.549935621017426],"luv":[16.0923146306383913,-1.53830805749361632,-60.7695366743217278],"rgb":[0.133333333333333331,0,0.533333333333333326],"xyz":[0.0510313337561018043,0.0211752797387939132,0.234331498409490635],"hpluv":[268.549935621017426,479.34239057424071,16.0923146306383913],"hsluv":[268.549935621017426,100.000000000000711,16.0923146306383913]},"#220099":{"lch":[18.5394450926422749,71.1015482986176437,267.936483797094468],"luv":[18.5394450926422749,-2.56017951479828287,-71.0554406876254916],"rgb":[0.133333333333333331,0,0.6],"xyz":[0.0640882978651745178,0.0263980653824230742,0.30309817605060857],"hpluv":[267.936483797094468,486.655519564945394,18.5394450926422749],"hsluv":[267.936483797094468,100.000000000000739,18.5394450926422749]},"#2200aa":{"lch":[20.9885603179873783,81.3727160976321,267.505178931910336],"luv":[20.9885603179873783,-3.54207977840461252,-81.2955878012407851],"rgb":[0.133333333333333331,0,0.66666666666666663],"xyz":[0.0791459908304270598,0.0324211425685241791,0.382402025667607171],"hpluv":[267.505178931910336,491.966452636739518,20.9885603179873783],"hsluv":[267.505178931910336,100.000000000000782,20.9885603179873783]},"#2200bb":{"lch":[23.4306921856835828,91.57073581353,267.191578225858507],"luv":[23.4306921856835828,-4.48665301772878333,-91.4607544366971155],"rgb":[0.133333333333333331,0,0.733333333333333282],"xyz":[0.0962835829377637,0.0392761794114589377,0.472660010766248917],"hpluv":[267.191578225858507,495.919187528698728,23.4306921856835828],"hsluv":[267.191578225858507,100.000000000000909,23.4306921856835828]},"#2200cc":{"lch":[25.860342630381858,101.678845182637474,266.957159441292106],"luv":[25.860342630381858,-5.39738007409318588,-101.535490573545474],"rgb":[0.133333333333333331,0,0.8],"xyz":[0.115575958381485447,0.0469931295889477393,0.574266521436519],"hpluv":[266.957159441292106,498.925449111647538,25.860342630381858],"hsluv":[266.957159441292106,100.000000000000881,25.860342630381858]},"#2200dd":{"lch":[28.2742062228116282,111.689036790699618,266.777814373778199],"luv":[28.2742062228116282,-6.27782958394359714,-111.512464751476173],"rgb":[0.133333333333333331,0,0.866666666666666696],"xyz":[0.137094283932118977,0.0556004598092012733,0.687596369336525],"hpluv":[266.777814373778199,501.255846139694427,28.2742062228116282],"hsluv":[266.777814373778199,100.000000000000838,28.2742062228116282]},"#2200ee":{"lch":[30.6703766456275062,121.598437280905173,266.637867063772376],"luv":[30.6703766456275062,-7.13133722672581882,-121.389142753859758],"rgb":[0.133333333333333331,0,0.933333333333333348],"xyz":[0.160906464198293714,0.0651253319156713,0.813007185405048238],"hpluv":[266.637867063772376,503.092926092128948,30.6703766456275062],"hsluv":[266.637867063772376,100.000000000000838,30.6703766456275062]},"#2200ff":{"lch":[33.0478477502328261,131.407178056457695,266.526788769360394],"luv":[33.0478477502328261,-7.96089030872800674,-131.165813649189772],"rgb":[0.133333333333333331,0,1],"xyz":[0.187077512608125107,0.0755937512796040073,0.950841373696830083],"hpluv":[266.526788769360394,504.562807291912918,33.0478477502328261],"hsluv":[266.526788769360394,100.000000000000824,33.0478477502328261]},"#221100":{"lch":[6.69363913087575835,9.72440836304526535,42.3457761997067053],"luv":[6.69363913087575835,7.18724369375563921,6.55039282011655288],"rgb":[0.133333333333333331,0.0666666666666666657,0],"xyz":[0.00860112446722354,0.00741023644072787233,0.000977354867479528471],"hpluv":[42.3457761997067053,184.348759610596915,6.69363913087575835],"hsluv":[42.3457761997067053,100.000000000002402,6.69363913087575835]},"#221111":{"lch":[7.0591726104019763,6.19439175917428564,12.1770506300621],"luv":[7.0591726104019763,6.05502079617615863,1.30660339200560327],"rgb":[0.133333333333333331,0.0666666666666666657,0.0666666666666666657],"xyz":[0.00961278996686066103,0.00781490264058272606,0.00630545983223516],"hpluv":[12.1770506300621,111.348454543071412,7.0591726104019763],"hsluv":[12.1770506300621,26.092394217240134,7.0591726104019763]},"#221122":{"lch":[7.73677423461591474,7.55259268754738677,307.715012949245249],"luv":[7.73677423461591474,4.62018030186617779,-5.97457866985129],"rgb":[0.133333333333333331,0.0666666666666666657,0.133333333333333331],"xyz":[0.0114881481053376797,0.00856504589597354565,0.0161823460282143547],"hpluv":[307.715012949245249,123.872660774597591,7.73677423461591474],"hsluv":[307.715012949245249,42.856167926372315,7.73677423461591474]},"#221133":{"lch":[8.8238329822443653,14.9761175001236957,282.095598903329574],"luv":[8.8238329822443653,3.13814740657790647,-14.6436377390353236],"rgb":[0.133333333333333331,0.0666666666666666657,0.2],"xyz":[0.0145758988377954202,0.00980014618895665851,0.0324444998858255],"hpluv":[282.095598903329574,215.36805510923017,8.8238329822443653],"hsluv":[282.095598903329574,58.3941618505161273,8.8238329822443653]},"#221144":{"lch":[10.2463738670161,23.9334379374521049,274.255517801158362],"luv":[10.2463738670161,1.77596948547040223,-23.8674544912638211],"rgb":[0.133333333333333331,0.0666666666666666657,0.266666666666666663],"xyz":[0.0190338940820143,0.011583344286644235,0.0559232748387121364],"hpluv":[274.255517801158362,296.397281412249697,10.2463738670161],"hsluv":[274.255517801158362,70.1230959508528287,10.2463738670161]},"#221155":{"lch":[11.9365395500671561,33.3852442414483903,270.945812779521702],"luv":[11.9365395500671561,0.551083463009601,-33.3806956200430349],"rgb":[0.133333333333333331,0.0666666666666666657,0.333333333333333315],"xyz":[0.0249963081213762928,0.0139683099023890662,0.0873253221126860518],"hpluv":[270.945812779521702,354.907717298979946,11.9365395500671561],"hsluv":[270.945812779521702,78.3035236172291,11.9365395500671561]},"#221166":{"lch":[13.8282163263251512,43.1006504094303509,269.247085426223],"luv":[13.8282163263251512,-0.566362377205730683,-43.0969291176716496],"rgb":[0.133333333333333331,0.0666666666666666657,0.4],"xyz":[0.0325813038948844641,0.0170023082117923795,0.12727296651983],"hpluv":[269.247085426223,395.509560036398682,13.8282163263251512],"hsluv":[269.247085426223,83.9084652674952167,13.8282163263251512]},"#221177":{"lch":[15.8647012598499089,52.9790758801604,268.263491631539182],"luv":[15.8647012598499089,-1.60543281970815044,-52.954745458525224],"rgb":[0.133333333333333331,0.0666666666666666657,0.466666666666666674],"xyz":[0.0418953169150863836,0.0207279134198731958,0.176326768426227909],"hpluv":[268.263491631539182,423.75204448359591,15.8647012598499089],"hsluv":[268.263491631539182,87.783734282584831,15.8647012598499089]},"#221188":{"lch":[18.0016522099437424,62.9493123294311872,267.645454528547475],"luv":[18.0016522099437424,-2.58614693443793442,-62.8961665507666297],"rgb":[0.133333333333333331,0.0666666666666666657,0.533333333333333326],"xyz":[0.0530357340170302116,0.0251840802606507867,0.234999631829800076],"hpluv":[267.645454528547475,443.729139668046173,18.0016522099437424],"hsluv":[267.645454528547475,90.5156952975567464,18.0016522099437424]},"#221199":{"lch":[20.2061107483083475,72.9561611588118524,267.23334268313738],"luv":[20.2061107483083475,-3.52148568403582729,-72.8711231531918742],"rgb":[0.133333333333333331,0.0666666666666666657,0.6],"xyz":[0.066092698126102925,0.0304068659042799477,0.303766309470918],"hpluv":[267.23334268313738,458.161478440778865,20.2061107483083475],"hsluv":[267.23334268313738,92.4853336382361704,20.2061107483083475]},"#2211aa":{"lch":[22.4542330055690798,82.9584275230068471,266.945798214496847],"luv":[22.4542330055690798,-4.42007776686241449,-82.8405915576709759],"rgb":[0.133333333333333331,0.0666666666666666657,0.66666666666666663],"xyz":[0.0811503910913554671,0.0364299430903810492,0.383070159087916584],"hpluv":[266.945798214496847,468.815123306781686,22.4542330055690798],"hsluv":[266.945798214496847,93.9373181855700921,22.4542330055690798]},"#2211bb":{"lch":[24.7289983316777295,92.9268656932788701,266.737844101991243],"luv":[24.7289983316777295,-5.28796663316276483,-92.7762888698575097],"rgb":[0.133333333333333331,0.0666666666666666657,0.733333333333333282],"xyz":[0.0982879831986921138,0.0432849799333158078,0.473328144186558331],"hpluv":[266.737844101991243,476.841549380862261,24.7289983316777295],"hsluv":[266.737844101991243,95.0302193246277369,24.7289983316777295]},"#2211cc":{"lch":[27.0183279904475668,102.841627589427389,266.583003116257],"luv":[27.0183279904475668,-6.12961814831514129,-102.658794784462174],"rgb":[0.133333333333333331,0.0666666666666666657,0.8],"xyz":[0.117580358642413854,0.0510019301108046094,0.574934654856828486],"hpluv":[266.583003116257,483.002966655360069,27.0183279904475668],"hsluv":[266.583003116257,95.8686128249461689,27.0183279904475668]},"#2211dd":{"lch":[29.313669578695368,112.689841457512074,266.464886381494523],"luv":[29.313669578695368,-6.94848190374932617,-112.475414944566779],"rgb":[0.133333333333333331,0.0666666666666666657,0.866666666666666696],"xyz":[0.139098684193047384,0.0596092603310581434,0.688264502756834484],"hpluv":[266.464886381494523,487.813602393737767,29.313669578695368],"hsluv":[266.464886381494523,96.5228774582602256,29.313669578695368]},"#2211ee":{"lch":[31.6089746608533417,122.463629630364608,266.372923821556242],"luv":[31.6089746608533417,-7.74731231829930689,-122.21832814306471],"rgb":[0.133333333333333331,0.0666666666666666657,0.933333333333333348],"xyz":[0.162910864459222149,0.0691341324375281813,0.813675318825357707],"hpluv":[266.372923821556242,491.627361233059389,31.6089746608533417],"hsluv":[266.372923821556242,97.0413663214109761,31.6089746608533417]},"#2211ff":{"lch":[33.8999739889387115,132.15860685194221,266.300059947999785],"luv":[33.8999739889387115,-8.52836196764118,-131.883146789857562],"rgb":[0.133333333333333331,0.0666666666666666657,1],"xyz":[0.189081912869053514,0.0796025518014608774,0.951509507117139552],"hpluv":[266.300059947999785,494.692599475339,33.8999739889387115],"hsluv":[266.300059947999785,99.9999999999995737,33.8999739889387115]},"#77aa00":{"lch":[63.8935034159882491,78.4053265973676616,109.262687899665323],"luv":[63.8935034159882491,-25.8658938451783591,74.0158819067222424],"rgb":[0.466666666666666674,0.66666666666666663,0],"xyz":[0.219816749274909073,0.326708497135311,0.0514797056256764834],"hpluv":[109.262687899665323,155.714190603412163,63.8935034159882491],"hsluv":[109.262687899665323,100.000000000002132,63.8935034159882491]},"#77aa11":{"lch":[63.9264755829735662,77.0719876411919,109.595002167467626],"luv":[63.9264755829735662,-25.8475857965541422,72.6084952843247464],"rgb":[0.466666666666666674,0.66666666666666663,0.0666666666666666657],"xyz":[0.220828414774546206,0.32711316333516588,0.0568078105904321132],"hpluv":[109.595002167467626,152.98720995680398,63.9264755829735662],"hsluv":[109.595002167467626,97.9667163347824612,63.9264755829735662]},"#77aa22":{"lch":[63.9875253363426424,74.6349938152274603,110.235118064089221],"luv":[63.9875253363426424,-25.8142561390327501,70.0286118796271],"rgb":[0.466666666666666674,0.66666666666666663,0.133333333333333331],"xyz":[0.222703772913023207,0.32786330659055668,0.0666846967864113127],"hpluv":[110.235118064089221,148.008450888663447,63.9875253363426424],"hsluv":[110.235118064089221,94.2440053809013421,63.9875253363426424]},"#77aa33":{"lch":[64.0878403339217328,70.7199026331045,111.362593229805157],"luv":[64.0878403339217328,-25.7610573917560757,65.8610093340090685],"rgb":[0.466666666666666674,0.66666666666666663,0.2],"xyz":[0.22579152364548094,0.329098406883539807,0.0829468506440224629],"hpluv":[111.362593229805157,140.024923426145421,64.0878403339217328],"hsluv":[111.362593229805157,88.2427941375042,64.0878403339217328]},"#77aa44":{"lch":[64.2322300921174616,65.2796522257345,113.17268826837423],"luv":[64.2322300921174616,-25.6877867579927681,60.0130869576689463],"rgb":[0.466666666666666674,0.66666666666666663,0.266666666666666663],"xyz":[0.230249518889699828,0.330881604981227373,0.106425625596909101],"hpluv":[113.17268826837423,128.962712139229978,64.2322300921174616],"hsluv":[113.17268826837423,79.8488372015295482,64.2322300921174616]},"#77aa55":{"lch":[64.4245377454048338,58.3957340906732298,115.996670283872277],"luv":[64.4245377454048338,-25.5959546947607706,52.487225714952487],"rgb":[0.466666666666666674,0.66666666666666663,0.333333333333333315],"xyz":[0.236211932929061841,0.333266570596972234,0.137827672870883],"hpluv":[115.996670283872277,115.018880896771989,64.4245377454048338],"hsluv":[115.996670283872277,69.0944053471027075,64.4245377454048338]},"#77aa66":{"lch":[64.6678576456364,50.3036055521827663,120.443938093288892],"luv":[64.6678576456364,-25.4885877435648602,43.368013862617552],"rgb":[0.466666666666666674,0.66666666666666663,0.4],"xyz":[0.24379692870257,0.336300568906375552,0.177775317278026979],"hpluv":[120.443938093288892,98.707457943709727,64.6678576456364],"hsluv":[120.443938093288892,56.1391996219007723,64.6678576456364]},"#77aa77":{"lch":[64.964649263009,41.4721527505437351,127.71501294923786],"luv":[64.964649263009,-25.3699399849719889,32.8070967768157118],"rgb":[0.466666666666666674,0.66666666666666663,0.466666666666666674],"xyz":[0.253110941722771932,0.340026174114456348,0.226829119184424888],"hpluv":[127.71501294923786,81.006302212696113,64.964649263009],"hsluv":[127.71501294923786,41.2466460512923874,64.964649263009]},"#77aa88":{"lch":[65.3168057391263375,32.8409027786736161,140.238161573904051],"luv":[65.3168057391263375,-25.2451203613846147,21.004970679758074],"rgb":[0.466666666666666674,0.66666666666666663,0.533333333333333326],"xyz":[0.264251358824715732,0.344482340955233945,0.285501982587997],"hpluv":[140.238161573904051,63.8012923553667,65.3168057391263375],"hsluv":[140.238161573904051,43.6199696205744232,65.3168057391263375]},"#77aa99":{"lch":[65.7257012160132,26.4214783611449491,161.939459903532622],"luv":[65.7257012160132,-25.1196781367095241,8.19123245284666],"rgb":[0.466666666666666674,0.66666666666666663,0.6],"xyz":[0.277308322933788487,0.349705126598863103,0.354268660229114962],"hpluv":[161.939459903532622,51.0106916742292213,65.7257012160132],"hsluv":[161.939459903532622,46.1685656356417766,65.7257012160132]},"#77aaaa":{"lch":[66.1922284915170565,25.5746156232648509,192.177050630060677],"luv":[66.1922284915170565,-24.9991985449953802,-5.39453764336142338],"rgb":[0.466666666666666674,0.66666666666666663,0.66666666666666663],"xyz":[0.292366015899041,0.355728203784964225,0.433572509846113563],"hpluv":[192.177050630060677,49.0276908522131265,66.1922284915170565],"hsluv":[192.177050630060677,48.8357820868943122,66.1922284915170565]},"#77aabb":{"lch":[66.7168329685055568,31.6300901405034409,218.105494045696133],"luv":[66.7168329685055568,-24.8889541052261336,-19.519287021925777],"rgb":[0.466666666666666674,0.66666666666666663,0.733333333333333282],"xyz":[0.309503608006377662,0.362583240627899,0.523830494944755309],"hpluv":[218.105494045696133,60.1595160354738923,66.7168329685055568],"hsluv":[218.105494045696133,51.56699221483656,66.7168329685055568]},"#77aacc":{"lch":[67.2995460165272306,42.0550186755790207,233.874741843371567],"luv":[67.2995460165272306,-24.7936410920562054,-33.9691029790543908],"rgb":[0.466666666666666674,0.66666666666666663,0.8],"xyz":[0.328795983450099416,0.370300190805387786,0.625437005615025465],"hpluv":[233.874741843371567,79.2948573353567099,67.2995460165272306],"hsluv":[233.874741843371567,54.3124963748670382,67.2995460165272306]},"#77aadd":{"lch":[67.9400192524912,54.4863937886276304,243.022531341574677],"luv":[67.9400192524912,-24.7172120267711577,-48.557456046554158],"rgb":[0.466666666666666674,0.66666666666666663,0.866666666666666696],"xyz":[0.350314309000732904,0.378907521025641292,0.738766853515031463],"hpluv":[243.022531341574677,101.765770647841308,67.9400192524912],"hsluv":[243.022531341574677,60.6446157506369659,67.9400192524912]},"#77aaee":{"lch":[68.6375602707836,67.7758398266106781,248.660849953701415],"luv":[68.6375602707836,-24.6627990544268876,-63.1293181256010882],"rgb":[0.466666666666666674,0.66666666666666663,0.933333333333333348],"xyz":[0.374126489266907669,0.388432393132111309,0.864177669583554686],"hpluv":[248.660849953701415,125.300382334337471,68.6375602707836],"hsluv":[248.660849953701415,79.8712566390148453,68.6375602707836]},"#77aaff":{"lch":[69.3911697465266428,81.3794470542267874,252.380781260055755],"luv":[69.3911697465266428,-24.6327125013740549,-77.5618712878715399],"rgb":[0.466666666666666674,0.66666666666666663,1],"xyz":[0.400297537676739035,0.398900812496044033,1.00201185787533653],"hpluv":[252.380781260055755,148.816077288451226,69.3911697465266428],"hsluv":[252.380781260055755,99.9999999999980531,69.3911697465266428]},"#222200":{"lch":[12.5069288045758107,13.787646171799997,85.8743202181747307],"luv":[12.5069288045758107,0.991945128669063814,13.751917387057734],"rgb":[0.133333333333333331,0.133333333333333331,0],"xyz":[0.0123167482019914745,0.014841483910263846,0.002215896112402139],"hpluv":[85.8743202181747307,139.887458074797621,12.5069288045758107],"hsluv":[85.8743202181747307,100.000000000002359,12.5069288045758107]},"#222211":{"lch":[12.7636979604368612,8.34346759842367,85.8743202181729828],"luv":[12.7636979604368612,0.600266494900015157,8.32184665209868513],"rgb":[0.133333333333333331,0.133333333333333331,0.0666666666666666657],"xyz":[0.0133284137016285963,0.0152461501101187,0.00754400107715777046],"hpluv":[85.8743202181729828,82.9486632734846552,12.7636979604368612],"hsluv":[85.8743202181729828,59.2967120963297631,12.7636979604368612]},"#222222":{"lch":[13.2279109842717837,6.86787642036123471e-13,0],"luv":[13.2279109842717837,6.53891093021720259e-13,2.10008818196756883e-13],"rgb":[0.133333333333333331,0.133333333333333331,0.133333333333333331],"xyz":[0.0152037718401056149,0.0159962933655095202,0.0174208872731369674],"hpluv":[0,6.58825703928357502e-12,13.2279109842717837],"hsluv":[0,1.88635445986832e-12,13.2279109842717837]},"#222233":{"lch":[13.9615854376221584,10.5260121123804868,265.874320218180912],"luv":[13.9615854376221584,-0.757288539977712838,-10.4987354027615698],"rgb":[0.133333333333333331,0.133333333333333331,0.2],"xyz":[0.0182915225725633554,0.017231393658492633,0.0336830411307481106],"hpluv":[265.874320218180912,95.6683874279760431,13.9615854376221584],"hsluv":[265.874320218180912,18.6338179823007195,13.9615854376221584]},"#222244":{"lch":[14.9613810506728697,21.7214686924654536,265.874320218179207],"luv":[14.9613810506728697,-1.5627399186581008,-21.6651805001571454],"rgb":[0.133333333333333331,0.133333333333333331,0.266666666666666663],"xyz":[0.0227495178167822359,0.0190145917561802061,0.0571618160836347491],"hpluv":[265.874320218179207,184.228505509793536,14.9613810506728697],"hsluv":[265.874320218179207,35.8831222215914138,14.9613810506728697]},"#222255":{"lch":[16.2052187005970154,32.8139057554865161,265.874320218178639],"luv":[16.2052187005970154,-2.3607796110480268,-32.728873041368395],"rgb":[0.133333333333333331,0.133333333333333331,0.333333333333333315],"xyz":[0.028711931856144228,0.021399557371925039,0.0885638633576086576],"hpluv":[265.874320218178639,256.946292996249099,16.2052187005970154],"hsluv":[265.874320218178639,50.0467352240393097,16.2052187005970154]},"#222266":{"lch":[17.6604729086265309,43.5908485911403716,265.874320218178354],"luv":[17.6604729086265309,-3.13612123314657865,-43.477888915018994],"rgb":[0.133333333333333331,0.133333333333333331,0.4],"xyz":[0.0362969276296524063,0.0244335556813283505,0.128511507764752619],"hpluv":[265.874320218178354,313.207621322876264,17.6604729086265309],"hsluv":[265.874320218178354,61.00504004829466,17.6604729086265309]},"#222277":{"lch":[19.2910482951380544,54.0745009411091573,265.874320218178241],"luv":[19.2910482951380544,-3.89036222175517965,-53.9343743248547867],"rgb":[0.133333333333333331,0.133333333333333331,0.466666666666666674],"xyz":[0.0456109406498543188,0.0281591608894091669,0.177565309671150529],"hpluv":[265.874320218178241,355.693573155256843,19.2910482951380544],"hsluv":[265.874320218178241,69.2802447897283429,19.2910482951380544]},"#222288":{"lch":[21.0622605487373207,64.3390225585563371,265.874320218178184],"luv":[21.0622605487373207,-4.62883796225993471,-64.1722968492601353],"rgb":[0.133333333333333331,0.133333333333333331,0.533333333333333326],"xyz":[0.0567513577517981468,0.0326153277301867578,0.236238173074722696],"hpluv":[265.874320218178184,387.622344883614403,21.0622605487373207],"hsluv":[265.874320218178184,75.4991739133377706,21.0622605487373207]},"#222299":{"lch":[22.9434551626666803,74.4470789880776351,265.874320218178127],"luv":[22.9434551626666803,-5.35605689510984373,-74.2541596437089737],"rgb":[0.133333333333333331,0.133333333333333331,0.6],"xyz":[0.0698083218608708533,0.0378381133738159223,0.305004850715840603],"hpluv":[265.874320218178127,411.744842564929684,22.9434551626666803],"hsluv":[265.874320218178127,80.1976353712613559,22.9434551626666803]},"#2222aa":{"lch":[24.9089307040763188,84.4389391258505526,265.87432021817807],"luv":[24.9089307040763188,-6.07491614537627278,-84.2201272530844705],"rgb":[0.133333333333333331,0.133333333333333331,0.66666666666666663],"xyz":[0.0848660148261234093,0.0438611905599170238,0.384308700332839204],"hpluv":[265.87432021817807,430.157015573344836,24.9089307040763188],"hsluv":[265.87432021817807,83.7838678741945557,24.9089307040763188]},"#2222bb":{"lch":[26.937850813592469,94.3371638934954149,265.87432021817807],"luv":[26.937850813592469,-6.78703884698804139,-94.0927021354881106],"rgb":[0.133333333333333331,0.133333333333333331,0.733333333333333282],"xyz":[0.102003606933460056,0.0507162274028517823,0.47456668543148095],"hpluv":[265.87432021817807,444.384803230596,26.937850813592469],"hsluv":[265.87432021817807,86.5550863782758,26.937850813592469]},"#2222cc":{"lch":[29.0136770200274086,104.153206308830732,265.874320218178],"luv":[29.0136770200274086,-7.49324898143496743,-103.883307629821275],"rgb":[0.133333333333333331,0.133333333333333331,0.8],"xyz":[0.121295982377181782,0.058433177580340584,0.576173196101751106],"hpluv":[265.874320218178,455.521834046362642,29.0136770200274086],"hsluv":[265.874320218178,88.7243024658832695,29.0136770200274086]},"#2222dd":{"lch":[31.1234509916598299,113.892375340460845,265.874320218178],"luv":[31.1234509916598299,-8.19392849973896809,-113.597238947227837],"rgb":[0.133333333333333331,0.133333333333333331,0.866666666666666696],"xyz":[0.142814307927815326,0.067040507800594118,0.689503044001757104],"hpluv":[265.874320218178,464.350835522916555,31.1234509916598299],"hsluv":[265.874320218178,90.4439719502614565,31.1234509916598299]},"#2222ee":{"lch":[33.2570959032629503,123.556928623667645,265.874320218178],"luv":[33.2570959032629503,-8.88923982631188103,-123.236747872639071],"rgb":[0.133333333333333331,0.133333333333333331,0.933333333333333348],"xyz":[0.166626488193990063,0.0765653799070641489,0.814913860070280327],"hpluv":[265.874320218178,471.435310205520636,33.2570959032629503],"hsluv":[265.874320218178,93.8546607467714296,33.2570959032629503]},"#2222ff":{"lch":[35.4068078244889,133.147814572056944,265.874320218177957],"luv":[35.4068078244889,-9.57925119428392335,-132.802780361977625],"rgb":[0.133333333333333331,0.133333333333333331,1],"xyz":[0.192797536603821457,0.0870337992709968589,0.952748048362062172],"hpluv":[265.874320218177957,477.184793215987838,35.4068078244889],"hsluv":[265.874320218177957,99.999999999999531,35.4068078244889]},"#77bb00":{"lch":[69.0844312744863629,87.8096536524333544,113.037133893102563],"luv":[69.0844312744863629,-34.3623439699837476,80.8069588058406225],"rgb":[0.466666666666666674,0.733333333333333282,0],"xyz":[0.253771247183507853,0.394617492952509585,0.0627978715952091093],"hpluv":[113.037133893102563,161.287757631366873,69.0844312744863629],"hsluv":[113.037133893102563,100.000000000002331,69.0844312744863629]},"#77bb11":{"lch":[69.1135050244688216,86.6316159473835654,113.342165034517933],"luv":[69.1135050244688216,-34.3252912529264051,79.5412550948043275],"rgb":[0.466666666666666674,0.733333333333333282,0.0666666666666666657],"xyz":[0.254782912683144958,0.395022159152364438,0.068125976559964746],"hpluv":[113.342165034517933,159.057013433643618,69.1135050244688216],"hsluv":[113.342165034517933,98.3127503818399,69.1135050244688216]},"#77bb22":{"lch":[69.1673475306790664,84.4748154027895595,113.924619678029501],"luv":[69.1673475306790664,-34.2574435126740582,77.2167209955934197],"rgb":[0.466666666666666674,0.733333333333333282,0.133333333333333331],"xyz":[0.256658270821622,0.395772302407755239,0.0780028627559439386],"hpluv":[113.924619678029501,154.976360107776344,69.1673475306790664],"hsluv":[113.924619678029501,95.2170715716625438,69.1673475306790664]},"#77bb33":{"lch":[69.2558504240405313,80.9996568929936132,114.934551128374181],"luv":[69.2558504240405313,-34.1480550559542593,73.4496749664571666],"rgb":[0.466666666666666674,0.733333333333333282,0.2],"xyz":[0.25974602155407972,0.397007402700738365,0.0942650166135550749],"hpluv":[114.934551128374181,148.410982175614635,69.2558504240405313],"hsluv":[114.934551128374181,90.2088459481891363,69.2558504240405313]},"#77bb44":{"lch":[69.3833048234310752,76.148419012573342,116.514961433737128],"luv":[69.3833048234310752,-33.9950520676451049,68.1389620777462426],"rgb":[0.466666666666666674,0.733333333333333282,0.266666666666666663],"xyz":[0.264204016798298635,0.398790600798425932,0.117743791566441713],"hpluv":[116.514961433737128,139.266042804817573,69.3833048234310752],"hsluv":[116.514961433737128,83.166634884803841,69.3833048234310752]},"#77bb55":{"lch":[69.5531781358710788,69.9670725739878918,118.886197685461212],"luv":[69.5531781358710788,-33.7990968432466516,61.2618339356121666],"rgb":[0.466666666666666674,0.733333333333333282,0.333333333333333315],"xyz":[0.270166430837660621,0.401175566414170792,0.149145838840415629],"hpluv":[118.886197685461212,127.648598426560824,69.5531781358710788],"hsluv":[118.886197685461212,74.0801666731923092,69.5531781358710788]},"#77bb66":{"lch":[69.7683097004737647,62.6192143930699672,122.411113057511386],"luv":[69.7683097004737647,-33.5633071802414804,52.8646424591145],"rgb":[0.466666666666666674,0.733333333333333282,0.4],"xyz":[0.277751426611168806,0.404209564723574111,0.189093483247559591],"hpluv":[122.411113057511386,113.8908252780179,69.7683097004737647],"hsluv":[122.411113057511386,63.0377921091212627,69.7683097004737647]},"#77bb77":{"lch":[70.0310134677453391,54.4237865803123384,127.71501294923867],"luv":[70.0310134677453391,-33.2928991557924476,43.0526585885427053],"rgb":[0.466666666666666674,0.733333333333333282,0.466666666666666674],"xyz":[0.287065439631370711,0.407935169931654906,0.2381472851539575],"hpluv":[127.71501294923867,98.6137944921033522,70.0310134677453391],"hsluv":[127.71501294923867,50.2119979074062357,70.0310134677453391]},"#77bb88":{"lch":[70.3431390634792422,45.948041729110173,135.896820739423845],"luv":[70.3431390634792422,-32.9947227526694,31.9776610966863863],"rgb":[0.466666666666666674,0.733333333333333282,0.533333333333333326],"xyz":[0.298205856733314512,0.412391336772432504,0.296820148557529695],"hpluv":[135.896820739423845,82.8866502392756246,70.3431390634792422],"hsluv":[135.896820739423845,51.9268484553617711,70.3431390634792422]},"#77bb99":{"lch":[70.7061124793432612,38.2197788608509725,148.75629343317604],"luv":[70.7061124793432612,-32.6767203094589,19.8238100775241328],"rgb":[0.466666666666666674,0.733333333333333282,0.6],"xyz":[0.311262820842387211,0.417614122416061662,0.365586826198647574],"hpluv":[148.75629343317604,68.5915373148405,70.7061124793432612],"hsluv":[148.75629343317604,53.7921873551213565,70.7061124793432612]},"#77bbaa":{"lch":[71.1209666334754615,33.0529501718716148,168.140026251468868],"luv":[71.1209666334754615,-32.3473621836046874,6.79306078486928744],"rgb":[0.466666666666666674,0.733333333333333282,0.66666666666666663],"xyz":[0.326320513807639767,0.423637199602162784,0.444890675815646175],"hpluv":[168.140026251468868,58.9728212370576585,71.1209666334754615],"hsluv":[168.140026251468868,55.7713219876506372,71.1209666334754615]},"#77bbbb":{"lch":[71.5883672123020744,32.7520226121926044,192.177050630060876],"luv":[71.5883672123020744,-32.0151171807858432,-6.90849166534396097],"rgb":[0.466666666666666674,0.733333333333333282,0.733333333333333282],"xyz":[0.343458105914976441,0.430492236445097542,0.535148660914287921],"hpluv":[192.177050630060876,58.0543804308889762,71.5883672123020744],"hsluv":[192.177050630060876,57.8271385543864938,71.5883672123020744]},"#77bbcc":{"lch":[72.1086367753872111,38.0603267014846267,213.636027248927832],"luv":[72.1086367753872111,-31.6880044447458609,-21.0821925551758049],"rgb":[0.466666666666666674,0.733333333333333282,0.8],"xyz":[0.36275048135869814,0.438209186622586344,0.636755171584558077],"hpluv":[213.636027248927832,66.97682452789428,72.1086367753872111],"hsluv":[213.636027248927832,59.9241419588218278,72.1086367753872111]},"#77bbdd":{"lch":[72.6817787487410101,47.4106862821029651,228.567760630430627],"luv":[72.6817787487410101,-31.3732552756954277,-35.5456330249727728],"rgb":[0.466666666666666674,0.733333333333333282,0.866666666666666696],"xyz":[0.384268806909331739,0.44681651684283985,0.750085019484564075],"hpluv":[228.567760630430627,82.7732525696479371,72.6817787487410101],"hsluv":[228.567760630430627,62.0300015657167449,72.6817787487410101]},"#77bbee":{"lch":[73.3075021126589803,58.9885691422652769,238.208313348868131],"luv":[73.3075021126589803,-31.0770938488335098,-50.1384635520735316],"rgb":[0.466666666666666674,0.733333333333333282,0.933333333333333348],"xyz":[0.408080987175506449,0.456341388949309867,0.875495835553087298],"hpluv":[238.208313348868131,102.107764199280055,73.3075021126589803],"hsluv":[238.208313348868131,76.3238953534044,73.3075021126589803]},"#77bbff":{"lch":[73.9852470697490219,71.6819577745528846,244.548916872628638],"luv":[73.9852470697490219,-30.8046295043453391,-64.7254036023940102],"rgb":[0.466666666666666674,0.733333333333333282,1],"xyz":[0.43425203558533787,0.466809808313242591,1.01333002384486903],"hpluv":[244.548916872628638,122.943070755930805,73.9852470697490219],"hsluv":[244.548916872628638,99.9999999999974,73.9852470697490219]},"#223300":{"lch":[18.8330192465532917,22.9063411551717806,108.204985820955727],"luv":[18.8330192465532917,-7.15634373768739707,21.7597612446731326],"rgb":[0.133333333333333331,0.2,0],"xyz":[0.0184344702910022862,0.0270769280882856428,0.00425513680873902],"hpluv":[108.204985820955727,154.338793470845559,18.8330192465532917],"hsluv":[108.204985820955727,100.000000000002331,18.8330192465532917]},"#223311":{"lch":[19.0056890338669575,18.4529510656336271,112.754551304246377],"luv":[19.0056890338669575,-7.13731020483261602,17.0167625026225657],"rgb":[0.133333333333333331,0.2,0.0666666666666666657],"xyz":[0.0194461357906394079,0.0274815942881404957,0.0095832417734946513],"hpluv":[112.754551304246377,123.203072156705915,19.0056890338669575],"hsluv":[112.754551304246377,76.6034511576994248,19.0056890338669575]},"#223322":{"lch":[19.3213416797184507,11.6344605438365232,127.71501294923759],"luv":[19.3213416797184507,-7.11719904028337247,9.20359440474635],"rgb":[0.133333333333333331,0.2,0.133333333333333331],"xyz":[0.0213214939291164265,0.028231737543531317,0.0194601279694738491],"hpluv":[127.71501294923759,76.4096652359405084,19.3213416797184507],"hsluv":[127.71501294923759,38.9061385447444366,19.3213416797184507]},"#223333":{"lch":[19.8290945906418372,7.27996715422488894,192.177050630060677],"luv":[19.8290945906418372,-7.11617124458192585,-1.53558737438758408],"rgb":[0.133333333333333331,0.2,0.2],"xyz":[0.0244092446615741671,0.0294668378365144298,0.0357222818270849923],"hpluv":[192.177050630060677,46.5871198449043149,19.8290945906418372],"hsluv":[192.177050630060677,46.4047641905018935,19.8290945906418372]},"#223344":{"lch":[20.5377244517829496,15.5714684077650816,242.621028364370432],"luv":[20.5377244517829496,-7.16091210703038339,-13.8272183091687548],"rgb":[0.133333333333333331,0.2,0.266666666666666663],"xyz":[0.0288672399057930476,0.031250035934202,0.0592010567799716309],"hpluv":[242.621028364370432,96.2091932027738181,20.5377244517829496],"hsluv":[242.621028364370432,54.472556800898019,20.5377244517829496]},"#223355":{"lch":[21.4445377167678828,27.4997828393463344,254.670418676715883],"luv":[21.4445377167678828,-7.27014529691604761,-26.5213695644274097],"rgb":[0.133333333333333331,0.2,0.333333333333333315],"xyz":[0.0348296539451550397,0.0336350015499468358,0.0906031040539455323],"hpluv":[254.670418676715883,162.72410902482622,21.4445377167678828],"hsluv":[254.670418676715883,62.1025047738862597,21.4445377167678828]},"#223366":{"lch":[22.538163137523668,39.6650934211933617,259.172698399253136],"luv":[22.538163137523668,-7.45106225263504562,-38.9589695374422647],"rgb":[0.133333333333333331,0.2,0.4],"xyz":[0.042414649718663211,0.0366689998593501473,0.130550748461089494],"hpluv":[259.172698399253136,223.320859110196579,22.538163137523668],"hsluv":[259.172698399253136,68.7622962285398103,22.538163137523668]},"#223377":{"lch":[23.8014699151847751,51.4679604591091,261.393782909523054],"luv":[23.8014699151847751,-7.70180102721624227,-50.8884389105972517],"rgb":[0.133333333333333331,0.2,0.466666666666666674],"xyz":[0.0517286627388651304,0.0403946050674309637,0.179604550367487403],"hpluv":[261.393782909523054,274.392670476726266,23.8014699151847751],"hsluv":[261.393782909523054,74.3066649079193837,23.8014699151847751]},"#223388":{"lch":[25.214303338898695,62.8010579136007649,262.667168962641028],"luv":[25.214303338898695,-8.01548446335257658,-62.2874376089207189],"rgb":[0.133333333333333331,0.2,0.533333333333333326],"xyz":[0.0628690798408089585,0.0448507719082085615,0.238277413771059571],"hpluv":[262.667168962641028,316.052560368409843,25.214303338898695],"hsluv":[262.667168962641028,78.8060188103052184,25.214303338898695]},"#223399":{"lch":[26.7557115473943199,73.7050787305795723,263.468936800572067],"luv":[26.7557115473943199,-8.38335327394953111,-73.2267575314180732],"rgb":[0.133333333333333331,0.2,0.6],"xyz":[0.0759260439498816719,0.0500735575518377191,0.307044091412177478],"hpluv":[263.468936800572067,349.558796760350788,26.7557115473943199],"hsluv":[263.468936800572067,82.4151943494814105,26.7557115473943199]},"#2233aa":{"lch":[28.4055164492709622,84.2578478733767184,264.007358934798901],"luv":[28.4055164492709622,-8.79658068794244485,-83.7974050699281],"rgb":[0.133333333333333331,0.2,0.66666666666666663],"xyz":[0.090983736915134214,0.0560966347379388205,0.386347941029176078],"hpluv":[264.007358934798901,376.397732872534505,28.4055164492709622],"hsluv":[264.007358934798901,85.301735461295209,28.4055164492709622]},"#2233bb":{"lch":[30.1452579578322855,94.5340435151979506,264.386468786418391],"luv":[30.1452579578322855,-9.24712484322681583,-94.0806891209195868],"rgb":[0.133333333333333331,0.2,0.733333333333333282],"xyz":[0.108121329022470861,0.0629516715808735861,0.476605926127817825],"hpluv":[264.386468786418391,397.931717533943186,30.1452579578322855],"hsluv":[264.386468786418391,87.6154589527103553,30.1452579578322855]},"#2233cc":{"lch":[31.9586404471462444,104.593501952517812,264.663323368501551],"luv":[31.9586404471462444,-9.72802821613955615,-104.140127317558722],"rgb":[0.133333333333333331,0.2,0.8],"xyz":[0.127413704466192601,0.0706686217583623877,0.578212436798088],"hpluv":[264.663323368501551,415.294074833826699,31.9586404471462444],"hsluv":[264.663323368501551,89.4797268300864,31.9586404471462444]},"#2233dd":{"lch":[33.8316358854510284,114.480561125644712,264.87147297862515],"luv":[33.8316358854510284,-10.233440845943651,-114.022259072932982],"rgb":[0.133333333333333331,0.2,0.866666666666666696],"xyz":[0.148932030016826145,0.0792759519786159217,0.691542284698094],"hpluv":[264.87147297862515,429.386195390892226,33.8316358854510284],"hsluv":[264.87147297862515,90.9921469937159,33.8316358854510284]},"#2233ee":{"lch":[35.7523793143002209,124.226868169083772,265.031742065807748],"luv":[35.7523793143002209,-10.7585230682670669,-123.760126682580946],"rgb":[0.133333333333333331,0.2,0.933333333333333348],"xyz":[0.172744210283000882,0.0888008240850859387,0.816953100766617202],"hpluv":[265.031742065807748,440.909964314972513,35.7523793143002209],"hsluv":[265.031742065807748,93.1343838757889557,35.7523793143002209]},"#2233ff":{"lch":[37.7109573358094536,133.854664271403067,265.157628752861342],"luv":[37.7109573358094536,-11.2993072928814158,-133.376897556927247],"rgb":[0.133333333333333331,0.2,1],"xyz":[0.198915258692832275,0.0992692434490186487,0.954787289058399],"hpluv":[265.157628752861342,450.407151983715153,37.7109573358094536],"hsluv":[265.157628752861342,99.9999999999994884,37.7109573358094536]},"#77cc00":{"lch":[74.2578384949046892,97.2071675743180776,115.806356387580706],"luv":[74.2578384949046892,-42.3172913249353897,87.5127435448238202],"rgb":[0.466666666666666674,0.8,0],"xyz":[0.291994990493124773,0.47106497957174448,0.0755391193650810505],"hpluv":[115.806356387580706,166.109821583261578,74.2578384949046892],"hsluv":[115.806356387580706,100.000000000002331,74.2578384949046892]},"#77cc11":{"lch":[74.283676291108776,96.1575231653334441,116.077287726142885],"luv":[74.283676291108776,-42.2692272766684525,86.3688698937585144],"rgb":[0.466666666666666674,0.8,0.0666666666666666657],"xyz":[0.293006655992761877,0.471469645771599333,0.0808672243298366872],"hpluv":[116.077287726142885,164.2590118749402,74.283676291108776],"hsluv":[116.077287726142885,98.5840266713216522,74.283676291108776]},"#77cc22":{"lch":[74.3315335987815331,94.2328042547367914,116.591431825394338],"luv":[74.3315335987815331,-42.1809937248656581,84.2649699821603519],"rgb":[0.466666666666666674,0.8,0.133333333333333331],"xyz":[0.294882014131238934,0.472219789026990133,0.0907441105258158798],"hpluv":[116.591431825394338,160.867513369155,74.3315335987815331],"hsluv":[116.591431825394338,95.9817736999432611,74.3315335987815331]},"#77cc33":{"lch":[74.410219680569412,91.1231466477069176,117.473161926834081],"luv":[74.410219680569412,-42.0381214847294515,80.8469182901527148],"rgb":[0.466666666666666674,0.8,0.2],"xyz":[0.29796976486369664,0.47345488931997326,0.10700626438342703],"hpluv":[117.473161926834081,155.394430123968846,74.410219680569412],"hsluv":[117.473161926834081,91.7599970515073551,74.410219680569412]},"#77cc44":{"lch":[74.5235830687713445,86.7634188586395,118.828926444460791],"luv":[74.5235830687713445,-41.8369758074171045,76.0102513305232748],"rgb":[0.466666666666666674,0.8,0.266666666666666663],"xyz":[0.302427760107915555,0.475238087417660826,0.130485039336313668],"hpluv":[118.828926444460791,147.734611978654129,74.5235830687713445],"hsluv":[118.828926444460791,85.7987877580492153,74.5235830687713445]},"#77cc55":{"lch":[74.6747602628398,81.1723246922669688,120.810965560633605],"luv":[74.6747602628398,-41.5770530159641396,69.7158156981220571],"rgb":[0.466666666666666674,0.8,0.333333333333333315],"xyz":[0.30839017414727754,0.477623053033405687,0.161887086610287556],"hpluv":[120.810965560633605,137.934680546119694,74.6747602628398],"hsluv":[120.810965560633605,78.0638956664307671,74.6747602628398]},"#77cc66":{"lch":[74.866352492363319,74.4599116278811692,123.651008617564372],"luv":[74.866352492363319,-41.2606832822808798,61.982533464768764],"rgb":[0.466666666666666674,0.8,0.4],"xyz":[0.315975169920785726,0.480657051342809,0.201834731017431546],"hpluv":[123.651008617564372,126.204595224585091,74.866352492363319],"hsluv":[123.651008617564372,68.5978490432360388,74.866352492363319]},"#77cc77":{"lch":[75.1005189251371519,66.8471540376336719,127.715012949239053],"luv":[75.1005189251371519,-40.8926996459993219,52.8803282761483189],"rgb":[0.466666666666666674,0.8,0.466666666666666674],"xyz":[0.325289182940987631,0.484382656550889801,0.250888532923829455],"hpluv":[127.715012949239053,112.948199149412858,75.1005189251371519],"hsluv":[127.715012949239053,57.5107647824030153,75.1005189251371519]},"#77cc88":{"lch":[75.3790318815133,58.7087525381891311,133.590980823477452],"luv":[75.3790318815133,-40.4800101313413947,42.5215992685696946],"rgb":[0.466666666666666674,0.8,0.533333333333333326],"xyz":[0.336429600042931432,0.488838823391667399,0.309561396327401595],"hpluv":[133.590980823477452,98.8306436104363542,75.3790318815133],"hsluv":[133.590980823477452,58.7660231359317748,75.3790318815133]},"#77cc99":{"lch":[75.7033128937519848,50.6622606125816759,142.200076129410462],"luv":[75.7033128937519848,-40.0310804193600305,31.0512036938324556],"rgb":[0.466666666666666674,0.8,0.6],"xyz":[0.349486564152004187,0.494061609035296556,0.378328073968519529],"hpluv":[142.200076129410462,84.9198084445103802,75.7033128937519848],"hsluv":[142.200076129410462,60.1459848784672815,75.7033128937519848]},"#77ccaa":{"lch":[76.0744587192654,43.7254195479873289,154.773618890386814],"luv":[76.0744587192654,-39.5553661600219684,18.6355928962322395],"rgb":[0.466666666666666674,0.8,0.66666666666666663],"xyz":[0.364544257117256687,0.500084686221397678,0.45763192358551813],"hpluv":[154.773618890386814,73.067319501552376,76.0744587192654],"hsluv":[154.773618890386814,61.6269813218812459,76.0744587192654]},"#77ccbb":{"lch":[76.4932621718819235,39.4413790272598561,172.054536865796422],"luv":[76.4932621718819235,-39.0627454070693716,5.45199970968949721],"rgb":[0.466666666666666674,0.8,0.733333333333333282],"xyz":[0.381681849224593361,0.506939723064332437,0.547889908684159876],"hpluv":[172.054536865796422,67.3385729198675733,76.4932621718819235],"hsluv":[172.054536865796422,63.1840553036415713,76.4932621718819235]},"#77cccc":{"lch":[76.9602305249106,39.4506200876857847,192.177050630060961],"luv":[76.9602305249106,-38.5629992967744357,-8.32144882456723778],"rgb":[0.466666666666666674,0.8,0.8],"xyz":[0.400974224668315116,0.514656673241821183,0.64949641935443],"hpluv":[192.177050630060961,69.0111626451701312,76.9602305249106],"hsluv":[192.177050630060961,64.792316690459316,76.9602305249106]},"#77ccdd":{"lch":[77.4756030772436475,44.2250390945155942,210.602473757279853],"luv":[77.4756030772436475,-38.0653777824919359,-22.5140200139291444],"rgb":[0.466666666666666674,0.8,0.866666666666666696],"xyz":[0.422492550218948604,0.5232640034620748,0.762826267254436],"hpluv":[210.602473757279853,79.5030322309331439,77.4756030772436475],"hsluv":[210.602473757279853,66.4280770246703156,77.4756030772436475]},"#77ccee":{"lch":[78.0393687787239116,52.7144148097026246,224.531483635923479],"luv":[78.0393687787239116,-37.5782716813780482,-36.9686762837126182],"rgb":[0.466666666666666674,0.8,0.933333333333333348],"xyz":[0.446304730485123369,0.532788875568544817,0.888237083322959253],"hpluv":[224.531483635923479,97.6926138158747648,78.0393687787239116],"hsluv":[224.531483635923479,71.3781641956177282,78.0393687787239116]},"#77ccff":{"lch":[78.6512843692400736,63.5145451324089052,234.249283216901347],"luv":[78.6512843692400736,-37.1089966152940249,-51.5462880679385549],"rgb":[0.466666666666666674,0.8,1],"xyz":[0.472475778894954734,0.54325729493247743,1.0260712716147411],"hpluv":[234.249283216901347,121.749546403725816,78.6512843692400736],"hsluv":[234.249283216901347,99.9999999999968168,78.6512843692400736]},"#224400":{"lch":[25.1809799681870601,33.4179584834008523,116.999863609689683],"luv":[25.1809799681870601,-15.1713647924420147,29.7756551486773162],"rgb":[0.133333333333333331,0.266666666666666663,0],"xyz":[0.0272670407739683193,0.0447420690542179589,0.00719932696972761486],"hpluv":[116.999863609689683,168.401755360818214,25.1809799681870601],"hsluv":[116.999863609689683,100.000000000002217,25.1809799681870601]},"#224411":{"lch":[25.304760275593587,29.8643723317269938,120.153298663054528],"luv":[25.304760275593587,-15.0013316265206242,25.8232605261065515],"rgb":[0.133333333333333331,0.266666666666666663,0.0666666666666666657],"xyz":[0.0282787062736054411,0.0451467352540728117,0.0125274319344832463],"hpluv":[120.153298663054528,149.758158325470362,25.304760275593587],"hsluv":[120.153298663054528,85.5029145399767287,25.304760275593587]},"#224422":{"lch":[25.5322735505540379,24.0578500603585184,127.715012949239281],"luv":[25.5322735505540379,-14.7170130248608242,19.0312815425753499],"rgb":[0.133333333333333331,0.266666666666666663,0.133333333333333331],"xyz":[0.0301540644120824597,0.0458968785094636331,0.0224043181304624424],"hpluv":[127.715012949239281,119.565711231297882,25.5322735505540379],"hsluv":[127.715012949239281,60.8802579098014363,25.5322735505540379]},"#224433":{"lch":[25.9015299317797343,16.981905402382786,147.498859327993841],"luv":[25.9015299317797343,-14.3222120947549634,9.12465625699578098],"rgb":[0.133333333333333331,0.266666666666666663,0.2],"xyz":[0.0332418151445402,0.0471319788024467459,0.0386664719880735891],"hpluv":[147.498859327993841,83.1955939146196357,25.9015299317797343],"hsluv":[147.498859327993841,64.09678513773909,25.9015299317797343]},"#224444":{"lch":[26.423438440277998,14.1959776348833024,192.177050630061],"luv":[26.423438440277998,-13.8765746732054378,-2.99440417262938974],"rgb":[0.133333333333333331,0.266666666666666663,0.266666666666666663],"xyz":[0.0376998103887590807,0.048915176900134319,0.0621452469409602276],"hpluv":[192.177050630061,68.1734546180548762,26.423438440277998],"hsluv":[192.177050630061,67.9066037165366367,26.423438440277998]},"#224455":{"lch":[27.1020089847707979,21.1158760403194243,230.453768193421723],"luv":[27.1020089847707979,-13.4444916811297333,-16.2826860310628518],"rgb":[0.133333333333333331,0.266666666666666663,0.333333333333333315],"xyz":[0.0436622244281210728,0.0513001425158791519,0.0935472942149341291],"hpluv":[230.453768193421723,98.865995891455,27.1020089847707979],"hsluv":[230.453768193421723,71.8953118433392717,27.1020089847707979]},"#224466":{"lch":[27.935501760142138,32.6185654266362306,246.366656325875056],"luv":[27.935501760142138,-13.0762038460066634,-29.8828329224226863],"rgb":[0.133333333333333331,0.266666666666666663,0.4],"xyz":[0.0512472202016292511,0.0543341408252824634,0.133494938622078091],"hpluv":[246.366656325875056,148.165710166053657,27.935501760142138],"hsluv":[246.366656325875056,75.7322080769735351,27.935501760142138]},"#224477":{"lch":[28.9175817086007072,45.1016041758277453,253.511262930840303],"luv":[28.9175817086007072,-12.8010466495854338,-43.2468253621948548],"rgb":[0.133333333333333331,0.266666666666666663,0.466666666666666674],"xyz":[0.0605612332218311636,0.0580597460333632798,0.182548740528476],"hpluv":[253.511262930840303,197.910731630760921,28.9175817086007072],"hsluv":[253.511262930840303,79.2164102145581381,28.9175817086007072]},"#224488":{"lch":[30.0385370730522183,57.5093846577101502,257.31357801273],"luv":[30.0385370730522183,-12.6299243743950456,-56.1053859625395432],"rgb":[0.133333333333333331,0.266666666666666663,0.533333333333333326],"xyz":[0.0717016503237749847,0.0625159128741408776,0.241221603932048168],"hpluv":[257.31357801273,242.94013543841632,30.0385370730522183],"hsluv":[257.31357801273,82.2624245727818106,30.0385370730522183]},"#224499":{"lch":[31.2864747985506213,69.5224780150470139,259.59064804278853],"luv":[31.2864747985506213,-12.5612993437317204,-68.3782765807230675],"rgb":[0.133333333333333331,0.266666666666666663,0.6],"xyz":[0.084758614432847712,0.0677386985177700351,0.309988281573166102],"hpluv":[259.59064804278853,281.973268281811727,31.2864747985506213],"hsluv":[259.59064804278853,84.8626039888072796,31.2864747985506213]},"#2244aa":{"lch":[32.6483868166792277,81.0719578322086676,261.068394107427196],"luv":[32.6483868166792277,-12.5868550230291323,-80.0889095154670372],"rgb":[0.133333333333333331,0.266666666666666663,0.66666666666666663],"xyz":[0.0998163073981002402,0.0737617757038711297,0.389292131190164703],"hpluv":[261.068394107427196,315.099896322028769,32.6483868166792277],"hsluv":[261.068394107427196,87.0515845849570695,32.6483868166792277]},"#2244bb":{"lch":[34.1110146972578292,92.183713113584,262.084105297610279],"luv":[34.1110146972578292,-12.6954785449376448,-91.3053217940914266],"rgb":[0.133333333333333331,0.266666666666666663,0.733333333333333282],"xyz":[0.116953899505436887,0.0806168125468058883,0.479550116288806449],"hpluv":[262.084105297610279,342.924793116778346,34.1110146972578292],"hsluv":[262.084105297610279,88.8814901896574128,34.1110146972578292]},"#2244cc":{"lch":[35.6614866183058439,102.915147630289923,262.812952152813068],"luv":[35.6614866183058439,-12.875606592693158,-102.106544191029045],"rgb":[0.133333333333333331,0.266666666666666663,0.8],"xyz":[0.136246274949158641,0.0883337627242946899,0.58115662695907655],"hpluv":[262.812952152813068,366.200711918304478,35.6614866183058439],"hsluv":[262.812952152813068,90.4075680541016453,35.6614866183058439]},"#2244dd":{"lch":[37.2877389569632456,113.32806156453313,263.353781276912969],"luv":[37.2877389569632456,-13.1164125913708496,-112.566465959927598],"rgb":[0.133333333333333331,0.266666666666666663,0.866666666666666696],"xyz":[0.157764600499792185,0.0969410929445482239,0.694486474859082548],"hpluv":[263.353781276912969,385.665452845521429,37.2877389569632456],"hsluv":[263.353781276912969,91.6811227311716408,37.2877389569632456]},"#2244ee":{"lch":[38.9787575249373575,123.477944203962494,263.76603971616106],"luv":[38.9787575249373575,-13.4082956886680194,-122.74779147325674],"rgb":[0.133333333333333331,0.266666666666666663,0.933333333333333348],"xyz":[0.181576780765966922,0.106465965051018269,0.819897290927605771],"hpluv":[263.76603971616106,401.976556214066079,38.9787575249373575],"hsluv":[263.76603971616106,92.7467647141115208,38.9787575249373575]},"#2244ff":{"lch":[40.7246816385265333,133.410810959437413,264.087324287658078],"luv":[40.7246816385265333,-13.7429938745542355,-132.701072340123574],"rgb":[0.133333333333333331,0.266666666666666663,1],"xyz":[0.207747829175798315,0.116934384414950965,0.957731479219387616],"hpluv":[264.087324287658078,415.692943868353552,40.7246816385265333],"hsluv":[264.087324287658078,99.9999999999994174,40.7246816385265333]},"#77dd00":{"lch":[79.4046595803128525,106.500737968556749,117.886764510297155],"luv":[79.4046595803128525,-49.8131268255250319,94.1332012826045457],"rgb":[0.466666666666666674,0.866666666666666696,0],"xyz":[0.3346289810403,0.556332960666096,0.089750449547472369],"hpluv":[117.886764510297155,213.048114553231642,79.4046595803128525],"hsluv":[117.886764510297155,100.000000000002288,79.4046595803128525]},"#77dd11":{"lch":[79.427785829561941,105.558219679332908,118.124490997004173],"luv":[79.427785829561941,-49.7589732732473422,93.0944806133132801],"rgb":[0.466666666666666674,0.866666666666666696,0.0666666666666666657],"xyz":[0.335640646539937082,0.556737626865951,0.095078554512228],"hpluv":[118.124490997004173,211.44368721760469,79.427785829561941],"hsluv":[118.124490997004173,98.7993418471683498,79.427785829561941]},"#77dd22":{"lch":[79.4706261070012658,103.827566318990023,118.57359388187615],"luv":[79.4706261070012658,-49.6593926395600249,91.1817319993116],"rgb":[0.466666666666666674,0.866666666666666696,0.133333333333333331],"xyz":[0.337516004678414139,0.557487770121341764,0.104955440708207198],"hpluv":[118.57359388187615,208.49071074424171,79.4706261070012658],"hsluv":[118.57359388187615,96.5898934808467,79.4706261070012658]},"#77dd33":{"lch":[79.5410783702752582,101.02472031386101,119.337697767432388],"luv":[79.5410783702752582,-49.4976803830995067,88.0680063995226874],"rgb":[0.466666666666666674,0.866666666666666696,0.2],"xyz":[0.340603755410871845,0.55872287041432489,0.121217594565818348],"hpluv":[119.337697767432388,203.689012727245881,79.5410783702752582],"hsluv":[119.337697767432388,92.9973786049096276,79.5410783702752582]},"#77dd44":{"lch":[79.6426121547728485,97.0801788178617073,120.498016398630853],"luv":[79.6426121547728485,-49.2690191092090188,83.6488187323909642],"rgb":[0.466666666666666674,0.866666666666666696,0.266666666666666663],"xyz":[0.34506175065509076,0.560506068512012456,0.144696369518705],"hpluv":[120.498016398630853,196.890303230407255,79.6426121547728485],"hsluv":[120.498016398630853,87.9077551580221126,79.6426121547728485]},"#77dd55":{"lch":[79.7780740091910729,91.9929116678805912,122.163902680224],"luv":[79.7780740091910729,-48.9717875622404577,77.8746417012192325],"rgb":[0.466666666666666674,0.866666666666666696,0.333333333333333315],"xyz":[0.351024164694452745,0.562891034127757206,0.176098416792678902],"hpluv":[122.163902680224,188.049297266091,79.7780740091910729],"hsluv":[122.163902680224,81.2740392578912889,79.7780740091910729]},"#77dd66":{"lch":[79.9498479155991788,85.8342168020908645,124.492086237753256],"luv":[79.9498479155991788,-48.6072648253697466,70.7449403153661],"rgb":[0.466666666666666674,0.866666666666666696,0.4],"xyz":[0.35860916046796093,0.565925032437160525,0.216046061199822836],"hpluv":[124.492086237753256,177.233761467474238,79.9498479155991788],"hsluv":[124.492086237753256,73.1095665987697174,79.9498479155991788]},"#77dd77":{"lch":[80.1599403321921,78.7586110849663896,127.715012949239352],"luv":[80.1599403321921,-48.1793469594900188,62.3030444407821093],"rgb":[0.466666666666666674,0.866666666666666696,0.466666666666666674],"xyz":[0.367923173488162836,0.569650637645241376,0.265099863106220746],"hpluv":[127.715012949239352,164.652954432832814,80.1599403321921],"hsluv":[127.715012949239352,63.4818861677236654,80.1599403321921]},"#77dd88":{"lch":[80.4100305893493754,71.0258644695610855,132.183293417803185],"luv":[80.4100305893493754,-47.69419139775556,52.6301959958607597],"rgb":[0.466666666666666674,0.866666666666666696,0.533333333333333326],"xyz":[0.379063590590106636,0.574106804486018918,0.323772726509792941],"hpluv":[132.183293417803185,150.716476916292407,80.4100305893493754],"hsluv":[132.183293417803185,64.4129914780986184,80.4100305893493754]},"#77dd99":{"lch":[80.7015034668449829,63.0436351039456042,138.421724913218469],"luv":[80.7015034668449829,-47.1597772740100254,41.838443261971527],"rgb":[0.466666666666666674,0.866666666666666696,0.6],"xyz":[0.392120554699179391,0.579329590129648131,0.39253940415091082],"hpluv":[138.421724913218469,136.149613262507529,80.7015034668449829],"hsluv":[138.421724913218469,65.4455974050235909,80.7015034668449829]},"#77ddaa":{"lch":[81.0354720941451916,55.4433276111880673,147.164903113494319],"luv":[81.0354720941451916,-46.5854032558204594,30.0626475895607292],"rgb":[0.466666666666666674,0.866666666666666696,0.66666666666666663],"xyz":[0.407178247664431892,0.585352667315749198,0.471843253767909421],"hpluv":[147.164903113494319,122.204418643173668,81.0354720941451916],"hsluv":[147.164903113494319,66.5644374268903505,81.0354720941451916]},"#77ddbb":{"lch":[81.4127955433910415,49.1817473647014651,159.215751775487576],"luv":[81.4127955433910415,-45.9811599326092804,17.452140415923953],"rgb":[0.466666666666666674,0.866666666666666696,0.733333333333333282],"xyz":[0.424315839771768566,0.592207704158684,0.562101238866551167],"hpluv":[159.215751775487576,110.971854928909636,81.4127955433910415],"hsluv":[159.215751775487576,67.7527973989238461,81.4127955433910415]},"#77ddcc":{"lch":[81.8340936239464298,45.5480287935550479,174.756411210455894],"luv":[81.8340936239464298,-45.3574175840417197,4.16264304083146897],"rgb":[0.466666666666666674,0.866666666666666696,0.8],"xyz":[0.44360821521549032,0.599924654336172813,0.663707749536821323],"hpluv":[174.756411210455894,105.54602277980743,81.8340936239464298],"hsluv":[174.756411210455894,68.9933910523739371,81.8340936239464298]},"#77dddd":{"lch":[82.299760373596115,45.7538051586653296,192.177050630060847],"luv":[82.299760373596115,-44.7243656053231931,-9.65100034703627],"rgb":[0.466666666666666674,0.866666666666666696,0.866666666666666696],"xyz":[0.465126540766123808,0.60853198455642632,0.777037597436827321],"hpluv":[192.177050630060847,109.256318691998032,82.299760373596115],"hsluv":[192.177050630060847,70.2691471280789557,82.299760373596115]},"#77ddee":{"lch":[82.8099771424448221,50.1244355238275574,208.400620203695752],"luv":[82.8099771424448221,-44.0916301090396274,-23.8408722766172367],"rgb":[0.466666666666666674,0.866666666666666696,0.933333333333333348],"xyz":[0.488938721032298573,0.618056856662896337,0.902448413505350544],"hpluv":[208.400620203695752,123.794681382199428,82.8099771424448221],"hsluv":[208.400620203695752,71.5638635335918,82.8099771424448221]},"#77ddff":{"lch":[83.364725787715372,57.9146258331384161,221.361714592462022],"luv":[83.364725787715372,-43.4679842885535521,-38.2705921992655504],"rgb":[0.466666666666666674,0.866666666666666696,1],"xyz":[0.515109769442129939,0.628525276026829061,1.0402826017971325],"hpluv":[221.361714592462022,148.517135389694232,83.364725787715372],"hsluv":[221.361714592462022,99.9999999999953531,83.364725787715372]},"#225500":{"lch":[31.4325909084541877,43.9203091385023825,121.065637009975248],"luv":[31.4325909084541877,-22.6637443991712324,37.6211143459447541],"rgb":[0.133333333333333331,0.333333333333333315,0],"xyz":[0.0390802974883142848,0.0683685824829102229,0.0111370792078428239],"hpluv":[121.065637009975248,177.306450001223254,31.4325909084541877],"hsluv":[121.065637009975248,100.000000000002373,31.4325909084541877]},"#225511":{"lch":[31.5259896590935043,41.027632513747335,123.178290947815412],"luv":[31.5259896590935043,-22.452213479362328,34.3389682366875704],"rgb":[0.133333333333333331,0.333333333333333315,0.0666666666666666657],"xyz":[0.04009196298795141,0.0687732486827650757,0.0164651841725984571],"hpluv":[123.178290947815412,165.138012967735222,31.5259896590935043],"hsluv":[123.178290947815412,90.3912533003173877,31.5259896590935043]},"#225522":{"lch":[31.6981615382414716,36.1013694166085486,127.715012949239792],"luv":[31.6981615382414716,-22.0844473877159331,28.5584673491706482],"rgb":[0.133333333333333331,0.333333333333333315,0.133333333333333331],"xyz":[0.0419673211264284252,0.0695233919381558901,0.0263420703685776497],"hpluv":[127.715012949239792,144.520324593974209,31.6981615382414716],"hsluv":[127.715012949239792,73.5866039174798345,31.6981615382414716]},"#225533":{"lch":[31.9789617713411829,29.2625646618711706,137.400330584271074],"luv":[31.9789617713411829,-21.5402028917408828,19.8070025489176231],"rgb":[0.133333333333333331,0.333333333333333315,0.2],"xyz":[0.0450550718588861657,0.070758492231139,0.0426042242261888],"hpluv":[137.400330584271074,116.114739730974975,31.9789617713411829],"hsluv":[137.400330584271074,75.0932106461487,31.9789617713411829]},"#225544":{"lch":[32.3786649626227785,22.5648709259736577,157.632626155133437],"luv":[32.3786649626227785,-20.8671549807805796,8.58692278490586247],"rgb":[0.133333333333333331,0.333333333333333315,0.266666666666666663],"xyz":[0.0495130671031050462,0.072541690328826583,0.0660829991790754384],"hpluv":[157.632626155133437,88.4327727432137465,32.3786649626227785],"hsluv":[157.632626155133437,76.9882679005547459,32.3786649626227785]},"#225555":{"lch":[32.9031430542149863,20.5945867127178737,192.177050630061132],"luv":[32.9031430542149863,-20.1312179923833199,-4.34408379417313384],"rgb":[0.133333333333333331,0.333333333333333315,0.333333333333333315],"xyz":[0.0554754811424670383,0.0749266559445714159,0.0974850464530493399],"hpluv":[192.177050630061132,79.4245973683706268,32.9031430542149863],"hsluv":[192.177050630061132,79.1137061933639245,32.9031430542149863]},"#225566":{"lch":[33.5545056011551,26.6006796322727546,223.177731373198952],"luv":[33.5545056011551,-19.398136743372234,-18.2018803364993715],"rgb":[0.133333333333333331,0.333333333333333315,0.4],"xyz":[0.0630604769159752165,0.0779606542539747344,0.137432690860193302],"hpluv":[223.177731373198952,100.596116474312993,33.5545056011551],"hsluv":[223.177731373198952,81.3097794801720113,33.5545056011551]},"#225577":{"lch":[34.3316296590174,37.3644949384619807,239.932022094073261],"luv":[34.3316296590174,-18.7206257951117045,-32.3364137134245127],"rgb":[0.133333333333333331,0.333333333333333315,0.466666666666666674],"xyz":[0.0723744899361771221,0.0816862594620555438,0.186486492766591211],"hpluv":[239.932022094073261,138.103289638438355,34.3316296590174],"hsluv":[239.932022094073261,83.4469752602442298,34.3316296590174]},"#225588":{"lch":[35.230707776085,49.7211482448765594,248.610781811292384],"luv":[35.230707776085,-18.1333810040152876,-46.2965773697387775],"rgb":[0.133333333333333331,0.333333333333333315,0.533333333333333326],"xyz":[0.0835149070381209502,0.0861424263028331416,0.245159356170163378],"hpluv":[248.610781811292384,179.084957393431893,35.230707776085],"hsluv":[248.610781811292384,85.4385601139613158,35.230707776085]},"#225599":{"lch":[36.2458273864096512,62.3718238545276336,253.557833057747018],"luv":[36.2458273864096512,-17.6541819100499602,-59.8211858126123],"rgb":[0.133333333333333331,0.333333333333333315,0.6],"xyz":[0.0965718711471936775,0.0913652119464623,0.313926033811281313],"hpluv":[253.557833057747018,218.35832406203005,36.2458273864096512],"hsluv":[253.557833057747018,87.2381583586425791,36.2458273864096512]},"#2255aa":{"lch":[37.3695533294905928,74.8190204360075,256.640324292617947],"luv":[37.3695533294905928,-17.2879233745104131,-72.7943234352841841],"rgb":[0.133333333333333331,0.333333333333333315,0.66666666666666663],"xyz":[0.111629564112446206,0.0973882891325634,0.393229883428279914],"hpluv":[256.640324292617947,254.058329165629146,37.3695533294905928],"hsluv":[256.640324292617947,88.8301308270208807,37.3695533294905928]},"#2255bb":{"lch":[38.5934754222231291,86.8805221786483,258.695157685582501],"luv":[38.5934754222231291,-17.0311035792378,-85.1948745225196831],"rgb":[0.133333333333333331,0.333333333333333315,0.733333333333333282],"xyz":[0.128767156219782852,0.104243325975498152,0.48348786852692166],"hpluv":[258.695157685582501,285.658965815982469,38.5934754222231291],"hsluv":[258.695157685582501,90.2188193496234874,38.5934754222231291]},"#2255cc":{"lch":[39.9086891196534097,98.5112685419302,260.136263381096],"luv":[39.9086891196534097,-16.8755295039118458,-97.0550695930042],"rgb":[0.133333333333333331,0.333333333333333315,0.8],"xyz":[0.148059531663504607,0.111960276152986954,0.585094379197191761],"hpluv":[260.136263381096,313.22597901471056,39.9086891196534097],"hsluv":[260.136263381096,91.4196885710314433,39.9086891196534097]},"#2255dd":{"lch":[41.3061900239028503,109.727240919989157,261.187210775965298],"luv":[41.3061900239028503,-16.8109176424286737,-108.431823962952976],"rgb":[0.133333333333333331,0.333333333333333315,0.866666666666666696],"xyz":[0.16957785721413815,0.120567606373240488,0.698424227097197758],"hpluv":[261.187210775965298,337.084394380702577,41.3061900239028503],"hsluv":[261.187210775965298,92.4531471705562353,41.3061900239028503]},"#2255ee":{"lch":[42.7771763125841602,120.569176865205208,261.977669343247612],"luv":[42.7771763125841602,-16.8265186863462972,-119.389256965822398],"rgb":[0.133333333333333331,0.333333333333333315,0.933333333333333348],"xyz":[0.193390037480312887,0.130092478479710533,0.823835043165721],"hpluv":[261.977669343247612,357.654347674158601,42.7771763125841602],"hsluv":[261.977669343247612,93.3407272081067,42.7771763125841602]},"#2255ff":{"lch":[44.3132637322964129,131.084767922007643,262.587267096581058],"luv":[44.3132637322964129,-16.9120289519133,-129.989229007238322],"rgb":[0.133333333333333331,0.333333333333333315,1],"xyz":[0.219561085890144281,0.140560897843643229,0.961669231457502827],"hpluv":[262.587267096581058,375.368494421854962,44.3132637322964129],"hsluv":[262.587267096581058,99.9999999999993463,44.3132637322964129]},"#77ee00":{"lch":[84.5193058633960703,115.647601499010833,119.483871035599748],"luv":[84.5193058633960703,-56.9192667804191,100.670575649757225],"rgb":[0.466666666666666674,0.933333333333333348,0],"xyz":[0.381807757380814794,0.650690513347127,0.105476708327643554],"hpluv":[119.483871035599748,321.869538605652735,84.5193058633960703],"hsluv":[119.483871035599748,100.000000000002359,84.5193058633960703]},"#77ee11":{"lch":[84.5401392884337355,114.795422022346642,119.691827475064969],"luv":[84.5401392884337355,-56.862163274863434,99.7230329712822083],"rgb":[0.466666666666666674,0.933333333333333348,0.0666666666666666657],"xyz":[0.382819422880451898,0.651095179546981928,0.11080481329239919],"hpluv":[119.691827475064969,319.985367790437692,84.5401392884337355],"hsluv":[119.691827475064969,98.9722780394741477,84.5401392884337355]},"#77ee22":{"lch":[84.5787360835130499,113.228793274865538,120.083373039169615],"luv":[84.5787360835130499,-56.7570256545281637,97.9765260934141651],"rgb":[0.466666666666666674,0.933333333333333348,0.133333333333333331],"xyz":[0.384694781018928955,0.651845322802372729,0.120681699488378383],"hpluv":[120.083373039169615,316.512949618186383,84.5787360835130499],"hsluv":[120.083373039169615,97.0790709390529,84.5787360835130499]},"#77ee33":{"lch":[84.6422206992536275,110.686316006337648,120.745647293955486],"luv":[84.6422206992536275,-56.585921413754825,95.1288286946244313],"rgb":[0.466666666666666674,0.933333333333333348,0.2],"xyz":[0.387782531751386661,0.653080423095355855,0.136943853345989519],"hpluv":[120.745647293955486,310.853610471304819,84.6422206992536275],"hsluv":[120.745647293955486,93.9952250088888093,84.6422206992536275]},"#77ee44":{"lch":[84.7337366993681513,107.096480548503891,121.742158736883837],"luv":[84.7337366993681513,-56.3431952848259598,91.0774422728923412],"rgb":[0.466666666666666674,0.933333333333333348,0.266666666666666663],"xyz":[0.392240526995605576,0.654863621193043421,0.160422628298876158],"hpluv":[121.742158736883837,302.811644310583176,84.7337366993681513],"hsluv":[121.742158736883837,89.6144795711786628,84.7337366993681513]},"#77ee55":{"lch":[84.8558768548969766,102.444399932600575,123.154228511336783],"luv":[84.8558768548969766,-56.0262879596216621,85.7666026785261266],"rgb":[0.466666666666666674,0.933333333333333348,0.333333333333333315],"xyz":[0.398202941034967561,0.657248586808788171,0.191824675572850073],"hpluv":[123.154228511336783,292.298881153811294,84.8558768548969766],"hsluv":[123.154228511336783,83.883891015311761,84.8558768548969766]},"#77ee66":{"lch":[85.0108293450033159,96.7735040486586,125.092887734820366],"luv":[85.0108293450033159,-55.6354444449268186,79.1821217654036],"rgb":[0.466666666666666674,0.933333333333333348,0.4],"xyz":[0.405787936808475747,0.66028258511819149,0.231772319979994035],"hpluv":[125.092887734820366,279.341716913636219,85.0108293450033159],"hsluv":[125.092887734820366,76.7984153057879411,85.0108293450033159]},"#77ee77":{"lch":[85.2004556710930814,90.1918871908529667,127.71501294923965],"luv":[85.2004556710930814,-55.1734745704367882,71.3474892261312306],"rgb":[0.466666666666666674,0.933333333333333348,0.466666666666666674],"xyz":[0.415101949828677652,0.664008190326272341,0.280826121886391944],"hpluv":[127.71501294923965,264.105357222364148,85.2004556710930814],"hsluv":[127.71501294923965,68.3966317942099522,85.2004556710930814]},"#77ee88":{"lch":[85.4263369442757323,82.8846309918514521,131.246169999264879],"luv":[85.4263369442757323,-54.6454688778224167,62.3196179848555],"rgb":[0.466666666666666674,0.933333333333333348,0.533333333333333326],"xyz":[0.426242366930621452,0.668464357167049883,0.339498985289964139],"hpluv":[131.246169999264879,246.94310788397641,85.4263369442757323],"hsluv":[131.246169999264879,69.0963798671032379,85.4263369442757323]},"#77ee99":{"lch":[85.6898036798217,75.1362836057233,136.010896750223054],"luv":[85.6898036798217,-54.0584447513185395,52.1837682153016473],"rgb":[0.466666666666666674,0.933333333333333348,0.6],"xyz":[0.439299331039694207,0.673687142810679096,0.408265662931082],"hpluv":[136.010896750223054,228.489214549916312,85.6898036798217],"hsluv":[136.010896750223054,69.8780652000076827,85.6898036798217]},"#77eeaa":{"lch":[85.9919564191548602,67.3699388554866232,142.461966648640384],"luv":[85.9919564191548602,-53.4209300451477489,41.0476904892764551],"rgb":[0.466666666666666674,0.933333333333333348,0.66666666666666663],"xyz":[0.454357024004946708,0.679710219996780163,0.487569512548080619],"hpluv":[142.461966648640384,209.826142071523691,85.9919564191548602],"hsluv":[142.461966648640384,70.7318226594993575,85.9919564191548602]},"#77eebb":{"lch":[86.3336811163097337,60.2064759054885243,151.166773543866697],"luv":[86.3336811163097337,-52.7425080063862524,29.0352818163428843],"rgb":[0.466666666666666674,0.933333333333333348,0.733333333333333282],"xyz":[0.471494616112283382,0.686565256839714921,0.577827497646722366],"hpluv":[151.166773543866697,192.758378827545073,86.3336811163097337],"hsluv":[151.166773543866697,71.6464628016145895,86.3336811163097337]},"#77eecc":{"lch":[86.7156615657761449,54.5207620102438284,162.626180625161169],"luv":[86.7156615657761449,-52.0333543078463094,16.2801575438255028],"rgb":[0.466666666666666674,0.933333333333333348,0.8],"xyz":[0.490786991556005137,0.694282207017203778,0.679434008316992522],"hpluv":[162.626180625161169,180.150974339718545,86.7156615657761449],"hsluv":[162.626180625161169,72.6100300694190111,86.7156615657761449]},"#77eedd":{"lch":[87.1383902516757445,51.3868015721907483,176.742975614533037],"luv":[87.1383902516757445,-51.3037971188162771,2.91955082350760353],"rgb":[0.466666666666666674,0.933333333333333348,0.866666666666666696],"xyz":[0.512305317106638625,0.702889537237457285,0.792763856216998519],"hpluv":[176.742975614533037,175.997429168902841,87.1383902516757445],"hsluv":[176.742975614533037,73.6103328445444305,87.1383902516757445]},"#77eeee":{"lch":[87.6021784736708327,51.7277775307036,192.177050630061075],"luv":[87.6021784736708327,-50.5639263491039941,-10.9111099540033418],"rgb":[0.466666666666666674,0.933333333333333348,0.933333333333333348],"xyz":[0.536117497372813334,0.712414409343927302,0.918174672285521742],"hpluv":[192.177050630061075,184.503896016801804,87.6021784736708327],"hsluv":[192.177050630061075,74.6354143053272594,87.6021784736708327]},"#77eeff":{"lch":[88.107166277409533,55.7808213308350673,206.722210113893169],"luv":[88.107166277409533,-49.8232704905303336,-25.0826981397535107],"rgb":[0.466666666666666674,0.933333333333333348,1],"xyz":[0.562288545782644755,0.72288282870786,1.05600886057730348],"hpluv":[206.722210113893169,208.278116369071,88.107166277409533],"hsluv":[206.722210113893169,99.9999999999928804,88.107166277409533]},"#226600":{"lch":[37.5582057574881532,54.1200869321592961,123.236537452327113],"luv":[37.5582057574881532,-29.6630419039077431,45.2668505040000824],"rgb":[0.133333333333333331,0.4,0],"xyz":[0.0541083551941607538,0.0984246978946035633,0.0161464317764581713],"hpluv":[123.236537452327113,182.849162381267462,37.5582057574881532],"hsluv":[123.236537452327113,100.000000000002288,37.5582057574881532]},"#226611":{"lch":[37.6315056544729529,51.7196180195473119,124.710513292064419],"luv":[37.6315056544729529,-29.4507212427394194,42.5155725160833242],"rgb":[0.133333333333333331,0.4,0.0666666666666666657],"xyz":[0.0551200206937978721,0.0988293640944584162,0.0214745367412138],"hpluv":[124.710513292064419,174.398618448608886,37.6315056544729529],"hsluv":[124.710513292064419,93.2756924270169918,37.6315056544729529]},"#226622":{"lch":[37.7668566222969062,47.5272711912458519,127.715012949240034],"luv":[37.7668566222969062,-29.0740638670039928,37.5970785719263176],"rgb":[0.133333333333333331,0.4,0.133333333333333331],"xyz":[0.0569953788322748942,0.0995795073498492306,0.031351422937193],"hpluv":[127.715012949240034,159.687663587322874,37.7668566222969062],"hsluv":[127.715012949240034,81.309482828258183,37.7668566222969062]},"#226633":{"lch":[37.9882367851431084,41.3581300307957349,133.555287588173542],"luv":[37.9882367851431084,-28.497993426715972,29.9726423642471254],"rgb":[0.133333333333333331,0.4,0.2],"xyz":[0.0600831295647326347,0.100814607642832343,0.0476135767948041438],"hpluv":[133.555287588173542,138.150062101989391,37.9882367851431084],"hsluv":[133.555287588173542,82.0766642375396742,37.9882367851431084]},"#226644":{"lch":[38.3046909892153806,34.1393686276432291,144.379277801066621],"luv":[38.3046909892153806,-27.7515572052733894,19.8833488873617412],"rgb":[0.133333333333333331,0.4,0.266666666666666663],"xyz":[0.0645411248089515083,0.102597805740519923,0.0710923517476907824],"hpluv":[144.379277801066621,113.094855071532635,38.3046909892153806],"hsluv":[144.379277801066621,83.0794073538424414,38.3046909892153806]},"#226655":{"lch":[38.7222568592555234,28.0005039743963025,163.778220785970291],"luv":[38.7222568592555234,-26.8857357715149732,7.82211191715276755],"rgb":[0.133333333333333331,0.4,0.333333333333333315],"xyz":[0.0705035388483135073,0.104982771356264756,0.102494399021664684],"hpluv":[163.778220785970291,91.7581213405574516,38.7222568592555234],"hsluv":[163.778220785970291,84.2573678500350809,38.7222568592555234]},"#226666":{"lch":[39.2444156655659739,26.5583838540848376,192.177050630061103],"luv":[39.2444156655659739,-25.9608324434988,-5.60204710632589631],"rgb":[0.133333333333333331,0.4,0.4],"xyz":[0.0780885346218216786,0.108016769665668075,0.142442043428808646],"hpluv":[192.177050630061103,85.8742788705857691,39.2444156655659739],"hsluv":[192.177050630061103,85.5381417500271652,39.2444156655659739]},"#226677":{"lch":[39.8723950361637449,31.9118423017057466,218.325872967111877],"luv":[39.8723950361637449,-25.034725973132506,-19.7895976345933065],"rgb":[0.133333333333333331,0.4,0.466666666666666674],"xyz":[0.0874025476420236,0.111742374873748884,0.191495845335206555],"hpluv":[218.325872967111877,101.559108573692257,39.8723950361637449],"hsluv":[218.325872967111877,86.8516914397336137,39.8723950361637449]},"#226688":{"lch":[40.6054458094686836,41.8995680003496318,234.7955790683381],"luv":[40.6054458094686836,-24.1549067561574908,-34.2361545477476241],"rgb":[0.133333333333333331,0.4,0.533333333333333326],"xyz":[0.0985429647439674261,0.116198541714526482,0.250168708738778722],"hpluv":[234.7955790683381,130.937664052949941,40.6054458094686836],"hsluv":[234.7955790683381,88.1401386465251733,40.6054458094686836]},"#226699":{"lch":[41.4411308461218226,53.8933488408681782,244.319142730286046],"luv":[41.4411308461218226,-23.3551142576285748,-48.5698639826860301],"rgb":[0.133333333333333331,0.4,0.6],"xyz":[0.11159992885304014,0.12142132735815564,0.318935386379896657],"hpluv":[244.319142730286046,165.022400136876769,41.4411308461218226],"hsluv":[244.319142730286046,89.3619383181549267,41.4411308461218226]},"#2266aa":{"lch":[42.3756299296545578,66.5269840788925251,250.089735516440328],"luv":[42.3756299296545578,-22.655631138578233,-62.5504755245386193],"rgb":[0.133333333333333331,0.4,0.66666666666666663],"xyz":[0.126657621818292682,0.127444404544256734,0.398239235996895258],"hpluv":[250.089735516440328,199.214522587526545,42.3756299296545578],"hsluv":[250.089735516440328,90.4915899210210597,42.3756299296545578]},"#2266bb":{"lch":[43.404050412459263,79.1834510223872599,253.819475134999237],"luv":[43.404050412459263,-22.0656311263342282,-76.0468726432017803],"rgb":[0.133333333333333331,0.4,0.733333333333333282],"xyz":[0.143795213925629328,0.134299441387191493,0.488497221095537],"hpluv":[253.819475134999237,231.496000814517572,43.404050412459263],"hsluv":[253.819475134999237,91.5168425909476895,43.404050412459263]},"#2266cc":{"lch":[44.520728505208055,91.5877705166709,256.367788484306971],"luv":[44.520728505208055,-21.5861851194902563,-89.0076194502553193],"rgb":[0.133333333333333331,0.4,0.8],"xyz":[0.163087589369351083,0.142016391564680294,0.590103731765807105],"hpluv":[256.367788484306971,261.044502527732277,44.520728505208055],"hsluv":[256.367788484306971,92.43509558526695,44.520728505208055]},"#2266dd":{"lch":[45.7195068588792211,103.627896901795907,258.1878164043369],"luv":[45.7195068588792211,-21.2130654589597789,-101.433460308337743],"rgb":[0.133333333333333331,0.4,0.866666666666666696],"xyz":[0.184605914919984626,0.150623721784933828,0.703433579665813102],"hpluv":[258.1878164043369,287.616948003961852,45.7195068588792211],"hsluv":[258.1878164043369,93.2500413525610696,45.7195068588792211]},"#2266ee":{"lch":[46.9939777237187144,115.273293340910215,259.534328145616598],"luv":[46.9939777237187144,-20.9389771714321675,-113.35559709460216],"rgb":[0.133333333333333331,0.4,0.933333333333333348],"xyz":[0.208418095186159336,0.160148593891403873,0.828844395734336326],"hpluv":[259.534328145616598,311.261797341727515,46.9939777237187144],"hsluv":[259.534328145616598,93.969002023907521,46.9939777237187144]},"#2266ff":{"lch":[48.3376856243364728,126.534150990995641,260.559220542156197],"luv":[48.3376856243364728,-20.75515631493003,-124.820330288598825],"rgb":[0.133333333333333331,0.4,1],"xyz":[0.234589143595990757,0.170617013255336569,0.966678584026118171],"hpluv":[260.559220542156197,332.170629177470857,48.3376856243364728],"hsluv":[260.559220542156197,99.9999999999992184,48.3376856243364728]},"#77ff00":{"lch":[89.5984732569245921,124.632639236881928,120.733702851753719],"luv":[89.5984732569245921,-63.6933378884713406,107.128210438594465],"rgb":[0.466666666666666674,1,0],"xyz":[0.433660129810488626,0.754395258206476127,0.122760832470867665],"hpluv":[120.733702851753719,538.628162219261071,89.5984732569245921],"hsluv":[120.733702851753719,100.000000000002359,89.5984732569245921]},"#77ff11":{"lch":[89.6173512893739144,123.857431845856226,120.915842858481739],"luv":[89.6173512893739144,-63.635285050623331,106.260123846986147],"rgb":[0.466666666666666674,1,0.0666666666666666657],"xyz":[0.43467179531012573,0.754799924406331,0.128088937435623301],"hpluv":[120.915842858481739,536.333532616984598,89.6173512893739144],"hsluv":[120.915842858481739,99.9999999999912461,89.6173512893739144]},"#77ff22":{"lch":[89.6523282897647107,122.430860002153082,121.257903913559275],"luv":[89.6523282897647107,-63.5282943614823736,104.658832863679763],"rgb":[0.466666666666666674,1,0.133333333333333331],"xyz":[0.436547153448602787,0.755550067661721836,0.13796582363160248],"hpluv":[121.257903913559275,532.099457877515,89.6523282897647107],"hsluv":[121.257903913559275,99.9999999999912319,89.6523282897647107]},"#77ff33":{"lch":[89.7098670229763684,120.111567958755899,121.833904144252088],"luv":[89.7098670229763684,-63.3538816193187557,102.044472860004433],"rgb":[0.466666666666666674,1,0.2],"xyz":[0.439634904181060493,0.756785167954705,0.15422797748921363],"hpluv":[121.833904144252088,525.184015431200237,89.7098670229763684],"hsluv":[121.833904144252088,99.9999999999911893,89.7098670229763684]},"#77ff44":{"lch":[89.7928292607091834,116.827732221897932,122.694629127971339],"luv":[89.7928292607091834,-63.1058355300939766,98.317712230097257],"rgb":[0.466666666666666674,1,0.266666666666666663],"xyz":[0.444092899425279408,0.758568366052392529,0.177706752442100269],"hpluv":[122.694629127971339,515.324540814372313,89.7928292607091834],"hsluv":[122.694629127971339,99.9999999999912319,89.7928292607091834]},"#77ff55":{"lch":[89.9035853929870683,112.554947355203538,123.902387884937639],"luv":[89.9035853929870683,-62.7808648215699492,93.4193726503684161],"rgb":[0.466666666666666674,1,0.333333333333333315],"xyz":[0.450055313464641393,0.760953331668137278,0.209108799716074184],"hpluv":[123.902387884937639,502.374863630046946,89.9035853929870683],"hsluv":[123.902387884937639,99.9999999999911466,89.9035853929870683]},"#77ff66":{"lch":[90.0441481999633169,107.316590618570714,125.538864396596409],"luv":[90.0441481999633169,-62.3783098318914213,87.3258099562234662],"rgb":[0.466666666666666674,1,0.4],"xyz":[0.457640309238149579,0.763987329977540597,0.249056444123218146],"hpluv":[125.538864396596409,486.310350268178581,90.0441481999633169],"hsluv":[125.538864396596409,99.9999999999909193,90.0441481999633169]},"#77ff77":{"lch":[90.2162444924982,101.18761180958829,127.715012949239778],"luv":[90.2162444924982,-61.8999369112410065,80.0458031011764746],"rgb":[0.466666666666666674,1,0.466666666666666674],"xyz":[0.466954322258351484,0.767712935185621448,0.298110246029616055],"hpluv":[127.715012949239778,467.252180695244249,90.2162444924982],"hsluv":[127.715012949239778,99.9999999999908908,90.2162444924982]},"#77ff88":{"lch":[90.4213578195287084,94.3018691223763312,130.584388318929172],"luv":[90.4213578195287084,-61.3497133683486666,71.6174223886566352],"rgb":[0.466666666666666674,1,0.533333333333333326],"xyz":[0.478094739360295284,0.772169102026399,0.35678310943318825],"hpluv":[130.584388318929172,445.517691352744919,90.4213578195287084],"hsluv":[130.584388318929172,99.999999999990834,90.4213578195287084]},"#77ff99":{"lch":[90.660755936805927,86.8649116623181,134.360625617567337],"luv":[90.660755936805927,-60.7335297134313734,62.1043577106315],"rgb":[0.466666666666666674,1,0.6],"xyz":[0.491151703469368,0.777391887670028203,0.425549787074306129],"hpluv":[134.360625617567337,421.714412879972315,90.660755936805927],"hsluv":[134.360625617567337,99.9999999999904645,90.660755936805927]},"#77ffaa":{"lch":[90.9355096576679927,79.1755179707932513,139.336843070371486],"luv":[90.9355096576679927,-60.0588662825700368,51.5916197341755947],"rgb":[0.466666666666666674,1,0.66666666666666663],"xyz":[0.506209396434620595,0.78341496485612927,0.504853636691304786],"hpluv":[139.336843070371486,396.909453229520182,90.9355096576679927],"hsluv":[139.336843070371486,99.9999999999902371,90.9355096576679927]},"#77ffbb":{"lch":[91.2465066485729466,71.6593730134265599,145.894485367843032],"luv":[91.2465066485729466,-59.3344173347434776,40.1807498713488229],"rgb":[0.466666666666666674,1,0.733333333333333282],"xyz":[0.523346988541957159,0.790270001699064,0.595111621789946477],"hpluv":[145.894485367843032,372.920765055848051,91.2465066485729466],"hsluv":[145.894485367843032,99.9999999999901803,91.2465066485729466]},"#77ffcc":{"lch":[91.5944622372901591,64.9119206982031329,154.461378490718602],"luv":[91.5944622372901591,-58.5696939322881676,27.9847887504604707],"rgb":[0.466666666666666674,1,0.8],"xyz":[0.542639363985678913,0.797986951876552886,0.696718132460216633],"hpluv":[154.461378490718602,352.767904832744364,91.5944622372901591],"hsluv":[154.461378490718602,99.999999999989825,91.5944622372901591]},"#77ffdd":{"lch":[91.9799284987297,59.7212008687906604,165.331177548206284],"luv":[91.9799284987297,-57.7746296637575298,15.1232933062250314],"rgb":[0.466666666666666674,1,0.866666666666666696],"xyz":[0.564157689536312512,0.806594282096806392,0.81004798036022263],"hpluv":[165.331177548206284,341.200809564626638,91.9799284987297],"hsluv":[165.331177548206284,99.9999999999894698,91.9799284987297]},"#77ffee":{"lch":[92.4033024177180238,56.9851054432815545,178.272694676027839],"luv":[92.4033024177180238,-56.9592119034112,1.71767916801026743],"rgb":[0.466666666666666674,1,0.933333333333333348],"xyz":[0.587969869802487222,0.816119154203276409,0.935458796428745853],"hpluv":[178.272694676027839,344.865805035808421,92.4033024177180238],"hsluv":[178.272694676027839,99.9999999999889582,92.4033024177180238]},"#77ffff":{"lch":[92.8648336399367196,57.4251975820971623,192.177050630061018],"luv":[92.8648336399367196,-56.1331570721439945,-12.112885471963672],"rgb":[0.466666666666666674,1,1],"xyz":[0.614140918212318643,0.826587573567209133,1.0732929847205277],"hpluv":[192.177050630061018,371.354821198433683,92.8648336399367196],"hsluv":[192.177050630061018,99.9999999999883187,92.8648336399367196]},"#227700":{"lch":[43.5559297152692295,63.9882214930525208,124.519604676885976],"luv":[43.5559297152692295,-36.2613695379953711,52.7219647687080268],"rgb":[0.133333333333333331,0.466666666666666674,0],"xyz":[0.0725620932475783825,0.13533217400143932,0.0222976777942638753],"hpluv":[124.519604676885976,186.419817132403381,43.5559297152692295],"hsluv":[124.519604676885976,100.000000000002331,43.5559297152692295]},"#227711":{"lch":[43.6152314308602769,61.9621092027414093,125.591738779589861],"luv":[43.6152314308602769,-36.0623023987336282,50.3866383335378174],"rgb":[0.133333333333333331,0.466666666666666674,0.0666666666666666657],"xyz":[0.0735737587472155,0.135736840201294173,0.0276257827590195085],"hpluv":[125.591738779589861,180.271610265320959,43.6152314308602769],"hsluv":[125.591738779589861,95.0867888092805345,43.6152314308602769]},"#227722":{"lch":[43.7248500006056062,58.3665782213362476,127.715012949240148],"luv":[43.7248500006056062,-35.7048401974777292,46.1716562377823081],"rgb":[0.133333333333333331,0.466666666666666674,0.133333333333333331],"xyz":[0.0754491168856925298,0.136486983456685,0.0375026689549987],"hpluv":[127.715012949240148,169.385110384242353,43.7248500006056062],"hsluv":[127.715012949240148,86.2472116803111248,43.7248500006056062]},"#227733":{"lch":[43.9044636679785,52.8998675233047422,131.63685913347058],"luv":[43.9044636679785,-35.1470498804547518,39.5358175416168365],"rgb":[0.133333333333333331,0.466666666666666674,0.2],"xyz":[0.0785368676181502634,0.137722083749668101,0.0537648228126098443],"hpluv":[131.63685913347058,152.892166506547881,43.9044636679785],"hsluv":[131.63685913347058,86.6671370230467204,43.9044636679785]},"#227744":{"lch":[44.1618994548856207,46.0187725021067919,138.382113458020484],"luv":[44.1618994548856207,-34.403210499316,30.5638107889119937],"rgb":[0.133333333333333331,0.466666666666666674,0.266666666666666663],"xyz":[0.082994862862369137,0.139505281847355694,0.0772435977654964828],"hpluv":[138.382113458020484,132.228969104156789,44.1618994548856207],"hsluv":[138.382113458020484,87.230083060842972,44.1618994548856207]},"#227755":{"lch":[44.5028042963196171,38.7961505601339098,149.7341572603126],"luv":[44.5028042963196171,-33.5080868304533865,19.5537570621958743],"rgb":[0.133333333333333331,0.466666666666666674,0.333333333333333315],"xyz":[0.088957276901731136,0.141890247463100527,0.108645645039470398],"hpluv":[149.7341572603126,110.621765171639552,44.5028042963196171],"hsluv":[149.7341572603126,87.9126674499387235,44.5028042963196171]},"#227766":{"lch":[44.9310046324235657,33.2418513983527504,167.948858330193701],"luv":[44.9310046324235657,-32.5092552143098246,6.94038974417402166],"rgb":[0.133333333333333331,0.466666666666666674,0.4],"xyz":[0.0965422726752393073,0.144924245772503818,0.148593289446614346],"hpluv":[167.948858330193701,93.8811500215461,44.9310046324235657],"hsluv":[167.948858330193701,88.6822605795820778,44.9310046324235657]},"#227777":{"lch":[45.4487163896678652,32.1827345016432886,192.177050630061217],"luv":[45.4487163896678652,-31.4586377906525136,-6.7884098550242733],"rgb":[0.133333333333333331,0.466666666666666674,0.466666666666666674],"xyz":[0.105856285695441227,0.148649850980584641,0.197647091353012255],"hpluv":[192.177050630061217,89.8546686552558,45.4487163896678652],"hsluv":[192.177050630061217,89.5029511213474,45.4487163896678652]},"#227788":{"lch":[46.0567093690380389,37.0457871068229778,214.840569513336618],"luv":[46.0567093690380389,-30.4051407329018595,-21.1640676472289648],"rgb":[0.133333333333333331,0.466666666666666674,0.533333333333333326],"xyz":[0.116996702797385055,0.153106017821362239,0.256319954756584423],"hpluv":[214.840569513336618,102.066975938242322,46.0567093690380389],"hsluv":[214.840569513336618,90.3407286635711415,46.0567093690380389]},"#227799":{"lch":[46.7544651468991219,46.3079141704010908,230.605362437026685],"luv":[46.7544651468991219,-29.3896969252833173,-35.7864308006991223],"rgb":[0.133333333333333331,0.466666666666666674,0.6],"xyz":[0.130053666906457754,0.158328803464991397,0.325086632397702358],"hpluv":[230.605362437026685,125.681528260779189,46.7544651468991219],"hsluv":[230.605362437026685,91.1669787694701,46.7544651468991219]},"#2277aa":{"lch":[47.5403420753171133,57.8256716053654429,240.536105931551504],"luv":[47.5403420753171133,-28.4430017925967782,-50.3468365007961935],"rgb":[0.133333333333333331,0.466666666666666674,0.66666666666666663],"xyz":[0.14511135987171031,0.164351880651092491,0.404390482014700958],"hpluv":[240.536105931551504,154.346828351852139,47.5403420753171133],"hsluv":[240.536105931551504,91.9600907928071365,47.5403420753171133]},"#2277bb":{"lch":[48.4117490016133161,70.2708193466387172,246.886175208709233],"luv":[48.4117490016133161,-27.5854458877112236,-64.6299561103370337],"rgb":[0.133333333333333331,0.466666666666666674,0.733333333333333282],"xyz":[0.162248951979046957,0.17120691749402725,0.494648467113342705],"hpluv":[246.886175208709233,184.188949495161438,48.4117490016133161],"hsluv":[246.886175208709233,92.7055270960754427,48.4117490016133161]},"#2277cc":{"lch":[49.3653235224945348,82.9601291275659634,251.131977113837081],"luv":[49.3653235224945348,-26.8284223951791141,-78.5023488607078],"rgb":[0.133333333333333331,0.466666666666666674,0.8],"xyz":[0.181541327422768684,0.178923867671516051,0.596254977783612805],"hpluv":[251.131977113837081,213.248879712122147,49.3653235224945348],"hsluv":[251.131977113837081,93.3949294454883301,49.3653235224945348]},"#2277dd":{"lch":[50.3971082370692898,95.5506012475210156,254.100456017762497],"luv":[50.3971082370692898,-26.1762366694964186,-91.8951687118820928],"rgb":[0.133333333333333331,0.466666666666666674,0.866666666666666696],"xyz":[0.203059652973402227,0.187531197891769585,0.709584825683618803],"hpluv":[254.100456017762497,240.584217083197558,50.3971082370692898],"hsluv":[254.100456017762497,94.0248036114472399,50.3971082370692898]},"#2277ee":{"lch":[51.5027182397596448,107.874744495734575,256.256689112315712],"luv":[51.5027182397596448,-25.6280715933506258,-104.786270314512635],"rgb":[0.133333333333333331,0.466666666666666674,0.933333333333333348],"xyz":[0.226871833239577,0.19705606999823963,0.834995641752142],"hpluv":[256.256689112315712,265.784074864026707,51.5027182397596448],"hsluv":[256.256689112315712,94.5951642228933594,51.5027182397596448]},"#2277ff":{"lch":[52.6774941409559432,119.859275592882611,257.873120264558906],"luv":[52.6774941409559432,-25.1797078347732324,-117.18459053564186],"rgb":[0.133333333333333331,0.466666666666666674,1],"xyz":[0.253042881649408358,0.207524489362172326,0.972829830043923871],"hpluv":[257.873120264558906,288.725982332353851,52.6774941409559432],"hsluv":[257.873120264558906,99.9999999999990195,52.6774941409559432]},"#228800":{"lch":[49.4326013626652951,73.5543249838887903,125.335546592141156],"luv":[49.4326013626652951,-42.5411625112882845,60.0040683289365475],"rgb":[0.133333333333333331,0.533333333333333326,0],"xyz":[0.0946344629725488357,0.179476913451380865,0.0296551343692538216],"hpluv":[125.335546592141156,188.81394887832684,49.4326013626652951],"hsluv":[125.335546592141156,100.000000000002359,49.4326013626652951]},"#228811":{"lch":[49.4817413630627669,71.8188220709608,126.143293588176633],"luv":[49.4817413630627669,-42.3592238010278379,57.9968909738682825],"rgb":[0.133333333333333331,0.533333333333333326,0.0666666666666666657],"xyz":[0.0956461284721859539,0.179881579651235718,0.0349832393340094513],"hpluv":[126.143293588176633,184.175827324420425,49.4817413630627669],"hsluv":[126.143293588176633,96.2839239867753776,49.4817413630627669]},"#228822":{"lch":[49.5726392440562904,68.7061860444130161,127.715012949240233],"luv":[49.5726392440562904,-42.0299333634258545,54.3509402148249521],"rgb":[0.133333333333333331,0.533333333333333326,0.133333333333333331],"xyz":[0.097521486610662983,0.180631722906626546,0.0448601255299886509],"hpluv":[127.715012949240233,175.870551812838869,49.5726392440562904],"hsluv":[127.715012949240233,89.549457305464,49.5726392440562904]},"#228833":{"lch":[49.7217546026668913,63.8760413965615115,130.529662443073192],"luv":[49.7217546026668913,-41.5093107949551552,48.5502397710151357],"rgb":[0.133333333333333331,0.533333333333333326,0.2],"xyz":[0.100609237343120717,0.181866823199609645,0.0611222793875997941],"hpluv":[130.529662443073192,163.016240956960957,49.7217546026668913],"hsluv":[130.529662443073192,89.7937238944362122,49.7217546026668913]},"#228844":{"lch":[49.9358562328630171,57.5522088774297558,135.149605574971361],"luv":[49.9358562328630171,-40.8016788905052792,40.5891579906186308],"rgb":[0.133333333333333331,0.533333333333333326,0.266666666666666663],"xyz":[0.10506723258733959,0.183650021297297239,0.0846010543404864257],"hpluv":[135.149605574971361,146.247625060139768,49.9358562328630171],"hsluv":[135.149605574971361,90.1269016918236616,49.9358562328630171]},"#228855":{"lch":[50.2200542052193697,50.3265642713731509,142.503880569306347],"luv":[50.2200542052193697,-39.9288227743001443,30.6341669254964764],"rgb":[0.133333333333333331,0.533333333333333326,0.333333333333333315],"xyz":[0.111029646626701589,0.186034986913042072,0.116003101614460341],"hpluv":[142.503880569306347,127.162609675202816,50.2200542052193697],"hsluv":[142.503880569306347,90.5399352865824341,50.2200542052193697]},"#228866":{"lch":[50.5781035519961648,43.3062651916131074,154.006170397495453],"luv":[50.5781035519961648,-38.9254575775356315,18.9800252166796355],"rgb":[0.133333333333333331,0.533333333333333326,0.4],"xyz":[0.11861464240020976,0.189068985222445363,0.155950746021604303],"hpluv":[154.006170397495453,108.649446020320369,50.5781035519961648],"hsluv":[154.006170397495453,91.0179493017372607,50.5781035519961648]},"#228877":{"lch":[51.0125694858746357,38.3061120533697519,170.992189866461246],"luv":[51.0125694858746357,-37.8336830583721451,5.997553408179356],"rgb":[0.133333333333333331,0.533333333333333326,0.466666666666666674],"xyz":[0.12792865542041168,0.192794590430526186,0.205004547928002212],"hpluv":[170.992189866461246,95.2862426106229634,51.0125694858746357],"hsluv":[170.992189866461246,91.5427076584867621,51.0125694858746357]},"#228888":{"lch":[51.5249413470067594,37.5420496271247259,192.177050630061103],"luv":[51.5249413470067594,-36.6973707929670923,-7.91886779085127834],"rgb":[0.133333333333333331,0.533333333333333326,0.533333333333333326],"xyz":[0.139069072522355508,0.197250757271303784,0.263677411331574407],"hpluv":[192.177050630061103,92.4570004995607775,51.5249413470067594],"hsluv":[192.177050630061103,92.0950966753639761,51.5249413470067594]},"#228899":{"lch":[52.1157302062907064,42.0223592343639183,212.203992327233067],"luv":[52.1157302062907064,-35.5574728144251,-22.3951959730954577],"rgb":[0.133333333333333331,0.533333333333333326,0.6],"xyz":[0.152126036631428208,0.202473542914932941,0.332444088972692287],"hpluv":[212.203992327233067,102.317738016510475,52.1157302062907064],"hsluv":[212.203992327233067,92.6571999954113465,52.1157302062907064]},"#2288aa":{"lch":[52.784565077464336,50.6329849579481888,227.127925237574203],"luv":[52.784565077464336,-34.4488478228089221,-37.1076279143892478],"rgb":[0.133333333333333331,0.533333333333333326,0.66666666666666663],"xyz":[0.167183729596680763,0.208496620101034036,0.411747938589690887],"hpluv":[227.127925237574203,121.72111165959474,52.784565077464336],"hsluv":[227.127925237574203,93.213704377986,52.784565077464336]},"#2288bb":{"lch":[53.5302933631107294,61.6316847476891141,237.186375672219185],"luv":[53.5302933631107294,-33.3987075035381409,-51.7975955226846381],"rgb":[0.133333333333333331,0.533333333333333326,0.733333333333333282],"xyz":[0.18432132170401741,0.215351656943968794,0.502005923688332634],"hpluv":[237.186375672219185,146.097822373379188,53.5302933631107294],"hsluv":[237.186375672219185,93.7525919029994,53.5302933631107294]},"#2288cc":{"lch":[54.351086283976727,73.7818378825302261,243.928624140525301],"luv":[54.351086283976727,-32.4264148607849876,-66.274333045306733],"rgb":[0.133333333333333331,0.533333333333333326,0.8],"xyz":[0.203613697147739137,0.223068607121457596,0.60361243435860279],"hpluv":[243.928624140525301,172.258462735913952,54.351086283976727],"hsluv":[243.928624140525301,94.2652369190112864,54.351086283976727]},"#2288dd":{"lch":[55.2445474530087779,86.375042864399532,248.580085361336785],"luv":[55.2445474530087779,-31.544198041281593,-80.4090268549449831],"rgb":[0.133333333333333331,0.533333333333333326,0.866666666666666696],"xyz":[0.22513202269837268,0.23167593734171113,0.716942282258608787],"hpluv":[248.580085361336785,198.39840761978212,55.2445474530087779],"hsluv":[248.580085361336785,94.7460999996689566,55.2445474530087779]},"#2288ee":{"lch":[56.2078215466105604,99.0227420546019772,251.903461744910402],"luv":[56.2078215466105604,-30.7583451142169402,-94.1245326673496265],"rgb":[0.133333333333333331,0.533333333333333326,0.933333333333333348],"xyz":[0.248944202964547445,0.241200809448181175,0.842353098327132],"hpluv":[251.903461744910402,223.551465466634539,56.2078215466105604],"hsluv":[251.903461744910402,95.1922101623356838,56.2078215466105604]},"#2288ff":{"lch":[57.2376997180489866,111.514610807296222,254.356224713070389],"luv":[57.2376997180489866,-30.0705415498761575,-107.383755542446536],"rgb":[0.133333333333333331,0.533333333333333326,1],"xyz":[0.275115251374378811,0.251669228812113843,0.980187286618913856],"hpluv":[254.356224713070389,247.223031548482197,57.2376997180489866],"hsluv":[254.356224713070389,99.9999999999988773,57.2376997180489866]},"#229900":{"lch":[55.1973816023000694,82.8565734474734086,125.883775052172936],"luv":[55.1973816023000694,-48.5657961090338617,67.1310301704979508],"rgb":[0.133333333333333331,0.6,0],"xyz":[0.120504063425016322,0.23121611435631656,0.0382783345200760766],"hpluv":[125.883775052172936,190.479314261094402,55.1973816023000694],"hsluv":[125.883775052172936,100.000000000002331,55.1973816023000694]},"#229911":{"lch":[55.2388931006948951,81.3509781714907376,126.510168490119042],"luv":[55.2388931006948951,-48.4010205856972817,65.3859530459048273],"rgb":[0.133333333333333331,0.6,0.0666666666666666657],"xyz":[0.121515728924653441,0.231620780556171413,0.0436064394848317063],"hpluv":[126.510168490119042,186.877552842351321,55.2388931006948951],"hsluv":[126.510168490119042,97.109403045153627,55.2388931006948951]},"#229922":{"lch":[55.3157166450500739,78.6308396618125869,127.715012949240275],"luv":[55.3157166450500739,-48.1011847922964293,62.2019691609440102],"rgb":[0.133333333333333331,0.6,0.133333333333333331],"xyz":[0.12339108706313047,0.232370923811562241,0.0534833256808109059],"hpluv":[127.715012949240275,180.378053709807,55.3157166450500739],"hsluv":[127.715012949240275,91.8445791693357592,55.3157166450500739]},"#229933":{"lch":[55.4418461137647,74.3518111171957656,129.829614369777261],"luv":[55.4418461137647,-47.6228343175573201,57.0986643273697],"rgb":[0.133333333333333331,0.6,0.2],"xyz":[0.126478837795588217,0.23360602410454534,0.0697454795384220561],"hpluv":[129.829614369777261,170.173995330187722,55.4418461137647],"hsluv":[129.829614369777261,91.9941043082508827,55.4418461137647]},"#229944":{"lch":[55.6231658975890042,68.6117263626113925,133.195472742568398],"luv":[55.6231658975890042,-46.964006542137362,50.0195070344354846],"rgb":[0.133333333333333331,0.6,0.266666666666666663],"xyz":[0.130936833039807077,0.235389222202232934,0.0932242544913087],"hpluv":[133.195472742568398,156.524371813771666,55.6231658975890042],"hsluv":[133.195472742568398,92.2005608183228844,55.6231658975890042]},"#229955":{"lch":[55.8642490130281715,61.7521412094073696,138.342726405552],"luv":[55.8642490130281715,-46.1371272258517706,41.0450049980768625],"rgb":[0.133333333333333331,0.6,0.333333333333333315],"xyz":[0.136899247079169062,0.237774187817977767,0.124626301765282596],"hpluv":[138.342726405552,140.267605312348593,55.8642490130281715],"hsluv":[138.342726405552,92.4605995247666357,55.8642490130281715]},"#229966":{"lch":[56.1686206396836383,54.4254646973719787,146.085824005346524],"luv":[56.1686206396836383,-45.1662924386951516,30.3667126121210664],"rgb":[0.133333333333333331,0.6,0.4],"xyz":[0.144484242852677247,0.240808186127381058,0.164573946172426544],"hpluv":[146.085824005346524,122.955430161041207,56.1686206396836383],"hsluv":[146.085824005346524,92.7673635780271,56.1686206396836383]},"#229977":{"lch":[56.5388973522399,47.7139826201784629,157.505617321427167],"luv":[56.5388973522399,-44.0837619060267798,18.2550287233801534],"rgb":[0.133333333333333331,0.6,0.466666666666666674],"xyz":[0.153798255872879153,0.244533791335461881,0.213627748078824453],"hpluv":[157.505617321427167,107.087223886255089,56.5388973522399],"hsluv":[157.505617321427167,93.1115325865156,56.5388973522399]},"#229988":{"lch":[56.9768757530356,43.2189787336254057,173.325138204180888],"luv":[56.9768757530356,-42.9260293704251126,5.02355703331473169],"rgb":[0.133333333333333331,0.6,0.533333333333333326],"xyz":[0.164938672974823,0.248989958176239479,0.272300611482396648],"hpluv":[173.325138204180888,96.2532040641867,56.9768757530356],"hsluv":[173.325138204180888,93.4824878896153706,56.9768757530356]},"#229999":{"lch":[57.4836007022547477,42.6905833214490045,192.177050630061103],"luv":[57.4836007022547477,-41.7300648492924537,-9.00486490733903366],"rgb":[0.133333333333333331,0.6,0.6],"xyz":[0.177995637083895708,0.254212743819868636,0.341067289123514528],"hpluv":[192.177050630061103,94.2383018299879467,57.4836007022547477],"hsluv":[192.177050630061103,93.8694254698009587,57.4836007022547477]},"#2299aa":{"lch":[58.0594270662980563,46.8633307325653,210.133219640519371],"luv":[58.0594270662980563,-40.5302437993065823,-23.5259666096543114],"rgb":[0.133333333333333331,0.6,0.66666666666666663],"xyz":[0.193053330049148264,0.260235821005969759,0.420371138740513128],"hpluv":[210.133219640519371,102.423528384682896,58.0594270662980563],"hsluv":[210.133219640519371,94.2622655036202701,58.0594270662980563]},"#2299bb":{"lch":[58.704081470592044,54.8976329577059445,224.200669016044458],"luv":[58.704081470592044,-39.3562485070025474,-38.2731734745639],"rgb":[0.133333333333333331,0.6,0.733333333333333282],"xyz":[0.210190922156484883,0.267090857848904517,0.51062912383915493],"hpluv":[224.200669016044458,118.665547847191604,58.704081470592044],"hsluv":[224.200669016044458,94.6522748426748279,58.704081470592044]},"#2299cc":{"lch":[59.4167266489170771,65.3729917945351247,234.209137470411804],"luv":[59.4167266489170771,-38.231976961148348,-53.0277662532618663],"rgb":[0.133333333333333331,0.6,0.8],"xyz":[0.229483297600206637,0.274807808026393319,0.612235634509425086],"hpluv":[234.209137470411804,139.613998456385502,59.4167266489170771],"hsluv":[234.209137470411804,95.032392249276171,59.4167266489170771]},"#2299dd":{"lch":[60.1960287785942114,77.1664383037622201,241.199920521286145],"luv":[60.1960287785942114,-37.1753089722913614,-67.6214137925481],"rgb":[0.133333333333333331,0.6,0.866666666666666696],"xyz":[0.251001623150840181,0.283415138246646825,0.725565482409431084],"hpluv":[241.199920521286145,162.667181112599422,60.1960287785942114],"hsluv":[241.199920521286145,95.397300800485425,60.1960287785942114]},"#2299ee":{"lch":[61.0402269370523243,89.5733454479413211,246.163931095701571],"luv":[61.0402269370523243,-36.1984881015500051,-81.9332269222821],"rgb":[0.133333333333333331,0.6,0.933333333333333348],"xyz":[0.27481380341701489,0.292940010353116842,0.850976298477954307],"hpluv":[246.163931095701571,186.209563381880429,61.0402269370523243],"hsluv":[246.163931095701571,95.74331870201,61.0402269370523243]},"#2299ff":{"lch":[61.9472031658153384,102.178145565387652,249.783903318571561],"luv":[61.9472031658153384,-35.3088685699608078,-95.8835607989752532],"rgb":[0.133333333333333331,0.6,1],"xyz":[0.300984851826846311,0.303408429717049566,0.988810486769736152],"hpluv":[249.783903318571561,209.303089797111312,61.9472031658153384],"hsluv":[249.783903318571561,99.9999999999986,61.9472031658153384]},"#110000":{"lch":[1.07666134976862637,3.62084603829176643,12.1770506300617818],"luv":[1.07666134976862637,3.53937866928378497,0.763756943295526236],"rgb":[0.0666666666666666657,0,0],"xyz":[0.00231161193210362246,0.00119192490249095569,0.000108356809317355026],"hpluv":[12.1770506300617818,426.746789183125145,1.07666134976862637],"hsluv":[12.1770506300617818,100.000000000002203,1.07666134976862637]},"#110011":{"lch":[1.44219482929484544,3.28508596549136378,307.715012949243601],"luv":[1.44219482929484544,2.00959989444743092,-2.59871084672866193],"rgb":[0.0666666666666666657,0,0.0666666666666666657],"xyz":[0.0033232774317407442,0.00159659110234581,0.00543646177407298634],"hpluv":[307.715012949243601,289.042783730483393,1.44219482929484544],"hsluv":[307.715012949243601,99.9999999999988347,1.44219482929484544]},"#110022":{"lch":[2.1197964535087821,6.27745605271938789,280.884754167684719],"luv":[2.1197964535087821,1.18539805862553327,-6.16451830530416167],"rgb":[0.0666666666666666657,0,0.133333333333333331],"xyz":[0.00519863557021776369,0.00234673435773662814,0.0153133479700521824],"hpluv":[280.884754167684719,375.775833064690062,2.1197964535087821],"hsluv":[280.884754167684719,99.9999999999998721,2.1197964535087821]},"#110033":{"lch":[3.23545797359596321,11.0622687483975319,272.972319481398301],"luv":[3.23545797359596321,0.57361730895702967,-11.0473867065762477],"rgb":[0.0666666666666666657,0,0.2],"xyz":[0.00828638630267550247,0.00358183465071974143,0.0315755018276633256],"hpluv":[272.972319481398301,433.858158519435221,3.23545797359596321],"hsluv":[272.972319481398301,100.000000000000355,3.23545797359596321]},"#110044":{"lch":[4.84621421062803659,17.7312810137515946,269.891014646828467],"luv":[4.84621421062803659,-0.0337275934556249754,-17.7312489362161827],"rgb":[0.0666666666666666657,0,0.266666666666666663],"xyz":[0.012744381546894383,0.0053650327484073175,0.0550542767805499642],"hpluv":[269.891014646828467,464.276639746945534,4.84621421062803659],"hsluv":[269.891014646828467,100.000000000000711,4.84621421062803659]},"#110055":{"lch":[7.00054481789469563,26.532890242342738,268.413820694361107],"luv":[7.00054481789469563,-0.734444075336115332,-26.5227233992365541],"rgb":[0.0666666666666666657,0,0.333333333333333315],"xyz":[0.0187067955862563751,0.00774999836415214954,0.0864563240545238726],"hpluv":[268.413820694361107,480.941270902403687,7.00054481789469563],"hsluv":[268.413820694361107,100.000000000000682,7.00054481789469563]},"#110066":{"lch":[9.62818818466394,37.2351477319955,267.604082628906383],"luv":[9.62818818466394,-1.55659527409507947,-37.20259719127408],"rgb":[0.0666666666666666657,0,0.4],"xyz":[0.0262917913597645499,0.010783996673555462,0.126403968461667848],"hpluv":[267.604082628906383,490.735908571457742,9.62818818466394],"hsluv":[267.604082628906383,100.000000000000753,9.62818818466394]},"#110077":{"lch":[12.2928363787590555,48.1341065988899643,267.117295446388],"luv":[12.2928363787590555,-2.42073458662620622,-48.0731969202633138],"rgb":[0.0666666666666666657,0,0.466666666666666674],"xyz":[0.0356058043799664659,0.0145096018816362783,0.175457770368065757],"hpluv":[267.117295446388,496.866985521105335,12.2928363787590555],"hsluv":[267.117295446388,100.000000000000739,12.2928363787590555]},"#110088":{"lch":[14.9348588897968106,58.9551979191609803,266.804247897724281],"luv":[14.9348588897968106,-3.28660375460643372,-58.8635166928348781],"rgb":[0.0666666666666666657,0,0.533333333333333326],"xyz":[0.0467462214819102939,0.0189657687224138727,0.234130633771637925],"hpluv":[266.804247897724281,500.910695182750828,14.9348588897968106],"hsluv":[266.804247897724281,100.000000000000753,14.9348588897968106]},"#110099":{"lch":[17.5475874535139624,69.6538923837914297,266.59230255326986],"luv":[17.5475874535139624,-4.14026096141065292,-69.5307339482636],"rgb":[0.0666666666666666657,0,0.6],"xyz":[0.0598031855909830073,0.0241885543660430302,0.302897311412755832],"hpluv":[266.59230255326986,503.694607743992833,17.5475874535139624],"hsluv":[266.59230255326986,100.000000000000796,17.5475874535139624]},"#1100aa":{"lch":[20.1284543895036734,80.2134478690449,266.442863009455],"luv":[20.1284543895036734,-4.97675334080985809,-80.0589104673847203],"rgb":[0.0666666666666666657,0,0.66666666666666663],"xyz":[0.0748608785562355494,0.0302116315521441317,0.382201161029754433],"hpluv":[266.442863009455,505.680355905096519,20.1284543895036734],"hsluv":[266.442863009455,100.000000000000782,20.1284543895036734]},"#1100bb":{"lch":[22.6769756305364183,90.6302333913987894,266.3339747285724],"luv":[22.6769756305364183,-5.79494806122388795,-90.444777525002138],"rgb":[0.0666666666666666657,0,0.733333333333333282],"xyz":[0.0919984706635722,0.0370666683950788903,0.472459146128396179],"hpluv":[266.3339747285724,507.139328846885462,22.6769756305364183],"hsluv":[266.3339747285724,100.000000000001,22.6769756305364183]},"#1100cc":{"lch":[25.1937235339869332,100.906819147977927,266.252448568601267],"luv":[25.1937235339869332,-6.59531864805210422,-100.691051849175651],"rgb":[0.0666666666666666657,0,0.8],"xyz":[0.111290846107293936,0.0447836185725676919,0.574065656798666279],"hpluv":[266.252448568601267,508.238409831726415,25.1937235339869332],"hsluv":[266.252448568601267,100.000000000000824,25.1937235339869332]},"#1100dd":{"lch":[27.6797893663012289,111.048607057141055,266.189998210144608],"luv":[27.6797893663012289,-7.37896669992084409,-110.803176758488192],"rgb":[0.0666666666666666657,0,0.866666666666666696],"xyz":[0.132809171657927494,0.0533909487928212259,0.687395504698672277],"hpluv":[266.189998210144608,509.084249760461944,27.6797893663012289],"hsluv":[266.189998210144608,100.000000000000938,27.6797893663012289]},"#1100ee":{"lch":[30.1364964584496846,121.062148077250455,266.141219022825339],"luv":[30.1364964584496846,-8.14718371295858823,-120.787694301304626],"rgb":[0.0666666666666666657,0,0.933333333333333348],"xyz":[0.156621351924102231,0.0629158208992912638,0.8128063207671955],"hpluv":[266.141219022825339,509.74730741907581,30.1364964584496846],"hsluv":[266.141219022825339,100.000000000000952,30.1364964584496846]},"#1100ff":{"lch":[32.5652456752648263,130.954293728553409,266.102472093749839],"luv":[32.5652456752648263,-8.90125725083502495,-130.651424275813781],"rgb":[0.0666666666666666657,0,1],"xyz":[0.182792400333933625,0.0733842402632239599,0.950640509058977345],"hpluv":[266.102472093749839,510.275492181060656,32.5652456752648263],"hsluv":[266.102472093749839,100.000000000001108,32.5652456752648263]},"#111100":{"lch":[4.69779601336656771,5.17885327658484673,85.8743202181747307],"luv":[4.69779601336656771,0.372589941443898953,5.16543299210515716],"rgb":[0.0666666666666666657,0.0666666666666666657,0],"xyz":[0.00431601219303203148,0.00520072542434782924,0.000776490229626805866],"hpluv":[85.8743202181747307,139.887458074797621,4.69779601336656771],"hsluv":[85.8743202181747307,100.000000000002359,4.69779601336656771]},"#111111":{"lch":[5.06332949289278655,2.68159353999537178e-13,0],"luv":[5.06332949289278655,2.52120910544652531e-13,9.13481559944393266e-14],"rgb":[0.0666666666666666657,0.0666666666666666657,0.0666666666666666657],"xyz":[0.00532767769266915322,0.00560539162420268383,0.00610459519438243722],"hpluv":[0,6.72041492281092e-12,5.06332949289278655],"hsluv":[0,1.92419399944792277e-12,5.06332949289278655]},"#111122":{"lch":[5.74093111710672321,6.60006851394265048,265.874320218179719],"luv":[5.74093111710672321,-0.474838542395297381,-6.58296534605743222],"rgb":[0.0666666666666666657,0.0666666666666666657,0.133333333333333331],"xyz":[0.00720303583114617271,0.00635553487959350169,0.0159814813903616341],"hpluv":[265.874320218179719,145.883251481840432,5.74093111710672321],"hsluv":[265.874320218179719,28.41442223352254,5.74093111710672321]},"#111133":{"lch":[6.85659263719390388,14.212336546779186,265.874320218178582],"luv":[6.85659263719390388,-1.02249925976518052,-14.1755072354640976],"rgb":[0.0666666666666666657,0.0666666666666666657,0.2],"xyz":[0.0102907865636039132,0.00759063517257661455,0.0322436352479727809],"hpluv":[265.874320218178582,263.024656142887807,6.85659263719390388],"hsluv":[265.874320218178582,51.2306489028398957,6.85659263719390388]},"#111144":{"lch":[8.45853257854777141,22.7927945223118087,265.874320218178241],"luv":[8.45853257854777141,-1.63981590573345759,-22.7337301367732181],"rgb":[0.0666666666666666657,0.0666666666666666657,0.266666666666666663],"xyz":[0.0147487818078227903,0.00937383327026419105,0.0557224102008594194],"hpluv":[265.874320218178241,341.933676209697239,8.45853257854777141],"hsluv":[265.874320218178241,66.600159737267461,8.45853257854777141]},"#111155":{"lch":[10.3782295585045325,32.1242805487719707,265.874320218178127],"luv":[10.3782295585045325,-2.31116487943396587,-32.0410349033279545],"rgb":[0.0666666666666666657,0.0666666666666666657,0.333333333333333315],"xyz":[0.0207111958471847858,0.011758798886009024,0.0871244574748333278],"hpluv":[265.874320218178127,392.780088665713265,10.3782295585045325],"hsluv":[265.874320218178127,76.5037738801481453,10.3782295585045325]},"#111166":{"lch":[12.4757228248048477,41.8651930040424887,265.87432021817807],"luv":[12.4757228248048477,-3.01196982745712916,-41.7567051265328644],"rgb":[0.0666666666666666657,0.0666666666666666657,0.4],"xyz":[0.0282961916206929606,0.0147927971954123355,0.12707210188197729],"hpluv":[265.87432021817807,425.820638501567,12.4757228248048477],"hsluv":[265.87432021817807,82.9392496755345263,12.4757228248048477]},"#111177":{"lch":[14.6896895275036599,51.8467212520223697,265.874320218178],"luv":[14.6896895275036599,-3.73008575521422614,-51.7123676197837199],"rgb":[0.0666666666666666657,0.0666666666666666657,0.466666666666666674],"xyz":[0.0376102046408948731,0.0185184024034931519,0.176125903788375199],"hpluv":[265.874320218178,447.865910041391658,14.6896895275036599],"hsluv":[265.874320218178,87.2331192419333235,14.6896895275036599]},"#111188":{"lch":[16.9766940539391484,61.9476661879793511,265.874320218178],"luv":[16.9766940539391484,-4.45679305530888747,-61.7871373491236469],"rgb":[0.0666666666666666657,0.0666666666666666657,0.533333333333333326],"xyz":[0.0487506217428387,0.0229745692442707428,0.234798767191947366],"hpluv":[265.874320218178,463.03215765547759,16.9766940539391484],"hsluv":[265.874320218178,90.1871263608273495,16.9766940539391484]},"#111199":{"lch":[19.3069968916820471,72.0861980616198537,265.874320218178],"luv":[19.3069968916820471,-5.18620452834737478,-71.8993966147786],"rgb":[0.0666666666666666657,0.0666666666666666657,0.6],"xyz":[0.0618075858519114146,0.0281973548878999072,0.303565444833065246],"hpluv":[265.874320218178,473.779996738615694,19.3069968916820471],"hsluv":[265.874320218178,92.280537596895428,19.3069968916820471]},"#1111aa":{"lch":[21.6605350192491244,82.2093341223612839,265.874320218177957],"luv":[21.6605350192491244,-5.91450835752722703,-81.9962999636616274],"rgb":[0.0666666666666666657,0.0666666666666666657,0.66666666666666663],"xyz":[0.0768652788171639567,0.0342204320740010087,0.382869294450063846],"hpluv":[265.874320218177957,481.605322004481,21.6605350192491244],"hsluv":[265.874320218177957,93.8047159652847569,21.6605350192491244]},"#1111bb":{"lch":[24.0238472654082429,92.2838634174554215,265.874320218177957],"luv":[24.0238472654082429,-6.63931519789526092,-92.0447225046312241],"rgb":[0.0666666666666666657,0.0666666666666666657,0.733333333333333282],"xyz":[0.0940028709245006,0.0410754689169357673,0.473127279548705593],"hpluv":[265.874320218177957,487.441538809997496,24.0238472654082429],"hsluv":[265.874320218177957,94.9414655706975736,24.0238472654082429]},"#1111cc":{"lch":[26.3879200105999,102.289669569688542,265.874320218177957],"luv":[26.3879200105999,-7.35917778701558589,-102.024599989292597],"rgb":[0.0666666666666666657,0.0666666666666666657,0.8],"xyz":[0.113295246368222344,0.0487924190944245689,0.574733790218975749],"hpluv":[265.874320218177957,491.887677819884516,26.3879200105999],"hsluv":[265.874320218177957,95.8074626598259727,26.3879200105999]},"#1111dd":{"lch":[28.7467318202544035,112.215160110792439,265.874320218177957],"luv":[28.7467318202544035,-8.07326211070735766,-111.924369989661315],"rgb":[0.0666666666666666657,0.0666666666666666657,0.866666666666666696],"xyz":[0.134813571918855901,0.0573997493146781,0.688063638118981746],"hpluv":[265.874320218177957,495.338839734480189,28.7467318202544035],"hsluv":[265.874320218177957,96.479663003878315,28.7467318202544035]},"#1111ee":{"lch":[31.096282761883856,122.054240127147821,265.874320218177957],"luv":[31.096282761883856,-8.78112967353786367,-121.737953386246701],"rgb":[0.0666666666666666657,0.0666666666666666657,0.933333333333333348],"xyz":[0.158625752185030638,0.0669246214211481338,0.813474454187505],"hpluv":[265.874320218177957,498.062358817216193,31.096282761883856],"hsluv":[265.874320218177957,97.0101366558694451,31.096282761883856]},"#1111ff":{"lch":[33.4339475813396589,131.804336466263976,265.874320218177957],"luv":[33.4339475813396589,-9.48259535137154863,-131.462783694528071],"rgb":[0.0666666666666666657,0.0666666666666666657,1],"xyz":[0.184796800594862032,0.07739304078508083,0.951308642479286815],"hpluv":[265.874320218177957,500.243401112503761,33.4339475813396589],"hsluv":[265.874320218177957,99.9999999999995168,33.4339475813396589]},"#66aa00":{"lch":[62.9888010115071921,81.5107592316300185,114.758667910078074],"luv":[62.9888010115071921,-34.136471206054587,74.0182761493062884],"rgb":[0.4,0.66666666666666663,0],"xyz":[0.198534632170994735,0.315734905503604946,0.0504821063864305253],"hpluv":[114.758667910078074,164.206718875588678,62.9888010115071921],"hsluv":[114.758667910078074,100.000000000002245,62.9888010115071921]},"#66aa11":{"lch":[63.0225323172591345,80.1801511939703744,115.156040801232848],"luv":[63.0225323172591345,-34.0833758310267285,72.5753411114886262],"rgb":[0.4,0.66666666666666663,0.0666666666666666657],"xyz":[0.199546297670631867,0.316139571703459799,0.055810211351186155],"hpluv":[115.156040801232848,161.439702186697787,63.0225323172591345],"hsluv":[115.156040801232848,97.8915472494395,63.0225323172591345]},"#66aa22":{"lch":[63.0849851082382287,77.7526522520100372,115.919582231606014],"luv":[63.0849851082382287,-33.9864002990590066,69.9313915701248],"rgb":[0.4,0.66666666666666663,0.133333333333333331],"xyz":[0.201421655809108868,0.316889714958850599,0.0656870975471653545],"hpluv":[115.919582231606014,156.397041701241,63.0849851082382287],"hsluv":[115.919582231606014,94.0329763727763748,63.0849851082382287]},"#66aa33":{"lch":[63.1875983682703577,73.8659889058236416,117.258215410479664],"luv":[63.1875983682703577,-33.8307250746429062,65.6632801340230827],"rgb":[0.4,0.66666666666666663,0.2],"xyz":[0.20450940654156663,0.318124815251833726,0.0819492514047764908],"hpluv":[117.258215410479664,148.337854737344315,63.1875983682703577],"hsluv":[117.258215410479664,87.8175568215645228,63.1875983682703577]},"#66aa44":{"lch":[63.3352806074861121,68.495891054581449,119.389904478135335],"luv":[63.3352806074861121,-33.6143748396710436,59.6804900742209057],"rgb":[0.4,0.66666666666666663,0.266666666666666663],"xyz":[0.208967401785785489,0.319908013349521292,0.105428026357663129],"hpluv":[119.389904478135335,137.232870385557277,63.3352806074861121],"hsluv":[119.389904478135335,79.1339200396795093,63.3352806074861121]},"#66aa55":{"lch":[63.5319451116367162,61.7628687774086131,122.670093374403834],"luv":[63.5319451116367162,-33.3396585938880747,51.9915293529473],"rgb":[0.4,0.66666666666666663,0.333333333333333315],"xyz":[0.214929815825147474,0.322292978965266153,0.136830073631637045],"hpluv":[122.670093374403834,123.360077774302084,63.5319451116367162],"hsluv":[122.670093374403834,68.0252461175988401,63.5319451116367162]},"#66aa66":{"lch":[63.7807317293932101,53.9656100581627314,127.715012949238869],"luv":[63.7807317293932101,-33.0126168434810836,42.6902119706049703],"rgb":[0.4,0.66666666666666663,0.4],"xyz":[0.22251481159865566,0.325326977274669471,0.176777718038781],"hpluv":[127.715012949238869,107.366036241042551,63.7807317293932101],"hsluv":[127.715012949238869,54.6684489206366493,63.7807317293932101]},"#66aa77":{"lch":[64.0841229578331308,45.668717811445795,135.623736827110406],"luv":[64.0841229578331308,-32.6422859505805931,31.9392071670853355],"rgb":[0.4,0.66666666666666663,0.466666666666666674],"xyz":[0.231828824618857565,0.329052582482750267,0.225831519945178916],"hpluv":[135.623736827110406,90.428994130424627,64.0841229578331308],"hsluv":[135.623736827110406,56.3153951517164302,64.0841229578331308]},"#66aa88":{"lch":[64.4440140424290888,37.9133385548872752,148.25026899586868],"luv":[64.4440140424290888,-32.239785461804118,19.9503752785341248],"rgb":[0.4,0.66666666666666663,0.533333333333333326],"xyz":[0.242969241720801421,0.333508749323527864,0.284504383348751055],"hpluv":[148.25026899586868,74.65325904191441,64.4440140424290888],"hsluv":[148.25026899586868,58.1346686170252127,64.4440140424290888]},"#66aa99":{"lch":[64.861761772217136,32.5704605989434484,167.654678216446086],"luv":[64.861761772217136,-31.8173259789585323,6.96366793981576304],"rgb":[0.4,0.66666666666666663,0.6],"xyz":[0.256026205829874121,0.338731534967157,0.353271060989869],"hpluv":[167.654678216446086,63.7198120272805681,64.861761772217136],"hsluv":[167.654678216446086,60.083023100845935,64.861761772217136]},"#66aaaa":{"lch":[65.3382237636027,32.1097126044189949,192.177050630060876],"luv":[65.3382237636027,-31.387258852500235,-6.77300710648746396],"rgb":[0.4,0.66666666666666663,0.66666666666666663],"xyz":[0.271083898795126677,0.344754612153258144,0.432574910606867591],"hpluv":[192.177050630060876,62.3603323483304592,65.3382237636027],"hsluv":[192.177050630060876,62.1162357127798757,65.3382237636027]},"#66aabb":{"lch":[65.8737942906507641,37.4229485671739255,214.174175962111633],"luv":[65.8737942906507641,-30.9612713447490577,-21.020864781881972],"rgb":[0.4,0.66666666666666663,0.733333333333333282],"xyz":[0.288221490902463295,0.351609648996192903,0.522832895705509282],"hpluv":[214.174175962111633,72.0882777495769744,65.8737942906507641],"hsluv":[214.174175962111633,64.192083786910942,65.8737942906507641]},"#66aacc":{"lch":[66.4684397846860833,46.8829891397435361,229.336310284400895],"luv":[66.4684397846860833,-30.5497910563422188,-35.5629714322516],"rgb":[0.4,0.66666666666666663,0.8],"xyz":[0.30751386634618505,0.359326599173681704,0.624439406375779438],"hpluv":[229.336310284400895,89.5033179536005,66.4684397846860833],"hsluv":[229.336310284400895,66.2725553364081748,66.4684397846860833]},"#66aadd":{"lch":[67.1217354618507471,58.5746749070863473,239.007496148652194],"luv":[67.1217354618507471,-30.1616186688116876,-50.2122425285710676],"rgb":[0.4,0.66666666666666663,0.866666666666666696],"xyz":[0.329032191896818593,0.367933929393935211,0.737769254275785435],"hpluv":[239.007496148652194,110.735287258409116,67.1217354618507471],"hsluv":[239.007496148652194,68.3252248927570349,67.1217354618507471]},"#66aaee":{"lch":[67.8329035309127,71.3390505041132,245.305718817638592],"luv":[67.8329035309127,-29.803771094245274,-64.8150858627082584],"rgb":[0.4,0.66666666666666663,0.933333333333333348],"xyz":[0.352844372162993358,0.377458801500405228,0.863180070344308659],"hpluv":[245.305718817638592,133.452355648257935,67.8329035309127],"hsluv":[245.305718817638592,80.362890995181445,67.8329035309127]},"#66aaff":{"lch":[68.6008528128324144,84.5574659264264312,249.594848961048797],"luv":[68.6008528128324144,-29.4814940521041038,-79.2515397475312],"rgb":[0.4,0.66666666666666663,1],"xyz":[0.379015420572824724,0.387927220864337952,1.00101425863609061],"hpluv":[249.594848961048797,156.409011428865199,68.6008528128324144],"hsluv":[249.594848961048797,99.9999999999981,68.6008528128324144]},"#112200":{"lch":[11.0156269675282488,14.1286449823385087,113.920199516574741],"luv":[11.0156269675282488,-5.72865521459208082,12.9151507335100835],"rgb":[0.0666666666666666657,0.133333333333333331,0],"xyz":[0.00803163592779996757,0.0126319728938838038,0.00201503147454941628],"hpluv":[113.920199516574741,162.753605553330914,11.0156269675282488],"hsluv":[113.920199516574741,100.000000000002302,11.0156269675282488]},"#112211":{"lch":[11.3010826742418828,9.17677244733547,127.715012949238741],"luv":[11.3010826742418828,-5.61374683501564142,7.25940762201209555],"rgb":[0.0666666666666666657,0.133333333333333331,0.0666666666666666657],"xyz":[0.00904330142743709,0.0130366390937386584,0.00734313643930504731],"hpluv":[127.715012949238741,103.040803658029205,11.3010826742418828],"hsluv":[127.715012949238741,52.4661346244892783,11.3010826742418828]},"#112222":{"lch":[11.8149934741043623,5.60956124878379736,192.177050630060876],"luv":[11.8149934741043623,-5.48334870304322308,-1.18324317225625331],"rgb":[0.0666666666666666657,0.133333333333333331,0.133333333333333331],"xyz":[0.0109186595659141079,0.0137867823491294762,0.0172200226352842434],"hpluv":[192.177050630060876,60.2469040904941551,11.8149934741043623],"hsluv":[192.177050630060876,60.0110800331641911,11.8149934741043623]},"#112233":{"lch":[12.6219648570067733,12.7575995118883281,244.93155638428982],"luv":[12.6219648570067733,-5.40540262923445,-11.5558629154900672],"rgb":[0.0666666666666666657,0.133333333333333331,0.2],"xyz":[0.0140064102983718484,0.0150218826421125891,0.0334821764928953866],"hpluv":[244.93155638428982,128.257072990564865,12.6219648570067733],"hsluv":[244.93155638428982,68.2965554989448265,12.6219648570067733]},"#112244":{"lch":[13.7124312845167182,23.0561698733830092,256.354402060867073],"luv":[13.7124312845167182,-5.43930918870511082,-22.4053762472305387],"rgb":[0.0666666666666666657,0.133333333333333331,0.266666666666666663],"xyz":[0.0184644055425907255,0.0168050807398001656,0.0569609514457820251],"hpluv":[256.354402060867073,213.359519949101497,13.7124312845167182],"hsluv":[256.354402060867073,75.5965994738604508,13.7124312845167182]},"#112255":{"lch":[15.056320299603339,33.5848303856462849,260.40485184836416],"luv":[15.056320299603339,-5.59809589119781581,-33.114983835502386],"rgb":[0.0666666666666666657,0.133333333333333331,0.333333333333333315],"xyz":[0.024426819581952721,0.019190046355545,0.0883629987197559336],"hpluv":[260.40485184836416,283.050313811336878,15.056320299603339],"hsluv":[260.40485184836416,81.3424686793067,15.056320299603339]},"#112266":{"lch":[16.6136212231118279,43.9645077489691118,262.329755848243337],"luv":[16.6136212231118279,-5.86800935048734384,-43.5711419160865958],"rgb":[0.0666666666666666657,0.133333333333333331,0.4],"xyz":[0.0320118153554608958,0.02222404466494831,0.128310643126899909],"hpluv":[262.329755848243337,335.797328537363626,16.6136212231118279],"hsluv":[262.329755848243337,85.6428490187558396,16.6136212231118279]},"#112277":{"lch":[18.3427569840269769,54.1821774694947678,263.400149453671133],"luv":[18.3427569840269769,-6.22740469049246936,-53.8231157232341815],"rgb":[0.0666666666666666657,0.133333333333333331,0.466666666666666674],"xyz":[0.0413258283756628153,0.0259496498730291264,0.177364445033297818],"hpluv":[263.400149453671133,374.827260372181627,18.3427569840269769],"hsluv":[263.400149453671133,88.8099744527525559,18.3427569840269769]},"#112288":{"lch":[20.2056943122802366,64.2803592359499,264.056887374403459],"luv":[20.2056943122802366,-6.65565132438349316,-63.9348644242795103],"rgb":[0.0666666666666666657,0.133333333333333331,0.533333333333333326],"xyz":[0.0524662454776066434,0.0304058167138067173,0.236037308436869986],"hpluv":[264.056887374403459,403.686144257890874,20.2056943122802366],"hsluv":[264.056887374403459,91.1461001738222762,20.2056943122802366]},"#112299":{"lch":[22.17018380613613,74.2918952905243799,264.488199331991609],"luv":[22.17018380613613,-7.13579321215933149,-73.9484020185124677],"rgb":[0.0666666666666666657,0.133333333333333331,0.6],"xyz":[0.0655232095866793568,0.0356286023574358818,0.304803986077987865],"hpluv":[264.488199331991609,425.217833826531262,22.17018380613613],"hsluv":[264.488199331991609,92.8866294242426136,22.17018380613613]},"#1122aa":{"lch":[24.2101316823922517,84.2333021684004848,264.786067280823943],"luv":[24.2101316823922517,-7.6546801533155886,-83.8847725510625537],"rgb":[0.0666666666666666657,0.133333333333333331,0.66666666666666663],"xyz":[0.0805809025519319,0.0416516795435369833,0.384107835694986466],"hpluv":[264.786067280823943,441.495215422381477,24.2101316823922517],"hsluv":[264.786067280823943,94.2012423737010209,24.2101316823922517]},"#1122bb":{"lch":[26.3050242232650149,94.1101405136049891,264.999933480500431],"luv":[26.3050242232650149,-8.20234804116949334,-93.7520134935884926],"rgb":[0.0666666666666666657,0.133333333333333331,0.733333333333333282],"xyz":[0.0977184946592685455,0.0485067163864717418,0.474365820793628212],"hpluv":[264.999933480500431,453.98033637772636,26.3050242232650149],"hsluv":[264.999933480500431,95.2089691602506605,26.3050242232650149]},"#1122cc":{"lch":[28.4390102065576187,103.92243186966887,265.158337172634162],"luv":[28.4390102065576187,-8.77130520241401612,-103.551610565708117],"rgb":[0.0666666666666666657,0.133333333333333331,0.8],"xyz":[0.117010870102990286,0.0562236665639605435,0.575972331463898368],"hpluv":[265.158337172634162,463.69685512523705,28.4390102065576187],"hsluv":[265.158337172634162,95.9928942328389496,28.4390102065576187]},"#1122dd":{"lch":[30.599961250020371,113.668086087716972,265.278693166229971],"luv":[30.599961250020371,-9.35592092097037664,-113.282392888591403],"rgb":[0.0666666666666666657,0.133333333333333331,0.866666666666666696],"xyz":[0.138529195653623816,0.0648309967842140705,0.689302179363904366],"hpluv":[265.278693166229971,471.364637015548908,30.599961250020371],"hsluv":[265.278693166229971,96.6113336559982,30.599961250020371]},"#1122ee":{"lch":[32.7786459144851463,123.344693870669801,265.37211393361406],"luv":[32.7786459144851463,-9.95194954038693247,-122.942556531067964],"rgb":[0.0666666666666666657,0.133333333333333331,0.933333333333333348],"xyz":[0.162341375919798553,0.0743558688906841,0.814712995432427589],"hpluv":[265.37211393361406,477.494956838131543,32.7786459144851463],"hsluv":[265.37211393361406,97.1056530386567118,32.7786459144851463]},"#1122ff":{"lch":[34.9680553815075,132.950321242967135,265.445956583698],"luv":[34.9680553815075,-10.5561742154436597,-132.530581770930752],"rgb":[0.0666666666666666657,0.133333333333333331,1],"xyz":[0.188512424329629946,0.0848242882546168114,0.952547183724209434],"hpluv":[265.445956583698,482.455471693424897,34.9680553815075],"hsluv":[265.445956583698,99.9999999999995595,34.9680553815075]},"#66bb00":{"lch":[68.2883247343563,91.0397787832552297,117.384795663234385],"luv":[68.2883247343563,-41.875036539852637,80.8376313092488914],"rgb":[0.4,0.733333333333333282,0],"xyz":[0.232489130079593515,0.383643901320803504,0.0618002723559631373],"hpluv":[117.384795663234385,169.170277477244,68.2883247343563],"hsluv":[117.384795663234385,100.000000000002402,68.2883247343563]},"#66bb11":{"lch":[68.3179499939719079,89.8644626985519466,117.727722441428654],"luv":[68.3179499939719079,-41.8112733484955896,79.5452014710932644],"rgb":[0.4,0.733333333333333282,0.0666666666666666657],"xyz":[0.233500795579230647,0.384048567520658357,0.0671283773207187739],"hpluv":[117.727722441428654,166.91389144855998,68.3179499939719079],"hsluv":[117.727722441428654,98.2613130840239108,68.3179499939719079]},"#66bb22":{"lch":[68.3728123300379309,87.7153655991844374,118.381366327960222],"luv":[68.3728123300379309,-41.6944557120635579,77.1722600749346839],"rgb":[0.4,0.733333333333333282,0.133333333333333331],"xyz":[0.235376153717707648,0.384798710776049158,0.0770052635166979665],"hpluv":[118.381366327960222,162.791438416492724,68.3728123300379309],"hsluv":[118.381366327960222,95.072259168186676,68.3728123300379309]},"#66bb33":{"lch":[68.4629872592027766,84.2604886941914515,119.511012469656151],"luv":[68.4629872592027766,-41.5059446288263274,73.3286200296498691],"rgb":[0.4,0.733333333333333282,0.2],"xyz":[0.238463904450165409,0.386033811069032284,0.0932674173743091],"hpluv":[119.511012469656151,156.173540237969377,68.4629872592027766],"hsluv":[119.511012469656151,89.9157079277594846,68.4629872592027766]},"#66bb44":{"lch":[68.5928402387875451,79.4555052917154683,121.268984442668796],"luv":[68.5928402387875451,-41.2418962487648457,67.9137932600435761],"rgb":[0.4,0.733333333333333282,0.266666666666666663],"xyz":[0.242921899694384269,0.38781700916671985,0.116746192327195741],"hpluv":[121.268984442668796,146.988898097842537,68.5928402387875451],"hsluv":[121.268984442668796,82.6706505658268,68.5928402387875451]},"#66bb55":{"lch":[68.7658933773114711,73.3682686647690474,123.883282583110088],"luv":[68.7658933773114711,-40.9030232283392365,60.9085013577552417],"rgb":[0.4,0.733333333333333282,0.333333333333333315],"xyz":[0.248884313733746254,0.390201974782464711,0.148148239601169657],"hpluv":[123.883282583110088,135.386233996967292,68.7658933773114711],"hsluv":[123.883282583110088,73.3323147762666565,68.7658933773114711]},"#66bb66":{"lch":[68.985024233854773,66.1955602149500493,127.715012949239338],"luv":[68.985024233854773,-40.4940973290304953,52.3648763359380354],"rgb":[0.4,0.733333333333333282,0.4],"xyz":[0.256469309507254439,0.39323597309186803,0.188095884008313619],"hpluv":[127.715012949239338,121.76244699215377,68.985024233854773],"hsluv":[127.715012949239338,61.9987879490855889,68.985024233854773]},"#66bb77":{"lch":[69.2525700917713,58.3030977404443149,133.351332140289912],"luv":[69.2525700917713,-40.0233333378199134,42.395565742911792],"rgb":[0.4,0.733333333333333282,0.466666666666666674],"xyz":[0.265783322527456345,0.396961578299948825,0.237149685914711528],"hpluv":[133.351332140289912,106.830450835327468,69.2525700917713],"hsluv":[133.351332140289912,63.1630001095548,69.2525700917713]},"#66bb88":{"lch":[69.5703900447947632,50.3125315521488901,141.732198444264128],"luv":[69.5703900447947632,-39.5016033478381487,31.1604583428427624],"rgb":[0.4,0.733333333333333282,0.533333333333333326],"xyz":[0.276923739629400201,0.401417745140726423,0.295822549318283667],"hpluv":[141.732198444264128,91.7679559652102625,69.5703900447947632],"hsluv":[141.732198444264128,64.4651291783298888,69.5703900447947632]},"#66bb99":{"lch":[69.9399065468101924,43.264635747530761,154.168279853010262],"luv":[69.9399065468101924,-38.9415329854338594,18.8516767188195544],"rgb":[0.4,0.733333333333333282,0.6],"xyz":[0.2899807037384729,0.406640530784355581,0.364589226959401602],"hpluv":[154.168279853010262,78.4959645714096865,69.9399065468101924],"hsluv":[154.168279853010262,65.8787579381207848,69.9399065468101924]},"#66bbaa":{"lch":[70.3621368583926881,38.7745898249838348,171.579209782291855],"luv":[70.3621368583926881,-38.3565710720190296,5.67822786553099768],"rgb":[0.4,0.733333333333333282,0.66666666666666663],"xyz":[0.305038396703725456,0.412663607970456703,0.443893076576400203],"hpluv":[171.579209782291855,69.9274221790226278,70.3621368583926881],"hsluv":[171.579209782291855,67.37547943529961,70.3621368583926881]},"#66bbbb":{"lch":[70.8377198879813221,38.6292683935386592,192.177050630060933],"luv":[70.8377198879813221,-37.7601276376370194,-8.14819841495072161],"rgb":[0.4,0.733333333333333282,0.733333333333333282],"xyz":[0.322175988811062075,0.419518644813391461,0.534151061675042],"hpluv":[192.177050630060933,69.1976324805594629,70.8377198879813221],"hsluv":[192.177050630060933,68.9267726464228758,70.8377198879813221]},"#66bbcc":{"lch":[71.3669414392261103,43.4063518114314,211.106579982723787],"luv":[71.3669414392261103,-37.1648552128157,-22.4250956427882215],"rgb":[0.4,0.733333333333333282,0.8],"xyz":[0.341468364254783829,0.427235594990880263,0.635757572345312161],"hpluv":[211.106579982723787,77.1783568223693806,71.3669414392261103],"hsluv":[211.106579982723787,70.5055674968506736,71.3669414392261103]},"#66bbdd":{"lch":[71.9497594848613602,52.0084901368895629,225.300588521911806],"luv":[71.9497594848613602,-36.5821167433876298,-36.9679831866995059],"rgb":[0.4,0.733333333333333282,0.866666666666666696],"xyz":[0.362986689805417373,0.435842925211133769,0.749087420245318159],"hpluv":[225.300588521911806,91.724261948179759,71.9497594848613602],"hsluv":[225.300588521911806,72.0874065633031336,71.9497594848613602]},"#66bbee":{"lch":[72.5858302461357852,62.9426478584387183,235.089705553804919],"luv":[72.5858302461357852,-36.0216507769597953,-51.6160594653851135],"rgb":[0.4,0.733333333333333282,0.933333333333333348],"xyz":[0.386798870071592082,0.445367797317603786,0.874498236313841382],"hpluv":[235.089705553804919,110.035415213757233,72.5858302461357852],"hsluv":[235.089705553804919,76.908955535231712,72.5858302461357852]},"#66bbff":{"lch":[73.2745353232689638,75.1445669264803513,241.815748730615525],"luv":[73.2745353232689638,-35.4914181095182641,-66.2349241650025817],"rgb":[0.4,0.733333333333333282,1],"xyz":[0.412969918481423504,0.45583621668153651,1.01233242460562312],"hpluv":[241.815748730615525,130.131920555189879,73.2745353232689638],"hsluv":[241.815748730615525,99.9999999999976552,73.2745353232689638]},"#113300":{"lch":[17.8585390793191152,25.0449080182821966,121.332554648991049],"luv":[17.8585390793191152,-13.0234653569097247,21.3924465113644295],"rgb":[0.0666666666666666657,0.2,0],"xyz":[0.0141493580168107792,0.0248674170719056023,0.00405427217088629669],"hpluv":[121.332554648991049,177.956083469309505,17.8585390793191152],"hsluv":[121.332554648991049,100.000000000002288,17.8585390793191152]},"#113311":{"lch":[18.041211184449395,20.8015074137336562,127.715012949239792],"luv":[18.041211184449395,-12.7249964056056086,16.4553084796651738],"rgb":[0.0666666666666666657,0.2,0.0666666666666666657],"xyz":[0.015161023516447901,0.0252720832717604552,0.00938237713564192902],"hpluv":[127.715012949239792,146.308124837666583,18.041211184449395],"hsluv":[127.715012949239792,74.4969128915689254,18.041211184449395]},"#113322":{"lch":[18.3747440863758129,14.8635488733567129,145.575764327225926],"luv":[18.3747440863758129,-12.2605616690393529,8.40260154180516672],"rgb":[0.0666666666666666657,0.2,0.133333333333333331],"xyz":[0.0170363816549249196,0.0260222265271512765,0.0192592633316211251],"hpluv":[145.575764327225926,102.645648490479701,18.3747440863758129],"hsluv":[145.575764327225926,76.8412554017051,18.3747440863758129]},"#113333":{"lch":[18.910205854271,11.9516732098830207,192.177050630061075],"luv":[18.910205854271,-11.6827660646039035,-2.5210056714682163],"rgb":[0.0666666666666666657,0.2,0.2],"xyz":[0.0201241323873826601,0.0272573268201343893,0.0355214171892322683],"hpluv":[192.177050630061075,80.19952200231,18.910205854271],"hsluv":[192.177050630061075,79.885597544945341,18.910205854271]},"#113344":{"lch":[19.6554681695294136,18.5554908550806559,233.185939638237187],"luv":[19.6554681695294136,-11.1188227079461566,-14.8552355236207116],"rgb":[0.0666666666666666657,0.2,0.266666666666666663],"xyz":[0.0245821276316015372,0.0290405249178219624,0.0590001921421189068],"hpluv":[233.185939638237187,119.79215597403514,19.6554681695294136],"hsluv":[233.185939638237187,83.0941728600946163,19.6554681695294136]},"#113355":{"lch":[20.6059777210847557,29.4541985213363553,248.778672986371305],"luv":[20.6059777210847557,-10.6615827984222822,-27.4568837045772334],"rgb":[0.0666666666666666657,0.2,0.333333333333333315],"xyz":[0.0305445416709635327,0.0314254905335667953,0.0904022394160928222],"hpluv":[248.778672986371305,181.381634101163,20.6059777210847557],"hsluv":[248.778672986371305,86.0667890851332089,20.6059777210847557]},"#113366":{"lch":[21.7480278014825927,41.0513772817531262,255.392805777322508],"luv":[21.7480278014825927,-10.3527823296753354,-39.7244946445288178],"rgb":[0.0666666666666666657,0.2,0.4],"xyz":[0.0381295374444717075,0.0344594888429701068,0.130349883823236784],"hpluv":[255.392805777322508,239.522976201191227,21.7480278014825927],"hsluv":[255.392805777322508,88.6137215649990537,21.7480278014825927]},"#113377":{"lch":[23.0621320749224097,52.4639032010768602,258.793139915612699],"luv":[23.0621320749224097,-10.1964540550792755,-51.4635158514711293],"rgb":[0.0666666666666666657,0.2,0.466666666666666674],"xyz":[0.04744355046467362,0.0381850940510509232,0.179403685729634693],"hpluv":[258.793139915612699,288.669213908808,23.0621320749224097],"hsluv":[258.793139915612699,90.7010140503724926,23.0621320749224097]},"#113388":{"lch":[24.5260866455155693,63.5079254673071389,260.778240759541745],"luv":[24.5260866455155693,-10.1775299952298717,-62.6871157444433322],"rgb":[0.0666666666666666657,0.2,0.533333333333333326],"xyz":[0.0585839675666174481,0.0426412608918285141,0.238076549133206861],"hpluv":[260.778240759541745,328.5783880762134,24.5260866455155693],"hsluv":[260.778240759541745,92.3732755032704,24.5260866455155693]},"#113399":{"lch":[26.1173586094444445,74.1961224571638667,262.040130643645512],"luv":[26.1173586094444445,-10.2746398160742789,-73.4812653968914447],"rgb":[0.0666666666666666657,0.2,0.6],"xyz":[0.0716409316756901615,0.0478640465354576786,0.30684322677432474],"hpluv":[262.040130643645512,360.488391101723778,26.1173586094444445],"hsluv":[262.040130643645512,93.700931793532277,26.1173586094444445]},"#1133aa":{"lch":[27.8146812937100378,84.589542856674214,262.892366774415223],"luv":[27.8146812937100378,-10.4665753413372666,-83.9395113240792767],"rgb":[0.0666666666666666657,0.2,0.66666666666666663],"xyz":[0.0866986246409427,0.0538871237215587801,0.386147076391323341],"hpluv":[262.892366774415223,385.906342473210088,27.8146812937100378],"hsluv":[262.892366774415223,94.7540719156047544,27.8146812937100378]},"#1133bb":{"lch":[29.5989386642012917,94.7497677250031245,263.494633441352278],"luv":[29.5989386642012917,-10.734795769033445,-94.1396974912241],"rgb":[0.0666666666666666657,0.2,0.733333333333333282],"xyz":[0.10383621674827935,0.0607421605644935386,0.476405061489965087],"hpluv":[263.494633441352278,406.201330660618282,29.5989386642012917],"hsluv":[263.494633441352278,95.59270717643426,29.5989386642012917]},"#1133cc":{"lch":[31.4535171675710927,104.725970292241058,263.935552719695806],"luv":[31.4535171675710927,-11.0639900580249932,-104.139891384844844],"rgb":[0.0666666666666666657,0.2,0.8],"xyz":[0.123128592192001091,0.0684591107419823403,0.578011572160235243],"hpluv":[263.935552719695806,422.497850271701509,31.4535171675710927],"hsluv":[263.935552719695806,96.2648935085394299,31.4535171675710927]},"#1133dd":{"lch":[33.3643121953656845,114.554023382916327,264.267643395871801],"luv":[33.3643121953656845,-11.4418472625073555,-113.981175658242762],"rgb":[0.0666666666666666657,0.2,0.866666666666666696],"xyz":[0.144646917742634634,0.0770664409622358743,0.691341420060241241],"hpluv":[264.267643395871801,435.679872957086786,33.3643121953656845],"hsluv":[264.267643395871801,96.8079128297289913,33.3643121953656845]},"#1133ee":{"lch":[35.3195411096734375,124.259061611723823,264.523680461367292],"luv":[35.3195411096734375,-11.8585821660500468,-123.691909281234786],"rgb":[0.0666666666666666657,0.2,0.933333333333333348],"xyz":[0.168459098008809371,0.0865913130687059,0.816752236128764464],"hpluv":[264.523680461367292,446.428943593210363,35.3195411096734375],"hsluv":[264.523680461367292,97.2502875158067752,35.3195411096734375]},"#1133ff":{"lch":[37.3094684856901466,133.858437412957159,264.724991571549936],"luv":[37.3094684856901466,-12.3064438760062309,-133.291532760957],"rgb":[0.0666666666666666657,0.2,1],"xyz":[0.194630146418640765,0.0970597324326386,0.954586424420546309],"hpluv":[264.724991571549936,455.266836240216,37.3094684856901466],"hsluv":[264.724991571549936,99.9999999999995168,37.3094684856901466]},"#66cc00":{"lch":[73.5514640948473328,100.417876322708906,119.311479215942285],"luv":[73.5514640948473328,-49.1602904566029579,87.5614968315714322],"rgb":[0.4,0.8,0],"xyz":[0.270712873389210462,0.460091387940038399,0.0745415201258350923],"hpluv":[119.311479215942285,173.244332851636557,73.5514640948473328],"hsluv":[119.311479215942285,100.00000000000226,73.5514640948473328]},"#66cc11":{"lch":[73.5777109322390572,99.3703085818509,119.605548775623987],"luv":[73.5777109322390572,-49.0915230219986611,86.397225621155485],"rgb":[0.4,0.8,0.0666666666666666657],"xyz":[0.271724538888847567,0.460496054139893252,0.079869625090590729],"hpluv":[119.605548775623987,171.375877908330068,73.5777109322390572],"hsluv":[119.605548775623987,98.5479766016144652,73.5777109322390572]},"#66cc22":{"lch":[73.626324929263788,97.4510710028789333,120.162888823436575],"luv":[73.626324929263788,-48.965269014871545,84.2562381661406192],"rgb":[0.4,0.8,0.133333333333333331],"xyz":[0.273599897027324623,0.461246197395284052,0.0897465112865699216],"hpluv":[120.162888823436575,167.954954584373922,73.626324929263788],"hsluv":[120.162888823436575,95.8800576342850377,73.626324929263788]},"#66cc33":{"lch":[73.7062524827218084,94.3550745227874,121.116489614327122],"luv":[73.7062524827218084,-48.7607908304490252,80.779114663321],"rgb":[0.4,0.8,0.2],"xyz":[0.276687647759782329,0.462481297688267179,0.106008665144181058],"hpluv":[121.116489614327122,162.442721914772306,73.7062524827218084],"hsluv":[121.116489614327122,91.5533619475712896,73.7062524827218084]},"#66cc44":{"lch":[73.8213986639243,90.0253172969507318,122.577193203242018],"luv":[73.8213986639243,-48.472817822786439,75.8613451418811451],"rgb":[0.4,0.8,0.266666666666666663],"xyz":[0.281145643004001244,0.464264495785954745,0.129487440097067696],"hpluv":[122.577193203242018,154.746814564283426,73.8213986639243],"hsluv":[122.577193203242018,85.4474048693987527,73.8213986639243]},"#66cc55":{"lch":[73.974942724102462,84.4934421806047879,124.700104619680829],"luv":[73.974942724102462,-48.100513339115345,69.4656921655632118],"rgb":[0.4,0.8,0.333333333333333315],"xyz":[0.28710805704336323,0.466649461401699606,0.160889487371041612],"hpluv":[124.700104619680829,144.936474170198323,73.974942724102462],"hsluv":[124.700104619680829,77.5306238992907,73.974942724102462]},"#66cc66":{"lch":[74.1695172801941567,77.8884466842553564,127.715012949239551],"luv":[74.1695172801941567,-47.6470375142611218,61.6146893443493937],"rgb":[0.4,0.8,0.4],"xyz":[0.294693052816871415,0.469683459711102924,0.200837131778185574],"hpluv":[127.715012949239551,133.256044234036153,74.1695172801941567],"hsluv":[127.715012949239551,67.8510775159793,74.1695172801941567]},"#66cc77":{"lch":[74.407302734023375,70.4570986939790203,131.971622948486811],"luv":[74.407302734023375,-47.1190629819757234,52.3831715350808551],"rgb":[0.4,0.8,0.466666666666666674],"xyz":[0.30400706583707332,0.47340906491918372,0.249890933684583483],"hpluv":[131.971622948486811,120.156846155807528,74.407302734023375],"hsluv":[131.971622948486811,68.6882673601907499,74.407302734023375]},"#66cc88":{"lch":[74.6900832163393602,62.6050444414555045,138.002106903522986],"luv":[74.6900832163393602,-46.5261552249599859,41.8892404980031543],"rgb":[0.4,0.8,0.533333333333333326],"xyz":[0.315147482939017121,0.477865231759961318,0.308563797088155622],"hpluv":[138.002106903522986,106.361808066007058,74.6900832163393602],"hsluv":[138.002106903522986,69.6340873295455367,74.6900832163393602]},"#66cc99":{"lch":[75.0192831982140405,54.9734389641357382,146.572693391746668],"luv":[75.0192831982140405,-45.8800303566060634,30.2836887782922481],"rgb":[0.4,0.8,0.6],"xyz":[0.32820444704808982,0.483088017403590475,0.377330474729273557],"hpluv":[146.572693391746668,92.9863760296957338,75.0192831982140405],"hsluv":[146.572693391746668,70.6723780843603,75.0192831982140405]},"#66ccaa":{"lch":[75.3959940236094,48.5503126646653,158.569930493367366],"luv":[75.3959940236094,-45.1937477629490587,17.7386026218441692],"rgb":[0.4,0.8,0.66666666666666663],"xyz":[0.343262140013342376,0.489111094589691597,0.456634324346272158],"hpluv":[158.569930493367366,81.7114817988577187,75.3959940236094],"hsluv":[158.569930493367366,71.7849539596152368,75.3959940236094]},"#66ccbb":{"lch":[75.8209952994642,44.7015709258060667,174.304687468137473],"luv":[75.8209952994642,-44.4809102105153755,4.43610979112772],"rgb":[0.4,0.8,0.733333333333333282],"xyz":[0.360399732120679051,0.495966131432626356,0.546892309444913849],"hpluv":[174.304687468137473,74.8122352806046109,75.8209952994642],"hsluv":[174.304687468137473,72.9527506991265113,75.8209952994642]},"#66cccc":{"lch":[76.2947739303160262,44.7620652034609634,192.177050630061018],"luv":[76.2947739303160262,-43.7549393425641924,-9.44180938207391],"rgb":[0.4,0.8,0.8],"xyz":[0.379692107564400749,0.503683081610115102,0.648498820115184],"hpluv":[192.177050630061018,75.6461904464395,76.2947739303160262],"hsluv":[192.177050630061018,74.1568646821725679,76.2947739303160262]},"#66ccdd":{"lch":[76.8175423984245782,49.1342213212598082,208.868111129197587],"luv":[76.8175423984245782,-43.0284772118039101,-23.7217590764220851],"rgb":[0.4,0.8,0.866666666666666696],"xyz":[0.401210433115034348,0.512290411830368719,0.76182866801519],"hpluv":[208.868111129197587,85.3113130970085791,76.8175423984245782],"hsluv":[208.868111129197587,75.3794120212671714,76.8175423984245782]},"#66ccee":{"lch":[77.3892571801628435,57.0358051623713038,222.109360872917676],"luv":[77.3892571801628435,-42.312941633688304,-38.245235531031426],"rgb":[0.4,0.8,0.933333333333333348],"xyz":[0.425022613381209058,0.521815283936838736,0.887239484083713226],"hpluv":[222.109360872917676,102.061631830010029,77.3892571801628435],"hsluv":[222.109360872917676,76.6041682601332923,77.3892571801628435]},"#66ccff":{"lch":[78.0096377377628158,67.2874731922355664,231.792303901557148],"luv":[78.0096377377628158,-41.6182406850010267,-52.872734853430309],"rgb":[0.4,0.8,1],"xyz":[0.451193661791040479,0.53228370330077146,1.02507367237549518],"hpluv":[231.792303901557148,124.498094909356865,78.0096377377628158],"hsluv":[231.792303901557148,99.9999999999966604,78.0096377377628158]},"#114400":{"lch":[24.4916204196936391,35.767443133059956,124.131260038140155],"luv":[24.4916204196936391,-20.0687794552527912,29.6066559991685239],"rgb":[0.0666666666666666657,0.266666666666666663,0],"xyz":[0.0229819284997768124,0.0425325580378379114,0.00699846233187489172],"hpluv":[124.131260038140155,185.314627891622,24.4916204196936391],"hsluv":[124.131260038140155,100.000000000002416,24.4916204196936391]},"#114411":{"lch":[24.6196313539200702,32.2821952767626144,127.715012949240105],"luv":[24.6196313539200702,-19.7481274165088401,25.5372589646650674],"rgb":[0.0666666666666666657,0.266666666666666663,0.0666666666666666657],"xyz":[0.0239935939994139341,0.0429372242376927643,0.0123265672966305223],"hpluv":[127.715012949240105,166.387555424049935,24.6196313539200702],"hsluv":[127.715012949240105,84.7209219338948,24.6196313539200702]},"#114422":{"lch":[24.8548180969752792,26.7199561105771828,135.968420687644709],"luv":[24.8548180969752792,-19.2104947057918238,18.5718321042894203],"rgb":[0.0666666666666666657,0.266666666666666663,0.133333333333333331],"xyz":[0.0258689521378909527,0.0436873674930835856,0.0222034534926097184],"hpluv":[135.968420687644709,136.415738329938534,24.8548180969752792],"hsluv":[135.968420687644709,85.5945702875542338,24.8548180969752792]},"#114433":{"lch":[25.2362525898650887,20.3101465248311648,155.348193219538018],"luv":[25.2362525898650887,-18.4590663004995292,8.4714180143512],"rgb":[0.0666666666666666657,0.266666666666666663,0.2],"xyz":[0.0289567028703486933,0.0449224677860667,0.0384656073502208651],"hpluv":[155.348193219538018,102.123929581721498,25.2362525898650887],"hsluv":[155.348193219538018,86.8340768870874911,25.2362525898650887]},"#114444":{"lch":[25.774812755707849,18.0038630185053101,192.177050630061132],"luv":[25.774812755707849,-17.5987843886529483,-3.79761393914762779],"rgb":[0.0666666666666666657,0.266666666666666663,0.266666666666666663],"xyz":[0.0334146981145675703,0.0467056658837542715,0.0619443823031075036],"hpluv":[192.177050630061132,88.6358691141452226,25.774812755707849],"hsluv":[192.177050630061132,88.2889223192016743,25.774812755707849]},"#114455":{"lch":[26.4741010086829718,23.9697809957076196,225.699525295295985],"luv":[26.4741010086829718,-16.7410035671662349,-17.1548593857925162],"rgb":[0.0666666666666666657,0.266666666666666663,0.333333333333333315],"xyz":[0.0393771121539295693,0.0490906314994991044,0.0933464295770814],"hpluv":[225.699525295295985,114.889984549549212,26.4741010086829718],"hsluv":[225.699525295295985,89.7968555301121398,26.4741010086829718]},"#114466":{"lch":[27.3316922889079734,34.6428172107851182,242.548035964380944],"luv":[27.3316922889079734,-15.9705048052882308,-30.7419544037807526],"rgb":[0.0666666666666666657,0.266666666666666663,0.4],"xyz":[0.0469621079274377407,0.052124629808902416,0.133294073984225381],"hpluv":[242.548035964380944,160.837015687659374,27.3316922889079734],"hsluv":[242.548035964380944,91.2329185483074525,27.3316922889079734]},"#114477":{"lch":[28.3404051997208484,46.6267191674415,250.798290317077829],"luv":[28.3404051997208484,-15.3352867062553546,-44.0327142242719844],"rgb":[0.0666666666666666657,0.266666666666666663,0.466666666666666674],"xyz":[0.0562761209476396601,0.0558502350169832323,0.18234787589062329],"hpluv":[250.798290317077829,208.770018220734585,28.3404051997208484],"hsluv":[250.798290317077829,92.5248535524246734,28.3404051997208484]},"#114488":{"lch":[29.4896359978219706,58.6954673108201632,255.342505689020953],"luv":[29.4896359978219706,-14.8523182742844106,-56.7852667926718055],"rgb":[0.0666666666666666657,0.266666666666666663,0.533333333333333326],"xyz":[0.0674165380495834882,0.0603064018577608302,0.241020739294195457],"hpluv":[255.342505689020953,252.565763352450517,29.4896359978219706],"hsluv":[255.342505689020953,93.6449802292742817,29.4896359978219706]},"#114499":{"lch":[30.7666487879374699,70.4540899928233699,258.107815399211404],"luv":[30.7666487879374699,-14.5185243824624628,-68.9419411278265102],"rgb":[0.0666666666666666657,0.266666666666666663,0.6],"xyz":[0.0804735021586562,0.0655291875013899877,0.309787416935313364],"hpluv":[258.107815399211404,290.579747717257874,30.7666487879374699],"hsluv":[258.107815399211404,94.5943513350065359,30.7666487879374699]},"#1144aa":{"lch":[32.1577052090601185,81.8040240174920541,259.917940759024589],"luv":[32.1577052090601185,-14.3204852090806973,-80.5408098347099894],"rgb":[0.0666666666666666657,0.266666666666666663,0.66666666666666663],"xyz":[0.0955311951239087437,0.0715522646874911,0.389091266552311965],"hpluv":[259.917940759024589,322.796594575352628,32.1577052090601185],"hsluv":[259.917940759024589,95.3887741756132925,32.1577052090601185]},"#1144bb":{"lch":[33.6489603009756664,92.7573184463875435,261.168522985608377],"luv":[33.6489603009756664,-14.2409127099882671,-91.6576048702508928],"rgb":[0.0666666666666666657,0.266666666666666663,0.733333333333333282],"xyz":[0.11266878723124539,0.0784073015304258547,0.479349251650953712],"hpluv":[261.168522985608377,349.796823816496214,33.6489603009756664],"hsluv":[261.168522985608377,96.0495339612535872,33.6489603009756664]},"#1144cc":{"lch":[35.2271045850644597,103.362934076908545,262.068884255867147],"luv":[35.2271045850644597,-14.262270250582695,-102.374234005860515],"rgb":[0.0666666666666666657,0.266666666666666663,0.8],"xyz":[0.131961162674967131,0.0861242517079146563,0.580955762321223812],"hpluv":[262.068884255867147,372.329293739207799,35.2271045850644597],"hsluv":[262.068884255867147,96.5982694251149638,35.2271045850644597]},"#1144dd":{"lch":[36.8797734412618,113.676357292171801,262.73849416957313],"luv":[36.8797734412618,-14.3684841809298494,-112.764625967365617],"rgb":[0.0666666666666666657,0.266666666666666663,0.866666666666666696],"xyz":[0.153479488225600674,0.0947315819281681903,0.69428561022122981],"hpluv":[262.73849416957313,391.13009227787353,36.8797734412618],"hsluv":[262.73849416957313,97.0546019825808,36.8797734412618]},"#1144ee":{"lch":[38.5957670998368911,123.747928777943088,263.249741523271325],"luv":[38.5957670998368911,-14.5455638799169762,-122.890099065165245],"rgb":[0.0666666666666666657,0.266666666666666663,0.933333333333333348],"xyz":[0.177291668491775412,0.104256454034638207,0.819696426289753],"hpluv":[263.249741523271325,406.853061330967478,38.5957670998368911],"hsluv":[263.249741523271325,97.4353215147193623,38.5957670998368911]},"#1144ff":{"lch":[40.3651306844127546,133.619394536005728,263.648645306126298],"luv":[40.3651306844127546,-14.7816672391382209,-132.799265471613751],"rgb":[0.0666666666666666657,0.266666666666666663,1],"xyz":[0.203462716901606805,0.114724873398570917,0.957530614581534878],"hpluv":[263.648645306126298,420.051425771921231,40.3651306844127546],"hsluv":[263.648645306126298,99.9999999999994458,40.3651306844127546]},"#66dd00":{"lch":[78.7732081443282084,109.616469768408933,120.762072840728067],"luv":[78.7732081443282084,-56.0659919017112145,94.1932853050883],"rgb":[0.4,0.866666666666666696,0],"xyz":[0.313346863936385611,0.54535936903439,0.0887528503082264109],"hpluv":[120.762072840728067,211.559351010719155,78.7732081443282084],"hsluv":[120.762072840728067,100.000000000002444,78.7732081443282084]},"#66dd11":{"lch":[78.7966434753788576,108.675393583239966,121.014553037765893],"luv":[78.7966434753788576,-55.9956244091473678,93.1387739746547],"rgb":[0.4,0.866666666666666696,0.0666666666666666657],"xyz":[0.314358529436022716,0.545764035234244882,0.0940809552729820475],"hpluv":[121.014553037765893,210.019013530063148,78.7966434753788576],"hsluv":[121.014553037765893,98.7735218244661866,78.7966434753788576]},"#66dd22":{"lch":[78.8400557089289435,106.948443645027297,121.491090191754736],"luv":[78.8400557089289435,-55.866227309203758,91.1972271745690506],"rgb":[0.4,0.866666666666666696,0.133333333333333331],"xyz":[0.316233887574499772,0.546514178489635682,0.10395784146896124],"hpluv":[121.491090191754736,207.186246213049145,78.8400557089289435],"hsluv":[121.491090191754736,96.5169147905729,78.8400557089289435]},"#66dd33":{"lch":[78.911446872650572,104.154611952746194,122.300539429107701],"luv":[78.911446872650572,-55.6560904548950788,88.037394249850891],"rgb":[0.4,0.866666666666666696,0.2],"xyz":[0.319321638306957478,0.547749278782618809,0.120219995326572376],"hpluv":[122.300539429107701,202.586476802368111,78.911446872650572],"hsluv":[122.300539429107701,92.8487034899531807,78.911446872650572]},"#66dd44":{"lch":[79.0143300648071687,100.229492569308348,123.526451276321851],"luv":[79.0143300648071687,-55.3589437481663,83.5544045983716899],"rgb":[0.4,0.866666666666666696,0.266666666666666663],"xyz":[0.323779633551176393,0.549532476880306375,0.143698770279459015],"hpluv":[123.526451276321851,196.088207898644384,79.0143300648071687],"hsluv":[123.526451276321851,87.6539206040991843,79.0143300648071687]},"#66dd55":{"lch":[79.1515854502963,95.1800529291645603,125.27945296022996],"luv":[79.1515854502963,-54.9726586351532518,77.699737954393882],"rgb":[0.4,0.866666666666666696,0.333333333333333315],"xyz":[0.329742047590538379,0.551917442496051125,0.17510081755343293],"hpluv":[125.27945296022996,187.665730733793509,79.1515854502963],"hsluv":[125.27945296022996,80.8868034505971707,79.1515854502963]},"#66dd66":{"lch":[79.3256225689869723,89.0890908185611607,127.715012949239735],"luv":[79.3256225689869723,-54.4988561596450722,70.4751075215082921],"rgb":[0.4,0.866666666666666696,0.4],"xyz":[0.337327043364046564,0.554951440805454443,0.215048461960576892],"hpluv":[127.715012949239735,177.410630109117562,79.3256225689869723],"hsluv":[127.715012949239735,72.5638298210149,79.3256225689869723]},"#66dd77":{"lch":[79.538466322575843,82.1265081512392072,131.057978326052336],"luv":[79.538466322575843,-53.9425296262626048,61.9271090770055395],"rgb":[0.4,0.866666666666666696,0.466666666666666674],"xyz":[0.346641056384248469,0.558677046013535294,0.264102263866974774],"hpluv":[131.057978326052336,165.560886464635786,79.538466322575843],"hsluv":[131.057978326052336,73.175897046832489,79.538466322575843]},"#66dd88":{"lch":[79.7918079202835173,74.5708009722257543,135.636001638862723],"luv":[79.7918079202835173,-53.3115731427918,52.1409678341327378],"rgb":[0.4,0.866666666666666696,0.533333333333333326],"xyz":[0.35778147348619227,0.563133212854312837,0.322775127270546969],"hpluv":[135.636001638862723,152.557764790666909,79.7918079202835173],"hsluv":[135.636001638862723,73.8730513922454435,79.7918079202835173]},"#66dd99":{"lch":[80.0870378401123162,66.8478260511747919,141.915708870878916],"luv":[80.0870378401123162,-52.6162023759431392,41.2330825345609924],"rgb":[0.4,0.866666666666666696,0.6],"xyz":[0.370838437595265,0.568355998497942,0.391541804911664904],"hpluv":[141.915708870878916,139.150468179242381,80.0870378401123162],"hsluv":[141.915708870878916,74.6453790933081791,80.0870378401123162]},"#66ddaa":{"lch":[80.4252690581998877,59.592891473004542,150.502508447871207],"luv":[80.4252690581998877,-51.8682972227800931,29.3426729750825572],"rgb":[0.4,0.866666666666666696,0.66666666666666663],"xyz":[0.385896130560517525,0.574379075684043117,0.470845654528663449],"hpluv":[150.502508447871207,126.571308780245914,80.4252690581998877],"hsluv":[150.502508447871207,75.4812281571350638,80.4252690581998877]},"#66ddbb":{"lch":[80.807354973374558,53.7174771102931672,161.973645166837599],"luv":[80.807354973374558,-51.0807157732000334,16.6231111165276104],"rgb":[0.4,0.866666666666666696,0.733333333333333282],"xyz":[0.4030337226678542,0.581234112526977875,0.561103639627305251],"hpluv":[161.973645166837599,116.757770235740637,80.807354973374558],"hsluv":[161.973645166837599,76.3679029554368753,80.807354973374558]},"#66ddcc":{"lch":[81.2339045655681389,50.3705316419042148,176.319314132685548],"luv":[81.2339045655681389,-50.2666331071559256,3.23358221770368903],"rgb":[0.4,0.866666666666666696,0.8],"xyz":[0.422326098111575954,0.588951062704466732,0.662710150297575407],"hpluv":[176.319314132685548,112.393665646206941,81.2339045655681389],"hsluv":[176.319314132685548,77.2923330418296501,81.2339045655681389]},"#66dddd":{"lch":[81.7052962965957903,50.5769089008318389,192.177050630061],"luv":[81.7052962965957903,-49.4389517336029,-10.6683534552210038],"rgb":[0.4,0.866666666666666696,0.866666666666666696],"xyz":[0.443844423662209442,0.597558392924720239,0.776039998197581404],"hpluv":[192.177050630061,116.242714563462513,81.7052962965957903],"hsluv":[192.177050630061,78.2416694753709407,81.7052962965957903]},"#66ddee":{"lch":[82.2216916522674524,54.6311568672274745,207.154140846621715],"luv":[82.2216916522674524,-48.6098170936026577,-24.9328895793911158],"rgb":[0.4,0.866666666666666696,0.933333333333333348],"xyz":[0.467656603928384207,0.607083265031190256,0.901450814266104627],"hpluv":[207.154140846621715,129.793318723999505,82.2216916522674524],"hsluv":[207.154140846621715,79.2037752530793,82.2216916522674524]},"#66ddff":{"lch":[82.7830488398693376,61.9519841783888339,219.519505956683815],"luv":[82.7830488398693376,-47.7902556034158366,-39.4225799891321387],"rgb":[0.4,0.866666666666666696,1],"xyz":[0.493827652338215572,0.617551684395123,1.03928500255788636],"hpluv":[219.519505956683815,152.730665075356086,82.7830488398693376],"hsluv":[219.519505956683815,99.9999999999957,82.7830488398693376]},"#115500":{"lch":[30.9160157060817227,46.0913193883500583,125.457330883646421],"luv":[30.9160157060817227,-26.7374134918097575,37.543580579466358],"rgb":[0.0666666666666666657,0.333333333333333315,0],"xyz":[0.0347951852141227744,0.0661590714665301755,0.0109362145699901016],"hpluv":[125.457330883646421,189.179880792461034,30.9160157060817227],"hsluv":[125.457330883646421,100.000000000002402,30.9160157060817227]},"#115511":{"lch":[31.0114762783458957,43.2230667766736616,127.715012949240275],"luv":[31.0114762783458957,-26.4410342208804181,34.1921805521528697],"rgb":[0.0666666666666666657,0.333333333333333315,0.0666666666666666657],"xyz":[0.0358068507137599,0.0665637376663850283,0.0162643195347457331],"hpluv":[127.715012949240275,176.861157643680144,31.0114762783458957],"hsluv":[127.715012949240275,90.0538522348087156,31.0114762783458957]},"#115522":{"lch":[31.1874163697014737,38.3803455570512071,132.492971129528541],"luv":[31.1874163697014737,-25.925914044022,28.3001396827055132],"rgb":[0.0666666666666666657,0.333333333333333315,0.133333333333333331],"xyz":[0.0376822088522369147,0.0673138809217758427,0.0261412057307249292],"hpluv":[132.492971129528541,156.159643444286843,31.1874163697014737],"hsluv":[132.492971129528541,90.4316047034468653,31.1874163697014737]},"#115533":{"lch":[31.4742731349983,31.7764378074468219,142.363318860140765],"luv":[31.4742731349983,-25.163724938647551,19.4043538140960301],"rgb":[0.0666666666666666657,0.333333333333333315,0.2],"xyz":[0.0407699595846946553,0.0685489812147589556,0.0424033595883360759],"hpluv":[142.363318860140765,128.111709873485438,31.4742731349983],"hsluv":[142.363318860140765,90.9947325890089616,31.4742731349983]},"#115544":{"lch":[31.8824114421380642,25.5202649789159608,161.635705606154772],"luv":[31.8824114421380642,-24.2205825435089714,8.04035483341083435],"rgb":[0.0666666666666666657,0.333333333333333315,0.266666666666666663],"xyz":[0.0452279548289135358,0.0703321793124465355,0.0658821345412227144],"hpluv":[161.635705606154772,101.571845607751229,31.8824114421380642],"hsluv":[161.635705606154772,91.6999843863076194,31.8824114421380642]},"#115555":{"lch":[32.417637609391285,23.7206023942150033,192.177050630061103],"luv":[32.417637609391285,-23.1868997601056,-5.00346454561771115],"rgb":[0.0666666666666666657,0.333333333333333315,0.333333333333333315],"xyz":[0.0511903688682755278,0.0727171449281913684,0.0972841818151966159],"hpluv":[192.177050630061103,92.8503782686988899,32.417637609391285],"hsluv":[192.177050630061103,92.4869346485079,32.417637609391285]},"#115566":{"lch":[33.0818646063754045,29.1355194477524577,220.509575549450261],"luv":[33.0818646063754045,-22.1516601517912761,-18.9257085999416219],"rgb":[0.0666666666666666657,0.333333333333333315,0.4],"xyz":[0.0587753646417837061,0.0757511432375946869,0.137231826222340592],"hpluv":[220.509575549450261,111.756325010930979,33.0818646063754045],"hsluv":[220.509575549450261,93.2955878193037904,33.0818646063754045]},"#115577":{"lch":[33.8736729304774826,39.2775515041961185,237.359341141202208],"luv":[33.8736729304774826,-21.1850732372535866,-33.0744421585153958],"rgb":[0.0666666666666666657,0.333333333333333315,0.466666666666666674],"xyz":[0.0680893776619856117,0.0794767484456755,0.186285628128738501],"hpluv":[237.359341141202208,147.13684637222039,33.8736729304774826],"hsluv":[237.359341141202208,94.078253732623736,33.8736729304774826]},"#115588":{"lch":[34.7888943497230514,51.2161985161337938,246.60972521059881],"luv":[34.7888943497230514,-20.3324266151093482,-47.0073549392562455],"rgb":[0.0666666666666666657,0.333333333333333315,0.533333333333333326],"xyz":[0.0792297947639294398,0.0839329152864531,0.244958491532310668],"hpluv":[246.60972521059881,186.812546427038342,34.7888943497230514],"hsluv":[246.60972521059881,94.8038015691112719,34.7888943497230514]},"#115599":{"lch":[35.8212274371681403,63.5782184467896,252.028930114170464],"luv":[35.8212274371681403,-19.6162163870228632,-60.476391389741444],"rgb":[0.0666666666666666657,0.333333333333333315,0.6],"xyz":[0.0922867588730021671,0.0891557009300822517,0.313725169173428575],"hpluv":[252.028930114170464,225.22013661091745,35.8212274371681403],"hsluv":[252.028930114170464,95.4562831747131355,35.8212274371681403]},"#1155aa":{"lch":[36.9628521043173777,75.808874965898184,255.452401876993463],"luv":[36.9628521043173777,-19.0419916394553752,-73.3783897206670588],"rgb":[0.0666666666666666657,0.333333333333333315,0.66666666666666663],"xyz":[0.107344451838254695,0.0951787781161833601,0.393029018790427176],"hpluv":[255.452401876993463,260.251896817562397,36.9628521043173777],"hsluv":[255.452401876993463,96.0310300088164155,36.9628521043173777]},"#1155bb":{"lch":[38.2050019251475845,87.6984258792502089,257.752076786877694],"luv":[38.2050019251475845,-18.6045414354547205,-85.7023041678273216],"rgb":[0.0666666666666666657,0.333333333333333315,0.733333333333333282],"xyz":[0.124482043945591342,0.102033814959118119,0.483287003889068922],"hpluv":[257.752076786877694,291.280156181798475,38.2050019251475845],"hsluv":[257.752076786877694,96.5305142623785,38.2050019251475845]},"#1155cc":{"lch":[39.5384610498345523,99.1886562531622,259.372402836059223],"luv":[39.5384610498345523,-18.292845239891637,-97.4872368176334447],"rgb":[0.0666666666666666657,0.333333333333333315,0.8],"xyz":[0.143774419389313096,0.10975076513660692,0.584893514559339],"hpluv":[259.372402836059223,318.332933912315752,39.5384610498345523],"hsluv":[259.372402836059223,96.9610449958707,39.5384610498345523]},"#1155dd":{"lch":[40.9539668975822053,110.288480556245688,260.557616930578945],"luv":[40.9539668975822053,-18.0934548393737415,-108.7941902648341],"rgb":[0.0666666666666666657,0.333333333333333315,0.866666666666666696],"xyz":[0.16529274493994664,0.118358095356860454,0.698223362459345],"hpluv":[260.557616930578945,341.722445031840948,40.9539668975822053],"hsluv":[260.557616930578945,97.330522563257,40.9539668975822053]},"#1155ee":{"lch":[42.4425141949683038,121.034132372772049,261.450904748640312],"luv":[42.4425141949683038,-17.992549051743687,-119.689303523123172],"rgb":[0.0666666666666666657,0.333333333333333315,0.933333333333333348],"xyz":[0.189104925206121377,0.127882967463330471,0.823634178527868244],"hpluv":[261.450904748640312,361.864588035447412,42.4425141949683038],"hsluv":[261.450904748640312,97.6470858685672596,42.4425141949683038]},"#1155ff":{"lch":[43.9955669218353762,131.469960671873054,262.140820458865903],"luv":[43.9955669218353762,-17.9770474653633769,-130.235081001594637],"rgb":[0.0666666666666666657,0.333333333333333315,1],"xyz":[0.21527597361595277,0.138351386827263168,0.961468366819650089],"hpluv":[262.140820458865903,379.190057269809415,43.9955669218353762],"hsluv":[262.140820458865903,99.9999999999993321,43.9955669218353762]},"#66ee00":{"lch":[83.9510288300903511,118.631054776009961,121.878900606421581],"luv":[83.9510288300903511,-62.6521043104729145,100.737485489455693],"rgb":[0.4,0.933333333333333348,0],"xyz":[0.360525640276900428,0.639716921715420939,0.104479109088397595],"hpluv":[121.878900606421581,316.932305812441825,83.9510288300903511],"hsluv":[121.878900606421581,100.000000000002245,83.9510288300903511]},"#66ee11":{"lch":[83.9720997528394406,117.779830021225337,122.096631719604488],"luv":[83.9720997528394406,-62.5821687959979371,99.7775551344988401],"rgb":[0.4,0.933333333333333348,0.0666666666666666657],"xyz":[0.361537305776537532,0.640121587915275847,0.109807214053153232],"hpluv":[122.096631719604488,315.12898496103287,83.9720997528394406],"hsluv":[122.096631719604488,98.9534187198870825,83.9720997528394406]},"#66ee22":{"lch":[84.0111361497279461,116.215639794016113,122.506307539641156],"luv":[84.0111361497279461,-62.4534076072217061,98.0084017366813498],"rgb":[0.4,0.933333333333333348,0.133333333333333331],"xyz":[0.363412663915014589,0.640871731170666648,0.119684100249132425],"hpluv":[122.506307539641156,311.807725961995743,84.0111361497279461],"hsluv":[122.506307539641156,97.0256918708191,84.0111361497279461]},"#66ee33":{"lch":[84.0753427139745213,113.679067087327056,123.198426402241765],"luv":[84.0753427139745213,-62.2438639038254564,95.1242960560921],"rgb":[0.4,0.933333333333333348,0.2],"xyz":[0.366500414647472295,0.642106831463649774,0.135946254106743575],"hpluv":[123.198426402241765,306.400922934277446,84.0753427139745213],"hsluv":[123.198426402241765,93.8862320250161133,84.0753427139745213]},"#66ee44":{"lch":[84.1678970009459704,110.10189342016568,124.237870325737177],"luv":[84.1678970009459704,-61.946619900698991,91.0222127702015626],"rgb":[0.4,0.933333333333333348,0.266666666666666663],"xyz":[0.37095840989169121,0.64389002956133734,0.159425029059630213],"hpluv":[124.237870325737177,298.731636810455427,84.1678970009459704],"hsluv":[124.237870325737177,89.4277949312148337,84.1678970009459704]},"#66ee55":{"lch":[84.2914184237995414,105.474359140243067,125.706632503417083],"luv":[84.2914184237995414,-61.5585501093914829,85.6468641835444657],"rgb":[0.4,0.933333333333333348,0.333333333333333315],"xyz":[0.376920823931053195,0.64627499517708209,0.190827076333604129],"hpluv":[125.706632503417083,288.732343582820249,84.2914184237995414],"hsluv":[125.706632503417083,83.5978964235977315,84.2914184237995414]},"#66ee66":{"lch":[84.4481159447294374,99.8471979874678652,127.715012949239849],"luv":[84.4481159447294374,-61.0799597466417339,78.9854509596370633],"rgb":[0.4,0.933333333333333348,0.4],"xyz":[0.38450581970456138,0.649308993486485408,0.230774720740748063],"hpluv":[127.715012949239849,276.453302697114395,84.4481159447294374],"hsluv":[127.715012949239849,76.3932656313124454,84.4481159447294374]},"#66ee77":{"lch":[84.6398667383604391,93.3381964812165,130.416076861551431],"luv":[84.6398667383604391,-60.5142850922984863,71.0636350191446127],"rgb":[0.4,0.933333333333333348,0.466666666666666674],"xyz":[0.393819832724763286,0.65303459869456626,0.279828522647145972],"hpluv":[130.416076861551431,262.087365127001192,84.6398667383604391],"hsluv":[130.416076861551431,76.8478121958162461,84.6398667383604391]},"#66ee88":{"lch":[84.8682629083727704,86.1443361377895513,134.024834696689027],"luv":[84.8682629083727704,-59.8677379892917187,61.9411058721588503],"rgb":[0.4,0.933333333333333348,0.533333333333333326],"xyz":[0.404960249826707086,0.657490765535343802,0.338501386050718167],"hpluv":[134.024834696689027,246.018013362770375,84.8682629083727704],"hsluv":[134.024834696689027,77.3690194462974858,84.8682629083727704]},"#66ee99":{"lch":[85.1346415661787432,78.5628931277068,138.840952739605655],"luv":[85.1346415661787432,-59.1488647733143296,51.7062856200641718],"rgb":[0.4,0.933333333333333348,0.6],"xyz":[0.418017213935779841,0.662713551178973,0.407268063691836046],"hpluv":[138.840952739605655,228.905884969324347,85.1346415661787432],"hsluv":[138.840952739605655,77.9507906120806,85.1346415661787432]},"#66eeaa":{"lch":[85.4401056772853451,71.025817565124143,145.263991147699045],"luv":[85.4401056772853451,-58.3680297483556387,40.4702342974360576],"rgb":[0.4,0.933333333333333348,0.66666666666666663],"xyz":[0.433074906901032342,0.668736628365074082,0.486571913308834647],"hpluv":[145.263991147699045,211.83630636980061,85.4401056772853451],"hsluv":[145.263991147699045,78.5856392083502868,85.4401056772853451]},"#66eebb":{"lch":[85.7855396574798448,64.1465768711300228,153.7611846199909],"luv":[85.7855396574798448,-57.5368534805651,28.3600743271201026],"rgb":[0.4,0.933333333333333348,0.733333333333333282],"xyz":[0.450212499008369,0.67559166520800884,0.576829898407476449],"hpluv":[153.7611846199909,196.542528595596508,85.7855396574798448],"hsluv":[153.7611846199909,79.2651091664321683,85.7855396574798448]},"#66eecc":{"lch":[86.1716220205593,58.7524914026155827,164.690737532459508],"luv":[86.1716220205593,-56.6676444389915517,15.5123602250092176],"rgb":[0.4,0.933333333333333348,0.8],"xyz":[0.46950487445209077,0.683308615385497697,0.678436409077746605],"hpluv":[164.690737532459508,185.645341664818176,86.1716220205593],"hsluv":[164.690737532459508,79.9801993176568118,86.1716220205593]},"#66eedd":{"lch":[86.5988364705929285,55.8111450312658164,177.877712634427581],"luv":[86.5988364705929285,-55.7728621696499403,2.06682246606168096],"rgb":[0.4,0.933333333333333348,0.866666666666666696],"xyz":[0.491023200002724258,0.691915945605751204,0.791766256977752603],"hpluv":[177.877712634427581,182.628088950326941,86.5988364705929285],"hsluv":[177.877712634427581,80.7217641095277543,86.5988364705929285]},"#66eeee":{"lch":[87.0674822997282263,56.1274864183573783,192.177050630061075],"luv":[87.0674822997282263,-54.8646438121880493,-11.8391549953798521],"rgb":[0.4,0.933333333333333348,0.933333333333333348],"xyz":[0.514835380268899,0.701440817712221221,0.917177073046275826],"hpluv":[192.177050630061075,191.066910285097691,87.0674822997282263],"hsluv":[192.177050630061075,81.4808670778618165,87.0674822997282263]},"#66eeff":{"lch":[87.5776846199412518,59.9248574237073512,205.793536431897621],"luv":[87.5776846199412518,-53.9544158989052178,-26.0750751151289606],"rgb":[0.4,0.933333333333333348,1],"xyz":[0.541006428678730389,0.711909237076154,1.05501126133805756],"hpluv":[205.793536431897621,213.276590696447101,87.5776846199412518],"hsluv":[205.793536431897621,99.9999999999933351,87.5776846199412518]},"#116600":{"lch":[37.1543973335168118,56.0416844920186463,126.180156646926719],"luv":[37.1543973335168118,-33.0828721903909511,45.2348755755691201],"rgb":[0.0666666666666666657,0.4,0],"xyz":[0.0498232429199692434,0.0962151868782235159,0.0159455671386054508],"hpluv":[126.180156646926719,191.399273993181851,37.1543973335168118],"hsluv":[126.180156646926719,100.000000000002359,37.1543973335168118]},"#116611":{"lch":[37.2288128297302237,53.6508389550451668,127.715012949240304],"luv":[37.2288128297302237,-32.820060550512963,42.4412081124095124],"rgb":[0.0666666666666666657,0.4,0.0666666666666666657],"xyz":[0.0508349084196063616,0.0966198530780783688,0.021273672103361084],"hpluv":[127.715012949240304,182.867554307566394,37.2288128297302237],"hsluv":[127.715012949240304,93.1121786917857719,37.2288128297302237]},"#116622":{"lch":[37.366211587350719,49.4912288674311,130.823584918521846],"luv":[37.366211587350719,-32.3540076461773722,37.4513006989015125],"rgb":[0.0666666666666666657,0.4,0.133333333333333331],"xyz":[0.0527102665580833837,0.0973699963334691831,0.0311505582993402766],"hpluv":[130.823584918521846,168.069340269208539,37.366211587350719],"hsluv":[130.823584918521846,93.2954788878505639,37.366211587350719]},"#116633":{"lch":[37.5909073580641291,43.4152735453156,136.786924005406348],"luv":[37.5909073580641291,-31.6415889136076061,29.7270218494359924],"rgb":[0.0666666666666666657,0.4,0.2],"xyz":[0.0557980172905411242,0.0986050966264523,0.0474127121569514198],"hpluv":[136.786924005406348,146.554466726503705,37.5909073580641291],"hsluv":[136.786924005406348,93.5769168130898095,37.5909073580641291]},"#116644":{"lch":[37.9120295698984506,36.3990668435195417,147.559563985674146],"luv":[37.9120295698984506,-30.7189764474867033,19.525279846848818],"rgb":[0.0666666666666666657,0.4,0.266666666666666663],"xyz":[0.0602560125347600048,0.100388294724139876,0.0708914871098380583],"hpluv":[147.559563985674146,121.829522477327146,37.9120295698984506],"hsluv":[147.559563985674146,93.9439470857740559,37.9120295698984506]},"#116655":{"lch":[38.335629212958338,30.5483862618043851,166.063087397862887],"luv":[38.335629212958338,-29.6490880228798659,7.35768187759708869],"rgb":[0.0666666666666666657,0.4,0.333333333333333315],"xyz":[0.066218426574122,0.102773260339884709,0.102293534383811974],"hpluv":[166.063087397862887,101.117192726530064,38.335629212958338],"hsluv":[166.063087397862887,94.3739252192313529,38.335629212958338]},"#116666":{"lch":[38.8651381017916293,29.1618890828208741,192.177050630061217],"luv":[38.8651381017916293,-28.5057600031098204,-6.15121301239451324],"rgb":[0.0666666666666666657,0.4,0.4],"xyz":[0.0738034223476301682,0.105807258649288027,0.142241178790955936],"hpluv":[192.177050630061217,95.2126746116157392,38.8651381017916293],"hsluv":[192.177050630061217,94.8399842705083245,38.8651381017916293]},"#116677":{"lch":[39.5016809883423079,34.1234106492309124,216.700227589977857],"luv":[39.5016809883423079,-27.3592385518708738,-20.3931169809293316],"rgb":[0.0666666666666666657,0.4,0.466666666666666674],"xyz":[0.0831174353678320876,0.109532863857368837,0.191294980697353845],"hpluv":[216.700227589977857,109.616563248578402,39.5016809883423079],"hsluv":[216.700227589977857,95.3164106037614687,39.5016809883423079]},"#116688":{"lch":[40.2443638992953723,43.6497103352843823,233.004065811630028],"luv":[40.2443638992953723,-26.2665776267255495,-34.862072688430807],"rgb":[0.0666666666666666657,0.4,0.533333333333333326],"xyz":[0.0942578524697759157,0.113989030698146435,0.249967844100926],"hpluv":[233.004065811630028,137.630797119362086,40.2443638992953723],"hsluv":[233.004065811630028,95.7822055324918864,40.2443638992953723]},"#116699":{"lch":[41.090575936542443,55.3002439505846866,242.81143298809],"luv":[41.090575936542443,-25.2678118474637223,-49.189985418125],"rgb":[0.0666666666666666657,0.4,0.6],"xyz":[0.107314816578848629,0.119211816341775592,0.318734521742043919],"hpluv":[242.81143298809,170.774941475023041,41.090575936542443],"hsluv":[242.81143298809,96.2225162944548202,41.090575936542443]},"#1166aa":{"lch":[42.0363074660961757,67.6887016451143,248.882871092507173],"luv":[42.0363074660961757,-24.3865946332867658,-63.1431257746482615],"rgb":[0.0666666666666666657,0.4,0.66666666666666663],"xyz":[0.122372509544101171,0.125234893527876701,0.39803837135904252],"hpluv":[248.882871092507173,204.329442679703192,42.0363074660961757],"hsluv":[248.882871092507173,96.6284204735347885,42.0363074660961757]},"#1166bb":{"lch":[43.0764730814379746,80.16050208662584,252.853006907061769],"luv":[43.0764730814379746,-23.6332520973097289,-76.5974901030376429],"rgb":[0.0666666666666666657,0.4,0.733333333333333282],"xyz":[0.139510101651437818,0.132089930370811459,0.488296356457684266],"hpluv":[252.853006907061769,236.134594524550181,43.0764730814379746],"hsluv":[252.853006907061769,96.9958197331145,43.0764730814379746]},"#1166cc":{"lch":[44.2052232400861271,92.4179309088515737,255.583916344807051],"luv":[44.2052232400861271,-23.008531750755072,-89.5079964033815259],"rgb":[0.0666666666666666657,0.4,0.8],"xyz":[0.158802477095159544,0.139806880548300261,0.589902867127954367],"hpluv":[255.583916344807051,265.290671800528912,44.2052232400861271],"hsluv":[255.583916344807051,97.3240770235992159,44.2052232400861271]},"#1166dd":{"lch":[45.4162296513266455,104.336857924373376,257.542523527564185],"luv":[45.4162296513266455,-22.507022318245486,-101.880390006599782],"rgb":[0.0666666666666666657,0.4,0.866666666666666696],"xyz":[0.180320802645793088,0.148414210768553795,0.703232715027960364],"hpluv":[257.542523527564185,291.518421142394175,45.4162296513266455],"hsluv":[257.542523527564185,97.6147741074162,45.4162296513266455]},"#1166ee":{"lch":[46.7029335650228674,115.880201424536907,258.995545526323895],"luv":[46.7029335650228674,-22.1198283610194721,-113.74943637429719],"rgb":[0.0666666666666666657,0.4,0.933333333333333348],"xyz":[0.204132982911967853,0.157939082875023812,0.828643531096483588],"hpluv":[258.995545526323895,314.850514307077333,46.7029335650228674],"hsluv":[258.995545526323895,97.870742288996567,46.7029335650228674]},"#1166ff":{"lch":[48.0587511138394348,127.054293237547355,260.103604495506659],"luv":[48.0587511138394348,-21.8364562757409573,-125.163743182322264],"rgb":[0.0666666666666666657,0.4,1],"xyz":[0.230304031321799219,0.168407502238956508,0.966477719388265433],"hpluv":[260.103604495506659,335.471932494038299,48.0587511138394348],"hsluv":[260.103604495506659,99.9999999999992184,48.0587511138394348]},"#66ff00":{"lch":[89.0839511722278417,127.467952451328657,122.755484474710229],"luv":[89.0839511722278417,-68.9671698198214074,107.198919720201],"rgb":[0.4,1,0],"xyz":[0.41237801270657426,0.74342166657477,0.121763233231621706],"hpluv":[122.755484474710229,522.717702913530729,89.0839511722278417],"hsluv":[122.755484474710229,100.000000000002402,89.0839511722278417]},"#66ff11":{"lch":[89.1030144718140917,126.693355761899767,122.944319876693868],"luv":[89.1030144718140917,-68.8988566751164342,106.320994836735167],"rgb":[0.4,1,0.0666666666666666657],"xyz":[0.413389678206211364,0.743826332774625,0.127091338196377329],"hpluv":[122.944319876693868,520.53129302948,89.1030144718140917],"hsluv":[122.944319876693868,99.9999999999913456,89.1030144718140917]},"#66ff22":{"lch":[89.1383344673707825,125.268361506965746,123.29878008449495],"luv":[89.1383344673707825,-68.7729595958538482,104.70168300016438],"rgb":[0.4,1,0.133333333333333331],"xyz":[0.415265036344688421,0.744576476030015755,0.136968224392356536],"hpluv":[123.29878008449495,516.49933125362179,89.1383344673707825],"hsluv":[123.29878008449495,99.9999999999914877,89.1383344673707825]},"#66ff33":{"lch":[89.1964366933732,122.952924407393425,123.895139690212403],"luv":[89.1964366933732,-68.5677350303770368,102.0582546055644],"rgb":[0.4,1,0.2],"xyz":[0.418352787077146127,0.745811576322998881,0.153230378249967686],"hpluv":[123.895139690212403,509.920932540516333,89.1964366933732],"hsluv":[123.895139690212403,99.9999999999913456,89.1964366933732]},"#66ff44":{"lch":[89.2802097655713,119.677402261160566,124.785058224819977],"luv":[89.2802097655713,-68.2758869475835439,98.2908127624369143],"rgb":[0.4,1,0.266666666666666663],"xyz":[0.422810782321365042,0.747594774420686448,0.176709153202854324],"hpluv":[124.785058224819977,500.557479589511445,89.2802097655713],"hsluv":[124.785058224819977,99.9999999999914451,89.2802097655713]},"#66ff55":{"lch":[89.392045372062455,115.420778437487911,126.031255758612545],"luv":[89.392045372062455,-67.8935601171189802,93.3403481337991536],"rgb":[0.4,1,0.333333333333333315],"xyz":[0.428773196360727,0.749979740036431197,0.20811120047682824],"hpluv":[126.031255758612545,488.288652672415253,89.392045372062455],"hsluv":[126.031255758612545,99.9999999999912177,89.392045372062455]},"#66ff66":{"lch":[89.5339732348528088,110.211236984550467,127.715012949239977],"luv":[89.5339732348528088,-67.4199983006921428,87.1840615410833664],"rgb":[0.4,1,0.4],"xyz":[0.436358192134235212,0.753013738345834516,0.248058844883972174],"hpluv":[127.715012949239977,473.1190638884799,89.5339732348528088],"hsluv":[127.715012949239977,99.9999999999912177,89.5339732348528088]},"#66ff77":{"lch":[89.7077333531255,104.130085615398272,129.945267186452298],"luv":[89.7077333531255,-66.8572982376138754,79.8321764869086223],"rgb":[0.4,1,0.466666666666666674],"xyz":[0.445672205154437118,0.756739343553915367,0.297112646790370083],"hpluv":[129.945267186452298,455.203211628206077,89.7077333531255],"hsluv":[129.945267186452298,99.9999999999911466,89.7077333531255]},"#66ff88":{"lch":[89.9148190538961529,97.3190386909276413,132.870301628739924],"luv":[89.9148190538961529,-66.2101394375234378,71.3246992800528687],"rgb":[0.4,1,0.533333333333333326],"xyz":[0.456812622256380918,0.761195510394692909,0.355785510193942278],"hpluv":[132.870301628739924,434.894743355908361,89.9148190538961529],"hsluv":[132.870301628739924,99.999999999990834,89.9148190538961529]},"#66ff99":{"lch":[90.1565046807361,89.9924560427222247,136.692010716646195],"luv":[90.1565046807361,-65.4854512845448795,61.7276098246221707],"rgb":[0.4,1,0.6],"xyz":[0.469869586365453618,0.766418296038322122,0.424552187835060157],"hpluv":[136.692010716646195,412.835114866532763,90.1565046807361],"hsluv":[136.692010716646195,99.9999999999909903,90.1565046807361]},"#66ffaa":{"lch":[90.4338646074596113,82.4570841698328678,141.679424663280656],"luv":[90.4338646074596113,-64.6920148236146,51.1284064669742264],"rgb":[0.4,1,0.66666666666666663],"xyz":[0.484927279330706174,0.772441373224423189,0.503856037452058758],"hpluv":[141.679424663280656,390.10709074414774,90.4338646074596113],"hsluv":[141.679424663280656,99.9999999999905924,90.4338646074596113]},"#66ffbb":{"lch":[90.747787175062669,75.1410408914244101,148.168460326052468],"luv":[90.747787175062669,-63.84001546278364,39.631155067172358],"rgb":[0.4,1,0.733333333333333282],"xyz":[0.502064871438042792,0.779296410067358,0.59411402255070056],"hpluv":[148.168460326052468,368.486167720556807,90.747787175062669],"hsluv":[148.168460326052468,99.9999999999904077,90.747787175062669]},"#66ffcc":{"lch":[91.0989856399247486,68.6265957122477,156.512275503644645],"luv":[91.0989856399247486,-62.9405723747737085,27.3513068826366492],"rgb":[0.4,1,0.8],"xyz":[0.521357246881764547,0.787013360244846805,0.695720533220970716],"hpluv":[156.512275503644645,350.804850059399143,91.0989856399247486],"hsluv":[156.512275503644645,99.9999999999903508,91.0989856399247486]},"#66ffdd":{"lch":[91.4880074096490716,63.6578272942329875,166.916209854529029],"luv":[91.4880074096490716,-62.0052733715472826,14.410588119229697],"rgb":[0.4,1,0.866666666666666696],"xyz":[0.542875572432398146,0.795620690465100311,0.809050381120976714],"hpluv":[166.916209854529029,341.336295176875581,91.4880074096490716],"hsluv":[166.916209854529029,99.9999999999898819,91.4880074096490716]},"#66ffee":{"lch":[91.9152423718395113,61.0528599966611765,179.125088100836763],"luv":[91.9152423718395113,-61.045742111776633,0.93224663816584552],"rgb":[0.4,1,0.933333333333333348],"xyz":[0.566687752698572855,0.805145562571570328,0.934461197189499937],"hpluv":[179.125088100836763,345.840646438583576,91.9152423718395113],"hsluv":[179.125088100836763,99.9999999999894,91.9152423718395113]},"#66ffff":{"lch":[92.3809308294128,61.4559907165056,192.17705063006116],"luv":[92.3809308294128,-60.0732592166006256,-12.9631139022354667],"rgb":[0.4,1,1],"xyz":[0.592858801108404276,0.815613981935503,1.07229538548128178],"hpluv":[192.17705063006116,370.76546272919029,92.3809308294128],"hsluv":[192.17705063006116,99.9999999999889866,92.3809308294128]},"#117700":{"lch":[43.2300348418233042,65.6725964696673685,126.613348243544976],"luv":[43.2300348418233042,-39.1679175007181684,52.7139845365981],"rgb":[0.0666666666666666657,0.466666666666666674,0],"xyz":[0.0682769809733868721,0.133122662985059287,0.0220968131564111547],"hpluv":[126.613348243544976,192.769325646383436,43.2300348418233042],"hsluv":[126.613348243544976,100.000000000002359,43.2300348418233042]},"#117711":{"lch":[43.289989941732955,63.6505577690815443,127.715012949240403],"luv":[43.289989941732955,-38.9372319378938414,50.351618378457772],"rgb":[0.0666666666666666657,0.466666666666666674,0.0666666666666666657],"xyz":[0.0692886464730239904,0.13352732918491414,0.0274249181211667845],"hpluv":[127.715012949240403,186.57525992916959,43.289989941732955],"hsluv":[127.715012949240403,95.0000616991484321,43.289989941732955]},"#117722":{"lch":[43.400811094951429,60.069144786817489,129.889765673233825],"luv":[43.400811094951429,-38.5230987158151308,46.089836414888758],"rgb":[0.0666666666666666657,0.466666666666666674,0.133333333333333331],"xyz":[0.0711640046115010194,0.134277472440304968,0.037301804317145984],"hpluv":[129.889765673233825,175.627665872500842,43.400811094951429],"hsluv":[129.889765673233825,95.0973605906006725,43.400811094951429]},"#117733":{"lch":[43.5823807888255317,54.6433249694405205,133.881596062605809],"luv":[43.5823807888255317,-37.8771324094584756,39.3854770715327476],"rgb":[0.0666666666666666657,0.466666666666666674,0.2],"xyz":[0.074251755343958753,0.135512572733288067,0.0535639581747571272],"hpluv":[133.881596062605809,159.098283206795713,43.5823807888255317],"hsluv":[133.881596062605809,95.249567515942033,43.5823807888255317]},"#117744":{"lch":[43.8425891980029,47.8554364611196803,140.669149905405504],"luv":[43.8425891980029,-37.0161352468332083,30.3306533110056051],"rgb":[0.0666666666666666657,0.466666666666666674,0.266666666666666663],"xyz":[0.0787097505881776266,0.137295770830975661,0.0770427331276437588],"hpluv":[140.669149905405504,138.507858249946878,43.8425891980029],"hsluv":[140.669149905405504,95.4533619015585373,43.8425891980029]},"#117755":{"lch":[44.18711059062651,40.7988283335817243,151.872601466806259],"luv":[44.18711059062651,-35.9805491223838843,19.2339407882209947],"rgb":[0.0666666666666666657,0.466666666666666674,0.333333333333333315],"xyz":[0.0846721646275396256,0.139680736446720494,0.108444780401617674],"hpluv":[151.872601466806259,117.163251003272293,44.18711059062651],"hsluv":[151.872601466806259,95.7000805167539426,44.18711059062651]},"#117766":{"lch":[44.6197667240920879,35.4343089397309186,169.362936023125116],"luv":[44.6197667240920879,-34.8254110013137463,6.54071850990925796],"rgb":[0.0666666666666666657,0.466666666666666674,0.4],"xyz":[0.0922571604010478,0.142714734756123784,0.148392424808761636],"hpluv":[169.362936023125116,100.771099800457392,44.6197667240920879],"hsluv":[169.362936023125116,95.9777414193434453,44.6197667240920879]},"#117777":{"lch":[45.1427402486772138,34.384087641882445,192.177050630061217],"luv":[45.1427402486772138,-33.6104614986274584,-7.25274850066749],"rgb":[0.0666666666666666657,0.466666666666666674,0.466666666666666674],"xyz":[0.101571173421249716,0.146440339964204608,0.197446226715159545],"hpluv":[192.177050630061217,96.651570122263351,45.1427402486772138],"hsluv":[192.177050630061217,96.2732475219964385,45.1427402486772138]},"#117788":{"lch":[45.7567431438856502,38.9735922704815891,213.78628123605418],"luv":[45.7567431438856502,-32.3916401681270685,-21.6730833451154119],"rgb":[0.0666666666666666657,0.466666666666666674,0.533333333333333326],"xyz":[0.112711590523193544,0.150896506804982206,0.256119090118731685],"hpluv":[213.78628123605418,108.082320192335175,45.7567431438856502],"hsluv":[213.78628123605418,96.5742797371803192,45.7567431438856502]},"#117799":{"lch":[46.4611794427891169,47.8902134896154763,229.321579893426758],"luv":[46.4611794427891169,-31.2154548044213769,-36.3189747850083791],"rgb":[0.0666666666666666657,0.466666666666666674,0.6],"xyz":[0.125768554632266272,0.156119292448611363,0.32488576775984962],"hpluv":[229.321579893426758,130.796423620493698,46.4611794427891169],"hsluv":[229.321579893426758,96.8705519561321,46.4611794427891169]},"#1177aa":{"lch":[47.254315604307827,59.1280670765604199,239.379878554404911],"luv":[47.254315604307827,-30.1165063567495856,-50.8834389666627231],"rgb":[0.0666666666666666657,0.466666666666666674,0.66666666666666663],"xyz":[0.1408262475975188,0.162142369634712458,0.40418961737684822],"hpluv":[239.379878554404911,158.77844008322549,47.254315604307827],"hsluv":[239.379878554404911,97.1543662497403488,47.254315604307827]},"#1177bb":{"lch":[48.1334597651774914,71.3648635001192133,245.920143546346225],"luv":[48.1334597651774914,-29.1175429122131746,-65.1545273725937761],"rgb":[0.0666666666666666657,0.466666666666666674,0.733333333333333282],"xyz":[0.157963839704855447,0.168997406477647216,0.494447602475489967],"hpluv":[245.920143546346225,188.138070935962588,48.1334597651774914],"hsluv":[245.920143546346225,97.4206074841270464,48.1334597651774914]},"#1177cc":{"lch":[49.0951452720171488,83.8954152066927463,250.336037436893122],"luv":[49.0951452720171488,-28.2310616920000612,-79.0028344329863756],"rgb":[0.0666666666666666657,0.466666666666666674,0.8],"xyz":[0.177256215148577201,0.176714356655136018,0.596054113145760178],"hpluv":[250.336037436893122,216.83980339157776,49.0951452720171488],"hsluv":[250.336037436893122,97.666394869173061,49.0951452720171488]},"#1177dd":{"lch":[50.1353116048344702,96.3594544857749,253.441700788778064],"luv":[50.1353116048344702,-27.4615589113116805,-92.3634519220491512],"rgb":[0.0666666666666666657,0.466666666666666674,0.866666666666666696],"xyz":[0.198774540699210744,0.185321686875389552,0.709383961045766176],"hpluv":[253.441700788778064,243.887723915279508,50.1353116048344702],"hsluv":[253.441700788778064,97.8905898818146341,50.1353116048344702]},"#1177ee":{"lch":[51.2494756916451593,108.579054392530807,255.706052301270915],"luv":[51.2494756916451593,-26.8078049752198453,-105.217644172385562],"rgb":[0.0666666666666666657,0.466666666666666674,0.933333333333333348],"xyz":[0.222586720965385454,0.194846558981859597,0.834794777114289399],"hpluv":[255.706052301270915,268.841280267375566,51.2494756916451593],"hsluv":[255.706052301270915,98.0932983984315,51.2494756916451593]},"#1177ff":{"lch":[52.4328877873246739,120.474912105814852,257.407785454377859],"luv":[52.4328877873246739,-26.2648114927385947,-117.577056112809359],"rgb":[0.0666666666666666657,0.466666666666666674,1],"xyz":[0.248757769375216875,0.205314978345792293,0.972628965406071133],"hpluv":[257.407785454377859,291.562836812545811,52.4328877873246739],"hsluv":[257.407785454377859,99.9999999999990905,52.4328877873246739]},"#118800":{"lch":[49.1629818744817157,75.0325981068150725,126.891404302910644],"luv":[49.1629818744817157,-45.0420871994947447,60.0091756264985],"rgb":[0.0666666666666666657,0.533333333333333326,0],"xyz":[0.0903493506983573252,0.177267402435000831,0.0294542697314011],"hpluv":[126.891404302910644,193.664979881129256,49.1629818744817157],"hsluv":[126.891404302910644,100.000000000002487,49.1629818744817157]},"#118811":{"lch":[49.2125288978643,73.2988946552939211,127.715012949240403],"luv":[49.2125288978643,-44.8394509336223663,57.9840633075946883],"rgb":[0.0666666666666666657,0.533333333333333326,0.0666666666666666657],"xyz":[0.0913610161979944435,0.177672068634855684,0.0347823746961567343],"hpluv":[127.715012949240403,188.999680167490567,49.2125288978643],"hsluv":[127.715012949240403,96.2345237189928326,49.2125288978643]},"#118822":{"lch":[49.3041772439320312,70.1927728141533,129.31476933948187],"luv":[49.3041772439320312,-44.4727599639014315,54.3065279366352556],"rgb":[0.0666666666666666657,0.533333333333333326,0.133333333333333331],"xyz":[0.0932363743364714725,0.178422211890246513,0.0446592608921359269],"hpluv":[129.31476933948187,180.6541776618526,49.3041772439320312],"hsluv":[129.31476933948187,96.2899748067816859,49.3041772439320312]},"#118833":{"lch":[49.454516912369769,65.3819990709954766,132.170105234646456],"luv":[49.454516912369769,-43.8931572746598917,48.4581938064309767],"rgb":[0.0666666666666666657,0.533333333333333326,0.2],"xyz":[0.0963241250689292,0.179657312183229612,0.060921414749747077],"hpluv":[132.170105234646456,167.761213036429979,49.454516912369769],"hsluv":[132.170105234646456,96.3778002926358,49.454516912369769]},"#118844":{"lch":[49.6703617695526,59.1036258375550787,136.829676092870073],"luv":[49.6703617695526,-43.1056388924535057,40.4368950689726887],"rgb":[0.0666666666666666657,0.533333333333333326,0.266666666666666663],"xyz":[0.10078212031314808,0.181440510280917205,0.0844001897026337156],"hpluv":[136.829676092870073,150.9927614306973,49.6703617695526],"hsluv":[136.829676092870073,96.4975069627829356,49.6703617695526]},"#118855":{"lch":[49.9568473676091145,51.9652717779864091,144.176427678513875],"luv":[49.9568473676091145,-42.1346422468413806,30.4148219408018328],"rgb":[0.0666666666666666657,0.533333333333333326,0.333333333333333315],"xyz":[0.106744534352510079,0.183825475896662038,0.115802236976607617],"hpluv":[144.176427678513875,131.995007799011802,49.9568473676091145],"hsluv":[144.176427678513875,96.6457662191899658,49.9568473676091145]},"#118866":{"lch":[50.3177367885428879,45.0776565581224133,155.49998607369966],"luv":[50.3177367885428879,-41.0189171061503615,18.6934095394821433],"rgb":[0.0666666666666666657,0.533333333333333326,0.4],"xyz":[0.11432953012601825,0.186859474206065329,0.155749881383751593],"hpluv":[155.49998607369966,113.67882025976219,50.3177367885428879],"hsluv":[155.49998607369966,96.8171590628882512,50.3177367885428879]},"#118877":{"lch":[50.7555873970602391,40.2042284802375036,171.921706717236162],"luv":[50.7555873970602391,-39.8052806191025255,5.64974535051283322],"rgb":[0.0666666666666666657,0.533333333333333326,0.466666666666666674],"xyz":[0.12364354314622017,0.190585079414146152,0.204803683290149502],"hpluv":[171.921706717236162,100.514149141729121,50.7555873970602391],"hsluv":[171.921706717236162,97.0050762990714333,50.7555873970602391]},"#118888":{"lch":[51.2718664023781088,39.4294820301430349,192.17705063006116],"luv":[51.2718664023781088,-38.5423368357954814,-8.3169901046866368],"rgb":[0.0666666666666666657,0.533333333333333326,0.533333333333333326],"xyz":[0.134783960248164,0.19504124625492375,0.263476546693721669],"hpluv":[192.17705063006116,97.5845966821491118,51.2718664023781088],"hsluv":[192.17705063006116,97.2026219422035,51.2718664023781088]},"#118899":{"lch":[51.8670503792929907,43.7110075029310678,211.486174513119295],"luv":[51.8670503792929907,-37.2752705782940623,-22.8299448145688864],"rgb":[0.0666666666666666657,0.533333333333333326,0.6],"xyz":[0.147840924357236725,0.200264031898552908,0.332243224334839549],"hpluv":[211.486174513119295,106.93960912970239,51.8670503792929907],"hsluv":[211.486174513119295,97.4033619208845,51.8670503792929907]},"#1188aa":{"lch":[52.5407237145479371,52.059033028958666,226.184651315961702],"luv":[52.5407237145479371,-36.0423686073764102,-37.5644856890150507],"rgb":[0.0666666666666666657,0.533333333333333326,0.66666666666666663],"xyz":[0.162898617322489253,0.206287109084654,0.411547073951838149],"hpluv":[226.184651315961702,125.730132415512543,52.5407237145479371],"hsluv":[226.184651315961702,97.6018250350267,52.5407237145479371]},"#1188bb":{"lch":[53.2916815113449047,62.8295543710454396,236.286042109927791],"luv":[53.2916815113449047,-34.8733609598062557,-52.2628127623381573],"rgb":[0.0666666666666666657,0.533333333333333326,0.733333333333333282],"xyz":[0.1800362094298259,0.213142145927588761,0.501805059050479896],"hpluv":[236.286042109927791,149.604233097343041,53.2916815113449047],"hsluv":[236.286042109927791,97.7937430875757201,53.2916815113449047]},"#1188cc":{"lch":[54.1180375597057548,74.8024459991104607,243.146336149822275],"luv":[54.1180375597057548,-33.7892633498457826,-66.735984369188742],"rgb":[0.0666666666666666657,0.533333333333333326,0.8],"xyz":[0.199328584873547654,0.220859096105077563,0.60341156972075],"hpluv":[243.146336149822275,175.393335022858878,54.1180375597057548],"hsluv":[243.146336149822275,97.9760759990174819,54.1180375597057548]},"#1188dd":{"lch":[55.0173353812408266,87.2581949437380331,247.918019831454984],"luv":[55.0173353812408266,-32.8032215872693484,-80.8575366823396138],"rgb":[0.0666666666666666657,0.533333333333333326,0.866666666666666696],"xyz":[0.220846910424181198,0.229466426325331097,0.716741417620756],"hpluv":[247.918019831454984,201.254684785248685,55.0173353812408266],"hsluv":[247.918019831454984,98.1468934162311513,55.0173353812408266]},"#1188ee":{"lch":[55.9866591638471363,99.7959623087877645,251.344854654704591],"luv":[55.9866591638471363,-31.921869990719685,-94.5527805483930734],"rgb":[0.0666666666666666657,0.533333333333333326,0.933333333333333348],"xyz":[0.244659090690355907,0.238991298431801141,0.842152233689279273],"hpluv":[251.344854654704591,226.187053837960264,55.9866591638471363],"hsluv":[251.344854654704591,98.3051827042817,55.9866591638471363]},"#1188ff":{"lch":[57.0227411270994082,112.196885547184024,253.882464988485651],"luv":[57.0227411270994082,-31.1468293758358783,-107.786901552649141],"rgb":[0.0666666666666666657,0.533333333333333326,1],"xyz":[0.270830139100187328,0.249459717795733837,0.979986421981061118],"hpluv":[253.882464988485651,249.673263359937977,57.0227411270994082],"hsluv":[253.882464988485651,99.9999999999988916,57.0227411270994082]},"#119900":{"lch":[54.9698669410824721,84.160615619067471,127.079428544988929],"luv":[54.9698669410824721,-50.7422517332937772,67.1433772639973],"rgb":[0.0666666666666666657,0.6,0],"xyz":[0.116218951150824812,0.229006603339936526,0.0380774698822233526],"hpluv":[127.079428544988929,194.277964405092661,54.9698669410824721],"hsluv":[127.079428544988929,100.000000000002373,54.9698669410824721]},"#119911":{"lch":[55.0116447857556494,82.6558224500047,127.715012949240403],"luv":[55.0116447857556494,-50.563404981135136,65.3859852078442],"rgb":[0.0666666666666666657,0.6,0.0666666666666666657],"xyz":[0.11723061665046193,0.229411269539791379,0.0434055748469789823],"hpluv":[127.715012949240403,190.659367551848248,55.0116447857556494],"hsluv":[127.715012949240403,97.0796004133795094,55.0116447857556494]},"#119922":{"lch":[55.0889600096002852,79.9388272851777657,128.936266554168185],"luv":[55.0889600096002852,-50.237998627918941,62.1800579091938204],"rgb":[0.0666666666666666657,0.6,0.133333333333333331],"xyz":[0.119105974788938959,0.230161412795182208,0.0532824610429581819],"hpluv":[128.936266554168185,184.133380166819137,55.0889600096002852],"hsluv":[128.936266554168185,97.113065541928691,55.0889600096002852]},"#119933":{"lch":[55.215893256771821,75.6695179958245916,131.075562701176153],"luv":[55.215893256771821,-49.7189430335536,57.0429895547794175],"rgb":[0.0666666666666666657,0.6,0.2],"xyz":[0.122193725521396693,0.231396513088165307,0.0695446149005693182],"hpluv":[131.075562701176153,173.898642472918851,55.215893256771821],"hsluv":[131.075562701176153,97.1665253707361,55.215893256771821]},"#119944":{"lch":[55.398361036949,69.9528706873860671,134.469703140623466],"luv":[55.398361036949,-49.0042253731102591,49.9198358669935303],"rgb":[0.0666666666666666657,0.6,0.266666666666666663],"xyz":[0.126651720765615566,0.2331797111858529,0.0930233898534559567],"hpluv":[134.469703140623466,160.231519707698453,55.398361036949],"hsluv":[134.469703140623466,97.2403070889690184,55.398361036949]},"#119955":{"lch":[55.6409569880907497,63.1400511875114887,139.633471194580181],"luv":[55.6409569880907497,-48.1074656204671172,40.8942271664002206],"rgb":[0.0666666666666666657,0.6,0.333333333333333315],"xyz":[0.132614134804977579,0.235564676801597733,0.124425437127429872],"hpluv":[139.633471194580181,143.995747016857166,55.6409569880907497],"hsluv":[139.633471194580181,97.3331834328701575,55.6409569880907497]},"#119966":{"lch":[55.9472168173363,55.8918514512489466,147.340496807064056],"luv":[55.9472168173363,-47.0549257965888,30.1617807320125095],"rgb":[0.0666666666666666657,0.6,0.4],"xyz":[0.140199130578485737,0.238598675111001024,0.164373081534573834],"hpluv":[147.340496807064056,126.76791164907155,55.9472168173363],"hsluv":[147.340496807064056,97.4426708460479,55.9472168173363]},"#119977":{"lch":[56.319758368673476,49.2851425936320169,158.582299284916047],"luv":[56.319758368673476,-45.8816608646539308,17.9971796894826],"rgb":[0.0666666666666666657,0.6,0.466666666666666674],"xyz":[0.14951314359868767,0.242324280319081847,0.213426883440971743],"hpluv":[158.582299284916047,111.043862853999471,56.319758368673476],"hsluv":[158.582299284916047,97.5654087237770398,56.319758368673476]},"#119988":{"lch":[56.7603710001512951,44.8759084930006864,173.96527373508107],"luv":[56.7603710001512951,-44.6272223318454451,4.71785862613608131],"rgb":[0.0666666666666666657,0.6,0.533333333333333326],"xyz":[0.16065356070063147,0.246780447159859445,0.27209974684454391],"hpluv":[173.96527373508107,100.324581054675164,56.7603710001512951],"hsluv":[173.96527373508107,97.6975811674153647,56.7603710001512951]},"#119999":{"lch":[57.2700846473106822,44.3289506401906692,192.177050630061103],"luv":[57.2700846473106822,-43.3315696575835219,-9.35045110518458422],"rgb":[0.0666666666666666657,0.6,0.6],"xyz":[0.173710524809704198,0.252003232803488575,0.340866424485661845],"hpluv":[192.177050630061103,98.2197789195824384,57.2700846473106822],"hsluv":[192.177050630061103,97.8353178900151903,57.2700846473106822]},"#1199aa":{"lch":[57.849232550626823,48.3524707931101716,209.625127722111756],"luv":[57.849232550626823,-42.0317498411296384,-23.9017454821038378],"rgb":[0.0666666666666666657,0.6,0.66666666666666663],"xyz":[0.188768217774956726,0.258026309989589697,0.42017027410266039],"hpluv":[209.625127722111756,106.062142541807418,57.849232550626823],"hsluv":[209.625127722111756,97.9750198241805492,57.849232550626823]},"#1199bb":{"lch":[58.4975141278551263,56.1838887208170235,223.492153209811363],"luv":[58.4975141278551263,-40.7596491137071553,-38.6688551152037832],"rgb":[0.0666666666666666657,0.6,0.733333333333333282],"xyz":[0.2059058098822934,0.264881346832524456,0.510428259201302192],"hpluv":[223.492153209811363,121.8747424026255,58.4975141278551263],"hsluv":[223.492153209811363,98.1135798876595686,58.4975141278551263]},"#1199cc":{"lch":[59.2140605434028515,66.4726101728698211,233.498474693243395],"luv":[59.2140605434028515,-39.5408457239066138,-53.4334111079625274],"rgb":[0.0666666666666666657,0.6,0.8],"xyz":[0.225198185326015127,0.272598297010013257,0.612034769871572348],"hpluv":[233.498474693243395,142.448281943894045,59.2140605434028515],"hsluv":[233.498474693243395,98.2484961488154482,59.2140605434028515]},"#1199dd":{"lch":[59.9975033067865553,78.1149919905427907,240.560044488236258],"luv":[59.9975033067865553,-38.3943918665613637,-68.0281018909060151],"rgb":[0.0666666666666666657,0.6,0.866666666666666696],"xyz":[0.24671651087664867,0.281205627230266819,0.725364617771578346],"hpluv":[240.560044488236258,165.211601361935521,59.9975033067865553],"hsluv":[240.560044488236258,98.3778942246892285,59.9975033067865553]},"#1199ee":{"lch":[60.8460449735814706,90.4022578402124,245.60857134482],"luv":[60.8460449735814706,-37.3332566635070862,-82.3334450239084106],"rgb":[0.0666666666666666657,0.6,0.933333333333333348],"xyz":[0.270528691142823408,0.290730499336736836,0.850775433840101569],"hpluv":[245.60857134482,188.532510112076068,60.8460449735814706],"hsluv":[245.60857134482,98.5004851129029788,60.8460449735814706]},"#1199ff":{"lch":[61.7575303771721877,102.910627792409826,249.306643617498082],"luv":[61.7575303771721877,-36.3651553748586,-96.2713497733895167],"rgb":[0.0666666666666666657,0.6,1],"xyz":[0.296699739552654829,0.301198918700669505,0.988609622131883414],"hpluv":[249.306643617498082,211.450946466820028,61.7575303771721877],"hsluv":[249.306643617498082,99.9999999999986215,61.7575303771721877]},"#000000":{"lch":[0,0,0],"luv":[0,0,0],"rgb":[0,0,0],"xyz":[0,0,0],"hpluv":[0,0,0],"hsluv":[0,0,0]},"#000011":{"lch":[0.365533479526218952,1.47895322486610792,265.8743202181779],"luv":[0.365533479526218952,-0.106402530834795422,-1.47512072142377915],"rgb":[0,0,0.0666666666666666657],"xyz":[0.00101166549963712174,0.000404666199854854377,0.00532810496475563146],"hpluv":[265.8743202181779,513.41269684428039,0.365533479526218952],"hsluv":[265.8743202181779,100.000000000000867,0.365533479526218952]},"#000022":{"lch":[1.04313510374015572,4.22053823263236,265.8743202181779],"luv":[1.04313510374015572,-0.303644457367982512,-4.20960128950726],"rgb":[0,0,0.133333333333333331],"xyz":[0.0028870236381141408,0.00115480945524567245,0.0152049911607348275],"hpluv":[265.8743202181779,513.41269684428039,1.04313510374015572],"hsluv":[265.8743202181779,100.000000000000838,1.04313510374015572]},"#000033":{"lch":[2.15879662382733661,8.73451929157831,265.8743202181779],"luv":[2.15879662382733661,-0.62840050829424543,-8.71188498868810868],"rgb":[0,0,0.2],"xyz":[0.00597477437057188088,0.00238990974822878574,0.0314671450183459725],"hpluv":[265.8743202181779,513.412696844280276,2.15879662382733661],"hsluv":[265.8743202181779,100.000000000000838,2.15879662382733661]},"#000044":{"lch":[3.76955286085941,15.251660031516769,265.874320218177957],"luv":[3.76955286085941,-1.0972728545435857,-15.2121374566379668],"rgb":[0,0,0.266666666666666663],"xyz":[0.0104327696147907597,0.00417310784591636182,0.054945919971232611],"hpluv":[265.874320218177957,513.41269684428039,3.76955286085941],"hsluv":[265.874320218177957,100.000000000000981,3.76955286085941]},"#000055":{"lch":[5.92388346812606947,23.9681097618519345,265.8743202181779],"luv":[5.92388346812606947,-1.7243733575266309,-23.905999708860417],"rgb":[0,0,0.333333333333333315],"xyz":[0.0163951836541527535,0.00655807346166119385,0.0863479672452065194],"hpluv":[265.8743202181779,513.41269684428039,5.92388346812606947],"hsluv":[265.8743202181779,100.000000000000838,5.92388346812606947]},"#000066":{"lch":[8.64689012997685,34.9854302247980513,265.8743202181779],"luv":[8.64689012997685,-2.51700882467034193,-34.8947703043127149],"rgb":[0,0,0.4],"xyz":[0.0239801794276609283,0.00959207177106450627,0.126295611652350481],"hpluv":[265.8743202181779,513.412696844280276,8.64689012997685],"hsluv":[265.8743202181779,100.000000000000838,8.64689012997685]},"#000077":{"lch":[11.4958709948623863,46.5124439559768703,265.874320218177957],"luv":[11.4958709948623863,-3.34631391244679577,-46.3919133681426672],"rgb":[0,0,0.466666666666666674],"xyz":[0.0332941924478628443,0.0133176769791453226,0.17534941355874839],"hpluv":[265.874320218177957,513.412696844280276,11.4958709948623863],"hsluv":[265.874320218177957,100.000000000001,11.4958709948623863]},"#000088":{"lch":[14.2727431262745554,57.7477048111956535,265.874320218177957],"luv":[14.2727431262745554,-4.15462898927595781,-57.598059593379169],"rgb":[0,0,0.533333333333333326],"xyz":[0.0444346095498066723,0.0177738438199229153,0.234022276962320558],"hpluv":[265.874320218177957,513.41269684428039,14.2727431262745554],"hsluv":[265.874320218177957,100.000000000000952,14.2727431262745554]},"#000099":{"lch":[16.9872454361813823,68.7306165552763701,265.874320218177957],"luv":[16.9872454361813823,-4.94478893879780923,-68.5525106354185567],"rgb":[0,0,0.6],"xyz":[0.0574915736588793858,0.0229966294635520763,0.302788954603438465],"hpluv":[265.874320218177957,513.412696844280163,16.9872454361813823],"hsluv":[265.874320218177957,100.000000000000952,16.9872454361813823]},"#0000aa":{"lch":[19.6469460262523299,79.4917998262647529,265.8743202181779],"luv":[19.6469460262523299,-5.71899674710351302,-79.2858077831434116],"rgb":[0,0,0.66666666666666663],"xyz":[0.0725492666241319278,0.0290197066496531778,0.382092804220437066],"hpluv":[265.8743202181779,513.41269684428039,19.6469460262523299],"hsluv":[265.8743202181779,100.000000000000824,19.6469460262523299]},"#0000bb":{"lch":[22.2578820656552736,90.0556810893410926,265.8743202181779],"luv":[22.2578820656552736,-6.47900976369593895,-89.8223142039161644],"rgb":[0,0,0.733333333333333282],"xyz":[0.0896868587314685745,0.0358747434925879363,0.472350789319078812],"hpluv":[265.8743202181779,513.41269684428039,22.2578820656552736],"hsluv":[265.8743202181779,100.000000000000796,22.2578820656552736]},"#0000cc":{"lch":[24.8249727536546274,100.442163488877583,265.874320218177957],"luv":[24.8249727536546274,-7.22625991008361535,-100.18188146585355],"rgb":[0,0,0.8],"xyz":[0.108979234175190315,0.043591693670076738,0.573957299989349],"hpluv":[265.874320218177957,513.41269684428039,24.8249727536546274],"hsluv":[265.874320218177957,100.000000000001,24.8249727536546274]},"#0000dd":{"lch":[27.3522973211786535,110.667751646404724,265.8743202181779],"luv":[27.3522973211786535,-7.96193460279319343,-110.380971421034161],"rgb":[0,0,0.866666666666666696],"xyz":[0.130497559725823858,0.052199023890330272,0.687287147889355],"hpluv":[265.8743202181779,513.412696844280276,27.3522973211786535],"hsluv":[265.8743202181779,100.000000000000824,27.3522973211786535]},"#0000ee":{"lch":[29.8432887766479737,120.746335558760222,265.8743202181779],"luv":[29.8432887766479737,-8.68703315051946,-120.433438072283309],"rgb":[0,0,0.933333333333333348],"xyz":[0.154309739991998596,0.0617238959968003,0.812697963957878189],"hpluv":[265.8743202181779,513.41269684428039,29.8432887766479737],"hsluv":[265.8743202181779,100.000000000000838,29.8432887766479737]},"#0000ff":{"lch":[32.3008729039800215,130.68975298582734,265.8743202181779],"luv":[32.3008729039800215,-9.40240721482262,-130.351088503561101],"rgb":[0,0,1],"xyz":[0.18048078840183,0.072192315360733,0.95053215224966],"hpluv":[265.8743202181779,513.41269684428039,32.3008729039800215],"hsluv":[265.8743202181779,100.000000000000824,32.3008729039800215]},"#001100":{"lch":[3.62113466359794112,5.60448249758782424,127.715012949240474],"luv":[3.62113466359794112,-3.42845440085753106,4.43350025228474376],"rgb":[0,0.0666666666666666657,0],"xyz":[0.00200440026092840902,0.00400880052185687355,0.00066813342030945088],"hpluv":[127.715012949240474,196.394882900214469,3.62113466359794112],"hsluv":[127.715012949240474,100.000000000002217,3.62113466359794112]},"#001111":{"lch":[3.9866681431241604,3.15408977882195618,192.17705063006116],"luv":[3.9866681431241604,-3.08312421078118115,-0.665302512969894178],"rgb":[0,0.0666666666666666657,0.0666666666666666657],"xyz":[0.00301606576056553076,0.00441346672171172814,0.00599623838506508234],"hpluv":[192.17705063006116,100.392967527320764,3.9866681431241604],"hsluv":[192.17705063006116,99.9999999999914,3.9866681431241604]},"#001122":{"lch":[4.66426976733809706,7.30142401028103372,246.87889630792742],"luv":[4.66426976733809706,-2.86709314837997242,-6.71495118794031054],"rgb":[0,0.0666666666666666657,0.133333333333333331],"xyz":[0.00489142389904254939,0.005163609977102546,0.0158731245810442775],"hpluv":[246.87889630792742,198.638412351210178,4.66426976733809706],"hsluv":[246.87889630792742,99.9999999999921414,4.66426976733809706]},"#001133":{"lch":[5.77993128742527773,13.8979406242137369,257.974087263939282],"luv":[5.77993128742527773,-2.89569220292521434,-13.5929290537429299],"rgb":[0,0.0666666666666666657,0.2],"xyz":[0.00797917463150029,0.00639871027008565886,0.0321352784386554208],"hpluv":[257.974087263939282,305.117489912579458,5.77993128742527773],"hsluv":[257.974087263939282,99.9999999999925,5.77993128742527773]},"#001144":{"lch":[7.39068752445735111,21.802452480470059,261.611708702028636],"luv":[7.39068752445735111,-3.1805605696034065,-21.569213444774455],"rgb":[0,0.0666666666666666657,0.266666666666666663],"xyz":[0.0124371698757191687,0.00818190836777323537,0.0556140533915420593],"hpluv":[261.611708702028636,374.334482048802613,7.39068752445735111],"hsluv":[261.611708702028636,99.9999999999929656,7.39068752445735111]},"#001155":{"lch":[9.4550232844459714,31.0886305445366773,263.238579866128873],"luv":[9.4550232844459714,-3.6602302532303379,-30.8724094237562916],"rgb":[0,0.0666666666666666657,0.333333333333333315],"xyz":[0.0183995839150811608,0.0105668739835180665,0.0870161006655159747],"hpluv":[263.238579866128873,417.232678203522596,9.4550232844459714],"hsluv":[263.238579866128873,99.9999999999929514,9.4550232844459714]},"#001166":{"lch":[11.6894020192987682,40.9340765206813302,264.100423242359113],"luv":[11.6894020192987682,-4.20741678933990659,-40.7172723123955791],"rgb":[0,0.0666666666666666657,0.4],"xyz":[0.025984579688589339,0.0136008722929213798,0.126963745072659923],"hpluv":[264.100423242359113,444.357002567308371,11.6894020192987682],"hsluv":[264.100423242359113,99.9999999999928235,11.6894020192987682]},"#001177":{"lch":[14.0165943101603965,51.0460922578313898,264.608714664977526],"luv":[14.0165943101603965,-4.79613195559092276,-50.8202779710972621],"rgb":[0,0.0666666666666666657,0.466666666666666674],"xyz":[0.0352985927087912515,0.0173264775010021979,0.176017546979057832],"hpluv":[264.608714664977526,462.124851551559573,14.0165943101603965],"hsluv":[264.608714664977526,99.9999999999931504,14.0165943101603965]},"#001188":{"lch":[16.3962585295353378,61.2721603523949625,264.931782730652174],"luv":[16.3962585295353378,-5.41289085195630371,-61.0325998698597871],"rgb":[0,0.0666666666666666657,0.533333333333333326],"xyz":[0.0464390098107350796,0.0217826443417797888,0.23469041038263],"hpluv":[264.931782730652174,474.195864485329537,16.3962585295353378],"hsluv":[264.931782730652174,99.9999999999933209,16.3962585295353378]},"#001199":{"lch":[18.8023327262484941,71.5200065602600148,265.148843888859801],"luv":[18.8023327262484941,-6.04826966448705239,-71.2638040834565771],"rgb":[0,0.0666666666666666657,0.6],"xyz":[0.059495973919807793,0.0270054299854089498,0.303457088023747934],"hpluv":[265.148843888859801,482.675370310212884,18.8023327262484941],"hsluv":[265.148843888859801,99.9999999999930651,18.8023327262484941]},"#0011aa":{"lch":[21.2181090603332123,81.7349311996174919,265.301088447161305],"luv":[21.2181090603332123,-6.69569086805443892,-81.4602154551880488],"rgb":[0,0.0666666666666666657,0.66666666666666663],"xyz":[0.0745536668850603351,0.0330285071715100548,0.382760937640746535],"hpluv":[265.301088447161305,488.81030222212587,21.2181090603332123],"hsluv":[265.301088447161305,99.9999999999931788,21.2181090603332123]},"#0011bb":{"lch":[23.6329047323064216,91.8852368853417,265.411605614461337],"luv":[23.6329047323064216,-7.35054503717070418,-91.590754146539723],"rgb":[0,0.0666666666666666657,0.733333333333333282],"xyz":[0.0916912589923969817,0.0398835440144448133,0.473018922739388281],"hpluv":[265.411605614461337,493.364573724961247,23.6329047323064216],"hsluv":[265.411605614461337,99.999999999993,23.6329047323064216]},"#0011cc":{"lch":[26.0399131129061345,101.953231398784169,265.494123438592396],"luv":[26.0399131129061345,-8.00958293333115,-101.638122640513785],"rgb":[0,0.0666666666666666657,0.8],"xyz":[0.110983634436118722,0.047600494191933615,0.574625433409658437],"hpluv":[265.494123438592396,496.821968194535657,26.0399131129061345],"hsluv":[265.494123438592396,99.9999999999927383,26.0399131129061345]},"#0011dd":{"lch":[28.43483595206839,111.929749681002491,265.557201901085818],"luv":[28.43483595206839,-8.67050070949402496,-111.593419524175076],"rgb":[0,0.0666666666666666657,0.866666666666666696],"xyz":[0.132501959986752266,0.056207824412187149,0.687955281309664435],"hpluv":[265.557201901085818,499.498435149301031,28.43483595206839],"hsluv":[265.557201901085818,99.9999999999932214,28.43483595206839]},"#0011ee":{"lch":[30.8150119654139019,121.810820553676152,265.60639254385444],"luv":[30.8150119654139019,-9.33165721729429798,-121.452855781734542],"rgb":[0,0.0666666666666666657,0.933333333333333348],"xyz":[0.156314140252927,0.0657326965186571799,0.813366097378187658],"hpluv":[265.60639254385444,501.606152289563909,30.8150119654139019],"hsluv":[265.60639254385444,99.9999999999933635,30.8150119654139019]},"#0011ff":{"lch":[33.1788572452669683,131.59562707663585,265.645416939351662],"luv":[33.1788572452669683,-9.99188030865750321,-131.215743695604147],"rgb":[0,0.0666666666666666657,1],"xyz":[0.182485188662758396,0.076201115882589876,0.951200285669969503],"hpluv":[265.645416939351662,503.291227463659,33.1788572452669683],"hsluv":[265.645416939351662,99.9999999999995,33.1788572452669683]},"#55aa00":{"lch":[62.2364297391950743,84.7105424007581291,119.071642820441127],"luv":[62.2364297391950743,-41.1610955154551661,74.0380997176333437],"rgb":[0.333333333333333315,0.66666666666666663,0],"xyz":[0.181203244729902568,0.306798408854291604,0.0496696976001293408],"hpluv":[119.071642820441127,172.715819722381468,62.2364297391950743],"hsluv":[119.071642820441127,100.00000000000216,62.2364297391950743]},"#55aa11":{"lch":[62.270812500354296,83.3839078255156352,119.512873370738717],"luv":[62.270812500354296,-41.0765057562956173,72.5644317769187808],"rgb":[0.333333333333333315,0.66666666666666663,0.0666666666666666657],"xyz":[0.182214910229539701,0.307203075054146457,0.0549978025648849705],"hpluv":[119.512873370738717,169.917081036602212,62.270812500354296],"hsluv":[119.512873370738717,97.826098763204655,62.270812500354296]},"#55aa22":{"lch":[62.3344691942433826,80.9675552156414,120.358690899927907],"luv":[62.3344691942433826,-40.9219560187625078,69.8651451955580285],"rgb":[0.333333333333333315,0.66666666666666663,0.133333333333333331],"xyz":[0.184090268368016702,0.307953218309537258,0.0648746887608641631],"hpluv":[120.358690899927907,164.824621464176317,62.3344691942433826],"hsluv":[120.358690899927907,93.8493385636837729,62.3344691942433826]},"#55aa33":{"lch":[62.4390542004851312,77.1100321042589343,121.835090998601942],"luv":[62.4390542004851312,-40.6737079775314143,65.5103543760705094],"rgb":[0.333333333333333315,0.66666666666666663,0.2],"xyz":[0.187178019100474435,0.309188318602520384,0.0811368426184753133],"hpluv":[121.835090998601942,156.708983850290963,62.4390542004851312],"hsluv":[121.835090998601942,87.4478443822902,62.4390542004851312]},"#55aa44":{"lch":[62.5895604608427192,71.8060360850404322,124.168545167949461],"luv":[62.5895604608427192,-40.3283690350335959,59.4115264003566281],"rgb":[0.333333333333333315,0.66666666666666663,0.266666666666666663],"xyz":[0.191636014344693323,0.310971516700207951,0.104615617571361952],"hpluv":[124.168545167949461,145.578881327618376,62.5895604608427192],"hsluv":[124.168545167949461,78.5131262768233569,62.5895604608427192]},"#55aa55":{"lch":[62.7899606618147317,65.2067785819955361,127.715012949239551],"luv":[62.7899606618147317,-39.8892256495404212,51.582687503865472],"rgb":[0.333333333333333315,0.66666666666666663,0.333333333333333315],"xyz":[0.197598428384055336,0.313356482315952811,0.136017664845335867],"hpluv":[127.715012949239551,131.777681042751937,62.7899606618147317],"hsluv":[127.715012949239551,67.0983271543339583,62.7899606618147317]},"#55aa66":{"lch":[63.0434325957243402,57.6560159218084,133.059858461454269],"luv":[63.0434325957243402,-39.3653397911167744,42.1258376190401904],"rgb":[0.333333333333333315,0.66666666666666663,0.4],"xyz":[0.205183424157563493,0.31639048062535613,0.175965309252479829],"hpluv":[133.059858461454269,116.049721847977636,63.0434325957243402],"hsluv":[133.059858461454269,68.1368400599560289,63.0434325957243402]},"#55aa77":{"lch":[63.3524771250310863,49.7736139598232441,141.163090238883626],"luv":[63.3524771250310863,-38.7703675351212311,31.2133184364163512],"rgb":[0.333333333333333315,0.66666666666666663,0.466666666666666674],"xyz":[0.214497437177765427,0.320116085833436925,0.225019111158877738],"hpluv":[141.163090238883626,99.6953496544650903,63.3524771250310863],"hsluv":[141.163090238883626,69.3257510819996696,63.3524771250310863]},"#55aa88":{"lch":[63.7189896387035901,42.62351374085884,153.427389325734708],"luv":[63.7189896387035901,-38.1211143540371324,19.0668446268281784],"rgb":[0.333333333333333315,0.66666666666666663,0.533333333333333326],"xyz":[0.225637854279709227,0.324572252674214523,0.283691974562449878],"hpluv":[153.427389325734708,84.882799477410984,63.7189896387035901],"hsluv":[153.427389325734708,70.6362499177174783,63.7189896387035901]},"#55aa99":{"lch":[64.1443101574831473,37.9035590936142697,170.991128647613664],"luv":[64.1443101574831473,-37.4359848569684885,5.93521943587048106],"rgb":[0.333333333333333315,0.66666666666666663,0.6],"xyz":[0.238694818388781954,0.329795038317843681,0.352458652203567813],"hpluv":[170.991128647613664,74.9827180661079211,64.1443101574831473],"hsluv":[170.991128647613664,72.0364673991159918,64.1443101574831473]},"#55aaaa":{"lch":[64.6292640862610881,37.5790288142004414,192.177050630061],"luv":[64.6292640862610881,-36.7335179653569526,-7.92666793219602717],"rgb":[0.333333333333333315,0.66666666666666663,0.66666666666666663],"xyz":[0.253752511354034482,0.335818115503944803,0.431762501820566413],"hpluv":[192.177050630061,73.7828909738526,64.6292640862610881],"hsluv":[192.177050630061,73.4940830927894808,64.6292640862610881]},"#55aabb":{"lch":[65.1741997434662466,42.3607987370151307,211.725401595501864],"luv":[65.1741997434662466,-36.0311661131296148,-22.2753751520813346],"rgb":[0.333333333333333315,0.66666666666666663,0.733333333333333282],"xyz":[0.270890103461371157,0.342673152346879561,0.522020486919208104],"hpluv":[211.725401595501864,82.4760322189960249,65.1741997434662466],"hsluv":[211.725401595501864,74.9784994025983,65.1741997434662466]},"#55aacc":{"lch":[65.7790257871148327,51.0903516363502916,226.227071697937646],"luv":[65.7790257871148327,-35.3444111183519212,-36.8916878581455236],"rgb":[0.333333333333333315,0.66666666666666663,0.8],"xyz":[0.290182478905092855,0.350390102524368363,0.62362699758947826],"hpluv":[226.227071697937646,98.5577501957325808,65.7790257871148327],"hsluv":[226.227071697937646,76.4624197891718,65.7790257871148327]},"#55aadd":{"lch":[66.4432499478878071,62.1650528283955595,236.084470311275709],"luv":[66.4432499478878071,-34.6862381636523693,-51.5883579425784404],"rgb":[0.333333333333333315,0.66666666666666663,0.866666666666666696],"xyz":[0.311700804455726455,0.358997432744621869,0.736956845489484258],"hpluv":[236.084470311275709,118.722973851074883,66.4432499478878071],"hsluv":[236.084470311275709,77.9227939155192928,66.4432499478878071]},"#55aaee":{"lch":[67.1660194476775274,74.4631251020179832,242.774049894046698],"luv":[67.1660194476775274,-34.0669326024190866,-66.2133000462974763],"rgb":[0.333333333333333315,0.66666666666666663,0.933333333333333348],"xyz":[0.335512984721901164,0.368522304851091886,0.862367661558007481],"hpluv":[242.774049894046698,140.679551339708695,67.1660194476775274],"hsluv":[242.774049894046698,80.7550915423080085,67.1660194476775274]},"#55aaff":{"lch":[67.9461628502375135,87.3278464079016,247.446578213330071],"luv":[67.9461628502375135,-33.4941307575646476,-80.6492155140842897],"rgb":[0.333333333333333315,0.66666666666666663,1],"xyz":[0.361684033131732585,0.37899072421502461,1.00020184984978933],"hpluv":[247.446578213330071,163.089927997179217,67.9461628502375135],"hsluv":[247.446578213330071,99.9999999999981,67.9461628502375135]},"#002200":{"lch":[10.1376941245203973,15.6902558355344119,127.715012949240474],"luv":[10.1376941245203973,-9.59826829561359141,12.4119850914324186],"rgb":[0,0.133333333333333331,0],"xyz":[0.00572002399569634425,0.0114400479913928481,0.00190667466523206119],"hpluv":[127.715012949240474,196.394882900214583,10.1376941245203973],"hsluv":[127.715012949240474,100.000000000002331,10.1376941245203973]},"#002211":{"lch":[10.4423176349325608,11.2803579121031614,143.951720967420982],"luv":[10.4423176349325608,-9.12041102953238614,6.63811549142769763],"rgb":[0,0.133333333333333331,0.0666666666666666657],"xyz":[0.00673168949533346599,0.0118447141912477027,0.00723477962998769243],"hpluv":[143.951720967420982,137.077225818420459,10.4423176349325608],"hsluv":[143.951720967420982,99.9999999999911,10.4423176349325608]},"#002222":{"lch":[10.9891417742670896,8.69416226881610399,192.17705063006116],"luv":[10.9891417742670896,-8.49854762011842,-1.83388819318003415],"rgb":[0,0.133333333333333331,0.133333333333333331],"xyz":[0.00860704763381048461,0.0125948574466385205,0.0171116658259668902],"hpluv":[192.17705063006116,100.392967527320849,10.9891417742670896],"hsluv":[192.17705063006116,99.9999999999915,10.9891417742670896]},"#002233":{"lch":[11.8439988341371283,14.4341695325786503,236.81663495428262],"luv":[11.8439988341371283,-7.90011340243738758,-12.0802921456333543],"rgb":[0,0.133333333333333331,0.2],"xyz":[0.0116947983662682251,0.0138299577396216334,0.0333738196835780335],"hpluv":[236.81663495428262,154.643892414528665,11.8439988341371283],"hsluv":[236.81663495428262,99.9999999999918572,11.8439988341371283]},"#002244":{"lch":[12.9926705590666103,23.9154033254141893,251.756603241059679],"luv":[12.9926705590666103,-7.48682111947174356,-22.713300635140282],"rgb":[0,0.133333333333333331,0.266666666666666663],"xyz":[0.0161527936104871039,0.0156131558373092099,0.056852594636464672],"hpluv":[251.756603241059679,233.570832873869165,12.9926705590666103],"hsluv":[251.756603241059679,99.9999999999922551,12.9926705590666103]},"#002255":{"lch":[14.3995425627967926,34.0053227001087492,257.612107564284656],"luv":[14.3995425627967926,-7.29512566501762105,-33.2135983216232162],"rgb":[0,0.133333333333333331,0.333333333333333315],"xyz":[0.022115207649849096,0.0179981214530540411,0.0882546419104385804],"hpluv":[257.612107564284656,299.666041626864057,14.3995425627967926],"hsluv":[257.612107564284656,99.9999999999922551,14.3995425627967926]},"#002266":{"lch":[16.0198287291043684,44.1221041927951489,260.479541157990241],"luv":[16.0198287291043684,-7.29778599254304705,-43.514392998258792],"rgb":[0,0.133333333333333331,0.4],"xyz":[0.0297002034233572743,0.0210321197624573561,0.128202286317582542],"hpluv":[260.479541157990241,349.492349810916096,16.0198287291043684],"hsluv":[260.479541157990241,99.9999999999926672,16.0198287291043684]},"#002277":{"lch":[17.8086814865908138,54.1839210795750787,262.094384047744654],"luv":[17.8086814865908138,-7.45254493353373,-53.6689563674502708],"rgb":[0,0.133333333333333331,0.466666666666666674],"xyz":[0.0390142164435591868,0.0247577249705381724,0.177256088223980451],"hpluv":[262.094384047744654,386.080609388904179,17.8086814865908138],"hsluv":[262.094384047744654,99.9999999999926246,17.8086814865908138]},"#002288":{"lch":[19.7262797638069571,64.1945165648047862,263.091662768615947],"luv":[19.7262797638069571,-7.7213996360385595,-63.7284547486409778],"rgb":[0,0.133333333333333331,0.533333333333333326],"xyz":[0.0501546335455030148,0.0292138918113157633,0.235928951627552619],"hpluv":[263.091662768615947,412.944865974292611,19.7262797638069571],"hsluv":[263.091662768615947,99.9999999999928093,19.7262797638069571]},"#002299":{"lch":[21.7396965211461932,74.1610579713059082,263.749129578079874],"luv":[21.7396965211461932,-8.0748025544340809,-73.7201470639492129],"rgb":[0,0.133333333333333331,0.6],"xyz":[0.0632115976545757352,0.0344366774549449278,0.304695629268670554],"hpluv":[263.749129578079874,432.874263951475,21.7396965211461932],"hsluv":[263.749129578079874,99.9999999999928662,21.7396965211461932]},"#0022aa":{"lch":[23.8228560713303921,84.0831956926279389,264.204285416148139],"luv":[23.8228560713303921,-8.49087961251211532,-83.6533846373868641],"rgb":[0,0.133333333333333331,0.66666666666666663],"xyz":[0.0782692906198282773,0.0404597546410460224,0.383999478885669154],"hpluv":[264.204285416148139,447.872821658188343,23.8228560713303921],"hsluv":[264.204285416148139,99.9999999999925251,23.8228560713303921]},"#0022bb":{"lch":[25.9556350824861326,93.9557715434331868,264.531619021467236],"luv":[25.9556350824861326,-8.95364890679069,-93.5281731756572725],"rgb":[0,0.133333333333333331,0.733333333333333282],"xyz":[0.0954068827271649239,0.0473147914839807809,0.474257463984310901],"hpluv":[264.531619021467236,459.336683180505304,25.9556350824861326],"hsluv":[264.531619021467236,99.9999999999932783,25.9556350824861326]},"#0022cc":{"lch":[28.122733334265547,103.772183036952711,264.774345627526145],"luv":[28.122733334265547,-9.45141286238599143,-103.340876555018355],"rgb":[0,0.133333333333333331,0.8],"xyz":[0.114699258170886664,0.0550317416614695826,0.575863974654581057],"hpluv":[264.774345627526145,468.233789407088068,28.122733334265547],"hsluv":[264.774345627526145,99.9999999999932,28.122733334265547]},"#0022dd":{"lch":[30.3126112219004114,113.526334495176528,264.958927468127968],"luv":[30.3126112219004114,-9.97554123069502552,-113.087210599012522],"rgb":[0,0.133333333333333331,0.866666666666666696],"xyz":[0.136217583721520208,0.0636390718817231166,0.689193822554587],"hpluv":[264.958927468127968,475.239568383116307,30.3126112219004114],"hsluv":[264.958927468127968,99.9999999999930651,30.3126112219004114]},"#0022ee":{"lch":[32.516600051948771,123.213441320075319,265.102292473050682],"luv":[32.516600051948771,-10.519601137712538,-122.76355368691101],"rgb":[0,0.133333333333333331,0.933333333333333348],"xyz":[0.160029763987694945,0.0731639439881931475,0.814604638623110278],"hpluv":[265.102292473050682,480.830806343612153,32.516600051948771],"hsluv":[265.102292473050682,99.9999999999931504,32.516600051948771]},"#0022ff":{"lch":[34.728199222084136,132.830192238289243,265.215668718406278],"luv":[34.728199222084136,-11.0787458291525667,-132.367372720447662],"rgb":[0,0.133333333333333331,1],"xyz":[0.186200812397526339,0.0836323633521258575,0.952438826914892123],"hpluv":[265.215668718406278,485.348691920142073,34.728199222084136],"hsluv":[265.215668718406278,99.9999999999995595,34.728199222084136]},"#55bb00":{"lch":[67.6287132051522093,94.1564927152114421,120.799924159261636],"luv":[67.6287132051522093,-48.2120532219748839,80.8767150949587403],"rgb":[0.333333333333333315,0.733333333333333282,0],"xyz":[0.215157742638501348,0.374707404671490163,0.0609878635696619598],"hpluv":[120.799924159261636,176.668237076728246,67.6287132051522093],"hsluv":[120.799924159261636,100.000000000002245,67.6287132051522093]},"#55bb11":{"lch":[67.658807387059241,92.983820197622,121.168613223743336],"luv":[67.658807387059241,-48.1245535730997,79.5614112615755],"rgb":[0.333333333333333315,0.733333333333333282,0.0666666666666666657],"xyz":[0.21616940813813848,0.375112070871345,0.0663159685344176],"hpluv":[121.168613223743336,174.390319462510746,67.658807387059241],"hsluv":[121.168613223743336,98.2170484527892853,67.658807387059241]},"#55bb22":{"lch":[67.7145367797011,90.8418307914021739,121.8702408444057],"luv":[67.7145367797011,-47.9642424389893733,77.1470651987980318],"rgb":[0.333333333333333315,0.733333333333333282,0.133333333333333331],"xyz":[0.218044766276615481,0.375862214126735816,0.076192854730396789],"hpluv":[121.8702408444057,170.232819736279453,67.7145367797011],"hsluv":[121.8702408444057,94.9476871157098401,67.7145367797011]},"#55bb33":{"lch":[67.8061331119394595,87.4049119918652337,123.079288563119889],"luv":[67.8061331119394595,-47.7055226907732077,73.2379802090816128],"rgb":[0.333333333333333315,0.733333333333333282,0.2],"xyz":[0.221132517009073215,0.377097314419718943,0.0924550085880079253],"hpluv":[123.079288563119889,163.570954697809668,67.8061331119394595],"hsluv":[123.079288563119889,89.6636954368763526,67.8061331119394595]},"#55bb44":{"lch":[67.9380247917114701,82.6396215824211851,124.951716096499126],"luv":[67.9380247917114701,-47.3430758547011195,67.7343356349037293],"rgb":[0.333333333333333315,0.733333333333333282,0.266666666666666663],"xyz":[0.225590512253292103,0.378880512517406509,0.115933783540894564],"hpluv":[124.951716096499126,154.352877500253584,67.9380247917114701],"hsluv":[124.951716096499126,82.2446152582935213,67.9380247917114701]},"#55bb55":{"lch":[68.1137800414251,76.6309713561306154,127.715012949239735],"luv":[68.1137800414251,-46.8777966745344372,60.6199467990950964],"rgb":[0.333333333333333315,0.733333333333333282,0.333333333333333315],"xyz":[0.231552926292654115,0.38126547813315137,0.147335830814868479],"hpluv":[127.715012949239735,142.760701907139094,68.1137800414251],"hsluv":[127.715012949239735,72.6906423420812189,68.1137800414251]},"#55bb66":{"lch":[68.3363083667640723,69.6002362161904813,131.717534816394789],"luv":[68.3363083667640723,-46.3160914021311,51.9520216986687728],"rgb":[0.333333333333333315,0.733333333333333282,0.4],"xyz":[0.239137922066162273,0.384299476442554688,0.187283475222012441],"hpluv":[131.717534816394789,129.240469264566769,68.3363083667640723],"hsluv":[131.717534816394789,73.4099839145656432,68.3363083667640723]},"#55bb77":{"lch":[68.6079661831172416,61.943926665161591,137.498849513297245],"luv":[68.6079661831172416,-45.6690129611091,41.8496273084595956],"rgb":[0.333333333333333315,0.733333333333333282,0.466666666666666674],"xyz":[0.248451935086364206,0.388025081650635484,0.23633727712841035],"hpluv":[137.498849513297245,114.568047908441656,68.6079661831172416],"hsluv":[137.498849513297245,74.2430874467708719,68.6079661831172416]},"#55bb88":{"lch":[68.930619778887035,54.3103726013937376,145.860320527647957],"luv":[68.930619778887035,-44.9511677919681389,30.4796503628330058],"rgb":[0.333333333333333315,0.733333333333333282,0.533333333333333326],"xyz":[0.259592352188308,0.392481248491413082,0.29501014053198249],"hpluv":[145.860320527647957,99.9792617157038421,68.930619778887035],"hsluv":[145.860320527647957,75.173468866550067,68.930619778887035]},"#55bb99":{"lch":[69.3056876145919176,47.7211055743842465,157.786981113384826],"luv":[69.3056876145919176,-44.1794697421466793,18.0410191104680564],"rgb":[0.333333333333333315,0.733333333333333282,0.6],"xyz":[0.272649316297380762,0.397704034135042239,0.363776818173100425],"hpluv":[157.786981113384826,87.3737441175344713,69.3056876145919176],"hsluv":[157.786981113384826,76.1818306173187807,69.3056876145919176]},"#55bbaa":{"lch":[69.7341725511637378,43.6310575063277497,173.751690425302456],"luv":[69.7341725511637378,-43.37186937951342,4.74869725787034813],"rgb":[0.333333333333333315,0.733333333333333282,0.66666666666666663],"xyz":[0.287707009262633262,0.403727111321143362,0.443080667790099],"hpluv":[173.751690425302456,79.3943164161001675,69.7341725511637378],"hsluv":[173.751690425302456,77.247554342351421,69.7341725511637378]},"#55bbbb":{"lch":[70.2166895771587605,43.5254926875218899,192.177050630061075],"luv":[70.2166895771587605,-42.5461891389785691,-9.18097508120914796],"rgb":[0.333333333333333315,0.733333333333333282,0.733333333333333282],"xyz":[0.304844601369969936,0.41058214816407812,0.533338652888740716],"hpluv":[192.177050630061075,78.6579587560082274,70.2166895771587605],"hsluv":[192.177050630061075,78.350068429440185,70.2166895771587605]},"#55bbcc":{"lch":[70.753492069254392,47.9033609117661214,209.436295084806801],"luv":[70.753492069254392,-41.719164640327179,-23.5423721905035848],"rgb":[0.333333333333333315,0.733333333333333282,0.8],"xyz":[0.324136976813691691,0.418299098341566922,0.634945163559010872],"hpluv":[209.436295084806801,85.9127126132272849,70.753492069254392],"hsluv":[209.436295084806801,79.4699741443966445,70.753492069254392]},"#55bbdd":{"lch":[71.3444981992470701,55.9344204047748121,223.003151043067675],"luv":[71.3444981992470701,-40.905747403701568,-38.1494327004039633],"rgb":[0.333333333333333315,0.733333333333333282,0.866666666666666696],"xyz":[0.345655302364325179,0.426906428561820428,0.74827501145901687],"hpluv":[223.003151043067675,99.4850863142100081,71.3444981992470701],"hsluv":[223.003151043067675,80.5898663629362,71.3444981992470701]},"#55bbee":{"lch":[71.9893182406489,66.3452770137575385,232.793079173014576],"luv":[71.9893182406489,-40.1186787976363846,-52.8411524624918272],"rgb":[0.333333333333333315,0.733333333333333282,0.933333333333333348],"xyz":[0.369467482630499944,0.436431300668290445,0.873685827527540093],"hpluv":[232.793079173014576,116.944897502912525,71.9893182406489],"hsluv":[232.793079173014576,81.6948376758296888,71.9893182406489]},"#55bbff":{"lch":[72.6872829834048417,78.1278426582451146,239.741904567598624],"luv":[72.6872829834048417,-39.3683093588317803,-67.4840426816504788],"rgb":[0.333333333333333315,0.733333333333333282,1],"xyz":[0.395638531040331309,0.446899720032223169,1.01152001581932205],"hpluv":[239.741904567598624,136.39131713467242,72.6872829834048417],"hsluv":[239.741904567598624,99.9999999999976126,72.6872829834048417]},"#003300":{"lch":[17.3086983277836381,26.7889227675687067,127.71501294924046],"luv":[17.3086983277836381,-16.3877039844862402,21.1917328494772867],"rgb":[0,0.2,0],"xyz":[0.0118377460847071559,0.0236754921694146449,0.00394591536156894181],"hpluv":[127.71501294924046,196.394882900214611,17.3086983277836381],"hsluv":[127.71501294924046,100.000000000002402,17.3086983277836381]},"#003311":{"lch":[17.4974002223845133,22.6621201022865968,134.58430385811792],"luv":[17.4974002223845133,-15.9078557679049606,16.1403783226414816],"rgb":[0,0.2,0.0666666666666666657],"xyz":[0.0128494115843442776,0.0240801583692694977,0.00927402032632457241],"hpluv":[134.58430385811792,164.348724425256108,17.4974002223845133],"hsluv":[134.58430385811792,99.9999999999909335,17.4974002223845133]},"#003322":{"lch":[17.8416856931397234,17.1190432019509622,152.323942273369369],"luv":[17.8416856931397234,-15.1604156821769873,7.95131665159082601],"rgb":[0,0.2,0.133333333333333331],"xyz":[0.0147247697228212963,0.0248303016246603156,0.0191509065223037685],"hpluv":[152.323942273369369,121.753913655152402,17.8416856931397234],"hsluv":[152.323942273369369,99.9999999999912177,17.8416856931397234]},"#003333":{"lch":[18.3937448040413543,14.5523831926532932,192.17705063006116],"luv":[18.3937448040413543,-14.2249612699966086,-3.06958196712752551],"rgb":[0,0.2,0.2],"xyz":[0.017812520455279035,0.0260654019176434319,0.0354130603799149152],"hpluv":[192.17705063006116,100.392967527320849,18.3937448040413543],"hsluv":[192.17705063006116,99.9999999999915,18.3937448040413543]},"#003344":{"lch":[19.1608294605123817,20.3566459399555,229.223567805483242],"luv":[19.1608294605123817,-13.2951121246929258,-15.41535038578591],"rgb":[0,0.2,0.266666666666666663],"xyz":[0.0222705156994979156,0.0278486000153310084,0.0588918353328015537],"hpluv":[229.223567805483242,134.812835768594709,19.1608294605123817],"hsluv":[229.223567805483242,99.9999999999917577,19.1608294605123817]},"#003355":{"lch":[20.1371955335767296,30.6237106081975696,245.893961784182551],"luv":[20.1371955335767296,-12.5075398018694361,-27.9530517031554915],"rgb":[0,0.2,0.333333333333333315],"xyz":[0.0282329297388599076,0.0302335656310758379,0.0902938826067754552],"hpluv":[245.893961784182551,192.973712242731381,20.1371955335767296],"hsluv":[245.893961784182551,99.9999999999920419,20.1371955335767296]},"#003366":{"lch":[21.3076868402923836,41.8514919359335167,253.451236278131262],"luv":[21.3076868402923836,-11.9206140697212764,-40.1179054471226308],"rgb":[0,0.2,0.4],"xyz":[0.0358179255123680859,0.0332675639404791529,0.130241527013919417],"hpluv":[253.451236278131262,249.237832456686277,21.3076868402923836],"hsluv":[253.451236278131262,99.9999999999920846,21.3076868402923836]},"#003377":{"lch":[22.6513946103128916,53.0186284648852251,257.430711853641924],"luv":[22.6513946103128916,-11.5379190314963687,-51.7479602372902434],"rgb":[0,0.2,0.466666666666666674],"xyz":[0.04513193853257,0.0369931691485599692,0.179295328920317326],"hpluv":[257.430711853641924,297.011229333042763,22.6513946103128916],"hsluv":[257.430711853641924,99.9999999999922409,22.6513946103128916]},"#003388":{"lch":[24.1449124481648099,63.8887963004775941,259.778872090702237],"luv":[24.1449124481648099,-11.3369168899634012,-62.8748964862287636],"rgb":[0,0.2,0.533333333333333326],"xyz":[0.0562723556345138265,0.0414493359893375601,0.237968192323889494],"hpluv":[259.778872090702237,335.767299249073346,24.1449124481648099],"hsluv":[259.778872090702237,99.9999999999925677,24.1449124481648099]},"#003399":{"lch":[25.764809398314533,74.4520642325545481,261.279947020055374],"luv":[25.764809398314533,-11.2874373109462987,-73.5914643653724596],"rgb":[0,0.2,0.6],"xyz":[0.0693293197435865399,0.0466721216329667177,0.306734869965007428],"hpluv":[261.279947020055374,366.681615332004242,25.764809398314533],"hsluv":[261.279947020055374,99.9999999999928662,25.764809398314533]},"#0033aa":{"lch":[27.4892253326185596,84.7561178753388447,262.297068677869788],"luv":[27.4892253326185596,-11.360446037840406,-83.9913077831251],"rgb":[0,0.2,0.66666666666666663],"xyz":[0.084387012708839082,0.0526951988190678261,0.386038719582006029],"hpluv":[262.297068677869788,391.244172205097584,27.4892253326185596],"hsluv":[262.297068677869788,99.9999999999925819,27.4892253326185596]},"#0033bb":{"lch":[29.2987082140811808,94.8530383242648725,263.01737082090068],"luv":[29.2987082140811808,-11.531133966499155,-94.1495184734957178],"rgb":[0,0.2,0.733333333333333282],"xyz":[0.101524604816175729,0.0595502356620025847,0.476296704680647776],"hpluv":[263.01737082090068,410.811034734971429,29.2987082140811808],"hsluv":[263.01737082090068,99.999999999992923,29.2987082140811808]},"#0033cc":{"lch":[31.1765026722858281,104.784892642773883,263.545454640352943],"luv":[31.1765026722858281,-11.7793879173059235,-104.120697973319764],"rgb":[0,0.2,0.8],"xyz":[0.120816980259897469,0.0672671858394913863,0.577903215350917931],"hpluv":[263.545454640352943,426.491720029659064,31.1765026722858281],"hsluv":[263.545454640352943,99.9999999999928519,31.1765026722858281]},"#0033dd":{"lch":[33.108496036114694,114.582250296133722,263.943596884481394],"luv":[33.108496036114694,-12.0892798728815123,-113.942711022166648],"rgb":[0,0.2,0.866666666666666696],"xyz":[0.142335305810531026,0.0758745160597449203,0.691233063250923929],"hpluv":[263.943596884481394,439.154381827523366,33.108496036114694],"hsluv":[263.943596884481394,99.999999999992724,33.108496036114694]},"#0033ee":{"lch":[35.0829820911796091,124.266344101148519,264.250786122927309],"luv":[35.0829820911796091,-12.4483077284590724,-123.641271066592637],"rgb":[0,0.2,0.933333333333333348],"xyz":[0.166147486076705764,0.0853993881662149512,0.816643879319447152],"hpluv":[264.250786122927309,449.46548401365061,35.0829820911796091],"hsluv":[264.250786122927309,99.9999999999932214,35.0829820911796091]},"#0033ff":{"lch":[37.0903499028545482,133.851694130242549,264.492451291459133],"luv":[37.0903499028545482,-12.8466699872586325,-133.233776092154926],"rgb":[0,0.2,1],"xyz":[0.192318534486537157,0.0958678075301476473,0.954478067611229],"hpluv":[264.492451291459133,457.933345064777,37.0903499028545482],"hsluv":[264.492451291459133,99.999999999999531,37.0903499028545482]},"#55cc00":{"lch":[72.9678739916599,103.392643433537373,122.072672834653702],"luv":[72.9678739916599,-54.9009234662034089,87.6123696673744661],"rgb":[0.333333333333333315,0.8,0],"xyz":[0.253381485948118268,0.451154891290725057,0.0737291113395339148],"hpluv":[122.072672834653702,179.803140433373983,72.9678739916599],"hsluv":[122.072672834653702,100.000000000002444,72.9678739916599]},"#55cc11":{"lch":[72.9944661394807497,102.34674561848017,122.382691003133885],"luv":[72.9944661394807497,-54.8140205324080085,86.4307786136781431],"rgb":[0.333333333333333315,0.8,0.0666666666666666657],"xyz":[0.254393151447755372,0.45155955749057991,0.0790572163042895515],"hpluv":[122.382691003133885,177.91945009175069,72.9944661394807497],"hsluv":[122.382691003133885,98.5172338886757757,72.9944661394807497]},"#55cc22":{"lch":[73.0437189009647909,100.431941691916791,122.969611448584445],"luv":[73.0437189009647909,-54.6544745496639663,84.2583130836875114],"rgb":[0.333333333333333315,0.8,0.133333333333333331],"xyz":[0.256268509586232429,0.452309700745970711,0.0889341025002687441],"hpluv":[122.969611448584445,174.473032354427772,73.0437189009647909],"hsluv":[122.969611448584445,95.7933392549395,73.0437189009647909]},"#55cc33":{"lch":[73.1246943704287702,97.3470237033586,123.971835615120114],"luv":[73.1246943704287702,-54.3960871275936384,80.7310889875115123],"rgb":[0.333333333333333315,0.8,0.2],"xyz":[0.259356260318690135,0.453544801038953838,0.10519625635787988],"hpluv":[123.971835615120114,168.926560877595364,73.1246943704287702],"hsluv":[123.971835615120114,91.3772697810403542,73.1246943704287702]},"#55cc44":{"lch":[73.2413452172043,93.0415252478239836,125.502056943833935],"luv":[73.2413452172043,-54.0322080150887771,75.7446098244333399],"rgb":[0.333333333333333315,0.8,0.266666666666666663],"xyz":[0.26381425556290905,0.455327999136641404,0.128675031310766519],"hpluv":[125.502056943833935,161.198069131808353,73.2413452172043],"hsluv":[125.502056943833935,85.148140842768953,73.2413452172043]},"#55cc55":{"lch":[73.3968865779486919,87.5572640326508207,127.71501294923992],"luv":[73.3968865779486919,-53.5617851120033066,69.2633356148757144],"rgb":[0.333333333333333315,0.8,0.333333333333333315],"xyz":[0.269776669602271035,0.457712964752386264,0.160077078584740434],"hpluv":[127.71501294923992,151.374900584602614,73.3968865779486919],"hsluv":[127.71501294923992,77.0768048277098,73.3968865779486919]},"#55cc66":{"lch":[73.5939772793636,81.0375847478920832,130.834727778769576],"luv":[73.5939772793636,-52.9887999422805,61.3129449826769175],"rgb":[0.333333333333333315,0.8,0.4],"xyz":[0.277361665375779221,0.460746963061789583,0.200024722991884396],"hpluv":[130.834727778769576,139.728031568505,73.5939772793636],"hsluv":[130.834727778769576,77.5857883184082766,73.5939772793636]},"#55cc77":{"lch":[73.8348152761848553,73.7475179973278898,135.191797127350526],"luv":[73.8348152761848553,-52.3216404431773,51.972515352838883],"rgb":[0.333333333333333315,0.8,0.466666666666666674],"xyz":[0.286675678395981126,0.464472568269870378,0.249078524898282305],"hpluv":[135.191797127350526,126.743455190439619,73.8348152761848553],"hsluv":[135.191797127350526,78.1806978106980779,73.8348152761848553]},"#55cc88":{"lch":[74.1211942127210648,66.1117924559585646,141.267644806662588],"luv":[74.1211942127210648,-51.5723023085178269,41.3650424433311343],"rgb":[0.333333333333333315,0.8,0.533333333333333326],"xyz":[0.297816095497924926,0.468928735110648,0.307751388301854445],"hpluv":[141.267644806662588,113.181605649052202,74.1211942127210648],"hsluv":[141.267644806662588,78.852064841283763,74.1211942127210648]},"#55cc99":{"lch":[74.4545405069311,58.7794373107374923,149.710693018120253],"luv":[74.4545405069311,-50.7554383804248,29.646377947024483],"rgb":[0.333333333333333315,0.8,0.6],"xyz":[0.310873059606997626,0.474151520754277134,0.37651806594297238],"hpluv":[149.710693018120253,100.178278207809555,74.4545405069311],"hsluv":[149.710693018120253,79.5881732610030355,74.4545405069311]},"#55ccaa":{"lch":[74.8359403329188808,52.7021878309829361,161.189357777818884],"luv":[74.8359403329188808,-49.8873315971569866,16.9933736582089097],"rgb":[0.333333333333333315,0.8,0.66666666666666663],"xyz":[0.325930752572250182,0.480174597940378256,0.455821915559971],"hpluv":[161.189357777818884,89.3630022499163772,74.8359403329188808],"hsluv":[161.189357777818884,80.3759073289738097,74.8359403329188808]},"#55ccbb":{"lch":[75.2661614985634,49.1164256219739315,175.805780272408356],"luv":[75.2661614985634,-48.9848849956305372,3.59225665059547428],"rgb":[0.333333333333333315,0.8,0.733333333333333282],"xyz":[0.343068344679586856,0.487029634783313,0.546079900658612782],"hpluv":[175.805780272408356,82.8068592257523619,75.2661614985634],"hsluv":[175.805780272408356,81.2015846585734238,75.2661614985634]},"#55cccc":{"lch":[75.7456730324682894,49.1710405410584386,192.177050630061103],"luv":[75.7456730324682894,-48.0647147647340063,-10.3718090261618983],"rgb":[0.333333333333333315,0.8,0.8],"xyz":[0.362360720123308555,0.494746584960801816,0.647686411328882938],"hpluv":[192.177050630061103,82.3741405590198639,75.7456730324682894],"hsluv":[192.177050630061103,82.0517040066532815,75.7456730324682894]},"#55ccdd":{"lch":[76.2746640882933349,53.2320113470533514,207.674227909684788],"luv":[76.2746640882933349,-47.1424090239802069,-24.7232745296525458],"rgb":[0.333333333333333315,0.8,0.866666666666666696],"xyz":[0.383879045673942154,0.503353915181055322,0.761016259228888936],"hpluv":[207.674227909684788,89.8673986045394,76.2746640882933349],"hsluv":[207.674227909684788,82.913556803619926,76.2746640882933349]},"#55ccee":{"lch":[76.8530630513789674,60.6801737900983298,220.368363670310828],"luv":[76.8530630513789674,-46.2319850937693673,-39.3025068600722207],"rgb":[0.333333333333333315,0.8,0.933333333333333348],"xyz":[0.407691225940116864,0.51287878728752534,0.886427075297412159],"hpluv":[220.368363670310828,105.55411204702996,76.8530630513789674],"hsluv":[220.368363670310828,83.7756757275922865,76.8530630513789674]},"#55ccff":{"lch":[77.4805572724897758,70.4908339109135511,229.9629437526429],"luv":[77.4805572724897758,-45.3455492712466395,-53.9697955040126445],"rgb":[0.333333333333333315,0.8,1],"xyz":[0.433862274349948285,0.523347206651458063,1.02426126358919389],"hpluv":[229.9629437526429,126.754412601721029,77.4805572724897758],"hsluv":[229.9629437526429,99.9999999999968878,77.4805572724897758]},"#004400":{"lch":[24.1097877444294397,37.3150672336374782,127.715012949240432],"luv":[24.1097877444294397,-22.8269080205926969,29.5185791133361732],"rgb":[0,0.266666666666666663,0],"xyz":[0.0206703165676731908,0.0413406331353469575,0.00689010552255753684],"hpluv":[127.715012949240432,196.39488290021464,24.1097877444294397],"hsluv":[127.715012949240432,100.000000000002458,24.1097877444294397]},"#004411":{"lch":[24.2402356883412295,33.8624764720942082,131.447767669063751],"luv":[24.2402356883412295,-22.4148262696793807,25.3819399598065552],"rgb":[0,0.266666666666666663,0.0666666666666666657],"xyz":[0.0216819820673103125,0.0417452993352018104,0.0122182104873131692],"hpluv":[131.447767669063751,177.264269230781338,24.2402356883412295],"hsluv":[131.447767669063751,99.9999999999909335,24.2402356883412295]},"#004422":{"lch":[24.4798388415780295,28.4164365287723264,139.862893984056171],"luv":[24.4798388415780295,-21.7244820008415864,18.3177713379345413],"rgb":[0,0.266666666666666663,0.133333333333333331],"xyz":[0.0235573402057873311,0.0424954425905926317,0.0220950966832923652],"hpluv":[139.862893984056171,147.299199898382369,24.4798388415780295],"hsluv":[139.862893984056171,99.9999999999911466,24.4798388415780295]},"#004433":{"lch":[24.8682723444395748,22.2877633761795622,158.664607016269599],"luv":[24.8682723444395748,-20.760308528761005,8.10888316004269427],"rgb":[0,0.266666666666666663,0.2],"xyz":[0.0266450909382450717,0.0437305428835757445,0.0383572505409035119],"hpluv":[158.664607016269599,113.726114076625834,24.8682723444395748],"hsluv":[158.664607016269599,99.9999999999913172,24.8682723444395748]},"#004444":{"lch":[25.4163828994624552,20.1084089871091685,192.17705063006116],"luv":[25.4163828994624552,-19.6559790417892835,-4.24153273022775057],"rgb":[0,0.266666666666666663,0.266666666666666663],"xyz":[0.0311030861824639487,0.0455137409812633176,0.0618360254937901505],"hpluv":[192.17705063006116,100.392967527320792,25.4163828994624552],"hsluv":[192.17705063006116,99.9999999999914166,25.4163828994624552]},"#004455":{"lch":[26.1275223832094383,25.5944772375096541,223.546306053382096],"luv":[26.1275223832094383,-18.5513329588178841,-17.6330743352507042],"rgb":[0,0.266666666666666663,0.333333333333333315],"xyz":[0.0370655002218259477,0.0478987065970081505,0.093238072767764052],"hpluv":[223.546306053382096,124.304646155287358,26.1275223832094383],"hsluv":[223.546306053382096,99.999999999991644,26.1275223832094383]},"#004466":{"lch":[26.9988561724938734,35.8050932952910514,240.647496291889979],"luv":[26.9988561724938734,-17.5509899640931621,-31.2084516944496499],"rgb":[0,0.266666666666666663,0.4],"xyz":[0.0446504959953341191,0.050932704906411462,0.133185717174908],"hpluv":[240.647496291889979,168.282428552664811,26.9988561724938734],"hsluv":[240.647496291889979,99.9999999999920135,26.9988561724938734]},"#004477":{"lch":[28.0227048150185141,47.4927479988473422,249.396343090395135],"luv":[28.0227048150185141,-16.7127641209025413,-44.4549730392572684],"rgb":[0,0.266666666666666663,0.466666666666666674],"xyz":[0.0539645090155360385,0.0546583101144922784,0.182239519081305923],"hpluv":[249.396343090395135,215.05848085050232,28.0227048150185141],"hsluv":[249.396343090395135,99.9999999999921698,28.0227048150185141]},"#004488":{"lch":[29.1879465441319326,59.3592998069098,254.306666373838311],"luv":[29.1879465441319326,-16.0560040952153962,-57.1465765034181956],"rgb":[0,0.266666666666666663,0.533333333333333326],"xyz":[0.0651049261174798666,0.0591144769552698762,0.24091238248487809],"hpluv":[254.306666373838311,258.06229412425995,29.1879465441319326],"hsluv":[254.306666373838311,99.9999999999923,29.1879465441319326]},"#004499":{"lch":[30.4813623757938217,70.9684349502494,257.321762040288718],"luv":[30.4813623757938217,-15.5758442205369825,-69.2380808233832141],"rgb":[0,0.266666666666666663,0.6],"xyz":[0.07816189022655258,0.0643372625988990338,0.309679060125996],"hpluv":[257.321762040288718,295.440602563868879,30.4813623757938217],"hsluv":[257.321762040288718,99.9999999999926672,30.4813623757938217]},"#0044aa":{"lch":[31.8888011745219231,82.2033012029853,259.305022310013101],"luv":[31.8888011745219231,-15.2553283345918977,-80.7753532092093138],"rgb":[0,0.266666666666666663,0.66666666666666663],"xyz":[0.0932195831918051221,0.0703603397850001422,0.388982909742994598],"hpluv":[259.305022310013101,327.107417663034141,31.8888011745219231],"hsluv":[259.305022310013101,99.9999999999925109,31.8888011745219231]},"#0044bb":{"lch":[33.3960915948532602,93.0667571364503,260.679203518012741],"luv":[33.3960915948532602,-15.0732787327803415,-91.8379962332527],"rgb":[0,0.266666666666666663,0.733333333333333282],"xyz":[0.110357175299141769,0.0772153766279349,0.479240894841636345],"hpluv":[260.679203518012741,353.621176249907,33.3960915948532602],"hsluv":[260.679203518012741,99.9999999999929656,33.3960915948532602]},"#0044cc":{"lch":[34.9896851087579108,103.60206818965716,261.670396128603272],"luv":[34.9896851087579108,-15.0085679377548828,-102.509177255659253],"rgb":[0,0.266666666666666663,0.8],"xyz":[0.129649550742863495,0.0849323268054237,0.5808474055119065],"hpluv":[261.670396128603272,375.722944942957042,34.9896851087579108],"hsluv":[261.670396128603272,99.999999999992923,34.9896851087579108]},"#0044dd":{"lch":[36.6570567010139499,113.860579159150092,262.408492682931296],"luv":[36.6570567010139499,-15.0420602661110987,-112.862606338006245],"rgb":[0,0.266666666666666663,0.866666666666666696],"xyz":[0.151167876293497039,0.0935396570256772364,0.694177253411912498],"hpluv":[262.408492682931296,394.144185167595538,36.6570567010139499],"hsluv":[262.408492682931296,99.9999999999929088,36.6570567010139499]},"#0044ee":{"lch":[38.386911506645724,123.889384104134805,262.972536787865295],"luv":[38.386911506645724,-15.1572566165017264,-122.958680318078251],"rgb":[0,0.266666666666666663,0.933333333333333348],"xyz":[0.174980056559671776,0.103064529132147253,0.819588069480435721],"hpluv":[262.972536787865295,409.534269399062566,38.386911506645724],"hsluv":[262.972536787865295,99.9999999999931,38.386911506645724]},"#0044ff":{"lch":[40.1692504091911928,133.727629508879147,263.412926975584469],"luv":[40.1692504091911928,-15.3403008413028115,-132.844849595919101],"rgb":[0,0.266666666666666663,1],"xyz":[0.201151104969503169,0.113532948496079963,0.957422257772217566],"hpluv":[263.412926975584469,422.441664595501038,40.1692504091911928],"hsluv":[263.412926975584469,99.9999999999994174,40.1692504091911928]},"#55dd00":{"lch":[78.2526895057908121,112.425836873112019,123.034721453117925],"luv":[78.2526895057908121,-61.2886270790004488,94.2511166373683267],"rgb":[0.333333333333333315,0.866666666666666696,0],"xyz":[0.296015476495293473,0.536422872385076577,0.0879404415219252333],"hpluv":[123.034721453117925,210.800433631405241,78.2526895057908121],"hsluv":[123.034721453117925,100.000000000002288,78.2526895057908121]},"#55dd11":{"lch":[78.2763843013059102,111.485784004679431,123.297526334296066],"luv":[78.2763843013059102,-61.2042162992655108,93.1832814529020368],"rgb":[0.333333333333333315,0.866666666666666696,0.0666666666666666657],"xyz":[0.297027141994930577,0.536827538584931485,0.09326854648668087],"hpluv":[123.297526334296066,209.310421322213443,78.2763843013059102],"hsluv":[123.297526334296066,98.7516598856555561,78.2763843013059102]},"#55dd22":{"lch":[78.3202766586626353,109.761570808260174,123.793166282380056],"luv":[78.3202766586626353,-61.0490014413279738,91.2174426812846235],"rgb":[0.333333333333333315,0.866666666666666696,0.133333333333333331],"xyz":[0.298902500133407634,0.537577681840322286,0.103145432682660063],"hpluv":[123.793166282380056,206.571995072092733,78.3202766586626353],"hsluv":[123.793166282380056,96.4551350157602201,78.3202766586626353]},"#55dd33":{"lch":[78.3924559312840898,106.97461234521991,124.633900466047606],"luv":[78.3924559312840898,-60.7969536029841819,88.018737317724927],"rgb":[0.333333333333333315,0.866666666666666696,0.2],"xyz":[0.30199025086586534,0.538812782133305412,0.119407586540271199],"hpluv":[124.633900466047606,202.130538056106332,78.3924559312840898],"hsluv":[124.633900466047606,92.7228817840519355,78.3924559312840898]},"#55dd44":{"lch":[78.4964717161501255,103.064578059178857,125.904361390923313],"luv":[78.4964717161501255,-60.4405744101571756,83.4819993500804],"rgb":[0.333333333333333315,0.866666666666666696,0.266666666666666663],"xyz":[0.306448246110084255,0.540595980230993,0.142886361493157837],"hpluv":[125.904361390923313,195.867385876976442,78.4964717161501255],"hsluv":[125.904361390923313,87.4391970363123221,78.4964717161501255]},"#55dd55":{"lch":[78.635232286968062,98.0447483954765175,127.715012949239977],"luv":[78.635232286968062,-59.9773394353739,77.559599291037074],"rgb":[0.333333333333333315,0.866666666666666696,0.333333333333333315],"xyz":[0.31241066014944624,0.542980945846737728,0.174288408767131753],"hpluv":[127.715012949239977,187.771435495127037,78.635232286968062],"hsluv":[127.715012949239977,80.5594181605674891,78.635232286968062]},"#55dd66":{"lch":[78.8111684825228451,92.0067823672703469,130.218539636235505],"luv":[78.8111684825228451,-59.4092211255214551,70.2551951590567],"rgb":[0.333333333333333315,0.866666666666666696,0.4],"xyz":[0.319995655922954425,0.546014944156141,0.214236053174275715],"hpluv":[130.218539636235505,177.951388767985407,78.8111684825228451],"hsluv":[130.218539636235505,80.9267337864342693,78.8111684825228451]},"#55dd77":{"lch":[79.0263204832261863,85.1319563310668315,133.631202536406704],"luv":[79.0263204832261863,-58.7422260542947043,61.618186170487121],"rgb":[0.333333333333333315,0.866666666666666696,0.466666666666666674],"xyz":[0.329309668943156331,0.549740549364221898,0.263289855080673596],"hpluv":[133.631202536406704,166.66460441184762,79.0263204832261863],"hsluv":[133.631202536406704,81.3592233632428,79.0263204832261863]},"#55dd88":{"lch":[79.2823892178289,77.7115996221609322,138.259418470179128],"luv":[79.2823892178289,-57.9858175415186921,51.7371982221375],"rgb":[0.333333333333333315,0.866666666666666696,0.533333333333333326],"xyz":[0.340450086045100131,0.55419671620499944,0.321962718484245791],"hpluv":[138.259418470179128,154.371102046011828,79.2823892178289],"hsluv":[138.259418470179128,81.8514411788724,79.2823892178289]},"#55dd99":{"lch":[79.5807696492298504,70.1818875082800133,144.522564094970761],"luv":[79.5807696492298504,-57.1522092721799737,40.7323251181885624],"rgb":[0.333333333333333315,0.866666666666666696,0.6],"xyz":[0.353507050154172831,0.559419501848628653,0.390729396125363726],"hpluv":[144.522564094970761,141.828030979619143,79.5807696492298504],"hsluv":[144.522564094970761,82.3962440946128538,79.5807696492298504]},"#55ddaa":{"lch":[79.9225742847085,63.1747442044720913,152.933070337002903],"luv":[79.9225742847085,-56.2555676549498145,28.7464678372812266],"rgb":[0.333333333333333315,0.866666666666666696,0.66666666666666663],"xyz":[0.368564743119425386,0.56544257903472972,0.470033245742362271],"hpluv":[152.933070337002903,130.236824512138128,79.9225742847085],"hsluv":[152.933070337002903,82.9852754707380313,79.9225742847085]},"#55ddbb":{"lch":[80.3086513857730466,57.5612329714098649,163.927126105934775],"luv":[80.3086513857730466,-55.3111838467604926,15.9363886328987263],"rgb":[0.333333333333333315,0.866666666666666696,0.733333333333333282],"xyz":[0.385702335226762061,0.572297615877664478,0.560291230841004073],"hpluv":[163.927126105934775,121.406580229851471,80.3086513857730466],"hsluv":[163.927126105934775,83.6094665313934,80.3086513857730466]},"#55ddcc":{"lch":[80.7396004409482657,54.3905283694756534,177.403333860877041],"luv":[80.7396004409482657,-54.3346805898883076,2.46415533308082235],"rgb":[0.333333333333333315,0.866666666666666696,0.8],"xyz":[0.40499471067048376,0.580014566055153336,0.661897741511274229],"hpluv":[177.403333860877041,117.73427745544555,80.7396004409482657],"hsluv":[177.403333860877041,84.2595162876674664,80.7396004409482657]},"#55dddd":{"lch":[81.2157864208401605,54.5690893966631236,192.177050630061103],"luv":[81.2157864208401605,-53.3413100060750764,-11.5104371948595805],"rgb":[0.333333333333333315,0.866666666666666696,0.866666666666666696],"xyz":[0.426513036221117359,0.588621896275406842,0.775227589411280227],"hpluv":[192.177050630061103,121.625211000731653,81.2157864208401605],"hsluv":[192.177050630061103,84.9263164151063847,81.2157864208401605]},"#55ddee":{"lch":[81.73735371635685,58.3741450028570412,206.269517439458],"luv":[81.73735371635685,-52.3453816136692609,-25.8360567528002605],"rgb":[0.333333333333333315,0.866666666666666696,0.933333333333333348],"xyz":[0.450325216487292068,0.598146768381876859,0.90063840547980345],"hpluv":[206.269517439458,134.436687270459231,81.73735371635685],"hsluv":[206.269517439458,85.6012975649288421,81.73735371635685]},"#55ddff":{"lch":[82.3042402700550753,65.3293790133507599,218.171205050819623],"luv":[82.3042402700550753,-51.3598401525014268,-40.374429801293],"rgb":[0.333333333333333315,0.866666666666666696,1],"xyz":[0.476496264897123489,0.608615187745809583,1.0384725937715853],"hpluv":[218.171205050819623,156.046773818868189,82.3042402700550753],"hsluv":[218.171205050819623,99.9999999999958078,82.3042402700550753]},"#005500":{"lch":[30.6325595368381371,47.4104554868850059,127.715012949240474],"luv":[30.6325595368381371,-29.0026036892131067,37.5046699588244152],"rgb":[0,0.333333333333333315,0],"xyz":[0.0324835732820191528,0.0649671465640392215,0.0108278577606727468],"hpluv":[127.715012949240474,196.39488290021464,30.6325595368381371],"hsluv":[127.715012949240474,100.000000000002331,30.6325595368381371]},"#005511":{"lch":[30.7291805540017933,44.5531719728198325,130.030983014983661],"luv":[30.7291805540017933,-28.6566785608310113,34.1142185415534129],"rgb":[0,0.333333333333333315,0.0666666666666666657],"xyz":[0.033495238781656278,0.0653718127638940744,0.01615596272542838],"hpluv":[130.030983014983661,183.978458821492183,30.7291805540017933],"hsluv":[130.030983014983661,99.9999999999909335,30.7291805540017933]},"#005522":{"lch":[30.9072407208055395,39.7502752239143149,134.89425658266407],"luv":[30.9072407208055395,-28.0557665948475297,28.1595159964153758],"rgb":[0,0.333333333333333315,0.133333333333333331],"xyz":[0.0353705969201332932,0.0661219560192848888,0.0260328489214075726],"hpluv":[134.89425658266407,163.199653312489744,30.9072407208055395],"hsluv":[134.89425658266407,99.9999999999909903,30.9072407208055395]},"#005533":{"lch":[31.1975029455576802,33.2574057268159,144.773587953954916],"luv":[31.1975029455576802,-27.1672793055155033,19.1831689460880241],"rgb":[0,0.333333333333333315,0.2],"xyz":[0.0384583476525910337,0.067357056312268,0.0422950027790187227],"hpluv":[144.773587953954916,135.271984326190278,31.1975029455576802],"hsluv":[144.773587953954916,99.9999999999912177,31.1975029455576802]},"#005544":{"lch":[31.6103799108948778,27.1932751339722678,163.464109831123295],"luv":[31.6103799108948778,-26.0686058468900157,7.73963834500076331],"rgb":[0,0.333333333333333315,0.266666666666666663],"xyz":[0.0429163428968099142,0.0691402544099555816,0.0657737777319053613],"hpluv":[163.464109831123295,109.16191048912313,31.6103799108948778],"hsluv":[163.464109831123295,99.999999999991374,31.6103799108948778]},"#005555":{"lch":[32.1516370434520482,25.4370682812028797,192.17705063006116],"luv":[32.1516370434520482,-24.8647459548099441,-5.36552433088697445],"rgb":[0,0.333333333333333315,0.333333333333333315],"xyz":[0.0488787569361719063,0.0715252200257004145,0.0971758250058792628],"hpluv":[192.17705063006116,100.392967527320877,32.1516370434520482],"hsluv":[192.17705063006116,99.9999999999915,32.1516370434520482]},"#005566":{"lch":[32.8230722751799036,30.545644410021449,219.238547792689275],"luv":[32.8230722751799036,-23.6581848019048806,-19.3216636007977201],"rgb":[0,0.333333333333333315,0.4],"xyz":[0.0564637527096800845,0.074559218335103733,0.137123469413023225],"hpluv":[219.238547792689275,118.088984839520307,32.8230722751799036],"hsluv":[219.238547792689275,99.9999999999916298,32.8230722751799036]},"#005577":{"lch":[33.6230950493472065,40.3511971197610322,236.060106868306946],"luv":[33.6230950493472065,-22.5289967279924532,-33.4763112577822142],"rgb":[0,0.333333333333333315,0.466666666666666674],"xyz":[0.065777765729882,0.0782848235431845424,0.186177271319421134],"hpluv":[236.060106868306946,152.285327594300298,33.6230950493472065],"hsluv":[236.060106868306946,99.9999999999918,33.6230950493472065]},"#005588":{"lch":[34.5473308406039266,52.0529464564925703,245.569923252468897],"luv":[34.5473308406039266,-21.5281838547339461,-47.3924733973576764],"rgb":[0,0.333333333333333315,0.533333333333333326],"xyz":[0.076918182831825832,0.0827409903839621402,0.244850134722993301],"hpluv":[245.569923252468897,191.192188881903292,34.5473308406039266],"hsluv":[245.569923252468897,99.9999999999919709,34.5473308406039266]},"#005599":{"lch":[35.5892574919693772,64.2489447401961655,251.22324643469841],"luv":[35.5892574919693772,-20.6805523421639172,-60.8296116628390067],"rgb":[0,0.333333333333333315,0.6],"xyz":[0.0899751469408985316,0.0879637760275913,0.313616812364111208],"hpluv":[251.22324643469841,229.079590546614583,35.5892574919693772],"hsluv":[251.22324643469841,99.9999999999922125,35.5892574919693772]},"#0055aa":{"lch":[36.7408379507026,76.3552968047486189,254.821646708521541],"luv":[36.7408379507026,-19.9916927982920107,-73.6916791042243347],"rgb":[0,0.333333333333333315,0.66666666666666663],"xyz":[0.105032839906151088,0.0939868532136924,0.392920661981109809],"hpluv":[254.821646708521541,263.711724718685957,36.7408379507026],"hsluv":[254.821646708521541,99.9999999999921556,36.7408379507026]},"#0055bb":{"lch":[37.993106438468665,88.146943006458784,257.249085911334646],"luv":[37.993106438468665,-19.4551758320548949,-85.9731335635018],"rgb":[0,0.333333333333333315,0.733333333333333282],"xyz":[0.122170432013487734,0.100841890056627165,0.483178647079751555],"hpluv":[257.249085911334646,294.402692429224658,37.993106438468665],"hsluv":[257.249085911334646,99.9999999999924114,37.993106438468665]},"#0055cc":{"lch":[39.3366742314503384,99.5579220492412,258.963845190076711],"luv":[39.3366742314503384,-19.0582121518786707,-97.7167559446012888],"rgb":[0,0.333333333333333315,0.8],"xyz":[0.141462807457209461,0.108558840234115966,0.584785157750021711],"hpluv":[258.963845190076711,321.157087606315883,39.3366742314503384],"hsluv":[258.963845190076711,99.9999999999926,39.3366742314503384]},"#0055dd":{"lch":[40.7621365800243538,110.592821589198408,260.220233587680809],"luv":[40.7621365800243538,-18.7854624460211568,-108.985680654613518],"rgb":[0,0.333333333333333315,0.866666666666666696],"xyz":[0.162981133007843,0.1171661704543695,0.698115005650027709],"hpluv":[260.220233587680809,344.278042660470817,40.7621365800243538],"hsluv":[260.220233587680809,99.9999999999926672,40.7621365800243538]},"#0055ee":{"lch":[42.2603772648371105,121.285075365136905,261.168248695532611],"luv":[42.2603772648371105,-18.6213165580406681,-119.847052846418293],"rgb":[0,0.333333333333333315,0.933333333333333348],"xyz":[0.186793313274017742,0.126691042560839517,0.823525821718550932],"hpluv":[261.168248695532611,364.177675198016914,42.2603772648371105],"hsluv":[261.168248695532611,99.9999999999924256,42.2603772648371105]},"#0055ff":{"lch":[43.8227784910393,131.676969611306021,261.90102950371454],"luv":[43.8227784910393,-18.5511048350842884,-130.363648443170376],"rgb":[0,0.333333333333333315,1],"xyz":[0.212964361683849135,0.137159461924772241,0.961360010010332777],"hpluv":[261.90102950371454,381.28457852045068,43.8227784910393],"hsluv":[261.90102950371454,99.9999999999993321,43.8227784910393]},"#55ee00":{"lch":[83.4834241678481277,121.26988118033438,123.77813801339137],"luv":[83.4834241678481277,-67.423446821455,100.799121524975831],"rgb":[0.333333333333333315,0.933333333333333348,0],"xyz":[0.343194252835808289,0.630780425066107542,0.103666700302096418],"hpluv":[123.77813801339137,313.542875178701877,83.4834241678481277],"hsluv":[123.77813801339137,100.000000000002402,83.4834241678481277]},"#55ee11":{"lch":[83.5046935730824487,120.419265504422668,124.002811201886018],"luv":[83.5046935730824487,-67.3424968648776456,99.8287915414615412],"rgb":[0.333333333333333315,0.933333333333333348,0.0666666666666666657],"xyz":[0.344205918335445393,0.63118509126596245,0.108994805266852055],"hpluv":[124.002811201886018,311.80236567126093,83.5046935730824487],"hsluv":[124.002811201886018,98.9375412624106616,83.5046935730824487]},"#55ee22":{"lch":[83.5440973470955868,118.856748008926118,124.425313598414533],"luv":[83.5440973470955868,-67.1934622190367463,98.0406302625408728],"rgb":[0.333333333333333315,0.933333333333333348,0.133333333333333331],"xyz":[0.34608127647392245,0.631935234521353251,0.118871691462831247],"hpluv":[124.425313598414533,308.59848358059196,83.5440973470955868],"hsluv":[124.425313598414533,96.9807587800033133,83.5440973470955868]},"#55ee33":{"lch":[83.6089072227085524,116.32446068797897,125.138397832270286],"luv":[83.6089072227085524,-66.950941309724243,95.1259775880964469],"rgb":[0.333333333333333315,0.933333333333333348,0.2],"xyz":[0.349169027206380156,0.633170334814336377,0.135133845320442397],"hpluv":[125.138397832270286,303.387603747434184,83.6089072227085524],"hsluv":[125.138397832270286,93.7945051225822084,83.6089072227085524]},"#55ee44":{"lch":[83.7023291233000748,112.756808619009803,126.207644663357115],"luv":[83.7023291233000748,-66.6069499756988535,90.9813832873448547],"rgb":[0.333333333333333315,0.933333333333333348,0.266666666666666663],"xyz":[0.353627022450599071,0.634953532912023944,0.158612620273329036],"hpluv":[126.207644663357115,296.007020538140409,83.7023291233000748],"hsluv":[126.207644663357115,89.2707337544585,83.7023291233000748]},"#55ee55":{"lch":[83.8270046653184,108.148092962556504,127.715012949240077],"luv":[83.8270046653184,-66.1579022543843,85.5519840841642747],"rgb":[0.333333333333333315,0.933333333333333348,0.333333333333333315],"xyz":[0.359589436489961056,0.637338498527768693,0.190014667547302951],"hpluv":[127.715012949240077,286.404562223907249,83.8270046653184],"hsluv":[127.715012949240077,83.3573838846113091,83.8270046653184]},"#55ee66":{"lch":[83.985160091985378,102.554744038676162,129.769393513035965],"luv":[83.985160091985378,-65.6041880698479645,78.8261760618539853],"rgb":[0.333333333333333315,0.933333333333333348,0.4],"xyz":[0.367174432263469241,0.640372496837172,0.229962311954446885],"hpluv":[129.769393513035965,274.647728218817576,83.985160091985378],"hsluv":[129.769393513035965,83.6273111034757477,83.985160091985378]},"#55ee77":{"lch":[84.1786855608653752,96.1019099790829756,132.519661951802362],"luv":[84.1786855608653752,-64.9498200787083,70.8314758661090451],"rgb":[0.333333333333333315,0.933333333333333348,0.466666666666666674],"xyz":[0.376488445283671147,0.644098102045252863,0.279016113860844794],"hpluv":[132.519661951802362,260.948457539577589,84.1786855608653752],"hsluv":[132.519661951802362,83.9470254314832687,84.1786855608653752]},"#55ee88":{"lch":[84.4091822183787741,88.9952087097784,136.170997575445568],"luv":[84.4091822183787741,-64.2020140446184371,61.6299323860706],"rgb":[0.333333333333333315,0.933333333333333348,0.533333333333333326],"xyz":[0.387628862385614947,0.648554268886030405,0.337688977264417],"hpluv":[136.170997575445568,245.709397001158351,84.4091822183787741],"hsluv":[136.170997575445568,84.3134084109568533,84.4091822183787741]},"#55ee99":{"lch":[84.6779925165317877,81.540352796223317,141.002136712429774],"luv":[84.6779925165317877,-63.3706695007570531,51.3126434824633151],"rgb":[0.333333333333333315,0.933333333333333348,0.6],"xyz":[0.400685826494687647,0.653777054529659618,0.406455654905534869],"hpluv":[141.002136712429774,229.604367075154897,84.6779925165317877],"hsluv":[141.002136712429774,84.7220894550445394,84.6779925165317877]},"#55eeaa":{"lch":[84.9862212486181363,74.1734332109310373,147.37159021859884],"luv":[84.9862212486181363,-62.4677637576075426,39.9934580327855755],"rgb":[0.333333333333333315,0.933333333333333348,0.66666666666666663],"xyz":[0.415743519459940203,0.659800131715760685,0.48575950452253347],"hpluv":[147.37159021859884,213.709694911287,84.9862212486181363],"hsluv":[147.37159021859884,85.1677250765186358,84.9862212486181363]},"#55eebb":{"lch":[85.334751323756052,67.4984157699475418,155.676120933413],"luv":[85.334751323756052,-61.5066955643592337,27.8022037293077737],"rgb":[0.333333333333333315,0.933333333333333348,0.733333333333333282],"xyz":[0.432881111567276877,0.666655168558695443,0.576017489621175272],"hpluv":[155.676120933413,199.690784145783283,85.334751323756052],"hsluv":[155.676120933413,85.6443005177139298,85.334751323756052]},"#55eecc":{"lch":[85.7242566025865784,62.3040769944455,166.184583472908372],"luv":[85.7242566025865784,-60.5016239571924643,14.8778865660505755],"rgb":[0.333333333333333315,0.933333333333333348,0.8],"xyz":[0.452173487010998576,0.674372118736184301,0.677624000291445427],"hpluv":[166.184583472908372,189.979166061651426,85.7242566025865784],"hsluv":[166.184583472908372,86.1454332210543186,85.7242566025865784]},"#55eedd":{"lch":[86.1552131978466349,59.4824491826881427,178.687660418725557],"luv":[86.1552131978466349,-59.4668469392298462,1.36230535390821395],"rgb":[0.333333333333333315,0.933333333333333348,0.866666666666666696],"xyz":[0.473691812561632175,0.682979448956437807,0.790953848191451425],"hpluv":[178.687660418725557,187.703134777137279,86.1552131978466349],"hsluv":[178.687660418725557,86.6646578889921,86.1552131978466349]},"#55eeee":{"lch":[86.6279101052896578,59.7608483004272202,192.177050630061245],"luv":[86.6279101052896578,-58.4162567245265265,-12.6055519466972967],"rgb":[0.333333333333333315,0.933333333333333348,0.933333333333333348],"xyz":[0.497503992827806885,0.692504321062907824,0.916364664259974648],"hpluv":[192.177050630061245,196.025490067494644,86.6279101052896578],"hsluv":[192.177050630061245,87.195676441965972,86.6279101052896578]},"#55eeff":{"lch":[87.1424596935915901,63.3545065705612274,205.119112492248092],"luv":[87.1424596935915901,-57.3628964007582169,-26.8940814923128677],"rgb":[0.333333333333333315,0.933333333333333348,1],"xyz":[0.523675041237638306,0.702972740426840548,1.05419885255175649],"hpluv":[205.119112492248092,217.06231600799947,87.1424596935915901],"hsluv":[205.119112492248092,99.9999999999933,87.1424596935915901]},"#006600":{"lch":[36.9339903888407548,57.1632711650289735,127.71501294924046],"luv":[36.9339903888407548,-34.9687359497521086,45.2197642227726249],"rgb":[0,0.4,0],"xyz":[0.0475116309878656218,0.0950232619757325619,0.0158372103292880942],"hpluv":[127.71501294924046,196.394882900214554,36.9339903888407548],"hsluv":[127.71501294924046,100.000000000002331,36.9339903888407548]},"#006611":{"lch":[37.0090255636121412,54.7765813256580216,129.276595687178855],"luv":[37.0090255636121412,-34.6771211058740789,42.4024897091546933],"rgb":[0,0.4,0.0666666666666666657],"xyz":[0.04852329648750274,0.0954279281755874148,0.0211653152940437239],"hpluv":[129.276595687178855,187.813410896691579,37.0090255636121412],"hsluv":[129.276595687178855,99.9999999999908908,37.0090255636121412]},"#006622":{"lch":[37.1475616040544949,50.6324758020482761,132.428423847637788],"luv":[37.1475616040544949,-34.160143827310165,37.3728802682170453],"rgb":[0,0.4,0.133333333333333331],"xyz":[0.0503986546259797621,0.0961780714309782292,0.0310422014900229234],"hpluv":[132.428423847637788,172.957013965329963,37.1475616040544949],"hsluv":[132.428423847637788,99.9999999999909619,37.1475616040544949]},"#006633":{"lch":[37.3740982281225911,44.601943170857588,138.432874640413417],"luv":[37.3740982281225911,-33.3702331720845464,29.5932572160807972],"rgb":[0,0.4,0.2],"xyz":[0.0534864053584375,0.0974131717239613421,0.0473043553476340667],"hpluv":[138.432874640413417,151.43364776149042,37.3740982281225911],"hsluv":[138.432874640413417,99.9999999999910187,37.3740982281225911]},"#006644":{"lch":[37.6978110334583292,37.6830106217376226,149.139540405640531],"luv":[37.6978110334583292,-32.3478161181420845,19.3294615006434647],"rgb":[0,0.4,0.266666666666666663],"xyz":[0.0579444006026563832,0.099196369821648922,0.0707831303005207],"hpluv":[149.139540405640531,126.843666215367492,37.6978110334583292],"hsluv":[149.139540405640531,99.9999999999911893,37.6978110334583292]},"#006655":{"lch":[38.1247572916394191,31.9621551107412678,167.158861879927684],"luv":[38.1247572916394191,-31.1627826377188839,7.10354401671241],"rgb":[0,0.4,0.333333333333333315],"xyz":[0.0639068146420183752,0.101581335437393755,0.102185177574494607],"hpluv":[167.158861879927684,106.382034992292617,38.1247572916394191],"hsluv":[167.158861879927684,99.9999999999912461,38.1247572916394191]},"#006666":{"lch":[38.6583399620500714,30.584907136256998,192.177050630061132],"luv":[38.6583399620500714,-29.8967608054288689,-6.45137488264605441],"rgb":[0,0.4,0.4],"xyz":[0.0714918104155265466,0.104615333746797073,0.142132821981638569],"hpluv":[192.177050630061132,100.392967527320849,38.6583399620500714],"hsluv":[192.177050630061132,99.9999999999914877,38.6583399620500714]},"#006677":{"lch":[39.2996251720959648,35.3400629634721852,215.899751113488037],"luv":[39.2996251720959648,-28.6270125920824867,-20.7223116547099835],"rgb":[0,0.4,0.466666666666666674],"xyz":[0.080805823435728466,0.108340938954877883,0.191186623888036478],"hpluv":[215.899751113488037,114.108563264217921,39.2996251720959648],"hsluv":[215.899751113488037,99.999999999991644,39.2996251720959648]},"#006688":{"lch":[40.0476371065618721,44.619030030948764,232.088426656893603],"luv":[40.0476371065618721,-27.4159210327312195,-35.2026293738089109],"rgb":[0,0.4,0.533333333333333326],"xyz":[0.0919462405376723,0.112797105795655481,0.249859487291608645],"hpluv":[232.088426656893603,141.378234692038774,40.0476371065618721],"hsluv":[232.088426656893603,99.9999999999918145,40.0476371065618721]},"#006699":{"lch":[40.8996671875350728,56.0796471869528546,242.024131169727298],"luv":[40.8996671875350728,-26.3069429553173038,-49.5264735364712863],"rgb":[0,0.4,0.6],"xyz":[0.105003204646745008,0.118019891439284638,0.318626164932726552],"hpluv":[242.024131169727298,173.990215160848891,40.8996671875350728],"hsluv":[242.024131169727298,99.9999999999919,40.8996671875350728]},"#0066aa":{"lch":[41.8515997707465104,68.3303466488807345,248.245335088520562],"luv":[41.8515997707465104,-25.3254853434547229,-63.4638169768779861],"rgb":[0,0.4,0.66666666666666663],"xyz":[0.12006089761199755,0.124042968625385747,0.397930014549725153],"hpluv":[248.245335088520562,207.176688473106537,41.8515997707465104],"hsluv":[248.245335088520562,99.9999999999921,41.8515997707465104]},"#0066bb":{"lch":[42.8982420202673396,80.6980154219041452,252.339105133311591],"luv":[42.8982420202673396,-24.4823887435570384,-76.8946183711398],"rgb":[0,0.4,0.733333333333333282],"xyz":[0.137198489719334182,0.130898005468320505,0.488187999648366899],"hpluv":[252.339105133311591,238.705643004687346,42.8982420202673396],"hsluv":[252.339105133311591,99.9999999999922125,42.8982420202673396]},"#0066cc":{"lch":[44.0336413015701211,92.8728169416488356,255.165448618736946],"luv":[44.0336413015701211,-23.7781103155697018,-89.7772888680517696],"rgb":[0,0.4,0.8],"xyz":[0.156490865163055937,0.138614955645809307,0.589794510318637],"hpluv":[255.165448618736946,267.63526922347819,44.0336413015701211],"hsluv":[255.165448618736946,99.9999999999922835,44.0336413015701211]},"#0066dd":{"lch":[45.2513748624169807,104.723900430114114,257.197154574648096],"luv":[45.2513748624169807,-23.2064943358636171,-102.120291528843495],"rgb":[0,0.4,0.866666666666666696],"xyz":[0.17800919071368948,0.147222285866062841,0.703124358218643],"hpluv":[257.197154574648096,293.665789717253858,45.2513748624169807],"hsluv":[257.197154574648096,99.9999999999923119,45.2513748624169807]},"#0066ee":{"lch":[46.5448008930790422,116.210429262859975,258.70668283343889],"luv":[46.5448008930790422,-22.7576936505684415,-113.960305585607557],"rgb":[0,0.4,0.933333333333333348],"xyz":[0.201821370979864217,0.156747157972532858,0.828535174287166276],"hpluv":[258.70668283343889,316.82048544727013,46.5448008930790422],"hsluv":[258.70668283343889,99.9999999999923119,46.5448008930790422]},"#0066ff":{"lch":[47.9072652547968758,127.336469583599694,259.859032010401279],"luv":[47.9072652547968758,-22.4202120236612075,-125.347160234402949],"rgb":[0,0.4,1],"xyz":[0.227992419389695611,0.167215577336465582,0.966369362578948121],"hpluv":[259.859032010401279,337.280125749862,47.9072652547968758],"hsluv":[259.859032010401279,99.9999999999992326,47.9072652547968758]},"#55ff00":{"lch":[88.6611895097861691,129.940408372856581,124.363532639485271],"luv":[88.6611895097861691,-73.3437881830395213,107.262288168144963],"rgb":[0.333333333333333315,1,0],"xyz":[0.395046625265482121,0.734485169925456649,0.120950824445320529],"hpluv":[124.363532639485271,511.214684976108288,88.6611895097861691],"hsluv":[124.363532639485271,100.000000000002203,88.6611895097861691]},"#55ff11":{"lch":[88.6804070841335488,129.16615931328721,124.557188606571273],"luv":[88.6804070841335488,-73.2667318726085597,106.376137890284312],"rgb":[0.333333333333333315,1,0.0666666666666666657],"xyz":[0.396058290765119225,0.734889836125311557,0.126278929410076152],"hpluv":[124.557188606571273,509.111714190739917,88.6804070841335488],"hsluv":[124.557188606571273,99.999999999991374,88.6804070841335488]},"#55ff22":{"lch":[88.7160126920472862,127.742171235629925,124.920549061750862],"luv":[88.7160126920472862,-73.1247263453711867,104.741762009752222],"rgb":[0.333333333333333315,1,0.133333333333333331],"xyz":[0.397933648903596282,0.735639979380702358,0.136155815606055358],"hpluv":[124.920549061750862,505.235489858807625,88.7160126920472862],"hsluv":[124.920549061750862,99.9999999999912461,88.7160126920472862]},"#55ff33":{"lch":[88.7745841250638819,125.429409451765778,125.531442964179078],"luv":[88.7745841250638819,-72.893256299655377,102.074041467218606],"rgb":[0.333333333333333315,1,0.2],"xyz":[0.401021399636054,0.736875079673685485,0.152417969463666508],"hpluv":[125.531442964179078,498.916518871762833,88.7745841250638819],"hsluv":[125.531442964179078,99.9999999999915445,88.7745841250638819]},"#55ff44":{"lch":[88.8590323294941271,122.159967165607114,126.442013329478428],"luv":[88.8590323294941271,-72.5641116581323189,98.2726171279075658],"rgb":[0.333333333333333315,1,0.266666666666666663],"xyz":[0.405479394880272903,0.738658277771373,0.175896744416553147],"hpluv":[126.442013329478428,489.934204596741552,88.8590323294941271],"hsluv":[126.442013329478428,99.9999999999914735,88.8590323294941271]},"#55ff55":{"lch":[88.9717666926620154,117.915518658848484,127.715012949240119],"luv":[88.9717666926620154,-72.1329719647303,93.2786357968462],"rgb":[0.333333333333333315,1,0.333333333333333315],"xyz":[0.411441808919634888,0.7410432433871178,0.207298791690527062],"hpluv":[127.715012949240119,478.187207442594797,88.9717666926620154],"hsluv":[127.715012949240119,99.9999999999912461,88.9717666926620154]},"#55ff66":{"lch":[89.1148309932425,112.728028648536309,129.430986513959965],"luv":[89.1148309932425,-71.5990188667543919,87.0700232014633713],"rgb":[0.333333333333333315,1,0.4],"xyz":[0.419026804693143073,0.744077241696521119,0.247246436097671],"hpluv":[129.430986513959965,463.701047487447568,89.1148309932425],"hsluv":[129.430986513959965,99.999999999991374,89.1148309932425]},"#55ff77":{"lch":[89.2899761450384233,106.6837193332601,131.696695826109391],"luv":[89.2899761450384233,-70.9646547782272705,79.6582308552282825],"rgb":[0.333333333333333315,1,0.466666666666666674],"xyz":[0.428340817713345,0.747802846904602,0.296300238004068905],"hpluv":[131.696695826109391,446.653165807945641,89.2899761450384233],"hsluv":[131.696695826109391,99.9999999999911466,89.2899761450384233]},"#55ff88":{"lch":[89.4987035327786344,99.9302046144725722,134.655503696120093],"luv":[89.4987035327786344,-70.2351927280585784,71.0849034376696807],"rgb":[0.333333333333333315,1,0.533333333333333326],"xyz":[0.439481234815288779,0.752259013745379512,0.354973101407641101],"hpluv":[134.655503696120093,427.420708471833962,89.4987035327786344],"hsluv":[134.655503696120093,99.9999999999910472,89.4987035327786344]},"#55ff99":{"lch":[89.7422928839939544,92.6881300553494185,138.499225093055145],"luv":[89.7422928839939544,-69.4184746025382395,61.4179520744067275],"rgb":[0.333333333333333315,1,0.6],"xyz":[0.452538198924361534,0.757481799389008725,0.423739779048759],"hpluv":[138.499225093055145,406.664135605650245,89.7422928839939544],"hsluv":[138.499225093055145,99.9999999999909193,89.7422928839939544]},"#55ffaa":{"lch":[90.021821419032733,85.2692799565717081,143.477548510033301],"luv":[90.021821419032733,-68.524415632830582,50.7469660816416095],"rgb":[0.333333333333333315,1,0.66666666666666663],"xyz":[0.467595891889614035,0.763504876575109792,0.503043628665757581],"hpluv":[143.477548510033301,385.467603776639692,90.021821419032733],"hsluv":[143.477548510033301,99.9999999999908908,90.021821419032733]},"#55ffbb":{"lch":[90.3381779071049635,78.1017696608261929,149.892156464581973],"luv":[90.3381779071049635,-67.5644942943643514,39.178125719584358],"rgb":[0.333333333333333315,1,0.733333333333333282],"xyz":[0.484733483996950709,0.770359913418044551,0.593301613764399383],"hpluv":[149.892156464581973,365.560319764238727,90.3381779071049635],"hsluv":[149.892156464581973,99.9999999999906,90.3381779071049635]},"#55ffcc":{"lch":[90.6920737330737836,71.7555158590460849,158.04408297895796],"luv":[90.6920737330737836,-66.5512174426729217,26.828893251416094],"rgb":[0.333333333333333315,1,0.8],"xyz":[0.504025859440672463,0.778076863595533408,0.694908124434669539],"hpluv":[158.04408297895796,349.620992563925881,90.6920737330737836],"hsluv":[158.04408297895796,99.9999999999905214,90.6920737330737836]},"#55ffdd":{"lch":[91.0840522607878142,66.9403052018893874,168.083008151042208],"luv":[91.0840522607878142,-65.4975936461766,13.8227959213187273],"rgb":[0.333333333333333315,1,0.866666666666666696],"xyz":[0.525544184991306,0.786684193815786914,0.808237972334675536],"hpluv":[168.083008151042208,341.570927955438208,91.0840522607878142],"hsluv":[168.083008151042208,99.9999999999901092,91.0840522607878142]},"#55ffee":{"lch":[91.5144973031429,64.4172738793593,179.746868091755],"luv":[91.5144973031429,-64.4166452130874347,0.284593639433804613],"rgb":[0.333333333333333315,1,0.933333333333333348],"xyz":[0.549356365257480661,0.796209065922256931,0.933648788403198759],"hpluv":[179.746868091755,346.559914030924404,91.5144973031429],"hsluv":[179.746868091755,99.9999999999898108,91.5144973031429]},"#55ffff":{"lch":[91.9836412143362,64.7784688708661918,192.177050630061103],"luv":[91.9836412143362,-63.3209831419883,-13.663935128132529],"rgb":[0.333333333333333315,1,1],"xyz":[0.575527413667312082,0.806677485286189655,1.07148297669498049],"hpluv":[192.177050630061103,370.276433987554753,91.9836412143362],"hsluv":[192.177050630061103,99.9999999999890719,91.9836412143362]},"#007700":{"lch":[43.052730924646589,66.6333343982289534,127.715012949240503],"luv":[43.052730924646589,-40.7618988300426395,52.7111834129681611],"rgb":[0,0.466666666666666674,0],"xyz":[0.0659653690412832505,0.131930738082568333,0.0219884563470937981],"hpluv":[127.715012949240503,196.394882900214441,43.052730924646589],"hsluv":[127.715012949240503,100.000000000002217,43.052730924646589]},"#007711":{"lch":[43.1130460407029,64.6129906803504497,128.830381027920708],"luv":[43.1130460407029,-40.513441406878222,50.333881531534],"rgb":[0,0.466666666666666674,0.0666666666666666657],"xyz":[0.0669770345409203688,0.132335404282423186,0.0273165613118494313],"hpluv":[128.830381027920708,190.173702516526191,43.1130460407029],"hsluv":[128.830381027920708,99.9999999999908908,43.1130460407029]},"#007722":{"lch":[43.2245297597171856,61.038201507507992,131.028383581415682],"luv":[43.2245297597171856,-40.0674788501528809,46.0462721820529381],"rgb":[0,0.466666666666666674,0.133333333333333331],"xyz":[0.0688523926793974,0.133085547537814014,0.0371934475078286239],"hpluv":[131.028383581415682,179.188765673473426,43.2245297597171856],"hsluv":[131.028383581415682,99.9999999999909193,43.2245297597171856]},"#007733":{"lch":[43.4071769639209251,55.6324991773261601,135.049443606961],"luv":[43.4071769639209251,-39.3720497464739694,39.3041558041433419],"rgb":[0,0.466666666666666674,0.2],"xyz":[0.0719401434118551314,0.134320647830797113,0.0534556013654397671],"hpluv":[135.049443606961,162.632131787412106,43.4071769639209251],"hsluv":[135.049443606961,99.9999999999909193,43.4071769639209251]},"#007744":{"lch":[43.6689123670523855,48.8909209361139787,141.845848120172377],"luv":[43.6689123670523855,-38.4454486392046704,30.2038015639029105],"rgb":[0,0.466666666666666674,0.266666666666666663],"xyz":[0.076398138656074,0.136103845928484707,0.0769343763183264],"hpluv":[141.845848120172377,142.067640978907804,43.6689123670523855],"hsluv":[141.845848120172377,99.9999999999910614,43.6689123670523855]},"#007755":{"lch":[44.0154249216106,41.9153980271179,152.953344682219807],"luv":[44.0154249216106,-37.3313854656975224,19.0595973457790286],"rgb":[0,0.466666666666666674,0.333333333333333315],"xyz":[0.082360552695436,0.13848881154422954,0.108336423592300321],"hpluv":[152.953344682219807,120.839250305189026,44.0154249216106],"hsluv":[152.953344682219807,99.9999999999912461,44.0154249216106]},"#007766":{"lch":[44.4505333250062549,36.6388362985735725,170.062665906075836],"luv":[44.4505333250062549,-36.0891470448365865,6.32279929223085357],"rgb":[0,0.466666666666666674,0.4],"xyz":[0.0899455484689441753,0.141522809853632831,0.148284067999444269],"hpluv":[170.062665906075836,104.593337643625588,44.4505333250062549],"hsluv":[170.062665906075836,99.9999999999913314,44.4505333250062549]},"#007777":{"lch":[44.9764013416840669,35.58350047386471,192.17705063006116],"luv":[44.9764013416840669,-34.7828880940388601,-7.50574458738768],"rgb":[0,0.466666666666666674,0.466666666666666674],"xyz":[0.0992595614891461,0.145248415061713654,0.197337869905842178],"hpluv":[192.17705063006116,100.392967527320835,44.9764013416840669],"hsluv":[192.17705063006116,99.9999999999914451,44.9764013416840669]},"#007788":{"lch":[45.5937085159301603,40.0276538709377,213.25546015720218],"luv":[45.5937085159301603,-33.4724811425817,-21.9500815618326577],"rgb":[0,0.466666666666666674,0.533333333333333326],"xyz":[0.110399978591089923,0.149704581902491252,0.256010733309414373],"hpluv":[213.25546015720218,111.402399127386914,45.5937085159301603],"hsluv":[213.25546015720218,99.9999999999916156,45.5937085159301603]},"#007799":{"lch":[46.3018156057360244,48.7595612734022907,228.659125647543163],"luv":[46.3018156057360244,-32.2075160625452597,-36.6083422822662357],"rgb":[0,0.466666666666666674,0.6],"xyz":[0.123456942700162636,0.154927367546120409,0.324777410950532253],"hpluv":[228.659125647543163,133.62911578541167,46.3018156057360244],"hsluv":[228.659125647543163,99.9999999999917577,46.3018156057360244]},"#0077aa":{"lch":[47.0989379645613795,59.8445186957143,238.773531847525192],"luv":[47.0989379645613795,-31.0247207616125031,-51.1745358511991597],"rgb":[0,0.466666666666666674,0.66666666666666663],"xyz":[0.138514635665415164,0.160950444732221504,0.404081260567530853],"hpluv":[238.773531847525192,161.232500989130415,47.0989379645613795],"hsluv":[238.773531847525192,99.999999999991914,47.0989379645613795]},"#0077bb":{"lch":[47.9823278818304146,71.9659744020705432,245.408717039049918],"luv":[47.9823278818304146,-29.9480972873728,-65.4386196408934495],"rgb":[0,0.466666666666666674,0.733333333333333282],"xyz":[0.155652227772751839,0.167805481575156262,0.4943392456661726],"hpluv":[245.408717039049918,190.32034768447943,47.9823278818304146],"hsluv":[245.408717039049918,99.9999999999920561,47.9823278818304146]},"#0077cc":{"lch":[48.9484610491917067,84.4081580704908276,249.9122747909542],"luv":[48.9484610491917067,-28.9906993044602252,-79.2734287305105454],"rgb":[0,0.466666666666666674,0.8],"xyz":[0.174944603216473565,0.175522431752645064,0.595945756336442756],"hpluv":[249.9122747909542,218.818838178067409,48.9484610491917067],"hsluv":[249.9122747909542,99.9999999999922125,48.9484610491917067]},"#0077dd":{"lch":[49.9932200675849,96.8017840095652389,253.089738624096071],"luv":[49.9932200675849,-28.15707849035525,-92.6162206005108715],"rgb":[0,0.466666666666666674,0.866666666666666696],"xyz":[0.196462928767107109,0.184129761972898598,0.709275604236448753],"hpluv":[253.089738624096071,245.70363248193695,49.9932200675849],"hsluv":[253.089738624096071,99.9999999999921272,49.9932200675849]},"#0077ee":{"lch":[51.1120678627821547,108.963279527823246,255.411176145550684],"luv":[51.1120678627821547,-27.4457353077348785,-105.450120430828804],"rgb":[0,0.466666666666666674,0.933333333333333348],"xyz":[0.220275109033281846,0.193654634079368643,0.834686420304972],"hpluv":[255.411176145550684,270.517920771775039,51.1120678627821547],"hsluv":[255.411176145550684,99.9999999999922551,51.1120678627821547]},"#0077ff":{"lch":[52.300205122294,120.810007187166491,257.158195690943],"luv":[52.300205122294,-26.851223719183885,-117.788240590245493],"rgb":[0,0.466666666666666674,1],"xyz":[0.24644615744311324,0.204123053443301339,0.972520608596753822],"hpluv":[257.158195690943,293.11554041762389,52.300205122294],"hsluv":[257.158195690943,99.9999999999991189,52.300205122294]},"#008800":{"lch":[49.0166039301270473,75.8637069146273291,127.71501294924046],"luv":[49.0166039301270473,-46.4084346679225348,60.0129920808956214],"rgb":[0,0.533333333333333326,0],"xyz":[0.0880377387662537,0.176075477532509878,0.0293459129220837445],"hpluv":[127.71501294924046,196.394882900214583,49.0166039301270473],"hsluv":[127.71501294924046,100.000000000002359,49.0166039301270473]},"#008811":{"lch":[49.066374048408079,74.1307167522113133,128.546257021813432],"luv":[49.066374048408079,-46.1942790787678064,57.9780281364371461],"rgb":[0,0.533333333333333326,0.0666666666666666657],"xyz":[0.0890494042658908219,0.17648014373236473,0.0346740178868393742],"hpluv":[128.546257021813432,191.713881645209739,49.066374048408079],"hsluv":[128.546257021813432,99.9999999999908908,49.066374048408079]},"#008822":{"lch":[49.1584337135343503,71.0276132120671,130.159311596065152],"luv":[49.1584337135343503,-45.8067815452400779,54.2831521106656112],"rgb":[0,0.533333333333333326,0.133333333333333331],"xyz":[0.090924762404367851,0.177230286987755559,0.0445509040828185737],"hpluv":[130.159311596065152,183.344763498744726,49.1584337135343503],"hsluv":[130.159311596065152,99.9999999999909335,49.1584337135343503]},"#008833":{"lch":[49.3094443496477197,66.226384742663825,133.033255321350083],"luv":[49.3094443496477197,-45.1943905199784481,48.4086882864121648],"rgb":[0,0.533333333333333326,0.2],"xyz":[0.0940125131368255845,0.178465387280738658,0.060813057940429717],"hpluv":[133.033255321350083,170.427732437953466,49.3094443496477197],"hsluv":[133.033255321350083,99.9999999999909903,49.3094443496477197]},"#008844":{"lch":[49.5262444349700388,59.9709063982634589,137.708745518338219],"luv":[49.5262444349700388,-44.3625073014275202,40.3543995143041],"rgb":[0,0.533333333333333326,0.266666666666666663],"xyz":[0.0984705083810444581,0.180248585378426252,0.0842918328933163485],"hpluv":[137.708745518338219,153.654237765673173,49.5262444349700388],"hsluv":[137.708745518338219,99.9999999999910756,49.5262444349700388]},"#008855":{"lch":[49.8139833497656355,52.876539169604392,145.043769270071607],"luv":[49.8139833497656355,-43.3370811793054074,30.2956397756013871],"rgb":[0,0.533333333333333326,0.333333333333333315],"xyz":[0.104432922420406457,0.182633550994171084,0.115693880167290264],"hpluv":[145.043769270071607,134.694876863850226,49.8139833497656355],"hsluv":[145.043769270071607,99.9999999999911893,49.8139833497656355]},"#008866":{"lch":[50.1764284055384593,46.0546718070978613,156.264738854980266],"luv":[50.1764284055384593,-42.1591397878491918,18.5375221539472825],"rgb":[0,0.533333333333333326,0.4],"xyz":[0.112017918193914628,0.185667549303574375,0.155641524574434226],"hpluv":[156.264738854980266,116.469784961641182,50.1764284055384593],"hsluv":[156.264738854980266,99.9999999999912461,50.1764284055384593]},"#008877":{"lch":[50.6161324463586766,41.2412500498738694,172.391379993232761],"luv":[50.6161324463586766,-40.8781468825216336,5.46056893805106114],"rgb":[0,0.533333333333333326,0.466666666666666674],"xyz":[0.121331931214116548,0.189393154511655198,0.204695326480832135],"hpluv":[172.391379993232761,103.390869865470918,50.6161324463586766],"hsluv":[172.391379993232761,99.9999999999913456,50.6161324463586766]},"#008888":{"lch":[51.1345503085294695,40.4555776108317602,192.177050630061132],"luv":[51.1345503085294695,-39.545345738280993,-8.53342781453345],"rgb":[0,0.533333333333333326,0.533333333333333326],"xyz":[0.132472348316060362,0.193849321352432796,0.263368189884404302],"hpluv":[192.177050630061132,100.392967527320849,51.1345503085294695],"hsluv":[192.177050630061132,99.9999999999914877,51.1345503085294695]},"#008899":{"lch":[51.7321394091786715,44.6308971675799881,211.11913642158629],"luv":[51.7321394091786715,-38.208266400248,-23.066108485628412],"rgb":[0,0.533333333333333326,0.6],"xyz":[0.145529312425133089,0.199072106996061954,0.332134867525522237],"hpluv":[211.11913642158629,109.474886689832829,51.7321394091786715],"hsluv":[211.11913642158629,99.999999999991573,51.7321394091786715]},"#0088aa":{"lch":[52.4084594351014914,52.8385448128107598,225.694192047300788],"luv":[52.4084594351014914,-36.9070805124816346,-37.8124215831333572],"rgb":[0,0.533333333333333326,0.66666666666666663],"xyz":[0.160587005390385618,0.205095184182163048,0.411438717142520782],"hpluv":[225.694192047300788,127.934825585488483,52.4084594351014914],"hsluv":[225.694192047300788,99.9999999999917,52.4084594351014914]},"#0088bb":{"lch":[53.1622766119302952,63.4852929684367,235.812153399491365],"luv":[53.1622766119302952,-35.672889398211332,-52.5150205681309856],"rgb":[0,0.533333333333333326,0.733333333333333282],"xyz":[0.177724597497722292,0.211950221025097807,0.501696702241162584],"hpluv":[235.812153399491365,151.533580059798538,53.1622766119302952],"hsluv":[235.812153399491365,99.9999999999918572,53.1622766119302952]},"#0088cc":{"lch":[53.9916730817088961,75.3609801883338406,242.731381598031476],"luv":[53.9916730817088961,-34.5275961267233455,-66.9859868976812578],"rgb":[0,0.533333333333333326,0.8],"xyz":[0.197016972941444019,0.219667171202586609,0.60330321291143274],"hpluv":[242.731381598031476,177.116523654060018,53.9916730817088961],"hsluv":[242.731381598031476,99.9999999999919282,53.9916730817088961]},"#0088dd":{"lch":[54.894159312243417,87.7409205251226,247.565131731451658],"luv":[54.894159312243417,-33.4848266090853,-81.1001573460580545],"rgb":[0,0.533333333333333326,0.866666666666666696],"xyz":[0.218535298492077562,0.228274501422840143,0.716633060811438738],"hpluv":[247.565131731451658,202.822146488853946,54.894159312243417],"hsluv":[247.565131731451658,99.9999999999921414,54.894159312243417]},"#0088ee":{"lch":[55.8667862779657725,100.217939448335898,251.046181944553609],"luv":[55.8667862779657725,-32.551381555669181,-94.7841914355319091],"rgb":[0,0.533333333333333326,0.933333333333333348],"xyz":[0.242347478758252299,0.237799373529310187,0.842043876879962],"hpluv":[251.046181944553609,227.630842720065772,55.8667862779657725],"hsluv":[251.046181944553609,99.9999999999923261,55.8667862779657725]},"#0088ff":{"lch":[56.9062538959811803,112.568622459607909,253.628629682131134],"luv":[56.9062538959811803,-31.728824885135996,-108.00452043253614],"rgb":[0,0.533333333333333326,1],"xyz":[0.268518527168083665,0.248267792893242883,0.979878065171743806],"hpluv":[253.628629682131134,251.013269675548315,56.9062538959811803],"hsluv":[253.628629682131134,99.9999999999989,56.9062538959811803]},"#009900":{"lch":[54.8465256129575778,84.8867610313905629,127.71501294924046],"luv":[54.8465256129575778,-51.9281467214630865,67.1507987776363677],"rgb":[0,0.6,0],"xyz":[0.11390733921872119,0.227814678437445572,0.037969113072906],"hpluv":[127.71501294924046,196.394882900214611,54.8465256129575778],"hsluv":[127.71501294924046,100.000000000002359,54.8465256129575778]},"#009911":{"lch":[54.8884489227774139,83.3822613920475533,128.355135015114286],"luv":[54.8884489227774139,-51.7415219578455918,65.3866685214771195],"rgb":[0,0.6,0.0666666666666666657],"xyz":[0.114919004718358309,0.228219344637300425,0.0432972180376616292],"hpluv":[128.355135015114286,192.766711025891595,54.8884489227774139],"hsluv":[128.355135015114286,99.9999999999908908,54.8884489227774139]},"#009922":{"lch":[54.9660326693047665,80.6666974094322882,129.584419925030318],"luv":[54.9660326693047665,-51.4019848556742147,62.168738316310943],"rgb":[0,0.6,0.133333333333333331],"xyz":[0.116794362856835338,0.228969487892691254,0.0531741042336408287],"hpluv":[129.584419925030318,186.225526863887183,54.9660326693047665],"hsluv":[129.584419925030318,99.9999999999908766,54.9660326693047665]},"#009933":{"lch":[55.0934048637144826,76.4021664793699529,131.735569901926],"luv":[55.0934048637144826,-50.8604445821364948,57.0132109221080725],"rgb":[0,0.6,0.2],"xyz":[0.119882113589293071,0.230204588185674353,0.0694362580912519789],"hpluv":[131.735569901926,175.972736191316358,55.0934048637144826],"hsluv":[131.735569901926,99.9999999999909903,55.0934048637144826]},"#009944":{"lch":[55.2764995203901321,70.6973886175228614,135.142608572152881],"luv":[55.2764995203901321,-50.1148739946869739,49.8660221176072795],"rgb":[0,0.6,0.266666666666666663],"xyz":[0.124340108833511945,0.231987786283361946,0.0929150330441386174],"hpluv":[135.142608572152881,162.293888564466016,55.2764995203901321],"hsluv":[135.142608572152881,99.9999999999910472,55.2764995203901321]},"#009955":{"lch":[55.5199214835444792,63.9084670453141044,140.311824754994205],"luv":[55.5199214835444792,-49.1795700812718,40.8125231602173173],"rgb":[0,0.6,0.333333333333333315],"xyz":[0.130302522872873944,0.234372751899106779,0.124317080318112519],"hpluv":[140.311824754994205,146.065915008593578,55.5199214835444792],"hsluv":[140.311824754994205,99.999999999991033,55.5199214835444792]},"#009966":{"lch":[55.8272121342916847,56.7002292022714229,147.995210176352344],"luv":[55.8272121342916847,-48.0820094218291771,30.0505634148387166],"rgb":[0,0.6,0.4],"xyz":[0.137887518646382129,0.23740675020851007,0.164264724725256495],"hpluv":[147.995210176352344,128.877825594911201,55.8272121342916847],"hsluv":[147.995210176352344,99.9999999999911893,55.8272121342916847]},"#009977":{"lch":[56.2009899164422393,50.1460500452165832,159.138923639260469],"luv":[56.2009899164422393,-46.85880632633,17.8571723631952],"rgb":[0,0.6,0.466666666666666674],"xyz":[0.147201531666584035,0.241132355416590893,0.213318526631654404],"hpluv":[159.138923639260469,113.222330796973324,56.2009899164422393],"hsluv":[159.138923639260469,99.9999999999912887,56.2009899164422393]},"#009988":{"lch":[56.6430401241061077,45.7780774967248476,174.293450088826631],"luv":[56.6430401241061077,-45.5512109338885409,4.55187453172192669],"rgb":[0,0.6,0.533333333333333326],"xyz":[0.158341948768527863,0.245588522257368491,0.271991390035226543],"hpluv":[174.293450088826631,102.553461073272217,56.6430401241061077],"hsluv":[174.293450088826631,99.9999999999913456,56.6430401241061077]},"#009999":{"lch":[57.1543844255405133,45.2182256610376498,192.177050630061132],"luv":[57.1543844255405133,-44.2008363998384866,-9.53802880511673301],"rgb":[0,0.6,0.6],"xyz":[0.171398912877600562,0.250811307900997649,0.340758067676344478],"hpluv":[192.177050630061132,100.392967527320849,57.1543844255405133],"hsluv":[192.177050630061132,99.9999999999914877,57.1543844255405133]},"#0099aa":{"lch":[57.7353441317496,49.1617433665336065,209.362441333496832],"luv":[57.7353441317496,-42.8462007667450138,-24.1056028900479831],"rgb":[0,0.6,0.66666666666666663],"xyz":[0.186456605842853118,0.256834385087098771,0.420061917293343079],"hpluv":[209.362441333496832,108.050017888493571,57.7353441317496],"hsluv":[209.362441333496832,99.9999999999915872,57.7353441317496]},"#0099bb":{"lch":[58.3856036871333686,56.8846197873520509,223.121526867409756],"luv":[58.3856036871333686,-41.5203973647636531,-38.8833713947714656],"rgb":[0,0.6,0.733333333333333282],"xyz":[0.203594197950189765,0.26368942193003353,0.51031990239198477],"hpluv":[223.121526867409756,123.631292939903787,58.3856036871333686],"hsluv":[223.121526867409756,99.9999999999917151,58.3856036871333686]},"#0099cc":{"lch":[59.1042769117952531,67.0724902608298237,233.123241992210865],"luv":[59.1042769117952531,-40.2499186561976856,-53.6531732328907225],"rgb":[0,0.6,0.8],"xyz":[0.222886573393911491,0.271406372107522331,0.611926413062254926],"hpluv":[233.123241992210865,144.000781521109104,59.1042769117952531],"hsluv":[233.123241992210865,99.9999999999918572,59.1042769117952531]},"#0099dd":{"lch":[59.889976295668248,78.6325369214165448,240.220044999287609],"luv":[59.889976295668248,-39.0544489896310338,-68.2482664747921888],"rgb":[0,0.6,0.866666666666666696],"xyz":[0.244404898944545035,0.280013702327775837,0.725256260962260924],"hpluv":[240.220044999287609,166.60478591483178,59.889976295668248],"hsluv":[240.220044999287609,99.9999999999918288,59.889976295668248]},"#0099ee":{"lch":[60.7408843834734853,90.8542474807105549,245.312254820906361],"luv":[60.7408843834734853,-37.9473430473261288,-82.5499451298106521],"rgb":[0,0.6,0.933333333333333348],"xyz":[0.2682170792107198,0.289538574434245854,0.850667077030784147],"hpluv":[245.312254820906361,189.803165481490907,60.7408843834734853],"hsluv":[245.312254820906361,99.9999999999919424,60.7408843834734853]},"#0099ff":{"lch":[61.6548256470178444,103.309645725501895,249.051296659176671],"luv":[61.6548256470178444,-36.936501733242423,-96.4809708680364082],"rgb":[0,0.6,1],"xyz":[0.294388127620551165,0.300006993798178578,0.988501265322566],"hpluv":[249.051296659176671,212.624411607996194,61.6548256470178444],"hsluv":[249.051296659176671,99.9999999999986926,61.6548256470178444]},"#44aa00":{"lch":[61.6346835386869714,87.655425968627469,122.331376925101353],"luv":[61.6346835386869714,-46.8794507107122556,74.0661245293922],"rgb":[0.266666666666666663,0.66666666666666663,0],"xyz":[0.167579386406696784,0.29977360690638849,0.0490310792412290836],"hpluv":[122.331376925101353,180.464989524422549,61.6346835386869714],"hsluv":[122.331376925101353,100.00000000000226,61.6346835386869714]},"#44aa11":{"lch":[61.6696010074672927,86.3319887480293175,122.80087722620695],"luv":[61.6696010074672927,-46.7678581574140253,72.5670705248452492],"rgb":[0.266666666666666663,0.66666666666666663,0.0666666666666666657],"xyz":[0.168591051906333916,0.300178273106243343,0.0543591842059847133],"hpluv":[122.80087722620695,177.639660035048053,61.6696010074672927],"hsluv":[122.80087722620695,97.7717273205757778,61.6696010074672927]},"#44aa22":{"lch":[61.7342457720645541,83.9245562706402097,123.699102784065559],"luv":[61.7342457720645541,-46.5639790081192,69.8221097085679],"rgb":[0.266666666666666663,0.66666666666666663,0.133333333333333331],"xyz":[0.170466410044810918,0.300928416361634143,0.0642360704019639128],"hpluv":[123.699102784065559,172.505216938407472,61.7342457720645541],"hsluv":[123.699102784065559,93.6968530578778882,61.7342457720645541]},"#44aa33":{"lch":[61.8404488118369784,80.0901636841586111,125.261260913590505],"luv":[61.8404488118369784,-46.2365065380172098,65.3958697634278],"rgb":[0.266666666666666663,0.66666666666666663,0.2],"xyz":[0.173554160777268651,0.30216351665461727,0.080498224259575063],"hpluv":[125.261260913590505,164.340980941234676,61.8404488118369784],"hsluv":[125.261260913590505,87.1410828818075913,61.8404488118369784]},"#44aa44":{"lch":[61.9932720073472,74.8379874444649573,127.71501294923992],"luv":[61.9932720073472,-45.7809668449718501,59.2015830825281526],"rgb":[0.266666666666666663,0.66666666666666663,0.266666666666666663],"xyz":[0.178012156021487539,0.303946714752304836,0.103976999212461702],"hpluv":[127.71501294923992,153.185220958209158,61.9932720073472],"hsluv":[127.71501294923992,77.998580561819125,61.9932720073472]},"#44aa55":{"lch":[62.1967362447927883,68.3415808764166854,131.40733952388851],"luv":[62.1967362447927883,-45.2016647888952292,51.2579864704043118],"rgb":[0.266666666666666663,0.66666666666666663,0.333333333333333315],"xyz":[0.183974570060849552,0.306331680368049697,0.135379046486435617],"hpluv":[131.40733952388851,139.430168232009549,62.1967362447927883],"hsluv":[131.40733952388851,78.575415606985473,62.1967362447927883]},"#44aa66":{"lch":[62.4540496972210377,60.9745995384144,136.885019691281769],"luv":[62.4540496972210377,-44.510458035487396,41.6739836629655684],"rgb":[0.266666666666666663,0.66666666666666663,0.4],"xyz":[0.191559565834357709,0.309365678677453,0.175326690893579551],"hpluv":[136.885019691281769,123.88755407265441,62.4540496972210377],"hsluv":[136.885019691281769,79.2669246679894854,62.4540496972210377]},"#44aa77":{"lch":[62.7677273349888196,53.3862032124370103,144.988299459670287],"luv":[62.7677273349888196,-43.7251633677153,30.629998072253084],"rgb":[0.266666666666666663,0.66666666666666663,0.466666666666666674],"xyz":[0.200873578854559642,0.313091283885533811,0.22438049279997746],"hpluv":[144.988299459670287,107.927460302012818,62.7677273349888196],"hsluv":[144.988299459670287,80.0573307147673603,62.7677273349888196]},"#44aa88":{"lch":[63.1396635168947142,46.6323085826041606,156.819414130132799],"luv":[63.1396635168947142,-42.8676249510766354,18.3558964585511255],"rgb":[0.266666666666666663,0.66666666666666663,0.533333333333333326],"xyz":[0.212013995956503443,0.317547450726311409,0.283053356203549655],"hpluv":[156.819414130132799,93.7182088199909,63.1396635168947142],"hsluv":[156.819414130132799,80.9270306732118456,63.1396635168947142]},"#44aa99":{"lch":[63.5711832083111,42.2713825005608328,173.059905511526438],"luv":[63.5711832083111,-41.9616613239929848,5.10771548142927578],"rgb":[0.266666666666666663,0.66666666666666663,0.6],"xyz":[0.22507096006557617,0.322770236369940566,0.351820033844667535],"hpluv":[173.059905511526438,84.3772726773670598,63.5711832083111],"hsluv":[173.059905511526438,81.8544924931781281,63.5711832083111]},"#44aaaa":{"lch":[64.0630839897801536,41.9755778813547948,192.177050630061],"luv":[64.0630839897801536,-41.03114670244819,-8.85404646225986802],"rgb":[0.266666666666666663,0.66666666666666663,0.66666666666666663],"xyz":[0.240128653030828698,0.328793313556041689,0.431123883461666135],"hpluv":[192.177050630061,83.1434743556685731,64.0630839897801536],"hsluv":[192.177050630061,82.8180264051213868,64.0630839897801536]},"#44aabb":{"lch":[64.6156750410269893,46.3675567205894481,210.140689328835606],"luv":[64.6156750410269893,-40.0984334486196374,-23.2823098339426302],"rgb":[0.266666666666666663,0.66666666666666663,0.733333333333333282],"xyz":[0.257266245138165373,0.335648350398976447,0.521381868560307882],"hpluv":[210.140689328835606,91.0574853549996135,64.6156750410269893],"hsluv":[210.140689328835606,83.7972417316187,64.6156750410269893]},"#44aacc":{"lch":[65.2288162125558131,54.5527176111565382,224.088695054270687],"luv":[65.2288162125558131,-39.1832309762682058,-37.956203827872514],"rgb":[0.266666666666666663,0.66666666666666663,0.8],"xyz":[0.276558620581887071,0.343365300576465249,0.622988379230578],"hpluv":[224.088695054270687,106.124637545316332,65.2288162125558131],"hsluv":[224.088695054270687,84.7740840933985424,65.2288162125558131]},"#44aadd":{"lch":[65.9019585504415772,65.1392687949415574,233.984713087438024],"luv":[65.9019585504415772,-38.3019605797345406,-52.6885581021924381],"rgb":[0.266666666666666663,0.66666666666666663,0.866666666666666696],"xyz":[0.29807694613252067,0.351972630796718755,0.736318227130584],"hpluv":[233.984713087438024,125.424934833645892,65.9019585504415772],"hsluv":[233.984713087438024,85.7334354760652246,65.9019585504415772]},"#44aaee":{"lch":[66.634186587349916,77.0517400481588,240.904642753345257],"luv":[66.634186587349916,-37.4675316968449081,-67.3287064556787698],"rgb":[0.266666666666666663,0.66666666666666663,0.933333333333333348],"xyz":[0.32188912639869538,0.361497502903188772,0.861729043199107259],"hpluv":[240.904642753345257,146.73194579095005,66.634186587349916],"hsluv":[240.904642753345257,86.6633273618325717,66.634186587349916]},"#44aaff":{"lch":[67.4242620727880677,89.6163291450103827,245.832487512483851],"luv":[67.4242620727880677,-36.6894434071527229,-81.7616731231704534],"rgb":[0.266666666666666663,0.66666666666666663,1],"xyz":[0.348060174808526801,0.371965922267121496,0.999563231490889104],"hpluv":[245.832487512483851,168.659292786049974,67.4242620727880677],"hsluv":[245.832487512483851,99.9999999999982094,67.4242620727880677]},"#44bb00":{"lch":[67.1028050092269126,96.9162111575721497,123.392710981560953],"luv":[67.1028050092269126,-53.3402140179528601,80.9170782570533476],"rgb":[0.266666666666666663,0.733333333333333282,0],"xyz":[0.201533884315295564,0.367682602723587049,0.0603492452107617],"hpluv":[123.392710981560953,183.271561122122193,67.1028050092269126],"hsluv":[123.392710981560953,100.00000000000226,67.1028050092269126]},"#44bb11":{"lch":[67.1332810832727347,95.7453830613523138,123.778355355208646],"luv":[67.1332810832727347,-53.2326764896654581,79.5830417319651673],"rgb":[0.266666666666666663,0.733333333333333282,0.0666666666666666657],"xyz":[0.202545549814932696,0.368087268923441902,0.0656773501755173322],"hpluv":[123.778355355208646,180.975295348072393,67.1332810832727347],"hsluv":[123.778355355208646,98.1806384027583334,67.1332810832727347]},"#44bb22":{"lch":[67.1897165718252438,93.6085464076245728,124.511290753684577],"luv":[67.1897165718252438,-53.03566579282883,77.1348048189646391],"rgb":[0.266666666666666663,0.733333333333333282,0.133333333333333331],"xyz":[0.204420907953409697,0.368837412178832702,0.0755542363714965248],"hpluv":[124.511290753684577,176.787689053856155,67.1897165718252438],"hsluv":[124.511290753684577,94.8452524510698538,67.1897165718252438]},"#44bb33":{"lch":[67.2824703298360873,90.1849869824975627,125.771296969252688],"luv":[67.2824703298360873,-52.7177504009765485,73.1721987485246501],"rgb":[0.266666666666666663,0.733333333333333282,0.2],"xyz":[0.207508658685867431,0.370072512471815829,0.091816390229107675],"hpluv":[125.771296969252688,170.087205132927863,67.2824703298360873],"hsluv":[125.771296969252688,89.4565739304913308,67.2824703298360873]},"#44bb44":{"lch":[67.4160218575577375,85.4495691526201284,127.715012949240077],"luv":[67.4160218575577375,-52.2724357759646807,67.5960156105081182],"rgb":[0.266666666666666663,0.733333333333333282,0.266666666666666663],"xyz":[0.211966653930086318,0.371855710569503395,0.115295165181994314],"hpluv":[127.715012949240077,160.837043785954393,67.4160218575577375],"hsluv":[127.715012949240077,81.8947222100884318,67.4160218575577375]},"#44bb55":{"lch":[67.5939766620447813,79.5000401119176,130.566112214394138],"luv":[67.5939766620447813,-51.7008659583180759,60.3926886051327756],"rgb":[0.266666666666666663,0.733333333333333282,0.333333333333333315],"xyz":[0.217929067969448331,0.374240676185248256,0.146697212455968229],"hpluv":[130.566112214394138,149.244617358403957,67.5939766620447813],"hsluv":[130.566112214394138,82.2871698148834412,67.5939766620447813]},"#44bb66":{"lch":[67.8192698910356313,72.5749222232247,134.657948179728322],"luv":[67.8192698910356313,-51.0109407747319139,51.6236695420221778],"rgb":[0.266666666666666663,0.733333333333333282,0.4],"xyz":[0.225514063742956489,0.377274674494651574,0.186644856863112191],"hpluv":[134.657948179728322,135.791565604529097,67.8192698910356313],"hsluv":[134.657948179728322,82.7624878443234451,67.8192698910356313]},"#44bb77":{"lch":[68.0942730594189527,65.0902087481164671,140.487577627549143],"luv":[68.0942730594189527,-50.2162275054035163,41.4133525568618168],"rgb":[0.266666666666666663,0.733333333333333282,0.466666666666666674],"xyz":[0.234828076763158422,0.38100027970273237,0.2356986587695101],"hpluv":[140.487577627549143,121.295420087000366,68.0942730594189527],"hsluv":[140.487577627549143,83.3123735080707206,68.0942730594189527]},"#44bb88":{"lch":[68.4208577329380461,57.7058903955470939,148.752185803016886],"luv":[68.4208577329380461,-49.3345927236295907,29.9343907092910229],"rgb":[0.266666666666666663,0.733333333333333282,0.533333333333333326],"xyz":[0.245968493865102222,0.385456446543509967,0.294371522173082267],"hpluv":[148.752185803016886,107.021481540968693,68.4208577329380461],"hsluv":[148.752185803016886,83.9257037652282776,68.4208577329380461]},"#44bb99":{"lch":[68.8004384509552267,51.4171630403873507,160.23039633414129],"luv":[68.8004384509552267,-48.3866530594068536,17.3912754227620781],"rgb":[0.266666666666666663,0.733333333333333282,0.6],"xyz":[0.259025457974175,0.390679232187139125,0.363138199814200147],"hpluv":[160.23039633414129,94.8322885243955,68.8004384509552267],"hsluv":[160.23039633414129,84.5895330052649683,68.8004384509552267]},"#44bbaa":{"lch":[69.2340056114394571,47.5630236168925,175.171204236910796],"luv":[69.2340056114394571,-47.3942071553531576,4.003791165451279],"rgb":[0.266666666666666663,0.733333333333333282,0.66666666666666663],"xyz":[0.274083150939427478,0.396702309373240247,0.442442049431198747],"hpluv":[175.171204236910796,87.1744714415039113,69.2340056114394571],"hsluv":[175.171204236910796,85.2901010545764251,69.2340056114394571]},"#44bbbb":{"lch":[69.722153945093,47.4463312905994243,192.177050630061103],"luv":[69.722153945093,-46.3788106784417877,-10.0080104411700219],"rgb":[0.266666666666666663,0.733333333333333282,0.733333333333333282],"xyz":[0.291220743046764152,0.403557346216175,0.532700034529840494],"hpluv":[192.177050630061103,86.3517549054621156,69.722153945093],"hsluv":[192.177050630061103,86.0137488036252,69.722153945093]},"#44bbcc":{"lch":[70.265109629848,51.5238495855336254,208.311647260201596],"luv":[70.265109629848,-45.3606162241423405,-24.4360711219862],"rgb":[0.266666666666666663,0.733333333333333282,0.8],"xyz":[0.310513118490485907,0.411274296393663807,0.63430654520011065],"hpluv":[208.311647260201596,93.0481841100277478,70.265109629848],"hsluv":[208.311647260201596,86.7476639801695484,70.265109629848]},"#44bbdd":{"lch":[70.8627576511434683,59.1258582536945,221.390354970453018],"luv":[70.8627576511434683,-44.357542252504274,-39.0931651258026491],"rgb":[0.266666666666666663,0.733333333333333282,0.866666666666666696],"xyz":[0.332031444041119395,0.419881626613917314,0.747636393100116647],"hpluv":[221.390354970453018,105.876295000483495,70.8627576511434683],"hsluv":[221.390354970453018,87.4804162985680449,70.8627576511434683]},"#44bbee":{"lch":[71.5146701379092207,69.1277260896420813,231.126492355228834],"luv":[71.5146701379092207,-43.3847784652122499,-53.8182451576511269],"rgb":[0.266666666666666663,0.733333333333333282,0.933333333333333348],"xyz":[0.35584362430729416,0.429406498720387331,0.873047209168639871],"hpluv":[231.126492355228834,122.65816352572412,71.5146701379092207],"hsluv":[231.126492355228834,88.202277385306985,71.5146701379092207]},"#44bbff":{"lch":[72.2201358507708,80.5712163793027685,238.202407995552562],"luv":[72.2201358507708,-42.4545914747530801,-68.4786723845625573],"rgb":[0.266666666666666663,0.733333333333333282,1],"xyz":[0.382014672717125525,0.439874918084320055,1.01088139746042183],"hpluv":[238.202407995552562,141.566646923483631,72.2201358507708],"hsluv":[238.202407995552562,99.9999999999976694,72.2201358507708]},"#44cc00":{"lch":[72.503692055952385,105.959797206167082,124.178253965335855],"luv":[72.503692055952385,-59.5249745926526543,87.6598883396283384],"rgb":[0.266666666666666663,0.8,0],"xyz":[0.239757627624912484,0.444130089342821943,0.0730904929806336506],"hpluv":[124.178253965335855,185.447217969921951,72.503692055952385],"hsluv":[124.178253965335855,100.000000000002359,72.503692055952385]},"#44cc11":{"lch":[72.5305637479271752,104.914943747871533,124.498982817725434],"luv":[72.5305637479271752,-59.4229434801529877,86.4642076802510928],"rgb":[0.266666666666666663,0.8,0.0666666666666666657],"xyz":[0.240769293124549616,0.444534755542676796,0.0784185979453892873],"hpluv":[124.498982817725434,183.55052269402043,72.5305637479271752],"hsluv":[124.498982817725434,98.4921383302381628,72.5305637479271752]},"#44cc22":{"lch":[72.5803335982668,103.003123626508128,125.105641856618192],"luv":[72.5803335982668,-59.2356349500081265,84.2661440252673088],"rgb":[0.266666666666666663,0.8,0.133333333333333331],"xyz":[0.242644651263026617,0.445284898798067597,0.0882954841413684799],"hpluv":[125.105641856618192,180.082189217111164,72.5803335982668],"hsluv":[125.105641856618192,95.7225658430248387,72.5803335982668]},"#44cc33":{"lch":[72.6621573160580283,99.9260617146724144,126.139923542820412],"luv":[72.6621573160580283,-58.9323161564504758,80.6982027200153],"rgb":[0.266666666666666663,0.8,0.2],"xyz":[0.245732401995484351,0.446519999091050723,0.10455763799897963],"hpluv":[126.139923542820412,174.505777504147545,72.6621573160580283],"hsluv":[126.139923542820412,91.233607132201584,72.6621573160580283]},"#44cc44":{"lch":[72.780026014363628,95.6382843785450518,127.715012949240148],"luv":[72.780026014363628,-58.5052227586060383,75.6559339961998],"rgb":[0.266666666666666663,0.8,0.266666666666666663],"xyz":[0.250190397239703266,0.448303197188738289,0.128036412951866269],"hpluv":[127.715012949240148,166.747333178852926,72.780026014363628],"hsluv":[127.715012949240148,84.9041129363740339,72.780026014363628]},"#44cc55":{"lch":[72.9371837422115732,90.1892610669535912,129.983942971096695],"luv":[72.9371837422115732,-57.9531752136704,69.1052262456084492],"rgb":[0.266666666666666663,0.8,0.333333333333333315],"xyz":[0.256152811279065251,0.45068816280448315,0.159438460225840184],"hpluv":[129.983942971096695,156.908028239254975,72.9371837422115732],"hsluv":[129.983942971096695,85.1779272269293557,72.9371837422115732]},"#44cc66":{"lch":[73.1363103507417236,83.732792729713168,133.164212643981188],"luv":[73.1363103507417236,-57.28090462038152,61.074368962666],"rgb":[0.266666666666666663,0.8,0.4],"xyz":[0.263737807052573436,0.453722161113886469,0.199386104632984118],"hpluv":[133.164212643981188,145.278670258241675,73.1363103507417236],"hsluv":[133.164212643981188,85.5122241677148764,73.1363103507417236]},"#44cc77":{"lch":[73.3796177536812309,76.5464624175537,137.569101073773794],"luv":[73.3796177536812309,-56.4983001604517625,51.6459387330839],"rgb":[0.266666666666666663,0.8,0.466666666666666674],"xyz":[0.273051820072775342,0.457447766321967264,0.248439906539382027],"hpluv":[137.569101073773794,132.369828459728325,73.3796177536812309],"hsluv":[137.569101073773794,85.9026534082125153,73.3796177536812309]},"#44cc88":{"lch":[73.6689069899719442,69.0664605730878378,143.639563525196422],"luv":[73.6689069899719442,-55.6194534086204087,40.9469459010095278],"rgb":[0.266666666666666663,0.8,0.533333333333333326],"xyz":[0.284192237174719142,0.461903933162744862,0.307112769942954222],"hpluv":[143.639563525196422,118.965846887396481,73.6689069899719442],"hsluv":[143.639563525196422,86.3428682965135863,73.6689069899719442]},"#44cc99":{"lch":[74.0056056952011,61.9424628035573548,151.940118655705163],"luv":[74.0056056952011,-54.661526046940331,29.1373689338922652],"rgb":[0.266666666666666663,0.8,0.6],"xyz":[0.297249201283791842,0.467126718806374,0.375879447584072102],"hpluv":[151.940118655705163,106.209454381597496,74.0056056952011],"hsluv":[151.940118655705163,86.8250568088678,74.0056056952011]},"#44ccaa":{"lch":[74.3907954563299256,56.0938540204294327,163.002493202880316],"luv":[74.3907954563299256,-53.6435329798001206,16.3979214631106132],"rgb":[0.266666666666666663,0.8,0.66666666666666663],"xyz":[0.312306894249044398,0.473149795992475142,0.455183297201070702],"hpluv":[163.002493202880316,95.6831366692641581,74.3907954563299256],"hsluv":[163.002493202880316,87.3405106459777727,74.3907954563299256]},"#44ccbb":{"lch":[74.8252340948823331,52.6660587979454959,176.823724318960615],"luv":[74.8252340948823331,-52.5851528012588929,2.91812511330579927],"rgb":[0.266666666666666663,0.8,0.733333333333333282],"xyz":[0.329444486356381072,0.4800048328354099,0.545441282299712449],"hpluv":[176.823724318960615,89.3145186414393493,74.8252340948823331],"hsluv":[176.823724318960615,87.8801809558037235,74.8252340948823331]},"#44cccc":{"lch":[75.3093757141467393,52.6911947618550442,192.177050630061103],"luv":[75.3093757141467393,-51.5056671360628826,-11.1143267137884898],"rgb":[0.266666666666666663,0.8,0.8],"xyz":[0.348736861800102771,0.487721783012898702,0.647047792969982605],"hpluv":[192.177050630061103,88.7826952764381758,75.3093757141467393],"hsluv":[192.177050630061103,88.4351737608208168,75.3093757141467393]},"#44ccdd":{"lch":[75.8433901234223669,56.5143539908888,206.846753698803184],"luv":[75.8433901234223669,-50.423101427505074,-25.5222069860548118],"rgb":[0.266666666666666663,0.8,0.866666666666666696],"xyz":[0.37025518735073637,0.496329113233152208,0.760377640869988602],"hpluv":[206.846753698803184,94.5540981724771257,75.8433901234223669],"hsluv":[206.846753698803184,88.9971515077065334,75.8433901234223669]},"#44ccee":{"lch":[76.4271825186181104,63.6191993934700264,219.125479385679029],"luv":[76.4271825186181104,-49.3536035237008,-40.1450414209705926],"rgb":[0.266666666666666663,0.8,0.933333333333333348],"xyz":[0.39406736761691108,0.505853985339622225,0.885788456938511826],"hpluv":[219.125479385679029,108.248092211119214,76.4271825186181104],"hsluv":[219.125479385679029,89.5586239337052,76.4271825186181104]},"#44ccff":{"lch":[77.0604138316104752,73.087044724203011,228.6232677289035],"luv":[77.0604138316104752,-48.3110621928290342,-54.8430248647743426],"rgb":[0.266666666666666663,0.8,1],"xyz":[0.420238416026742501,0.516322404703555,1.02362264523029367],"hpluv":[228.6232677289035,128.526456918779161,77.0604138316104752],"hsluv":[228.6232677289035,99.9999999999969731,77.0604138316104752]},"#44dd00":{"lch":[77.8394471675691193,114.806757868746558,124.774603647715026],"luv":[77.8394471675691193,-65.4799812263264869,94.3025116894186],"rgb":[0.266666666666666663,0.866666666666666696,0],"xyz":[0.282391618172087688,0.529398070437173462,0.0873018231630249691],"hpluv":[124.774603647715026,210.465861771712326,77.8394471675691193],"hsluv":[124.774603647715026,100.000000000002174,77.8394471675691193]},"#44dd11":{"lch":[77.8633510332093692,113.867279553553601,125.04447057905567],"luv":[77.8633510332093692,-65.3839645843072503,93.2238946202376724],"rgb":[0.266666666666666663,0.866666666666666696,0.0666666666666666657],"xyz":[0.283403283671724793,0.529802736637028371,0.0926299281277806],"hpluv":[125.04447057905567,209.014039294370775,77.8633510332093692],"hsluv":[125.04447057905567,98.7339197526847272,77.8633510332093692]},"#44dd22":{"lch":[77.9076302523257738,112.144788460185168,125.553114236235714],"luv":[77.9076302523257738,-65.2074178024426914,91.2384033306006472],"rgb":[0.266666666666666663,0.866666666666666696,0.133333333333333331],"xyz":[0.28527864181020185,0.530552879892419171,0.102506814323759798],"hpluv":[125.553114236235714,206.347170822894697,77.9076302523257738],"hsluv":[125.553114236235714,96.4050109160080382,77.9076302523257738]},"#44dd33":{"lch":[77.9804445180848802,109.362510567887881,126.41495586461761],"luv":[77.9804445180848802,-64.9207541848309546,88.0082632130877869],"rgb":[0.266666666666666663,0.866666666666666696,0.2],"xyz":[0.288366392542659555,0.531787980185402298,0.118768968181370949],"hpluv":[126.41495586461761,202.025685311970193,77.9804445180848802],"hsluv":[126.41495586461761,92.6208241654068729,77.9804445180848802]},"#44dd44":{"lch":[78.0853727898892345,105.463232003770898,127.715012949240119],"luv":[78.0853727898892345,-64.5154806081751389,83.428089194092081],"rgb":[0.266666666666666663,0.866666666666666696,0.266666666666666663],"xyz":[0.292824387786878471,0.533571178283089864,0.142247743134257587],"hpluv":[127.715012949240119,195.940425098340825,78.0853727898892345],"hsluv":[127.715012949240119,87.2650912217990395,78.0853727898892345]},"#44dd55":{"lch":[78.2253459168282888,100.46502238820301,129.562971792001804],"luv":[78.2253459168282888,-63.9887749627021662,77.4510000079714303],"rgb":[0.266666666666666663,0.866666666666666696,0.333333333333333315],"xyz":[0.298786801826240456,0.535956143898834614,0.173649790408231475],"hpluv":[129.562971792001804,188.090878204767051,78.2253459168282888],"hsluv":[129.562971792001804,87.4605090914447,78.2253459168282888]},"#44dd66":{"lch":[78.4028117957757615,94.4661355921174,132.108441056441876],"luv":[78.4028117957757615,-63.3429373931831776,70.0822592109557],"rgb":[0.266666666666666663,0.866666666666666696,0.4],"xyz":[0.306371797599748641,0.538990142208237932,0.213597434815375464],"hpluv":[132.108441056441876,178.59774401526758,78.4028117957757615],"hsluv":[132.108441056441876,87.7006053461373654,78.4028117957757615]},"#44dd77":{"lch":[78.6198227824069278,87.656024220764337,135.559861003190832],"luv":[78.6198227824069278,-62.584854150819659,61.3735660778470375],"rgb":[0.266666666666666663,0.866666666666666696,0.466666666666666674],"xyz":[0.315685810619950546,0.542715747416318783,0.262651236721773373],"hpluv":[135.559861003190832,167.73117312681623,78.6198227824069278],"hsluv":[135.559861003190832,87.9831439767702221,78.6198227824069278]},"#44dd88":{"lch":[78.8780874692010201,80.3346414261830404,140.206181380764804],"luv":[78.8780874692010201,-61.7253288138421823,51.416324216113189],"rgb":[0.266666666666666663,0.866666666666666696,0.533333333333333326],"xyz":[0.326826227721894347,0.547171914257096326,0.321324100125345513],"hpluv":[140.206181380764804,155.961921377148798,78.8780874692010201],"hsluv":[140.206181380764804,88.3044935606717729,78.8780874692010201]},"#44dd99":{"lch":[79.1790042342924,72.9438114093828602,146.430978952194238],"luv":[79.1790042342924,-60.7782665628728651,40.3336328210091182],"rgb":[0.266666666666666663,0.866666666666666696,0.6],"xyz":[0.339883191830967046,0.552394699900725539,0.390090777766463448],"hpluv":[146.430978952194238,144.047423549525234,79.1790042342924],"hsluv":[146.430978952194238,88.6599152631773109,79.1790042342924]},"#44ddaa":{"lch":[79.5236849812282,66.109750002698334,154.681927012774025],"luv":[79.5236849812282,-59.7597565852220498,28.2713731236083063],"rgb":[0.266666666666666663,0.866666666666666696,0.66666666666666663],"xyz":[0.354940884796219602,0.558417777086826606,0.469394627383462049],"hpluv":[154.681927012774025,133.15854000611057,79.5236849812282],"hsluv":[154.681927012774025,89.0438856180527267,79.5236849812282]},"#44ddbb":{"lch":[79.9129735834354733,60.6712530747818448,165.306614809553963],"luv":[79.9129735834354733,-58.687123678359157,15.3890371376899697],"rgb":[0.266666666666666663,0.866666666666666696,0.733333333333333282],"xyz":[0.372078476903556277,0.565272813929761364,0.55965261248210374],"hpluv":[165.306614809553963,125.005338667233715,79.9129735834354733],"hsluv":[165.306614809553963,89.4504295982059574,79.9129735834354733]},"#44ddcc":{"lch":[80.3474616163736783,57.6077690930220925,178.158710030216184],"luv":[80.3474616163736783,-57.5780241737671616,1.85099760130491053],"rgb":[0.266666666666666663,0.866666666666666696,0.8],"xyz":[0.391370852347278,0.572989764107250221,0.661259123152373895],"hpluv":[178.158710030216184,121.786592068950441,80.3474616163736783],"hsluv":[178.158710030216184,89.8734379183952399,80.3474616163736783]},"#44dddd":{"lch":[80.8275029051271758,57.7489755309586,192.177050630061132],"luv":[80.8275029051271758,-56.4496501662069505,-12.1811810177875159],"rgb":[0.266666666666666663,0.866666666666666696,0.866666666666666696],"xyz":[0.412889177897911575,0.581597094327503727,0.774588971052379893],"hpluv":[192.177050630061132,125.674721736272474,80.8275029051271758],"hsluv":[192.177050630061132,90.3069463225795204,80.8275029051271758]},"#44ddee":{"lch":[81.3532277894993143,61.361693698739991,205.642938459455962],"luv":[81.3532277894993143,-55.3180860243278758,-26.5549771640468073],"rgb":[0.266666666666666663,0.866666666666666696,0.933333333333333348],"xyz":[0.436701358164086284,0.591121966433973745,0.899999787120903116],"hpluv":[205.642938459455962,137.939634766348263,81.3532277894993143],"hsluv":[205.642938459455962,90.7453615563817806,81.3532277894993143]},"#44ddff":{"lch":[81.9245576129038113,68.0382655080336463,217.195369709248553],"luv":[81.9245576129038113,-54.1978382178125813,-41.1314953029609],"rgb":[0.266666666666666663,0.866666666666666696,1],"xyz":[0.462872406573917705,0.601590385797906468,1.03783397541268507],"hpluv":[217.195369709248553,158.576151866946,81.9245576129038113],"hsluv":[217.195369709248553,99.9999999999957367,81.9245576129038113]},"#44ee00":{"lch":[83.112739541513335,123.476763986331008,125.23710114083579],"luv":[83.112739541513335,-71.241317589729718,100.852297507867192],"rgb":[0.266666666666666663,0.933333333333333348,0],"xyz":[0.329570394512602505,0.623755623118204428,0.103028081943196154],"hpluv":[125.23710114083579,311.240798427125753,83.112739541513335],"hsluv":[125.23710114083579,100.000000000002402,83.112739541513335]},"#44ee11":{"lch":[83.1341682891089135,122.626446998812852,125.466600012922257],"luv":[83.1341682891089135,-71.1513320296005674,99.8735873690646656],"rgb":[0.266666666666666663,0.933333333333333348,0.0666666666666666657],"xyz":[0.330582060012239609,0.624160289318059336,0.10835618690795179],"hpluv":[125.466600012922257,309.547675363147619,83.1341682891089135],"hsluv":[125.466600012922257,98.9247180409442279,83.1341682891089135]},"#44ee22":{"lch":[83.1738669889620184,121.064908518289769,125.897986234483838],"luv":[83.1738669889620184,-70.9856689153146192,98.0701120789979],"rgb":[0.266666666666666663,0.933333333333333348,0.133333333333333331],"xyz":[0.332457418150716666,0.624910432573450136,0.118233073103930983],"hpluv":[125.897986234483838,306.432309176179558,83.1738669889620184],"hsluv":[125.897986234483838,96.9444732717922,83.1738669889620184]},"#44ee33":{"lch":[83.2391611795664517,118.535427876706891,126.625494433478437],"luv":[83.2391611795664517,-70.7161072615436694,95.1308563805026921],"rgb":[0.266666666666666663,0.933333333333333348,0.2],"xyz":[0.335545168883174372,0.626145532866433263,0.134495226961542119],"hpluv":[126.625494433478437,301.369067751793693,83.2391611795664517],"hsluv":[126.625494433478437,93.7204451717133651,83.2391611795664517]},"#44ee44":{"lch":[83.3332795320092714,114.974418092600288,127.715012949240275],"luv":[83.3332795320092714,-70.3337997514069855,90.9520391649414],"rgb":[0.266666666666666663,0.933333333333333348,0.266666666666666663],"xyz":[0.340003164127393287,0.627928730964120829,0.157974001914428758],"hpluv":[127.715012949240275,294.205765091151079,83.3332795320092714],"hsluv":[127.715012949240275,89.1439564147074321,83.3332795320092714]},"#44ee55":{"lch":[83.4588814464859183,110.379279114867671,129.248151137931956],"luv":[83.4588814464859183,-69.8347997913980123,85.479155330485213],"rgb":[0.266666666666666663,0.933333333333333348,0.333333333333333315],"xyz":[0.345965578166755272,0.630313696579865579,0.189376049188402673],"hpluv":[129.248151137931956,284.901382538762221,83.4588814464859183],"hsluv":[129.248151137931956,89.2862876088480419,83.4588814464859183]},"#44ee66":{"lch":[83.6182069813856,104.810737833959209,131.33226272314829],"luv":[83.6182069813856,-69.2195888954281,78.7015837099029],"rgb":[0.266666666666666663,0.933333333333333348,0.4],"xyz":[0.353550573940263457,0.633347694889268897,0.229323693595546635],"hpluv":[131.33226272314829,273.53562680177663,83.6182069813856],"hsluv":[131.33226272314829,89.462046779026835,83.6182069813856]},"#44ee77":{"lch":[83.8131566406418642,98.3993759238413759,134.112401675041724],"luv":[83.8131566406418642,-68.4926783274834889,70.6483559449852123],"rgb":[0.266666666666666663,0.933333333333333348,0.466666666666666674],"xyz":[0.362864586960465363,0.637073300097349748,0.278377495501944572],"hpluv":[134.112401675041724,260.333399951005049,83.8131566406418642],"hsluv":[134.112401675041724,89.6701381262035682,83.8131566406418642]},"#44ee88":{"lch":[84.045338735079568,91.3569443918750892,137.785521400150031],"luv":[84.045338735079568,-67.6621349200187439,61.3834406553211949],"rgb":[0.266666666666666663,0.933333333333333348,0.533333333333333326],"xyz":[0.374005004062409163,0.641529466938127291,0.337050358905516712],"hpluv":[137.785521400150031,245.709311488591595,84.045338735079568],"hsluv":[137.785521400150031,89.9084899734552323,84.045338735079568]},"#44ee99":{"lch":[84.3160998906388386,83.9946679616676306,142.613931790318958],"luv":[84.3160998906388386,-66.738995210465,51.0001055321292895],"rgb":[0.266666666666666663,0.933333333333333348,0.6],"xyz":[0.387061968171481863,0.646752252581756504,0.405817036546634591],"hpluv":[142.613931790318958,230.343048149298568,84.3160998906388386],"hsluv":[142.613931790318958,90.1742147406472725,84.3160998906388386]},"#44eeaa":{"lch":[84.626546237332235,76.7502660373389887,148.925817786423067],"luv":[84.626546237332235,-65.7365837009088239,39.6144531722415607],"rgb":[0.266666666666666663,0.933333333333333348,0.66666666666666663],"xyz":[0.402119661136734419,0.652775329767857571,0.485120886163633247],"hpluv":[148.925817786423067,215.298316825794302,84.626546237332235],"hsluv":[148.925817786423067,90.4637941794664897,84.626546237332235]},"#44eebb":{"lch":[84.9775593290447,70.218708007349818,157.069253127653155],"luv":[84.9775593290447,-64.6697768267590618,27.3584889823731068],"rgb":[0.266666666666666663,0.933333333333333348,0.733333333333333282],"xyz":[0.419257253244071093,0.659630366610792329,0.575378871262274938],"hpluv":[157.069253127653155,202.183693696822303,84.9775593290447],"hsluv":[157.069253127653155,90.7732788992861401,84.9775593290447]},"#44eecc":{"lch":[85.3698091329633826,65.1592886039499462,167.256585364158155],"luv":[85.3698091329633826,-63.5542641697608914,14.3731832665241086],"rgb":[0.266666666666666663,0.933333333333333348,0.8],"xyz":[0.438549628687792792,0.667347316788281186,0.676985381932545094],"hpluv":[167.256585364158155,193.290067765431047,85.3698091329633826],"hsluv":[167.256585364158155,91.0984884260964,85.3698091329633826]},"#44eedd":{"lch":[85.803765500838054,62.4110099600490216,179.263728091065275],"luv":[85.803765500838054,-62.4058570040272613,0.801982435119061421],"rgb":[0.266666666666666663,0.933333333333333348,0.866666666666666696],"xyz":[0.460067954238426391,0.675954647008534693,0.790315229832551092],"hpluv":[179.263728091065275,191.499842549603557,85.803765500838054],"hsluv":[179.263728091065275,91.4351983708881875,85.803765500838054]},"#44eeee":{"lch":[86.2797089909746546,62.6494691870182407,192.17705063006116],"luv":[86.2797089909746546,-61.2398849709435922,-13.2148582346064085],"rgb":[0.266666666666666663,0.933333333333333348,0.933333333333333348],"xyz":[0.4838801345046011,0.68547951911500471,0.915726045901074315],"hpluv":[192.17705063006116,199.700166684316315,86.2797089909746546],"hsluv":[192.17705063006116,91.7793037580661775,86.2797089909746546]},"#44eeff":{"lch":[86.7977415696122847,66.0848691943621134,204.633388514668525],"luv":[86.7977415696122847,-60.0707080483631159,-27.5448719547627086],"rgb":[0.266666666666666663,0.933333333333333348,1],"xyz":[0.510051182914432522,0.695947938478937433,1.05356023419285627],"hpluv":[204.633388514668525,219.870556477974674,86.7977415696122847],"hsluv":[204.633388514668525,99.9999999999936904,86.7977415696122847]},"#44ff00":{"lch":[88.3264513606833,131.987460278186802,125.602389702763816],"luv":[88.3264513606833,-76.837408418496949,107.315899745634312],"rgb":[0.266666666666666663,1,0],"xyz":[0.381422766942276337,0.727460367977553535,0.120312206086420265],"hpluv":[125.602389702763816,502.990651378155178,88.3264513606833],"hsluv":[125.602389702763816,100.000000000002331,88.3264513606833]},"#44ff11":{"lch":[88.3457924202418496,131.213348009411362,125.799444038401859],"luv":[88.3457924202418496,-76.7532223203665609,106.423143908077066],"rgb":[0.266666666666666663,1,0.0666666666666666657],"xyz":[0.382434432441913441,0.727865034177408443,0.125640311051175901],"hpluv":[125.799444038401859,500.950310911531346,88.3457924202418496],"hsluv":[125.799444038401859,99.9999999999917577,88.3457924202418496]},"#44ff22":{"lch":[88.3816266358799538,129.789896608084,126.169061428897493],"luv":[88.3816266358799538,-76.5980824061806089,104.776672180562713],"rgb":[0.266666666666666663,1,0.133333333333333331],"xyz":[0.384309790580390498,0.728615177432799244,0.13551719724715508],"hpluv":[126.169061428897493,497.190929074143924,88.3816266358799538],"hsluv":[126.169061428897493,99.9999999999915445,88.3816266358799538]},"#44ff33":{"lch":[88.4405736189592204,127.478814054469,126.790121098902588],"luv":[88.4405736189592204,-76.3452168675528071,102.089450454884],"rgb":[0.266666666666666663,1,0.2],"xyz":[0.387397541312848204,0.72985027772578237,0.15177935110476623],"hpluv":[126.790121098902588,491.06642972530841,88.4405736189592204],"hsluv":[126.790121098902588,99.9999999999916,88.4405736189592204]},"#44ff44":{"lch":[88.5255621746627099,124.213522374992053,127.715012949240247],"luv":[88.5255621746627099,-75.9856771103925,98.2607552122302],"rgb":[0.266666666666666663,1,0.266666666666666663],"xyz":[0.391855536557067119,0.731633475823469936,0.175258126057652869],"hpluv":[127.715012949240247,482.369437382385513,88.5255621746627099],"hsluv":[127.715012949240247,99.9999999999915872,88.5255621746627099]},"#44ff55":{"lch":[88.6390158335401,119.977757557138,129.006344472088813],"luv":[88.6390158335401,-75.5147735105559832,93.2318684253877734],"rgb":[0.266666666666666663,1,0.333333333333333315],"xyz":[0.397817950596429104,0.734018441439214686,0.206660173331626784],"hpluv":[129.006344472088813,471.012302242813519,88.6390158335401],"hsluv":[129.006344472088813,99.9999999999916724,88.6390158335401]},"#44ff66":{"lch":[88.7829895920100256,114.806361082699226,130.743859599912923],"luv":[88.7829895920100256,-74.9316504675157518,86.9813100801842438],"rgb":[0.266666666666666663,1,0.4],"xyz":[0.405402946369937289,0.737052439748618,0.246607817738770746],"hpluv":[130.743859599912923,457.03528250903878,88.7829895920100256],"hsluv":[130.743859599912923,99.999999999991374,88.7829895920100256]},"#44ff77":{"lch":[88.9592430558717524,108.789243130847709,133.032335199193767],"luv":[88.9592430558717524,-74.2389756563468239,79.5215311376676226],"rgb":[0.266666666666666663,1,0.466666666666666674],"xyz":[0.414716959390139195,0.740778044956698856,0.295661619645168683],"hpluv":[133.032335199193767,440.631455855157412,88.9592430558717524],"hsluv":[133.032335199193767,99.999999999991374,88.9592430558717524]},"#44ff88":{"lch":[89.1692840038805343,102.078340317719523,136.01097660716411],"luv":[89.1692840038805343,-73.4425963051882462,70.8955048643657904],"rgb":[0.266666666666666663,1,0.533333333333333326],"xyz":[0.425857376492083,0.745234211797476398,0.354334483048740823],"hpluv":[136.01097660716411,422.1930512248951,89.1692840038805343],"hsluv":[136.01097660716411,99.9999999999912177,89.1692840038805343]},"#44ff99":{"lch":[89.4143964062191117,94.8987049380611438,139.863519733640288],"luv":[89.4143964062191117,-72.5511163277215303,61.1727040314764139],"rgb":[0.266666666666666663,1,0.6],"xyz":[0.43891434060115575,0.750456997441105611,0.423101160689858702],"hpluv":[139.863519733640288,402.3908266141122,89.4143964062191117],"hsluv":[139.863519733640288,99.9999999999912,89.4143964062191117]},"#44ffaa":{"lch":[89.695659684091666,87.5652599917726207,144.82485232612342],"luv":[89.695659684091666,-71.5753927145854192,50.4444042008586777],"rgb":[0.266666666666666663,1,0.66666666666666663],"xyz":[0.453972033566408251,0.756480074627206678,0.502405010306857358],"hpluv":[144.82485232612342,382.304282325397367,89.695659684091666],"hsluv":[144.82485232612342,99.9999999999909335,89.695659684091666]},"#44ffbb":{"lch":[90.0139628620153616,80.5050918065685153,151.171682460988421],"luv":[90.0139628620153616,-70.527972915407986,38.8184858440859557],"rgb":[0.266666666666666663,1,0.733333333333333282],"xyz":[0.471109625673744925,0.763335111470141436,0.592662995405499],"hpluv":[151.171682460988421,363.621116250194575,90.0139628620153616],"hsluv":[151.171682460988421,99.999999999990834,90.0139628620153616]},"#44ffcc":{"lch":[90.3700157308713443,74.2777558665274853,159.169074542576084],"luv":[90.3700157308713443,-69.4225064855060481,26.4140229771485018],"rgb":[0.266666666666666663,1,0.8],"xyz":[0.490402001117466679,0.771052061647630294,0.694269506075769205],"hpluv":[159.169074542576084,348.900804743837909,90.3700157308713443],"hsluv":[159.169074542576084,99.9999999999905924,90.3700157308713443]},"#44ffdd":{"lch":[90.7643583149998,69.56728840997188,168.931262835156701],"luv":[90.7643583149998,-68.2731674827513899,13.3559806299794577],"rgb":[0.266666666666666663,1,0.866666666666666696],"xyz":[0.511920326668100167,0.7796593918678838,0.807599353975775203],"hpluv":[168.931262835156701,341.810509676969502,90.7643583149998],"hsluv":[168.931262835156701,99.9999999999902798,90.7643583149998]},"#44ffee":{"lch":[91.1973694573754869,67.0945142582603182,180.196137266844971],"luv":[91.1973694573754869,-67.094121132442,-0.229680249688981986],"rgb":[0.266666666666666663,1,0.933333333333333348],"xyz":[0.535732506934274877,0.789184263974353817,0.933010170044298426],"hpluv":[180.196137266844971,347.079488330816218,91.1973694573754869],"hsluv":[180.196137266844971,99.999999999989825,91.1973694573754869]},"#44ffff":{"lch":[91.6692750397398726,67.4158875874256,192.177050630061103],"luv":[91.6692750397398726,-65.8990611515587261,-14.2202545175369188],"rgb":[0.266666666666666663,1,1],"xyz":[0.561903555344106298,0.799652683338286541,1.07084435833608027],"hpluv":[192.177050630061103,369.886157390881351,91.6692750397398726],"hsluv":[192.177050630061103,99.9999999999897,91.6692750397398726]},"#33aa00":{"lch":[61.1785977172963129,90.1064171712311435,124.683940112874311],"luv":[61.1785977172963129,-51.2749716142469723,74.09482911373847],"rgb":[0.2,0.66666666666666663,0],"xyz":[0.157393059993970491,0.294521282349826385,0.0485535951906325494],"hpluv":[124.683940112874311,186.894073454811917,61.1785977172963129],"hsluv":[124.683940112874311,100.000000000002302,61.1785977172963129]},"#33aa11":{"lch":[61.2139288108167818,88.7849168066190089,125.171000261233829],"luv":[61.2139288108167818,-51.1417680861379793,72.5760360544852148],"rgb":[0.2,0.66666666666666663,0.0666666666666666657],"xyz":[0.158404725493607623,0.294925948549681238,0.0538817001553881791],"hpluv":[125.171000261233829,184.046797309440706,61.2139288108167818],"hsluv":[125.171000261233829,97.729263879491441,61.2139288108167818]},"#33aa22":{"lch":[61.2793378507832642,86.3832953662584657,126.10140218084841],"luv":[61.2793378507832642,-50.8984310656693708,69.7955831939783593],"rgb":[0.2,0.66666666666666663,0.133333333333333331],"xyz":[0.160280083632084625,0.295676091805072039,0.0637585863513673717],"hpluv":[126.10140218084841,178.877217305585333,61.2793378507832642],"hsluv":[126.10140218084841,93.5778090815338146,61.2793378507832642]},"#33aa33":{"lch":[61.3867923044640946,82.5646745763668548,127.715012949240119],"luv":[61.3867923044640946,-50.5076466968263134,65.3138814728533],"rgb":[0.2,0.66666666666666663,0.2],"xyz":[0.163367834364542386,0.296911192098055166,0.0800207402089785219],"hpluv":[127.715012949240119,170.670578118814461,61.3867923044640946],"hsluv":[127.715012949240119,86.9017438736093339,61.3867923044640946]},"#33aa44":{"lch":[61.5414071550205364,77.3485744588317488,130.237764523164799],"luv":[61.5414071550205364,-49.9641607354037305,59.0456146789935588],"rgb":[0.2,0.66666666666666663,0.266666666666666663],"xyz":[0.167825829608761246,0.298694390195742732,0.10349951516186516],"hpluv":[130.237764523164799,159.486606837004757,61.5414071550205364],"hsluv":[130.237764523164799,87.1702267355774723,61.5414071550205364]},"#33aa55":{"lch":[61.7472402279952775,70.9239260559490106,134.00596147156574],"luv":[61.7472402279952775,-49.2732069613111605,51.0132763399638876],"rgb":[0.2,0.66666666666666663,0.333333333333333315],"xyz":[0.173788243648123231,0.301079355811487592,0.134901562435839062],"hpluv":[134.00596147156574,145.752006815371971,61.7472402279952775],"hsluv":[134.00596147156574,87.512567621072165,61.7472402279952775]},"#33aa66":{"lch":[62.0075227235960824,63.6834089970413046,139.532932917076664],"luv":[62.0075227235960824,-48.4490087982300253,41.3312246123130436],"rgb":[0.2,0.66666666666666663,0.4],"xyz":[0.181373239421631416,0.304113354120890911,0.174849206842983024],"hpluv":[139.532932917076664,130.323054003441854,62.0075227235960824],"hsluv":[139.532932917076664,87.9225345315596769,62.0075227235960824]},"#33aa77":{"lch":[62.3247799262656201,56.2910074750267,147.571074265173024],"luv":[62.3247799262656201,-47.5128361285441727,30.1862207898839152],"rgb":[0.2,0.66666666666666663,0.466666666666666674],"xyz":[0.190687252441833321,0.307838959328971706,0.223903008749380933],"hpluv":[147.571074265173024,114.608702125460667,62.3247799262656201],"hsluv":[147.571074265173024,88.3905588997681519,62.3247799262656201]},"#33aa88":{"lch":[62.7009046876535052,49.786919253891476,159.033972270618222],"luv":[62.7009046876535052,-46.4906641824602147,17.8144736848221363],"rgb":[0.2,0.66666666666666663,0.533333333333333326],"xyz":[0.201827669543777177,0.312295126169749304,0.2825758721529531],"hpluv":[159.033972270618222,100.758286424528237,62.7009046876535052],"hsluv":[159.033972270618222,88.9048289963628804,62.7009046876535052]},"#33aa99":{"lch":[63.1372095297142835,45.6309193537352797,174.368717478757389],"luv":[63.1372095297142835,-45.4107033068770818,4.47759156711236095],"rgb":[0.2,0.66666666666666663,0.6],"xyz":[0.214884633652849877,0.317517911813378462,0.351342549794071035],"hpluv":[174.368717478757389,91.7092542399893631,63.1372095297142835],"hsluv":[174.368717478757389,89.4524406674979,63.1372095297142835]},"#33aaaa":{"lch":[63.6344696573538897,45.3208071547743288,192.17705063006116],"luv":[63.6344696573538897,-44.3011098571894,-9.5596666563997],"rgb":[0.2,0.66666666666666663,0.66666666666666663],"xyz":[0.229942326618102433,0.323540988999479584,0.430646399411069636],"hpluv":[192.17705063006116,90.3742140686623117,63.6344696573538897],"hsluv":[192.17705063006116,90.0204628815860559,63.6344696573538897]},"#33aabb":{"lch":[64.1929631055189844,49.4317459506583177,209.109442205543161],"luv":[64.1929631055189844,-43.188124160558381,-24.0475245965695663],"rgb":[0.2,0.66666666666666663,0.733333333333333282],"xyz":[0.247079918725439052,0.330396025842414343,0.520904384509711327],"hpluv":[209.109442205543161,97.7142389408223835,64.1929631055189844],"hsluv":[209.109442205543161,90.5968047396532228,64.1929631055189844]},"#33aacc":{"lch":[64.8125111239688181,57.2242456540803062,222.641155468482083],"luv":[64.8125111239688181,-42.0947673064025736,-38.7639633693247347],"rgb":[0.2,0.66666666666666663,0.8],"xyz":[0.266372294169160806,0.338112976019903144,0.622510895179981483],"hpluv":[222.641155468482083,112.036763534802631,64.8125111239688181],"hsluv":[222.641155468482083,91.1708232266795875,64.8125111239688181]},"#33aadd":{"lch":[65.4925201274692199,67.4454999587780151,232.519386199289158],"luv":[65.4925201274692199,-41.0401119544032653,-53.5220017886062465],"rgb":[0.2,0.66666666666666663,0.866666666666666696],"xyz":[0.28789061971979435,0.34672030624015665,0.73584074307998748],"hpluv":[232.519386199289158,130.67743538587149,65.4925201274692199],"hsluv":[232.519386199289158,91.7336648454097485,65.4925201274692199]},"#33aaee":{"lch":[66.23202547083838,79.0605595482254,239.573325902293959],"luv":[66.23202547083838,-40.039054494753934,-68.1721804788773],"rgb":[0.2,0.66666666666666663,0.933333333333333348],"xyz":[0.311702799985969059,0.356245178346626667,0.861251559148510704],"hpluv":[239.573325902293959,151.471586303299148,66.23202547083838],"hsluv":[239.573325902293959,92.278374899274425,66.23202547083838]},"#33aaff":{"lch":[67.0297366624436,91.3892467801412778,244.667711773110682],"luv":[67.0297366624436,-39.1024682991195291,-82.6014007142609898],"rgb":[0.2,0.66666666666666663,1],"xyz":[0.33787384839580048,0.366713597710559391,0.999085747440292549],"hpluv":[244.667711773110682,173.00828905748071,67.0297366624436],"hsluv":[244.667711773110682,99.9999999999982094,67.0297366624436]},"#33bb00":{"lch":[66.705199456007648,99.1588934495857757,125.274120260315158],"luv":[66.705199456007648,-57.2631629787864327,80.9531735993793262],"rgb":[0.2,0.733333333333333282,0],"xyz":[0.191347557902569271,0.362430278167024944,0.0598717611601651684],"hpluv":[125.274120260315158,188.630237299381349,66.705199456007648],"hsluv":[125.274120260315158,100.000000000002331,66.705199456007648]},"#33bb11":{"lch":[66.7359690986495764,97.9890755357957914,125.670572132139952],"luv":[66.7359690986495764,-57.1397853669544133,79.6046723036925385],"rgb":[0.2,0.733333333333333282,0.0666666666666666657],"xyz":[0.192359223402206403,0.362834944366879797,0.0651998661249208],"hpluv":[125.670572132139952,186.318944611331347,66.7359690986495764],"hsluv":[125.670572132139952,98.1524285745497451,66.7359690986495764]},"#33bb22":{"lch":[66.7929473545782,95.8553977164860243,126.423299967719473],"luv":[66.7929473545782,-56.9137739802675,77.1302768224563],"rgb":[0.2,0.733333333333333282,0.133333333333333331],"xyz":[0.194234581540683404,0.363585087622270597,0.0750767523209],"hpluv":[126.423299967719473,182.106434833594022,66.7929473545782],"hsluv":[126.423299967719473,94.7659081903439073,66.7929473545782]},"#33bb33":{"lch":[66.8865907457163,92.4406335233364302,127.715012949240233],"luv":[66.8865907457163,-56.5491099236273058,73.126389853740946],"rgb":[0.2,0.733333333333333282,0.2],"xyz":[0.197322332273141166,0.364820187915253724,0.0913389061785111478],"hpluv":[127.715012949240233,175.373180985258983,66.8865907457163],"hsluv":[127.715012949240233,89.2962069049265637,66.8865907457163]},"#33bb44":{"lch":[67.0214179407225572,87.725631811763563,129.70178400392939],"luv":[67.0214179407225572,-56.0384119529137763,67.4943172612971409],"rgb":[0.2,0.733333333333333282,0.266666666666666663],"xyz":[0.201780327517360025,0.36660338601294129,0.114817681131397786],"hpluv":[129.70178400392939,166.093340387543549,67.0214179407225572],"hsluv":[129.70178400392939,89.4761749642590871,67.0214179407225572]},"#33bb55":{"lch":[67.2010629421400552,81.8171313208689099,132.60288320444127],"luv":[67.2010629421400552,-55.3830806540106479,60.2225651632978796],"rgb":[0.2,0.733333333333333282,0.333333333333333315],"xyz":[0.207742741556722,0.368988351628686151,0.146219728405371674],"hpluv":[132.60288320444127,154.492511096020365,67.2010629421400552],"hsluv":[132.60288320444127,89.7076242739581,67.2010629421400552]},"#33bb66":{"lch":[67.4284803792762091,74.9653268862145,136.738510871982356],"luv":[67.4284803792762091,-54.5922668909562248,51.3759148907695788],"rgb":[0.2,0.733333333333333282,0.4],"xyz":[0.215327737330230196,0.372022349938089469,0.186167372812515663],"hpluv":[136.738510871982356,141.07705768332076,67.4284803792762091],"hsluv":[136.738510871982356,89.9877463438330096,67.4284803792762091]},"#33bb77":{"lch":[67.7060530794905446,67.5982244112705,142.572908280802977],"luv":[67.7060530794905446,-53.681598162732449,41.0829156980295878],"rgb":[0.2,0.733333333333333282,0.466666666666666674],"xyz":[0.224641750350432101,0.375747955146170265,0.235221174718913573],"hpluv":[142.572908280802977,126.69139486293237,67.7060530794905446],"hsluv":[142.572908280802977,90.3115397167098,67.7060530794905446]},"#33bb88":{"lch":[68.0356563096068641,60.380187227113133,150.730801091974854],"luv":[68.0356563096068641,-52.67158330257773,29.5206931148449],"rgb":[0.2,0.733333333333333282,0.533333333333333326],"xyz":[0.235782167452375957,0.380204121986947863,0.293894038122485712],"hpluv":[150.730801091974854,112.615249481580875,68.0356563096068641],"hsluv":[150.730801091974854,90.6723452470342437,68.0356563096068641]},"#33bb99":{"lch":[68.4187011865960244,54.2829584497859159,161.862695711717],"luv":[68.4187011865960244,-51.585814888834193,16.8980259295610082],"rgb":[0.2,0.733333333333333282,0.6],"xyz":[0.248839131561448657,0.385426907630577,0.362660715763603647],"hpluv":[161.862695711717,100.676477021468287,68.4187011865960244],"hsluv":[161.862695711717,91.0624469223214,68.4187011865960244]},"#33bbaa":{"lch":[68.8561680799326439,50.5661966451060749,176.101011456941364],"luv":[68.8561680799326439,-50.4491601398581224,3.43838397135738649],"rgb":[0.2,0.733333333333333282,0.66666666666666663],"xyz":[0.263896824526701212,0.391449984816678143,0.441964565380602248],"hpluv":[176.101011456941364,93.1873079321678404,68.8561680799326439],"hsluv":[176.101011456941364,91.473675634614068,68.8561680799326439]},"#33bbbb":{"lch":[69.3486356756669835,50.4205674478029,192.177050630061103],"luv":[69.3486356756669835,-49.286127891295429,-10.635375839212843],"rgb":[0.2,0.733333333333333282,0.733333333333333282],"xyz":[0.281034416634037831,0.398305021659612901,0.532222550479243939],"hpluv":[192.177050630061103,92.2590830970113132,69.3486356756669835],"hsluv":[192.177050630061103,91.8979539795913922,69.3486356756669835]},"#33bbcc":{"lch":[69.8963087653012423,54.2786660468549442,207.559867588447844],"luv":[69.8963087653012423,-48.1195504219082224,-25.1133919457216273],"rgb":[0.2,0.733333333333333282,0.8],"xyz":[0.300326792077759586,0.406021971837101703,0.633829061149514095],"hpluv":[207.559867588447844,98.540384199822455,69.8963087653012423],"hsluv":[207.559867588447844,92.3277362004695306,69.8963087653012423]},"#33bbdd":{"lch":[70.4990463576295241,61.569428837921933,220.28187220447964],"luv":[70.4990463576295241,-46.9696505240293618,-39.807618580850594],"rgb":[0.2,0.733333333333333282,0.866666666666666696],"xyz":[0.321845117628393129,0.414629302057355209,0.747158909049520092],"hpluv":[220.28187220447964,110.820781636478685,70.4990463576295241],"hsluv":[220.28187220447964,92.7563200135089119,70.4990463576295241]},"#33bbee":{"lch":[71.1563908243766576,71.2672074810155181,229.953995552192254],"luv":[71.1563908243766576,-45.8534981630350487,-54.557048750410388],"rgb":[0.2,0.733333333333333282,0.933333333333333348],"xyz":[0.345657297894567894,0.424154174163825226,0.872569725118043316],"hpluv":[229.953995552192254,127.091105244163856,71.1563908243766576],"hsluv":[229.953995552192254,93.1780289437208893,71.1563908243766576]},"#33bbff":{"lch":[71.8675982303626597,82.4526478797043296,237.101125866277243],"luv":[71.8675982303626597,-44.7848112977892,-69.2297610814592161],"rgb":[0.2,0.733333333333333282,1],"xyz":[0.37182834630439926,0.43462259352775795,1.01040391340982527],"hpluv":[237.101125866277243,145.583046200088774,71.8675982303626597],"hsluv":[237.101125866277243,99.9999999999977831,71.8675982303626597]},"#33cc00":{"lch":[72.1534232831706532,108.011475964841438,125.713046635977918],"luv":[72.1534232831706532,-63.0491190384013507,87.6999859098336287],"rgb":[0.2,0.8,0],"xyz":[0.229571301212186191,0.438877764786259839,0.0726130089300371234],"hpluv":[125.713046635977918,189.955680955455,72.1534232831706532],"hsluv":[125.713046635977918,100.000000000002402,72.1534232831706532]},"#33cc11":{"lch":[72.1805088449519,106.967132064598133,126.040754358939225],"luv":[72.1805088449519,-62.9352412435677095,86.493483868665578],"rgb":[0.2,0.8,0.0666666666666666657],"xyz":[0.230582966711823323,0.439282430986114691,0.0779411138947927601],"hpluv":[126.040754358939225,188.048441784684599,72.1805088449519],"hsluv":[126.040754358939225,98.4728126855506645,72.1805088449519]},"#33cc22":{"lch":[72.2306742907645543,105.057034533260762,126.660198785960176],"luv":[72.2306742907645543,-62.7261976516662614,84.2757653960309199],"rgb":[0.2,0.8,0.133333333333333331],"xyz":[0.232458324850300324,0.440032574241505492,0.0878180000907719527],"hpluv":[126.660198785960176,184.562215611711281,72.2306742907645543],"hsluv":[126.660198785960176,95.6680740449206866,72.2306742907645543]},"#33cc33":{"lch":[72.31314692234902,101.984984863208481,127.715012949240304],"luv":[72.31314692234902,-62.3877173898115416,80.6765756365369668],"rgb":[0.2,0.8,0.2],"xyz":[0.235546075582758085,0.441267674534488619,0.104080153948383103],"hpluv":[127.715012949240304,178.960959976488198,72.31314692234902],"hsluv":[127.715012949240304,91.1230258822071306,72.31314692234902]},"#33cc44":{"lch":[72.4319472107582669,97.7091257880760651,129.318260791805528],"luv":[72.4319472107582669,-61.9111863445413135,75.5915224590797123],"rgb":[0.2,0.8,0.266666666666666663],"xyz":[0.240004070826976945,0.443050872632176185,0.127558928901269741],"hpluv":[129.318260791805528,171.176559629977817,72.4319472107582669],"hsluv":[129.318260791805528,91.2471619418673612,72.4319472107582669]},"#33cc55":{"lch":[72.590341240881628,92.2844112105744756,131.621023493746776],"luv":[72.590341240881628,-61.2953573189119396,68.9876200751215407],"rgb":[0.2,0.8,0.333333333333333315],"xyz":[0.24596648486633893,0.445435838247921045,0.158960976175243629],"hpluv":[131.621023493746776,161.32023063104279,72.590341240881628],"hsluv":[131.621023493746776,91.4078622695478,72.590341240881628]},"#33cc66":{"lch":[72.7910248315973405,85.8719567505974197,134.835055825888389],"luv":[72.7910248315973405,-60.5455878238572112,60.8951948123993319],"rgb":[0.2,0.8,0.4],"xyz":[0.253551480639847115,0.448469836557324364,0.198908620582387619],"hpluv":[134.835055825888389,149.696915507144809,72.7910248315973405],"hsluv":[134.835055825888389,91.6039613293452533,72.7910248315973405]},"#33cc77":{"lch":[73.0362204241858421,78.757716060864837,139.259917231121676],"luv":[73.0362204241858421,-59.6729854923348,51.3995393126768079],"rgb":[0.2,0.8,0.466666666666666674],"xyz":[0.262865493660049,0.452195441765405159,0.247962422488785528],"hpluv":[139.259917231121676,136.834039856532058,73.0362204241858421],"hsluv":[139.259917231121676,91.8328510325735294,73.0362204241858421]},"#33cc88":{"lch":[73.3277345291399,71.3846311778678597,145.306874573990314],"luv":[73.3277345291399,-58.6933246064594201,40.6307668527313197],"rgb":[0.2,0.8,0.533333333333333326],"xyz":[0.274005910761992877,0.456651608606182757,0.306635285892357667],"hpluv":[145.306874573990314,123.530949311180805,73.3277345291399],"hsluv":[145.306874573990314,92.0907512285691894,73.3277345291399]},"#33cc99":{"lch":[73.6669954969027714,64.400374936046,153.483372150156],"luv":[73.6669954969027714,-57.6257667092137709,28.7520312861295437],"rgb":[0.2,0.8,0.6],"xyz":[0.287062874871065576,0.461874394249811915,0.375401963533475602],"hpluv":[153.483372150156,110.931469165383049,73.6669954969027714],"hsluv":[153.483372150156,92.3730273510429072,73.6669954969027714]},"#33ccaa":{"lch":[74.0550811623464114,58.6991946004706691,164.236139418897579],"luv":[74.0550811623464114,-56.4914910882685106,15.9470022690160835],"rgb":[0.2,0.8,0.66666666666666663],"xyz":[0.302120567836318132,0.467897471435913037,0.454705813150474203],"hpluv":[164.236139418897579,100.581152280716978,74.0550811623464114],"hsluv":[164.236139418897579,92.6745296641919794,74.0550811623464114]},"#33ccbb":{"lch":[74.4927414449451106,55.3647402049724846,177.507530206592946],"luv":[74.4927414449451106,-55.3123621552270137,2.40770653799565881],"rgb":[0.2,0.8,0.733333333333333282],"xyz":[0.319258159943654751,0.474752508278847796,0.544963798249115894],"hpluv":[177.507530206592946,94.310193436061823,74.4927414449451106],"hsluv":[177.507530206592946,92.9899230693886,74.4927414449451106]},"#33cccc":{"lch":[74.9804187561532416,55.3552144916165361,192.177050630061132],"luv":[74.9804187561532416,-54.1097476482840918,-11.6762571422475752],"rgb":[0.2,0.8,0.8],"xyz":[0.338550535387376506,0.482469458456336597,0.646570308919386],"hpluv":[192.177050630061132,93.6806731785530928,74.9804187561532416],"hsluv":[192.177050630061132,93.3139795405001422,74.9804187561532416]},"#33ccdd":{"lch":[75.5182678303382602,59.0031963362726231,206.282454691493683],"luv":[75.5182678303382602,-52.9035678654544128,-26.1264173778571198],"rgb":[0.2,0.8,0.866666666666666696],"xyz":[0.360068860938010049,0.491076788676590104,0.759900156819392],"hpluv":[206.282454691493683,99.1431801932779564,75.5182678303382602],"hsluv":[206.282454691493683,93.6418135046530296,75.5182678303382602]},"#33ccee":{"lch":[76.106175853756767,65.8577115847402439,218.26062431545347],"luv":[76.106175853756767,-51.7116147040808585,-40.7817003063324606],"rgb":[0.2,0.8,0.933333333333333348],"xyz":[0.383881041204184759,0.500601660783060121,0.885310972887915271],"hpluv":[218.26062431545347,110.229350215344013,76.106175853756767],"hsluv":[218.26062431545347,93.969050662624,76.106175853756767]},"#33ccff":{"lch":[76.7437832939395435,75.0714180144803,227.674056146546604],"luv":[76.7437832939395435,-50.5491406549608,-55.5022718611574248],"rgb":[0.2,0.8,1],"xyz":[0.41005208961401618,0.511070080146992844,1.02314516117969712],"hpluv":[227.674056146546604,129.845560156838474,76.7437832939395435],"hsluv":[227.674056146546604,99.9999999999969731,76.7437832939395435]},"#33dd00":{"lch":[77.5280782787270653,116.686614644285086,126.047543424376144],"luv":[77.5280782787270653,-68.6649809221669187,94.3445092843369508],"rgb":[0.2,0.866666666666666696,0],"xyz":[0.272205291759361367,0.524145745880611358,0.0868243391124284419],"hpluv":[126.047543424376144,210.356208283509261,77.5280782787270653],"hsluv":[126.047543424376144,100.000000000002416,77.5280782787270653]},"#33dd11":{"lch":[77.5521415069474926,115.747372453695789,126.322097671746874],"luv":[77.5521415069474926,-68.5599423432795,93.2576459912042],"rgb":[0.2,0.866666666666666696,0.0666666666666666657],"xyz":[0.273216957258998472,0.524550412080466266,0.0921524440771840786],"hpluv":[126.322097671746874,208.932074165120611,77.5521415069474926],"hsluv":[126.322097671746874,98.7203227917640902,77.5521415069474926]},"#33dd22":{"lch":[77.5967156031793337,114.025807364398673,126.839335004613],"luv":[77.5967156031793337,-68.36681588768,91.2571270119929778],"rgb":[0.2,0.866666666666666696,0.133333333333333331],"xyz":[0.275092315397475529,0.525300555335857067,0.102029330273163271],"hpluv":[126.839335004613,206.31706664059891,77.5967156031793337],"hsluv":[126.839335004613,96.3665979525037102,77.5967156031793337]},"#33dd33":{"lch":[77.670013861504259,111.246421345384377,127.715012949240332],"luv":[77.670013861504259,-68.0532561222895,88.0029578668175247],"rgb":[0.2,0.866666666666666696,0.2],"xyz":[0.278180066129933234,0.526535655628840193,0.118291484130774421],"hpluv":[127.715012949240332,202.082466523340599,77.670013861504259],"hsluv":[127.715012949240332,92.5426273046004439,77.670013861504259]},"#33dd44":{"lch":[77.7756375941771267,107.354265763003397,129.034195217585733],"luv":[77.7756375941771267,-67.6100090567609726,83.3895979895470134],"rgb":[0.2,0.866666666666666696,0.266666666666666663],"xyz":[0.28263806137415215,0.52831885372652776,0.14177025908366106],"hpluv":[129.034195217585733,196.125875311323085,77.7756375941771267],"hsluv":[129.034195217585733,92.6304308505642098,77.7756375941771267]},"#33dd55":{"lch":[77.9165348137244,102.370875286307594,130.905664069221132],"luv":[77.9165348137244,-67.0340391276217105,77.3707548439410431],"rgb":[0.2,0.866666666666666696,0.333333333333333315],"xyz":[0.288600475413514135,0.530703819342272509,0.173172306357634975],"hpluv":[130.905664069221132,188.454179514464698,77.9165348137244],"hsluv":[130.905664069221132,92.7446831943234287,77.9165348137244]},"#33dd66":{"lch":[78.095166356878579,96.3992072274516261,133.476315028685519],"luv":[78.095166356878579,-66.3279238591037767,69.9529389705828777],"rgb":[0.2,0.866666666666666696,0.4],"xyz":[0.29618547118702232,0.533737817651675828,0.213119950764778909],"hpluv":[133.476315028685519,179.196222734944627,78.095166356878579],"hsluv":[133.476315028685519,92.8850067954864187,78.095166356878579]},"#33dd77":{"lch":[78.3135937781308513,89.6343875602499196,136.948304354896891],"luv":[78.3135937781308513,-65.499258897229538,61.1896275296294192],"rgb":[0.2,0.866666666666666696,0.466666666666666674],"xyz":[0.305499484207224226,0.537463422859756679,0.262173752671176818],"hpluv":[136.948304354896891,168.630388284117117,78.3135937781308513],"hsluv":[136.948304354896891,93.050064801238122,78.3135937781308513]},"#33dd88":{"lch":[78.5735314106716487,82.3820261839553609,141.59738099104726],"luv":[78.5735314106716487,-64.5599157920348432,51.1743638074698],"rgb":[0.2,0.866666666666666696,0.533333333333333326],"xyz":[0.316639901309168,0.541919589700534221,0.320846616074749],"hpluv":[141.59738099104726,157.233383580683977,78.5735314106716487],"hsluv":[141.59738099104726,93.2377028740416449,78.5735314106716487]},"#33dd99":{"lch":[78.8763801167060592,75.0869406053615762,147.781507566587862],"luv":[78.8763801167060592,-63.5251386535812799,40.0325543591259105],"rgb":[0.2,0.866666666666666696,0.6],"xyz":[0.329696865418240725,0.547142375344163434,0.389613293715866893],"hpluv":[147.781507566587862,145.760006886720333,78.8763801167060592],"hsluv":[147.781507566587862,93.4451205095912343,78.8763801167060592]},"#33ddaa":{"lch":[79.2232512041385633,68.3697583649377094,155.904677195463563],"luv":[79.2232512041385633,-62.4125308872686801,27.9123601138582131],"rgb":[0.2,0.866666666666666696,0.66666666666666663],"xyz":[0.344754558383493281,0.553165452530264501,0.468917143332865494],"hpluv":[155.904677195463563,135.355769729163313,79.2232512041385633],"hsluv":[155.904677195463563,93.6690625743759,79.2232512041385633]},"#33ddbb":{"lch":[79.6149850527770866,63.045401416642612,166.259028854183981],"luv":[79.6149850527770866,-61.2410113290283604,14.9753521221847095],"rgb":[0.2,0.866666666666666696,0.733333333333333282],"xyz":[0.361892150490829956,0.560020489373199259,0.559175128431507296],"hpluv":[166.259028854183981,127.658944712944631,79.6149850527770866],"hsluv":[166.259028854183981,93.9060163408359614,79.6149850527770866]},"#33ddcc":{"lch":[80.0521670478692613,60.0458591823856054,178.675787060338223],"luv":[80.0521670478692613,-60.0298228841068138,1.3876488942262355],"rgb":[0.2,0.866666666666666696,0.8],"xyz":[0.381184525934551655,0.567737439550688117,0.660781639101777452],"hpluv":[178.675787060338223,124.734340702728062,80.0521670478692613],"hsluv":[178.675787060338223,94.1523985056595905,80.0521670478692613]},"#33dddd":{"lch":[80.5351423549551555,60.1510343961145963,192.177050630061245],"luv":[80.5351423549551555,-58.7976638126828,-12.6878551809710149],"rgb":[0.2,0.866666666666666696,0.866666666666666696],"xyz":[0.402702851485185254,0.576344769770941623,0.774111487001783449],"hpluv":[192.177050630061245,128.603021497070955,80.5351423549551555],"hsluv":[192.177050630061245,94.4047190696773271,80.5351423549551555]},"#33ddee":{"lch":[81.0640304387754,63.6213092914002303,205.209077734070348],"luv":[81.0640304387754,-57.5619892131040913,-27.0977562499646396],"rgb":[0.2,0.866666666666666696,0.933333333333333348],"xyz":[0.426515031751359963,0.58586964187741164,0.899522303070306672],"hpluv":[205.209077734070348,140.476637056352985,81.0640304387754],"hsluv":[205.209077734070348,94.6597131799347835,81.0640304387754]},"#33ddff":{"lch":[81.6387398294900208,70.0938175080633528,216.50946924270437],"luv":[81.6387398294900208,-56.3385046754299452,-41.7027114680837769],"rgb":[0.2,0.866666666666666696,1],"xyz":[0.452686080161191384,0.596338061241344364,1.03735649136208852],"hpluv":[216.50946924270437,160.421433033358312,81.6387398294900208],"hsluv":[216.50946924270437,99.999999999996,81.6387398294900208]},"#33ee00":{"lch":[82.833762600699373,125.203353646442437,126.3077634478595],"luv":[82.833762600699373,-74.1357070958390239,100.894879442497455],"rgb":[0.2,0.933333333333333348,0],"xyz":[0.319384068099876184,0.618503298561642323,0.102550597892599626],"hpluv":[126.3077634478595,309.713105305240845,82.833762600699373],"hsluv":[126.3077634478595,100.000000000002302,82.833762600699373]},"#33ee11":{"lch":[82.85531245284119,124.353122892884315,126.540515263097504],"luv":[82.85531245284119,-74.0387382831010541,99.9097813362598544],"rgb":[0.2,0.933333333333333348,0.0666666666666666657],"xyz":[0.320395733599513288,0.618907964761497231,0.107878702857355263],"hpluv":[126.540515263097504,308.054239915702169,82.85531245284119],"hsluv":[126.540515263097504,98.9149262576223833,82.85531245284119]},"#33ee22":{"lch":[82.8952353009988,122.792060636983948,126.977870705292972],"luv":[82.8952353009988,-73.860225327277135,98.0946342573363808],"rgb":[0.2,0.933333333333333348,0.133333333333333331],"xyz":[0.322271091737990345,0.619658108016888,0.117755589053334456],"hpluv":[126.977870705292972,305.002845011722627,82.8952353009988],"hsluv":[126.977870705292972,96.9167682151396264,82.8952353009988]},"#33ee33":{"lch":[82.9608975691188846,120.264250910780831,127.715012949240375],"luv":[82.9608975691188846,-73.5697721383487391,95.1366316128687259],"rgb":[0.2,0.933333333333333348,0.2],"xyz":[0.325358842470448051,0.620893208309871159,0.134017742910945592],"hpluv":[127.715012949240375,300.046240285686,82.9608975691188846],"hsluv":[127.715012949240375,93.6639064416312834,82.9608975691188846]},"#33ee44":{"lch":[83.0555452014946241,116.707569363843,128.817932535493583],"luv":[83.0555452014946241,-73.1578713419028,90.9317469728687513],"rgb":[0.2,0.933333333333333348,0.266666666666666663],"xyz":[0.329816837714666966,0.622676406407558725,0.157496517863832231],"hpluv":[128.817932535493583,293.039720989359807,83.0555452014946241],"hsluv":[128.817932535493583,93.7274034182796356,83.0555452014946241]},"#33ee55":{"lch":[83.1818510898783643,112.121671621867506,130.367812557605703],"luv":[83.1818510898783643,-72.6203079673681202,85.4257579305358092],"rgb":[0.2,0.933333333333333348,0.333333333333333315],"xyz":[0.335779251754028951,0.625061372023303474,0.188898565137806146],"hpluv":[130.367812557605703,283.950089878719211,83.1818510898783643],"hsluv":[130.367812557605703,93.8103653792530139,83.1818510898783643]},"#33ee66":{"lch":[83.3420657578551,106.5703857928128,132.470647679843353],"luv":[83.3420657578551,-71.9576476395269,78.6088040502757224],"rgb":[0.2,0.933333333333333348,0.4],"xyz":[0.343364247527537136,0.628095370332706793,0.228846209544950108],"hpluv":[132.470647679843353,272.865433725808,83.3420657578551],"hsluv":[132.470647679843353,93.912785079345241,83.3420657578551]},"#33ee77":{"lch":[83.5380975272703523,100.188150337510052,135.268396470867572],"luv":[83.5380975272703523,-71.1748024762597851,70.5110839550557387],"rgb":[0.2,0.933333333333333348,0.466666666666666674],"xyz":[0.352678260547739042,0.631820975540787644,0.277900011451348],"hpluv":[135.268396470867572,260.019238129472967,83.5380975272703523],"hsluv":[135.268396470867572,94.0340074276028304,83.5380975272703523]},"#33ee88":{"lch":[83.7715600973053682,93.1909370684561651,138.951686086792108],"luv":[83.7715600973053682,-70.2805135444840801,61.1980405537673],"rgb":[0.2,0.933333333333333348,0.533333333333333326],"xyz":[0.363818677649682842,0.636277142381565186,0.336572874854920157],"hpluv":[138.951686086792108,245.83342468256393,83.7715600973053682],"hsluv":[138.951686086792108,94.1728069818675237,83.7715600973053682]},"#33ee99":{"lch":[84.0438031984902807,85.8935006436990278,143.770719305914184],"luv":[84.0438031984902807,-69.2867121669879822,50.7646035138469784],"rgb":[0.2,0.933333333333333348,0.6],"xyz":[0.376875641758755542,0.641499928025194399,0.405339552496038091],"hpluv":[143.770719305914184,230.989810482694878,84.0438031984902807],"hsluv":[143.770719305914184,94.3274826341768886,84.0438031984902807]},"#33eeaa":{"lch":[84.3559338989094698,78.7339796376561907,150.032255922422308],"luv":[84.3559338989094698,-68.2077782157370223,39.328596980513943],"rgb":[0.2,0.933333333333333348,0.66666666666666663],"xyz":[0.391933334724008098,0.647523005211295466,0.484643402113036692],"hpluv":[150.032255922422308,216.540119706931335,84.3559338989094698],"hsluv":[150.032255922422308,94.495967075681591,84.3559338989094698]},"#33eebb":{"lch":[84.7088326356722,72.2999891840671,158.051587623557367],"luv":[84.7088326356722,-67.0597412553262,27.0236847743774931],"rgb":[0.2,0.933333333333333348,0.733333333333333282],"xyz":[0.409070926831344772,0.654378042054230225,0.574901387211678383],"hpluv":[158.051587623557367,204.04938686040532,84.7088326356722],"hsluv":[158.051587623557367,94.6759444498571838,84.7088326356722]},"#33eecc":{"lch":[85.1031663228954,67.3294619946068451,168.005441410177127],"luv":[85.1031663228954,-65.8594808644086,13.992327638881461],"rgb":[0.2,0.933333333333333348,0.8],"xyz":[0.428363302275066471,0.662094992231719082,0.676507897881948539],"hpluv":[168.005441410177127,195.708498626929867,85.1031663228954],"hsluv":[168.005441410177127,94.8649680125767389,85.1031663228954]},"#33eedd":{"lch":[85.539399954776755,64.6250931348259314,179.663789762776076],"luv":[85.539399954776755,-64.6239805156479861,0.37921629457989664],"rgb":[0.2,0.933333333333333348,0.866666666666666696],"xyz":[0.44988162782570007,0.670702322451972588,0.789837745781954537],"hpluv":[179.663789762776076,194.233009793031641,85.539399954776755],"hsluv":[179.663789762776076,95.0605698730458926,85.539399954776755]},"#33eeee":{"lch":[86.0178075751720286,64.8282855412949601,192.177050630061217],"luv":[86.0178075751720286,-63.3696789602654533,-13.6744431219908602],"rgb":[0.2,0.933333333333333348,0.933333333333333348],"xyz":[0.47369380809187478,0.680227194558442605,0.91524856185047776],"hpluv":[192.177050630061217,202.327515221469156,86.0178075751720286],"hsluv":[192.177050630061217,95.2603564020327127,86.0178075751720286]},"#33eeff":{"lch":[86.538483142230433,68.1460620684978124,204.293044736593487],"luv":[86.538483142230433,-62.1119480142598803,-28.035543321245509],"rgb":[0.2,0.933333333333333348,1],"xyz":[0.499864856501706201,0.690695613922375329,1.05308275014225972],"hpluv":[204.293044736593487,221.878852364873978,86.538483142230433],"hsluv":[204.293044736593487,99.999999999993932,86.538483142230433]},"#33ff00":{"lch":[88.074762753062231,133.577745567808222,126.513803819973305],"luv":[88.074762753062231,-79.4809541468946,107.358241597361044],"rgb":[0.2,1,0],"xyz":[0.37123644052955,0.72220804342099143,0.119834722035823737],"hpluv":[126.513803819973305,497.272976699974663,88.074762753062231],"hsluv":[126.513803819973305,100.00000000000226,88.074762753062231]},"#33ff11":{"lch":[88.0941974462199,132.80363803677966,126.71317891025123],"luv":[88.0941974462199,-79.3912833442141448,106.460464045403725],"rgb":[0.2,1,0.0666666666666666657],"xyz":[0.37224810602918712,0.722612709620846339,0.125162827000579374],"hpluv":[126.71317891025123,495.277769978645495,88.0941974462199],"hsluv":[126.71317891025123,99.9999999999917861,88.0941974462199]},"#33ff22":{"lch":[88.1302050034733355,131.38040615815558,127.087058789859782],"luv":[88.1302050034733355,-79.2260405323659285,104.804797713872986],"rgb":[0.2,1,0.133333333333333331],"xyz":[0.374123464167664177,0.723362852876237139,0.135039713196558553],"hpluv":[127.087058789859782,491.602558840386564,88.1302050034733355],"hsluv":[127.087058789859782,99.9999999999915161,88.1302050034733355]},"#33ff33":{"lch":[88.1894367416410745,129.070276381710187,127.715012949240347],"luv":[88.1894367416410745,-78.9567203165017162,102.10275491931047],"rgb":[0.2,1,0.2],"xyz":[0.377211214900121883,0.724597953169220266,0.151301867054169703],"hpluv":[127.715012949240347,485.618062737129037,88.1894367416410745],"hsluv":[127.715012949240347,99.9999999999917577,88.1894367416410745]},"#33ff44":{"lch":[88.2748349985884,125.807640063387211,128.649544439126117],"luv":[88.2748349985884,-78.5738101086462137,98.2533391968394909],"rgb":[0.2,1,0.266666666666666663],"xyz":[0.381669210144340798,0.726381151266907832,0.174780642007056342],"hpluv":[128.649544439126117,477.126267833886629,88.2748349985884],"hsluv":[128.649544439126117,99.9999999999917151,88.2748349985884]},"#33ff55":{"lch":[88.3888340150102181,121.57774004888698,129.95306271607248],"luv":[88.3888340150102181,-78.0723424240601,93.1979410921456122],"rgb":[0.2,1,0.333333333333333315],"xyz":[0.387631624183702783,0.728766116882652581,0.206182689281030257],"hpluv":[129.95306271607248,466.04908765344419,88.3888340150102181],"hsluv":[129.95306271607248,99.999999999991644,88.3888340150102181]},"#33ff66":{"lch":[88.5334972733264,116.417510431790106,131.704600668064415],"luv":[88.5334972733264,-77.4514410423726929,86.9155395518881],"rgb":[0.2,1,0.4],"xyz":[0.395216619957210968,0.7318001151920559,0.246130333688174219],"hpluv":[131.704600668064415,452.43688525451455,88.5334972733264],"hsluv":[131.704600668064415,99.9999999999913882,88.5334972733264]},"#33ff77":{"lch":[88.7105909437740081,110.419515958012653,134.007319384137503],"luv":[88.7105909437740081,-76.7139872603015505,79.419353202025647],"rgb":[0.2,1,0.466666666666666674],"xyz":[0.404530632977412874,0.735525720400136751,0.295184135594572128],"hpluv":[134.007319384137503,436.493157669178117,88.7105909437740081],"hsluv":[134.007319384137503,99.9999999999915,88.7105909437740081]},"#33ff88":{"lch":[88.9216276204312379,103.738746998712813,136.99719245927011],"luv":[88.9216276204312379,-75.8662497359534882,70.7533729221786558],"rgb":[0.2,1,0.533333333333333326],"xyz":[0.415671050079356674,0.739981887240914293,0.353856998998144268],"hpluv":[136.99719245927011,418.619650658891032,88.9216276204312379],"hsluv":[136.99719245927011,99.9999999999912603,88.9216276204312379]},"#33ff99":{"lch":[89.1678944508512359,96.6032590942606788,140.85189111032139],"luv":[89.1678944508512359,-74.9174292298428242,60.9882649796200695],"rgb":[0.2,1,0.6],"xyz":[0.428728014188429429,0.745204672884543506,0.422623676639262202],"hpluv":[140.85189111032139,399.492483487252343,89.1678944508512359],"hsluv":[140.85189111032139,99.9999999999913456,89.1678944508512359]},"#33ffaa":{"lch":[89.4504724790268426,89.3298939826383105,145.795546705853383],"luv":[89.4504724790268426,-73.8791171714821,50.2165909327964926],"rgb":[0.2,1,0.66666666666666663],"xyz":[0.44378570715368193,0.751227750070644573,0.501927526256260803],"hpluv":[145.795546705853383,380.184928602968114,89.4504724790268426],"hsluv":[145.795546705853383,99.9999999999912,89.4504724790268426]},"#33ffbb":{"lch":[89.7702508712150262,82.3444719603705,152.087330110215447],"luv":[89.7702508712150262,-72.7646918614874494,38.5475249625060314],"rgb":[0.2,1,0.733333333333333282],"xyz":[0.460923299261018604,0.758082786913579332,0.592185511354902605],"hpluv":[152.087330110215447,362.351543222333419,89.7702508712150262],"hsluv":[152.087330110215447,99.9999999999909761,89.7702508712150262]},"#33ffcc":{"lch":[90.127938152783571,76.1985663634222,159.968053619612647],"luv":[90.127938152783571,-71.5886883295869723,26.1013643147272063],"rgb":[0.2,1,0.8],"xyz":[0.480215674704740358,0.765799737091068189,0.693792022025172761],"hpluv":[159.968053619612647,348.464440630653087,90.127938152783571],"hsluv":[159.968053619612647,99.999999999990834,90.127938152783571]},"#33ffdd":{"lch":[90.5240717550146314,71.5577226375514357,169.529475161807255],"luv":[90.5240717550146314,-70.3661811113599924,13.0041618290463337],"rgb":[0.2,1,0.866666666666666696],"xyz":[0.501734000255373846,0.774407067311321695,0.807121869925178759],"hpluv":[169.529475161807255,342.013155745428833,90.5240717550146314],"hsluv":[169.529475161807255,99.9999999999904077,90.5240717550146314]},"#33ffee":{"lch":[90.9590266887802,69.1149718308150511,180.51167449693034],"luv":[90.9590266887802,-69.1122158161064561,-0.61721646306864264],"rgb":[0.2,1,0.933333333333333348],"xyz":[0.525546180521548667,0.783931939417791712,0.932532685993702],"hpluv":[180.51167449693034,347.442342228089899,90.9590266887802],"hsluv":[180.51167449693034,99.9999999999901519,90.9590266887802]},"#33ffff":{"lch":[91.4330238629877243,69.4028497051403122,192.177050630061132],"luv":[91.4330238629877243,-67.8413175363212702,-14.6393709608822622],"rgb":[0.2,1,1],"xyz":[0.55171722893138,0.794400358781724436,1.07036687428548372],"hpluv":[192.177050630061132,369.590917988860895,91.4330238629877243],"hsluv":[192.177050630061132,99.9999999999897256,91.4330238629877243]},"#22aa00":{"lch":[60.8595101229647923,91.9296409673314656,126.268252023172565],"luv":[60.8595101229647923,-54.3824975763784053,74.1188427172042594],"rgb":[0.133333333333333331,0.66666666666666663,0],"xyz":[0.150337683054585614,0.290883353615456,0.0482228743965988915],"hpluv":[126.268252023172565,191.675426474830772,60.8595101229647923],"hsluv":[126.268252023172565,100.000000000002288,60.8595101229647923]},"#22aa11":{"lch":[60.8951349805759605,90.6090655032342482,126.765726538166419],"luv":[60.8951349805759605,-54.2335583573106,72.5859759132132893],"rgb":[0.133333333333333331,0.66666666666666663,0.0666666666666666657],"xyz":[0.151349348554222746,0.291288019815310828,0.0535509793613545212],"hpluv":[126.765726538166419,188.811473003651798,60.8951349805759605],"hsluv":[126.765726538166419,97.6988909499644365,60.8951349805759605]},"#22aa22":{"lch":[60.9610867967894592,88.21068058626,127.715012949240347],"luv":[60.9610867967894592,-53.9615024560723953,69.7802294505720226],"rgb":[0.133333333333333331,0.66666666666666663,0.133333333333333331],"xyz":[0.153224706692699747,0.292038163070701628,0.0634278655573337208],"hpluv":[127.715012949240347,183.614848439340193,60.9610867967894592],"hsluv":[127.715012949240347,93.4926845994439475,60.9610867967894592]},"#22aa33":{"lch":[61.0694299105106495,84.4016098893730629,129.358188857231823],"luv":[61.0694299105106495,-53.5246691509727626,65.259034196016259],"rgb":[0.133333333333333331,0.66666666666666663,0.2],"xyz":[0.156312457425157481,0.293273263363684755,0.0796900194149448571],"hpluv":[129.358188857231823,175.374397166590711,61.0694299105106495],"hsluv":[129.358188857231823,93.5882360519160699,61.0694299105106495]},"#22aa44":{"lch":[61.2253168994486145,79.2082340196825214,131.918899994809664],"luv":[61.2253168994486145,-52.917281977470445,58.938150671985575],"rgb":[0.133333333333333331,0.66666666666666663,0.266666666666666663],"xyz":[0.160770452669376368,0.295056461461372321,0.103168794367831496],"hpluv":[131.918899994809664,164.164260791814144,61.2253168994486145],"hsluv":[131.918899994809664,93.7213426507132397,61.2253168994486145]},"#22aa55":{"lch":[61.4328316402448422,72.8294169380228169,135.724592815827151],"luv":[61.4328316402448422,-52.1453123372646488,50.8428005993127883],"rgb":[0.133333333333333331,0.66666666666666663,0.333333333333333315],"xyz":[0.166732866708738381,0.297441427077117182,0.134570841641805411],"hpluv":[135.724592815827151,150.433869175471955,61.4328316402448422],"hsluv":[135.724592815827151,93.8909627694616802,61.4328316402448422]},"#22aa66":{"lch":[61.695221435526193,65.6694032551541511,141.26425661379642],"luv":[61.695221435526193,-51.2247747289881588,41.0912761769754056],"rgb":[0.133333333333333331,0.66666666666666663,0.4],"xyz":[0.174317862482246538,0.3004754253865205,0.174518486048949373],"hpluv":[141.26425661379642,135.067502346464636,61.695221435526193],"hsluv":[141.26425661379642,94.0939374356695737,61.695221435526193]},"#22aa77":{"lch":[62.015018576984005,58.3994247120946,149.232117680428786],"luv":[62.015018576984005,-50.1795183581889,29.8748848373309741],"rgb":[0.133333333333333331,0.66666666666666663,0.466666666666666674],"xyz":[0.183631875502448472,0.304201030594601296,0.223572287955347282],"hpluv":[149.232117680428786,119.495353216490457,62.015018576984005],"hsluv":[149.232117680428786,94.3254538020573534,62.015018576984005]},"#22aa88":{"lch":[62.3941144695078265,52.0455462506657582,160.428514439052776],"luv":[62.3941144695078265,-49.0385773736463904,17.4343572780611709],"rgb":[0.133333333333333331,0.66666666666666663,0.533333333333333326],"xyz":[0.194772292604392272,0.308657197435378894,0.282245151358919477],"hpluv":[160.428514439052776,105.847175197261592,62.3941144695078265],"hsluv":[160.428514439052776,94.5795977554836753,62.3941144695078265]},"#22aa99":{"lch":[62.8338123759312168,48.0032947436357915,175.177921691935865],"luv":[62.8338123759312168,-47.8333890460383486,4.03524455451089725],"rgb":[0.133333333333333331,0.66666666666666663,0.6],"xyz":[0.207829256713465,0.313879983079008051,0.351011829000037356],"hpluv":[175.177921691935865,96.9431131493944918,62.8338123759312168],"hsluv":[175.177921691935865,94.8499327714938119,62.8338123759312168]},"#22aaaa":{"lch":[63.334871160235295,47.6677335272966047,192.177050630061132],"luv":[63.334871160235295,-46.595231466735612,-10.0547115418935782],"rgb":[0.133333333333333331,0.66666666666666663,0.66666666666666663],"xyz":[0.222886949678717528,0.319903060265109174,0.430315678617035957],"hpluv":[192.177050630061132,95.5038628742744748,63.334871160235295],"hsluv":[192.177050630061132,95.1300327368807075,63.334871160235295]},"#22aabb":{"lch":[63.8975462810157211,51.5875561200845425,208.460106210027732],"luv":[63.8975462810157211,-45.3531553267970224,-24.5838818811491713],"rgb":[0.133333333333333331,0.66666666666666663,0.733333333333333282],"xyz":[0.240024541786054202,0.326758097108043932,0.520573663715677704],"hpluv":[208.460106210027732,102.447201536891086,63.8975462810157211],"hsluv":[208.460106210027732,95.4139121453229393,63.8975462810157211]},"#22aacc":{"lch":[64.5216311304052681,59.1142282054053112,221.706391964203618],"luv":[64.5216311304052681,-44.1325525375176184,-39.3295027027292079],"rgb":[0.133333333333333331,0.66666666666666663,0.8],"xyz":[0.259316917229775901,0.334475047285532734,0.62218017438594786],"hpluv":[221.706391964203618,116.258847224370101,64.5216311304052681],"hsluv":[221.706391964203618,95.6963242429470853,64.5216311304052681]},"#22aadd":{"lch":[65.2065000175346796,69.0826091468118619,231.553565124642319],"luv":[65.2065000175346796,-42.9543721979751538,-54.1047945713593279],"rgb":[0.133333333333333331,0.66666666666666663,0.866666666666666696],"xyz":[0.2808352427804095,0.34308237750578624,0.735510022285953857],"hpluv":[231.553565124642319,134.436491082611866,65.2065000175346796],"hsluv":[231.553565124642319,95.9729250289437,65.2065000175346796]},"#22aaee":{"lch":[65.951153016283925,80.4876559434330687,238.683318882444183],"luv":[65.951153016283925,-41.8348964739996418,-68.7612114224159825],"rgb":[0.133333333333333331,0.66666666666666663,0.933333333333333348],"xyz":[0.304647423046584209,0.352607249612256257,0.86092083835447708],"hpluv":[238.683318882444183,154.862481256054423,65.951153016283925],"hsluv":[238.683318882444183,96.2403212652285305,65.951153016283925]},"#22aaff":{"lch":[66.7542622474436911,92.6475815050926741,243.881654723446388],"luv":[66.7542622474436911,-40.785937465112724,-83.187028218555227],"rgb":[0.133333333333333331,0.66666666666666663,1],"xyz":[0.33081847145641563,0.363075668976189,0.998755026646258925],"hpluv":[243.881654723446388,176.114215620682756,66.7542622474436911],"hsluv":[243.881654723446388,99.9999999999982521,66.7542622474436911]},"#22bb00":{"lch":[66.4275479271698117,100.802558180890344,126.547308547849156],"luv":[66.4275479271698117,-60.0265444602621798,80.9812922592122533],"rgb":[0.133333333333333331,0.733333333333333282,0],"xyz":[0.184292180963184393,0.358792349432654534,0.0595410403661315105],"hpluv":[126.547308547849156,192.558484368086766,66.4275479271698117],"hsluv":[126.547308547849156,100.000000000002402,66.4275479271698117]},"#22bb11":{"lch":[66.4585250929908682,99.6331665050874449,126.950333401467461],"luv":[66.4585250929908682,-59.891738470658936,79.6225315522727612],"rgb":[0.133333333333333331,0.733333333333333282,0.0666666666666666657],"xyz":[0.185303846462821525,0.359197015632509387,0.0648691453308871402],"hpluv":[126.950333401467461,190.235936561387632,66.4585250929908682],"hsluv":[126.950333401467461,98.1323711753334464,66.4585250929908682]},"#22bb22":{"lch":[66.5158870179191553,97.5011623585143496,127.715012949240375],"luv":[66.5158870179191553,-59.6448091899021904,77.1295883430057785],"rgb":[0.133333333333333331,0.733333333333333282,0.133333333333333331],"xyz":[0.187179204601298527,0.359947158887900187,0.0747460315268663328],"hpluv":[127.715012949240375,186.004620566556611,66.5158870179191553],"hsluv":[127.715012949240375,94.7095045552014341,66.5158870179191553]},"#22bb33":{"lch":[66.6101592341861561,94.091611241079562,129.025604662043349],"luv":[66.6101592341861561,-59.2464412491434089,73.0964465979998721],"rgb":[0.133333333333333331,0.733333333333333282,0.2],"xyz":[0.19026695533375626,0.361182259180883314,0.091008185384477483],"hpluv":[129.025604662043349,179.246118589082698,66.6101592341861561],"hsluv":[129.025604662043349,94.7728361420699628,66.6101592341861561]},"#22bb44":{"lch":[66.7458880420052907,89.3893698914418735,131.03732282887168],"luv":[66.7458880420052907,-58.6886365964374903,67.424797990356],"rgb":[0.133333333333333331,0.733333333333333282,0.266666666666666663],"xyz":[0.194724950577975148,0.36296545727857088,0.114486960337364121],"hpluv":[131.03732282887168,169.941985039444177,66.7458880420052907],"hsluv":[131.03732282887168,94.8616428317247511,66.7458880420052907]},"#22bb55":{"lch":[66.9267274999506,83.5071173210959472,133.96576260666626],"luv":[66.9267274999506,-57.9730125462468777,60.1046459068846488],"rgb":[0.133333333333333331,0.733333333333333282,0.333333333333333315],"xyz":[0.200687364617337161,0.365350422894315741,0.145889007611338023],"hpluv":[133.96576260666626,158.330006142604873,66.9267274999506],"hsluv":[133.96576260666626,94.9758066387206128,66.9267274999506]},"#22bb66":{"lch":[67.1556458878222315,76.7025221245859541,138.121353671725132],"luv":[67.1556458878222315,-57.1096598103208919,51.2031606116460054],"rgb":[0.133333333333333331,0.733333333333333282,0.4],"xyz":[0.208272360390845318,0.368384421203719059,0.185836652018481985],"hpluv":[138.121353671725132,144.932719296840418,67.1556458878222315],"hsluv":[138.121353671725132,95.1139083236691363,67.1556458878222315]},"#22bb77":{"lch":[67.4350338747947831,69.4107315991336407,143.945643371462126],"luv":[67.4350338747947831,-56.1157304677756557,40.8518598743670935],"rgb":[0.133333333333333331,0.733333333333333282,0.466666666666666674],"xyz":[0.217586373411047251,0.372110026411799855,0.234890453924879894],"hpluv":[143.945643371462126,130.611184627207962,67.4350338747947831],"hsluv":[143.945643371462126,95.2734443978328471,67.4350338747947831]},"#22bb88":{"lch":[67.7667691572368653,62.2973404800357571,152.016434409622292],"luv":[67.7667691572368653,-55.0136735570032656,29.2310511724943218],"rgb":[0.133333333333333331,0.733333333333333282,0.533333333333333326],"xyz":[0.228726790512991052,0.376566193252577452,0.293563317328452089],"hpluv":[152.016434409622292,116.65196328010299,67.7667691572368653],"hsluv":[152.016434409622292,95.4510958201536823,67.7667691572368653]},"#22bb99":{"lch":[68.1522602188863402,56.3167420179958214,162.907285030510934],"luv":[68.1522602188863402,-53.8292536917802948,16.552549003324323],"rgb":[0.133333333333333331,0.733333333333333282,0.6],"xyz":[0.241783754622063779,0.38178897889620661,0.362329994969569968],"hpluv":[162.907285030510934,104.856796539193,68.1522602188863402],"hsluv":[162.907285030510934,95.6430286983925555,68.1522602188863402]},"#22bbaa":{"lch":[68.5924801056558238,52.6774965449754617,176.68900923381463],"luv":[68.5924801056558238,-52.5895649511659542,3.04241688349887474],"rgb":[0.133333333333333331,0.733333333333333282,0.66666666666666663],"xyz":[0.256841447587316307,0.387812056082307732,0.441633844586568569],"hpluv":[176.68900923381463,97.4513697523019,68.5924801056558238],"hsluv":[176.68900923381463,95.8451953079369616,68.5924801056558238]},"#22bbbb":{"lch":[69.087995915136645,52.5025293878432677,192.177050630061075],"luv":[69.087995915136645,-51.3212466461144174,-11.0745309069971647],"rgb":[0.133333333333333331,0.733333333333333282,0.733333333333333282],"xyz":[0.273979039694653,0.394667092925242491,0.531891829685210316],"hpluv":[192.177050630061075,96.4310638968393903,69.087995915136645],"hsluv":[192.177050630061075,96.05360442262905,69.087995915136645]},"#22bbcc":{"lch":[69.6389970716796824,56.2104265974936,207.07804051519031],"luv":[69.6389970716796824,-50.0490518690675117,-25.5871933841835393],"rgb":[0.133333333333333331,0.733333333333333282,0.8],"xyz":[0.293271415138374736,0.402384043102731292,0.633498340355480472],"hpluv":[207.07804051519031,102.424464009042,69.6389970716796824],"hsluv":[207.07804051519031,96.2645382772070519,69.6389970716796824]},"#22bbdd":{"lch":[70.2453239794146924,63.2897284454122868,219.558412279776348],"luv":[70.2453239794146924,-48.7948432782897541,-40.3069844585422956],"rgb":[0.133333333333333331,0.733333333333333282,0.866666666666666696],"xyz":[0.314789740689008224,0.410991373322984799,0.746828188255486469],"hpluv":[219.558412279776348,114.328666738486675,70.2453239794146924],"hsluv":[219.558412279776348,96.4747049793171101,70.2453239794146924]},"#22bbee":{"lch":[70.9064977498674409,72.7777709471329644,229.176572531806158],"luv":[70.9064977498674409,-47.5770176148035588,-55.072963774560229],"rgb":[0.133333333333333331,0.733333333333333282,0.933333333333333348],"xyz":[0.338601920955183,0.420516245429454816,0.872239004324009692],"hpluv":[229.176572531806158,130.242295294742263,70.9064977498674409],"hsluv":[229.176572531806158,96.6813261778791286,70.9064977498674409]},"#22bbff":{"lch":[71.621751136046143,83.782469360031385,236.362391595167765],"luv":[71.621751136046143,-46.4103062114400586,-69.7537500742789121],"rgb":[0.133333333333333331,0.733333333333333282,1],"xyz":[0.364772969365014355,0.43098466479338754,1.01007319261579154],"hpluv":[236.362391595167765,148.438838585801221,71.621751136046143],"hsluv":[236.362391595167765,99.9999999999977405,71.621751136046143]},"#22cc00":{"lch":[71.9091745039523431,109.499123564337054,126.755635680122666],"luv":[71.9091745039523431,-65.5246489265194185,87.7301455852794732],"rgb":[0.133333333333333331,0.8,0],"xyz":[0.222515924272801313,0.435239836051889428,0.0722822881360034586],"hpluv":[126.755635680122666,193.226045742870838,71.9091745039523431],"hsluv":[126.755635680122666,100.000000000002288,71.9091745039523431]},"#22cc11":{"lch":[71.9364107151438077,108.454952609175663,127.087674169957992],"luv":[71.9364107151438077,-65.4022833696805,86.5159989567857508],"rgb":[0.133333333333333331,0.8,0.0666666666666666657],"xyz":[0.223527589772438445,0.435644502251744281,0.0776103931007591],"hpluv":[127.087674169957992,191.311003889673145,71.9364107151438077],"hsluv":[127.087674169957992,98.4591341389350418,71.9364107151438077]},"#22cc22":{"lch":[71.9868548113652196,106.54571101335867,127.715012949240403],"luv":[71.9868548113652196,-65.1776701905061771,84.2843985793322332],"rgb":[0.133333333333333331,0.8,0.133333333333333331],"xyz":[0.225402947910915447,0.436394645507135082,0.0874872792967382878],"hpluv":[127.715012949240403,187.811464536348922,71.9868548113652196],"hsluv":[127.715012949240403,95.6295101801496,71.9868548113652196]},"#22cc33":{"lch":[72.0697845089905229,103.47656324227728,128.782383231673776],"luv":[72.0697845089905229,-64.8140104316899084,80.6631464312780224],"rgb":[0.133333333333333331,0.8,0.2],"xyz":[0.22849069864337318,0.437629745800118208,0.103749433154349424],"hpluv":[128.782383231673776,182.191494825933376,72.0697845089905229],"hsluv":[128.782383231673776,95.6728206524347,72.0697845089905229]},"#22cc44":{"lch":[72.1892409305665126,99.2080881077430092,130.402545810446583],"luv":[72.1892409305665126,-64.3020931154350563,75.5479024657046381],"rgb":[0.133333333333333331,0.8,0.266666666666666663],"xyz":[0.232948693887592068,0.439412943897805774,0.127228208107236063],"hpluv":[130.402545810446583,174.38692971209278,72.1892409305665126],"hsluv":[130.402545810446583,95.7338579762306807,72.1892409305665126]},"#22cc55":{"lch":[72.3485056391290584,93.798910065649892,132.724941359454647],"luv":[72.3485056391290584,-63.6406395178356732,68.9064912128369116],"rgb":[0.133333333333333331,0.8,0.333333333333333315],"xyz":[0.23891110792695408,0.441797909513550635,0.158630255381209978],"hpluv":[132.724941359454647,164.515777124050715,72.3485056391290584],"hsluv":[132.724941359454647,95.8128514989610665,72.3485056391290584]},"#22cc66":{"lch":[72.5502856399570106,87.4149553130202577,135.957009780349864],"luv":[72.5502856399570106,-62.8354766726053597,60.7706942835425821],"rgb":[0.133333333333333331,0.8,0.4],"xyz":[0.246496103700462238,0.444831907822953954,0.19857789978835394],"hpluv":[135.957009780349864,152.89241471165704,72.5502856399570106],"hsluv":[135.957009780349864,95.9092114165347454,72.5502856399570106]},"#22cc77":{"lch":[72.7968107106438,80.347487444586676,140.388595454497391],"luv":[72.7968107106438,-61.8986076052927601,51.2277377519640922],"rgb":[0.133333333333333331,0.8,0.466666666666666674],"xyz":[0.255810116720664171,0.448557513031034749,0.247631701694751849],"hpluv":[140.388595454497391,140.055211607516185,72.7968107106438],"hsluv":[140.388595454497391,96.0216367005683651,72.7968107106438]},"#22cc88":{"lch":[73.0898911189871399,73.0433057087839899,146.410934307510047],"luv":[73.0898911189871399,-60.8470337434031379,40.4099368162836328],"rgb":[0.133333333333333331,0.8,0.533333333333333326],"xyz":[0.266950533822607972,0.453013679871812347,0.306304565098324044],"hpluv":[146.410934307510047,126.812607157634474,73.0898911189871399],"hsluv":[146.410934307510047,96.1482500942118463,73.0898911189871399]},"#22cc99":{"lch":[73.4309556061454316,66.1476907411168,154.494840416347301],"luv":[73.4309556061454316,-59.7013675833161201,28.4826912187770667],"rgb":[0.133333333333333331,0.8,0.6],"xyz":[0.280007497931680671,0.458236465515441505,0.375071242739441923],"hpluv":[154.494840416347301,114.307528246897718,73.4309556061454316],"hsluv":[154.494840416347301,96.2867563581127826,73.4309556061454316]},"#22ccaa":{"lch":[73.8210792378530272,60.5373530055450857,165.03572853292485],"luv":[73.8210792378530272,-58.4843517505691963,15.631753236079188],"rgb":[0.133333333333333331,0.8,0.66666666666666663],"xyz":[0.295065190896933227,0.464259542701542627,0.454375092356440524],"hpluv":[165.03572853292485,104.059650734936554,73.8210792378530272],"hsluv":[165.03572853292485,96.4346108423233233,73.8210792378530272]},"#22ccbb":{"lch":[74.2610062314211916,57.2561659312404601,177.947236116536601],"luv":[74.2610062314211916,-57.2194225987583565,2.05090580243043252],"rgb":[0.133333333333333331,0.8,0.733333333333333282],"xyz":[0.312202783004269901,0.471114579544477385,0.544633077455082271],"hpluv":[177.947236116536601,97.8364666306377302,74.2610062314211916],"hsluv":[177.947236116536601,96.5891828531354406,74.2610062314211916]},"#22cccc":{"lch":[74.7511706210643467,57.2167927817266,192.177050630061132],"luv":[74.7511706210643467,-55.9294412838427633,-12.0689259631595149],"rgb":[0.133333333333333331,0.8,0.8],"xyz":[0.3314951584479916,0.478831529721966187,0.646239588125352427],"hpluv":[192.177050630061132,97.128087782713564,74.7511706210643467],"hsluv":[192.177050630061132,96.747899952527,74.7511706210643467]},"#22ccdd":{"lch":[75.2917163799825602,60.7443465218384091,205.915913497891523],"luv":[75.2917163799825602,-54.6356779140553357,-26.5484148912282159],"rgb":[0.133333333333333331,0.8,0.866666666666666696],"xyz":[0.353013483998625199,0.487438859942219693,0.759569436025358424],"hpluv":[205.915913497891523,102.375961416692178,75.2917163799825602],"hsluv":[205.915913497891523,96.9083635301369,75.2917163799825602]},"#22ccee":{"lch":[75.8825178700112843,67.4282526949852894,217.691288579377613],"luv":[75.8825178700112843,-53.3570890727704779,-41.2260877015904583],"rgb":[0.133333333333333331,0.8,0.933333333333333348],"xyz":[0.376825664264799909,0.49696373204868971,0.884980252093881647],"hpluv":[217.691288579377613,112.755958051566466,75.8825178700112843],"hsluv":[217.691288579377613,97.0684311053177851,75.8825178700112843]},"#22ccff":{"lch":[76.5232010138481,76.4669756721874165,227.041443142980768],"luv":[76.5232010138481,-52.1098871667616095,-55.9621124325938553],"rgb":[0.133333333333333331,0.8,1],"xyz":[0.40299671267463133,0.507432151412622434,1.02281444038566338],"hpluv":[227.041443142980768,130.754689276117347,76.5232010138481],"hsluv":[227.041443142980768,99.999999999997,76.5232010138481]},"#22dd00":{"lch":[77.3111928538645543,118.038829613749726,126.914864539429317],"luv":[77.3111928538645543,-70.8973873693031607,94.3754510494695],"rgb":[0.133333333333333331,0.866666666666666696,0],"xyz":[0.265149914819976518,0.520507817146241,0.0864936183183947771],"hpluv":[126.914864539429317,210.347075729226248,77.3111928538645543],"hsluv":[126.914864539429317,100.000000000002288,77.3111928538645543]},"#22dd11":{"lch":[77.3353680300965323,117.099630973594756,127.192375056145337],"luv":[77.3353680300965323,-70.7859197567446756,93.2827805028547346],"rgb":[0.133333333333333331,0.866666666666666696,0.0666666666666666657],"xyz":[0.266161580319613622,0.520912483346095856,0.0918217232831504138],"hpluv":[127.192375056145337,208.941659016378082,77.3353680300965323],"hsluv":[127.192375056145337,98.7107326231664217,77.3353680300965323]},"#22dd22":{"lch":[77.3801492665193535,115.37848303888174,127.715012949240432],"luv":[77.3801492665193535,-70.5809801545768636,91.2716801027172409],"rgb":[0.133333333333333331,0.866666666666666696,0.133333333333333331],"xyz":[0.268036938458090679,0.521662626601486656,0.101698609479129606],"hpluv":[127.715012949240432,206.361699793513822,77.3801492665193535],"hsluv":[127.715012949240432,96.3395071146262154,77.3801492665193535]},"#22dd33":{"lch":[77.4537875025684315,112.600723810091978,128.59932725776207],"luv":[77.4537875025684315,-70.24826089977104,88.0005956974969195],"rgb":[0.133333333333333331,0.866666666666666696,0.2],"xyz":[0.271124689190548385,0.522897726894469783,0.117960763336740743],"hpluv":[128.59932725776207,202.185786680839726,77.4537875025684315],"hsluv":[128.59932725776207,96.3699377868481122,77.4537875025684315]},"#22dd44":{"lch":[77.5598997380018,108.71293616133481,129.930302741787841],"luv":[77.5598997380018,-69.7779723132927217,83.3638834787812],"rgb":[0.133333333333333331,0.866666666666666696,0.266666666666666663],"xyz":[0.2755826844347673,0.524680924992157349,0.141439538289627381],"hpluv":[129.930302741787841,196.316024449944422,77.5598997380018],"hsluv":[129.930302741787841,96.4129906320409162,77.5598997380018]},"#22dd55":{"lch":[77.7014460191091416,103.73899221962921,131.815952634500974],"luv":[77.7014460191091416,-69.1669361195931,77.3156740549574266],"rgb":[0.133333333333333331,0.866666666666666696,0.333333333333333315],"xyz":[0.281545098474129285,0.527065890607902099,0.172841585563601297],"hpluv":[131.815952634500974,188.764163413831653,77.7014460191091416],"hsluv":[131.815952634500974,96.4690009350202189,77.7014460191091416]},"#22dd66":{"lch":[77.880896240080375,97.784990294992113,134.401120560320578],"luv":[77.880896240080375,-68.4179393254247117,69.8633659756971923],"rgb":[0.133333333333333331,0.866666666666666696,0.4],"xyz":[0.28913009424763747,0.530099888917305417,0.212789229970745258],"hpluv":[134.401120560320578,179.664283635232721,77.880896240080375],"hsluv":[134.401120560320578,96.5377748783722467,77.880896240080375]},"#22dd77":{"lch":[78.1003183749745205,91.0497694522495635,137.883451987021573],"luv":[78.1003183749745205,-67.5390964016577584,61.0616980975421],"rgb":[0.133333333333333331,0.866666666666666696,0.466666666666666674],"xyz":[0.298444107267839376,0.533825494125386268,0.261843031877143195],"hpluv":[137.883451987021573,169.299836923025936,78.1003183749745205],"hsluv":[137.883451987021573,96.6186469084632478,78.1003183749745205]},"#22dd88":{"lch":[78.3614307373917285,83.8424849668191143,142.529576014285681],"luv":[78.3614307373917285,-66.5430534683674608,51.0057283108209205],"rgb":[0.133333333333333331,0.866666666666666696,0.533333333333333326],"xyz":[0.309584524369783176,0.538281660966163811,0.320515895280715335],"hpluv":[142.529576014285681,158.150702843881334,78.3614307373917285],"hsluv":[142.529576014285681,96.7105501690208,78.3614307373917285]},"#22dd99":{"lch":[78.665635872828048,76.6094810635621144,148.680389056502293],"luv":[78.665635872828048,-65.4460211356496586,39.8224924677044854],"rgb":[0.133333333333333331,0.866666666666666696,0.6],"xyz":[0.322641488478855876,0.543504446609793,0.389282572921833214],"hpluv":[148.680389056502293,146.968629494944878,78.665635872828048],"hsluv":[148.680389056502293,96.8121015046769884,78.665635872828048]},"#22ddaa":{"lch":[79.0140446006893882,69.96699558248838,156.711923446039975],"luv":[79.0140446006893882,-64.2666918031728613,27.6617569130368608],"rgb":[0.133333333333333331,0.866666666666666696,0.66666666666666663],"xyz":[0.337699181444108432,0.549527523795894091,0.46858642253883187],"hpluv":[156.711923446039975,136.880679993502099,79.0140446006893882],"hsluv":[156.711923446039975,96.9216963326973513,79.0140446006893882]},"#22ddbb":{"lch":[79.4074947696843196,64.7136880558744849,166.88262774299784],"luv":[79.4074947696843196,-63.0251268096233161,14.6865520944819572],"rgb":[0.133333333333333331,0.866666666666666696,0.733333333333333282],"xyz":[0.354836773551445106,0.556382560638828849,0.558844407637473561],"hpluv":[166.88262774299784,129.476815865977585,79.4074947696843196],"hsluv":[166.88262774299784,97.0376060255481,79.4074947696843196]},"#22ddcc":{"lch":[79.8465673347569123,61.7508733998812431,179.012513434233142],"luv":[79.8465673347569123,-61.7417023409151184,1.06421693934889783],"rgb":[0.133333333333333331,0.866666666666666696,0.8],"xyz":[0.374129148995166805,0.564099510816317706,0.660450918307743717],"hpluv":[179.012513434233142,126.735630147597362,79.8465673347569123],"hsluv":[179.012513434233142,97.1580701030331824,79.8465673347569123]},"#22dddd":{"lch":[80.3316012938198867,61.8272738566169,192.177050630061245],"luv":[80.3316012938198867,-60.4361886569793,-13.0414298740249546],"rgb":[0.133333333333333331,0.866666666666666696,0.866666666666666696],"xyz":[0.395647474545800404,0.572706841036571213,0.773780766207749715],"hpluv":[192.177050630061245,130.583134255532286,80.3316012938198867],"hsluv":[192.177050630061245,97.2813767637234434,80.3316012938198867]},"#22ddee":{"lch":[80.8627083873859078,65.1993477029452606,204.924336649163848],"luv":[80.8627083873859078,-59.1270126845314579,-27.4763773429615092],"rgb":[0.133333333333333331,0.866666666666666696,0.933333333333333348],"xyz":[0.419459654811975113,0.58223171314304123,0.899191582276272938],"hpluv":[204.924336649163848,142.193638870282854,80.8627083873859078],"hsluv":[204.924336649163848,97.405927410883,80.8627083873859078]},"#22ddff":{"lch":[81.4397880620905141,71.5324096951162574,216.054756332513932],"luv":[81.4397880620905141,-57.8307265123863,-42.1009822669203544],"rgb":[0.133333333333333331,0.866666666666666696,1],"xyz":[0.445630703221806534,0.592700132506974,1.03702577056805478],"hpluv":[216.054756332513932,161.676156351457934,81.4397880620905141],"hsluv":[216.054756332513932,99.9999999999961,81.4397880620905141]},"#22ee00":{"lch":[82.639607109796458,126.437751030410212,127.039022267349651],"luv":[82.639607109796458,-76.1608929793909368,100.92583052028732],"rgb":[0.133333333333333331,0.933333333333333348,0],"xyz":[0.312328691160491334,0.614865369827271913,0.102219877098565962],"hpluv":[127.039022267349651,308.746810598848469,82.639607109796458],"hsluv":[127.039022267349651,100.000000000002203,82.639607109796458]},"#22ee11":{"lch":[82.6612418520526262,125.587498690937579,127.273852876359626],"luv":[82.6612418520526262,-76.0589691017437,99.9362449095734462],"rgb":[0.133333333333333331,0.933333333333333348,0.0666666666666666657],"xyz":[0.313340356660128438,0.615270036027126821,0.107547982063321598],"hpluv":[127.273852876359626,307.111076239802628,82.6612418520526262],"hsluv":[127.273852876359626,98.9080389542438638,82.6612418520526262]},"#22ee22":{"lch":[82.7013218186993271,124.026614606467561,127.715012949240375],"luv":[82.7013218186993271,-75.8713392100017643,98.112899341636421],"rgb":[0.133333333333333331,0.933333333333333348,0.133333333333333331],"xyz":[0.315215714798605495,0.616020179282517621,0.117424868259300791],"hpluv":[127.715012949240375,304.102865014696874,82.7013218186993271],"hsluv":[127.715012949240375,96.8972824334497176,82.7013218186993271]},"#22ee33":{"lch":[82.7672420886773921,121.499708898279266,128.458265706389938],"luv":[82.7672420886773921,-75.5660658728233443,95.1417308591278754],"rgb":[0.133333333333333331,0.933333333333333348,0.2],"xyz":[0.318303465531063201,0.617255279575500748,0.133687022116911941],"hpluv":[128.458265706389938,299.21821405622444,82.7672420886773921],"hsluv":[128.458265706389938,96.9191735237910308,82.7672420886773921]},"#22ee44":{"lch":[82.8622607061112575,117.945648419515081,129.569612755667265],"luv":[82.8622607061112575,-75.1331770294334,90.918544261133448],"rgb":[0.133333333333333331,0.933333333333333348,0.266666666666666663],"xyz":[0.322761460775282116,0.619038477673188314,0.15716579706979858],"hpluv":[129.569612755667265,292.317409010606752,82.8622607061112575],"hsluv":[129.569612755667265,96.9502397298715692,82.8622607061112575]},"#22ee55":{"lch":[82.9890600071846194,113.365618159982461,131.129866929811442],"luv":[82.9890600071846194,-74.5682726576598185,85.3893207236587],"rgb":[0.133333333333333331,0.933333333333333348,0.333333333333333315],"xyz":[0.328723874814644101,0.621423443288933064,0.188567844343772495],"hpluv":[131.129866929811442,283.372415217622233,82.9890600071846194],"hsluv":[131.129866929811442,96.9908233877961266,82.9890600071846194]},"#22ee66":{"lch":[83.1498978333136,107.825536766413322,133.243989823694022],"luv":[83.1498978333136,-73.8719849852999175,78.5447402013449647],"rgb":[0.133333333333333331,0.933333333333333348,0.4],"xyz":[0.336308870588152287,0.624457441598336382,0.228515488750916429],"hpluv":[133.243989823694022,272.476761047092111,83.1498978333136],"hsluv":[133.243989823694022,97.0409162623008683,83.1498978333136]},"#22ee77":{"lch":[83.3466879629012709,101.462411308546436,136.05169958656856],"luv":[83.3466879629012709,-73.0495185954435726,70.415827350948561],"rgb":[0.133333333333333331,0.933333333333333348,0.466666666666666674],"xyz":[0.345622883608354192,0.628183046806417233,0.277569290657314338],"hpluv":[136.05169958656856,259.869348467080897,83.3466879629012709],"hsluv":[136.05169958656856,97.1001922741487391,83.3466879629012709]},"#22ee88":{"lch":[83.5810478428977746,94.494960715205238,139.739189865999265],"luv":[83.5810478428977746,-72.1101014829990277,61.0690663485185681],"rgb":[0.133333333333333331,0.933333333333333348,0.533333333333333326],"xyz":[0.356763300710298,0.632639213647194776,0.336242154060886533],"hpluv":[139.739189865999265,245.976403795765407,83.5810478428977746],"hsluv":[139.739189865999265,97.1680458209452098,83.5810478428977746]},"#22ee99":{"lch":[83.8543293451422187,87.2401092672494514,144.548413258572367],"luv":[83.8543293451422187,-71.0663081347816,50.6005584263049286],"rgb":[0.133333333333333331,0.933333333333333348,0.6],"xyz":[0.369820264819370692,0.637861999290824,0.405008831702004413],"hpluv":[144.548413258572367,231.480208097577446,83.8543293451422187],"hsluv":[144.548413258572367,97.2436385928483844,83.8543293451422187]},"#22eeaa":{"lch":[84.1676401551603846,80.1359348037682508,150.771943883792943],"luv":[84.1676401551603846,-69.9332745317766324,39.1293388665967328],"rgb":[0.133333333333333331,0.933333333333333348,0.66666666666666663],"xyz":[0.384877957784623248,0.643885076476925056,0.484312681319003],"hpluv":[150.771943883792943,217.42312560604816,84.1676401551603846],"hsluv":[150.771943883792943,97.3259536357082311,84.1676401551603846]},"#22eebb":{"lch":[84.5218598825754697,73.7647249619211181,158.704077932293842],"luv":[84.5218598825754697,-68.7278540770417834,26.7902355844945639],"rgb":[0.133333333333333331,0.933333333333333348,0.733333333333333282],"xyz":[0.402015549891959922,0.650740113319859814,0.57457066641764476],"hpluv":[158.704077932293842,205.339796192481117,84.5218598825754697],"hsluv":[158.704077932293842,97.4138533690930331,84.5218598825754697]},"#22eecc":{"lch":[84.9176532530853621,68.8500130904050422,168.499772582144715],"luv":[84.9176532530853621,-67.467774257192545,13.7267526869778429],"rgb":[0.133333333333333331,0.933333333333333348,0.8],"xyz":[0.421307925335681621,0.658457063497348671,0.676177177087914916],"hpluv":[168.499772582144715,197.354512375483154,84.9176532530853621],"hsluv":[168.499772582144715,97.5061375012374896,84.9176532530853621]},"#22eedd":{"lch":[85.3554818050158275,66.1709053937965166,179.926877690260085],"luv":[85.3554818050158275,-66.170851505859261,0.0844489448895467398],"rgb":[0.133333333333333331,0.933333333333333348,0.866666666666666696],"xyz":[0.44282625088631522,0.667064393717602178,0.789507024987920913],"hpluv":[179.926877690260085,196.075052309852396,85.3554818050158275],"hsluv":[179.926877690260085,97.6015969291830174,85.3554818050158275]},"#22eeee":{"lch":[85.8356149635753667,66.3470894225537648,192.177050630061245],"luv":[85.8356149635753667,-64.8543104533760868,-13.9948094114017536],"rgb":[0.133333333333333331,0.933333333333333348,0.933333333333333348],"xyz":[0.46663843115248993,0.676589265824072195,0.914917841056444137],"hpluv":[192.177050630061245,204.089886920334152,85.8356149635753667],"hsluv":[192.177050630061245,97.6990604766853608,85.8356149635753667]},"#22eeff":{"lch":[86.35814102124138,69.583621560973242,204.067857145017655],"luv":[86.35814102124138,-63.5342376580599435,-28.377474072755291],"rgb":[0.133333333333333331,0.933333333333333348,1],"xyz":[0.492809479562321351,0.687057685188004919,1.05275202934822598],"hpluv":[204.067857145017655,223.225826840448832,86.35814102124138],"hsluv":[204.067857145017655,99.9999999999940883,86.35814102124138]},"#22ff00":{"lch":[87.8997189713237361,134.70927246092154,127.137510750393233],"luv":[87.8997189713237361,-81.328032504319566,107.388729464162736],"rgb":[0.133333333333333331,1,0],"xyz":[0.364181063590165166,0.718570114686621,0.119504001241790073],"hpluv":[127.137510750393233,493.515561032875894,87.8997189713237361],"hsluv":[127.137510750393233,100.000000000002359,87.8997189713237361]},"#22ff11":{"lch":[87.9192191859362708,133.935112153716517,127.338384986715198],"luv":[87.9192191859362708,-81.2344832365115792,106.487431187561],"rgb":[0.133333333333333331,1,0.0666666666666666657],"xyz":[0.36519272908980227,0.718974780886475928,0.124832106206545709],"hpluv":[127.338384986715198,491.550771148457443,87.9192191859362708],"hsluv":[127.338384986715198,99.9999999999918572,87.9192191859362708]},"#22ff22":{"lch":[87.9553480404818089,132.511927889398493,127.71501294924046],"luv":[87.9553480404818089,-81.0620967295481449,104.825319015849075],"rgb":[0.133333333333333331,1,0.133333333333333331],"xyz":[0.367068087228279327,0.719724924141866729,0.134708992402524902],"hpluv":[127.71501294924046,487.932270281505453,87.9553480404818089],"hsluv":[127.71501294924046,99.9999999999918,87.9553480404818089]},"#22ff33":{"lch":[88.0147790356886,130.202284180175667,128.347396099003475],"luv":[88.0147790356886,-80.7811428723405101,102.112887345201102],"rgb":[0.133333333333333331,1,0.2],"xyz":[0.370155837960737033,0.720960024434849855,0.150971146260136052],"hpluv":[128.347396099003475,482.0420586134328,88.0147790356886],"hsluv":[128.347396099003475,99.9999999999918572,88.0147790356886]},"#22ff44":{"lch":[88.1004639745127349,126.941230298117631,129.288082018787549],"luv":[88.1004639745127349,-80.3817123888383,98.2489504424236486],"rgb":[0.133333333333333331,1,0.266666666666666663],"xyz":[0.374613833204955948,0.722743222532537422,0.174449921213022691],"hpluv":[129.288082018787549,473.688351575452941,88.1004639745127349],"hsluv":[129.288082018787549,99.9999999999917719,88.1004639745127349]},"#22ff55":{"lch":[88.2148445849976497,122.715034192366474,130.599301535876663],"luv":[88.2148445849976497,-79.8586444797792865,93.1749779645044498],"rgb":[0.133333333333333331,1,0.333333333333333315],"xyz":[0.380576247244317933,0.725128188148282171,0.205851968486996606],"hpluv":[130.599301535876663,462.799362736769183,88.2148445849976497],"hsluv":[130.599301535876663,99.9999999999917,88.2148445849976497]},"#22ff66":{"lch":[88.3599902775167863,117.562049147645283,132.359544385640646],"luv":[88.3599902775167863,-79.2110524978463104,86.8702743288911279],"rgb":[0.133333333333333331,1,0.4],"xyz":[0.388161243017826119,0.72816218645768549,0.24579961289414054],"hpluv":[132.359544385640646,449.432018335727776,88.3599902775167863],"hsluv":[132.359544385640646,99.999999999991644,88.3599902775167863]},"#22ff77":{"lch":[88.5376718023346427,111.576626717172417,134.67079586388752],"luv":[88.5376718023346427,-78.441973739162,79.3486004003085839],"rgb":[0.133333333333333331,1,0.466666666666666674],"xyz":[0.397475256038028,0.731887791665766341,0.294853414800538449],"hpluv":[134.67079586388752,433.796433649144,88.5376718023346427],"hsluv":[134.67079586388752,99.9999999999914593,88.5376718023346427]},"#22ff88":{"lch":[88.7494051061703,104.915784817642518,137.666744209541747],"luv":[88.7494051061703,-77.5579802767934581,70.6546643845003786],"rgb":[0.133333333333333331,1,0.533333333333333326],"xyz":[0.408615673139971824,0.736343958506543883,0.353526278204110644],"hpluv":[137.666744209541747,416.300130961303353,88.7494051061703],"hsluv":[137.666744209541747,99.9999999999915161,88.7494051061703]},"#22ff99":{"lch":[88.996479539624346,97.8095196496336143,141.520869213027311],"luv":[88.996479539624346,-76.5687003963823827,60.8599725082183696],"rgb":[0.133333333333333331,1,0.6],"xyz":[0.42167263724904458,0.741566744150173096,0.422292955845228524],"hpluv":[141.520869213027311,397.621886071746928,88.996479539624346],"hsluv":[141.520869213027311,99.9999999999913882,88.996479539624346]},"#22ffaa":{"lch":[89.2799772586324281,90.5758041558366784,146.450029989774293],"luv":[89.2799772586324281,-75.4862499862398,50.057989986528554],"rgb":[0.133333333333333331,1,0.66666666666666663],"xyz":[0.43673033021429708,0.747589821336274163,0.50159680546222718],"hpluv":[146.450029989774293,378.829469872945424,89.2799772586324281],"hsluv":[146.450029989774293,99.9999999999911893,89.2799772586324281]},"#22ffbb":{"lch":[89.6007875020334552,83.6393655876379825,152.701818689515648],"luv":[89.6007875020334552,-74.3245992165371661,38.3587985630895787],"rgb":[0.133333333333333331,1,0.733333333333333282],"xyz":[0.453867922321633754,0.754444858179208921,0.591854790560868871],"hpluv":[152.701818689515648,361.553698033539774,89.6007875020334552],"hsluv":[152.701818689515648,99.9999999999909903,89.6007875020334552]},"#22ffcc":{"lch":[89.9596178804745,77.5461751086222,160.50148390925915],"luv":[89.9596178804745,-73.0989125181650223,25.8835519710636532],"rgb":[0.133333333333333331,1,0.8],"xyz":[0.473160297765355509,0.762161808356697779,0.693461301231139],"hpluv":[160.50148390925915,348.207300802542932,89.9596178804745],"hsluv":[160.50148390925915,99.999999999990834,89.9596178804745]},"#22ffdd":{"lch":[90.3570039795250466,72.9493687180361,169.926987012389134],"luv":[90.3570039795250466,-71.8249031216737421,12.7590629719491808],"rgb":[0.133333333333333331,1,0.866666666666666696],"xyz":[0.494678623315989,0.770769138576951285,0.806791149131145],"hpluv":[169.926987012389134,342.16275562632859,90.3570039795250466],"hsluv":[169.926987012389134,99.9999999999906,90.3570039795250466]},"#22ffee":{"lch":[90.793318095908873,70.5238201303846637,180.720785562676866],"luv":[90.793318095908873,-70.5182397089352,-0.887171987837557796],"rgb":[0.133333333333333331,1,0.933333333333333348],"xyz":[0.518490803582163817,0.780294010683421302,0.932201965199668248],"hpluv":[180.720785562676866,347.681124246536797,90.793318095908873],"hsluv":[180.720785562676866,99.9999999999901661,90.793318095908873]},"#22ffff":{"lch":[91.2687776254429082,70.7867026205843786,192.177050630061217],"luv":[91.2687776254429082,-69.1940343982234225,-14.9312715999851058],"rgb":[0.133333333333333331,1,1],"xyz":[0.544661851991995127,0.790762430047354,1.0700361534914502],"hpluv":[192.177050630061217,369.384676987995,91.2687776254429082],"hsluv":[192.177050630061217,99.9999999999901803,91.2687776254429082]},"#11aa00":{"lch":[60.6644104521350869,93.0873160838275,127.211890667698796],"luv":[60.6644104521350869,-56.2958954857129186,74.1351506854346241],"rgb":[0.0666666666666666657,0.66666666666666663,0],"xyz":[0.146052570780394131,0.288673842599075969,0.0480220097587461675],"hpluv":[127.211890667698796,194.713406103753528,60.6644104521350869],"hsluv":[127.211890667698796,100.000000000002444,60.6644104521350869]},"#11aa11":{"lch":[60.7002167335786424,91.7670835597914447,127.715012949240375],"luv":[60.7002167335786424,-56.1370762813229547,72.5935692169401],"rgb":[0.0666666666666666657,0.66666666666666663,0.0666666666666666657],"xyz":[0.147064236280031263,0.289078508798930822,0.0533501147235018],"hpluv":[127.715012949240375,191.838607973199288,60.7002167335786424],"hsluv":[127.715012949240375,97.6800439707354826,60.7002167335786424]},"#11aa22":{"lch":[60.7665037483511696,89.3702510768545153,128.6744569519864],"luv":[60.7665037483511696,-55.8469935821418844,69.7721655488506229],"rgb":[0.0666666666666666657,0.66666666666666663,0.133333333333333331],"xyz":[0.148939594418508264,0.289828652054321623,0.063227000919481],"hpluv":[128.6744569519864,186.624241227076766,60.7665037483511696],"hsluv":[128.6744569519864,97.7012125574833163,60.7665037483511696]},"#11aa33":{"lch":[60.8753956347493101,85.5662665428975799,130.333267948257316],"luv":[60.8753956347493101,-55.3812688292774595,65.2265362636212274],"rgb":[0.0666666666666666657,0.66666666666666663,0.2],"xyz":[0.152027345150966,0.291063752347304749,0.0794891547770921469],"hpluv":[130.333267948257316,178.361088002118152,60.8753956347493101],"hsluv":[130.333267948257316,97.7352371443594876,60.8753956347493101]},"#11aa44":{"lch":[61.0320681383245898,80.3855440613202603,132.913331110856149],"luv":[61.0320681383245898,-54.7338170014505394,58.8731260464924233],"rgb":[0.0666666666666666657,0.66666666666666663,0.266666666666666663],"xyz":[0.156485340395184885,0.292846950444992316,0.102967929729978785],"hpluv":[132.913331110856149,167.131840298358668,61.0320681383245898],"hsluv":[132.913331110856149,97.7826211010278428,61.0320681383245898]},"#11aa55":{"lch":[61.2406211479126199,74.0326893716562466,136.73626291081149],"luv":[61.2406211479126199,-53.9110982897111626,50.7388665304739064],"rgb":[0.0666666666666666657,0.66666666666666663,0.333333333333333315],"xyz":[0.162447754434546898,0.295231916060737176,0.134369977003952701],"hpluv":[136.73626291081149,153.399260409180499,61.2406211479126199],"hsluv":[136.73626291081149,97.8429805383323412,61.2406211479126199]},"#11aa66":{"lch":[61.5043118059827236,66.9183608277608926,142.276062400218507],"luv":[61.5043118059827236,-52.9302802927860938,40.944504442006675],"rgb":[0.0666666666666666657,0.66666666666666663,0.4],"xyz":[0.170032750208055056,0.298265914370140495,0.174317621411096635],"hpluv":[142.276062400218507,138.063556785316223,61.5043118059827236],"hsluv":[142.276062400218507,97.9151756761398246,61.5043118059827236]},"#11aa77":{"lch":[61.8256765996828648,59.7171413308715628,150.193024237310198],"luv":[61.8256765996828648,-51.8168585560505335,29.6841731923518672],"rgb":[0.0666666666666666657,0.66666666666666663,0.466666666666666674],"xyz":[0.179346763228257,0.30199151957822129,0.223371423317494544],"hpluv":[150.193024237310198,122.565843528602272,61.8256765996828648],"hsluv":[150.193024237310198,97.9974781059027578,61.8256765996828648]},"#11aa88":{"lch":[62.2066058842594,53.445591933814967,161.225226782668472],"luv":[62.2066058842594,-50.6018085779820197,17.201403018159084],"rgb":[0.0666666666666666657,0.66666666666666663,0.533333333333333326],"xyz":[0.190487180330200789,0.306447686418998888,0.282044286721066739],"hpluv":[161.225226782668472,109.022142353571084,62.2066058842594],"hsluv":[161.225226782668472,98.0877698343988698,62.2066058842594]},"#11aa99":{"lch":[62.6483970296267643,49.4620441969123803,175.635441576327452],"luv":[62.6483970296267643,-49.3186051456987613,3.76417356400704],"rgb":[0.0666666666666666657,0.66666666666666663,0.6],"xyz":[0.203544144439273517,0.311670472062628046,0.350810964362184619],"hpluv":[175.635441576327452,100.184705161952,62.6483970296267643],"hsluv":[175.635441576327452,98.1837511724305756,62.6483970296267643]},"#11aaaa":{"lch":[63.1517986220979424,49.10533458105958,192.177050630061103],"luv":[63.1517986220979424,-48.0004871585874326,-10.3579494522848794],"rgb":[0.0666666666666666657,0.66666666666666663,0.66666666666666663],"xyz":[0.218601837404526045,0.317693549248729168,0.430114813979183219],"hpluv":[192.177050630061103,98.6693521766944741,63.1517986220979424],"hsluv":[192.177050630061103,98.283131385506934,63.1517986220979424]},"#11aabb":{"lch":[63.7170519890822931,52.9100997091116483,208.088870357104184],"luv":[63.7170519890822931,-46.6782604891356812,-24.9122188681885817],"rgb":[0.0666666666666666657,0.66666666666666663,0.733333333333333282],"xyz":[0.235739429511862719,0.324548586091663926,0.520372799077825],"hpluv":[208.088870357104184,105.371274370578277,63.7170519890822931],"hsluv":[208.088870357104184,98.3837818799450474,63.7170519890822931]},"#11aacc":{"lch":[64.3439331362496603,60.2774830024396,221.163749704229559],"luv":[64.3439331362496603,-45.3787880982832661,-39.6754401089704345],"rgb":[0.0666666666666666657,0.66666666666666663,0.8],"xyz":[0.255031804955584418,0.332265536269152728,0.621979309748095122],"hpluv":[221.163749704229559,118.873987633214512,64.3439331362496603],"hsluv":[221.163749704229559,98.4838416101877385,64.3439331362496603]},"#11aadd":{"lch":[65.0317963778061738,70.0923801470555,230.985682804055784],"luv":[65.0317963778061738,-44.1241742926816372,-54.4609860144708762],"rgb":[0.0666666666666666657,0.66666666666666663,0.866666666666666696],"xyz":[0.276550130506218,0.340872866489406234,0.735309157648101119],"hpluv":[230.985682804055784,136.767964522831733,65.0317963778061738],"hsluv":[230.985682804055784,98.5817742563244,65.0317963778061738]},"#11aaee":{"lch":[65.7796198544585877,81.3683973110580325,238.155251398024461],"luv":[65.7796198544585877,-42.9315457639956293,-69.1208974137644248],"rgb":[0.0666666666666666657,0.66666666666666663,0.933333333333333348],"xyz":[0.300362310772392727,0.350397738595876251,0.860719973716624343],"hpluv":[238.155251398024461,156.965326989669,65.7796198544585877],"hsluv":[238.155251398024461,98.676383948407647,65.7796198544585877]},"#11aaff":{"lch":[66.5860524818013317,93.423779787985481,243.412392023658668],"luv":[66.5860524818013317,-41.8132782993845566,-83.5443139162218529],"rgb":[0.0666666666666666657,0.66666666666666663,1],"xyz":[0.326533359182224148,0.360866157959809,0.998554162008406188],"hpluv":[243.412392023658668,178.038321821181739,66.5860524818013317],"hsluv":[243.412392023658668,99.9999999999982805,66.5860524818013317]},"#11bb00":{"lch":[66.2579979425279788,101.837028338191359,127.308350947248712],"luv":[66.2579979425279788,-61.7238643700190792,80.9996599251199285],"rgb":[0.0666666666666666657,0.733333333333333282,0],"xyz":[0.180007068688992911,0.356582838416274528,0.0593401757282787864],"hpluv":[127.308350947248712,195.032386644097869,66.2579979425279788],"hsluv":[127.308350947248712,100.000000000002416,66.2579979425279788]},"#11bb11":{"lch":[66.2891028676776,100.667761827005108,127.715012949240403],"luv":[66.2891028676776,-61.5819268253258301,79.6345688739434507],"rgb":[0.0666666666666666657,0.733333333333333282,0.0666666666666666657],"xyz":[0.181018734188630043,0.356987504616129381,0.0646682806930344162],"hpluv":[127.715012949240403,192.702610495025482,66.2891028676776],"hsluv":[127.715012949240403,98.1199752505464318,66.2891028676776]},"#11bb22":{"lch":[66.3467009890152895,98.5365229927559199,128.48627008521666],"luv":[66.3467009890152895,-61.3219466901703356,77.130183570569983],"rgb":[0.0666666666666666657,0.733333333333333282,0.133333333333333331],"xyz":[0.182894092327107044,0.357737647871520181,0.0745451668890136088],"hpluv":[128.48627008521666,188.459149582366734,66.3467009890152895],"hsluv":[128.48627008521666,98.1339007760711155,66.3467009890152895]},"#11bb33":{"lch":[66.4413603116689586,95.1297105779412107,129.807139434656818],"luv":[66.4413603116689586,-60.9025570517959949,73.0790009455219121],"rgb":[0.0666666666666666657,0.733333333333333282,0.2],"xyz":[0.185981843059564778,0.358972748164503308,0.0908073207466247589],"hpluv":[129.807139434656818,181.684126992490178,66.4413603116689586],"hsluv":[129.807139434656818,98.1563849168539093,66.4413603116689586]},"#11bb44":{"lch":[66.5776441235544,90.4345556189602888,131.832147550242752],"luv":[66.5776441235544,-60.3153845158839061,67.3829595721343679],"rgb":[0.0666666666666666657,0.733333333333333282,0.266666666666666663],"xyz":[0.190439838303783665,0.360755946262190874,0.114286095699511397],"hpluv":[131.832147550242752,172.363503065423913,66.5776441235544],"hsluv":[131.832147550242752,98.1879073212924567,66.5776441235544]},"#11bb55":{"lch":[66.7592187944261,84.5672269635890501,134.774448398028227],"luv":[66.7592187944261,-59.5621947933412841,60.0329978237906374],"rgb":[0.0666666666666666657,0.733333333333333282,0.333333333333333315],"xyz":[0.196402252343145678,0.363140911877935735,0.145688142973485313],"hpluv":[134.774448398028227,160.742297130584,66.7592187944261],"hsluv":[134.774448398028227,98.2284201297941451,66.7592187944261]},"#11bb66":{"lch":[66.9890609579081513,77.7896938122995749,138.938350400658521],"luv":[66.9890609579081513,-58.6536805127572336,51.0977712402284752],"rgb":[0.0666666666666666657,0.733333333333333282,0.4],"xyz":[0.203987248116653835,0.366174910187339053,0.185635787380629275],"hpluv":[138.938350400658521,147.352496635070423,66.9890609579081513],"hsluv":[138.938350400658521,98.2774122804504486,66.9890609579081513]},"#11bb77":{"lch":[67.2695660469751573,70.5410036497719375,144.751753478195667],"luv":[67.2695660469751573,-57.6079608572489548,40.7106379437464625],"rgb":[0.0666666666666666657,0.733333333333333282,0.466666666666666674],"xyz":[0.213301261136855769,0.369900515395419849,0.234689589287027184],"hpluv":[144.751753478195667,133.064539371584743,67.2695660469751573],"hsluv":[144.751753478195667,98.33398740837616,67.2695660469751573]},"#11bb88":{"lch":[67.6026131767386289,63.4868829762913904,152.765342955174589],"luv":[67.6026131767386289,-56.44870944299889,29.0538725863731493],"rgb":[0.0666666666666666657,0.733333333333333282,0.533333333333333326],"xyz":[0.224441678238799569,0.374356682236197447,0.293362452690599351],"hpluv":[152.765342955174589,119.168054047142519,67.6026131767386289],"hsluv":[152.765342955174589,98.3969602233376293,67.6026131767386289]},"#11bb99":{"lch":[67.9896091217093357,57.5709210660889568,163.510238814203348],"luv":[67.9896091217093357,-55.2030563361408468,16.3411604100414145],"rgb":[0.0666666666666666657,0.733333333333333282,0.6],"xyz":[0.237498642347872296,0.379579467879826604,0.362129130331717231],"hpluv":[163.510238814203348,107.448401728013394,67.9896091217093357],"hsluv":[163.510238814203348,98.464964167861,67.9896091217093357]},"#11bbaa":{"lch":[68.431522322705149,53.97217733059707,177.026074660918823],"luv":[68.431522322705149,-53.8994902384006807,2.80015675382041573],"rgb":[0.0666666666666666657,0.733333333333333282,0.66666666666666663],"xyz":[0.252556335313124825,0.385602545065927726,0.441432979948715831],"hpluv":[177.026074660918823,100.081328983600983,68.431522322705149],"hsluv":[177.026074660918823,98.5365589333087684,68.431522322705149]},"#11bbbb":{"lch":[68.9289126417652511,53.7759127589290102,192.177050630061103],"luv":[68.9289126417652511,-52.5659794775517426,-11.3431298424003177],"rgb":[0.0666666666666666657,0.733333333333333282,0.733333333333333282],"xyz":[0.269693927420461499,0.392457581908862485,0.531690965047357578],"hpluv":[192.177050630061103,98.9978332941913095,68.9289126417652511],"hsluv":[192.177050630061103,98.6103267315429122,68.9289126417652511]},"#11bbcc":{"lch":[69.4819599404948463,57.3930965266865485,206.799543430538137],"luv":[69.4819599404948463,-51.2284702417124365,-25.8768499940688805],"rgb":[0.0666666666666666657,0.733333333333333282,0.8],"xyz":[0.288986302864183253,0.400174532086351287,0.633297475717627734],"hpluv":[206.799543430538137,104.81584090136549,69.4819599404948463],"hsluv":[206.799543430538137,98.6849492658553658,69.4819599404948463]},"#11bbdd":{"lch":[70.0904930703520535,64.3454332007566876,219.135570681285316],"luv":[70.0904930703520535,-49.9098388382008054,-40.6121011637893901],"rgb":[0.0666666666666666657,0.733333333333333282,0.866666666666666696],"xyz":[0.310504628414816741,0.408781862306604793,0.746627323617633731],"hpluv":[219.135570681285316,116.492493254234162,70.0904930703520535],"hsluv":[219.135570681285316,98.7592614999562244,70.0904930703520535]},"#11bbee":{"lch":[70.7540199625255184,73.7064384587933858,228.717665412779098],"luv":[70.7540199625255184,-48.6292974270947838,-55.3879996211006826],"rgb":[0.0666666666666666657,0.733333333333333282,0.933333333333333348],"xyz":[0.334316808680991506,0.41830673441307481,0.872038139686157],"hpluv":[228.717665412779098,132.188487390259695,70.7540199625255184],"hsluv":[228.717665412779098,98.8322822642660412,70.7540199625255184]},"#11bbff":{"lch":[71.471758937406932,84.600620314641418,235.923069973878228],"luv":[71.471758937406932,-47.4021956671632836,-70.0735099988154246],"rgb":[0.0666666666666666657,0.733333333333333282,1],"xyz":[0.360487857090822872,0.428775153777007534,1.00987232797793891],"hpluv":[235.923069973878228,150.202929688167188,71.471758937406932],"hsluv":[235.923069973878228,99.9999999999978115,71.471758937406932]},"#11cc00":{"lch":[71.760164015117,110.429324102022079,127.380540485202317],"luv":[71.760164015117,-67.042304751477019,87.7494444155603617],"rgb":[0.0666666666666666657,0.8,0],"xyz":[0.21823081199860983,0.433030325035509422,0.0720814234981507346],"hpluv":[127.380540485202317,195.272154443078705,71.760164015117],"hsluv":[127.380540485202317,100.000000000002245,71.760164015117]},"#11cc11":{"lch":[71.7874927519263366,109.385174124956521,127.715012949240432],"luv":[71.7874927519263366,-66.9146672826053219,86.5305935539869466],"rgb":[0.0666666666666666657,0.8,0.0666666666666666657],"xyz":[0.219242477498246963,0.433434991235364275,0.0774095284629063712],"hpluv":[127.715012949240432,193.352149077988855,71.7874927519263366],"hsluv":[127.715012949240432,98.4507061603193563,71.7874927519263366]},"#11cc22":{"lch":[71.8381079866900905,107.476295008714118,128.346772012349533],"luv":[71.8381079866900905,-66.680384726115463,84.2904519004221129],"rgb":[0.0666666666666666657,0.8,0.133333333333333331],"xyz":[0.221117835636723964,0.434185134490755076,0.0872864146588855638],"hpluv":[128.346772012349533,189.84411001864018,71.8381079866900905],"hsluv":[128.346772012349533,98.4601754700601361,71.8381079866900905]},"#11cc33":{"lch":[71.9213183931711626,104.40864440796355,129.421122123890029],"luv":[71.9213183931711626,-66.3010906987881441,80.6556284412913556],"rgb":[0.0666666666666666657,0.8,0.2],"xyz":[0.224205586369181697,0.435420234783738203,0.103548568516496714],"hpluv":[129.421122123890029,184.212095875088124,71.9213183931711626],"hsluv":[129.421122123890029,98.4755168761512749,71.9213183931711626]},"#11cc44":{"lch":[72.0411777660314669,100.144250866202455,131.050559631523186],"luv":[72.0411777660314669,-65.7672084530810395,75.5218198525557085],"rgb":[0.0666666666666666657,0.8,0.266666666666666663],"xyz":[0.228663581613400585,0.437203432881425769,0.127027343469383353],"hpluv":[131.050559631523186,176.394298837834185,72.0411777660314669],"hsluv":[131.050559631523186,98.4971346697200261,72.0411777660314669]},"#11cc55":{"lch":[72.2009771566369523,94.7439152050601621,133.383427271112737],"luv":[72.2009771566369523,-65.077446685205,68.8573554627095],"rgb":[0.0666666666666666657,0.8,0.333333333333333315],"xyz":[0.234625995652762598,0.439588398497170629,0.158429390743357268],"hpluv":[133.383427271112737,166.512782767528847,72.2009771566369523],"hsluv":[133.383427271112737,98.5251071985599225,72.2009771566369523]},"#11cc66":{"lch":[72.4034304155724,88.37638367841096,136.624435218533876],"luv":[72.4034304155724,-64.2379326004453333,60.6949191225620339],"rgb":[0.0666666666666666657,0.8,0.4],"xyz":[0.242210991426270755,0.442622396806573948,0.198377035150501202],"hpluv":[136.624435218533876,154.887514188688357,72.4034304155724],"hsluv":[136.624435218533876,98.5592219307307289,72.4034304155724]},"#11cc77":{"lch":[72.6507717937069657,81.3359578844494422,141.057484765247835],"luv":[72.6507717937069657,-63.261234579889333,51.1229326663597],"rgb":[0.0666666666666666657,0.8,0.466666666666666674],"xyz":[0.251525004446472689,0.446348002014654743,0.247430837056899111],"hpluv":[141.057484765247835,142.063228414279422,72.6507717937069657],"hsluv":[141.057484765247835,98.5990140248714795,72.6507717937069657]},"#11cc88":{"lch":[72.9448138267759703,74.0714793913140284,147.061910762632237],"luv":[72.9448138267759703,-62.1651250648783815,40.2750702654370087],"rgb":[0.0666666666666666657,0.8,0.533333333333333326],"xyz":[0.262665421548416489,0.450804168855432341,0.306103700460471306],"hpluv":[147.061910762632237,128.853412583983044,72.9448138267759703],"hsluv":[147.061910762632237,98.6438145792393755,72.9448138267759703]},"#11cc99":{"lch":[73.286985449663689,67.2264361640895203,155.087429558943455],"luv":[73.286985449663689,-60.9711251229010074,28.3181147072320734],"rgb":[0.0666666666666666657,0.8,0.6],"xyz":[0.275722385657489188,0.456026954499061499,0.374870378101589186],"hpluv":[155.087429558943455,116.399886643338576,73.286985449663689],"hsluv":[155.087429558943455,98.6928071276572609,73.286985449663689]},"#11ccaa":{"lch":[73.6783599756885224,61.6669147974486336,165.501022011161467],"luv":[73.6783599756885224,-59.7029534543248275,15.4390974304365383],"rgb":[0.0666666666666666657,0.8,0.66666666666666663],"xyz":[0.290780078622741744,0.462050031685162621,0.454174227718587786],"hpluv":[165.501022011161467,106.206622375239988,73.6783599756885224],"hsluv":[165.501022011161467,98.7450877264532494,73.6783599756885224]},"#11ccbb":{"lch":[74.1196780643846864,58.4137876130139801,178.201908682105085],"luv":[74.1196780643846864,-58.3850250256368426,1.83287644266177074],"rgb":[0.0666666666666666657,0.8,0.733333333333333282],"xyz":[0.307917670730078419,0.46890506852809738,0.544432212817229533],"hpluv":[178.201908682105085,100.004874571957387,74.1196780643846864],"hsluv":[178.201908682105085,98.7997230732590452,74.1196780643846864]},"#11cccc":{"lch":[74.6113685470067,58.3540675645504,192.177050630061103],"luv":[74.6113685470067,-57.0411279075965751,-12.3088150671508707],"rgb":[0.0666666666666666657,0.8,0.8],"xyz":[0.327210046173800118,0.476622018705586181,0.646038723487499689],"hpluv":[192.177050630061103,99.244272920381249,74.6113685470067],"hsluv":[192.177050630061103,98.8558017207376167,74.6113685470067]},"#11ccdd":{"lch":[75.1535687293590087,61.8087365466066316,205.702276410621693],"luv":[75.1535687293590087,-55.6933672323303881,-26.8061328768737823],"rgb":[0.0666666666666666657,0.8,0.866666666666666696],"xyz":[0.348728371724433717,0.485229348925839687,0.759368571387505686],"hpluv":[205.702276410621693,104.361325002032586,75.1535687293590087],"hsluv":[205.702276410621693,98.9124749687685352,75.1535687293590087]},"#11ccee":{"lch":[75.7461450403856418,68.3900229325434168,217.356690237772426],"luv":[75.7461450403856418,-54.3614174191380712,-41.4973677827407],"rgb":[0.0666666666666666657,0.8,0.933333333333333348],"xyz":[0.372540551990608426,0.494754221032309704,0.88477938745602891],"hpluv":[217.356690237772426,114.570165581500433,75.7461450403856418],"hsluv":[217.356690237772426,98.968985855810871,75.7461450403856418]},"#11ccff":{"lch":[76.3887144168947714,77.3228649101567811,226.666757851513921],"luv":[76.3887144168947714,-53.0620799518220849,-56.2426982736496726],"rgb":[0.0666666666666666657,0.8,1],"xyz":[0.398711600400439847,0.505222640396242428,1.02261357574781075],"hpluv":[226.666757851513921,131.304642630845649,76.3887144168947714],"hsluv":[226.666757851513921,99.9999999999969162,76.3887144168947714]},"#11dd00":{"lch":[77.1789729208637851,118.880191052714352,127.435820588671049],"luv":[77.1789729208637851,-72.2639845338074,94.3950017957916572],"rgb":[0.0666666666666666657,0.866666666666666696,0],"xyz":[0.260864802545785,0.518298306129860942,0.0862927536805420531],"hpluv":[127.435820588671049,210.367240137055802,77.1789729208637851],"hsluv":[127.435820588671049,100.000000000002302,77.1789729208637851]},"#11dd11":{"lch":[77.2032167276219,117.940964566200989,127.715012949240474],"luv":[77.2032167276219,-72.148538100067,93.2987651195291],"rgb":[0.0666666666666666657,0.866666666666666696,0.0666666666666666657],"xyz":[0.261876468045422084,0.51870297232971585,0.0916208586452976897],"hpluv":[127.715012949240474,208.973000844217893,77.2032167276219],"hsluv":[127.715012949240474,98.7048375113237739,77.2032167276219]},"#11dd22":{"lch":[77.2481249515021773,116.219968574506154,128.240715222563949],"luv":[77.2481249515021773,-71.936288170647174,91.2811674974022509],"rgb":[0.0666666666666666657,0.866666666666666696,0.133333333333333331],"xyz":[0.263751826183899141,0.519453115585106651,0.101497744841276882],"hpluv":[128.240715222563949,206.413967447437244,77.2481249515021773],"hsluv":[128.240715222563949,98.7114617332334348,77.2481249515021773]},"#11dd33":{"lch":[77.3219716074714114,113.443027450646795,129.129905575085218],"luv":[77.3219716074714114,-71.591714193384675,87.9996984996024],"rgb":[0.0666666666666666657,0.866666666666666696,0.2],"xyz":[0.266839576916356847,0.520688215878089777,0.117759898698888033],"hpluv":[129.129905575085218,202.273081507843187,77.3219716074714114],"hsluv":[129.129905575085218,98.7222220245650419,77.3219716074714114]},"#11dd44":{"lch":[77.4283833065767,109.557638087167803,130.467479357182611],"luv":[77.4283833065767,-71.1046976382296378,83.3486534805139],"rgb":[0.0666666666666666657,0.866666666666666696,0.266666666666666663],"xyz":[0.271297572160575762,0.522471413975777343,0.141238673651774671],"hpluv":[130.467479357182611,196.45511110559741,77.4283833065767],"hsluv":[130.467479357182611,98.737444128486942,77.4283833065767]},"#11dd55":{"lch":[77.5703274630482156,104.589066335953675,132.360930841179908],"luv":[77.5703274630482156,-70.4719757705036471,77.2824263854860192],"rgb":[0.0666666666666666657,0.866666666666666696,0.333333333333333315],"xyz":[0.277259986199937747,0.524856379591522093,0.172640720925748559],"hpluv":[132.360930841179908,188.974657198429043,77.5703274630482156],"hsluv":[132.360930841179908,98.7572451358875583,77.5703274630482156]},"#11dd66":{"lch":[77.7502795105496176,98.645271303892585,134.953797592355841],"luv":[77.7502795105496176,-69.6964700953403167,69.8089650895062732],"rgb":[0.0666666666666666657,0.866666666666666696,0.4],"xyz":[0.284844981973445932,0.527890377900925412,0.212588365332892548],"hpluv":[134.953797592355841,179.968822287066047,77.7502795105496176],"hsluv":[134.953797592355841,98.7815546318288114,77.7502795105496176]},"#11dd77":{"lch":[77.9703113413929714,91.9272626112809377,138.440937564009943],"luv":[77.9703113413929714,-68.7866216277350588,60.9837871589344616],"rgb":[0.0666666666666666657,0.866666666666666696,0.466666666666666674],"xyz":[0.294158994993647838,0.531615983109006263,0.261642167239290457],"hpluv":[138.440937564009943,169.723893920939275,77.9703113413929714],"hsluv":[138.440937564009943,98.8101351189296,77.9703113413929714]},"#11dd88":{"lch":[78.2321436880382919,84.7462074021241705,143.083472555296623],"luv":[78.2321436880382919,-67.7555613828794492,50.90288371727776],"rgb":[0.0666666666666666657,0.866666666666666696,0.533333333333333326],"xyz":[0.305299412095591638,0.536072149949783805,0.320315030642862597],"hpluv":[143.083472555296623,158.721324423216174,78.2321436880382919],"hsluv":[143.083472555296623,98.842607114853692,78.2321436880382919]},"#11dd99":{"lch":[78.5371801027425,77.5491781494168748,149.212222309724666],"luv":[78.5371801027425,-66.6201031545698,39.6942928810235145],"rgb":[0.0666666666666666657,0.866666666666666696,0.6],"xyz":[0.318356376204664393,0.541294935593413,0.389081708283980532],"hpluv":[149.212222309724666,147.710574340426348,78.5371801027425],"hsluv":[149.212222309724666,98.8784794246756746,78.5371801027425]},"#11ddaa":{"lch":[78.8865310768390771,70.9495750262721288,157.187121587348372],"luv":[78.8865310768390771,-65.3996173248364414,27.5087667875819264],"rgb":[0.0666666666666666657,0.866666666666666696,0.66666666666666663],"xyz":[0.333414069169916893,0.547318012779514085,0.468385557900979133],"hpluv":[157.187121587348372,137.807232739715857,78.8865310768390771],"hsluv":[157.187121587348372,98.9171828916172728,78.8865310768390771]},"#11ddbb":{"lch":[79.2810328759594398,65.7363215025974483,167.247861929956969],"luv":[79.2810328759594398,-64.1148749316804611,14.5102300873497096],"rgb":[0.0666666666666666657,0.866666666666666696,0.733333333333333282],"xyz":[0.350551661277253568,0.554173049622448843,0.558643542999620824],"hpluv":[167.247861929956969,130.572542181043048,79.2810328759594398],"hsluv":[167.247861929956969,98.9581049946704496,79.2810328759594398]},"#11ddcc":{"lch":[79.7212637056701396,62.7929370759791,179.209087927276954],"luv":[79.7212637056701396,-62.7869545437069903,0.866767416521026846],"rgb":[0.0666666666666666657,0.866666666666666696,0.8],"xyz":[0.369844036720975322,0.561889999799937701,0.660250053669891],"hpluv":[179.209087927276954,127.935201467087722,79.7212637056701396],"hsluv":[179.209087927276954,99.0006225499112,79.7212637056701396]},"#11dddd":{"lch":[80.2075587483664378,62.8503941808937796,192.177050630061132],"luv":[80.2075587483664378,-61.4362892449526,-13.2572400032679489],"rgb":[0.0666666666666666657,0.866666666666666696,0.866666666666666696],"xyz":[0.39136236227160881,0.570497330020191207,0.773579901569897],"hpluv":[192.177050630061132,131.767009082741112,80.2075587483664378],"hsluv":[192.177050630061132,99.0441302201931109,80.2075587483664378]},"#11ddee":{"lch":[80.7400249746916643,66.1629514334268691,204.757295278220823],"luv":[80.7400249746916643,-60.0819052998990202,-27.707414132610225],"rgb":[0.0666666666666666657,0.866666666666666696,0.933333333333333348],"xyz":[0.415174542537783575,0.580022202126661224,0.8989907176384202],"hpluv":[204.757295278220823,143.22067561241397,80.7400249746916643],"hsluv":[204.757295278220823,99.0880633014724594,80.7400249746916643]},"#11ddff":{"lch":[81.3185562290371848,72.4120095186264194,215.786316478612605],"luv":[81.3185562290371848,-58.7408753400219084,-42.3439332940817934],"rgb":[0.0666666666666666657,0.866666666666666696,1],"xyz":[0.441345590947614941,0.590490621490594,1.03682490593020216],"hpluv":[215.786316478612605,162.428807277722512,81.3185562290371848],"hsluv":[215.786316478612605,99.9999999999959925,81.3185562290371848]}} \ No newline at end of file diff --git a/vendor/github.com/lucasb-eyer/go-colorful/hsluv.go b/vendor/github.com/lucasb-eyer/go-colorful/hsluv.go deleted file mode 100644 index d19fb64..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/hsluv.go +++ /dev/null @@ -1,207 +0,0 @@ -package colorful - -import "math" - -// Source: https://github.com/hsluv/hsluv-go -// Under MIT License -// Modified so that Saturation and Luminance are in [0..1] instead of [0..100]. - -// HSLuv uses a rounded version of the D65. This has no impact on the final RGB -// values, but to keep high levels of accuracy for internal operations and when -// comparing to the test values, this modified white reference is used internally. -// -// See this GitHub thread for details on these values: -// https://github.com/hsluv/hsluv/issues/79 -var hSLuvD65 = [3]float64{0.95045592705167, 1.0, 1.089057750759878} - -func LuvLChToHSLuv(l, c, h float64) (float64, float64, float64) { - // [-1..1] but the code expects it to be [-100..100] - c *= 100.0 - l *= 100.0 - - var s, max float64 - if l > 99.9999999 || l < 0.00000001 { - s = 0.0 - } else { - max = maxChromaForLH(l, h) - s = c / max * 100.0 - } - return h, clamp01(s / 100.0), clamp01(l / 100.0) -} - -func HSLuvToLuvLCh(h, s, l float64) (float64, float64, float64) { - l *= 100.0 - s *= 100.0 - - var c, max float64 - if l > 99.9999999 || l < 0.00000001 { - c = 0.0 - } else { - max = maxChromaForLH(l, h) - c = max / 100.0 * s - } - - // c is [-100..100], but for LCh it's supposed to be almost [-1..1] - return clamp01(l / 100.0), c / 100.0, h -} - -func LuvLChToHPLuv(l, c, h float64) (float64, float64, float64) { - // [-1..1] but the code expects it to be [-100..100] - c *= 100.0 - l *= 100.0 - - var s, max float64 - if l > 99.9999999 || l < 0.00000001 { - s = 0.0 - } else { - max = maxSafeChromaForL(l) - s = c / max * 100.0 - } - return h, s / 100.0, l / 100.0 -} - -func HPLuvToLuvLCh(h, s, l float64) (float64, float64, float64) { - // [-1..1] but the code expects it to be [-100..100] - l *= 100.0 - s *= 100.0 - - var c, max float64 - if l > 99.9999999 || l < 0.00000001 { - c = 0.0 - } else { - max = maxSafeChromaForL(l) - c = max / 100.0 * s - } - return l / 100.0, c / 100.0, h -} - -// HSLuv creates a new Color from values in the HSLuv color space. -// Hue in [0..360], a Saturation [0..1], and a Luminance (lightness) in [0..1]. -// -// The returned color values are clamped (using .Clamped), so this will never output -// an invalid color. -func HSLuv(h, s, l float64) Color { - // HSLuv -> LuvLCh -> CIELUV -> CIEXYZ -> Linear RGB -> sRGB - l, u, v := LuvLChToLuv(HSLuvToLuvLCh(h, s, l)) - return LinearRgb(XyzToLinearRgb(LuvToXyzWhiteRef(l, u, v, hSLuvD65))).Clamped() -} - -// HPLuv creates a new Color from values in the HPLuv color space. -// Hue in [0..360], a Saturation [0..1], and a Luminance (lightness) in [0..1]. -// -// The returned color values are clamped (using .Clamped), so this will never output -// an invalid color. -func HPLuv(h, s, l float64) Color { - // HPLuv -> LuvLCh -> CIELUV -> CIEXYZ -> Linear RGB -> sRGB - l, u, v := LuvLChToLuv(HPLuvToLuvLCh(h, s, l)) - return LinearRgb(XyzToLinearRgb(LuvToXyzWhiteRef(l, u, v, hSLuvD65))).Clamped() -} - -// HSLuv returns the Hue, Saturation and Luminance of the color in the HSLuv -// color space. Hue in [0..360], a Saturation [0..1], and a Luminance -// (lightness) in [0..1]. -func (col Color) HSLuv() (h, s, l float64) { - // sRGB -> Linear RGB -> CIEXYZ -> CIELUV -> LuvLCh -> HSLuv - return LuvLChToHSLuv(col.LuvLChWhiteRef(hSLuvD65)) -} - -// HPLuv returns the Hue, Saturation and Luminance of the color in the HSLuv -// color space. Hue in [0..360], a Saturation [0..1], and a Luminance -// (lightness) in [0..1]. -// -// Note that HPLuv can only represent pastel colors, and so the Saturation -// value could be much larger than 1 for colors it can't represent. -func (col Color) HPLuv() (h, s, l float64) { - return LuvLChToHPLuv(col.LuvLChWhiteRef(hSLuvD65)) -} - -// DistanceHSLuv calculates Euclidan distance in the HSLuv colorspace. No idea -// how useful this is. -// -// The Hue value is divided by 100 before the calculation, so that H, S, and L -// have the same relative ranges. -func (c1 Color) DistanceHSLuv(c2 Color) float64 { - h1, s1, l1 := c1.HSLuv() - h2, s2, l2 := c2.HSLuv() - return math.Sqrt(sq((h1-h2)/100.0) + sq(s1-s2) + sq(l1-l2)) -} - -// DistanceHPLuv calculates Euclidean distance in the HPLuv colorspace. No idea -// how useful this is. -// -// The Hue value is divided by 100 before the calculation, so that H, S, and L -// have the same relative ranges. -func (c1 Color) DistanceHPLuv(c2 Color) float64 { - h1, s1, l1 := c1.HPLuv() - h2, s2, l2 := c2.HPLuv() - return math.Sqrt(sq((h1-h2)/100.0) + sq(s1-s2) + sq(l1-l2)) -} - -var m = [3][3]float64{ - {3.2409699419045214, -1.5373831775700935, -0.49861076029300328}, - {-0.96924363628087983, 1.8759675015077207, 0.041555057407175613}, - {0.055630079696993609, -0.20397695888897657, 1.0569715142428786}, -} - -const kappa = 903.2962962962963 -const epsilon = 0.0088564516790356308 - -func maxChromaForLH(l, h float64) float64 { - hRad := h / 360.0 * math.Pi * 2.0 - minLength := math.MaxFloat64 - for _, line := range getBounds(l) { - length := lengthOfRayUntilIntersect(hRad, line[0], line[1]) - if length > 0.0 && length < minLength { - minLength = length - } - } - return minLength -} - -func getBounds(l float64) [6][2]float64 { - var sub2 float64 - var ret [6][2]float64 - sub1 := math.Pow(l+16.0, 3.0) / 1560896.0 - if sub1 > epsilon { - sub2 = sub1 - } else { - sub2 = l / kappa - } - for i := range m { - for k := 0; k < 2; k++ { - top1 := (284517.0*m[i][0] - 94839.0*m[i][2]) * sub2 - top2 := (838422.0*m[i][2]+769860.0*m[i][1]+731718.0*m[i][0])*l*sub2 - 769860.0*float64(k)*l - bottom := (632260.0*m[i][2]-126452.0*m[i][1])*sub2 + 126452.0*float64(k) - ret[i*2+k][0] = top1 / bottom - ret[i*2+k][1] = top2 / bottom - } - } - return ret -} - -func lengthOfRayUntilIntersect(theta, x, y float64) (length float64) { - length = y / (math.Sin(theta) - x*math.Cos(theta)) - return -} - -func maxSafeChromaForL(l float64) float64 { - minLength := math.MaxFloat64 - for _, line := range getBounds(l) { - m1 := line[0] - b1 := line[1] - x := intersectLineLine(m1, b1, -1.0/m1, 0.0) - dist := distanceFromPole(x, b1+x*m1) - if dist < minLength { - minLength = dist - } - } - return minLength -} - -func intersectLineLine(x1, y1, x2, y2 float64) float64 { - return (y1 - y2) / (x2 - x1) -} - -func distanceFromPole(x, y float64) float64 { - return math.Sqrt(math.Pow(x, 2.0) + math.Pow(y, 2.0)) -} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/soft_palettegen.go b/vendor/github.com/lucasb-eyer/go-colorful/soft_palettegen.go deleted file mode 100644 index 9f7bf6f..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/soft_palettegen.go +++ /dev/null @@ -1,185 +0,0 @@ -// Largely inspired by the descriptions in http://lab.medialab.sciences-po.fr/iwanthue/ -// but written from scratch. - -package colorful - -import ( - "fmt" - "math" - "math/rand" -) - -// The algorithm works in L*a*b* color space and converts to RGB in the end. -// L* in [0..1], a* and b* in [-1..1] -type lab_t struct { - L, A, B float64 -} - -type SoftPaletteSettings struct { - // A function which can be used to restrict the allowed color-space. - CheckColor func(l, a, b float64) bool - - // The higher, the better quality but the slower. Usually two figures. - Iterations int - - // Use up to 160000 or 8000 samples of the L*a*b* space (and thus calls to CheckColor). - // Set this to true only if your CheckColor shapes the Lab space weirdly. - ManySamples bool -} - -// Yeah, windows-stype Foo, FooEx, screw you golang... -// Uses K-means to cluster the color-space and return the means of the clusters -// as a new palette of distinctive colors. Falls back to K-medoid if the mean -// happens to fall outside of the color-space, which can only happen if you -// specify a CheckColor function. -func SoftPaletteEx(colorsCount int, settings SoftPaletteSettings) ([]Color, error) { - - // Checks whether it's a valid RGB and also fulfills the potentially provided constraint. - check := func(col lab_t) bool { - c := Lab(col.L, col.A, col.B) - return c.IsValid() && (settings.CheckColor == nil || settings.CheckColor(col.L, col.A, col.B)) - } - - // Sample the color space. These will be the points k-means is run on. - dl := 0.05 - dab := 0.1 - if settings.ManySamples { - dl = 0.01 - dab = 0.05 - } - - samples := make([]lab_t, 0, int(1.0/dl*2.0/dab*2.0/dab)) - for l := 0.0; l <= 1.0; l += dl { - for a := -1.0; a <= 1.0; a += dab { - for b := -1.0; b <= 1.0; b += dab { - if check(lab_t{l, a, b}) { - samples = append(samples, lab_t{l, a, b}) - } - } - } - } - - // That would cause some infinite loops down there... - if len(samples) < colorsCount { - return nil, fmt.Errorf("palettegen: more colors requested (%v) than samples available (%v). Your requested color count may be wrong, you might want to use many samples or your constraint function makes the valid color space too small", colorsCount, len(samples)) - } else if len(samples) == colorsCount { - return labs2cols(samples), nil // Oops? - } - - // We take the initial means out of the samples, so they are in fact medoids. - // This helps us avoid infinite loops or arbitrary cutoffs with too restrictive constraints. - means := make([]lab_t, colorsCount) - for i := 0; i < colorsCount; i++ { - for means[i] = samples[rand.Intn(len(samples))]; in(means, i, means[i]); means[i] = samples[rand.Intn(len(samples))] { - } - } - - clusters := make([]int, len(samples)) - samples_used := make([]bool, len(samples)) - - // The actual k-means/medoid iterations - for i := 0; i < settings.Iterations; i++ { - // Reassing the samples to clusters, i.e. to their closest mean. - // By the way, also check if any sample is used as a medoid and if so, mark that. - for isample, sample := range samples { - samples_used[isample] = false - mindist := math.Inf(+1) - for imean, mean := range means { - dist := lab_dist(sample, mean) - if dist < mindist { - mindist = dist - clusters[isample] = imean - } - - // Mark samples which are used as a medoid. - if lab_eq(sample, mean) { - samples_used[isample] = true - } - } - } - - // Compute new means according to the samples. - for imean := range means { - // The new mean is the average of all samples belonging to it.. - nsamples := 0 - newmean := lab_t{0.0, 0.0, 0.0} - for isample, sample := range samples { - if clusters[isample] == imean { - nsamples++ - newmean.L += sample.L - newmean.A += sample.A - newmean.B += sample.B - } - } - if nsamples > 0 { - newmean.L /= float64(nsamples) - newmean.A /= float64(nsamples) - newmean.B /= float64(nsamples) - } else { - // That mean doesn't have any samples? Get a new mean from the sample list! - var inewmean int - for inewmean = rand.Intn(len(samples_used)); samples_used[inewmean]; inewmean = rand.Intn(len(samples_used)) { - } - newmean = samples[inewmean] - samples_used[inewmean] = true - } - - // But now we still need to check whether the new mean is an allowed color. - if nsamples > 0 && check(newmean) { - // It does, life's good (TM) - means[imean] = newmean - } else { - // New mean isn't an allowed color or doesn't have any samples! - // Switch to medoid mode and pick the closest (unused) sample. - // This should always find something thanks to len(samples) >= colorsCount - mindist := math.Inf(+1) - for isample, sample := range samples { - if !samples_used[isample] { - dist := lab_dist(sample, newmean) - if dist < mindist { - mindist = dist - newmean = sample - } - } - } - } - } - } - return labs2cols(means), nil -} - -// A wrapper which uses common parameters. -func SoftPalette(colorsCount int) ([]Color, error) { - return SoftPaletteEx(colorsCount, SoftPaletteSettings{nil, 50, false}) -} - -func in(haystack []lab_t, upto int, needle lab_t) bool { - for i := 0; i < upto && i < len(haystack); i++ { - if haystack[i] == needle { - return true - } - } - return false -} - -const LAB_DELTA = 1e-6 - -func lab_eq(lab1, lab2 lab_t) bool { - return math.Abs(lab1.L-lab2.L) < LAB_DELTA && - math.Abs(lab1.A-lab2.A) < LAB_DELTA && - math.Abs(lab1.B-lab2.B) < LAB_DELTA -} - -// That's faster than using colorful's DistanceLab since we would have to -// convert back and forth for that. Here is no conversion. -func lab_dist(lab1, lab2 lab_t) float64 { - return math.Sqrt(sq(lab1.L-lab2.L) + sq(lab1.A-lab2.A) + sq(lab1.B-lab2.B)) -} - -func labs2cols(labs []lab_t) (cols []Color) { - cols = make([]Color, len(labs)) - for k, v := range labs { - cols[k] = Lab(v.L, v.A, v.B) - } - return cols -} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/warm_palettegen.go b/vendor/github.com/lucasb-eyer/go-colorful/warm_palettegen.go deleted file mode 100644 index 00f42a5..0000000 --- a/vendor/github.com/lucasb-eyer/go-colorful/warm_palettegen.go +++ /dev/null @@ -1,25 +0,0 @@ -package colorful - -import ( - "math/rand" -) - -// Uses the HSV color space to generate colors with similar S,V but distributed -// evenly along their Hue. This is fast but not always pretty. -// If you've got time to spare, use Lab (the non-fast below). -func FastWarmPalette(colorsCount int) (colors []Color) { - colors = make([]Color, colorsCount) - - for i := 0; i < colorsCount; i++ { - colors[i] = Hsv(float64(i)*(360.0/float64(colorsCount)), 0.55+rand.Float64()*0.2, 0.35+rand.Float64()*0.2) - } - return -} - -func WarmPalette(colorsCount int) ([]Color, error) { - warmy := func(l, a, b float64) bool { - _, c, _ := LabToHcl(l, a, b) - return 0.1 <= c && c <= 0.4 && 0.2 <= l && l <= 0.5 - } - return SoftPaletteEx(colorsCount, SoftPaletteSettings{warmy, 50, true}) -} diff --git a/vendor/github.com/mattn/go-shellwords/.travis.yml b/vendor/github.com/mattn/go-shellwords/.travis.yml deleted file mode 100644 index 6294d33..0000000 --- a/vendor/github.com/mattn/go-shellwords/.travis.yml +++ /dev/null @@ -1,14 +0,0 @@ -language: go -sudo: false -go: - - tip - -before_install: - - go get -t -v ./... - -script: - - ./go.test.sh - -after_success: - - bash <(curl -s https://codecov.io/bash) - diff --git a/vendor/github.com/mattn/go-shellwords/LICENSE b/vendor/github.com/mattn/go-shellwords/LICENSE deleted file mode 100644 index 740fa93..0000000 --- a/vendor/github.com/mattn/go-shellwords/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2017 Yasuhiro Matsumoto - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/mattn/go-shellwords/README.md b/vendor/github.com/mattn/go-shellwords/README.md deleted file mode 100644 index 9e1e650..0000000 --- a/vendor/github.com/mattn/go-shellwords/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# go-shellwords - -[![codecov](https://codecov.io/gh/mattn/go-shellwords/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-shellwords) -[![Build Status](https://travis-ci.org/mattn/go-shellwords.svg?branch=master)](https://travis-ci.org/mattn/go-shellwords) - -Parse line as shell words. - -## Usage - -```go -args, err := shellwords.Parse("./foo --bar=baz") -// args should be ["./foo", "--bar=baz"] -``` - -```go -os.Setenv("FOO", "bar") -p := shellwords.NewParser() -p.ParseEnv = true -args, err := p.Parse("./foo $FOO") -// args should be ["./foo", "bar"] -``` - -```go -p := shellwords.NewParser() -p.ParseBacktick = true -args, err := p.Parse("./foo `echo $SHELL`") -// args should be ["./foo", "/bin/bash"] -``` - -```go -shellwords.ParseBacktick = true -p := shellwords.NewParser() -args, err := p.Parse("./foo `echo $SHELL`") -// args should be ["./foo", "/bin/bash"] -``` - -# Thanks - -This is based on cpan module [Parse::CommandLine](https://metacpan.org/pod/Parse::CommandLine). - -# License - -under the MIT License: http://mattn.mit-license.org/2017 - -# Author - -Yasuhiro Matsumoto (a.k.a mattn) diff --git a/vendor/github.com/mattn/go-shellwords/go.mod b/vendor/github.com/mattn/go-shellwords/go.mod deleted file mode 100644 index 8d96dbd..0000000 --- a/vendor/github.com/mattn/go-shellwords/go.mod +++ /dev/null @@ -1 +0,0 @@ -module github.com/mattn/go-shellwords diff --git a/vendor/github.com/mattn/go-shellwords/go.test.sh b/vendor/github.com/mattn/go-shellwords/go.test.sh deleted file mode 100644 index a7deaca..0000000 --- a/vendor/github.com/mattn/go-shellwords/go.test.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -set -e -echo "" > coverage.txt - -for d in $(go list ./... | grep -v vendor); do - go test -coverprofile=profile.out -covermode=atomic "$d" - if [ -f profile.out ]; then - cat profile.out >> coverage.txt - rm profile.out - fi -done diff --git a/vendor/github.com/mattn/go-shellwords/shellwords.go b/vendor/github.com/mattn/go-shellwords/shellwords.go deleted file mode 100644 index 2dca7f1..0000000 --- a/vendor/github.com/mattn/go-shellwords/shellwords.go +++ /dev/null @@ -1,193 +0,0 @@ -package shellwords - -import ( - "errors" - "os" - "regexp" - "strings" -) - -var ( - ParseEnv bool = false - ParseBacktick bool = false -) - -var envRe = regexp.MustCompile(`\$({[a-zA-Z0-9_]+}|[a-zA-Z0-9_]+)`) - -func isSpace(r rune) bool { - switch r { - case ' ', '\t', '\r', '\n': - return true - } - return false -} - -func replaceEnv(getenv func(string) string, s string) string { - if getenv == nil { - getenv = os.Getenv - } - - return envRe.ReplaceAllStringFunc(s, func(s string) string { - s = s[1:] - if s[0] == '{' { - s = s[1 : len(s)-1] - } - return getenv(s) - }) -} - -type Parser struct { - ParseEnv bool - ParseBacktick bool - Position int - Dir string - - // If ParseEnv is true, use this for getenv. - // If nil, use os.Getenv. - Getenv func(string) string -} - -func NewParser() *Parser { - return &Parser{ - ParseEnv: ParseEnv, - ParseBacktick: ParseBacktick, - Position: 0, - Dir: "", - } -} - -func (p *Parser) Parse(line string) ([]string, error) { - args := []string{} - buf := "" - var escaped, doubleQuoted, singleQuoted, backQuote, dollarQuote bool - backtick := "" - - pos := -1 - got := false - -loop: - for i, r := range line { - if escaped { - buf += string(r) - escaped = false - continue - } - - if r == '\\' { - if singleQuoted { - buf += string(r) - } else { - escaped = true - } - continue - } - - if isSpace(r) { - if singleQuoted || doubleQuoted || backQuote || dollarQuote { - buf += string(r) - backtick += string(r) - } else if got { - if p.ParseEnv { - buf = replaceEnv(p.Getenv, buf) - } - args = append(args, buf) - buf = "" - got = false - } - continue - } - - switch r { - case '`': - if !singleQuoted && !doubleQuoted && !dollarQuote { - if p.ParseBacktick { - if backQuote { - out, err := shellRun(backtick, p.Dir) - if err != nil { - return nil, err - } - buf = buf[:len(buf)-len(backtick)] + out - } - backtick = "" - backQuote = !backQuote - continue - } - backtick = "" - backQuote = !backQuote - } - case ')': - if !singleQuoted && !doubleQuoted && !backQuote { - if p.ParseBacktick { - if dollarQuote { - out, err := shellRun(backtick, p.Dir) - if err != nil { - return nil, err - } - buf = buf[:len(buf)-len(backtick)-2] + out - } - backtick = "" - dollarQuote = !dollarQuote - continue - } - backtick = "" - dollarQuote = !dollarQuote - } - case '(': - if !singleQuoted && !doubleQuoted && !backQuote { - if !dollarQuote && strings.HasSuffix(buf, "$") { - dollarQuote = true - buf += "(" - continue - } else { - return nil, errors.New("invalid command line string") - } - } - case '"': - if !singleQuoted && !dollarQuote { - doubleQuoted = !doubleQuoted - continue - } - case '\'': - if !doubleQuoted && !dollarQuote { - singleQuoted = !singleQuoted - continue - } - case ';', '&', '|', '<', '>': - if !(escaped || singleQuoted || doubleQuoted || backQuote || dollarQuote) { - if r == '>' && len(buf) > 0 { - if c := buf[0]; '0' <= c && c <= '9' { - i -= 1 - got = false - } - } - pos = i - break loop - } - } - - got = true - buf += string(r) - if backQuote || dollarQuote { - backtick += string(r) - } - } - - if got { - if p.ParseEnv { - buf = replaceEnv(p.Getenv, buf) - } - args = append(args, buf) - } - - if escaped || singleQuoted || doubleQuoted || backQuote || dollarQuote { - return nil, errors.New("invalid command line string") - } - - p.Position = pos - - return args, nil -} - -func Parse(line string) ([]string, error) { - return NewParser().Parse(line) -} diff --git a/vendor/github.com/mattn/go-shellwords/util_go15.go b/vendor/github.com/mattn/go-shellwords/util_go15.go deleted file mode 100644 index ddcbf22..0000000 --- a/vendor/github.com/mattn/go-shellwords/util_go15.go +++ /dev/null @@ -1,29 +0,0 @@ -// +build !go1.6 - -package shellwords - -import ( - "os" - "os/exec" - "runtime" - "strings" -) - -func shellRun(line, dir string) (string, error) { - var b []byte - var err error - var cmd *exec.Cmd - if runtime.GOOS == "windows" { - cmd = exec.Command(os.Getenv("COMSPEC"), "/c", line) - } else { - cmd = exec.Command(os.Getenv("SHELL"), "-c", line) - } - if dir != "" { - cmd.Dir = dir - } - b, err = cmd.Output() - if err != nil { - return "", err - } - return strings.TrimSpace(string(b)), nil -} diff --git a/vendor/github.com/mattn/go-shellwords/util_posix.go b/vendor/github.com/mattn/go-shellwords/util_posix.go deleted file mode 100644 index 3aef2c4..0000000 --- a/vendor/github.com/mattn/go-shellwords/util_posix.go +++ /dev/null @@ -1,26 +0,0 @@ -// +build !windows,go1.6 - -package shellwords - -import ( - "errors" - "os" - "os/exec" - "strings" -) - -func shellRun(line, dir string) (string, error) { - shell := os.Getenv("SHELL") - cmd := exec.Command(shell, "-c", line) - if dir != "" { - cmd.Dir = dir - } - b, err := cmd.Output() - if err != nil { - if eerr, ok := err.(*exec.ExitError); ok { - b = eerr.Stderr - } - return "", errors.New(err.Error() + ":" + string(b)) - } - return strings.TrimSpace(string(b)), nil -} diff --git a/vendor/github.com/mattn/go-shellwords/util_windows.go b/vendor/github.com/mattn/go-shellwords/util_windows.go deleted file mode 100644 index cda6850..0000000 --- a/vendor/github.com/mattn/go-shellwords/util_windows.go +++ /dev/null @@ -1,26 +0,0 @@ -// +build windows,go1.6 - -package shellwords - -import ( - "errors" - "os" - "os/exec" - "strings" -) - -func shellRun(line, dir string) (string, error) { - shell := os.Getenv("COMSPEC") - cmd := exec.Command(shell, "/c", line) - if dir != "" { - cmd.Dir = dir - } - b, err := cmd.Output() - if err != nil { - if eerr, ok := err.(*exec.ExitError); ok { - b = eerr.Stderr - } - return "", errors.New(err.Error() + ":" + string(b)) - } - return strings.TrimSpace(string(b)), nil -} diff --git a/vendor/github.com/mozillazg/go-unidecode/.gitignore b/vendor/github.com/mozillazg/go-unidecode/.gitignore deleted file mode 100644 index a4905a3..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/.gitignore +++ /dev/null @@ -1,27 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.test -*.prof -*~ -*.swp -*.py diff --git a/vendor/github.com/mozillazg/go-unidecode/.travis.yml b/vendor/github.com/mozillazg/go-unidecode/.travis.yml deleted file mode 100644 index 45e473b..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/.travis.yml +++ /dev/null @@ -1,27 +0,0 @@ -language: go -go: - - 1.7 - - 1.8 - - '1.9.x' - - '1.10.x' - - '1.11.x' - - '1.12.x' - - master - -sudo: false - -before_install: - - if ! go get code.google.com/p/go.tools/cmd/cover; then go get golang.org/x/tools/cmd/cover; fi - - go get github.com/axw/gocov/gocov - - go get github.com/mattn/goveralls - -install: - - go get . - - go get ./unidecode - -script: - - unidecode -V - - unidecode abc - - echo "abc" | unidecode - - echo "abc" > abc.txt && unidecode < abc.txt - - $HOME/gopath/bin/goveralls -service=travis-ci diff --git a/vendor/github.com/mozillazg/go-unidecode/CHANGELOG.md b/vendor/github.com/mozillazg/go-unidecode/CHANGELOG.md deleted file mode 100644 index 982b032..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/CHANGELOG.md +++ /dev/null @@ -1,10 +0,0 @@ -# Changelog - -## 0.1.1 (2019-04-05) - -* add go.mod file to identify as a module - - -## 0.1.0 (2016-07-10) - -* Initial Release diff --git a/vendor/github.com/mozillazg/go-unidecode/LICENSE b/vendor/github.com/mozillazg/go-unidecode/LICENSE deleted file mode 100644 index 80d4f8c..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 mozillazg - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/vendor/github.com/mozillazg/go-unidecode/Makefile b/vendor/github.com/mozillazg/go-unidecode/Makefile deleted file mode 100644 index 8c86885..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -help: - @echo "test run test" - @echo "lint run lint" - -.PHONY: test -test: - go test -v -cover - -.PHONY: lint -lint: - gofmt -s -w . table unidecode - golint . - golint table - go vet diff --git a/vendor/github.com/mozillazg/go-unidecode/README.md b/vendor/github.com/mozillazg/go-unidecode/README.md deleted file mode 100644 index 74fda70..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/README.md +++ /dev/null @@ -1,60 +0,0 @@ -go-unidecode -============== - -[![Build Status](https://travis-ci.org/mozillazg/go-unidecode.svg?branch=master)](https://travis-ci.org/mozillazg/go-unidecode) -[![Coverage Status](https://coveralls.io/repos/mozillazg/go-unidecode/badge.svg?branch=master)](https://coveralls.io/r/mozillazg/go-unidecode?branch=master) -[![Go Report Card](https://goreportcard.com/badge/github.com/mozillazg/go-unidecode)](https://goreportcard.com/report/github.com/mozillazg/go-unidecode) -[![GoDoc](https://godoc.org/github.com/mozillazg/go-unidecode?status.svg)](https://godoc.org/github.com/mozillazg/go-unidecode) - -ASCII transliterations of Unicode text. Inspired by [python-unidecode](https://github.com/avian2/unidecode). - - -Installation ------------- - -``` -go get -u github.com/mozillazg/go-unidecode -``` - -Install CLI tool: - -``` -$ go get -u github.com/mozillazg/go-unidecode/unidecode - -$ unidecode 北京kožušček -Bei Jing kozuscek -``` - - -Documentation --------------- - -API documentation can be found here: -https://godoc.org/github.com/mozillazg/go-unidecode - - -Usage ------- - -```go -package main - -import ( - "fmt" - "github.com/mozillazg/go-unidecode" -) - -func main() { - s := "abc" - fmt.Println(unidecode.Unidecode(s)) - // Output: abc - - s = "北京" - fmt.Println(unidecode.Unidecode(s)) - // Output: Bei Jing - - s = "kožušček" - fmt.Println(unidecode.Unidecode(s)) - // Output: kozuscek -} -``` diff --git a/vendor/github.com/mozillazg/go-unidecode/doc.go b/vendor/github.com/mozillazg/go-unidecode/doc.go deleted file mode 100644 index a74cfbb..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/doc.go +++ /dev/null @@ -1,6 +0,0 @@ -// Package unidecode provide ASCII transliterations of Unicode text -// -// s := "北京kožušček" -// fmt.Println(unidecode.Unidecode(s)) -// // Output: Bei Jing kozuscek -package unidecode diff --git a/vendor/github.com/mozillazg/go-unidecode/go.mod b/vendor/github.com/mozillazg/go-unidecode/go.mod deleted file mode 100644 index 43a7cdd..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/go.mod +++ /dev/null @@ -1 +0,0 @@ -module github.com/mozillazg/go-unidecode diff --git a/vendor/github.com/mozillazg/go-unidecode/table/table.go b/vendor/github.com/mozillazg/go-unidecode/table/table.go deleted file mode 100644 index f8e5758..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/table.go +++ /dev/null @@ -1,195 +0,0 @@ -package table - -// Tables is data map -var Tables = map[rune][]string{} - -func init() { - Tables[0x000] = x000 - Tables[0x001] = x001 - Tables[0x002] = x002 - Tables[0x003] = x003 - Tables[0x004] = x004 - Tables[0x005] = x005 - Tables[0x006] = x006 - Tables[0x007] = x007 - Tables[0x009] = x009 - Tables[0x00a] = x00a - Tables[0x00b] = x00b - Tables[0x00c] = x00c - Tables[0x00d] = x00d - Tables[0x00e] = x00e - Tables[0x00f] = x00f - Tables[0x010] = x010 - Tables[0x011] = x011 - Tables[0x012] = x012 - Tables[0x013] = x013 - Tables[0x014] = x014 - Tables[0x015] = x015 - Tables[0x016] = x016 - Tables[0x017] = x017 - Tables[0x018] = x018 - Tables[0x01d] = x01d - Tables[0x01e] = x01e - Tables[0x01f] = x01f - Tables[0x020] = x020 - Tables[0x021] = x021 - Tables[0x022] = x022 - Tables[0x023] = x023 - Tables[0x024] = x024 - Tables[0x025] = x025 - Tables[0x026] = x026 - Tables[0x027] = x027 - Tables[0x028] = x028 - Tables[0x029] = x029 - Tables[0x02a] = x02a - Tables[0x02c] = x02c - Tables[0x02e] = x02e - Tables[0x02f] = x02f - Tables[0x030] = x030 - Tables[0x031] = x031 - Tables[0x032] = x032 - Tables[0x033] = x033 - Tables[0x04d] = x04d - Tables[0x04e] = x04e - Tables[0x04f] = x04f - Tables[0x050] = x050 - Tables[0x051] = x051 - Tables[0x052] = x052 - Tables[0x053] = x053 - Tables[0x054] = x054 - Tables[0x055] = x055 - Tables[0x056] = x056 - Tables[0x057] = x057 - Tables[0x058] = x058 - Tables[0x059] = x059 - Tables[0x05a] = x05a - Tables[0x05b] = x05b - Tables[0x05c] = x05c - Tables[0x05d] = x05d - Tables[0x05e] = x05e - Tables[0x05f] = x05f - Tables[0x060] = x060 - Tables[0x061] = x061 - Tables[0x062] = x062 - Tables[0x063] = x063 - Tables[0x064] = x064 - Tables[0x065] = x065 - Tables[0x066] = x066 - Tables[0x067] = x067 - Tables[0x068] = x068 - Tables[0x069] = x069 - Tables[0x06a] = x06a - Tables[0x06b] = x06b - Tables[0x06c] = x06c - Tables[0x06d] = x06d - Tables[0x06e] = x06e - Tables[0x06f] = x06f - Tables[0x070] = x070 - Tables[0x071] = x071 - Tables[0x072] = x072 - Tables[0x073] = x073 - Tables[0x074] = x074 - Tables[0x075] = x075 - Tables[0x076] = x076 - Tables[0x077] = x077 - Tables[0x078] = x078 - Tables[0x079] = x079 - Tables[0x07a] = x07a - Tables[0x07b] = x07b - Tables[0x07c] = x07c - Tables[0x07d] = x07d - Tables[0x07e] = x07e - Tables[0x07f] = x07f - Tables[0x080] = x080 - Tables[0x081] = x081 - Tables[0x082] = x082 - Tables[0x083] = x083 - Tables[0x084] = x084 - Tables[0x085] = x085 - Tables[0x086] = x086 - Tables[0x087] = x087 - Tables[0x088] = x088 - Tables[0x089] = x089 - Tables[0x08a] = x08a - Tables[0x08b] = x08b - Tables[0x08c] = x08c - Tables[0x08d] = x08d - Tables[0x08e] = x08e - Tables[0x08f] = x08f - Tables[0x090] = x090 - Tables[0x091] = x091 - Tables[0x092] = x092 - Tables[0x093] = x093 - Tables[0x094] = x094 - Tables[0x095] = x095 - Tables[0x096] = x096 - Tables[0x097] = x097 - Tables[0x098] = x098 - Tables[0x099] = x099 - Tables[0x09a] = x09a - Tables[0x09b] = x09b - Tables[0x09c] = x09c - Tables[0x09d] = x09d - Tables[0x09e] = x09e - Tables[0x09f] = x09f - Tables[0x0a0] = x0a0 - Tables[0x0a1] = x0a1 - Tables[0x0a2] = x0a2 - Tables[0x0a3] = x0a3 - Tables[0x0a4] = x0a4 - Tables[0x0ac] = x0ac - Tables[0x0ad] = x0ad - Tables[0x0ae] = x0ae - Tables[0x0af] = x0af - Tables[0x0b0] = x0b0 - Tables[0x0b1] = x0b1 - Tables[0x0b2] = x0b2 - Tables[0x0b3] = x0b3 - Tables[0x0b4] = x0b4 - Tables[0x0b5] = x0b5 - Tables[0x0b6] = x0b6 - Tables[0x0b7] = x0b7 - Tables[0x0b8] = x0b8 - Tables[0x0b9] = x0b9 - Tables[0x0ba] = x0ba - Tables[0x0bb] = x0bb - Tables[0x0bc] = x0bc - Tables[0x0bd] = x0bd - Tables[0x0be] = x0be - Tables[0x0bf] = x0bf - Tables[0x0c0] = x0c0 - Tables[0x0c1] = x0c1 - Tables[0x0c2] = x0c2 - Tables[0x0c3] = x0c3 - Tables[0x0c4] = x0c4 - Tables[0x0c5] = x0c5 - Tables[0x0c6] = x0c6 - Tables[0x0c7] = x0c7 - Tables[0x0c8] = x0c8 - Tables[0x0c9] = x0c9 - Tables[0x0ca] = x0ca - Tables[0x0cb] = x0cb - Tables[0x0cc] = x0cc - Tables[0x0cd] = x0cd - Tables[0x0ce] = x0ce - Tables[0x0cf] = x0cf - Tables[0x0d0] = x0d0 - Tables[0x0d1] = x0d1 - Tables[0x0d2] = x0d2 - Tables[0x0d3] = x0d3 - Tables[0x0d4] = x0d4 - Tables[0x0d5] = x0d5 - Tables[0x0d6] = x0d6 - Tables[0x0d7] = x0d7 - Tables[0x0f9] = x0f9 - Tables[0x0fa] = x0fa - Tables[0x0fb] = x0fb - Tables[0x0fc] = x0fc - Tables[0x0fd] = x0fd - Tables[0x0fe] = x0fe - Tables[0x0ff] = x0ff - Tables[0x1d4] = x1d4 - Tables[0x1d5] = x1d5 - Tables[0x1d6] = x1d6 - Tables[0x1d7] = x1d7 -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x000.go b/vendor/github.com/mozillazg/go-unidecode/table/x000.go deleted file mode 100644 index 6e12eb8..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x000.go +++ /dev/null @@ -1,150 +0,0 @@ -package table - -var x000 = []string{ - // Code points u+007f and below are equivalent to ASCII and are handled by a - // special case in the code. Hence they are not present in this table. - "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", - "", // 0x80 - "", // 0x81 - "", // 0x82 - "", // 0x83 - "", // 0x84 - "", // 0x85 - "", // 0x86 - "", // 0x87 - "", // 0x88 - "", // 0x89 - "", // 0x8a - "", // 0x8b - "", // 0x8c - "", // 0x8d - "", // 0x8e - "", // 0x8f - "", // 0x90 - "", // 0x91 - "", // 0x92 - "", // 0x93 - "", // 0x94 - "", // 0x95 - "", // 0x96 - "", // 0x97 - "", // 0x98 - "", // 0x99 - "", // 0x9a - "", // 0x9b - "", // 0x9c - "", // 0x9d - "", // 0x9e - "", // 0x9f - " ", // 0xa0 - "!", // 0xa1 - "C/", // 0xa2 - // Not \"GBP\" - Pound Sign is used for more than just British Pounds. - "PS", // 0xa3 - "$?", // 0xa4 - "Y=", // 0xa5 - "|", // 0xa6 - "SS", // 0xa7 - "\"", // 0xa8 - "(c)", // 0xa9 - "a", // 0xaa - "<<", // 0xab - "!", // 0xac - "", // 0xad - "(r)", // 0xae - "-", // 0xaf - "deg", // 0xb0 - "+-", // 0xb1 - // These might be combined with other superscript digits (u+2070 - u+2079) - "2", // 0xb2 - "3", // 0xb3 - "'", // 0xb4 - "u", // 0xb5 - "P", // 0xb6 - "*", // 0xb7 - ",", // 0xb8 - "1", // 0xb9 - "o", // 0xba - ">>", // 0xbb - "1/4", // 0xbc - "1/2", // 0xbd - "3/4", // 0xbe - "?", // 0xbf - "A", // 0xc0 - "A", // 0xc1 - "A", // 0xc2 - "A", // 0xc3 - // Not \"AE\" - used in languages other than German - "A", // 0xc4 - "A", // 0xc5 - "AE", // 0xc6 - "C", // 0xc7 - "E", // 0xc8 - "E", // 0xc9 - "E", // 0xca - "E", // 0xcb - "I", // 0xcc - "I", // 0xcd - "I", // 0xce - "I", // 0xcf - "D", // 0xd0 - "N", // 0xd1 - "O", // 0xd2 - "O", // 0xd3 - "O", // 0xd4 - "O", // 0xd5 - // Not \"OE\" - used in languages other than German - "O", // 0xd6 - "x", // 0xd7 - "O", // 0xd8 - "U", // 0xd9 - "U", // 0xda - "U", // 0xdb - // Not \"UE\" - used in languages other than German - "U", // 0xdc - "Y", // 0xdd - "Th", // 0xde - "ss", // 0xdf - "a", // 0xe0 - "a", // 0xe1 - "a", // 0xe2 - "a", // 0xe3 - // Not \"ae\" - used in languages other than German - "a", // 0xe4 - "a", // 0xe5 - "ae", // 0xe6 - "c", // 0xe7 - "e", // 0xe8 - "e", // 0xe9 - "e", // 0xea - "e", // 0xeb - "i", // 0xec - "i", // 0xed - "i", // 0xee - "i", // 0xef - "d", // 0xf0 - "n", // 0xf1 - "o", // 0xf2 - "o", // 0xf3 - "o", // 0xf4 - "o", // 0xf5 - // Not \"oe\" - used in languages other than German - "o", // 0xf6 - "/", // 0xf7 - "o", // 0xf8 - "u", // 0xf9 - "u", // 0xfa - "u", // 0xfb - // Not \"ue\" - used in languages other than German - "u", // 0xfc - "y", // 0xfd - "th", // 0xfe - "y", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x001.go b/vendor/github.com/mozillazg/go-unidecode/table/x001.go deleted file mode 100644 index ed36766..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x001.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x001 = []string{ - "A", // 0x00 - "a", // 0x01 - "A", // 0x02 - "a", // 0x03 - "A", // 0x04 - "a", // 0x05 - "C", // 0x06 - "c", // 0x07 - "C", // 0x08 - "c", // 0x09 - "C", // 0x0a - "c", // 0x0b - "C", // 0x0c - "c", // 0x0d - "D", // 0x0e - "d", // 0x0f - "D", // 0x10 - "d", // 0x11 - "E", // 0x12 - "e", // 0x13 - "E", // 0x14 - "e", // 0x15 - "E", // 0x16 - "e", // 0x17 - "E", // 0x18 - "e", // 0x19 - "E", // 0x1a - "e", // 0x1b - "G", // 0x1c - "g", // 0x1d - "G", // 0x1e - "g", // 0x1f - "G", // 0x20 - "g", // 0x21 - "G", // 0x22 - "g", // 0x23 - "H", // 0x24 - "h", // 0x25 - "H", // 0x26 - "h", // 0x27 - "I", // 0x28 - "i", // 0x29 - "I", // 0x2a - "i", // 0x2b - "I", // 0x2c - "i", // 0x2d - "I", // 0x2e - "i", // 0x2f - "I", // 0x30 - "i", // 0x31 - "IJ", // 0x32 - "ij", // 0x33 - "J", // 0x34 - "j", // 0x35 - "K", // 0x36 - "k", // 0x37 - "k", // 0x38 - "L", // 0x39 - "l", // 0x3a - "L", // 0x3b - "l", // 0x3c - "L", // 0x3d - "l", // 0x3e - "L", // 0x3f - "l", // 0x40 - "L", // 0x41 - "l", // 0x42 - "N", // 0x43 - "n", // 0x44 - "N", // 0x45 - "n", // 0x46 - "N", // 0x47 - "n", // 0x48 - "'n", // 0x49 - "ng", // 0x4a - "NG", // 0x4b - "O", // 0x4c - "o", // 0x4d - "O", // 0x4e - "o", // 0x4f - "O", // 0x50 - "o", // 0x51 - "OE", // 0x52 - "oe", // 0x53 - "R", // 0x54 - "r", // 0x55 - "R", // 0x56 - "r", // 0x57 - "R", // 0x58 - "r", // 0x59 - "S", // 0x5a - "s", // 0x5b - "S", // 0x5c - "s", // 0x5d - "S", // 0x5e - "s", // 0x5f - "S", // 0x60 - "s", // 0x61 - "T", // 0x62 - "t", // 0x63 - "T", // 0x64 - "t", // 0x65 - "T", // 0x66 - "t", // 0x67 - "U", // 0x68 - "u", // 0x69 - "U", // 0x6a - "u", // 0x6b - "U", // 0x6c - "u", // 0x6d - "U", // 0x6e - "u", // 0x6f - "U", // 0x70 - "u", // 0x71 - "U", // 0x72 - "u", // 0x73 - "W", // 0x74 - "w", // 0x75 - "Y", // 0x76 - "y", // 0x77 - "Y", // 0x78 - "Z", // 0x79 - "z", // 0x7a - "Z", // 0x7b - "z", // 0x7c - "Z", // 0x7d - "z", // 0x7e - "s", // 0x7f - "b", // 0x80 - "B", // 0x81 - "B", // 0x82 - "b", // 0x83 - "6", // 0x84 - "6", // 0x85 - "O", // 0x86 - "C", // 0x87 - "c", // 0x88 - "D", // 0x89 - "D", // 0x8a - "D", // 0x8b - "d", // 0x8c - "d", // 0x8d - "3", // 0x8e - "@", // 0x8f - "E", // 0x90 - "F", // 0x91 - "f", // 0x92 - "G", // 0x93 - "G", // 0x94 - "hv", // 0x95 - "I", // 0x96 - "I", // 0x97 - "K", // 0x98 - "k", // 0x99 - "l", // 0x9a - "l", // 0x9b - "W", // 0x9c - "N", // 0x9d - "n", // 0x9e - "O", // 0x9f - "O", // 0xa0 - "o", // 0xa1 - "OI", // 0xa2 - "oi", // 0xa3 - "P", // 0xa4 - "p", // 0xa5 - "YR", // 0xa6 - "2", // 0xa7 - "2", // 0xa8 - "SH", // 0xa9 - "sh", // 0xaa - "t", // 0xab - "T", // 0xac - "t", // 0xad - "T", // 0xae - "U", // 0xaf - "u", // 0xb0 - "Y", // 0xb1 - "V", // 0xb2 - "Y", // 0xb3 - "y", // 0xb4 - "Z", // 0xb5 - "z", // 0xb6 - "ZH", // 0xb7 - "ZH", // 0xb8 - "zh", // 0xb9 - "zh", // 0xba - "2", // 0xbb - "5", // 0xbc - "5", // 0xbd - "ts", // 0xbe - "w", // 0xbf - "|", // 0xc0 - "||", // 0xc1 - "|=", // 0xc2 - "!", // 0xc3 - "DZ", // 0xc4 - "Dz", // 0xc5 - "dz", // 0xc6 - "LJ", // 0xc7 - "Lj", // 0xc8 - "lj", // 0xc9 - "NJ", // 0xca - "Nj", // 0xcb - "nj", // 0xcc - "A", // 0xcd - "a", // 0xce - "I", // 0xcf - "i", // 0xd0 - "O", // 0xd1 - "o", // 0xd2 - "U", // 0xd3 - "u", // 0xd4 - "U", // 0xd5 - "u", // 0xd6 - "U", // 0xd7 - "u", // 0xd8 - "U", // 0xd9 - "u", // 0xda - "U", // 0xdb - "u", // 0xdc - "@", // 0xdd - "A", // 0xde - "a", // 0xdf - "A", // 0xe0 - "a", // 0xe1 - "AE", // 0xe2 - "ae", // 0xe3 - "G", // 0xe4 - "g", // 0xe5 - "G", // 0xe6 - "g", // 0xe7 - "K", // 0xe8 - "k", // 0xe9 - "O", // 0xea - "o", // 0xeb - "O", // 0xec - "o", // 0xed - "ZH", // 0xee - "zh", // 0xef - "j", // 0xf0 - "DZ", // 0xf1 - "Dz", // 0xf2 - "dz", // 0xf3 - "G", // 0xf4 - "g", // 0xf5 - "HV", // 0xf6 - "W", // 0xf7 - "N", // 0xf8 - "n", // 0xf9 - "A", // 0xfa - "a", // 0xfb - "AE", // 0xfc - "ae", // 0xfd - "O", // 0xfe - "o", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x002.go b/vendor/github.com/mozillazg/go-unidecode/table/x002.go deleted file mode 100644 index 62965f7..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x002.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x002 = []string{ - "A", // 0x00 - "a", // 0x01 - "A", // 0x02 - "a", // 0x03 - "E", // 0x04 - "e", // 0x05 - "E", // 0x06 - "e", // 0x07 - "I", // 0x08 - "i", // 0x09 - "I", // 0x0a - "i", // 0x0b - "O", // 0x0c - "o", // 0x0d - "O", // 0x0e - "o", // 0x0f - "R", // 0x10 - "r", // 0x11 - "R", // 0x12 - "r", // 0x13 - "U", // 0x14 - "u", // 0x15 - "U", // 0x16 - "u", // 0x17 - "S", // 0x18 - "s", // 0x19 - "T", // 0x1a - "t", // 0x1b - "Y", // 0x1c - "y", // 0x1d - "H", // 0x1e - "h", // 0x1f - "N", // 0x20 - "d", // 0x21 - "OU", // 0x22 - "ou", // 0x23 - "Z", // 0x24 - "z", // 0x25 - "A", // 0x26 - "a", // 0x27 - "E", // 0x28 - "e", // 0x29 - "O", // 0x2a - "o", // 0x2b - "O", // 0x2c - "o", // 0x2d - "O", // 0x2e - "o", // 0x2f - "O", // 0x30 - "o", // 0x31 - "Y", // 0x32 - "y", // 0x33 - "l", // 0x34 - "n", // 0x35 - "t", // 0x36 - "j", // 0x37 - "db", // 0x38 - "qp", // 0x39 - "A", // 0x3a - "C", // 0x3b - "c", // 0x3c - "L", // 0x3d - "T", // 0x3e - "s", // 0x3f - "z", // 0x40 - "[?]", // 0x41 - "[?]", // 0x42 - "B", // 0x43 - "U", // 0x44 - "^", // 0x45 - "E", // 0x46 - "e", // 0x47 - "J", // 0x48 - "j", // 0x49 - "q", // 0x4a - "q", // 0x4b - "R", // 0x4c - "r", // 0x4d - "Y", // 0x4e - "y", // 0x4f - "a", // 0x50 - "a", // 0x51 - "a", // 0x52 - "b", // 0x53 - "o", // 0x54 - "c", // 0x55 - "d", // 0x56 - "d", // 0x57 - "e", // 0x58 - "@", // 0x59 - "@", // 0x5a - "e", // 0x5b - "e", // 0x5c - "e", // 0x5d - "e", // 0x5e - "j", // 0x5f - "g", // 0x60 - "g", // 0x61 - "g", // 0x62 - "g", // 0x63 - "u", // 0x64 - "Y", // 0x65 - "h", // 0x66 - "h", // 0x67 - "i", // 0x68 - "i", // 0x69 - "I", // 0x6a - "l", // 0x6b - "l", // 0x6c - "l", // 0x6d - "lZ", // 0x6e - "W", // 0x6f - "W", // 0x70 - "m", // 0x71 - "n", // 0x72 - "n", // 0x73 - "n", // 0x74 - "o", // 0x75 - "OE", // 0x76 - "O", // 0x77 - "F", // 0x78 - "r", // 0x79 - "r", // 0x7a - "r", // 0x7b - "r", // 0x7c - "r", // 0x7d - "r", // 0x7e - "r", // 0x7f - "R", // 0x80 - "R", // 0x81 - "s", // 0x82 - "S", // 0x83 - "j", // 0x84 - "S", // 0x85 - "S", // 0x86 - "t", // 0x87 - "t", // 0x88 - "u", // 0x89 - "U", // 0x8a - "v", // 0x8b - "^", // 0x8c - "w", // 0x8d - "y", // 0x8e - "Y", // 0x8f - "z", // 0x90 - "z", // 0x91 - "Z", // 0x92 - "Z", // 0x93 - "?", // 0x94 - "?", // 0x95 - "?", // 0x96 - "C", // 0x97 - "@", // 0x98 - "B", // 0x99 - "E", // 0x9a - "G", // 0x9b - "H", // 0x9c - "j", // 0x9d - "k", // 0x9e - "L", // 0x9f - "q", // 0xa0 - "?", // 0xa1 - "?", // 0xa2 - "dz", // 0xa3 - "dZ", // 0xa4 - "dz", // 0xa5 - "ts", // 0xa6 - "tS", // 0xa7 - "tC", // 0xa8 - "fN", // 0xa9 - "ls", // 0xaa - "lz", // 0xab - "WW", // 0xac - "]]", // 0xad - "h", // 0xae - "h", // 0xaf - "k", // 0xb0 - "h", // 0xb1 - "j", // 0xb2 - "r", // 0xb3 - "r", // 0xb4 - "r", // 0xb5 - "r", // 0xb6 - "w", // 0xb7 - "y", // 0xb8 - "'", // 0xb9 - "\"", // 0xba - "`", // 0xbb - "'", // 0xbc - "`", // 0xbd - "`", // 0xbe - "'", // 0xbf - "?", // 0xc0 - "?", // 0xc1 - "<", // 0xc2 - ">", // 0xc3 - "^", // 0xc4 - "V", // 0xc5 - "^", // 0xc6 - "V", // 0xc7 - "'", // 0xc8 - "-", // 0xc9 - "/", // 0xca - "\\", // 0xcb - ",", // 0xcc - "_", // 0xcd - "\\", // 0xce - "/", // 0xcf - ":", // 0xd0 - ".", // 0xd1 - "`", // 0xd2 - "'", // 0xd3 - "^", // 0xd4 - "V", // 0xd5 - "+", // 0xd6 - "-", // 0xd7 - "V", // 0xd8 - ".", // 0xd9 - "@", // 0xda - ",", // 0xdb - "~", // 0xdc - "\"", // 0xdd - "R", // 0xde - "X", // 0xdf - "G", // 0xe0 - "l", // 0xe1 - "s", // 0xe2 - "x", // 0xe3 - "?", // 0xe4 - "", // 0xe5 - "", // 0xe6 - "", // 0xe7 - "", // 0xe8 - "", // 0xe9 - "", // 0xea - "", // 0xeb - "V", // 0xec - "=", // 0xed - "\"", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x003.go b/vendor/github.com/mozillazg/go-unidecode/table/x003.go deleted file mode 100644 index c3e7fb0..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x003.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x003 = []string{ - "", // 0x00 - "", // 0x01 - "", // 0x02 - "", // 0x03 - "", // 0x04 - "", // 0x05 - "", // 0x06 - "", // 0x07 - "", // 0x08 - "", // 0x09 - "", // 0x0a - "", // 0x0b - "", // 0x0c - "", // 0x0d - "", // 0x0e - "", // 0x0f - "", // 0x10 - "", // 0x11 - "", // 0x12 - "", // 0x13 - "", // 0x14 - "", // 0x15 - "", // 0x16 - "", // 0x17 - "", // 0x18 - "", // 0x19 - "", // 0x1a - "", // 0x1b - "", // 0x1c - "", // 0x1d - "", // 0x1e - "", // 0x1f - "", // 0x20 - "", // 0x21 - "", // 0x22 - "", // 0x23 - "", // 0x24 - "", // 0x25 - "", // 0x26 - "", // 0x27 - "", // 0x28 - "", // 0x29 - "", // 0x2a - "", // 0x2b - "", // 0x2c - "", // 0x2d - "", // 0x2e - "", // 0x2f - "", // 0x30 - "", // 0x31 - "", // 0x32 - "", // 0x33 - "", // 0x34 - "", // 0x35 - "", // 0x36 - "", // 0x37 - "", // 0x38 - "", // 0x39 - "", // 0x3a - "", // 0x3b - "", // 0x3c - "", // 0x3d - "", // 0x3e - "", // 0x3f - "", // 0x40 - "", // 0x41 - "", // 0x42 - "", // 0x43 - "", // 0x44 - "", // 0x45 - "", // 0x46 - "", // 0x47 - "", // 0x48 - "", // 0x49 - "", // 0x4a - "", // 0x4b - "", // 0x4c - "", // 0x4d - "", // 0x4e - "[?]", // 0x4f - "[?]", // 0x50 - "[?]", // 0x51 - "[?]", // 0x52 - "[?]", // 0x53 - "[?]", // 0x54 - "[?]", // 0x55 - "[?]", // 0x56 - "[?]", // 0x57 - "[?]", // 0x58 - "[?]", // 0x59 - "[?]", // 0x5a - "[?]", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "", // 0x60 - "", // 0x61 - "", // 0x62 - "a", // 0x63 - "e", // 0x64 - "i", // 0x65 - "o", // 0x66 - "u", // 0x67 - "c", // 0x68 - "d", // 0x69 - "h", // 0x6a - "m", // 0x6b - "r", // 0x6c - "t", // 0x6d - "v", // 0x6e - "x", // 0x6f - "[?]", // 0x70 - "[?]", // 0x71 - "[?]", // 0x72 - "[?]", // 0x73 - "'", // 0x74 - ",", // 0x75 - "[?]", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "?", // 0x7e - "[?]", // 0x7f - "[?]", // 0x80 - "[?]", // 0x81 - "[?]", // 0x82 - "[?]", // 0x83 - "", // 0x84 - "", // 0x85 - "A", // 0x86 - ";", // 0x87 - "E", // 0x88 - "E", // 0x89 - "I", // 0x8a - "[?]", // 0x8b - "O", // 0x8c - "[?]", // 0x8d - "U", // 0x8e - "O", // 0x8f - "I", // 0x90 - "A", // 0x91 - "B", // 0x92 - "G", // 0x93 - "D", // 0x94 - "E", // 0x95 - "Z", // 0x96 - "E", // 0x97 - "Th", // 0x98 - "I", // 0x99 - "K", // 0x9a - "L", // 0x9b - "M", // 0x9c - "N", // 0x9d - "Ks", // 0x9e - "O", // 0x9f - "P", // 0xa0 - "R", // 0xa1 - "[?]", // 0xa2 - "S", // 0xa3 - "T", // 0xa4 - "U", // 0xa5 - "Ph", // 0xa6 - "Kh", // 0xa7 - "Ps", // 0xa8 - "O", // 0xa9 - "I", // 0xaa - "U", // 0xab - "a", // 0xac - "e", // 0xad - "e", // 0xae - "i", // 0xaf - "u", // 0xb0 - "a", // 0xb1 - "b", // 0xb2 - "g", // 0xb3 - "d", // 0xb4 - "e", // 0xb5 - "z", // 0xb6 - "e", // 0xb7 - "th", // 0xb8 - "i", // 0xb9 - "k", // 0xba - "l", // 0xbb - "m", // 0xbc - "n", // 0xbd - "x", // 0xbe - "o", // 0xbf - "p", // 0xc0 - "r", // 0xc1 - "s", // 0xc2 - "s", // 0xc3 - "t", // 0xc4 - "u", // 0xc5 - "ph", // 0xc6 - "kh", // 0xc7 - "ps", // 0xc8 - "o", // 0xc9 - "i", // 0xca - "u", // 0xcb - "o", // 0xcc - "u", // 0xcd - "o", // 0xce - "[?]", // 0xcf - "b", // 0xd0 - "th", // 0xd1 - "U", // 0xd2 - "U", // 0xd3 - "U", // 0xd4 - "ph", // 0xd5 - "p", // 0xd6 - "&", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "St", // 0xda - "st", // 0xdb - "W", // 0xdc - "w", // 0xdd - "Q", // 0xde - "q", // 0xdf - "Sp", // 0xe0 - "sp", // 0xe1 - "Sh", // 0xe2 - "sh", // 0xe3 - "F", // 0xe4 - "f", // 0xe5 - "Kh", // 0xe6 - "kh", // 0xe7 - "H", // 0xe8 - "h", // 0xe9 - "G", // 0xea - "g", // 0xeb - "CH", // 0xec - "ch", // 0xed - "Ti", // 0xee - "ti", // 0xef - "k", // 0xf0 - "r", // 0xf1 - "c", // 0xf2 - "j", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x004.go b/vendor/github.com/mozillazg/go-unidecode/table/x004.go deleted file mode 100644 index 973c9ba..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x004.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x004 = []string{ - "Ie", // 0x00 - "Io", // 0x01 - "Dj", // 0x02 - "Gj", // 0x03 - "Ie", // 0x04 - "Dz", // 0x05 - "I", // 0x06 - "Yi", // 0x07 - "J", // 0x08 - "Lj", // 0x09 - "Nj", // 0x0a - "Tsh", // 0x0b - "Kj", // 0x0c - "I", // 0x0d - "U", // 0x0e - "Dzh", // 0x0f - "A", // 0x10 - "B", // 0x11 - "V", // 0x12 - "G", // 0x13 - "D", // 0x14 - "E", // 0x15 - "Zh", // 0x16 - "Z", // 0x17 - "I", // 0x18 - "I", // 0x19 - "K", // 0x1a - "L", // 0x1b - "M", // 0x1c - "N", // 0x1d - "O", // 0x1e - "P", // 0x1f - "R", // 0x20 - "S", // 0x21 - "T", // 0x22 - "U", // 0x23 - "F", // 0x24 - "Kh", // 0x25 - "Ts", // 0x26 - "Ch", // 0x27 - "Sh", // 0x28 - "Shch", // 0x29 - "'", // 0x2a - "Y", // 0x2b - "'", // 0x2c - "E", // 0x2d - "Iu", // 0x2e - "Ia", // 0x2f - "a", // 0x30 - "b", // 0x31 - "v", // 0x32 - "g", // 0x33 - "d", // 0x34 - "e", // 0x35 - "zh", // 0x36 - "z", // 0x37 - "i", // 0x38 - "i", // 0x39 - "k", // 0x3a - "l", // 0x3b - "m", // 0x3c - "n", // 0x3d - "o", // 0x3e - "p", // 0x3f - "r", // 0x40 - "s", // 0x41 - "t", // 0x42 - "u", // 0x43 - "f", // 0x44 - "kh", // 0x45 - "ts", // 0x46 - "ch", // 0x47 - "sh", // 0x48 - "shch", // 0x49 - "'", // 0x4a - "y", // 0x4b - "'", // 0x4c - "e", // 0x4d - "iu", // 0x4e - "ia", // 0x4f - "ie", // 0x50 - "io", // 0x51 - "dj", // 0x52 - "gj", // 0x53 - "ie", // 0x54 - "dz", // 0x55 - "i", // 0x56 - "yi", // 0x57 - "j", // 0x58 - "lj", // 0x59 - "nj", // 0x5a - "tsh", // 0x5b - "kj", // 0x5c - "i", // 0x5d - "u", // 0x5e - "dzh", // 0x5f - "O", // 0x60 - "o", // 0x61 - "E", // 0x62 - "e", // 0x63 - "Ie", // 0x64 - "ie", // 0x65 - "E", // 0x66 - "e", // 0x67 - "Ie", // 0x68 - "ie", // 0x69 - "O", // 0x6a - "o", // 0x6b - "Io", // 0x6c - "io", // 0x6d - "Ks", // 0x6e - "ks", // 0x6f - "Ps", // 0x70 - "ps", // 0x71 - "F", // 0x72 - "f", // 0x73 - "Y", // 0x74 - "y", // 0x75 - "Y", // 0x76 - "y", // 0x77 - "u", // 0x78 - "u", // 0x79 - "O", // 0x7a - "o", // 0x7b - "O", // 0x7c - "o", // 0x7d - "Ot", // 0x7e - "ot", // 0x7f - "Q", // 0x80 - "q", // 0x81 - "*1000*", // 0x82 - "", // 0x83 - "", // 0x84 - "", // 0x85 - "", // 0x86 - "[?]", // 0x87 - "*100.000*", // 0x88 - "*1.000.000*", // 0x89 - "[?]", // 0x8a - "[?]", // 0x8b - "\"", // 0x8c - "\"", // 0x8d - "R'", // 0x8e - "r'", // 0x8f - "G'", // 0x90 - "g'", // 0x91 - "G'", // 0x92 - "g'", // 0x93 - "G'", // 0x94 - "g'", // 0x95 - "Zh'", // 0x96 - "zh'", // 0x97 - "Z'", // 0x98 - "z'", // 0x99 - "K'", // 0x9a - "k'", // 0x9b - "K'", // 0x9c - "k'", // 0x9d - "K'", // 0x9e - "k'", // 0x9f - "K'", // 0xa0 - "k'", // 0xa1 - "N'", // 0xa2 - "n'", // 0xa3 - "Ng", // 0xa4 - "ng", // 0xa5 - "P'", // 0xa6 - "p'", // 0xa7 - "Kh", // 0xa8 - "kh", // 0xa9 - "S'", // 0xaa - "s'", // 0xab - "T'", // 0xac - "t'", // 0xad - "U", // 0xae - "u", // 0xaf - "U'", // 0xb0 - "u'", // 0xb1 - "Kh'", // 0xb2 - "kh'", // 0xb3 - "Tts", // 0xb4 - "tts", // 0xb5 - "Ch'", // 0xb6 - "ch'", // 0xb7 - "Ch'", // 0xb8 - "ch'", // 0xb9 - "H", // 0xba - "h", // 0xbb - "Ch", // 0xbc - "ch", // 0xbd - "Ch'", // 0xbe - "ch'", // 0xbf - "`", // 0xc0 - "Zh", // 0xc1 - "zh", // 0xc2 - "K'", // 0xc3 - "k'", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "N'", // 0xc7 - "n'", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "Ch", // 0xcb - "ch", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "a", // 0xd0 - "a", // 0xd1 - "A", // 0xd2 - "a", // 0xd3 - "Ae", // 0xd4 - "ae", // 0xd5 - "Ie", // 0xd6 - "ie", // 0xd7 - "@", // 0xd8 - "@", // 0xd9 - "@", // 0xda - "@", // 0xdb - "Zh", // 0xdc - "zh", // 0xdd - "Z", // 0xde - "z", // 0xdf - "Dz", // 0xe0 - "dz", // 0xe1 - "I", // 0xe2 - "i", // 0xe3 - "I", // 0xe4 - "i", // 0xe5 - "O", // 0xe6 - "o", // 0xe7 - "O", // 0xe8 - "o", // 0xe9 - "O", // 0xea - "o", // 0xeb - "E", // 0xec - "e", // 0xed - "U", // 0xee - "u", // 0xef - "U", // 0xf0 - "u", // 0xf1 - "U", // 0xf2 - "u", // 0xf3 - "Ch", // 0xf4 - "ch", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "Y", // 0xf8 - "y", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x005.go b/vendor/github.com/mozillazg/go-unidecode/table/x005.go deleted file mode 100644 index d53c0f5..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x005.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x005 = []string{ - "[?]", // 0x00 - "[?]", // 0x01 - "[?]", // 0x02 - "[?]", // 0x03 - "[?]", // 0x04 - "[?]", // 0x05 - "[?]", // 0x06 - "[?]", // 0x07 - "[?]", // 0x08 - "[?]", // 0x09 - "[?]", // 0x0a - "[?]", // 0x0b - "[?]", // 0x0c - "[?]", // 0x0d - "[?]", // 0x0e - "[?]", // 0x0f - "[?]", // 0x10 - "[?]", // 0x11 - "[?]", // 0x12 - "[?]", // 0x13 - "[?]", // 0x14 - "[?]", // 0x15 - "[?]", // 0x16 - "[?]", // 0x17 - "[?]", // 0x18 - "[?]", // 0x19 - "[?]", // 0x1a - "[?]", // 0x1b - "[?]", // 0x1c - "[?]", // 0x1d - "[?]", // 0x1e - "[?]", // 0x1f - "[?]", // 0x20 - "[?]", // 0x21 - "[?]", // 0x22 - "[?]", // 0x23 - "[?]", // 0x24 - "[?]", // 0x25 - "[?]", // 0x26 - "[?]", // 0x27 - "[?]", // 0x28 - "[?]", // 0x29 - "[?]", // 0x2a - "[?]", // 0x2b - "[?]", // 0x2c - "[?]", // 0x2d - "[?]", // 0x2e - "[?]", // 0x2f - "[?]", // 0x30 - "A", // 0x31 - "B", // 0x32 - "G", // 0x33 - "D", // 0x34 - "E", // 0x35 - "Z", // 0x36 - "E", // 0x37 - "E", // 0x38 - "T`", // 0x39 - "Zh", // 0x3a - "I", // 0x3b - "L", // 0x3c - "Kh", // 0x3d - "Ts", // 0x3e - "K", // 0x3f - "H", // 0x40 - "Dz", // 0x41 - "Gh", // 0x42 - "Ch", // 0x43 - "M", // 0x44 - "Y", // 0x45 - "N", // 0x46 - "Sh", // 0x47 - "O", // 0x48 - "Ch`", // 0x49 - "P", // 0x4a - "J", // 0x4b - "Rh", // 0x4c - "S", // 0x4d - "V", // 0x4e - "T", // 0x4f - "R", // 0x50 - "Ts`", // 0x51 - "W", // 0x52 - "P`", // 0x53 - "K`", // 0x54 - "O", // 0x55 - "F", // 0x56 - "[?]", // 0x57 - "[?]", // 0x58 - "<", // 0x59 - "'", // 0x5a - "/", // 0x5b - "!", // 0x5c - ",", // 0x5d - "?", // 0x5e - ".", // 0x5f - "[?]", // 0x60 - "a", // 0x61 - "b", // 0x62 - "g", // 0x63 - "d", // 0x64 - "e", // 0x65 - "z", // 0x66 - "e", // 0x67 - "e", // 0x68 - "t`", // 0x69 - "zh", // 0x6a - "i", // 0x6b - "l", // 0x6c - "kh", // 0x6d - "ts", // 0x6e - "k", // 0x6f - "h", // 0x70 - "dz", // 0x71 - "gh", // 0x72 - "ch", // 0x73 - "m", // 0x74 - "y", // 0x75 - "n", // 0x76 - "sh", // 0x77 - "o", // 0x78 - "ch`", // 0x79 - "p", // 0x7a - "j", // 0x7b - "rh", // 0x7c - "s", // 0x7d - "v", // 0x7e - "t", // 0x7f - "r", // 0x80 - "ts`", // 0x81 - "w", // 0x82 - "p`", // 0x83 - "k`", // 0x84 - "o", // 0x85 - "f", // 0x86 - "ew", // 0x87 - "[?]", // 0x88 - ":", // 0x89 - "-", // 0x8a - "[?]", // 0x8b - "[?]", // 0x8c - "[?]", // 0x8d - "[?]", // 0x8e - "[?]", // 0x8f - "[?]", // 0x90 - "", // 0x91 - "", // 0x92 - "", // 0x93 - "", // 0x94 - "", // 0x95 - "", // 0x96 - "", // 0x97 - "", // 0x98 - "", // 0x99 - "", // 0x9a - "", // 0x9b - "", // 0x9c - "", // 0x9d - "", // 0x9e - "", // 0x9f - "", // 0xa0 - "", // 0xa1 - "[?]", // 0xa2 - "", // 0xa3 - "", // 0xa4 - "", // 0xa5 - "", // 0xa6 - "", // 0xa7 - "", // 0xa8 - "", // 0xa9 - "", // 0xaa - "", // 0xab - "", // 0xac - "", // 0xad - "", // 0xae - "", // 0xaf - "@", // 0xb0 - "e", // 0xb1 - "a", // 0xb2 - "o", // 0xb3 - "i", // 0xb4 - "e", // 0xb5 - "e", // 0xb6 - "a", // 0xb7 - "a", // 0xb8 - "o", // 0xb9 - "[?]", // 0xba - "u", // 0xbb - "'", // 0xbc - "", // 0xbd - "", // 0xbe - "", // 0xbf - "|", // 0xc0 - "", // 0xc1 - "", // 0xc2 - ":", // 0xc3 - "", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "", // 0xd0 - "b", // 0xd1 - "g", // 0xd2 - "d", // 0xd3 - "h", // 0xd4 - "v", // 0xd5 - "z", // 0xd6 - "kh", // 0xd7 - "t", // 0xd8 - "y", // 0xd9 - "k", // 0xda - "k", // 0xdb - "l", // 0xdc - "m", // 0xdd - "m", // 0xde - "n", // 0xdf - "n", // 0xe0 - "s", // 0xe1 - "`", // 0xe2 - "p", // 0xe3 - "p", // 0xe4 - "ts", // 0xe5 - "ts", // 0xe6 - "q", // 0xe7 - "r", // 0xe8 - "sh", // 0xe9 - "t", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "V", // 0xf0 - "oy", // 0xf1 - "i", // 0xf2 - "'", // 0xf3 - "\"", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x006.go b/vendor/github.com/mozillazg/go-unidecode/table/x006.go deleted file mode 100644 index 1c1932a..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x006.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x006 = []string{ - "[?]", // 0x00 - "[?]", // 0x01 - "[?]", // 0x02 - "[?]", // 0x03 - "[?]", // 0x04 - "[?]", // 0x05 - "[?]", // 0x06 - "[?]", // 0x07 - "[?]", // 0x08 - "[?]", // 0x09 - "[?]", // 0x0a - "[?]", // 0x0b - ",", // 0x0c - "[?]", // 0x0d - "[?]", // 0x0e - "[?]", // 0x0f - "[?]", // 0x10 - "[?]", // 0x11 - "[?]", // 0x12 - "[?]", // 0x13 - "[?]", // 0x14 - "[?]", // 0x15 - "[?]", // 0x16 - "[?]", // 0x17 - "[?]", // 0x18 - "[?]", // 0x19 - "[?]", // 0x1a - ";", // 0x1b - "[?]", // 0x1c - "[?]", // 0x1d - "[?]", // 0x1e - "?", // 0x1f - "[?]", // 0x20 - "", // 0x21 - "a", // 0x22 - "'", // 0x23 - "w'", // 0x24 - "", // 0x25 - "y'", // 0x26 - "", // 0x27 - "b", // 0x28 - "@", // 0x29 - "t", // 0x2a - "th", // 0x2b - "j", // 0x2c - "H", // 0x2d - "kh", // 0x2e - "d", // 0x2f - "dh", // 0x30 - "r", // 0x31 - "z", // 0x32 - "s", // 0x33 - "sh", // 0x34 - "S", // 0x35 - "D", // 0x36 - "T", // 0x37 - "Z", // 0x38 - "`", // 0x39 - "G", // 0x3a - "[?]", // 0x3b - "[?]", // 0x3c - "[?]", // 0x3d - "[?]", // 0x3e - "[?]", // 0x3f - "", // 0x40 - "f", // 0x41 - "q", // 0x42 - "k", // 0x43 - "l", // 0x44 - "m", // 0x45 - "n", // 0x46 - "h", // 0x47 - "w", // 0x48 - "~", // 0x49 - "y", // 0x4a - "an", // 0x4b - "un", // 0x4c - "in", // 0x4d - "a", // 0x4e - "u", // 0x4f - "i", // 0x50 - "W", // 0x51 - "", // 0x52 - "", // 0x53 - "'", // 0x54 - "'", // 0x55 - "[?]", // 0x56 - "[?]", // 0x57 - "[?]", // 0x58 - "[?]", // 0x59 - "[?]", // 0x5a - "[?]", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "0", // 0x60 - "1", // 0x61 - "2", // 0x62 - "3", // 0x63 - "4", // 0x64 - "5", // 0x65 - "6", // 0x66 - "7", // 0x67 - "8", // 0x68 - "9", // 0x69 - "%", // 0x6a - ".", // 0x6b - ",", // 0x6c - "*", // 0x6d - "[?]", // 0x6e - "[?]", // 0x6f - "", // 0x70 - "'", // 0x71 - "'", // 0x72 - "'", // 0x73 - "", // 0x74 - "'", // 0x75 - "'w", // 0x76 - "'u", // 0x77 - "'y", // 0x78 - "tt", // 0x79 - "tth", // 0x7a - "b", // 0x7b - "t", // 0x7c - "T", // 0x7d - "p", // 0x7e - "th", // 0x7f - "bh", // 0x80 - "'h", // 0x81 - "H", // 0x82 - "ny", // 0x83 - "dy", // 0x84 - "H", // 0x85 - "ch", // 0x86 - "cch", // 0x87 - "dd", // 0x88 - "D", // 0x89 - "D", // 0x8a - "Dt", // 0x8b - "dh", // 0x8c - "ddh", // 0x8d - "d", // 0x8e - "D", // 0x8f - "D", // 0x90 - "rr", // 0x91 - "R", // 0x92 - "R", // 0x93 - "R", // 0x94 - "R", // 0x95 - "R", // 0x96 - "R", // 0x97 - "j", // 0x98 - "R", // 0x99 - "S", // 0x9a - "S", // 0x9b - "S", // 0x9c - "S", // 0x9d - "S", // 0x9e - "T", // 0x9f - "GH", // 0xa0 - "F", // 0xa1 - "F", // 0xa2 - "F", // 0xa3 - "v", // 0xa4 - "f", // 0xa5 - "ph", // 0xa6 - "Q", // 0xa7 - "Q", // 0xa8 - "kh", // 0xa9 - "k", // 0xaa - "K", // 0xab - "K", // 0xac - "ng", // 0xad - "K", // 0xae - "g", // 0xaf - "G", // 0xb0 - "N", // 0xb1 - "G", // 0xb2 - "G", // 0xb3 - "G", // 0xb4 - "L", // 0xb5 - "L", // 0xb6 - "L", // 0xb7 - "L", // 0xb8 - "N", // 0xb9 - "N", // 0xba - "N", // 0xbb - "N", // 0xbc - "N", // 0xbd - "h", // 0xbe - "Ch", // 0xbf - "hy", // 0xc0 - "h", // 0xc1 - "H", // 0xc2 - "@", // 0xc3 - "W", // 0xc4 - "oe", // 0xc5 - "oe", // 0xc6 - "u", // 0xc7 - "yu", // 0xc8 - "yu", // 0xc9 - "W", // 0xca - "v", // 0xcb - "y", // 0xcc - "Y", // 0xcd - "Y", // 0xce - "W", // 0xcf - "", // 0xd0 - "", // 0xd1 - "y", // 0xd2 - "y'", // 0xd3 - ".", // 0xd4 - "ae", // 0xd5 - "", // 0xd6 - "", // 0xd7 - "", // 0xd8 - "", // 0xd9 - "", // 0xda - "", // 0xdb - "", // 0xdc - "@", // 0xdd - "#", // 0xde - "", // 0xdf - "", // 0xe0 - "", // 0xe1 - "", // 0xe2 - "", // 0xe3 - "", // 0xe4 - "", // 0xe5 - "", // 0xe6 - "", // 0xe7 - "", // 0xe8 - "^", // 0xe9 - "", // 0xea - "", // 0xeb - "", // 0xec - "", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "0", // 0xf0 - "1", // 0xf1 - "2", // 0xf2 - "3", // 0xf3 - "4", // 0xf4 - "5", // 0xf5 - "6", // 0xf6 - "7", // 0xf7 - "8", // 0xf8 - "9", // 0xf9 - "Sh", // 0xfa - "D", // 0xfb - "Gh", // 0xfc - "&", // 0xfd - "+m", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x007.go b/vendor/github.com/mozillazg/go-unidecode/table/x007.go deleted file mode 100644 index 6e2f625..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x007.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x007 = []string{ - "//", // 0x00 - "/", // 0x01 - ",", // 0x02 - "!", // 0x03 - "!", // 0x04 - "-", // 0x05 - ",", // 0x06 - ",", // 0x07 - ";", // 0x08 - "?", // 0x09 - "~", // 0x0a - "{", // 0x0b - "}", // 0x0c - "*", // 0x0d - "[?]", // 0x0e - "", // 0x0f - "'", // 0x10 - "", // 0x11 - "b", // 0x12 - "g", // 0x13 - "g", // 0x14 - "d", // 0x15 - "d", // 0x16 - "h", // 0x17 - "w", // 0x18 - "z", // 0x19 - "H", // 0x1a - "t", // 0x1b - "t", // 0x1c - "y", // 0x1d - "yh", // 0x1e - "k", // 0x1f - "l", // 0x20 - "m", // 0x21 - "n", // 0x22 - "s", // 0x23 - "s", // 0x24 - "`", // 0x25 - "p", // 0x26 - "p", // 0x27 - "S", // 0x28 - "q", // 0x29 - "r", // 0x2a - "sh", // 0x2b - "t", // 0x2c - "[?]", // 0x2d - "[?]", // 0x2e - "[?]", // 0x2f - "a", // 0x30 - "a", // 0x31 - "a", // 0x32 - "A", // 0x33 - "A", // 0x34 - "A", // 0x35 - "e", // 0x36 - "e", // 0x37 - "e", // 0x38 - "E", // 0x39 - "i", // 0x3a - "i", // 0x3b - "u", // 0x3c - "u", // 0x3d - "u", // 0x3e - "o", // 0x3f - "", // 0x40 - "`", // 0x41 - "'", // 0x42 - "", // 0x43 - "", // 0x44 - "X", // 0x45 - "Q", // 0x46 - "@", // 0x47 - "@", // 0x48 - "|", // 0x49 - "+", // 0x4a - "[?]", // 0x4b - "[?]", // 0x4c - "[?]", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "[?]", // 0x50 - "[?]", // 0x51 - "[?]", // 0x52 - "[?]", // 0x53 - "[?]", // 0x54 - "[?]", // 0x55 - "[?]", // 0x56 - "[?]", // 0x57 - "[?]", // 0x58 - "[?]", // 0x59 - "[?]", // 0x5a - "[?]", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "[?]", // 0x60 - "[?]", // 0x61 - "[?]", // 0x62 - "[?]", // 0x63 - "[?]", // 0x64 - "[?]", // 0x65 - "[?]", // 0x66 - "[?]", // 0x67 - "[?]", // 0x68 - "[?]", // 0x69 - "[?]", // 0x6a - "[?]", // 0x6b - "[?]", // 0x6c - "[?]", // 0x6d - "[?]", // 0x6e - "[?]", // 0x6f - "[?]", // 0x70 - "[?]", // 0x71 - "[?]", // 0x72 - "[?]", // 0x73 - "[?]", // 0x74 - "[?]", // 0x75 - "[?]", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "h", // 0x80 - "sh", // 0x81 - "n", // 0x82 - "r", // 0x83 - "b", // 0x84 - "L", // 0x85 - "k", // 0x86 - "'", // 0x87 - "v", // 0x88 - "m", // 0x89 - "f", // 0x8a - "dh", // 0x8b - "th", // 0x8c - "l", // 0x8d - "g", // 0x8e - "ny", // 0x8f - "s", // 0x90 - "d", // 0x91 - "z", // 0x92 - "t", // 0x93 - "y", // 0x94 - "p", // 0x95 - "j", // 0x96 - "ch", // 0x97 - "tt", // 0x98 - "hh", // 0x99 - "kh", // 0x9a - "th", // 0x9b - "z", // 0x9c - "sh", // 0x9d - "s", // 0x9e - "d", // 0x9f - "t", // 0xa0 - "z", // 0xa1 - "`", // 0xa2 - "gh", // 0xa3 - "q", // 0xa4 - "w", // 0xa5 - "a", // 0xa6 - "aa", // 0xa7 - "i", // 0xa8 - "ee", // 0xa9 - "u", // 0xaa - "oo", // 0xab - "e", // 0xac - "ey", // 0xad - "o", // 0xae - "oa", // 0xaf - "", // 0xb0 - "[?]", // 0xb1 - "[?]", // 0xb2 - "[?]", // 0xb3 - "[?]", // 0xb4 - "[?]", // 0xb5 - "[?]", // 0xb6 - "[?]", // 0xb7 - "[?]", // 0xb8 - "[?]", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "[?]", // 0xbc - "[?]", // 0xbd - "[?]", // 0xbe - "[?]", // 0xbf - "[?]", // 0xc0 - "[?]", // 0xc1 - "[?]", // 0xc2 - "[?]", // 0xc3 - "[?]", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x009.go b/vendor/github.com/mozillazg/go-unidecode/table/x009.go deleted file mode 100644 index e7f916f..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x009.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x009 = []string{ - "[?]", // 0x00 - "N", // 0x01 - "N", // 0x02 - "H", // 0x03 - "[?]", // 0x04 - "a", // 0x05 - "aa", // 0x06 - "i", // 0x07 - "ii", // 0x08 - "u", // 0x09 - "uu", // 0x0a - "R", // 0x0b - "L", // 0x0c - "eN", // 0x0d - "e", // 0x0e - "e", // 0x0f - "ai", // 0x10 - "oN", // 0x11 - "o", // 0x12 - "o", // 0x13 - "au", // 0x14 - "k", // 0x15 - "kh", // 0x16 - "g", // 0x17 - "gh", // 0x18 - "ng", // 0x19 - "c", // 0x1a - "ch", // 0x1b - "j", // 0x1c - "jh", // 0x1d - "ny", // 0x1e - "tt", // 0x1f - "tth", // 0x20 - "dd", // 0x21 - "ddh", // 0x22 - "nn", // 0x23 - "t", // 0x24 - "th", // 0x25 - "d", // 0x26 - "dh", // 0x27 - "n", // 0x28 - "nnn", // 0x29 - "p", // 0x2a - "ph", // 0x2b - "b", // 0x2c - "bh", // 0x2d - "m", // 0x2e - "y", // 0x2f - "r", // 0x30 - "rr", // 0x31 - "l", // 0x32 - "l", // 0x33 - "lll", // 0x34 - "v", // 0x35 - "sh", // 0x36 - "ss", // 0x37 - "s", // 0x38 - "h", // 0x39 - "[?]", // 0x3a - "[?]", // 0x3b - "'", // 0x3c - "'", // 0x3d - "aa", // 0x3e - "i", // 0x3f - "ii", // 0x40 - "u", // 0x41 - "uu", // 0x42 - "R", // 0x43 - "RR", // 0x44 - "eN", // 0x45 - "e", // 0x46 - "e", // 0x47 - "ai", // 0x48 - "oN", // 0x49 - "o", // 0x4a - "o", // 0x4b - "au", // 0x4c - "", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "AUM", // 0x50 - "'", // 0x51 - "'", // 0x52 - "`", // 0x53 - "'", // 0x54 - "[?]", // 0x55 - "[?]", // 0x56 - "[?]", // 0x57 - "q", // 0x58 - "khh", // 0x59 - "ghh", // 0x5a - "z", // 0x5b - "dddh", // 0x5c - "rh", // 0x5d - "f", // 0x5e - "yy", // 0x5f - "RR", // 0x60 - "LL", // 0x61 - "L", // 0x62 - "LL", // 0x63 - " / ", // 0x64 - " // ", // 0x65 - "0", // 0x66 - "1", // 0x67 - "2", // 0x68 - "3", // 0x69 - "4", // 0x6a - "5", // 0x6b - "6", // 0x6c - "7", // 0x6d - "8", // 0x6e - "9", // 0x6f - ".", // 0x70 - "[?]", // 0x71 - "[?]", // 0x72 - "[?]", // 0x73 - "[?]", // 0x74 - "[?]", // 0x75 - "[?]", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "[?]", // 0x80 - "N", // 0x81 - "N", // 0x82 - "H", // 0x83 - "[?]", // 0x84 - "a", // 0x85 - "aa", // 0x86 - "i", // 0x87 - "ii", // 0x88 - "u", // 0x89 - "uu", // 0x8a - "R", // 0x8b - "RR", // 0x8c - "[?]", // 0x8d - "[?]", // 0x8e - "e", // 0x8f - "ai", // 0x90 - "[?]", // 0x91 - "[?]", // 0x92 - "o", // 0x93 - "au", // 0x94 - "k", // 0x95 - "kh", // 0x96 - "g", // 0x97 - "gh", // 0x98 - "ng", // 0x99 - "c", // 0x9a - "ch", // 0x9b - "j", // 0x9c - "jh", // 0x9d - "ny", // 0x9e - "tt", // 0x9f - "tth", // 0xa0 - "dd", // 0xa1 - "ddh", // 0xa2 - "nn", // 0xa3 - "t", // 0xa4 - "th", // 0xa5 - "d", // 0xa6 - "dh", // 0xa7 - "n", // 0xa8 - "[?]", // 0xa9 - "p", // 0xaa - "ph", // 0xab - "b", // 0xac - "bh", // 0xad - "m", // 0xae - "y", // 0xaf - "r", // 0xb0 - "[?]", // 0xb1 - "l", // 0xb2 - "[?]", // 0xb3 - "[?]", // 0xb4 - "[?]", // 0xb5 - "sh", // 0xb6 - "ss", // 0xb7 - "s", // 0xb8 - "h", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "'", // 0xbc - "[?]", // 0xbd - "aa", // 0xbe - "i", // 0xbf - "ii", // 0xc0 - "u", // 0xc1 - "uu", // 0xc2 - "R", // 0xc3 - "RR", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "e", // 0xc7 - "ai", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "o", // 0xcb - "au", // 0xcc - "", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "+", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "rr", // 0xdc - "rh", // 0xdd - "[?]", // 0xde - "yy", // 0xdf - "RR", // 0xe0 - "LL", // 0xe1 - "L", // 0xe2 - "LL", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "0", // 0xe6 - "1", // 0xe7 - "2", // 0xe8 - "3", // 0xe9 - "4", // 0xea - "5", // 0xeb - "6", // 0xec - "7", // 0xed - "8", // 0xee - "9", // 0xef - "r'", // 0xf0 - "r`", // 0xf1 - "Rs", // 0xf2 - "Rs", // 0xf3 - "1/", // 0xf4 - "2/", // 0xf5 - "3/", // 0xf6 - "4/", // 0xf7 - " 1 - 1/", // 0xf8 - "/16", // 0xf9 - "", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x00a.go b/vendor/github.com/mozillazg/go-unidecode/table/x00a.go deleted file mode 100644 index 07365b4..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x00a.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x00a = []string{ - "[?]", // 0x00 - "[?]", // 0x01 - "N", // 0x02 - "[?]", // 0x03 - "[?]", // 0x04 - "a", // 0x05 - "aa", // 0x06 - "i", // 0x07 - "ii", // 0x08 - "u", // 0x09 - "uu", // 0x0a - "[?]", // 0x0b - "[?]", // 0x0c - "[?]", // 0x0d - "[?]", // 0x0e - "ee", // 0x0f - "ai", // 0x10 - "[?]", // 0x11 - "[?]", // 0x12 - "oo", // 0x13 - "au", // 0x14 - "k", // 0x15 - "kh", // 0x16 - "g", // 0x17 - "gh", // 0x18 - "ng", // 0x19 - "c", // 0x1a - "ch", // 0x1b - "j", // 0x1c - "jh", // 0x1d - "ny", // 0x1e - "tt", // 0x1f - "tth", // 0x20 - "dd", // 0x21 - "ddh", // 0x22 - "nn", // 0x23 - "t", // 0x24 - "th", // 0x25 - "d", // 0x26 - "dh", // 0x27 - "n", // 0x28 - "[?]", // 0x29 - "p", // 0x2a - "ph", // 0x2b - "b", // 0x2c - "bb", // 0x2d - "m", // 0x2e - "y", // 0x2f - "r", // 0x30 - "[?]", // 0x31 - "l", // 0x32 - "ll", // 0x33 - "[?]", // 0x34 - "v", // 0x35 - "sh", // 0x36 - "[?]", // 0x37 - "s", // 0x38 - "h", // 0x39 - "[?]", // 0x3a - "[?]", // 0x3b - "'", // 0x3c - "[?]", // 0x3d - "aa", // 0x3e - "i", // 0x3f - "ii", // 0x40 - "u", // 0x41 - "uu", // 0x42 - "[?]", // 0x43 - "[?]", // 0x44 - "[?]", // 0x45 - "[?]", // 0x46 - "ee", // 0x47 - "ai", // 0x48 - "[?]", // 0x49 - "[?]", // 0x4a - "oo", // 0x4b - "au", // 0x4c - "", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "[?]", // 0x50 - "[?]", // 0x51 - "[?]", // 0x52 - "[?]", // 0x53 - "[?]", // 0x54 - "[?]", // 0x55 - "[?]", // 0x56 - "[?]", // 0x57 - "[?]", // 0x58 - "khh", // 0x59 - "ghh", // 0x5a - "z", // 0x5b - "rr", // 0x5c - "[?]", // 0x5d - "f", // 0x5e - "[?]", // 0x5f - "[?]", // 0x60 - "[?]", // 0x61 - "[?]", // 0x62 - "[?]", // 0x63 - "[?]", // 0x64 - "[?]", // 0x65 - "0", // 0x66 - "1", // 0x67 - "2", // 0x68 - "3", // 0x69 - "4", // 0x6a - "5", // 0x6b - "6", // 0x6c - "7", // 0x6d - "8", // 0x6e - "9", // 0x6f - "N", // 0x70 - "H", // 0x71 - "", // 0x72 - "", // 0x73 - "G.E.O.", // 0x74 - "[?]", // 0x75 - "[?]", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "[?]", // 0x80 - "N", // 0x81 - "N", // 0x82 - "H", // 0x83 - "[?]", // 0x84 - "a", // 0x85 - "aa", // 0x86 - "i", // 0x87 - "ii", // 0x88 - "u", // 0x89 - "uu", // 0x8a - "R", // 0x8b - "[?]", // 0x8c - "eN", // 0x8d - "[?]", // 0x8e - "e", // 0x8f - "ai", // 0x90 - "oN", // 0x91 - "[?]", // 0x92 - "o", // 0x93 - "au", // 0x94 - "k", // 0x95 - "kh", // 0x96 - "g", // 0x97 - "gh", // 0x98 - "ng", // 0x99 - "c", // 0x9a - "ch", // 0x9b - "j", // 0x9c - "jh", // 0x9d - "ny", // 0x9e - "tt", // 0x9f - "tth", // 0xa0 - "dd", // 0xa1 - "ddh", // 0xa2 - "nn", // 0xa3 - "t", // 0xa4 - "th", // 0xa5 - "d", // 0xa6 - "dh", // 0xa7 - "n", // 0xa8 - "[?]", // 0xa9 - "p", // 0xaa - "ph", // 0xab - "b", // 0xac - "bh", // 0xad - "m", // 0xae - "ya", // 0xaf - "r", // 0xb0 - "[?]", // 0xb1 - "l", // 0xb2 - "ll", // 0xb3 - "[?]", // 0xb4 - "v", // 0xb5 - "sh", // 0xb6 - "ss", // 0xb7 - "s", // 0xb8 - "h", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "'", // 0xbc - "'", // 0xbd - "aa", // 0xbe - "i", // 0xbf - "ii", // 0xc0 - "u", // 0xc1 - "uu", // 0xc2 - "R", // 0xc3 - "RR", // 0xc4 - "eN", // 0xc5 - "[?]", // 0xc6 - "e", // 0xc7 - "ai", // 0xc8 - "oN", // 0xc9 - "[?]", // 0xca - "o", // 0xcb - "au", // 0xcc - "", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "AUM", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "RR", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "0", // 0xe6 - "1", // 0xe7 - "2", // 0xe8 - "3", // 0xe9 - "4", // 0xea - "5", // 0xeb - "6", // 0xec - "7", // 0xed - "8", // 0xee - "9", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x00b.go b/vendor/github.com/mozillazg/go-unidecode/table/x00b.go deleted file mode 100644 index 31e17b5..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x00b.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x00b = []string{ - "[?]", // 0x00 - "N", // 0x01 - "N", // 0x02 - "H", // 0x03 - "[?]", // 0x04 - "a", // 0x05 - "aa", // 0x06 - "i", // 0x07 - "ii", // 0x08 - "u", // 0x09 - "uu", // 0x0a - "R", // 0x0b - "L", // 0x0c - "[?]", // 0x0d - "[?]", // 0x0e - "e", // 0x0f - "ai", // 0x10 - "[?]", // 0x11 - "[?]", // 0x12 - "o", // 0x13 - "au", // 0x14 - "k", // 0x15 - "kh", // 0x16 - "g", // 0x17 - "gh", // 0x18 - "ng", // 0x19 - "c", // 0x1a - "ch", // 0x1b - "j", // 0x1c - "jh", // 0x1d - "ny", // 0x1e - "tt", // 0x1f - "tth", // 0x20 - "dd", // 0x21 - "ddh", // 0x22 - "nn", // 0x23 - "t", // 0x24 - "th", // 0x25 - "d", // 0x26 - "dh", // 0x27 - "n", // 0x28 - "[?]", // 0x29 - "p", // 0x2a - "ph", // 0x2b - "b", // 0x2c - "bh", // 0x2d - "m", // 0x2e - "y", // 0x2f - "r", // 0x30 - "[?]", // 0x31 - "l", // 0x32 - "ll", // 0x33 - "[?]", // 0x34 - "", // 0x35 - "sh", // 0x36 - "ss", // 0x37 - "s", // 0x38 - "h", // 0x39 - "[?]", // 0x3a - "[?]", // 0x3b - "'", // 0x3c - "'", // 0x3d - "aa", // 0x3e - "i", // 0x3f - "ii", // 0x40 - "u", // 0x41 - "uu", // 0x42 - "R", // 0x43 - "[?]", // 0x44 - "[?]", // 0x45 - "[?]", // 0x46 - "e", // 0x47 - "ai", // 0x48 - "[?]", // 0x49 - "[?]", // 0x4a - "o", // 0x4b - "au", // 0x4c - "", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "[?]", // 0x50 - "[?]", // 0x51 - "[?]", // 0x52 - "[?]", // 0x53 - "[?]", // 0x54 - "[?]", // 0x55 - "+", // 0x56 - "+", // 0x57 - "[?]", // 0x58 - "[?]", // 0x59 - "[?]", // 0x5a - "[?]", // 0x5b - "rr", // 0x5c - "rh", // 0x5d - "[?]", // 0x5e - "yy", // 0x5f - "RR", // 0x60 - "LL", // 0x61 - "[?]", // 0x62 - "[?]", // 0x63 - "[?]", // 0x64 - "[?]", // 0x65 - "0", // 0x66 - "1", // 0x67 - "2", // 0x68 - "3", // 0x69 - "4", // 0x6a - "5", // 0x6b - "6", // 0x6c - "7", // 0x6d - "8", // 0x6e - "9", // 0x6f - "", // 0x70 - "[?]", // 0x71 - "[?]", // 0x72 - "[?]", // 0x73 - "[?]", // 0x74 - "[?]", // 0x75 - "[?]", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "[?]", // 0x80 - "[?]", // 0x81 - "N", // 0x82 - "H", // 0x83 - "[?]", // 0x84 - "a", // 0x85 - "aa", // 0x86 - "i", // 0x87 - "ii", // 0x88 - "u", // 0x89 - "uu", // 0x8a - "[?]", // 0x8b - "[?]", // 0x8c - "[?]", // 0x8d - "e", // 0x8e - "ee", // 0x8f - "ai", // 0x90 - "[?]", // 0x91 - "o", // 0x92 - "oo", // 0x93 - "au", // 0x94 - "k", // 0x95 - "[?]", // 0x96 - "[?]", // 0x97 - "[?]", // 0x98 - "ng", // 0x99 - "c", // 0x9a - "[?]", // 0x9b - "j", // 0x9c - "[?]", // 0x9d - "ny", // 0x9e - "tt", // 0x9f - "[?]", // 0xa0 - "[?]", // 0xa1 - "[?]", // 0xa2 - "nn", // 0xa3 - "t", // 0xa4 - "[?]", // 0xa5 - "[?]", // 0xa6 - "[?]", // 0xa7 - "n", // 0xa8 - "nnn", // 0xa9 - "p", // 0xaa - "[?]", // 0xab - "[?]", // 0xac - "[?]", // 0xad - "m", // 0xae - "y", // 0xaf - "r", // 0xb0 - "rr", // 0xb1 - "l", // 0xb2 - "ll", // 0xb3 - "lll", // 0xb4 - "v", // 0xb5 - "[?]", // 0xb6 - "ss", // 0xb7 - "s", // 0xb8 - "h", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "[?]", // 0xbc - "[?]", // 0xbd - "aa", // 0xbe - "i", // 0xbf - "ii", // 0xc0 - "u", // 0xc1 - "uu", // 0xc2 - "[?]", // 0xc3 - "[?]", // 0xc4 - "[?]", // 0xc5 - "e", // 0xc6 - "ee", // 0xc7 - "ai", // 0xc8 - "[?]", // 0xc9 - "o", // 0xca - "oo", // 0xcb - "au", // 0xcc - "", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "+", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "0", // 0xe6 - "1", // 0xe7 - "2", // 0xe8 - "3", // 0xe9 - "4", // 0xea - "5", // 0xeb - "6", // 0xec - "7", // 0xed - "8", // 0xee - "9", // 0xef - "+10+", // 0xf0 - "+100+", // 0xf1 - "+1000+", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x00c.go b/vendor/github.com/mozillazg/go-unidecode/table/x00c.go deleted file mode 100644 index 409da33..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x00c.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x00c = []string{ - "[?]", // 0x00 - "N", // 0x01 - "N", // 0x02 - "H", // 0x03 - "[?]", // 0x04 - "a", // 0x05 - "aa", // 0x06 - "i", // 0x07 - "ii", // 0x08 - "u", // 0x09 - "uu", // 0x0a - "R", // 0x0b - "L", // 0x0c - "[?]", // 0x0d - "e", // 0x0e - "ee", // 0x0f - "ai", // 0x10 - "[?]", // 0x11 - "o", // 0x12 - "oo", // 0x13 - "au", // 0x14 - "k", // 0x15 - "kh", // 0x16 - "g", // 0x17 - "gh", // 0x18 - "ng", // 0x19 - "c", // 0x1a - "ch", // 0x1b - "j", // 0x1c - "jh", // 0x1d - "ny", // 0x1e - "tt", // 0x1f - "tth", // 0x20 - "dd", // 0x21 - "ddh", // 0x22 - "nn", // 0x23 - "t", // 0x24 - "th", // 0x25 - "d", // 0x26 - "dh", // 0x27 - "n", // 0x28 - "[?]", // 0x29 - "p", // 0x2a - "ph", // 0x2b - "b", // 0x2c - "bh", // 0x2d - "m", // 0x2e - "y", // 0x2f - "r", // 0x30 - "rr", // 0x31 - "l", // 0x32 - "ll", // 0x33 - "[?]", // 0x34 - "v", // 0x35 - "sh", // 0x36 - "ss", // 0x37 - "s", // 0x38 - "h", // 0x39 - "[?]", // 0x3a - "[?]", // 0x3b - "[?]", // 0x3c - "[?]", // 0x3d - "aa", // 0x3e - "i", // 0x3f - "ii", // 0x40 - "u", // 0x41 - "uu", // 0x42 - "R", // 0x43 - "RR", // 0x44 - "[?]", // 0x45 - "e", // 0x46 - "ee", // 0x47 - "ai", // 0x48 - "[?]", // 0x49 - "o", // 0x4a - "oo", // 0x4b - "au", // 0x4c - "", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "[?]", // 0x50 - "[?]", // 0x51 - "[?]", // 0x52 - "[?]", // 0x53 - "[?]", // 0x54 - "+", // 0x55 - "+", // 0x56 - "[?]", // 0x57 - "[?]", // 0x58 - "[?]", // 0x59 - "[?]", // 0x5a - "[?]", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "RR", // 0x60 - "LL", // 0x61 - "[?]", // 0x62 - "[?]", // 0x63 - "[?]", // 0x64 - "[?]", // 0x65 - "0", // 0x66 - "1", // 0x67 - "2", // 0x68 - "3", // 0x69 - "4", // 0x6a - "5", // 0x6b - "6", // 0x6c - "7", // 0x6d - "8", // 0x6e - "9", // 0x6f - "[?]", // 0x70 - "[?]", // 0x71 - "[?]", // 0x72 - "[?]", // 0x73 - "[?]", // 0x74 - "[?]", // 0x75 - "[?]", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "[?]", // 0x80 - "[?]", // 0x81 - "N", // 0x82 - "H", // 0x83 - "[?]", // 0x84 - "a", // 0x85 - "aa", // 0x86 - "i", // 0x87 - "ii", // 0x88 - "u", // 0x89 - "uu", // 0x8a - "R", // 0x8b - "L", // 0x8c - "[?]", // 0x8d - "e", // 0x8e - "ee", // 0x8f - "ai", // 0x90 - "[?]", // 0x91 - "o", // 0x92 - "oo", // 0x93 - "au", // 0x94 - "k", // 0x95 - "kh", // 0x96 - "g", // 0x97 - "gh", // 0x98 - "ng", // 0x99 - "c", // 0x9a - "ch", // 0x9b - "j", // 0x9c - "jh", // 0x9d - "ny", // 0x9e - "tt", // 0x9f - "tth", // 0xa0 - "dd", // 0xa1 - "ddh", // 0xa2 - "nn", // 0xa3 - "t", // 0xa4 - "th", // 0xa5 - "d", // 0xa6 - "dh", // 0xa7 - "n", // 0xa8 - "[?]", // 0xa9 - "p", // 0xaa - "ph", // 0xab - "b", // 0xac - "bh", // 0xad - "m", // 0xae - "y", // 0xaf - "r", // 0xb0 - "rr", // 0xb1 - "l", // 0xb2 - "ll", // 0xb3 - "[?]", // 0xb4 - "v", // 0xb5 - "sh", // 0xb6 - "ss", // 0xb7 - "s", // 0xb8 - "h", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "[?]", // 0xbc - "[?]", // 0xbd - "aa", // 0xbe - "i", // 0xbf - "ii", // 0xc0 - "u", // 0xc1 - "uu", // 0xc2 - "R", // 0xc3 - "RR", // 0xc4 - "[?]", // 0xc5 - "e", // 0xc6 - "ee", // 0xc7 - "ai", // 0xc8 - "[?]", // 0xc9 - "o", // 0xca - "oo", // 0xcb - "au", // 0xcc - "", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "+", // 0xd5 - "+", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "lll", // 0xde - "[?]", // 0xdf - "RR", // 0xe0 - "LL", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "0", // 0xe6 - "1", // 0xe7 - "2", // 0xe8 - "3", // 0xe9 - "4", // 0xea - "5", // 0xeb - "6", // 0xec - "7", // 0xed - "8", // 0xee - "9", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x00d.go b/vendor/github.com/mozillazg/go-unidecode/table/x00d.go deleted file mode 100644 index 7716f9a..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x00d.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x00d = []string{ - "[?]", // 0x00 - "[?]", // 0x01 - "N", // 0x02 - "H", // 0x03 - "[?]", // 0x04 - "a", // 0x05 - "aa", // 0x06 - "i", // 0x07 - "ii", // 0x08 - "u", // 0x09 - "uu", // 0x0a - "R", // 0x0b - "L", // 0x0c - "[?]", // 0x0d - "e", // 0x0e - "ee", // 0x0f - "ai", // 0x10 - "[?]", // 0x11 - "o", // 0x12 - "oo", // 0x13 - "au", // 0x14 - "k", // 0x15 - "kh", // 0x16 - "g", // 0x17 - "gh", // 0x18 - "ng", // 0x19 - "c", // 0x1a - "ch", // 0x1b - "j", // 0x1c - "jh", // 0x1d - "ny", // 0x1e - "tt", // 0x1f - "tth", // 0x20 - "dd", // 0x21 - "ddh", // 0x22 - "nn", // 0x23 - "t", // 0x24 - "th", // 0x25 - "d", // 0x26 - "dh", // 0x27 - "n", // 0x28 - "[?]", // 0x29 - "p", // 0x2a - "ph", // 0x2b - "b", // 0x2c - "bh", // 0x2d - "m", // 0x2e - "y", // 0x2f - "r", // 0x30 - "rr", // 0x31 - "l", // 0x32 - "ll", // 0x33 - "lll", // 0x34 - "v", // 0x35 - "sh", // 0x36 - "ss", // 0x37 - "s", // 0x38 - "h", // 0x39 - "[?]", // 0x3a - "[?]", // 0x3b - "[?]", // 0x3c - "[?]", // 0x3d - "aa", // 0x3e - "i", // 0x3f - "ii", // 0x40 - "u", // 0x41 - "uu", // 0x42 - "R", // 0x43 - "[?]", // 0x44 - "[?]", // 0x45 - "e", // 0x46 - "ee", // 0x47 - "ai", // 0x48 - "", // 0x49 - "o", // 0x4a - "oo", // 0x4b - "au", // 0x4c - "", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "[?]", // 0x50 - "[?]", // 0x51 - "[?]", // 0x52 - "[?]", // 0x53 - "[?]", // 0x54 - "[?]", // 0x55 - "[?]", // 0x56 - "+", // 0x57 - "[?]", // 0x58 - "[?]", // 0x59 - "[?]", // 0x5a - "[?]", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "RR", // 0x60 - "LL", // 0x61 - "[?]", // 0x62 - "[?]", // 0x63 - "[?]", // 0x64 - "[?]", // 0x65 - "0", // 0x66 - "1", // 0x67 - "2", // 0x68 - "3", // 0x69 - "4", // 0x6a - "5", // 0x6b - "6", // 0x6c - "7", // 0x6d - "8", // 0x6e - "9", // 0x6f - "[?]", // 0x70 - "[?]", // 0x71 - "[?]", // 0x72 - "[?]", // 0x73 - "[?]", // 0x74 - "[?]", // 0x75 - "[?]", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "[?]", // 0x80 - "[?]", // 0x81 - "N", // 0x82 - "H", // 0x83 - "[?]", // 0x84 - "a", // 0x85 - "aa", // 0x86 - "ae", // 0x87 - "aae", // 0x88 - "i", // 0x89 - "ii", // 0x8a - "u", // 0x8b - "uu", // 0x8c - "R", // 0x8d - "RR", // 0x8e - "L", // 0x8f - "LL", // 0x90 - "e", // 0x91 - "ee", // 0x92 - "ai", // 0x93 - "o", // 0x94 - "oo", // 0x95 - "au", // 0x96 - "[?]", // 0x97 - "[?]", // 0x98 - "[?]", // 0x99 - "k", // 0x9a - "kh", // 0x9b - "g", // 0x9c - "gh", // 0x9d - "ng", // 0x9e - "nng", // 0x9f - "c", // 0xa0 - "ch", // 0xa1 - "j", // 0xa2 - "jh", // 0xa3 - "ny", // 0xa4 - "jny", // 0xa5 - "nyj", // 0xa6 - "tt", // 0xa7 - "tth", // 0xa8 - "dd", // 0xa9 - "ddh", // 0xaa - "nn", // 0xab - "nndd", // 0xac - "t", // 0xad - "th", // 0xae - "d", // 0xaf - "dh", // 0xb0 - "n", // 0xb1 - "[?]", // 0xb2 - "nd", // 0xb3 - "p", // 0xb4 - "ph", // 0xb5 - "b", // 0xb6 - "bh", // 0xb7 - "m", // 0xb8 - "mb", // 0xb9 - "y", // 0xba - "r", // 0xbb - "[?]", // 0xbc - "l", // 0xbd - "[?]", // 0xbe - "[?]", // 0xbf - "v", // 0xc0 - "sh", // 0xc1 - "ss", // 0xc2 - "s", // 0xc3 - "h", // 0xc4 - "ll", // 0xc5 - "f", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "aa", // 0xcf - "ae", // 0xd0 - "aae", // 0xd1 - "i", // 0xd2 - "ii", // 0xd3 - "u", // 0xd4 - "[?]", // 0xd5 - "uu", // 0xd6 - "[?]", // 0xd7 - "R", // 0xd8 - "e", // 0xd9 - "ee", // 0xda - "ai", // 0xdb - "o", // 0xdc - "oo", // 0xdd - "au", // 0xde - "L", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "RR", // 0xf2 - "LL", // 0xf3 - " . ", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x00e.go b/vendor/github.com/mozillazg/go-unidecode/table/x00e.go deleted file mode 100644 index 1e4b16a..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x00e.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x00e = []string{ - "[?]", // 0x00 - "k", // 0x01 - "kh", // 0x02 - "kh", // 0x03 - "kh", // 0x04 - "kh", // 0x05 - "kh", // 0x06 - "ng", // 0x07 - "cch", // 0x08 - "ch", // 0x09 - "ch", // 0x0a - "ch", // 0x0b - "ch", // 0x0c - "y", // 0x0d - "d", // 0x0e - "t", // 0x0f - "th", // 0x10 - "th", // 0x11 - "th", // 0x12 - "n", // 0x13 - "d", // 0x14 - "t", // 0x15 - "th", // 0x16 - "th", // 0x17 - "th", // 0x18 - "n", // 0x19 - "b", // 0x1a - "p", // 0x1b - "ph", // 0x1c - "f", // 0x1d - "ph", // 0x1e - "f", // 0x1f - "ph", // 0x20 - "m", // 0x21 - "y", // 0x22 - "r", // 0x23 - "R", // 0x24 - "l", // 0x25 - "L", // 0x26 - "w", // 0x27 - "s", // 0x28 - "s", // 0x29 - "s", // 0x2a - "h", // 0x2b - "l", // 0x2c - "`", // 0x2d - "h", // 0x2e - "~", // 0x2f - "a", // 0x30 - "a", // 0x31 - "aa", // 0x32 - "am", // 0x33 - "i", // 0x34 - "ii", // 0x35 - "ue", // 0x36 - "uue", // 0x37 - "u", // 0x38 - "uu", // 0x39 - "'", // 0x3a - "[?]", // 0x3b - "[?]", // 0x3c - "[?]", // 0x3d - "[?]", // 0x3e - "Bh.", // 0x3f - "e", // 0x40 - "ae", // 0x41 - "o", // 0x42 - "ai", // 0x43 - "ai", // 0x44 - "ao", // 0x45 - "+", // 0x46 - "", // 0x47 - "", // 0x48 - "", // 0x49 - "", // 0x4a - "", // 0x4b - "", // 0x4c - "M", // 0x4d - "", // 0x4e - " * ", // 0x4f - "0", // 0x50 - "1", // 0x51 - "2", // 0x52 - "3", // 0x53 - "4", // 0x54 - "5", // 0x55 - "6", // 0x56 - "7", // 0x57 - "8", // 0x58 - "9", // 0x59 - " // ", // 0x5a - " /// ", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "[?]", // 0x60 - "[?]", // 0x61 - "[?]", // 0x62 - "[?]", // 0x63 - "[?]", // 0x64 - "[?]", // 0x65 - "[?]", // 0x66 - "[?]", // 0x67 - "[?]", // 0x68 - "[?]", // 0x69 - "[?]", // 0x6a - "[?]", // 0x6b - "[?]", // 0x6c - "[?]", // 0x6d - "[?]", // 0x6e - "[?]", // 0x6f - "[?]", // 0x70 - "[?]", // 0x71 - "[?]", // 0x72 - "[?]", // 0x73 - "[?]", // 0x74 - "[?]", // 0x75 - "[?]", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "[?]", // 0x80 - "k", // 0x81 - "kh", // 0x82 - "[?]", // 0x83 - "kh", // 0x84 - "[?]", // 0x85 - "[?]", // 0x86 - "ng", // 0x87 - "ch", // 0x88 - "[?]", // 0x89 - "s", // 0x8a - "[?]", // 0x8b - "[?]", // 0x8c - "ny", // 0x8d - "[?]", // 0x8e - "[?]", // 0x8f - "[?]", // 0x90 - "[?]", // 0x91 - "[?]", // 0x92 - "[?]", // 0x93 - "d", // 0x94 - "h", // 0x95 - "th", // 0x96 - "th", // 0x97 - "[?]", // 0x98 - "n", // 0x99 - "b", // 0x9a - "p", // 0x9b - "ph", // 0x9c - "f", // 0x9d - "ph", // 0x9e - "f", // 0x9f - "[?]", // 0xa0 - "m", // 0xa1 - "y", // 0xa2 - "r", // 0xa3 - "[?]", // 0xa4 - "l", // 0xa5 - "[?]", // 0xa6 - "w", // 0xa7 - "[?]", // 0xa8 - "[?]", // 0xa9 - "s", // 0xaa - "h", // 0xab - "[?]", // 0xac - "`", // 0xad - "", // 0xae - "~", // 0xaf - "a", // 0xb0 - "", // 0xb1 - "aa", // 0xb2 - "am", // 0xb3 - "i", // 0xb4 - "ii", // 0xb5 - "y", // 0xb6 - "yy", // 0xb7 - "u", // 0xb8 - "uu", // 0xb9 - "[?]", // 0xba - "o", // 0xbb - "l", // 0xbc - "ny", // 0xbd - "[?]", // 0xbe - "[?]", // 0xbf - "e", // 0xc0 - "ei", // 0xc1 - "o", // 0xc2 - "ay", // 0xc3 - "ai", // 0xc4 - "[?]", // 0xc5 - "+", // 0xc6 - "[?]", // 0xc7 - "", // 0xc8 - "", // 0xc9 - "", // 0xca - "", // 0xcb - "", // 0xcc - "M", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "0", // 0xd0 - "1", // 0xd1 - "2", // 0xd2 - "3", // 0xd3 - "4", // 0xd4 - "5", // 0xd5 - "6", // 0xd6 - "7", // 0xd7 - "8", // 0xd8 - "9", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "hn", // 0xdc - "hm", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x00f.go b/vendor/github.com/mozillazg/go-unidecode/table/x00f.go deleted file mode 100644 index 214623b..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x00f.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x00f = []string{ - "AUM", // 0x00 - "", // 0x01 - "", // 0x02 - "", // 0x03 - "", // 0x04 - "", // 0x05 - "", // 0x06 - "", // 0x07 - " // ", // 0x08 - " * ", // 0x09 - "", // 0x0a - "-", // 0x0b - " / ", // 0x0c - " / ", // 0x0d - " // ", // 0x0e - " -/ ", // 0x0f - " +/ ", // 0x10 - " X/ ", // 0x11 - " /XX/ ", // 0x12 - " /X/ ", // 0x13 - ", ", // 0x14 - "", // 0x15 - "", // 0x16 - "", // 0x17 - "", // 0x18 - "", // 0x19 - "", // 0x1a - "", // 0x1b - "", // 0x1c - "", // 0x1d - "", // 0x1e - "", // 0x1f - "0", // 0x20 - "1", // 0x21 - "2", // 0x22 - "3", // 0x23 - "4", // 0x24 - "5", // 0x25 - "6", // 0x26 - "7", // 0x27 - "8", // 0x28 - "9", // 0x29 - ".5", // 0x2a - "1.5", // 0x2b - "2.5", // 0x2c - "3.5", // 0x2d - "4.5", // 0x2e - "5.5", // 0x2f - "6.5", // 0x30 - "7.5", // 0x31 - "8.5", // 0x32 - "-.5", // 0x33 - "+", // 0x34 - "*", // 0x35 - "^", // 0x36 - "_", // 0x37 - "", // 0x38 - "~", // 0x39 - "[?]", // 0x3a - "]", // 0x3b - "[[", // 0x3c - "]]", // 0x3d - "", // 0x3e - "", // 0x3f - "k", // 0x40 - "kh", // 0x41 - "g", // 0x42 - "gh", // 0x43 - "ng", // 0x44 - "c", // 0x45 - "ch", // 0x46 - "j", // 0x47 - "[?]", // 0x48 - "ny", // 0x49 - "tt", // 0x4a - "tth", // 0x4b - "dd", // 0x4c - "ddh", // 0x4d - "nn", // 0x4e - "t", // 0x4f - "th", // 0x50 - "d", // 0x51 - "dh", // 0x52 - "n", // 0x53 - "p", // 0x54 - "ph", // 0x55 - "b", // 0x56 - "bh", // 0x57 - "m", // 0x58 - "ts", // 0x59 - "tsh", // 0x5a - "dz", // 0x5b - "dzh", // 0x5c - "w", // 0x5d - "zh", // 0x5e - "z", // 0x5f - "'", // 0x60 - "y", // 0x61 - "r", // 0x62 - "l", // 0x63 - "sh", // 0x64 - "ssh", // 0x65 - "s", // 0x66 - "h", // 0x67 - "a", // 0x68 - "kss", // 0x69 - "r", // 0x6a - "[?]", // 0x6b - "[?]", // 0x6c - "[?]", // 0x6d - "[?]", // 0x6e - "[?]", // 0x6f - "[?]", // 0x70 - "aa", // 0x71 - "i", // 0x72 - "ii", // 0x73 - "u", // 0x74 - "uu", // 0x75 - "R", // 0x76 - "RR", // 0x77 - "L", // 0x78 - "LL", // 0x79 - "e", // 0x7a - "ee", // 0x7b - "o", // 0x7c - "oo", // 0x7d - "M", // 0x7e - "H", // 0x7f - "i", // 0x80 - "ii", // 0x81 - "", // 0x82 - "", // 0x83 - "", // 0x84 - "", // 0x85 - "", // 0x86 - "", // 0x87 - "", // 0x88 - "", // 0x89 - "", // 0x8a - "", // 0x8b - "[?]", // 0x8c - "[?]", // 0x8d - "[?]", // 0x8e - "[?]", // 0x8f - "k", // 0x90 - "kh", // 0x91 - "g", // 0x92 - "gh", // 0x93 - "ng", // 0x94 - "c", // 0x95 - "ch", // 0x96 - "j", // 0x97 - "[?]", // 0x98 - "ny", // 0x99 - "tt", // 0x9a - "tth", // 0x9b - "dd", // 0x9c - "ddh", // 0x9d - "nn", // 0x9e - "t", // 0x9f - "th", // 0xa0 - "d", // 0xa1 - "dh", // 0xa2 - "n", // 0xa3 - "p", // 0xa4 - "ph", // 0xa5 - "b", // 0xa6 - "bh", // 0xa7 - "m", // 0xa8 - "ts", // 0xa9 - "tsh", // 0xaa - "dz", // 0xab - "dzh", // 0xac - "w", // 0xad - "zh", // 0xae - "z", // 0xaf - "'", // 0xb0 - "y", // 0xb1 - "r", // 0xb2 - "l", // 0xb3 - "sh", // 0xb4 - "ss", // 0xb5 - "s", // 0xb6 - "h", // 0xb7 - "a", // 0xb8 - "kss", // 0xb9 - "w", // 0xba - "y", // 0xbb - "r", // 0xbc - "[?]", // 0xbd - "X", // 0xbe - " :X: ", // 0xbf - " /O/ ", // 0xc0 - " /o/ ", // 0xc1 - " \\o\\ ", // 0xc2 - " (O) ", // 0xc3 - "", // 0xc4 - "", // 0xc5 - "", // 0xc6 - "", // 0xc7 - "", // 0xc8 - "", // 0xc9 - "", // 0xca - "", // 0xcb - "", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x010.go b/vendor/github.com/mozillazg/go-unidecode/table/x010.go deleted file mode 100644 index 2914592..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x010.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x010 = []string{ - "k", // 0x00 - "kh", // 0x01 - "g", // 0x02 - "gh", // 0x03 - "ng", // 0x04 - "c", // 0x05 - "ch", // 0x06 - "j", // 0x07 - "jh", // 0x08 - "ny", // 0x09 - "nny", // 0x0a - "tt", // 0x0b - "tth", // 0x0c - "dd", // 0x0d - "ddh", // 0x0e - "nn", // 0x0f - "tt", // 0x10 - "th", // 0x11 - "d", // 0x12 - "dh", // 0x13 - "n", // 0x14 - "p", // 0x15 - "ph", // 0x16 - "b", // 0x17 - "bh", // 0x18 - "m", // 0x19 - "y", // 0x1a - "r", // 0x1b - "l", // 0x1c - "w", // 0x1d - "s", // 0x1e - "h", // 0x1f - "ll", // 0x20 - "a", // 0x21 - "[?]", // 0x22 - "i", // 0x23 - "ii", // 0x24 - "u", // 0x25 - "uu", // 0x26 - "e", // 0x27 - "[?]", // 0x28 - "o", // 0x29 - "au", // 0x2a - "[?]", // 0x2b - "aa", // 0x2c - "i", // 0x2d - "ii", // 0x2e - "u", // 0x2f - "uu", // 0x30 - "e", // 0x31 - "ai", // 0x32 - "[?]", // 0x33 - "[?]", // 0x34 - "[?]", // 0x35 - "N", // 0x36 - "'", // 0x37 - ":", // 0x38 - "", // 0x39 - "[?]", // 0x3a - "[?]", // 0x3b - "[?]", // 0x3c - "[?]", // 0x3d - "[?]", // 0x3e - "[?]", // 0x3f - "0", // 0x40 - "1", // 0x41 - "2", // 0x42 - "3", // 0x43 - "4", // 0x44 - "5", // 0x45 - "6", // 0x46 - "7", // 0x47 - "8", // 0x48 - "9", // 0x49 - " / ", // 0x4a - " // ", // 0x4b - "n*", // 0x4c - "r*", // 0x4d - "l*", // 0x4e - "e*", // 0x4f - "sh", // 0x50 - "ss", // 0x51 - "R", // 0x52 - "RR", // 0x53 - "L", // 0x54 - "LL", // 0x55 - "R", // 0x56 - "RR", // 0x57 - "L", // 0x58 - "LL", // 0x59 - "[?]", // 0x5a - "[?]", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "[?]", // 0x60 - "[?]", // 0x61 - "[?]", // 0x62 - "[?]", // 0x63 - "[?]", // 0x64 - "[?]", // 0x65 - "[?]", // 0x66 - "[?]", // 0x67 - "[?]", // 0x68 - "[?]", // 0x69 - "[?]", // 0x6a - "[?]", // 0x6b - "[?]", // 0x6c - "[?]", // 0x6d - "[?]", // 0x6e - "[?]", // 0x6f - "[?]", // 0x70 - "[?]", // 0x71 - "[?]", // 0x72 - "[?]", // 0x73 - "[?]", // 0x74 - "[?]", // 0x75 - "[?]", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "[?]", // 0x80 - "[?]", // 0x81 - "[?]", // 0x82 - "[?]", // 0x83 - "[?]", // 0x84 - "[?]", // 0x85 - "[?]", // 0x86 - "[?]", // 0x87 - "[?]", // 0x88 - "[?]", // 0x89 - "[?]", // 0x8a - "[?]", // 0x8b - "[?]", // 0x8c - "[?]", // 0x8d - "[?]", // 0x8e - "[?]", // 0x8f - "[?]", // 0x90 - "[?]", // 0x91 - "[?]", // 0x92 - "[?]", // 0x93 - "[?]", // 0x94 - "[?]", // 0x95 - "[?]", // 0x96 - "[?]", // 0x97 - "[?]", // 0x98 - "[?]", // 0x99 - "[?]", // 0x9a - "[?]", // 0x9b - "[?]", // 0x9c - "[?]", // 0x9d - "[?]", // 0x9e - "[?]", // 0x9f - "A", // 0xa0 - "B", // 0xa1 - "G", // 0xa2 - "D", // 0xa3 - "E", // 0xa4 - "V", // 0xa5 - "Z", // 0xa6 - "T`", // 0xa7 - "I", // 0xa8 - "K", // 0xa9 - "L", // 0xaa - "M", // 0xab - "N", // 0xac - "O", // 0xad - "P", // 0xae - "Zh", // 0xaf - "R", // 0xb0 - "S", // 0xb1 - "T", // 0xb2 - "U", // 0xb3 - "P`", // 0xb4 - "K`", // 0xb5 - "G'", // 0xb6 - "Q", // 0xb7 - "Sh", // 0xb8 - "Ch`", // 0xb9 - "C`", // 0xba - "Z'", // 0xbb - "C", // 0xbc - "Ch", // 0xbd - "X", // 0xbe - "J", // 0xbf - "H", // 0xc0 - "E", // 0xc1 - "Y", // 0xc2 - "W", // 0xc3 - "Xh", // 0xc4 - "OE", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "a", // 0xd0 - "b", // 0xd1 - "g", // 0xd2 - "d", // 0xd3 - "e", // 0xd4 - "v", // 0xd5 - "z", // 0xd6 - "t`", // 0xd7 - "i", // 0xd8 - "k", // 0xd9 - "l", // 0xda - "m", // 0xdb - "n", // 0xdc - "o", // 0xdd - "p", // 0xde - "zh", // 0xdf - "r", // 0xe0 - "s", // 0xe1 - "t", // 0xe2 - "u", // 0xe3 - "p`", // 0xe4 - "k`", // 0xe5 - "g'", // 0xe6 - "q", // 0xe7 - "sh", // 0xe8 - "ch`", // 0xe9 - "c`", // 0xea - "z'", // 0xeb - "c", // 0xec - "ch", // 0xed - "x", // 0xee - "j", // 0xef - "h", // 0xf0 - "e", // 0xf1 - "y", // 0xf2 - "w", // 0xf3 - "xh", // 0xf4 - "oe", // 0xf5 - "f", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - " // ", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x011.go b/vendor/github.com/mozillazg/go-unidecode/table/x011.go deleted file mode 100644 index f15d32f..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x011.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x011 = []string{ - "g", // 0x00 - "gg", // 0x01 - "n", // 0x02 - "d", // 0x03 - "dd", // 0x04 - "r", // 0x05 - "m", // 0x06 - "b", // 0x07 - "bb", // 0x08 - "s", // 0x09 - "ss", // 0x0a - "", // 0x0b - "j", // 0x0c - "jj", // 0x0d - "c", // 0x0e - "k", // 0x0f - "t", // 0x10 - "p", // 0x11 - "h", // 0x12 - "ng", // 0x13 - "nn", // 0x14 - "nd", // 0x15 - "nb", // 0x16 - "dg", // 0x17 - "rn", // 0x18 - "rr", // 0x19 - "rh", // 0x1a - "rN", // 0x1b - "mb", // 0x1c - "mN", // 0x1d - "bg", // 0x1e - "bn", // 0x1f - "", // 0x20 - "bs", // 0x21 - "bsg", // 0x22 - "bst", // 0x23 - "bsb", // 0x24 - "bss", // 0x25 - "bsj", // 0x26 - "bj", // 0x27 - "bc", // 0x28 - "bt", // 0x29 - "bp", // 0x2a - "bN", // 0x2b - "bbN", // 0x2c - "sg", // 0x2d - "sn", // 0x2e - "sd", // 0x2f - "sr", // 0x30 - "sm", // 0x31 - "sb", // 0x32 - "sbg", // 0x33 - "sss", // 0x34 - "s", // 0x35 - "sj", // 0x36 - "sc", // 0x37 - "sk", // 0x38 - "st", // 0x39 - "sp", // 0x3a - "sh", // 0x3b - "", // 0x3c - "", // 0x3d - "", // 0x3e - "", // 0x3f - "Z", // 0x40 - "g", // 0x41 - "d", // 0x42 - "m", // 0x43 - "b", // 0x44 - "s", // 0x45 - "Z", // 0x46 - "", // 0x47 - "j", // 0x48 - "c", // 0x49 - "t", // 0x4a - "p", // 0x4b - "N", // 0x4c - "j", // 0x4d - "", // 0x4e - "", // 0x4f - "", // 0x50 - "", // 0x51 - "ck", // 0x52 - "ch", // 0x53 - "", // 0x54 - "", // 0x55 - "pb", // 0x56 - "pN", // 0x57 - "hh", // 0x58 - "Q", // 0x59 - "[?]", // 0x5a - "[?]", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "", // 0x5f - "", // 0x60 - "a", // 0x61 - "ae", // 0x62 - "ya", // 0x63 - "yae", // 0x64 - "eo", // 0x65 - "e", // 0x66 - "yeo", // 0x67 - "ye", // 0x68 - "o", // 0x69 - "wa", // 0x6a - "wae", // 0x6b - "oe", // 0x6c - "yo", // 0x6d - "u", // 0x6e - "weo", // 0x6f - "we", // 0x70 - "wi", // 0x71 - "yu", // 0x72 - "eu", // 0x73 - "yi", // 0x74 - "i", // 0x75 - "a-o", // 0x76 - "a-u", // 0x77 - "ya-o", // 0x78 - "ya-yo", // 0x79 - "eo-o", // 0x7a - "eo-u", // 0x7b - "eo-eu", // 0x7c - "yeo-o", // 0x7d - "yeo-u", // 0x7e - "o-eo", // 0x7f - "o-e", // 0x80 - "o-ye", // 0x81 - "o-o", // 0x82 - "o-u", // 0x83 - "yo-ya", // 0x84 - "yo-yae", // 0x85 - "yo-yeo", // 0x86 - "yo-o", // 0x87 - "yo-i", // 0x88 - "u-a", // 0x89 - "u-ae", // 0x8a - "u-eo-eu", // 0x8b - "u-ye", // 0x8c - "u-u", // 0x8d - "yu-a", // 0x8e - "yu-eo", // 0x8f - "yu-e", // 0x90 - "yu-yeo", // 0x91 - "yu-ye", // 0x92 - "yu-u", // 0x93 - "yu-i", // 0x94 - "eu-u", // 0x95 - "eu-eu", // 0x96 - "yi-u", // 0x97 - "i-a", // 0x98 - "i-ya", // 0x99 - "i-o", // 0x9a - "i-u", // 0x9b - "i-eu", // 0x9c - "i-U", // 0x9d - "U", // 0x9e - "U-eo", // 0x9f - "U-u", // 0xa0 - "U-i", // 0xa1 - "UU", // 0xa2 - "[?]", // 0xa3 - "[?]", // 0xa4 - "[?]", // 0xa5 - "[?]", // 0xa6 - "[?]", // 0xa7 - "g", // 0xa8 - "gg", // 0xa9 - "gs", // 0xaa - "n", // 0xab - "nj", // 0xac - "nh", // 0xad - "d", // 0xae - "l", // 0xaf - "lg", // 0xb0 - "lm", // 0xb1 - "lb", // 0xb2 - "ls", // 0xb3 - "lt", // 0xb4 - "lp", // 0xb5 - "lh", // 0xb6 - "m", // 0xb7 - "b", // 0xb8 - "bs", // 0xb9 - "s", // 0xba - "ss", // 0xbb - "ng", // 0xbc - "j", // 0xbd - "c", // 0xbe - "k", // 0xbf - "t", // 0xc0 - "p", // 0xc1 - "h", // 0xc2 - "gl", // 0xc3 - "gsg", // 0xc4 - "ng", // 0xc5 - "nd", // 0xc6 - "ns", // 0xc7 - "nZ", // 0xc8 - "nt", // 0xc9 - "dg", // 0xca - "tl", // 0xcb - "lgs", // 0xcc - "ln", // 0xcd - "ld", // 0xce - "lth", // 0xcf - "ll", // 0xd0 - "lmg", // 0xd1 - "lms", // 0xd2 - "lbs", // 0xd3 - "lbh", // 0xd4 - "rNp", // 0xd5 - "lss", // 0xd6 - "lZ", // 0xd7 - "lk", // 0xd8 - "lQ", // 0xd9 - "mg", // 0xda - "ml", // 0xdb - "mb", // 0xdc - "ms", // 0xdd - "mss", // 0xde - "mZ", // 0xdf - "mc", // 0xe0 - "mh", // 0xe1 - "mN", // 0xe2 - "bl", // 0xe3 - "bp", // 0xe4 - "ph", // 0xe5 - "pN", // 0xe6 - "sg", // 0xe7 - "sd", // 0xe8 - "sl", // 0xe9 - "sb", // 0xea - "Z", // 0xeb - "g", // 0xec - "ss", // 0xed - "", // 0xee - "kh", // 0xef - "N", // 0xf0 - "Ns", // 0xf1 - "NZ", // 0xf2 - "pb", // 0xf3 - "pN", // 0xf4 - "hn", // 0xf5 - "hl", // 0xf6 - "hm", // 0xf7 - "hb", // 0xf8 - "Q", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x012.go b/vendor/github.com/mozillazg/go-unidecode/table/x012.go deleted file mode 100644 index 201e983..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x012.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x012 = []string{ - "ha", // 0x00 - "hu", // 0x01 - "hi", // 0x02 - "haa", // 0x03 - "hee", // 0x04 - "he", // 0x05 - "ho", // 0x06 - "[?]", // 0x07 - "la", // 0x08 - "lu", // 0x09 - "li", // 0x0a - "laa", // 0x0b - "lee", // 0x0c - "le", // 0x0d - "lo", // 0x0e - "lwa", // 0x0f - "hha", // 0x10 - "hhu", // 0x11 - "hhi", // 0x12 - "hhaa", // 0x13 - "hhee", // 0x14 - "hhe", // 0x15 - "hho", // 0x16 - "hhwa", // 0x17 - "ma", // 0x18 - "mu", // 0x19 - "mi", // 0x1a - "maa", // 0x1b - "mee", // 0x1c - "me", // 0x1d - "mo", // 0x1e - "mwa", // 0x1f - "sza", // 0x20 - "szu", // 0x21 - "szi", // 0x22 - "szaa", // 0x23 - "szee", // 0x24 - "sze", // 0x25 - "szo", // 0x26 - "szwa", // 0x27 - "ra", // 0x28 - "ru", // 0x29 - "ri", // 0x2a - "raa", // 0x2b - "ree", // 0x2c - "re", // 0x2d - "ro", // 0x2e - "rwa", // 0x2f - "sa", // 0x30 - "su", // 0x31 - "si", // 0x32 - "saa", // 0x33 - "see", // 0x34 - "se", // 0x35 - "so", // 0x36 - "swa", // 0x37 - "sha", // 0x38 - "shu", // 0x39 - "shi", // 0x3a - "shaa", // 0x3b - "shee", // 0x3c - "she", // 0x3d - "sho", // 0x3e - "shwa", // 0x3f - "qa", // 0x40 - "qu", // 0x41 - "qi", // 0x42 - "qaa", // 0x43 - "qee", // 0x44 - "qe", // 0x45 - "qo", // 0x46 - "[?]", // 0x47 - "qwa", // 0x48 - "[?]", // 0x49 - "qwi", // 0x4a - "qwaa", // 0x4b - "qwee", // 0x4c - "qwe", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "qha", // 0x50 - "qhu", // 0x51 - "qhi", // 0x52 - "qhaa", // 0x53 - "qhee", // 0x54 - "qhe", // 0x55 - "qho", // 0x56 - "[?]", // 0x57 - "qhwa", // 0x58 - "[?]", // 0x59 - "qhwi", // 0x5a - "qhwaa", // 0x5b - "qhwee", // 0x5c - "qhwe", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "ba", // 0x60 - "bu", // 0x61 - "bi", // 0x62 - "baa", // 0x63 - "bee", // 0x64 - "be", // 0x65 - "bo", // 0x66 - "bwa", // 0x67 - "va", // 0x68 - "vu", // 0x69 - "vi", // 0x6a - "vaa", // 0x6b - "vee", // 0x6c - "ve", // 0x6d - "vo", // 0x6e - "vwa", // 0x6f - "ta", // 0x70 - "tu", // 0x71 - "ti", // 0x72 - "taa", // 0x73 - "tee", // 0x74 - "te", // 0x75 - "to", // 0x76 - "twa", // 0x77 - "ca", // 0x78 - "cu", // 0x79 - "ci", // 0x7a - "caa", // 0x7b - "cee", // 0x7c - "ce", // 0x7d - "co", // 0x7e - "cwa", // 0x7f - "xa", // 0x80 - "xu", // 0x81 - "xi", // 0x82 - "xaa", // 0x83 - "xee", // 0x84 - "xe", // 0x85 - "xo", // 0x86 - "[?]", // 0x87 - "xwa", // 0x88 - "[?]", // 0x89 - "xwi", // 0x8a - "xwaa", // 0x8b - "xwee", // 0x8c - "xwe", // 0x8d - "[?]", // 0x8e - "[?]", // 0x8f - "na", // 0x90 - "nu", // 0x91 - "ni", // 0x92 - "naa", // 0x93 - "nee", // 0x94 - "ne", // 0x95 - "no", // 0x96 - "nwa", // 0x97 - "nya", // 0x98 - "nyu", // 0x99 - "nyi", // 0x9a - "nyaa", // 0x9b - "nyee", // 0x9c - "nye", // 0x9d - "nyo", // 0x9e - "nywa", // 0x9f - "'a", // 0xa0 - "'u", // 0xa1 - "[?]", // 0xa2 - "'aa", // 0xa3 - "'ee", // 0xa4 - "'e", // 0xa5 - "'o", // 0xa6 - "'wa", // 0xa7 - "ka", // 0xa8 - "ku", // 0xa9 - "ki", // 0xaa - "kaa", // 0xab - "kee", // 0xac - "ke", // 0xad - "ko", // 0xae - "[?]", // 0xaf - "kwa", // 0xb0 - "[?]", // 0xb1 - "kwi", // 0xb2 - "kwaa", // 0xb3 - "kwee", // 0xb4 - "kwe", // 0xb5 - "[?]", // 0xb6 - "[?]", // 0xb7 - "kxa", // 0xb8 - "kxu", // 0xb9 - "kxi", // 0xba - "kxaa", // 0xbb - "kxee", // 0xbc - "kxe", // 0xbd - "kxo", // 0xbe - "[?]", // 0xbf - "kxwa", // 0xc0 - "[?]", // 0xc1 - "kxwi", // 0xc2 - "kxwaa", // 0xc3 - "kxwee", // 0xc4 - "kxwe", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "wa", // 0xc8 - "wu", // 0xc9 - "wi", // 0xca - "waa", // 0xcb - "wee", // 0xcc - "we", // 0xcd - "wo", // 0xce - "[?]", // 0xcf - "`a", // 0xd0 - "`u", // 0xd1 - "`i", // 0xd2 - "`aa", // 0xd3 - "`ee", // 0xd4 - "`e", // 0xd5 - "`o", // 0xd6 - "[?]", // 0xd7 - "za", // 0xd8 - "zu", // 0xd9 - "zi", // 0xda - "zaa", // 0xdb - "zee", // 0xdc - "ze", // 0xdd - "zo", // 0xde - "zwa", // 0xdf - "zha", // 0xe0 - "zhu", // 0xe1 - "zhi", // 0xe2 - "zhaa", // 0xe3 - "zhee", // 0xe4 - "zhe", // 0xe5 - "zho", // 0xe6 - "zhwa", // 0xe7 - "ya", // 0xe8 - "yu", // 0xe9 - "yi", // 0xea - "yaa", // 0xeb - "yee", // 0xec - "ye", // 0xed - "yo", // 0xee - "[?]", // 0xef - "da", // 0xf0 - "du", // 0xf1 - "di", // 0xf2 - "daa", // 0xf3 - "dee", // 0xf4 - "de", // 0xf5 - "do", // 0xf6 - "dwa", // 0xf7 - "dda", // 0xf8 - "ddu", // 0xf9 - "ddi", // 0xfa - "ddaa", // 0xfb - "ddee", // 0xfc - "dde", // 0xfd - "ddo", // 0xfe - "ddwa", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x013.go b/vendor/github.com/mozillazg/go-unidecode/table/x013.go deleted file mode 100644 index 3e81e13..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x013.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x013 = []string{ - "ja", // 0x00 - "ju", // 0x01 - "ji", // 0x02 - "jaa", // 0x03 - "jee", // 0x04 - "je", // 0x05 - "jo", // 0x06 - "jwa", // 0x07 - "ga", // 0x08 - "gu", // 0x09 - "gi", // 0x0a - "gaa", // 0x0b - "gee", // 0x0c - "ge", // 0x0d - "go", // 0x0e - "[?]", // 0x0f - "gwa", // 0x10 - "[?]", // 0x11 - "gwi", // 0x12 - "gwaa", // 0x13 - "gwee", // 0x14 - "gwe", // 0x15 - "[?]", // 0x16 - "[?]", // 0x17 - "gga", // 0x18 - "ggu", // 0x19 - "ggi", // 0x1a - "ggaa", // 0x1b - "ggee", // 0x1c - "gge", // 0x1d - "ggo", // 0x1e - "[?]", // 0x1f - "tha", // 0x20 - "thu", // 0x21 - "thi", // 0x22 - "thaa", // 0x23 - "thee", // 0x24 - "the", // 0x25 - "tho", // 0x26 - "thwa", // 0x27 - "cha", // 0x28 - "chu", // 0x29 - "chi", // 0x2a - "chaa", // 0x2b - "chee", // 0x2c - "che", // 0x2d - "cho", // 0x2e - "chwa", // 0x2f - "pha", // 0x30 - "phu", // 0x31 - "phi", // 0x32 - "phaa", // 0x33 - "phee", // 0x34 - "phe", // 0x35 - "pho", // 0x36 - "phwa", // 0x37 - "tsa", // 0x38 - "tsu", // 0x39 - "tsi", // 0x3a - "tsaa", // 0x3b - "tsee", // 0x3c - "tse", // 0x3d - "tso", // 0x3e - "tswa", // 0x3f - "tza", // 0x40 - "tzu", // 0x41 - "tzi", // 0x42 - "tzaa", // 0x43 - "tzee", // 0x44 - "tze", // 0x45 - "tzo", // 0x46 - "[?]", // 0x47 - "fa", // 0x48 - "fu", // 0x49 - "fi", // 0x4a - "faa", // 0x4b - "fee", // 0x4c - "fe", // 0x4d - "fo", // 0x4e - "fwa", // 0x4f - "pa", // 0x50 - "pu", // 0x51 - "pi", // 0x52 - "paa", // 0x53 - "pee", // 0x54 - "pe", // 0x55 - "po", // 0x56 - "pwa", // 0x57 - "rya", // 0x58 - "mya", // 0x59 - "fya", // 0x5a - "[?]", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "[?]", // 0x60 - " ", // 0x61 - ".", // 0x62 - ",", // 0x63 - ";", // 0x64 - ":", // 0x65 - ":: ", // 0x66 - "?", // 0x67 - "//", // 0x68 - "1", // 0x69 - "2", // 0x6a - "3", // 0x6b - "4", // 0x6c - "5", // 0x6d - "6", // 0x6e - "7", // 0x6f - "8", // 0x70 - "9", // 0x71 - "10+", // 0x72 - "20+", // 0x73 - "30+", // 0x74 - "40+", // 0x75 - "50+", // 0x76 - "60+", // 0x77 - "70+", // 0x78 - "80+", // 0x79 - "90+", // 0x7a - "100+", // 0x7b - "10,000+", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "[?]", // 0x80 - "[?]", // 0x81 - "[?]", // 0x82 - "[?]", // 0x83 - "[?]", // 0x84 - "[?]", // 0x85 - "[?]", // 0x86 - "[?]", // 0x87 - "[?]", // 0x88 - "[?]", // 0x89 - "[?]", // 0x8a - "[?]", // 0x8b - "[?]", // 0x8c - "[?]", // 0x8d - "[?]", // 0x8e - "[?]", // 0x8f - "[?]", // 0x90 - "[?]", // 0x91 - "[?]", // 0x92 - "[?]", // 0x93 - "[?]", // 0x94 - "[?]", // 0x95 - "[?]", // 0x96 - "[?]", // 0x97 - "[?]", // 0x98 - "[?]", // 0x99 - "[?]", // 0x9a - "[?]", // 0x9b - "[?]", // 0x9c - "[?]", // 0x9d - "[?]", // 0x9e - "[?]", // 0x9f - "a", // 0xa0 - "e", // 0xa1 - "i", // 0xa2 - "o", // 0xa3 - "u", // 0xa4 - "v", // 0xa5 - "ga", // 0xa6 - "ka", // 0xa7 - "ge", // 0xa8 - "gi", // 0xa9 - "go", // 0xaa - "gu", // 0xab - "gv", // 0xac - "ha", // 0xad - "he", // 0xae - "hi", // 0xaf - "ho", // 0xb0 - "hu", // 0xb1 - "hv", // 0xb2 - "la", // 0xb3 - "le", // 0xb4 - "li", // 0xb5 - "lo", // 0xb6 - "lu", // 0xb7 - "lv", // 0xb8 - "ma", // 0xb9 - "me", // 0xba - "mi", // 0xbb - "mo", // 0xbc - "mu", // 0xbd - "na", // 0xbe - "hna", // 0xbf - "nah", // 0xc0 - "ne", // 0xc1 - "ni", // 0xc2 - "no", // 0xc3 - "nu", // 0xc4 - "nv", // 0xc5 - "qua", // 0xc6 - "que", // 0xc7 - "qui", // 0xc8 - "quo", // 0xc9 - "quu", // 0xca - "quv", // 0xcb - "sa", // 0xcc - "s", // 0xcd - "se", // 0xce - "si", // 0xcf - "so", // 0xd0 - "su", // 0xd1 - "sv", // 0xd2 - "da", // 0xd3 - "ta", // 0xd4 - "de", // 0xd5 - "te", // 0xd6 - "di", // 0xd7 - "ti", // 0xd8 - "do", // 0xd9 - "du", // 0xda - "dv", // 0xdb - "dla", // 0xdc - "tla", // 0xdd - "tle", // 0xde - "tli", // 0xdf - "tlo", // 0xe0 - "tlu", // 0xe1 - "tlv", // 0xe2 - "tsa", // 0xe3 - "tse", // 0xe4 - "tsi", // 0xe5 - "tso", // 0xe6 - "tsu", // 0xe7 - "tsv", // 0xe8 - "wa", // 0xe9 - "we", // 0xea - "wi", // 0xeb - "wo", // 0xec - "wu", // 0xed - "wv", // 0xee - "ya", // 0xef - "ye", // 0xf0 - "yi", // 0xf1 - "yo", // 0xf2 - "yu", // 0xf3 - "yv", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x014.go b/vendor/github.com/mozillazg/go-unidecode/table/x014.go deleted file mode 100644 index 2f9da55..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x014.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x014 = []string{ - "[?]", // 0x00 - "e", // 0x01 - "aai", // 0x02 - "i", // 0x03 - "ii", // 0x04 - "o", // 0x05 - "oo", // 0x06 - "oo", // 0x07 - "ee", // 0x08 - "i", // 0x09 - "a", // 0x0a - "aa", // 0x0b - "we", // 0x0c - "we", // 0x0d - "wi", // 0x0e - "wi", // 0x0f - "wii", // 0x10 - "wii", // 0x11 - "wo", // 0x12 - "wo", // 0x13 - "woo", // 0x14 - "woo", // 0x15 - "woo", // 0x16 - "wa", // 0x17 - "wa", // 0x18 - "waa", // 0x19 - "waa", // 0x1a - "waa", // 0x1b - "ai", // 0x1c - "w", // 0x1d - "'", // 0x1e - "t", // 0x1f - "k", // 0x20 - "sh", // 0x21 - "s", // 0x22 - "n", // 0x23 - "w", // 0x24 - "n", // 0x25 - "[?]", // 0x26 - "w", // 0x27 - "c", // 0x28 - "?", // 0x29 - "l", // 0x2a - "en", // 0x2b - "in", // 0x2c - "on", // 0x2d - "an", // 0x2e - "pe", // 0x2f - "paai", // 0x30 - "pi", // 0x31 - "pii", // 0x32 - "po", // 0x33 - "poo", // 0x34 - "poo", // 0x35 - "hee", // 0x36 - "hi", // 0x37 - "pa", // 0x38 - "paa", // 0x39 - "pwe", // 0x3a - "pwe", // 0x3b - "pwi", // 0x3c - "pwi", // 0x3d - "pwii", // 0x3e - "pwii", // 0x3f - "pwo", // 0x40 - "pwo", // 0x41 - "pwoo", // 0x42 - "pwoo", // 0x43 - "pwa", // 0x44 - "pwa", // 0x45 - "pwaa", // 0x46 - "pwaa", // 0x47 - "pwaa", // 0x48 - "p", // 0x49 - "p", // 0x4a - "h", // 0x4b - "te", // 0x4c - "taai", // 0x4d - "ti", // 0x4e - "tii", // 0x4f - "to", // 0x50 - "too", // 0x51 - "too", // 0x52 - "dee", // 0x53 - "di", // 0x54 - "ta", // 0x55 - "taa", // 0x56 - "twe", // 0x57 - "twe", // 0x58 - "twi", // 0x59 - "twi", // 0x5a - "twii", // 0x5b - "twii", // 0x5c - "two", // 0x5d - "two", // 0x5e - "twoo", // 0x5f - "twoo", // 0x60 - "twa", // 0x61 - "twa", // 0x62 - "twaa", // 0x63 - "twaa", // 0x64 - "twaa", // 0x65 - "t", // 0x66 - "tte", // 0x67 - "tti", // 0x68 - "tto", // 0x69 - "tta", // 0x6a - "ke", // 0x6b - "kaai", // 0x6c - "ki", // 0x6d - "kii", // 0x6e - "ko", // 0x6f - "koo", // 0x70 - "koo", // 0x71 - "ka", // 0x72 - "kaa", // 0x73 - "kwe", // 0x74 - "kwe", // 0x75 - "kwi", // 0x76 - "kwi", // 0x77 - "kwii", // 0x78 - "kwii", // 0x79 - "kwo", // 0x7a - "kwo", // 0x7b - "kwoo", // 0x7c - "kwoo", // 0x7d - "kwa", // 0x7e - "kwa", // 0x7f - "kwaa", // 0x80 - "kwaa", // 0x81 - "kwaa", // 0x82 - "k", // 0x83 - "kw", // 0x84 - "keh", // 0x85 - "kih", // 0x86 - "koh", // 0x87 - "kah", // 0x88 - "ce", // 0x89 - "caai", // 0x8a - "ci", // 0x8b - "cii", // 0x8c - "co", // 0x8d - "coo", // 0x8e - "coo", // 0x8f - "ca", // 0x90 - "caa", // 0x91 - "cwe", // 0x92 - "cwe", // 0x93 - "cwi", // 0x94 - "cwi", // 0x95 - "cwii", // 0x96 - "cwii", // 0x97 - "cwo", // 0x98 - "cwo", // 0x99 - "cwoo", // 0x9a - "cwoo", // 0x9b - "cwa", // 0x9c - "cwa", // 0x9d - "cwaa", // 0x9e - "cwaa", // 0x9f - "cwaa", // 0xa0 - "c", // 0xa1 - "th", // 0xa2 - "me", // 0xa3 - "maai", // 0xa4 - "mi", // 0xa5 - "mii", // 0xa6 - "mo", // 0xa7 - "moo", // 0xa8 - "moo", // 0xa9 - "ma", // 0xaa - "maa", // 0xab - "mwe", // 0xac - "mwe", // 0xad - "mwi", // 0xae - "mwi", // 0xaf - "mwii", // 0xb0 - "mwii", // 0xb1 - "mwo", // 0xb2 - "mwo", // 0xb3 - "mwoo", // 0xb4 - "mwoo", // 0xb5 - "mwa", // 0xb6 - "mwa", // 0xb7 - "mwaa", // 0xb8 - "mwaa", // 0xb9 - "mwaa", // 0xba - "m", // 0xbb - "m", // 0xbc - "mh", // 0xbd - "m", // 0xbe - "m", // 0xbf - "ne", // 0xc0 - "naai", // 0xc1 - "ni", // 0xc2 - "nii", // 0xc3 - "no", // 0xc4 - "noo", // 0xc5 - "noo", // 0xc6 - "na", // 0xc7 - "naa", // 0xc8 - "nwe", // 0xc9 - "nwe", // 0xca - "nwa", // 0xcb - "nwa", // 0xcc - "nwaa", // 0xcd - "nwaa", // 0xce - "nwaa", // 0xcf - "n", // 0xd0 - "ng", // 0xd1 - "nh", // 0xd2 - "le", // 0xd3 - "laai", // 0xd4 - "li", // 0xd5 - "lii", // 0xd6 - "lo", // 0xd7 - "loo", // 0xd8 - "loo", // 0xd9 - "la", // 0xda - "laa", // 0xdb - "lwe", // 0xdc - "lwe", // 0xdd - "lwi", // 0xde - "lwi", // 0xdf - "lwii", // 0xe0 - "lwii", // 0xe1 - "lwo", // 0xe2 - "lwo", // 0xe3 - "lwoo", // 0xe4 - "lwoo", // 0xe5 - "lwa", // 0xe6 - "lwa", // 0xe7 - "lwaa", // 0xe8 - "lwaa", // 0xe9 - "l", // 0xea - "l", // 0xeb - "l", // 0xec - "se", // 0xed - "saai", // 0xee - "si", // 0xef - "sii", // 0xf0 - "so", // 0xf1 - "soo", // 0xf2 - "soo", // 0xf3 - "sa", // 0xf4 - "saa", // 0xf5 - "swe", // 0xf6 - "swe", // 0xf7 - "swi", // 0xf8 - "swi", // 0xf9 - "swii", // 0xfa - "swii", // 0xfb - "swo", // 0xfc - "swo", // 0xfd - "swoo", // 0xfe - "swoo", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x015.go b/vendor/github.com/mozillazg/go-unidecode/table/x015.go deleted file mode 100644 index 154d94d..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x015.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x015 = []string{ - "swa", // 0x00 - "swa", // 0x01 - "swaa", // 0x02 - "swaa", // 0x03 - "swaa", // 0x04 - "s", // 0x05 - "s", // 0x06 - "sw", // 0x07 - "s", // 0x08 - "sk", // 0x09 - "skw", // 0x0a - "sW", // 0x0b - "spwa", // 0x0c - "stwa", // 0x0d - "skwa", // 0x0e - "scwa", // 0x0f - "she", // 0x10 - "shi", // 0x11 - "shii", // 0x12 - "sho", // 0x13 - "shoo", // 0x14 - "sha", // 0x15 - "shaa", // 0x16 - "shwe", // 0x17 - "shwe", // 0x18 - "shwi", // 0x19 - "shwi", // 0x1a - "shwii", // 0x1b - "shwii", // 0x1c - "shwo", // 0x1d - "shwo", // 0x1e - "shwoo", // 0x1f - "shwoo", // 0x20 - "shwa", // 0x21 - "shwa", // 0x22 - "shwaa", // 0x23 - "shwaa", // 0x24 - "sh", // 0x25 - "ye", // 0x26 - "yaai", // 0x27 - "yi", // 0x28 - "yii", // 0x29 - "yo", // 0x2a - "yoo", // 0x2b - "yoo", // 0x2c - "ya", // 0x2d - "yaa", // 0x2e - "ywe", // 0x2f - "ywe", // 0x30 - "ywi", // 0x31 - "ywi", // 0x32 - "ywii", // 0x33 - "ywii", // 0x34 - "ywo", // 0x35 - "ywo", // 0x36 - "ywoo", // 0x37 - "ywoo", // 0x38 - "ywa", // 0x39 - "ywa", // 0x3a - "ywaa", // 0x3b - "ywaa", // 0x3c - "ywaa", // 0x3d - "y", // 0x3e - "y", // 0x3f - "y", // 0x40 - "yi", // 0x41 - "re", // 0x42 - "re", // 0x43 - "le", // 0x44 - "raai", // 0x45 - "ri", // 0x46 - "rii", // 0x47 - "ro", // 0x48 - "roo", // 0x49 - "lo", // 0x4a - "ra", // 0x4b - "raa", // 0x4c - "la", // 0x4d - "rwaa", // 0x4e - "rwaa", // 0x4f - "r", // 0x50 - "r", // 0x51 - "r", // 0x52 - "fe", // 0x53 - "faai", // 0x54 - "fi", // 0x55 - "fii", // 0x56 - "fo", // 0x57 - "foo", // 0x58 - "fa", // 0x59 - "faa", // 0x5a - "fwaa", // 0x5b - "fwaa", // 0x5c - "f", // 0x5d - "the", // 0x5e - "the", // 0x5f - "thi", // 0x60 - "thi", // 0x61 - "thii", // 0x62 - "thii", // 0x63 - "tho", // 0x64 - "thoo", // 0x65 - "tha", // 0x66 - "thaa", // 0x67 - "thwaa", // 0x68 - "thwaa", // 0x69 - "th", // 0x6a - "tthe", // 0x6b - "tthi", // 0x6c - "ttho", // 0x6d - "ttha", // 0x6e - "tth", // 0x6f - "tye", // 0x70 - "tyi", // 0x71 - "tyo", // 0x72 - "tya", // 0x73 - "he", // 0x74 - "hi", // 0x75 - "hii", // 0x76 - "ho", // 0x77 - "hoo", // 0x78 - "ha", // 0x79 - "haa", // 0x7a - "h", // 0x7b - "h", // 0x7c - "hk", // 0x7d - "qaai", // 0x7e - "qi", // 0x7f - "qii", // 0x80 - "qo", // 0x81 - "qoo", // 0x82 - "qa", // 0x83 - "qaa", // 0x84 - "q", // 0x85 - "tlhe", // 0x86 - "tlhi", // 0x87 - "tlho", // 0x88 - "tlha", // 0x89 - "re", // 0x8a - "ri", // 0x8b - "ro", // 0x8c - "ra", // 0x8d - "ngaai", // 0x8e - "ngi", // 0x8f - "ngii", // 0x90 - "ngo", // 0x91 - "ngoo", // 0x92 - "nga", // 0x93 - "ngaa", // 0x94 - "ng", // 0x95 - "nng", // 0x96 - "she", // 0x97 - "shi", // 0x98 - "sho", // 0x99 - "sha", // 0x9a - "the", // 0x9b - "thi", // 0x9c - "tho", // 0x9d - "tha", // 0x9e - "th", // 0x9f - "lhi", // 0xa0 - "lhii", // 0xa1 - "lho", // 0xa2 - "lhoo", // 0xa3 - "lha", // 0xa4 - "lhaa", // 0xa5 - "lh", // 0xa6 - "the", // 0xa7 - "thi", // 0xa8 - "thii", // 0xa9 - "tho", // 0xaa - "thoo", // 0xab - "tha", // 0xac - "thaa", // 0xad - "th", // 0xae - "b", // 0xaf - "e", // 0xb0 - "i", // 0xb1 - "o", // 0xb2 - "a", // 0xb3 - "we", // 0xb4 - "wi", // 0xb5 - "wo", // 0xb6 - "wa", // 0xb7 - "ne", // 0xb8 - "ni", // 0xb9 - "no", // 0xba - "na", // 0xbb - "ke", // 0xbc - "ki", // 0xbd - "ko", // 0xbe - "ka", // 0xbf - "he", // 0xc0 - "hi", // 0xc1 - "ho", // 0xc2 - "ha", // 0xc3 - "ghu", // 0xc4 - "gho", // 0xc5 - "ghe", // 0xc6 - "ghee", // 0xc7 - "ghi", // 0xc8 - "gha", // 0xc9 - "ru", // 0xca - "ro", // 0xcb - "re", // 0xcc - "ree", // 0xcd - "ri", // 0xce - "ra", // 0xcf - "wu", // 0xd0 - "wo", // 0xd1 - "we", // 0xd2 - "wee", // 0xd3 - "wi", // 0xd4 - "wa", // 0xd5 - "hwu", // 0xd6 - "hwo", // 0xd7 - "hwe", // 0xd8 - "hwee", // 0xd9 - "hwi", // 0xda - "hwa", // 0xdb - "thu", // 0xdc - "tho", // 0xdd - "the", // 0xde - "thee", // 0xdf - "thi", // 0xe0 - "tha", // 0xe1 - "ttu", // 0xe2 - "tto", // 0xe3 - "tte", // 0xe4 - "ttee", // 0xe5 - "tti", // 0xe6 - "tta", // 0xe7 - "pu", // 0xe8 - "po", // 0xe9 - "pe", // 0xea - "pee", // 0xeb - "pi", // 0xec - "pa", // 0xed - "p", // 0xee - "gu", // 0xef - "go", // 0xf0 - "ge", // 0xf1 - "gee", // 0xf2 - "gi", // 0xf3 - "ga", // 0xf4 - "khu", // 0xf5 - "kho", // 0xf6 - "khe", // 0xf7 - "khee", // 0xf8 - "khi", // 0xf9 - "kha", // 0xfa - "kku", // 0xfb - "kko", // 0xfc - "kke", // 0xfd - "kkee", // 0xfe - "kki", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x016.go b/vendor/github.com/mozillazg/go-unidecode/table/x016.go deleted file mode 100644 index e8f482e..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x016.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x016 = []string{ - "kka", // 0x00 - "kk", // 0x01 - "nu", // 0x02 - "no", // 0x03 - "ne", // 0x04 - "nee", // 0x05 - "ni", // 0x06 - "na", // 0x07 - "mu", // 0x08 - "mo", // 0x09 - "me", // 0x0a - "mee", // 0x0b - "mi", // 0x0c - "ma", // 0x0d - "yu", // 0x0e - "yo", // 0x0f - "ye", // 0x10 - "yee", // 0x11 - "yi", // 0x12 - "ya", // 0x13 - "ju", // 0x14 - "ju", // 0x15 - "jo", // 0x16 - "je", // 0x17 - "jee", // 0x18 - "ji", // 0x19 - "ji", // 0x1a - "ja", // 0x1b - "jju", // 0x1c - "jjo", // 0x1d - "jje", // 0x1e - "jjee", // 0x1f - "jji", // 0x20 - "jja", // 0x21 - "lu", // 0x22 - "lo", // 0x23 - "le", // 0x24 - "lee", // 0x25 - "li", // 0x26 - "la", // 0x27 - "dlu", // 0x28 - "dlo", // 0x29 - "dle", // 0x2a - "dlee", // 0x2b - "dli", // 0x2c - "dla", // 0x2d - "lhu", // 0x2e - "lho", // 0x2f - "lhe", // 0x30 - "lhee", // 0x31 - "lhi", // 0x32 - "lha", // 0x33 - "tlhu", // 0x34 - "tlho", // 0x35 - "tlhe", // 0x36 - "tlhee", // 0x37 - "tlhi", // 0x38 - "tlha", // 0x39 - "tlu", // 0x3a - "tlo", // 0x3b - "tle", // 0x3c - "tlee", // 0x3d - "tli", // 0x3e - "tla", // 0x3f - "zu", // 0x40 - "zo", // 0x41 - "ze", // 0x42 - "zee", // 0x43 - "zi", // 0x44 - "za", // 0x45 - "z", // 0x46 - "z", // 0x47 - "dzu", // 0x48 - "dzo", // 0x49 - "dze", // 0x4a - "dzee", // 0x4b - "dzi", // 0x4c - "dza", // 0x4d - "su", // 0x4e - "so", // 0x4f - "se", // 0x50 - "see", // 0x51 - "si", // 0x52 - "sa", // 0x53 - "shu", // 0x54 - "sho", // 0x55 - "she", // 0x56 - "shee", // 0x57 - "shi", // 0x58 - "sha", // 0x59 - "sh", // 0x5a - "tsu", // 0x5b - "tso", // 0x5c - "tse", // 0x5d - "tsee", // 0x5e - "tsi", // 0x5f - "tsa", // 0x60 - "chu", // 0x61 - "cho", // 0x62 - "che", // 0x63 - "chee", // 0x64 - "chi", // 0x65 - "cha", // 0x66 - "ttsu", // 0x67 - "ttso", // 0x68 - "ttse", // 0x69 - "ttsee", // 0x6a - "ttsi", // 0x6b - "ttsa", // 0x6c - "X", // 0x6d - ".", // 0x6e - "qai", // 0x6f - "ngai", // 0x70 - "nngi", // 0x71 - "nngii", // 0x72 - "nngo", // 0x73 - "nngoo", // 0x74 - "nnga", // 0x75 - "nngaa", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - " ", // 0x80 - "b", // 0x81 - "l", // 0x82 - "f", // 0x83 - "s", // 0x84 - "n", // 0x85 - "h", // 0x86 - "d", // 0x87 - "t", // 0x88 - "c", // 0x89 - "q", // 0x8a - "m", // 0x8b - "g", // 0x8c - "ng", // 0x8d - "z", // 0x8e - "r", // 0x8f - "a", // 0x90 - "o", // 0x91 - "u", // 0x92 - "e", // 0x93 - "i", // 0x94 - "ch", // 0x95 - "th", // 0x96 - "ph", // 0x97 - "p", // 0x98 - "x", // 0x99 - "p", // 0x9a - "<", // 0x9b - ">", // 0x9c - "[?]", // 0x9d - "[?]", // 0x9e - "[?]", // 0x9f - "f", // 0xa0 - "v", // 0xa1 - "u", // 0xa2 - "yr", // 0xa3 - "y", // 0xa4 - "w", // 0xa5 - "th", // 0xa6 - "th", // 0xa7 - "a", // 0xa8 - "o", // 0xa9 - "ac", // 0xaa - "ae", // 0xab - "o", // 0xac - "o", // 0xad - "o", // 0xae - "oe", // 0xaf - "on", // 0xb0 - "r", // 0xb1 - "k", // 0xb2 - "c", // 0xb3 - "k", // 0xb4 - "g", // 0xb5 - "ng", // 0xb6 - "g", // 0xb7 - "g", // 0xb8 - "w", // 0xb9 - "h", // 0xba - "h", // 0xbb - "h", // 0xbc - "h", // 0xbd - "n", // 0xbe - "n", // 0xbf - "n", // 0xc0 - "i", // 0xc1 - "e", // 0xc2 - "j", // 0xc3 - "g", // 0xc4 - "ae", // 0xc5 - "a", // 0xc6 - "eo", // 0xc7 - "p", // 0xc8 - "z", // 0xc9 - "s", // 0xca - "s", // 0xcb - "s", // 0xcc - "c", // 0xcd - "z", // 0xce - "t", // 0xcf - "t", // 0xd0 - "d", // 0xd1 - "b", // 0xd2 - "b", // 0xd3 - "p", // 0xd4 - "p", // 0xd5 - "e", // 0xd6 - "m", // 0xd7 - "m", // 0xd8 - "m", // 0xd9 - "l", // 0xda - "l", // 0xdb - "ng", // 0xdc - "ng", // 0xdd - "d", // 0xde - "o", // 0xdf - "ear", // 0xe0 - "ior", // 0xe1 - "qu", // 0xe2 - "qu", // 0xe3 - "qu", // 0xe4 - "s", // 0xe5 - "yr", // 0xe6 - "yr", // 0xe7 - "yr", // 0xe8 - "q", // 0xe9 - "x", // 0xea - ".", // 0xeb - ":", // 0xec - "+", // 0xed - "17", // 0xee - "18", // 0xef - "19", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x017.go b/vendor/github.com/mozillazg/go-unidecode/table/x017.go deleted file mode 100644 index 39bcb2a..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x017.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x017 = []string{ - "[?]", // 0x00 - "[?]", // 0x01 - "[?]", // 0x02 - "[?]", // 0x03 - "[?]", // 0x04 - "[?]", // 0x05 - "[?]", // 0x06 - "[?]", // 0x07 - "[?]", // 0x08 - "[?]", // 0x09 - "[?]", // 0x0a - "[?]", // 0x0b - "[?]", // 0x0c - "[?]", // 0x0d - "[?]", // 0x0e - "[?]", // 0x0f - "[?]", // 0x10 - "[?]", // 0x11 - "[?]", // 0x12 - "[?]", // 0x13 - "[?]", // 0x14 - "[?]", // 0x15 - "[?]", // 0x16 - "[?]", // 0x17 - "[?]", // 0x18 - "[?]", // 0x19 - "[?]", // 0x1a - "[?]", // 0x1b - "[?]", // 0x1c - "[?]", // 0x1d - "[?]", // 0x1e - "[?]", // 0x1f - "[?]", // 0x20 - "[?]", // 0x21 - "[?]", // 0x22 - "[?]", // 0x23 - "[?]", // 0x24 - "[?]", // 0x25 - "[?]", // 0x26 - "[?]", // 0x27 - "[?]", // 0x28 - "[?]", // 0x29 - "[?]", // 0x2a - "[?]", // 0x2b - "[?]", // 0x2c - "[?]", // 0x2d - "[?]", // 0x2e - "[?]", // 0x2f - "[?]", // 0x30 - "[?]", // 0x31 - "[?]", // 0x32 - "[?]", // 0x33 - "[?]", // 0x34 - "[?]", // 0x35 - "[?]", // 0x36 - "[?]", // 0x37 - "[?]", // 0x38 - "[?]", // 0x39 - "[?]", // 0x3a - "[?]", // 0x3b - "[?]", // 0x3c - "[?]", // 0x3d - "[?]", // 0x3e - "[?]", // 0x3f - "[?]", // 0x40 - "[?]", // 0x41 - "[?]", // 0x42 - "[?]", // 0x43 - "[?]", // 0x44 - "[?]", // 0x45 - "[?]", // 0x46 - "[?]", // 0x47 - "[?]", // 0x48 - "[?]", // 0x49 - "[?]", // 0x4a - "[?]", // 0x4b - "[?]", // 0x4c - "[?]", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "[?]", // 0x50 - "[?]", // 0x51 - "[?]", // 0x52 - "[?]", // 0x53 - "[?]", // 0x54 - "[?]", // 0x55 - "[?]", // 0x56 - "[?]", // 0x57 - "[?]", // 0x58 - "[?]", // 0x59 - "[?]", // 0x5a - "[?]", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "[?]", // 0x60 - "[?]", // 0x61 - "[?]", // 0x62 - "[?]", // 0x63 - "[?]", // 0x64 - "[?]", // 0x65 - "[?]", // 0x66 - "[?]", // 0x67 - "[?]", // 0x68 - "[?]", // 0x69 - "[?]", // 0x6a - "[?]", // 0x6b - "[?]", // 0x6c - "[?]", // 0x6d - "[?]", // 0x6e - "[?]", // 0x6f - "[?]", // 0x70 - "[?]", // 0x71 - "[?]", // 0x72 - "[?]", // 0x73 - "[?]", // 0x74 - "[?]", // 0x75 - "[?]", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "k", // 0x80 - "kh", // 0x81 - "g", // 0x82 - "gh", // 0x83 - "ng", // 0x84 - "c", // 0x85 - "ch", // 0x86 - "j", // 0x87 - "jh", // 0x88 - "ny", // 0x89 - "t", // 0x8a - "tth", // 0x8b - "d", // 0x8c - "ddh", // 0x8d - "nn", // 0x8e - "t", // 0x8f - "th", // 0x90 - "d", // 0x91 - "dh", // 0x92 - "n", // 0x93 - "p", // 0x94 - "ph", // 0x95 - "b", // 0x96 - "bh", // 0x97 - "m", // 0x98 - "y", // 0x99 - "r", // 0x9a - "l", // 0x9b - "v", // 0x9c - "sh", // 0x9d - "ss", // 0x9e - "s", // 0x9f - "h", // 0xa0 - "l", // 0xa1 - "q", // 0xa2 - "a", // 0xa3 - "aa", // 0xa4 - "i", // 0xa5 - "ii", // 0xa6 - "u", // 0xa7 - "uk", // 0xa8 - "uu", // 0xa9 - "uuv", // 0xaa - "ry", // 0xab - "ryy", // 0xac - "ly", // 0xad - "lyy", // 0xae - "e", // 0xaf - "ai", // 0xb0 - "oo", // 0xb1 - "oo", // 0xb2 - "au", // 0xb3 - "a", // 0xb4 - "aa", // 0xb5 - "aa", // 0xb6 - "i", // 0xb7 - "ii", // 0xb8 - "y", // 0xb9 - "yy", // 0xba - "u", // 0xbb - "uu", // 0xbc - "ua", // 0xbd - "oe", // 0xbe - "ya", // 0xbf - "ie", // 0xc0 - "e", // 0xc1 - "ae", // 0xc2 - "ai", // 0xc3 - "oo", // 0xc4 - "au", // 0xc5 - "M", // 0xc6 - "H", // 0xc7 - "a`", // 0xc8 - "", // 0xc9 - "", // 0xca - "", // 0xcb - "r", // 0xcc - "", // 0xcd - "!", // 0xce - "", // 0xcf - "", // 0xd0 - "", // 0xd1 - "", // 0xd2 - "", // 0xd3 - ".", // 0xd4 - " // ", // 0xd5 - ":", // 0xd6 - "+", // 0xd7 - "++", // 0xd8 - " * ", // 0xd9 - " /// ", // 0xda - "KR", // 0xdb - "'", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "0", // 0xe0 - "1", // 0xe1 - "2", // 0xe2 - "3", // 0xe3 - "4", // 0xe4 - "5", // 0xe5 - "6", // 0xe6 - "7", // 0xe7 - "8", // 0xe8 - "9", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x018.go b/vendor/github.com/mozillazg/go-unidecode/table/x018.go deleted file mode 100644 index 9e3ba78..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x018.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x018 = []string{ - " @ ", // 0x00 - " ... ", // 0x01 - ", ", // 0x02 - ". ", // 0x03 - ": ", // 0x04 - " // ", // 0x05 - "", // 0x06 - "-", // 0x07 - ", ", // 0x08 - ". ", // 0x09 - "", // 0x0a - "", // 0x0b - "", // 0x0c - "", // 0x0d - "", // 0x0e - "[?]", // 0x0f - "0", // 0x10 - "1", // 0x11 - "2", // 0x12 - "3", // 0x13 - "4", // 0x14 - "5", // 0x15 - "6", // 0x16 - "7", // 0x17 - "8", // 0x18 - "9", // 0x19 - "[?]", // 0x1a - "[?]", // 0x1b - "[?]", // 0x1c - "[?]", // 0x1d - "[?]", // 0x1e - "[?]", // 0x1f - "a", // 0x20 - "e", // 0x21 - "i", // 0x22 - "o", // 0x23 - "u", // 0x24 - "O", // 0x25 - "U", // 0x26 - "ee", // 0x27 - "n", // 0x28 - "ng", // 0x29 - "b", // 0x2a - "p", // 0x2b - "q", // 0x2c - "g", // 0x2d - "m", // 0x2e - "l", // 0x2f - "s", // 0x30 - "sh", // 0x31 - "t", // 0x32 - "d", // 0x33 - "ch", // 0x34 - "j", // 0x35 - "y", // 0x36 - "r", // 0x37 - "w", // 0x38 - "f", // 0x39 - "k", // 0x3a - "kha", // 0x3b - "ts", // 0x3c - "z", // 0x3d - "h", // 0x3e - "zr", // 0x3f - "lh", // 0x40 - "zh", // 0x41 - "ch", // 0x42 - "-", // 0x43 - "e", // 0x44 - "i", // 0x45 - "o", // 0x46 - "u", // 0x47 - "O", // 0x48 - "U", // 0x49 - "ng", // 0x4a - "b", // 0x4b - "p", // 0x4c - "q", // 0x4d - "g", // 0x4e - "m", // 0x4f - "t", // 0x50 - "d", // 0x51 - "ch", // 0x52 - "j", // 0x53 - "ts", // 0x54 - "y", // 0x55 - "w", // 0x56 - "k", // 0x57 - "g", // 0x58 - "h", // 0x59 - "jy", // 0x5a - "ny", // 0x5b - "dz", // 0x5c - "e", // 0x5d - "i", // 0x5e - "iy", // 0x5f - "U", // 0x60 - "u", // 0x61 - "ng", // 0x62 - "k", // 0x63 - "g", // 0x64 - "h", // 0x65 - "p", // 0x66 - "sh", // 0x67 - "t", // 0x68 - "d", // 0x69 - "j", // 0x6a - "f", // 0x6b - "g", // 0x6c - "h", // 0x6d - "ts", // 0x6e - "z", // 0x6f - "r", // 0x70 - "ch", // 0x71 - "zh", // 0x72 - "i", // 0x73 - "k", // 0x74 - "r", // 0x75 - "f", // 0x76 - "zh", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "[?]", // 0x80 - "H", // 0x81 - "X", // 0x82 - "W", // 0x83 - "M", // 0x84 - " 3 ", // 0x85 - " 333 ", // 0x86 - "a", // 0x87 - "i", // 0x88 - "k", // 0x89 - "ng", // 0x8a - "c", // 0x8b - "tt", // 0x8c - "tth", // 0x8d - "dd", // 0x8e - "nn", // 0x8f - "t", // 0x90 - "d", // 0x91 - "p", // 0x92 - "ph", // 0x93 - "ss", // 0x94 - "zh", // 0x95 - "z", // 0x96 - "a", // 0x97 - "t", // 0x98 - "zh", // 0x99 - "gh", // 0x9a - "ng", // 0x9b - "c", // 0x9c - "jh", // 0x9d - "tta", // 0x9e - "ddh", // 0x9f - "t", // 0xa0 - "dh", // 0xa1 - "ss", // 0xa2 - "cy", // 0xa3 - "zh", // 0xa4 - "z", // 0xa5 - "u", // 0xa6 - "y", // 0xa7 - "bh", // 0xa8 - "'", // 0xa9 - "[?]", // 0xaa - "[?]", // 0xab - "[?]", // 0xac - "[?]", // 0xad - "[?]", // 0xae - "[?]", // 0xaf - "[?]", // 0xb0 - "[?]", // 0xb1 - "[?]", // 0xb2 - "[?]", // 0xb3 - "[?]", // 0xb4 - "[?]", // 0xb5 - "[?]", // 0xb6 - "[?]", // 0xb7 - "[?]", // 0xb8 - "[?]", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "[?]", // 0xbc - "[?]", // 0xbd - "[?]", // 0xbe - "[?]", // 0xbf - "[?]", // 0xc0 - "[?]", // 0xc1 - "[?]", // 0xc2 - "[?]", // 0xc3 - "[?]", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x01d.go b/vendor/github.com/mozillazg/go-unidecode/table/x01d.go deleted file mode 100644 index e202aee..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x01d.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x01d = []string{ - "", // 0x00 - "", // 0x01 - "", // 0x02 - "", // 0x03 - "", // 0x04 - "", // 0x05 - "", // 0x06 - "", // 0x07 - "", // 0x08 - "", // 0x09 - "", // 0x0a - "", // 0x0b - "", // 0x0c - "", // 0x0d - "", // 0x0e - "", // 0x0f - "", // 0x10 - "", // 0x11 - "", // 0x12 - "", // 0x13 - "", // 0x14 - "", // 0x15 - "", // 0x16 - "", // 0x17 - "", // 0x18 - "", // 0x19 - "", // 0x1a - "", // 0x1b - "", // 0x1c - "", // 0x1d - "", // 0x1e - "", // 0x1f - "", // 0x20 - "", // 0x21 - "", // 0x22 - "", // 0x23 - "", // 0x24 - "", // 0x25 - "", // 0x26 - "", // 0x27 - "", // 0x28 - "", // 0x29 - "", // 0x2a - "", // 0x2b - "", // 0x2c - "", // 0x2d - "", // 0x2e - "", // 0x2f - "", // 0x30 - "", // 0x31 - "", // 0x32 - "", // 0x33 - "", // 0x34 - "", // 0x35 - "", // 0x36 - "", // 0x37 - "", // 0x38 - "", // 0x39 - "", // 0x3a - "", // 0x3b - "", // 0x3c - "", // 0x3d - "", // 0x3e - "", // 0x3f - "", // 0x40 - "", // 0x41 - "", // 0x42 - "", // 0x43 - "", // 0x44 - "", // 0x45 - "", // 0x46 - "", // 0x47 - "", // 0x48 - "", // 0x49 - "", // 0x4a - "", // 0x4b - "", // 0x4c - "", // 0x4d - "", // 0x4e - "", // 0x4f - "", // 0x50 - "", // 0x51 - "", // 0x52 - "", // 0x53 - "", // 0x54 - "", // 0x55 - "", // 0x56 - "", // 0x57 - "", // 0x58 - "", // 0x59 - "", // 0x5a - "", // 0x5b - "", // 0x5c - "", // 0x5d - "", // 0x5e - "", // 0x5f - "", // 0x60 - "", // 0x61 - "", // 0x62 - "", // 0x63 - "", // 0x64 - "", // 0x65 - "", // 0x66 - "", // 0x67 - "", // 0x68 - "", // 0x69 - "", // 0x6a - "", // 0x6b - "b", // 0x6c - "d", // 0x6d - "f", // 0x6e - "m", // 0x6f - "n", // 0x70 - "p", // 0x71 - "r", // 0x72 - "r", // 0x73 - "s", // 0x74 - "t", // 0x75 - "z", // 0x76 - "g", // 0x77 - "", // 0x78 - "", // 0x79 - "", // 0x7a - "", // 0x7b - "", // 0x7c - "p", // 0x7d - "", // 0x7e - "", // 0x7f - "b", // 0x80 - "d", // 0x81 - "f", // 0x82 - "g", // 0x83 - "k", // 0x84 - "l", // 0x85 - "m", // 0x86 - "n", // 0x87 - "p", // 0x88 - "r", // 0x89 - "s", // 0x8a - "", // 0x8b - "v", // 0x8c - "x", // 0x8d - "z", // 0x8e - "", // 0x8f - "", // 0x90 - "", // 0x91 - "", // 0x92 - "", // 0x93 - "", // 0x94 - "", // 0x95 - "", // 0x96 - "", // 0x97 - "", // 0x98 - "", // 0x99 - "", // 0x9a - "", // 0x9b - "", // 0x9c - "", // 0x9d - "", // 0x9e - "", // 0x9f - "", // 0xa0 - "", // 0xa1 - "", // 0xa2 - "", // 0xa3 - "", // 0xa4 - "", // 0xa5 - "", // 0xa6 - "", // 0xa7 - "", // 0xa8 - "", // 0xa9 - "", // 0xaa - "", // 0xab - "", // 0xac - "", // 0xad - "", // 0xae - "", // 0xaf - "", // 0xb0 - "", // 0xb1 - "", // 0xb2 - "", // 0xb3 - "", // 0xb4 - "", // 0xb5 - "", // 0xb6 - "", // 0xb7 - "", // 0xb8 - "", // 0xb9 - "", // 0xba - "", // 0xbb - "", // 0xbc - "", // 0xbd - "", // 0xbe - "", // 0xbf - "", // 0xc0 - "", // 0xc1 - "", // 0xc2 - "", // 0xc3 - "", // 0xc4 - "", // 0xc5 - "", // 0xc6 - "", // 0xc7 - "", // 0xc8 - "", // 0xc9 - "", // 0xca - "", // 0xcb - "", // 0xcc - "", // 0xcd - "", // 0xce - "", // 0xcf - "", // 0xd0 - "", // 0xd1 - "", // 0xd2 - "", // 0xd3 - "", // 0xd4 - "", // 0xd5 - "", // 0xd6 - "", // 0xd7 - "", // 0xd8 - "", // 0xd9 - "", // 0xda - "", // 0xdb - "", // 0xdc - "", // 0xdd - "", // 0xde - "", // 0xdf - "", // 0xe0 - "", // 0xe1 - "", // 0xe2 - "", // 0xe3 - "", // 0xe4 - "", // 0xe5 - "", // 0xe6 - "", // 0xe7 - "", // 0xe8 - "", // 0xe9 - "", // 0xea - "", // 0xeb - "", // 0xec - "", // 0xed - "", // 0xee - "", // 0xef - "", // 0xf0 - "", // 0xf1 - "", // 0xf2 - "", // 0xf3 - "", // 0xf4 - "", // 0xf5 - "", // 0xf6 - "", // 0xf7 - "", // 0xf8 - "", // 0xf9 - "", // 0xfa - "", // 0xfb - "", // 0xfc - "", // 0xfd - "", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x01e.go b/vendor/github.com/mozillazg/go-unidecode/table/x01e.go deleted file mode 100644 index e76b617..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x01e.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x01e = []string{ - "A", // 0x00 - "a", // 0x01 - "B", // 0x02 - "b", // 0x03 - "B", // 0x04 - "b", // 0x05 - "B", // 0x06 - "b", // 0x07 - "C", // 0x08 - "c", // 0x09 - "D", // 0x0a - "d", // 0x0b - "D", // 0x0c - "d", // 0x0d - "D", // 0x0e - "d", // 0x0f - "D", // 0x10 - "d", // 0x11 - "D", // 0x12 - "d", // 0x13 - "E", // 0x14 - "e", // 0x15 - "E", // 0x16 - "e", // 0x17 - "E", // 0x18 - "e", // 0x19 - "E", // 0x1a - "e", // 0x1b - "E", // 0x1c - "e", // 0x1d - "F", // 0x1e - "f", // 0x1f - "G", // 0x20 - "g", // 0x21 - "H", // 0x22 - "h", // 0x23 - "H", // 0x24 - "h", // 0x25 - "H", // 0x26 - "h", // 0x27 - "H", // 0x28 - "h", // 0x29 - "H", // 0x2a - "h", // 0x2b - "I", // 0x2c - "i", // 0x2d - "I", // 0x2e - "i", // 0x2f - "K", // 0x30 - "k", // 0x31 - "K", // 0x32 - "k", // 0x33 - "K", // 0x34 - "k", // 0x35 - "L", // 0x36 - "l", // 0x37 - "L", // 0x38 - "l", // 0x39 - "L", // 0x3a - "l", // 0x3b - "L", // 0x3c - "l", // 0x3d - "M", // 0x3e - "m", // 0x3f - "M", // 0x40 - "m", // 0x41 - "M", // 0x42 - "m", // 0x43 - "N", // 0x44 - "n", // 0x45 - "N", // 0x46 - "n", // 0x47 - "N", // 0x48 - "n", // 0x49 - "N", // 0x4a - "n", // 0x4b - "O", // 0x4c - "o", // 0x4d - "O", // 0x4e - "o", // 0x4f - "O", // 0x50 - "o", // 0x51 - "O", // 0x52 - "o", // 0x53 - "P", // 0x54 - "p", // 0x55 - "P", // 0x56 - "p", // 0x57 - "R", // 0x58 - "r", // 0x59 - "R", // 0x5a - "r", // 0x5b - "R", // 0x5c - "r", // 0x5d - "R", // 0x5e - "r", // 0x5f - "S", // 0x60 - "s", // 0x61 - "S", // 0x62 - "s", // 0x63 - "S", // 0x64 - "s", // 0x65 - "S", // 0x66 - "s", // 0x67 - "S", // 0x68 - "s", // 0x69 - "T", // 0x6a - "t", // 0x6b - "T", // 0x6c - "t", // 0x6d - "T", // 0x6e - "t", // 0x6f - "T", // 0x70 - "t", // 0x71 - "U", // 0x72 - "u", // 0x73 - "U", // 0x74 - "u", // 0x75 - "U", // 0x76 - "u", // 0x77 - "U", // 0x78 - "u", // 0x79 - "U", // 0x7a - "u", // 0x7b - "V", // 0x7c - "v", // 0x7d - "V", // 0x7e - "v", // 0x7f - "W", // 0x80 - "w", // 0x81 - "W", // 0x82 - "w", // 0x83 - "W", // 0x84 - "w", // 0x85 - "W", // 0x86 - "w", // 0x87 - "W", // 0x88 - "w", // 0x89 - "X", // 0x8a - "x", // 0x8b - "X", // 0x8c - "x", // 0x8d - "Y", // 0x8e - "y", // 0x8f - "Z", // 0x90 - "z", // 0x91 - "Z", // 0x92 - "z", // 0x93 - "Z", // 0x94 - "z", // 0x95 - "h", // 0x96 - "t", // 0x97 - "w", // 0x98 - "y", // 0x99 - "a", // 0x9a - "S", // 0x9b - "[?]", // 0x9c - "[?]", // 0x9d - "Ss", // 0x9e - "[?]", // 0x9f - "A", // 0xa0 - "a", // 0xa1 - "A", // 0xa2 - "a", // 0xa3 - "A", // 0xa4 - "a", // 0xa5 - "A", // 0xa6 - "a", // 0xa7 - "A", // 0xa8 - "a", // 0xa9 - "A", // 0xaa - "a", // 0xab - "A", // 0xac - "a", // 0xad - "A", // 0xae - "a", // 0xaf - "A", // 0xb0 - "a", // 0xb1 - "A", // 0xb2 - "a", // 0xb3 - "A", // 0xb4 - "a", // 0xb5 - "A", // 0xb6 - "a", // 0xb7 - "E", // 0xb8 - "e", // 0xb9 - "E", // 0xba - "e", // 0xbb - "E", // 0xbc - "e", // 0xbd - "E", // 0xbe - "e", // 0xbf - "E", // 0xc0 - "e", // 0xc1 - "E", // 0xc2 - "e", // 0xc3 - "E", // 0xc4 - "e", // 0xc5 - "E", // 0xc6 - "e", // 0xc7 - "I", // 0xc8 - "i", // 0xc9 - "I", // 0xca - "i", // 0xcb - "O", // 0xcc - "o", // 0xcd - "O", // 0xce - "o", // 0xcf - "O", // 0xd0 - "o", // 0xd1 - "O", // 0xd2 - "o", // 0xd3 - "O", // 0xd4 - "o", // 0xd5 - "O", // 0xd6 - "o", // 0xd7 - "O", // 0xd8 - "o", // 0xd9 - "O", // 0xda - "o", // 0xdb - "O", // 0xdc - "o", // 0xdd - "O", // 0xde - "o", // 0xdf - "O", // 0xe0 - "o", // 0xe1 - "O", // 0xe2 - "o", // 0xe3 - "U", // 0xe4 - "u", // 0xe5 - "U", // 0xe6 - "u", // 0xe7 - "U", // 0xe8 - "u", // 0xe9 - "U", // 0xea - "u", // 0xeb - "U", // 0xec - "u", // 0xed - "U", // 0xee - "u", // 0xef - "U", // 0xf0 - "u", // 0xf1 - "Y", // 0xf2 - "y", // 0xf3 - "Y", // 0xf4 - "y", // 0xf5 - "Y", // 0xf6 - "y", // 0xf7 - "Y", // 0xf8 - "y", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x01f.go b/vendor/github.com/mozillazg/go-unidecode/table/x01f.go deleted file mode 100644 index 25caca5..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x01f.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x01f = []string{ - "a", // 0x00 - "a", // 0x01 - "a", // 0x02 - "a", // 0x03 - "a", // 0x04 - "a", // 0x05 - "a", // 0x06 - "a", // 0x07 - "A", // 0x08 - "A", // 0x09 - "A", // 0x0a - "A", // 0x0b - "A", // 0x0c - "A", // 0x0d - "A", // 0x0e - "A", // 0x0f - "e", // 0x10 - "e", // 0x11 - "e", // 0x12 - "e", // 0x13 - "e", // 0x14 - "e", // 0x15 - "[?]", // 0x16 - "[?]", // 0x17 - "E", // 0x18 - "E", // 0x19 - "E", // 0x1a - "E", // 0x1b - "E", // 0x1c - "E", // 0x1d - "[?]", // 0x1e - "[?]", // 0x1f - "e", // 0x20 - "e", // 0x21 - "e", // 0x22 - "e", // 0x23 - "e", // 0x24 - "e", // 0x25 - "e", // 0x26 - "e", // 0x27 - "E", // 0x28 - "E", // 0x29 - "E", // 0x2a - "E", // 0x2b - "E", // 0x2c - "E", // 0x2d - "E", // 0x2e - "E", // 0x2f - "i", // 0x30 - "i", // 0x31 - "i", // 0x32 - "i", // 0x33 - "i", // 0x34 - "i", // 0x35 - "i", // 0x36 - "i", // 0x37 - "I", // 0x38 - "I", // 0x39 - "I", // 0x3a - "I", // 0x3b - "I", // 0x3c - "I", // 0x3d - "I", // 0x3e - "I", // 0x3f - "o", // 0x40 - "o", // 0x41 - "o", // 0x42 - "o", // 0x43 - "o", // 0x44 - "o", // 0x45 - "[?]", // 0x46 - "[?]", // 0x47 - "O", // 0x48 - "O", // 0x49 - "O", // 0x4a - "O", // 0x4b - "O", // 0x4c - "O", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "u", // 0x50 - "u", // 0x51 - "u", // 0x52 - "u", // 0x53 - "u", // 0x54 - "u", // 0x55 - "u", // 0x56 - "u", // 0x57 - "[?]", // 0x58 - "U", // 0x59 - "[?]", // 0x5a - "U", // 0x5b - "[?]", // 0x5c - "U", // 0x5d - "[?]", // 0x5e - "U", // 0x5f - "o", // 0x60 - "o", // 0x61 - "o", // 0x62 - "o", // 0x63 - "o", // 0x64 - "o", // 0x65 - "o", // 0x66 - "o", // 0x67 - "O", // 0x68 - "O", // 0x69 - "O", // 0x6a - "O", // 0x6b - "O", // 0x6c - "O", // 0x6d - "O", // 0x6e - "O", // 0x6f - "a", // 0x70 - "a", // 0x71 - "e", // 0x72 - "e", // 0x73 - "e", // 0x74 - "e", // 0x75 - "i", // 0x76 - "i", // 0x77 - "o", // 0x78 - "o", // 0x79 - "u", // 0x7a - "u", // 0x7b - "o", // 0x7c - "o", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "a", // 0x80 - "a", // 0x81 - "a", // 0x82 - "a", // 0x83 - "a", // 0x84 - "a", // 0x85 - "a", // 0x86 - "a", // 0x87 - "A", // 0x88 - "A", // 0x89 - "A", // 0x8a - "A", // 0x8b - "A", // 0x8c - "A", // 0x8d - "A", // 0x8e - "A", // 0x8f - "e", // 0x90 - "e", // 0x91 - "e", // 0x92 - "e", // 0x93 - "e", // 0x94 - "e", // 0x95 - "e", // 0x96 - "e", // 0x97 - "E", // 0x98 - "E", // 0x99 - "E", // 0x9a - "E", // 0x9b - "E", // 0x9c - "E", // 0x9d - "E", // 0x9e - "E", // 0x9f - "o", // 0xa0 - "o", // 0xa1 - "o", // 0xa2 - "o", // 0xa3 - "o", // 0xa4 - "o", // 0xa5 - "o", // 0xa6 - "o", // 0xa7 - "O", // 0xa8 - "O", // 0xa9 - "O", // 0xaa - "O", // 0xab - "O", // 0xac - "O", // 0xad - "O", // 0xae - "O", // 0xaf - "a", // 0xb0 - "a", // 0xb1 - "a", // 0xb2 - "a", // 0xb3 - "a", // 0xb4 - "[?]", // 0xb5 - "a", // 0xb6 - "a", // 0xb7 - "A", // 0xb8 - "A", // 0xb9 - "A", // 0xba - "A", // 0xbb - "A", // 0xbc - "'", // 0xbd - "i", // 0xbe - "'", // 0xbf - "~", // 0xc0 - "\"~", // 0xc1 - "e", // 0xc2 - "e", // 0xc3 - "e", // 0xc4 - "[?]", // 0xc5 - "e", // 0xc6 - "e", // 0xc7 - "E", // 0xc8 - "E", // 0xc9 - "E", // 0xca - "E", // 0xcb - "E", // 0xcc - "'`", // 0xcd - "''", // 0xce - "'~", // 0xcf - "i", // 0xd0 - "i", // 0xd1 - "i", // 0xd2 - "i", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "i", // 0xd6 - "i", // 0xd7 - "I", // 0xd8 - "I", // 0xd9 - "I", // 0xda - "I", // 0xdb - "[?]", // 0xdc - "`'", // 0xdd - "`'", // 0xde - "`~", // 0xdf - "u", // 0xe0 - "u", // 0xe1 - "u", // 0xe2 - "u", // 0xe3 - "R", // 0xe4 - "R", // 0xe5 - "u", // 0xe6 - "u", // 0xe7 - "U", // 0xe8 - "U", // 0xe9 - "U", // 0xea - "U", // 0xeb - "R", // 0xec - "\"`", // 0xed - "\"'", // 0xee - "`", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "o", // 0xf2 - "o", // 0xf3 - "o", // 0xf4 - "[?]", // 0xf5 - "o", // 0xf6 - "o", // 0xf7 - "O", // 0xf8 - "O", // 0xf9 - "O", // 0xfa - "O", // 0xfb - "O", // 0xfc - "'", // 0xfd - "`", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x020.go b/vendor/github.com/mozillazg/go-unidecode/table/x020.go deleted file mode 100644 index c6647be..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x020.go +++ /dev/null @@ -1,258 +0,0 @@ -package table - -var x020 = []string{ - " ", // 0x00 - " ", // 0x01 - " ", // 0x02 - " ", // 0x03 - " ", // 0x04 - " ", // 0x05 - " ", // 0x06 - " ", // 0x07 - " ", // 0x08 - " ", // 0x09 - " ", // 0x0a - " ", // 0x0b - "", // 0x0c - "", // 0x0d - "", // 0x0e - "", // 0x0f - "-", // 0x10 - "-", // 0x11 - "-", // 0x12 - "-", // 0x13 - "--", // 0x14 - "--", // 0x15 - "||", // 0x16 - "_", // 0x17 - "'", // 0x18 - "'", // 0x19 - ",", // 0x1a - "'", // 0x1b - "\"", // 0x1c - "\"", // 0x1d - ",,", // 0x1e - "\"", // 0x1f - "+", // 0x20 - "++", // 0x21 - "*", // 0x22 - "*>", // 0x23 - ".", // 0x24 - "..", // 0x25 - "...", // 0x26 - ".", // 0x27 - "\x0a", // 0x28 - "\x0a\x0a", // 0x29 - "", // 0x2a - "", // 0x2b - "", // 0x2c - "", // 0x2d - "", // 0x2e - " ", // 0x2f - "%0", // 0x30 - "%00", // 0x31 - "'", // 0x32 - "''", // 0x33 - "'''", // 0x34 - "`", // 0x35 - "``", // 0x36 - "```", // 0x37 - "^", // 0x38 - "<", // 0x39 - ">", // 0x3a - "*", // 0x3b - "!!", // 0x3c - "!?", // 0x3d - "-", // 0x3e - "_", // 0x3f - "-", // 0x40 - "^", // 0x41 - "***", // 0x42 - "--", // 0x43 - "/", // 0x44 - "-[", // 0x45 - "]-", // 0x46 - "??", // 0x47 - "?!", // 0x48 - "!?", // 0x49 - "7", // 0x4a - "PP", // 0x4b - "(]", // 0x4c - "[)", // 0x4d - "*", // 0x4e - "[?]", // 0x4f - "[?]", // 0x50 - "[?]", // 0x51 - "%", // 0x52 - "~", // 0x53 - "[?]", // 0x54 - "[?]", // 0x55 - "[?]", // 0x56 - "[?]", // 0x58 - "[?]", // 0x59 - "[?]", // 0x5a - "[?]", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "", // 0x60 - "[?]", // 0x61 - "[?]", // 0x62 - "[?]", // 0x63 - "[?]", // 0x64 - "[?]", // 0x65 - "[?]", // 0x66 - "[?]", // 0x67 - "[?]", // 0x68 - "[?]", // 0x69 - "", // 0x6a - "", // 0x6b - "", // 0x6c - "", // 0x6d - "", // 0x6e - "", // 0x6f - "0", // 0x70 - "", // 0x71 - "", // 0x72 - "", // 0x73 - "4", // 0x74 - "5", // 0x75 - "6", // 0x76 - "7", // 0x77 - "8", // 0x78 - "9", // 0x79 - "+", // 0x7a - "-", // 0x7b - "=", // 0x7c - "(", // 0x7d - ")", // 0x7e - "n", // 0x7f - "0", // 0x80 - "1", // 0x81 - "2", // 0x82 - "3", // 0x83 - "4", // 0x84 - "5", // 0x85 - "6", // 0x86 - "7", // 0x87 - "8", // 0x88 - "9", // 0x89 - "+", // 0x8a - "-", // 0x8b - "=", // 0x8c - "(", // 0x8d - ")", // 0x8e - "[?]", // 0x8f - "[?]", // 0x90 - "[?]", // 0x91 - "[?]", // 0x92 - "[?]", // 0x93 - "[?]", // 0x94 - "[?]", // 0x95 - "[?]", // 0x96 - "[?]", // 0x97 - "[?]", // 0x98 - "[?]", // 0x99 - "[?]", // 0x9a - "[?]", // 0x9b - "[?]", // 0x9c - "[?]", // 0x9d - "[?]", // 0x9e - "[?]", // 0x9f - "ECU", // 0xa0 - "CL", // 0xa1 - "Cr", // 0xa2 - "FF", // 0xa3 - "L", // 0xa4 - "mil", // 0xa5 - "N", // 0xa6 - "Pts", // 0xa7 - "Rs", // 0xa8 - "W", // 0xa9 - "NS", // 0xaa - "D", // 0xab - "EUR", // 0xac - "K", // 0xad - "T", // 0xae - "Dr", // 0xaf - "[?]", // 0xb0 - "[?]", // 0xb1 - "[?]", // 0xb2 - "[?]", // 0xb3 - "[?]", // 0xb4 - "[?]", // 0xb5 - "[?]", // 0xb6 - "[?]", // 0xb7 - "[?]", // 0xb8 - "[?]", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "[?]", // 0xbc - "[?]", // 0xbd - "[?]", // 0xbe - "[?]", // 0xbf - "[?]", // 0xc0 - "[?]", // 0xc1 - "[?]", // 0xc2 - "[?]", // 0xc3 - "[?]", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "", // 0xd0 - "", // 0xd1 - "", // 0xd2 - "", // 0xd3 - "", // 0xd4 - "", // 0xd5 - "", // 0xd6 - "", // 0xd7 - "", // 0xd8 - "", // 0xd9 - "", // 0xda - "", // 0xdb - "", // 0xdc - "", // 0xdd - "", // 0xde - "", // 0xdf - "", // 0xe0 - "", // 0xe1 - "", // 0xe2 - "", // 0xe3 - "[?]", // 0xe4 - "", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x021.go b/vendor/github.com/mozillazg/go-unidecode/table/x021.go deleted file mode 100644 index a11be61..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x021.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x021 = []string{ - "", // 0x00 - "", // 0x01 - "C", // 0x02 - "", // 0x03 - "", // 0x04 - "", // 0x05 - "", // 0x06 - "", // 0x07 - "", // 0x08 - "", // 0x09 - "", // 0x0a - "", // 0x0b - "", // 0x0c - "H", // 0x0d - "", // 0x0e - "", // 0x0f - "", // 0x10 - "", // 0x11 - "", // 0x12 - "", // 0x13 - "", // 0x14 - "N", // 0x15 - "", // 0x16 - "", // 0x17 - "", // 0x18 - "P", // 0x19 - "Q", // 0x1a - "", // 0x1b - "", // 0x1c - "R", // 0x1d - "", // 0x1e - "", // 0x1f - "(sm)", // 0x20 - "TEL", // 0x21 - "(tm)", // 0x22 - "", // 0x23 - "Z", // 0x24 - "", // 0x25 - "", // 0x26 - "", // 0x27 - "", // 0x28 - "", // 0x29 - "K", // 0x2a - "A", // 0x2b - "", // 0x2c - "", // 0x2d - "e", // 0x2e - "e", // 0x2f - "E", // 0x30 - "F", // 0x31 - "F", // 0x32 - "M", // 0x33 - "", // 0x34 - "", // 0x35 - "", // 0x36 - "", // 0x37 - "", // 0x38 - "", // 0x39 - "", // 0x3a - "FAX", // 0x3b - "", // 0x3c - "", // 0x3d - "", // 0x3e - "", // 0x3f - "[?]", // 0x40 - "[?]", // 0x41 - "[?]", // 0x42 - "[?]", // 0x43 - "[?]", // 0x44 - "D", // 0x45 - "d", // 0x46 - "e", // 0x47 - "i", // 0x48 - "j", // 0x49 - "[?]", // 0x4a - "[?]", // 0x4b - "[?]", // 0x4c - "[?]", // 0x4d - "F", // 0x4e - "[?]", // 0x4f - "[?]", // 0x50 - "[?]", // 0x51 - "[?]", // 0x52 - " 1/3 ", // 0x53 - " 2/3 ", // 0x54 - " 1/5 ", // 0x55 - " 2/5 ", // 0x56 - " 3/5 ", // 0x57 - " 4/5 ", // 0x58 - " 1/6 ", // 0x59 - " 5/6 ", // 0x5a - " 1/8 ", // 0x5b - " 3/8 ", // 0x5c - " 5/8 ", // 0x5d - " 7/8 ", // 0x5e - " 1/", // 0x5f - "I", // 0x60 - "II", // 0x61 - "III", // 0x62 - "IV", // 0x63 - "V", // 0x64 - "VI", // 0x65 - "VII", // 0x66 - "VIII", // 0x67 - "IX", // 0x68 - "X", // 0x69 - "XI", // 0x6a - "XII", // 0x6b - "L", // 0x6c - "C", // 0x6d - "D", // 0x6e - "M", // 0x6f - "i", // 0x70 - "ii", // 0x71 - "iii", // 0x72 - "iv", // 0x73 - "v", // 0x74 - "vi", // 0x75 - "vii", // 0x76 - "viii", // 0x77 - "ix", // 0x78 - "x", // 0x79 - "xi", // 0x7a - "xii", // 0x7b - "l", // 0x7c - "c", // 0x7d - "d", // 0x7e - "m", // 0x7f - "(D", // 0x80 - "D)", // 0x81 - "((|))", // 0x82 - ")", // 0x83 - "[?]", // 0x84 - "[?]", // 0x85 - "[?]", // 0x86 - "[?]", // 0x87 - "[?]", // 0x88 - "[?]", // 0x89 - "[?]", // 0x8a - "[?]", // 0x8b - "[?]", // 0x8c - "[?]", // 0x8d - "[?]", // 0x8e - "[?]", // 0x8f - "-", // 0x90 - "|", // 0x91 - "-", // 0x92 - "|", // 0x93 - "-", // 0x94 - "|", // 0x95 - "\\", // 0x96 - "/", // 0x97 - "\\", // 0x98 - "/", // 0x99 - "-", // 0x9a - "-", // 0x9b - "~", // 0x9c - "~", // 0x9d - "-", // 0x9e - "|", // 0x9f - "-", // 0xa0 - "|", // 0xa1 - "-", // 0xa2 - "-", // 0xa3 - "-", // 0xa4 - "|", // 0xa5 - "-", // 0xa6 - "|", // 0xa7 - "|", // 0xa8 - "-", // 0xa9 - "-", // 0xaa - "-", // 0xab - "-", // 0xac - "-", // 0xad - "-", // 0xae - "|", // 0xaf - "|", // 0xb0 - "|", // 0xb1 - "|", // 0xb2 - "|", // 0xb3 - "|", // 0xb4 - "|", // 0xb5 - "^", // 0xb6 - "V", // 0xb7 - "\\", // 0xb8 - "=", // 0xb9 - "V", // 0xba - "^", // 0xbb - "-", // 0xbc - "-", // 0xbd - "|", // 0xbe - "|", // 0xbf - "-", // 0xc0 - "-", // 0xc1 - "|", // 0xc2 - "|", // 0xc3 - "=", // 0xc4 - "|", // 0xc5 - "=", // 0xc6 - "=", // 0xc7 - "|", // 0xc8 - "=", // 0xc9 - "|", // 0xca - "=", // 0xcb - "=", // 0xcc - "=", // 0xcd - "=", // 0xce - "=", // 0xcf - "=", // 0xd0 - "|", // 0xd1 - "=", // 0xd2 - "|", // 0xd3 - "=", // 0xd4 - "|", // 0xd5 - "\\", // 0xd6 - "/", // 0xd7 - "\\", // 0xd8 - "/", // 0xd9 - "=", // 0xda - "=", // 0xdb - "~", // 0xdc - "~", // 0xdd - "|", // 0xde - "|", // 0xdf - "-", // 0xe0 - "|", // 0xe1 - "-", // 0xe2 - "|", // 0xe3 - "-", // 0xe4 - "-", // 0xe5 - "-", // 0xe6 - "|", // 0xe7 - "-", // 0xe8 - "|", // 0xe9 - "|", // 0xea - "|", // 0xeb - "|", // 0xec - "|", // 0xed - "|", // 0xee - "|", // 0xef - "-", // 0xf0 - "\\", // 0xf1 - "\\", // 0xf2 - "|", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x022.go b/vendor/github.com/mozillazg/go-unidecode/table/x022.go deleted file mode 100644 index 4750f57..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x022.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x022 = []string{ - "[?]", // 0x00 - "[?]", // 0x01 - "[?]", // 0x02 - "[?]", // 0x03 - "[?]", // 0x04 - "[?]", // 0x05 - "[?]", // 0x06 - "[?]", // 0x07 - "[?]", // 0x08 - "[?]", // 0x09 - "[?]", // 0x0a - "[?]", // 0x0b - "[?]", // 0x0c - "[?]", // 0x0d - "[?]", // 0x0e - "[?]", // 0x0f - "[?]", // 0x10 - "[?]", // 0x11 - "-", // 0x12 - "[?]", // 0x13 - "[?]", // 0x14 - "/", // 0x15 - "\\", // 0x16 - "*", // 0x17 - "[?]", // 0x18 - "[?]", // 0x19 - "[?]", // 0x1a - "[?]", // 0x1b - "[?]", // 0x1c - "[?]", // 0x1d - "[?]", // 0x1e - "[?]", // 0x1f - "[?]", // 0x20 - "[?]", // 0x21 - "[?]", // 0x22 - "|", // 0x23 - "[?]", // 0x24 - "[?]", // 0x25 - "[?]", // 0x26 - "[?]", // 0x27 - "[?]", // 0x28 - "[?]", // 0x29 - "[?]", // 0x2a - "[?]", // 0x2b - "[?]", // 0x2c - "[?]", // 0x2d - "[?]", // 0x2e - "[?]", // 0x2f - "[?]", // 0x30 - "[?]", // 0x31 - "[?]", // 0x32 - "[?]", // 0x33 - "[?]", // 0x34 - "[?]", // 0x35 - ":", // 0x36 - "[?]", // 0x37 - "[?]", // 0x38 - "[?]", // 0x39 - "[?]", // 0x3a - "[?]", // 0x3b - "~", // 0x3c - "[?]", // 0x3d - "[?]", // 0x3e - "[?]", // 0x3f - "[?]", // 0x40 - "[?]", // 0x41 - "[?]", // 0x42 - "[?]", // 0x43 - "[?]", // 0x44 - "[?]", // 0x45 - "[?]", // 0x46 - "[?]", // 0x47 - "[?]", // 0x48 - "[?]", // 0x49 - "[?]", // 0x4a - "[?]", // 0x4b - "[?]", // 0x4c - "[?]", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "[?]", // 0x50 - "[?]", // 0x51 - "[?]", // 0x52 - "[?]", // 0x53 - "[?]", // 0x54 - "[?]", // 0x55 - "[?]", // 0x56 - "[?]", // 0x57 - "[?]", // 0x58 - "[?]", // 0x59 - "[?]", // 0x5a - "[?]", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "[?]", // 0x60 - "[?]", // 0x61 - "[?]", // 0x62 - "[?]", // 0x63 - "<=", // 0x64 - ">=", // 0x65 - "<=", // 0x66 - ">=", // 0x67 - "[?]", // 0x68 - "[?]", // 0x69 - "[?]", // 0x6a - "[?]", // 0x6b - "[?]", // 0x6c - "[?]", // 0x6d - "[?]", // 0x6e - "[?]", // 0x6f - "[?]", // 0x70 - "[?]", // 0x71 - "[?]", // 0x72 - "[?]", // 0x73 - "[?]", // 0x74 - "[?]", // 0x75 - "[?]", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "[?]", // 0x80 - "[?]", // 0x81 - "[?]", // 0x82 - "[?]", // 0x83 - "[?]", // 0x84 - "[?]", // 0x85 - "[?]", // 0x86 - "[?]", // 0x87 - "[?]", // 0x88 - "[?]", // 0x89 - "[?]", // 0x8a - "[?]", // 0x8b - "[?]", // 0x8c - "[?]", // 0x8d - "[?]", // 0x8e - "[?]", // 0x8f - "[?]", // 0x90 - "[?]", // 0x91 - "[?]", // 0x92 - "[?]", // 0x93 - "[?]", // 0x94 - "[?]", // 0x95 - "[?]", // 0x96 - "[?]", // 0x97 - "[?]", // 0x98 - "[?]", // 0x99 - "[?]", // 0x9a - "[?]", // 0x9b - "[?]", // 0x9c - "[?]", // 0x9d - "[?]", // 0x9e - "[?]", // 0x9f - "[?]", // 0xa0 - "[?]", // 0xa1 - "[?]", // 0xa2 - "[?]", // 0xa3 - "[?]", // 0xa4 - "[?]", // 0xa5 - "[?]", // 0xa6 - "[?]", // 0xa7 - "[?]", // 0xa8 - "[?]", // 0xa9 - "[?]", // 0xaa - "[?]", // 0xab - "[?]", // 0xac - "[?]", // 0xad - "[?]", // 0xae - "[?]", // 0xaf - "[?]", // 0xb0 - "[?]", // 0xb1 - "[?]", // 0xb2 - "[?]", // 0xb3 - "[?]", // 0xb4 - "[?]", // 0xb5 - "[?]", // 0xb6 - "[?]", // 0xb7 - "[?]", // 0xb8 - "[?]", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "[?]", // 0xbc - "[?]", // 0xbd - "[?]", // 0xbe - "[?]", // 0xbf - "[?]", // 0xc0 - "[?]", // 0xc1 - "[?]", // 0xc2 - "[?]", // 0xc3 - "[?]", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x023.go b/vendor/github.com/mozillazg/go-unidecode/table/x023.go deleted file mode 100644 index f67d593..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x023.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x023 = []string{ - "[?]", // 0x00 - "[?]", // 0x01 - "[?]", // 0x02 - "^", // 0x03 - "[?]", // 0x04 - "[?]", // 0x05 - "[?]", // 0x06 - "[?]", // 0x07 - "[?]", // 0x08 - "[?]", // 0x09 - "[?]", // 0x0a - "[?]", // 0x0b - "[?]", // 0x0c - "[?]", // 0x0d - "[?]", // 0x0e - "[?]", // 0x0f - "[?]", // 0x10 - "[?]", // 0x11 - "[?]", // 0x12 - "[?]", // 0x13 - "[?]", // 0x14 - "[?]", // 0x15 - "[?]", // 0x16 - "[?]", // 0x17 - "[?]", // 0x18 - "[?]", // 0x19 - "[?]", // 0x1a - "[?]", // 0x1b - "[?]", // 0x1c - "[?]", // 0x1d - "[?]", // 0x1e - "[?]", // 0x1f - "[?]", // 0x20 - "[?]", // 0x21 - "[?]", // 0x22 - "[?]", // 0x23 - "[?]", // 0x24 - "[?]", // 0x25 - "[?]", // 0x26 - "[?]", // 0x27 - "[?]", // 0x28 - "<", // 0x29 - "> ", // 0x2a - "[?]", // 0x2b - "[?]", // 0x2c - "[?]", // 0x2d - "[?]", // 0x2e - "[?]", // 0x2f - "[?]", // 0x30 - "[?]", // 0x31 - "[?]", // 0x32 - "[?]", // 0x33 - "[?]", // 0x34 - "[?]", // 0x35 - "[?]", // 0x36 - "[?]", // 0x37 - "[?]", // 0x38 - "[?]", // 0x39 - "[?]", // 0x3a - "[?]", // 0x3b - "[?]", // 0x3c - "[?]", // 0x3d - "[?]", // 0x3e - "[?]", // 0x3f - "[?]", // 0x40 - "[?]", // 0x41 - "[?]", // 0x42 - "[?]", // 0x43 - "[?]", // 0x44 - "[?]", // 0x45 - "[?]", // 0x46 - "[?]", // 0x47 - "[?]", // 0x48 - "[?]", // 0x49 - "[?]", // 0x4a - "[?]", // 0x4b - "[?]", // 0x4c - "[?]", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "[?]", // 0x50 - "[?]", // 0x51 - "[?]", // 0x52 - "[?]", // 0x53 - "[?]", // 0x54 - "[?]", // 0x55 - "[?]", // 0x56 - "[?]", // 0x57 - "[?]", // 0x58 - "[?]", // 0x59 - "[?]", // 0x5a - "[?]", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "[?]", // 0x60 - "[?]", // 0x61 - "[?]", // 0x62 - "[?]", // 0x63 - "[?]", // 0x64 - "[?]", // 0x65 - "[?]", // 0x66 - "[?]", // 0x67 - "[?]", // 0x68 - "[?]", // 0x69 - "[?]", // 0x6a - "[?]", // 0x6b - "[?]", // 0x6c - "[?]", // 0x6d - "[?]", // 0x6e - "[?]", // 0x6f - "[?]", // 0x70 - "[?]", // 0x71 - "[?]", // 0x72 - "[?]", // 0x73 - "[?]", // 0x74 - "[?]", // 0x75 - "[?]", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "[?]", // 0x80 - "[?]", // 0x81 - "[?]", // 0x82 - "[?]", // 0x83 - "[?]", // 0x84 - "[?]", // 0x85 - "[?]", // 0x86 - "[?]", // 0x87 - "[?]", // 0x88 - "[?]", // 0x89 - "[?]", // 0x8a - "[?]", // 0x8b - "[?]", // 0x8c - "[?]", // 0x8d - "[?]", // 0x8e - "[?]", // 0x8f - "[?]", // 0x90 - "[?]", // 0x91 - "[?]", // 0x92 - "[?]", // 0x93 - "[?]", // 0x94 - "[?]", // 0x95 - "[?]", // 0x96 - "[?]", // 0x97 - "[?]", // 0x98 - "[?]", // 0x99 - "[?]", // 0x9a - "[?]", // 0x9b - "[?]", // 0x9c - "[?]", // 0x9d - "[?]", // 0x9e - "[?]", // 0x9f - "[?]", // 0xa0 - "[?]", // 0xa1 - "[?]", // 0xa2 - "[?]", // 0xa3 - "[?]", // 0xa4 - "[?]", // 0xa5 - "[?]", // 0xa6 - "[?]", // 0xa7 - "[?]", // 0xa8 - "[?]", // 0xa9 - "[?]", // 0xaa - "[?]", // 0xab - "[?]", // 0xac - "[?]", // 0xad - "[?]", // 0xae - "[?]", // 0xaf - "[?]", // 0xb0 - "[?]", // 0xb1 - "[?]", // 0xb2 - "[?]", // 0xb3 - "[?]", // 0xb4 - "[?]", // 0xb5 - "[?]", // 0xb6 - "[?]", // 0xb7 - "[?]", // 0xb8 - "[?]", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "[?]", // 0xbc - "[?]", // 0xbd - "[?]", // 0xbe - "[?]", // 0xbf - "[?]", // 0xc0 - "[?]", // 0xc1 - "[?]", // 0xc2 - "[?]", // 0xc3 - "[?]", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x024.go b/vendor/github.com/mozillazg/go-unidecode/table/x024.go deleted file mode 100644 index e46f67b..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x024.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x024 = []string{ - "", // 0x00 - "", // 0x01 - "", // 0x02 - "", // 0x03 - "", // 0x04 - "", // 0x05 - "", // 0x06 - "", // 0x07 - "", // 0x08 - "", // 0x09 - "", // 0x0a - "", // 0x0b - "", // 0x0c - "", // 0x0d - "", // 0x0e - "", // 0x0f - "", // 0x10 - "", // 0x11 - "", // 0x12 - "", // 0x13 - "", // 0x14 - "", // 0x15 - "", // 0x16 - "", // 0x17 - "", // 0x18 - "", // 0x19 - "", // 0x1a - "", // 0x1b - "", // 0x1c - "", // 0x1d - "", // 0x1e - "", // 0x1f - "", // 0x20 - "", // 0x21 - "", // 0x22 - "", // 0x23 - "", // 0x24 - "", // 0x25 - "", // 0x26 - "[?]", // 0x27 - "[?]", // 0x28 - "[?]", // 0x29 - "[?]", // 0x2a - "[?]", // 0x2b - "[?]", // 0x2c - "[?]", // 0x2d - "[?]", // 0x2e - "[?]", // 0x2f - "[?]", // 0x30 - "[?]", // 0x31 - "[?]", // 0x32 - "[?]", // 0x33 - "[?]", // 0x34 - "[?]", // 0x35 - "[?]", // 0x36 - "[?]", // 0x37 - "[?]", // 0x38 - "[?]", // 0x39 - "[?]", // 0x3a - "[?]", // 0x3b - "[?]", // 0x3c - "[?]", // 0x3d - "[?]", // 0x3e - "[?]", // 0x3f - "", // 0x40 - "", // 0x41 - "", // 0x42 - "", // 0x43 - "", // 0x44 - "", // 0x45 - "", // 0x46 - "", // 0x47 - "", // 0x48 - "", // 0x49 - "", // 0x4a - "[?]", // 0x4b - "[?]", // 0x4c - "[?]", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "[?]", // 0x50 - "[?]", // 0x51 - "[?]", // 0x52 - "[?]", // 0x53 - "[?]", // 0x54 - "[?]", // 0x55 - "[?]", // 0x56 - "[?]", // 0x57 - "[?]", // 0x58 - "[?]", // 0x59 - "[?]", // 0x5a - "[?]", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "1", // 0x60 - "2", // 0x61 - "3", // 0x62 - "4", // 0x63 - "5", // 0x64 - "6", // 0x65 - "7", // 0x66 - "8", // 0x67 - "9", // 0x68 - "10", // 0x69 - "11", // 0x6a - "12", // 0x6b - "13", // 0x6c - "14", // 0x6d - "15", // 0x6e - "16", // 0x6f - "17", // 0x70 - "18", // 0x71 - "19", // 0x72 - "20", // 0x73 - "(1)", // 0x74 - "(2)", // 0x75 - "(3)", // 0x76 - "(4)", // 0x77 - "(5)", // 0x78 - "(6)", // 0x79 - "(7)", // 0x7a - "(8)", // 0x7b - "(9)", // 0x7c - "(10)", // 0x7d - "(11)", // 0x7e - "(12)", // 0x7f - "(13)", // 0x80 - "(14)", // 0x81 - "(15)", // 0x82 - "(16)", // 0x83 - "(17)", // 0x84 - "(18)", // 0x85 - "(19)", // 0x86 - "(20)", // 0x87 - "1.", // 0x88 - "2.", // 0x89 - "3.", // 0x8a - "4.", // 0x8b - "5.", // 0x8c - "6.", // 0x8d - "7.", // 0x8e - "8.", // 0x8f - "9.", // 0x90 - "10.", // 0x91 - "11.", // 0x92 - "12.", // 0x93 - "13.", // 0x94 - "14.", // 0x95 - "15.", // 0x96 - "16.", // 0x97 - "17.", // 0x98 - "18.", // 0x99 - "19.", // 0x9a - "20.", // 0x9b - "(a)", // 0x9c - "(b)", // 0x9d - "(c)", // 0x9e - "(d)", // 0x9f - "(e)", // 0xa0 - "(f)", // 0xa1 - "(g)", // 0xa2 - "(h)", // 0xa3 - "(i)", // 0xa4 - "(j)", // 0xa5 - "(k)", // 0xa6 - "(l)", // 0xa7 - "(m)", // 0xa8 - "(n)", // 0xa9 - "(o)", // 0xaa - "(p)", // 0xab - "(q)", // 0xac - "(r)", // 0xad - "(s)", // 0xae - "(t)", // 0xaf - "(u)", // 0xb0 - "(v)", // 0xb1 - "(w)", // 0xb2 - "(x)", // 0xb3 - "(y)", // 0xb4 - "(z)", // 0xb5 - "A", // 0xb6 - "B", // 0xb7 - "C", // 0xb8 - "D", // 0xb9 - "E", // 0xba - "F", // 0xbb - "G", // 0xbc - "H", // 0xbd - "I", // 0xbe - "J", // 0xbf - "K", // 0xc0 - "L", // 0xc1 - "M", // 0xc2 - "N", // 0xc3 - "O", // 0xc4 - "P", // 0xc5 - "Q", // 0xc6 - "R", // 0xc7 - "S", // 0xc8 - "T", // 0xc9 - "U", // 0xca - "V", // 0xcb - "W", // 0xcc - "X", // 0xcd - "Y", // 0xce - "Z", // 0xcf - "a", // 0xd0 - "b", // 0xd1 - "c", // 0xd2 - "d", // 0xd3 - "e", // 0xd4 - "f", // 0xd5 - "g", // 0xd6 - "h", // 0xd7 - "i", // 0xd8 - "j", // 0xd9 - "k", // 0xda - "l", // 0xdb - "m", // 0xdc - "n", // 0xdd - "o", // 0xde - "p", // 0xdf - "q", // 0xe0 - "r", // 0xe1 - "s", // 0xe2 - "t", // 0xe3 - "u", // 0xe4 - "v", // 0xe5 - "w", // 0xe6 - "x", // 0xe7 - "y", // 0xe8 - "z", // 0xe9 - "0", // 0xea - "11", // 0xeb - "12", // 0xec - "13", // 0xed - "14", // 0xee - "15", // 0xef - "16", // 0xf0 - "17", // 0xf1 - "18", // 0xf2 - "19", // 0xf3 - "20", // 0xf4 - "1", // 0xf5 - "2", // 0xf6 - "3", // 0xf7 - "4", // 0xf8 - "5", // 0xf9 - "6", // 0xfa - "7", // 0xfb - "8", // 0xfc - "9", // 0xfd - "10", // 0xfe - "0", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x025.go b/vendor/github.com/mozillazg/go-unidecode/table/x025.go deleted file mode 100644 index 06b74c5..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x025.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x025 = []string{ - "-", // 0x00 - "-", // 0x01 - "|", // 0x02 - "|", // 0x03 - "-", // 0x04 - "-", // 0x05 - "|", // 0x06 - "|", // 0x07 - "-", // 0x08 - "-", // 0x09 - "|", // 0x0a - "|", // 0x0b - "+", // 0x0c - "+", // 0x0d - "+", // 0x0e - "+", // 0x0f - "+", // 0x10 - "+", // 0x11 - "+", // 0x12 - "+", // 0x13 - "+", // 0x14 - "+", // 0x15 - "+", // 0x16 - "+", // 0x17 - "+", // 0x18 - "+", // 0x19 - "+", // 0x1a - "+", // 0x1b - "+", // 0x1c - "+", // 0x1d - "+", // 0x1e - "+", // 0x1f - "+", // 0x20 - "+", // 0x21 - "+", // 0x22 - "+", // 0x23 - "+", // 0x24 - "+", // 0x25 - "+", // 0x26 - "+", // 0x27 - "+", // 0x28 - "+", // 0x29 - "+", // 0x2a - "+", // 0x2b - "+", // 0x2c - "+", // 0x2d - "+", // 0x2e - "+", // 0x2f - "+", // 0x30 - "+", // 0x31 - "+", // 0x32 - "+", // 0x33 - "+", // 0x34 - "+", // 0x35 - "+", // 0x36 - "+", // 0x37 - "+", // 0x38 - "+", // 0x39 - "+", // 0x3a - "+", // 0x3b - "+", // 0x3c - "+", // 0x3d - "+", // 0x3e - "+", // 0x3f - "+", // 0x40 - "+", // 0x41 - "+", // 0x42 - "+", // 0x43 - "+", // 0x44 - "+", // 0x45 - "+", // 0x46 - "+", // 0x47 - "+", // 0x48 - "+", // 0x49 - "+", // 0x4a - "+", // 0x4b - "-", // 0x4c - "-", // 0x4d - "|", // 0x4e - "|", // 0x4f - "-", // 0x50 - "|", // 0x51 - "+", // 0x52 - "+", // 0x53 - "+", // 0x54 - "+", // 0x55 - "+", // 0x56 - "+", // 0x57 - "+", // 0x58 - "+", // 0x59 - "+", // 0x5a - "+", // 0x5b - "+", // 0x5c - "+", // 0x5d - "+", // 0x5e - "+", // 0x5f - "+", // 0x60 - "+", // 0x61 - "+", // 0x62 - "+", // 0x63 - "+", // 0x64 - "+", // 0x65 - "+", // 0x66 - "+", // 0x67 - "+", // 0x68 - "+", // 0x69 - "+", // 0x6a - "+", // 0x6b - "+", // 0x6c - "+", // 0x6d - "+", // 0x6e - "+", // 0x6f - "+", // 0x70 - "/", // 0x71 - "\\", // 0x72 - "X", // 0x73 - "-", // 0x74 - "|", // 0x75 - "-", // 0x76 - "|", // 0x77 - "-", // 0x78 - "|", // 0x79 - "-", // 0x7a - "|", // 0x7b - "-", // 0x7c - "|", // 0x7d - "-", // 0x7e - "|", // 0x7f - "#", // 0x80 - "#", // 0x81 - "#", // 0x82 - "#", // 0x83 - "#", // 0x84 - "#", // 0x85 - "#", // 0x86 - "#", // 0x87 - "#", // 0x88 - "#", // 0x89 - "#", // 0x8a - "#", // 0x8b - "#", // 0x8c - "#", // 0x8d - "#", // 0x8e - "#", // 0x8f - "#", // 0x90 - "#", // 0x91 - "#", // 0x92 - "#", // 0x93 - "-", // 0x94 - "|", // 0x95 - "[?]", // 0x96 - "[?]", // 0x97 - "[?]", // 0x98 - "[?]", // 0x99 - "[?]", // 0x9a - "[?]", // 0x9b - "[?]", // 0x9c - "[?]", // 0x9d - "[?]", // 0x9e - "[?]", // 0x9f - "#", // 0xa0 - "#", // 0xa1 - "#", // 0xa2 - "#", // 0xa3 - "#", // 0xa4 - "#", // 0xa5 - "#", // 0xa6 - "#", // 0xa7 - "#", // 0xa8 - "#", // 0xa9 - "#", // 0xaa - "#", // 0xab - "#", // 0xac - "#", // 0xad - "#", // 0xae - "#", // 0xaf - "#", // 0xb0 - "#", // 0xb1 - "^", // 0xb2 - "^", // 0xb3 - "^", // 0xb4 - "^", // 0xb5 - ">", // 0xb6 - ">", // 0xb7 - ">", // 0xb8 - ">", // 0xb9 - ">", // 0xba - ">", // 0xbb - "V", // 0xbc - "V", // 0xbd - "V", // 0xbe - "V", // 0xbf - "<", // 0xc0 - "<", // 0xc1 - "<", // 0xc2 - "<", // 0xc3 - "<", // 0xc4 - "<", // 0xc5 - "*", // 0xc6 - "*", // 0xc7 - "*", // 0xc8 - "*", // 0xc9 - "*", // 0xca - "*", // 0xcb - "*", // 0xcc - "*", // 0xcd - "*", // 0xce - "*", // 0xcf - "*", // 0xd0 - "*", // 0xd1 - "*", // 0xd2 - "*", // 0xd3 - "*", // 0xd4 - "*", // 0xd5 - "*", // 0xd6 - "*", // 0xd7 - "*", // 0xd8 - "*", // 0xd9 - "*", // 0xda - "*", // 0xdb - "*", // 0xdc - "*", // 0xdd - "*", // 0xde - "*", // 0xdf - "*", // 0xe0 - "*", // 0xe1 - "*", // 0xe2 - "*", // 0xe3 - "*", // 0xe4 - "*", // 0xe5 - "*", // 0xe6 - "#", // 0xe7 - "#", // 0xe8 - "#", // 0xe9 - "#", // 0xea - "#", // 0xeb - "^", // 0xec - "^", // 0xed - "^", // 0xee - "O", // 0xef - "#", // 0xf0 - "#", // 0xf1 - "#", // 0xf2 - "#", // 0xf3 - "#", // 0xf4 - "#", // 0xf5 - "#", // 0xf6 - "#", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x026.go b/vendor/github.com/mozillazg/go-unidecode/table/x026.go deleted file mode 100644 index 160b946..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x026.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x026 = []string{ - "", // 0x00 - "", // 0x01 - "", // 0x02 - "", // 0x03 - "", // 0x04 - "", // 0x05 - "", // 0x06 - "", // 0x07 - "", // 0x08 - "", // 0x09 - "", // 0x0a - "", // 0x0b - "", // 0x0c - "", // 0x0d - "", // 0x0e - "", // 0x0f - "", // 0x10 - "", // 0x11 - "", // 0x12 - "", // 0x13 - "[?]", // 0x14 - "[?]", // 0x15 - "[?]", // 0x16 - "[?]", // 0x17 - "[?]", // 0x18 - "", // 0x19 - "", // 0x1a - "", // 0x1b - "", // 0x1c - "", // 0x1d - "", // 0x1e - "", // 0x1f - "", // 0x20 - "", // 0x21 - "", // 0x22 - "", // 0x23 - "", // 0x24 - "", // 0x25 - "", // 0x26 - "", // 0x27 - "", // 0x28 - "", // 0x29 - "", // 0x2a - "", // 0x2b - "", // 0x2c - "", // 0x2d - "", // 0x2e - "", // 0x2f - "", // 0x30 - "", // 0x31 - "", // 0x32 - "", // 0x33 - "", // 0x34 - "", // 0x35 - "", // 0x36 - "", // 0x37 - "", // 0x38 - "", // 0x39 - "", // 0x3a - "", // 0x3b - "", // 0x3c - "", // 0x3d - "", // 0x3e - "", // 0x3f - "", // 0x40 - "", // 0x41 - "", // 0x42 - "", // 0x43 - "", // 0x44 - "", // 0x45 - "", // 0x46 - "", // 0x47 - "", // 0x48 - "", // 0x49 - "", // 0x4a - "", // 0x4b - "", // 0x4c - "", // 0x4d - "", // 0x4e - "", // 0x4f - "", // 0x50 - "", // 0x51 - "", // 0x52 - "", // 0x53 - "", // 0x54 - "", // 0x55 - "", // 0x56 - "", // 0x57 - "", // 0x58 - "", // 0x59 - "", // 0x5a - "", // 0x5b - "", // 0x5c - "", // 0x5d - "", // 0x5e - "", // 0x5f - "", // 0x60 - "", // 0x61 - "", // 0x62 - "", // 0x63 - "", // 0x64 - "", // 0x65 - "", // 0x66 - "", // 0x67 - "", // 0x68 - "", // 0x69 - "", // 0x6a - "", // 0x6b - "", // 0x6c - "", // 0x6d - "", // 0x6e - "#", // 0x6f - "", // 0x70 - "", // 0x71 - "[?]", // 0x72 - "[?]", // 0x73 - "[?]", // 0x74 - "[?]", // 0x75 - "[?]", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "[?]", // 0x80 - "[?]", // 0x81 - "[?]", // 0x82 - "[?]", // 0x83 - "[?]", // 0x84 - "[?]", // 0x85 - "[?]", // 0x86 - "[?]", // 0x87 - "[?]", // 0x88 - "[?]", // 0x89 - "[?]", // 0x8a - "[?]", // 0x8b - "[?]", // 0x8c - "[?]", // 0x8d - "[?]", // 0x8e - "[?]", // 0x8f - "[?]", // 0x90 - "[?]", // 0x91 - "[?]", // 0x92 - "[?]", // 0x93 - "[?]", // 0x94 - "[?]", // 0x95 - "[?]", // 0x96 - "[?]", // 0x97 - "[?]", // 0x98 - "[?]", // 0x99 - "[?]", // 0x9a - "[?]", // 0x9b - "[?]", // 0x9c - "[?]", // 0x9d - "[?]", // 0x9e - "[?]", // 0x9f - "[?]", // 0xa0 - "[?]", // 0xa1 - "[?]", // 0xa2 - "[?]", // 0xa3 - "[?]", // 0xa4 - "[?]", // 0xa5 - "[?]", // 0xa6 - "[?]", // 0xa7 - "[?]", // 0xa8 - "[?]", // 0xa9 - "[?]", // 0xaa - "[?]", // 0xab - "[?]", // 0xac - "[?]", // 0xad - "[?]", // 0xae - "[?]", // 0xaf - "[?]", // 0xb0 - "[?]", // 0xb1 - "[?]", // 0xb2 - "[?]", // 0xb3 - "[?]", // 0xb4 - "[?]", // 0xb5 - "[?]", // 0xb6 - "[?]", // 0xb7 - "[?]", // 0xb8 - "[?]", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "[?]", // 0xbc - "[?]", // 0xbd - "[?]", // 0xbe - "[?]", // 0xbf - "[?]", // 0xc0 - "[?]", // 0xc1 - "[?]", // 0xc2 - "[?]", // 0xc3 - "[?]", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x027.go b/vendor/github.com/mozillazg/go-unidecode/table/x027.go deleted file mode 100644 index 5a4b05c..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x027.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x027 = []string{ - "[?]", // 0x00 - "", // 0x01 - "", // 0x02 - "", // 0x03 - "", // 0x04 - "", // 0x05 - "", // 0x06 - "", // 0x07 - "", // 0x08 - "", // 0x09 - "", // 0x0a - "", // 0x0b - "", // 0x0c - "", // 0x0d - "", // 0x0e - "", // 0x0f - "", // 0x10 - "", // 0x11 - "", // 0x12 - "", // 0x13 - "", // 0x14 - "", // 0x15 - "", // 0x16 - "", // 0x17 - "", // 0x18 - "", // 0x19 - "", // 0x1a - "", // 0x1b - "", // 0x1c - "", // 0x1d - "", // 0x1e - "", // 0x1f - "", // 0x20 - "", // 0x21 - "", // 0x22 - "", // 0x23 - "", // 0x24 - "", // 0x25 - "", // 0x26 - "", // 0x27 - "", // 0x28 - "", // 0x29 - "", // 0x2a - "", // 0x2b - "", // 0x2c - "", // 0x2d - "", // 0x2e - "", // 0x2f - "", // 0x30 - "*", // 0x31 - "", // 0x32 - "", // 0x33 - "", // 0x34 - "", // 0x35 - "", // 0x36 - "", // 0x37 - "", // 0x38 - "", // 0x39 - "", // 0x3a - "", // 0x3b - "", // 0x3c - "", // 0x3d - "", // 0x3e - "", // 0x3f - "", // 0x40 - "", // 0x41 - "", // 0x42 - "", // 0x43 - "", // 0x44 - "", // 0x45 - "", // 0x46 - "", // 0x47 - "", // 0x48 - "", // 0x49 - "", // 0x4a - "", // 0x4b - "", // 0x4c - "", // 0x4d - "", // 0x4e - "", // 0x4f - "", // 0x50 - "", // 0x51 - "", // 0x52 - "", // 0x53 - "", // 0x54 - "", // 0x55 - "", // 0x56 - "", // 0x57 - "|", // 0x58 - "", // 0x59 - "", // 0x5a - "", // 0x5b - "", // 0x5c - "", // 0x5d - "", // 0x5e - "[?]", // 0x5f - "[?]", // 0x60 - "", // 0x61 - "!", // 0x62 - "", // 0x63 - "", // 0x64 - "", // 0x65 - "", // 0x66 - "", // 0x67 - "", // 0x68 - "", // 0x69 - "", // 0x6a - "", // 0x6b - "", // 0x6c - "", // 0x6d - "", // 0x6e - "", // 0x6f - "", // 0x70 - "", // 0x71 - "", // 0x72 - "", // 0x73 - "", // 0x74 - "", // 0x75 - "", // 0x76 - "", // 0x77 - "", // 0x78 - "", // 0x79 - "", // 0x7a - "", // 0x7b - "", // 0x7c - "", // 0x7d - "", // 0x7e - "", // 0x7f - "", // 0x80 - "", // 0x81 - "", // 0x82 - "", // 0x83 - "", // 0x84 - "", // 0x85 - "", // 0x86 - "", // 0x87 - "", // 0x88 - "", // 0x89 - "", // 0x8a - "", // 0x8b - "", // 0x8c - "", // 0x8d - "", // 0x8e - "", // 0x8f - "", // 0x90 - "", // 0x91 - "", // 0x92 - "", // 0x93 - "", // 0x94 - "", // 0x95 - "", // 0x96 - "", // 0x97 - "", // 0x98 - "", // 0x99 - "", // 0x9a - "", // 0x9b - "", // 0x9c - "", // 0x9d - "", // 0x9e - "", // 0x9f - "", // 0xa0 - "", // 0xa1 - "", // 0xa2 - "", // 0xa3 - "", // 0xa4 - "", // 0xa5 - "", // 0xa6 - "", // 0xa7 - "", // 0xa8 - "", // 0xa9 - "", // 0xaa - "", // 0xab - "", // 0xac - "", // 0xad - "", // 0xae - "", // 0xaf - "[?]", // 0xb0 - "", // 0xb1 - "", // 0xb2 - "", // 0xb3 - "", // 0xb4 - "", // 0xb5 - "", // 0xb6 - "", // 0xb7 - "", // 0xb8 - "", // 0xb9 - "", // 0xba - "", // 0xbb - "", // 0xbc - "", // 0xbd - "", // 0xbe - "[?]", // 0xbf - "[?]", // 0xc0 - "[?]", // 0xc1 - "[?]", // 0xc2 - "[?]", // 0xc3 - "[?]", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[", // 0xe6 - "[?]", // 0xe7 - "<", // 0xe8 - "> ", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x028.go b/vendor/github.com/mozillazg/go-unidecode/table/x028.go deleted file mode 100644 index fc4ba4e..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x028.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x028 = []string{ - " ", // 0x00 - "a", // 0x01 - "1", // 0x02 - "b", // 0x03 - "'", // 0x04 - "k", // 0x05 - "2", // 0x06 - "l", // 0x07 - "@", // 0x08 - "c", // 0x09 - "i", // 0x0a - "f", // 0x0b - "/", // 0x0c - "m", // 0x0d - "s", // 0x0e - "p", // 0x0f - "\"", // 0x10 - "e", // 0x11 - "3", // 0x12 - "h", // 0x13 - "9", // 0x14 - "o", // 0x15 - "6", // 0x16 - "r", // 0x17 - "^", // 0x18 - "d", // 0x19 - "j", // 0x1a - "g", // 0x1b - ">", // 0x1c - "n", // 0x1d - "t", // 0x1e - "q", // 0x1f - ",", // 0x20 - "*", // 0x21 - "5", // 0x22 - "<", // 0x23 - "-", // 0x24 - "u", // 0x25 - "8", // 0x26 - "v", // 0x27 - ".", // 0x28 - "%", // 0x29 - "[", // 0x2a - "$", // 0x2b - "+", // 0x2c - "x", // 0x2d - "!", // 0x2e - "&", // 0x2f - ";", // 0x30 - ":", // 0x31 - "4", // 0x32 - "\\", // 0x33 - "0", // 0x34 - "z", // 0x35 - "7", // 0x36 - "(", // 0x37 - "_", // 0x38 - "?", // 0x39 - "w", // 0x3a - "]", // 0x3b - "#", // 0x3c - "y", // 0x3d - ")", // 0x3e - "=", // 0x3f - "[d7]", // 0x40 - "[d17]", // 0x41 - "[d27]", // 0x42 - "[d127]", // 0x43 - "[d37]", // 0x44 - "[d137]", // 0x45 - "[d237]", // 0x46 - "[d1237]", // 0x47 - "[d47]", // 0x48 - "[d147]", // 0x49 - "[d247]", // 0x4a - "[d1247]", // 0x4b - "[d347]", // 0x4c - "[d1347]", // 0x4d - "[d2347]", // 0x4e - "[d12347]", // 0x4f - "[d57]", // 0x50 - "[d157]", // 0x51 - "[d257]", // 0x52 - "[d1257]", // 0x53 - "[d357]", // 0x54 - "[d1357]", // 0x55 - "[d2357]", // 0x56 - "[d12357]", // 0x57 - "[d457]", // 0x58 - "[d1457]", // 0x59 - "[d2457]", // 0x5a - "[d12457]", // 0x5b - "[d3457]", // 0x5c - "[d13457]", // 0x5d - "[d23457]", // 0x5e - "[d123457]", // 0x5f - "[d67]", // 0x60 - "[d167]", // 0x61 - "[d267]", // 0x62 - "[d1267]", // 0x63 - "[d367]", // 0x64 - "[d1367]", // 0x65 - "[d2367]", // 0x66 - "[d12367]", // 0x67 - "[d467]", // 0x68 - "[d1467]", // 0x69 - "[d2467]", // 0x6a - "[d12467]", // 0x6b - "[d3467]", // 0x6c - "[d13467]", // 0x6d - "[d23467]", // 0x6e - "[d123467]", // 0x6f - "[d567]", // 0x70 - "[d1567]", // 0x71 - "[d2567]", // 0x72 - "[d12567]", // 0x73 - "[d3567]", // 0x74 - "[d13567]", // 0x75 - "[d23567]", // 0x76 - "[d123567]", // 0x77 - "[d4567]", // 0x78 - "[d14567]", // 0x79 - "[d24567]", // 0x7a - "[d124567]", // 0x7b - "[d34567]", // 0x7c - "[d134567]", // 0x7d - "[d234567]", // 0x7e - "[d1234567]", // 0x7f - "[d8]", // 0x80 - "[d18]", // 0x81 - "[d28]", // 0x82 - "[d128]", // 0x83 - "[d38]", // 0x84 - "[d138]", // 0x85 - "[d238]", // 0x86 - "[d1238]", // 0x87 - "[d48]", // 0x88 - "[d148]", // 0x89 - "[d248]", // 0x8a - "[d1248]", // 0x8b - "[d348]", // 0x8c - "[d1348]", // 0x8d - "[d2348]", // 0x8e - "[d12348]", // 0x8f - "[d58]", // 0x90 - "[d158]", // 0x91 - "[d258]", // 0x92 - "[d1258]", // 0x93 - "[d358]", // 0x94 - "[d1358]", // 0x95 - "[d2358]", // 0x96 - "[d12358]", // 0x97 - "[d458]", // 0x98 - "[d1458]", // 0x99 - "[d2458]", // 0x9a - "[d12458]", // 0x9b - "[d3458]", // 0x9c - "[d13458]", // 0x9d - "[d23458]", // 0x9e - "[d123458]", // 0x9f - "[d68]", // 0xa0 - "[d168]", // 0xa1 - "[d268]", // 0xa2 - "[d1268]", // 0xa3 - "[d368]", // 0xa4 - "[d1368]", // 0xa5 - "[d2368]", // 0xa6 - "[d12368]", // 0xa7 - "[d468]", // 0xa8 - "[d1468]", // 0xa9 - "[d2468]", // 0xaa - "[d12468]", // 0xab - "[d3468]", // 0xac - "[d13468]", // 0xad - "[d23468]", // 0xae - "[d123468]", // 0xaf - "[d568]", // 0xb0 - "[d1568]", // 0xb1 - "[d2568]", // 0xb2 - "[d12568]", // 0xb3 - "[d3568]", // 0xb4 - "[d13568]", // 0xb5 - "[d23568]", // 0xb6 - "[d123568]", // 0xb7 - "[d4568]", // 0xb8 - "[d14568]", // 0xb9 - "[d24568]", // 0xba - "[d124568]", // 0xbb - "[d34568]", // 0xbc - "[d134568]", // 0xbd - "[d234568]", // 0xbe - "[d1234568]", // 0xbf - "[d78]", // 0xc0 - "[d178]", // 0xc1 - "[d278]", // 0xc2 - "[d1278]", // 0xc3 - "[d378]", // 0xc4 - "[d1378]", // 0xc5 - "[d2378]", // 0xc6 - "[d12378]", // 0xc7 - "[d478]", // 0xc8 - "[d1478]", // 0xc9 - "[d2478]", // 0xca - "[d12478]", // 0xcb - "[d3478]", // 0xcc - "[d13478]", // 0xcd - "[d23478]", // 0xce - "[d123478]", // 0xcf - "[d578]", // 0xd0 - "[d1578]", // 0xd1 - "[d2578]", // 0xd2 - "[d12578]", // 0xd3 - "[d3578]", // 0xd4 - "[d13578]", // 0xd5 - "[d23578]", // 0xd6 - "[d123578]", // 0xd7 - "[d4578]", // 0xd8 - "[d14578]", // 0xd9 - "[d24578]", // 0xda - "[d124578]", // 0xdb - "[d34578]", // 0xdc - "[d134578]", // 0xdd - "[d234578]", // 0xde - "[d1234578]", // 0xdf - "[d678]", // 0xe0 - "[d1678]", // 0xe1 - "[d2678]", // 0xe2 - "[d12678]", // 0xe3 - "[d3678]", // 0xe4 - "[d13678]", // 0xe5 - "[d23678]", // 0xe6 - "[d123678]", // 0xe7 - "[d4678]", // 0xe8 - "[d14678]", // 0xe9 - "[d24678]", // 0xea - "[d124678]", // 0xeb - "[d34678]", // 0xec - "[d134678]", // 0xed - "[d234678]", // 0xee - "[d1234678]", // 0xef - "[d5678]", // 0xf0 - "[d15678]", // 0xf1 - "[d25678]", // 0xf2 - "[d125678]", // 0xf3 - "[d35678]", // 0xf4 - "[d135678]", // 0xf5 - "[d235678]", // 0xf6 - "[d1235678]", // 0xf7 - "[d45678]", // 0xf8 - "[d145678]", // 0xf9 - "[d245678]", // 0xfa - "[d1245678]", // 0xfb - "[d345678]", // 0xfc - "[d1345678]", // 0xfd - "[d2345678]", // 0xfe - "[d12345678]", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x029.go b/vendor/github.com/mozillazg/go-unidecode/table/x029.go deleted file mode 100644 index 8a1b13d..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x029.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x029 = []string{ - "", // 0x00 - "", // 0x01 - "", // 0x02 - "", // 0x03 - "", // 0x04 - "", // 0x05 - "", // 0x06 - "", // 0x07 - "", // 0x08 - "", // 0x09 - "", // 0x0a - "", // 0x0b - "", // 0x0c - "", // 0x0d - "", // 0x0e - "", // 0x0f - "", // 0x10 - "", // 0x11 - "", // 0x12 - "", // 0x13 - "", // 0x14 - "", // 0x15 - "", // 0x16 - "", // 0x17 - "", // 0x18 - "", // 0x19 - "", // 0x1a - "", // 0x1b - "", // 0x1c - "", // 0x1d - "", // 0x1e - "", // 0x1f - "", // 0x20 - "", // 0x21 - "", // 0x22 - "", // 0x23 - "", // 0x24 - "", // 0x25 - "", // 0x26 - "", // 0x27 - "", // 0x28 - "", // 0x29 - "", // 0x2a - "", // 0x2b - "", // 0x2c - "", // 0x2d - "", // 0x2e - "", // 0x2f - "", // 0x30 - "", // 0x31 - "", // 0x32 - "", // 0x33 - "", // 0x34 - "", // 0x35 - "", // 0x36 - "", // 0x37 - "", // 0x38 - "", // 0x39 - "", // 0x3a - "", // 0x3b - "", // 0x3c - "", // 0x3d - "", // 0x3e - "", // 0x3f - "", // 0x40 - "", // 0x41 - "", // 0x42 - "", // 0x43 - "", // 0x44 - "", // 0x45 - "", // 0x46 - "", // 0x47 - "", // 0x48 - "", // 0x49 - "", // 0x4a - "", // 0x4b - "", // 0x4c - "", // 0x4d - "", // 0x4e - "", // 0x4f - "", // 0x50 - "", // 0x51 - "", // 0x52 - "", // 0x53 - "", // 0x54 - "", // 0x55 - "", // 0x56 - "", // 0x57 - "", // 0x58 - "", // 0x59 - "", // 0x5a - "", // 0x5b - "", // 0x5c - "", // 0x5d - "", // 0x5e - "", // 0x5f - "", // 0x60 - "", // 0x61 - "", // 0x62 - "", // 0x63 - "", // 0x64 - "", // 0x65 - "", // 0x66 - "", // 0x67 - "", // 0x68 - "", // 0x69 - "", // 0x6a - "", // 0x6b - "", // 0x6c - "", // 0x6d - "", // 0x6e - "", // 0x6f - "", // 0x70 - "", // 0x71 - "", // 0x72 - "", // 0x73 - "", // 0x74 - "", // 0x75 - "", // 0x76 - "", // 0x77 - "", // 0x78 - "", // 0x79 - "", // 0x7a - "", // 0x7b - "", // 0x7c - "", // 0x7d - "", // 0x7e - "", // 0x7f - "", // 0x80 - "", // 0x81 - "", // 0x82 - "{", // 0x83 - "} ", // 0x84 - "", // 0x85 - "", // 0x86 - "", // 0x87 - "", // 0x88 - "", // 0x89 - "", // 0x8a - "", // 0x8b - "", // 0x8c - "", // 0x8d - "", // 0x8e - "", // 0x8f - "", // 0x90 - "", // 0x91 - "", // 0x92 - "", // 0x93 - "", // 0x94 - "", // 0x95 - "", // 0x96 - "", // 0x97 - "", // 0x98 - "", // 0x99 - "", // 0x9a - "", // 0x9b - "", // 0x9c - "", // 0x9d - "", // 0x9e - "", // 0x9f - "", // 0xa0 - "", // 0xa1 - "", // 0xa2 - "", // 0xa3 - "", // 0xa4 - "", // 0xa5 - "", // 0xa6 - "", // 0xa7 - "", // 0xa8 - "", // 0xa9 - "", // 0xaa - "", // 0xab - "", // 0xac - "", // 0xad - "", // 0xae - "", // 0xaf - "", // 0xb0 - "", // 0xb1 - "", // 0xb2 - "", // 0xb3 - "", // 0xb4 - "", // 0xb5 - "", // 0xb6 - "", // 0xb7 - "", // 0xb8 - "", // 0xb9 - "", // 0xba - "", // 0xbb - "", // 0xbc - "", // 0xbd - "", // 0xbe - "", // 0xbf - "", // 0xc0 - "", // 0xc1 - "", // 0xc2 - "", // 0xc3 - "", // 0xc4 - "", // 0xc5 - "", // 0xc6 - "", // 0xc7 - "", // 0xc8 - "", // 0xc9 - "", // 0xca - "", // 0xcb - "", // 0xcc - "", // 0xcd - "", // 0xce - "", // 0xcf - "", // 0xd0 - "", // 0xd1 - "", // 0xd2 - "", // 0xd3 - "", // 0xd4 - "", // 0xd5 - "", // 0xd6 - "", // 0xd7 - "", // 0xd8 - "", // 0xd9 - "", // 0xda - "", // 0xdb - "", // 0xdc - "", // 0xdd - "", // 0xde - "", // 0xdf - "", // 0xe0 - "", // 0xe1 - "", // 0xe2 - "", // 0xe3 - "", // 0xe4 - "", // 0xe5 - "", // 0xe6 - "", // 0xe7 - "", // 0xe8 - "", // 0xe9 - "", // 0xea - "", // 0xeb - "", // 0xec - "", // 0xed - "", // 0xee - "", // 0xef - "", // 0xf0 - "", // 0xf1 - "", // 0xf2 - "", // 0xf3 - "", // 0xf4 - "", // 0xf5 - "", // 0xf6 - "", // 0xf7 - "", // 0xf8 - "", // 0xf9 - "", // 0xfa - "", // 0xfb - "", // 0xfc - "", // 0xfd - "", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x02a.go b/vendor/github.com/mozillazg/go-unidecode/table/x02a.go deleted file mode 100644 index 175c3ad..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x02a.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x02a = []string{ - "", // 0x00 - "", // 0x01 - "", // 0x02 - "", // 0x03 - "", // 0x04 - "", // 0x05 - "", // 0x06 - "", // 0x07 - "", // 0x08 - "", // 0x09 - "", // 0x0a - "", // 0x0b - "", // 0x0c - "", // 0x0d - "", // 0x0e - "", // 0x0f - "", // 0x10 - "", // 0x11 - "", // 0x12 - "", // 0x13 - "", // 0x14 - "", // 0x15 - "", // 0x16 - "", // 0x17 - "", // 0x18 - "", // 0x19 - "", // 0x1a - "", // 0x1b - "", // 0x1c - "", // 0x1d - "", // 0x1e - "", // 0x1f - "", // 0x20 - "", // 0x21 - "", // 0x22 - "", // 0x23 - "", // 0x24 - "", // 0x25 - "", // 0x26 - "", // 0x27 - "", // 0x28 - "", // 0x29 - "", // 0x2a - "", // 0x2b - "", // 0x2c - "", // 0x2d - "", // 0x2e - "", // 0x2f - "", // 0x30 - "", // 0x31 - "", // 0x32 - "", // 0x33 - "", // 0x34 - "", // 0x35 - "", // 0x36 - "", // 0x37 - "", // 0x38 - "", // 0x39 - "", // 0x3a - "", // 0x3b - "", // 0x3c - "", // 0x3d - "", // 0x3e - "", // 0x3f - "", // 0x40 - "", // 0x41 - "", // 0x42 - "", // 0x43 - "", // 0x44 - "", // 0x45 - "", // 0x46 - "", // 0x47 - "", // 0x48 - "", // 0x49 - "", // 0x4a - "", // 0x4b - "", // 0x4c - "", // 0x4d - "", // 0x4e - "", // 0x4f - "", // 0x50 - "", // 0x51 - "", // 0x52 - "", // 0x53 - "", // 0x54 - "", // 0x55 - "", // 0x56 - "", // 0x57 - "", // 0x58 - "", // 0x59 - "", // 0x5a - "", // 0x5b - "", // 0x5c - "", // 0x5d - "", // 0x5e - "", // 0x5f - "", // 0x60 - "", // 0x61 - "", // 0x62 - "", // 0x63 - "", // 0x64 - "", // 0x65 - "", // 0x66 - "", // 0x67 - "", // 0x68 - "", // 0x69 - "", // 0x6a - "", // 0x6b - "", // 0x6c - "", // 0x6d - "", // 0x6e - "", // 0x6f - "", // 0x70 - "", // 0x71 - "", // 0x72 - "", // 0x73 - "::=", // 0x74 - "==", // 0x75 - "===", // 0x76 - "", // 0x77 - "", // 0x78 - "", // 0x79 - "", // 0x7a - "", // 0x7b - "", // 0x7c - "", // 0x7d - "", // 0x7e - "", // 0x7f - "", // 0x80 - "", // 0x81 - "", // 0x82 - "", // 0x83 - "", // 0x84 - "", // 0x85 - "", // 0x86 - "", // 0x87 - "", // 0x88 - "", // 0x89 - "", // 0x8a - "", // 0x8b - "", // 0x8c - "", // 0x8d - "", // 0x8e - "", // 0x8f - "", // 0x90 - "", // 0x91 - "", // 0x92 - "", // 0x93 - "", // 0x94 - "", // 0x95 - "", // 0x96 - "", // 0x97 - "", // 0x98 - "", // 0x99 - "", // 0x9a - "", // 0x9b - "", // 0x9c - "", // 0x9d - "", // 0x9e - "", // 0x9f - "", // 0xa0 - "", // 0xa1 - "", // 0xa2 - "", // 0xa3 - "", // 0xa4 - "", // 0xa5 - "", // 0xa6 - "", // 0xa7 - "", // 0xa8 - "", // 0xa9 - "", // 0xaa - "", // 0xab - "", // 0xac - "", // 0xad - "", // 0xae - "", // 0xaf - "", // 0xb0 - "", // 0xb1 - "", // 0xb2 - "", // 0xb3 - "", // 0xb4 - "", // 0xb5 - "", // 0xb6 - "", // 0xb7 - "", // 0xb8 - "", // 0xb9 - "", // 0xba - "", // 0xbb - "", // 0xbc - "", // 0xbd - "", // 0xbe - "", // 0xbf - "", // 0xc0 - "", // 0xc1 - "", // 0xc2 - "", // 0xc3 - "", // 0xc4 - "", // 0xc5 - "", // 0xc6 - "", // 0xc7 - "", // 0xc8 - "", // 0xc9 - "", // 0xca - "", // 0xcb - "", // 0xcc - "", // 0xcd - "", // 0xce - "", // 0xcf - "", // 0xd0 - "", // 0xd1 - "", // 0xd2 - "", // 0xd3 - "", // 0xd4 - "", // 0xd5 - "", // 0xd6 - "", // 0xd7 - "", // 0xd8 - "", // 0xd9 - "", // 0xda - "", // 0xdb - "", // 0xdc - "", // 0xdd - "", // 0xde - "", // 0xdf - "", // 0xe0 - "", // 0xe1 - "", // 0xe2 - "", // 0xe3 - "", // 0xe4 - "", // 0xe5 - "", // 0xe6 - "", // 0xe7 - "", // 0xe8 - "", // 0xe9 - "", // 0xea - "", // 0xeb - "", // 0xec - "", // 0xed - "", // 0xee - "", // 0xef - "", // 0xf0 - "", // 0xf1 - "", // 0xf2 - "", // 0xf3 - "", // 0xf4 - "", // 0xf5 - "", // 0xf6 - "", // 0xf7 - "", // 0xf8 - "", // 0xf9 - "", // 0xfa - "", // 0xfb - "", // 0xfc - "", // 0xfd - "", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x02c.go b/vendor/github.com/mozillazg/go-unidecode/table/x02c.go deleted file mode 100644 index 006cf6c..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x02c.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x02c = []string{ - "", // 0x00 - "", // 0x01 - "", // 0x02 - "", // 0x03 - "", // 0x04 - "", // 0x05 - "", // 0x06 - "", // 0x07 - "", // 0x08 - "", // 0x09 - "", // 0x0a - "", // 0x0b - "", // 0x0c - "", // 0x0d - "", // 0x0e - "", // 0x0f - "", // 0x10 - "", // 0x11 - "", // 0x12 - "", // 0x13 - "", // 0x14 - "", // 0x15 - "", // 0x16 - "", // 0x17 - "", // 0x18 - "", // 0x19 - "", // 0x1a - "", // 0x1b - "", // 0x1c - "", // 0x1d - "", // 0x1e - "", // 0x1f - "", // 0x20 - "", // 0x21 - "", // 0x22 - "", // 0x23 - "", // 0x24 - "", // 0x25 - "", // 0x26 - "", // 0x27 - "", // 0x28 - "", // 0x29 - "", // 0x2a - "", // 0x2b - "", // 0x2c - "", // 0x2d - "", // 0x2e - "", // 0x2f - "", // 0x30 - "", // 0x31 - "", // 0x32 - "", // 0x33 - "", // 0x34 - "", // 0x35 - "", // 0x36 - "", // 0x37 - "", // 0x38 - "", // 0x39 - "", // 0x3a - "", // 0x3b - "", // 0x3c - "", // 0x3d - "", // 0x3e - "", // 0x3f - "", // 0x40 - "", // 0x41 - "", // 0x42 - "", // 0x43 - "", // 0x44 - "", // 0x45 - "", // 0x46 - "", // 0x47 - "", // 0x48 - "", // 0x49 - "", // 0x4a - "", // 0x4b - "", // 0x4c - "", // 0x4d - "", // 0x4e - "", // 0x4f - "", // 0x50 - "", // 0x51 - "", // 0x52 - "", // 0x53 - "", // 0x54 - "", // 0x55 - "", // 0x56 - "", // 0x57 - "", // 0x58 - "", // 0x59 - "", // 0x5a - "", // 0x5b - "", // 0x5c - "", // 0x5d - "", // 0x5e - "", // 0x5f - "L", // 0x60 - "l", // 0x61 - "L", // 0x62 - "P", // 0x63 - "R", // 0x64 - "a", // 0x65 - "t", // 0x66 - "H", // 0x67 - "h", // 0x68 - "K", // 0x69 - "k", // 0x6a - "Z", // 0x6b - "z", // 0x6c - "", // 0x6d - "M", // 0x6e - "A", // 0x6f - "", // 0x70 - "", // 0x71 - "", // 0x72 - "", // 0x73 - "", // 0x74 - "", // 0x75 - "", // 0x76 - "", // 0x77 - "", // 0x78 - "", // 0x79 - "", // 0x7a - "", // 0x7b - "", // 0x7c - "", // 0x7d - "", // 0x7e - "", // 0x7f - "", // 0x80 - "", // 0x81 - "", // 0x82 - "", // 0x83 - "", // 0x84 - "", // 0x85 - "", // 0x86 - "", // 0x87 - "", // 0x88 - "", // 0x89 - "", // 0x8a - "", // 0x8b - "", // 0x8c - "", // 0x8d - "", // 0x8e - "", // 0x8f - "", // 0x90 - "", // 0x91 - "", // 0x92 - "", // 0x93 - "", // 0x94 - "", // 0x95 - "", // 0x96 - "", // 0x97 - "", // 0x98 - "", // 0x99 - "", // 0x9a - "", // 0x9b - "", // 0x9c - "", // 0x9d - "", // 0x9e - "", // 0x9f - "", // 0xa0 - "", // 0xa1 - "", // 0xa2 - "", // 0xa3 - "", // 0xa4 - "", // 0xa5 - "", // 0xa6 - "", // 0xa7 - "", // 0xa8 - "", // 0xa9 - "", // 0xaa - "", // 0xab - "", // 0xac - "", // 0xad - "", // 0xae - "", // 0xaf - "", // 0xb0 - "", // 0xb1 - "", // 0xb2 - "", // 0xb3 - "", // 0xb4 - "", // 0xb5 - "", // 0xb6 - "", // 0xb7 - "", // 0xb8 - "", // 0xb9 - "", // 0xba - "", // 0xbb - "", // 0xbc - "", // 0xbd - "", // 0xbe - "", // 0xbf - "", // 0xc0 - "", // 0xc1 - "", // 0xc2 - "", // 0xc3 - "", // 0xc4 - "", // 0xc5 - "", // 0xc6 - "", // 0xc7 - "", // 0xc8 - "", // 0xc9 - "", // 0xca - "", // 0xcb - "", // 0xcc - "", // 0xcd - "", // 0xce - "", // 0xcf - "", // 0xd0 - "", // 0xd1 - "", // 0xd2 - "", // 0xd3 - "", // 0xd4 - "", // 0xd5 - "", // 0xd6 - "", // 0xd7 - "", // 0xd8 - "", // 0xd9 - "", // 0xda - "", // 0xdb - "", // 0xdc - "", // 0xdd - "", // 0xde - "", // 0xdf - "", // 0xe0 - "", // 0xe1 - "", // 0xe2 - "", // 0xe3 - "", // 0xe4 - "", // 0xe5 - "", // 0xe6 - "", // 0xe7 - "", // 0xe8 - "", // 0xe9 - "", // 0xea - "", // 0xeb - "", // 0xec - "", // 0xed - "", // 0xee - "", // 0xef - "", // 0xf0 - "", // 0xf1 - "", // 0xf2 - "", // 0xf3 - "", // 0xf4 - "", // 0xf5 - "", // 0xf6 - "", // 0xf7 - "", // 0xf8 - "", // 0xf9 - "", // 0xfa - "", // 0xfb - "", // 0xfc - "", // 0xfd - "", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x02e.go b/vendor/github.com/mozillazg/go-unidecode/table/x02e.go deleted file mode 100644 index c93b42a..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x02e.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x02e = []string{ - "[?]", // 0x00 - "[?]", // 0x01 - "[?]", // 0x02 - "[?]", // 0x03 - "[?]", // 0x04 - "[?]", // 0x05 - "[?]", // 0x06 - "[?]", // 0x07 - "[?]", // 0x08 - "[?]", // 0x09 - "[?]", // 0x0a - "[?]", // 0x0b - "[?]", // 0x0c - "[?]", // 0x0d - "[?]", // 0x0e - "[?]", // 0x0f - "[?]", // 0x10 - "[?]", // 0x11 - "[?]", // 0x12 - "[?]", // 0x13 - "[?]", // 0x14 - "[?]", // 0x15 - "[?]", // 0x16 - "[?]", // 0x17 - "[?]", // 0x18 - "[?]", // 0x19 - "[?]", // 0x1a - "[?]", // 0x1b - "[?]", // 0x1c - "[?]", // 0x1d - "[?]", // 0x1e - "[?]", // 0x1f - "[?]", // 0x20 - "[?]", // 0x21 - "[?]", // 0x22 - "[?]", // 0x23 - "[?]", // 0x24 - "[?]", // 0x25 - "[?]", // 0x26 - "[?]", // 0x27 - "[?]", // 0x28 - "[?]", // 0x29 - "[?]", // 0x2a - "[?]", // 0x2b - "[?]", // 0x2c - "[?]", // 0x2d - "[?]", // 0x2e - "[?]", // 0x2f - "[?]", // 0x30 - "[?]", // 0x31 - "[?]", // 0x32 - "[?]", // 0x33 - "[?]", // 0x34 - "[?]", // 0x35 - "[?]", // 0x36 - "[?]", // 0x37 - "[?]", // 0x38 - "[?]", // 0x39 - "[?]", // 0x3a - "[?]", // 0x3b - "[?]", // 0x3c - "[?]", // 0x3d - "[?]", // 0x3e - "[?]", // 0x3f - "[?]", // 0x40 - "[?]", // 0x41 - "[?]", // 0x42 - "[?]", // 0x43 - "[?]", // 0x44 - "[?]", // 0x45 - "[?]", // 0x46 - "[?]", // 0x47 - "[?]", // 0x48 - "[?]", // 0x49 - "[?]", // 0x4a - "[?]", // 0x4b - "[?]", // 0x4c - "[?]", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "[?]", // 0x50 - "[?]", // 0x51 - "[?]", // 0x52 - "[?]", // 0x53 - "[?]", // 0x54 - "[?]", // 0x55 - "[?]", // 0x56 - "[?]", // 0x57 - "[?]", // 0x58 - "[?]", // 0x59 - "[?]", // 0x5a - "[?]", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "[?]", // 0x60 - "[?]", // 0x61 - "[?]", // 0x62 - "[?]", // 0x63 - "[?]", // 0x64 - "[?]", // 0x65 - "[?]", // 0x66 - "[?]", // 0x67 - "[?]", // 0x68 - "[?]", // 0x69 - "[?]", // 0x6a - "[?]", // 0x6b - "[?]", // 0x6c - "[?]", // 0x6d - "[?]", // 0x6e - "[?]", // 0x6f - "[?]", // 0x70 - "[?]", // 0x71 - "[?]", // 0x72 - "[?]", // 0x73 - "[?]", // 0x74 - "[?]", // 0x75 - "[?]", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "[?] ", // 0x80 - "[?] ", // 0x81 - "[?] ", // 0x82 - "[?] ", // 0x83 - "[?] ", // 0x84 - "[?] ", // 0x85 - "[?] ", // 0x86 - "[?] ", // 0x87 - "[?] ", // 0x88 - "[?] ", // 0x89 - "[?] ", // 0x8a - "[?] ", // 0x8b - "[?] ", // 0x8c - "[?] ", // 0x8d - "[?] ", // 0x8e - "[?] ", // 0x8f - "[?] ", // 0x90 - "[?] ", // 0x91 - "[?] ", // 0x92 - "[?] ", // 0x93 - "[?] ", // 0x94 - "[?] ", // 0x95 - "[?] ", // 0x96 - "[?] ", // 0x97 - "[?] ", // 0x98 - "[?] ", // 0x99 - "[?]", // 0x9a - "[?] ", // 0x9b - "[?] ", // 0x9c - "[?] ", // 0x9d - "[?] ", // 0x9e - "[?] ", // 0x9f - "[?] ", // 0xa0 - "[?] ", // 0xa1 - "[?] ", // 0xa2 - "[?] ", // 0xa3 - "[?] ", // 0xa4 - "[?] ", // 0xa5 - "[?] ", // 0xa6 - "[?] ", // 0xa7 - "[?] ", // 0xa8 - "[?] ", // 0xa9 - "[?] ", // 0xaa - "[?] ", // 0xab - "[?] ", // 0xac - "[?] ", // 0xad - "[?] ", // 0xae - "[?] ", // 0xaf - "[?] ", // 0xb0 - "[?] ", // 0xb1 - "[?] ", // 0xb2 - "[?] ", // 0xb3 - "[?] ", // 0xb4 - "[?] ", // 0xb5 - "[?] ", // 0xb6 - "[?] ", // 0xb7 - "[?] ", // 0xb8 - "[?] ", // 0xb9 - "[?] ", // 0xba - "[?] ", // 0xbb - "[?] ", // 0xbc - "[?] ", // 0xbd - "[?] ", // 0xbe - "[?] ", // 0xbf - "[?] ", // 0xc0 - "[?] ", // 0xc1 - "[?] ", // 0xc2 - "[?] ", // 0xc3 - "[?] ", // 0xc4 - "[?] ", // 0xc5 - "[?] ", // 0xc6 - "[?] ", // 0xc7 - "[?] ", // 0xc8 - "[?] ", // 0xc9 - "[?] ", // 0xca - "[?] ", // 0xcb - "[?] ", // 0xcc - "[?] ", // 0xcd - "[?] ", // 0xce - "[?] ", // 0xcf - "[?] ", // 0xd0 - "[?] ", // 0xd1 - "[?] ", // 0xd2 - "[?] ", // 0xd3 - "[?] ", // 0xd4 - "[?] ", // 0xd5 - "[?] ", // 0xd6 - "[?] ", // 0xd7 - "[?] ", // 0xd8 - "[?] ", // 0xd9 - "[?] ", // 0xda - "[?] ", // 0xdb - "[?] ", // 0xdc - "[?] ", // 0xdd - "[?] ", // 0xde - "[?] ", // 0xdf - "[?] ", // 0xe0 - "[?] ", // 0xe1 - "[?] ", // 0xe2 - "[?] ", // 0xe3 - "[?] ", // 0xe4 - "[?] ", // 0xe5 - "[?] ", // 0xe6 - "[?] ", // 0xe7 - "[?] ", // 0xe8 - "[?] ", // 0xe9 - "[?] ", // 0xea - "[?] ", // 0xeb - "[?] ", // 0xec - "[?] ", // 0xed - "[?] ", // 0xee - "[?] ", // 0xef - "[?] ", // 0xf0 - "[?] ", // 0xf1 - "[?] ", // 0xf2 - "[?] ", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x02f.go b/vendor/github.com/mozillazg/go-unidecode/table/x02f.go deleted file mode 100644 index 90a4f27..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x02f.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x02f = []string{ - "[?] ", // 0x00 - "[?] ", // 0x01 - "[?] ", // 0x02 - "[?] ", // 0x03 - "[?] ", // 0x04 - "[?] ", // 0x05 - "[?] ", // 0x06 - "[?] ", // 0x07 - "[?] ", // 0x08 - "[?] ", // 0x09 - "[?] ", // 0x0a - "[?] ", // 0x0b - "[?] ", // 0x0c - "[?] ", // 0x0d - "[?] ", // 0x0e - "[?] ", // 0x0f - "[?] ", // 0x10 - "[?] ", // 0x11 - "[?] ", // 0x12 - "[?] ", // 0x13 - "[?] ", // 0x14 - "[?] ", // 0x15 - "[?] ", // 0x16 - "[?] ", // 0x17 - "[?] ", // 0x18 - "[?] ", // 0x19 - "[?] ", // 0x1a - "[?] ", // 0x1b - "[?] ", // 0x1c - "[?] ", // 0x1d - "[?] ", // 0x1e - "[?] ", // 0x1f - "[?] ", // 0x20 - "[?] ", // 0x21 - "[?] ", // 0x22 - "[?] ", // 0x23 - "[?] ", // 0x24 - "[?] ", // 0x25 - "[?] ", // 0x26 - "[?] ", // 0x27 - "[?] ", // 0x28 - "[?] ", // 0x29 - "[?] ", // 0x2a - "[?] ", // 0x2b - "[?] ", // 0x2c - "[?] ", // 0x2d - "[?] ", // 0x2e - "[?] ", // 0x2f - "[?] ", // 0x30 - "[?] ", // 0x31 - "[?] ", // 0x32 - "[?] ", // 0x33 - "[?] ", // 0x34 - "[?] ", // 0x35 - "[?] ", // 0x36 - "[?] ", // 0x37 - "[?] ", // 0x38 - "[?] ", // 0x39 - "[?] ", // 0x3a - "[?] ", // 0x3b - "[?] ", // 0x3c - "[?] ", // 0x3d - "[?] ", // 0x3e - "[?] ", // 0x3f - "[?] ", // 0x40 - "[?] ", // 0x41 - "[?] ", // 0x42 - "[?] ", // 0x43 - "[?] ", // 0x44 - "[?] ", // 0x45 - "[?] ", // 0x46 - "[?] ", // 0x47 - "[?] ", // 0x48 - "[?] ", // 0x49 - "[?] ", // 0x4a - "[?] ", // 0x4b - "[?] ", // 0x4c - "[?] ", // 0x4d - "[?] ", // 0x4e - "[?] ", // 0x4f - "[?] ", // 0x50 - "[?] ", // 0x51 - "[?] ", // 0x52 - "[?] ", // 0x53 - "[?] ", // 0x54 - "[?] ", // 0x55 - "[?] ", // 0x56 - "[?] ", // 0x57 - "[?] ", // 0x58 - "[?] ", // 0x59 - "[?] ", // 0x5a - "[?] ", // 0x5b - "[?] ", // 0x5c - "[?] ", // 0x5d - "[?] ", // 0x5e - "[?] ", // 0x5f - "[?] ", // 0x60 - "[?] ", // 0x61 - "[?] ", // 0x62 - "[?] ", // 0x63 - "[?] ", // 0x64 - "[?] ", // 0x65 - "[?] ", // 0x66 - "[?] ", // 0x67 - "[?] ", // 0x68 - "[?] ", // 0x69 - "[?] ", // 0x6a - "[?] ", // 0x6b - "[?] ", // 0x6c - "[?] ", // 0x6d - "[?] ", // 0x6e - "[?] ", // 0x6f - "[?] ", // 0x70 - "[?] ", // 0x71 - "[?] ", // 0x72 - "[?] ", // 0x73 - "[?] ", // 0x74 - "[?] ", // 0x75 - "[?] ", // 0x76 - "[?] ", // 0x77 - "[?] ", // 0x78 - "[?] ", // 0x79 - "[?] ", // 0x7a - "[?] ", // 0x7b - "[?] ", // 0x7c - "[?] ", // 0x7d - "[?] ", // 0x7e - "[?] ", // 0x7f - "[?] ", // 0x80 - "[?] ", // 0x81 - "[?] ", // 0x82 - "[?] ", // 0x83 - "[?] ", // 0x84 - "[?] ", // 0x85 - "[?] ", // 0x86 - "[?] ", // 0x87 - "[?] ", // 0x88 - "[?] ", // 0x89 - "[?] ", // 0x8a - "[?] ", // 0x8b - "[?] ", // 0x8c - "[?] ", // 0x8d - "[?] ", // 0x8e - "[?] ", // 0x8f - "[?] ", // 0x90 - "[?] ", // 0x91 - "[?] ", // 0x92 - "[?] ", // 0x93 - "[?] ", // 0x94 - "[?] ", // 0x95 - "[?] ", // 0x96 - "[?] ", // 0x97 - "[?] ", // 0x98 - "[?] ", // 0x99 - "[?] ", // 0x9a - "[?] ", // 0x9b - "[?] ", // 0x9c - "[?] ", // 0x9d - "[?] ", // 0x9e - "[?] ", // 0x9f - "[?] ", // 0xa0 - "[?] ", // 0xa1 - "[?] ", // 0xa2 - "[?] ", // 0xa3 - "[?] ", // 0xa4 - "[?] ", // 0xa5 - "[?] ", // 0xa6 - "[?] ", // 0xa7 - "[?] ", // 0xa8 - "[?] ", // 0xa9 - "[?] ", // 0xaa - "[?] ", // 0xab - "[?] ", // 0xac - "[?] ", // 0xad - "[?] ", // 0xae - "[?] ", // 0xaf - "[?] ", // 0xb0 - "[?] ", // 0xb1 - "[?] ", // 0xb2 - "[?] ", // 0xb3 - "[?] ", // 0xb4 - "[?] ", // 0xb5 - "[?] ", // 0xb6 - "[?] ", // 0xb7 - "[?] ", // 0xb8 - "[?] ", // 0xb9 - "[?] ", // 0xba - "[?] ", // 0xbb - "[?] ", // 0xbc - "[?] ", // 0xbd - "[?] ", // 0xbe - "[?] ", // 0xbf - "[?] ", // 0xc0 - "[?] ", // 0xc1 - "[?] ", // 0xc2 - "[?] ", // 0xc3 - "[?] ", // 0xc4 - "[?] ", // 0xc5 - "[?] ", // 0xc6 - "[?] ", // 0xc7 - "[?] ", // 0xc8 - "[?] ", // 0xc9 - "[?] ", // 0xca - "[?] ", // 0xcb - "[?] ", // 0xcc - "[?] ", // 0xcd - "[?] ", // 0xce - "[?] ", // 0xcf - "[?] ", // 0xd0 - "[?] ", // 0xd1 - "[?] ", // 0xd2 - "[?] ", // 0xd3 - "[?] ", // 0xd4 - "[?] ", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?] ", // 0xf0 - "[?] ", // 0xf1 - "[?] ", // 0xf2 - "[?] ", // 0xf3 - "[?] ", // 0xf4 - "[?] ", // 0xf5 - "[?] ", // 0xf6 - "[?] ", // 0xf7 - "[?] ", // 0xf8 - "[?] ", // 0xf9 - "[?] ", // 0xfa - "[?] ", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x030.go b/vendor/github.com/mozillazg/go-unidecode/table/x030.go deleted file mode 100644 index 940e6a9..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x030.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x030 = []string{ - " ", // 0x00 - ", ", // 0x01 - ". ", // 0x02 - "\"", // 0x03 - "[JIS]", // 0x04 - "\"", // 0x05 - "/", // 0x06 - "0", // 0x07 - "<", // 0x08 - "> ", // 0x09 - "<<", // 0x0a - ">> ", // 0x0b - "[", // 0x0c - "] ", // 0x0d - "{", // 0x0e - "} ", // 0x0f - "[(", // 0x10 - ")] ", // 0x11 - "@", // 0x12 - "X ", // 0x13 - "[", // 0x14 - "] ", // 0x15 - "[[", // 0x16 - "]] ", // 0x17 - "((", // 0x18 - ")) ", // 0x19 - "[[", // 0x1a - "]] ", // 0x1b - "~ ", // 0x1c - "``", // 0x1d - "''", // 0x1e - ",,", // 0x1f - "@", // 0x20 - "1", // 0x21 - "2", // 0x22 - "3", // 0x23 - "4", // 0x24 - "5", // 0x25 - "6", // 0x26 - "7", // 0x27 - "8", // 0x28 - "9", // 0x29 - "", // 0x2a - "", // 0x2b - "", // 0x2c - "", // 0x2d - "", // 0x2e - "", // 0x2f - "~", // 0x30 - "+", // 0x31 - "+", // 0x32 - "+", // 0x33 - "+", // 0x34 - "", // 0x35 - "@", // 0x36 - " // ", // 0x37 - "+10+", // 0x38 - "+20+", // 0x39 - "+30+", // 0x3a - "[?]", // 0x3b - "[?]", // 0x3c - "[?]", // 0x3d - "", // 0x3e - "", // 0x3f - "[?]", // 0x40 - "a", // 0x41 - "a", // 0x42 - "i", // 0x43 - "i", // 0x44 - "u", // 0x45 - "u", // 0x46 - "e", // 0x47 - "e", // 0x48 - "o", // 0x49 - "o", // 0x4a - "ka", // 0x4b - "ga", // 0x4c - "ki", // 0x4d - "gi", // 0x4e - "ku", // 0x4f - "gu", // 0x50 - "ke", // 0x51 - "ge", // 0x52 - "ko", // 0x53 - "go", // 0x54 - "sa", // 0x55 - "za", // 0x56 - "shi", // 0x57 - "zi", // 0x58 - "su", // 0x59 - "zu", // 0x5a - "se", // 0x5b - "ze", // 0x5c - "so", // 0x5d - "zo", // 0x5e - "ta", // 0x5f - "da", // 0x60 - "chi", // 0x61 - "di", // 0x62 - "tsu", // 0x63 - "tsu", // 0x64 - "du", // 0x65 - "te", // 0x66 - "de", // 0x67 - "to", // 0x68 - "do", // 0x69 - "na", // 0x6a - "ni", // 0x6b - "nu", // 0x6c - "ne", // 0x6d - "no", // 0x6e - "ha", // 0x6f - "ba", // 0x70 - "pa", // 0x71 - "hi", // 0x72 - "bi", // 0x73 - "pi", // 0x74 - "hu", // 0x75 - "bu", // 0x76 - "pu", // 0x77 - "he", // 0x78 - "be", // 0x79 - "pe", // 0x7a - "ho", // 0x7b - "bo", // 0x7c - "po", // 0x7d - "ma", // 0x7e - "mi", // 0x7f - "mu", // 0x80 - "me", // 0x81 - "mo", // 0x82 - "ya", // 0x83 - "ya", // 0x84 - "yu", // 0x85 - "yu", // 0x86 - "yo", // 0x87 - "yo", // 0x88 - "ra", // 0x89 - "ri", // 0x8a - "ru", // 0x8b - "re", // 0x8c - "ro", // 0x8d - "wa", // 0x8e - "wa", // 0x8f - "wi", // 0x90 - "we", // 0x91 - "wo", // 0x92 - "n", // 0x93 - "vu", // 0x94 - "[?]", // 0x95 - "[?]", // 0x96 - "[?]", // 0x97 - "[?]", // 0x98 - "", // 0x99 - "", // 0x9a - "", // 0x9b - "", // 0x9c - "\"", // 0x9d - "\"", // 0x9e - "[?]", // 0x9f - "[?]", // 0xa0 - "a", // 0xa1 - "a", // 0xa2 - "i", // 0xa3 - "i", // 0xa4 - "u", // 0xa5 - "u", // 0xa6 - "e", // 0xa7 - "e", // 0xa8 - "o", // 0xa9 - "o", // 0xaa - "ka", // 0xab - "ga", // 0xac - "ki", // 0xad - "gi", // 0xae - "ku", // 0xaf - "gu", // 0xb0 - "ke", // 0xb1 - "ge", // 0xb2 - "ko", // 0xb3 - "go", // 0xb4 - "sa", // 0xb5 - "za", // 0xb6 - "shi", // 0xb7 - "zi", // 0xb8 - "su", // 0xb9 - "zu", // 0xba - "se", // 0xbb - "ze", // 0xbc - "so", // 0xbd - "zo", // 0xbe - "ta", // 0xbf - "da", // 0xc0 - "chi", // 0xc1 - "di", // 0xc2 - "tsu", // 0xc3 - "tsu", // 0xc4 - "du", // 0xc5 - "te", // 0xc6 - "de", // 0xc7 - "to", // 0xc8 - "do", // 0xc9 - "na", // 0xca - "ni", // 0xcb - "nu", // 0xcc - "ne", // 0xcd - "no", // 0xce - "ha", // 0xcf - "ba", // 0xd0 - "pa", // 0xd1 - "hi", // 0xd2 - "bi", // 0xd3 - "pi", // 0xd4 - "hu", // 0xd5 - "bu", // 0xd6 - "pu", // 0xd7 - "he", // 0xd8 - "be", // 0xd9 - "pe", // 0xda - "ho", // 0xdb - "bo", // 0xdc - "po", // 0xdd - "ma", // 0xde - "mi", // 0xdf - "mu", // 0xe0 - "me", // 0xe1 - "mo", // 0xe2 - "ya", // 0xe3 - "ya", // 0xe4 - "yu", // 0xe5 - "yu", // 0xe6 - "yo", // 0xe7 - "yo", // 0xe8 - "ra", // 0xe9 - "ri", // 0xea - "ru", // 0xeb - "re", // 0xec - "ro", // 0xed - "wa", // 0xee - "wa", // 0xef - "wi", // 0xf0 - "we", // 0xf1 - "wo", // 0xf2 - "n", // 0xf3 - "vu", // 0xf4 - "ka", // 0xf5 - "ke", // 0xf6 - "va", // 0xf7 - "vi", // 0xf8 - "ve", // 0xf9 - "vo", // 0xfa - "", // 0xfb - "", // 0xfc - "\"", // 0xfd - "\"", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x031.go b/vendor/github.com/mozillazg/go-unidecode/table/x031.go deleted file mode 100644 index 2612267..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x031.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x031 = []string{ - "[?]", // 0x00 - "[?]", // 0x01 - "[?]", // 0x02 - "[?]", // 0x03 - "[?]", // 0x04 - "B", // 0x05 - "P", // 0x06 - "M", // 0x07 - "F", // 0x08 - "D", // 0x09 - "T", // 0x0a - "N", // 0x0b - "L", // 0x0c - "G", // 0x0d - "K", // 0x0e - "H", // 0x0f - "J", // 0x10 - "Q", // 0x11 - "X", // 0x12 - "ZH", // 0x13 - "CH", // 0x14 - "SH", // 0x15 - "R", // 0x16 - "Z", // 0x17 - "C", // 0x18 - "S", // 0x19 - "A", // 0x1a - "O", // 0x1b - "E", // 0x1c - "EH", // 0x1d - "AI", // 0x1e - "EI", // 0x1f - "AU", // 0x20 - "OU", // 0x21 - "AN", // 0x22 - "EN", // 0x23 - "ANG", // 0x24 - "ENG", // 0x25 - "ER", // 0x26 - "I", // 0x27 - "U", // 0x28 - "IU", // 0x29 - "V", // 0x2a - "NG", // 0x2b - "GN", // 0x2c - "[?]", // 0x2d - "[?]", // 0x2e - "[?]", // 0x2f - "[?]", // 0x30 - "g", // 0x31 - "gg", // 0x32 - "gs", // 0x33 - "n", // 0x34 - "nj", // 0x35 - "nh", // 0x36 - "d", // 0x37 - "dd", // 0x38 - "r", // 0x39 - "lg", // 0x3a - "lm", // 0x3b - "lb", // 0x3c - "ls", // 0x3d - "lt", // 0x3e - "lp", // 0x3f - "rh", // 0x40 - "m", // 0x41 - "b", // 0x42 - "bb", // 0x43 - "bs", // 0x44 - "s", // 0x45 - "ss", // 0x46 - "", // 0x47 - "j", // 0x48 - "jj", // 0x49 - "c", // 0x4a - "k", // 0x4b - "t", // 0x4c - "p", // 0x4d - "h", // 0x4e - "a", // 0x4f - "ae", // 0x50 - "ya", // 0x51 - "yae", // 0x52 - "eo", // 0x53 - "e", // 0x54 - "yeo", // 0x55 - "ye", // 0x56 - "o", // 0x57 - "wa", // 0x58 - "wae", // 0x59 - "oe", // 0x5a - "yo", // 0x5b - "u", // 0x5c - "weo", // 0x5d - "we", // 0x5e - "wi", // 0x5f - "yu", // 0x60 - "eu", // 0x61 - "yi", // 0x62 - "i", // 0x63 - "", // 0x64 - "nn", // 0x65 - "nd", // 0x66 - "ns", // 0x67 - "nZ", // 0x68 - "lgs", // 0x69 - "ld", // 0x6a - "lbs", // 0x6b - "lZ", // 0x6c - "lQ", // 0x6d - "mb", // 0x6e - "ms", // 0x6f - "mZ", // 0x70 - "mN", // 0x71 - "bg", // 0x72 - "", // 0x73 - "bsg", // 0x74 - "bst", // 0x75 - "bj", // 0x76 - "bt", // 0x77 - "bN", // 0x78 - "bbN", // 0x79 - "sg", // 0x7a - "sn", // 0x7b - "sd", // 0x7c - "sb", // 0x7d - "sj", // 0x7e - "Z", // 0x7f - "", // 0x80 - "N", // 0x81 - "Ns", // 0x82 - "NZ", // 0x83 - "pN", // 0x84 - "hh", // 0x85 - "Q", // 0x86 - "yo-ya", // 0x87 - "yo-yae", // 0x88 - "yo-i", // 0x89 - "yu-yeo", // 0x8a - "yu-ye", // 0x8b - "yu-i", // 0x8c - "U", // 0x8d - "U-i", // 0x8e - "[?]", // 0x8f - "", // 0x90 - "", // 0x91 - "", // 0x92 - "", // 0x93 - "", // 0x94 - "", // 0x95 - "", // 0x96 - "", // 0x97 - "", // 0x98 - "", // 0x99 - "", // 0x9a - "", // 0x9b - "", // 0x9c - "", // 0x9d - "", // 0x9e - "", // 0x9f - "BU", // 0xa0 - "ZI", // 0xa1 - "JI", // 0xa2 - "GU", // 0xa3 - "EE", // 0xa4 - "ENN", // 0xa5 - "OO", // 0xa6 - "ONN", // 0xa7 - "IR", // 0xa8 - "ANN", // 0xa9 - "INN", // 0xaa - "UNN", // 0xab - "IM", // 0xac - "NGG", // 0xad - "AINN", // 0xae - "AUNN", // 0xaf - "AM", // 0xb0 - "OM", // 0xb1 - "ONG", // 0xb2 - "INNN", // 0xb3 - "P", // 0xb4 - "T", // 0xb5 - "K", // 0xb6 - "H", // 0xb7 - "[?]", // 0xb8 - "[?]", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "[?]", // 0xbc - "[?]", // 0xbd - "[?]", // 0xbe - "[?]", // 0xbf - "[?]", // 0xc0 - "[?]", // 0xc1 - "[?]", // 0xc2 - "[?]", // 0xc3 - "[?]", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x032.go b/vendor/github.com/mozillazg/go-unidecode/table/x032.go deleted file mode 100644 index 5ae3dc4..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x032.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x032 = []string{ - "(g)", // 0x00 - "(n)", // 0x01 - "(d)", // 0x02 - "(r)", // 0x03 - "(m)", // 0x04 - "(b)", // 0x05 - "(s)", // 0x06 - "()", // 0x07 - "(j)", // 0x08 - "(c)", // 0x09 - "(k)", // 0x0a - "(t)", // 0x0b - "(p)", // 0x0c - "(h)", // 0x0d - "(ga)", // 0x0e - "(na)", // 0x0f - "(da)", // 0x10 - "(ra)", // 0x11 - "(ma)", // 0x12 - "(ba)", // 0x13 - "(sa)", // 0x14 - "(a)", // 0x15 - "(ja)", // 0x16 - "(ca)", // 0x17 - "(ka)", // 0x18 - "(ta)", // 0x19 - "(pa)", // 0x1a - "(ha)", // 0x1b - "(ju)", // 0x1c - "[?]", // 0x1d - "[?]", // 0x1e - "[?]", // 0x1f - "(1) ", // 0x20 - "(2) ", // 0x21 - "(3) ", // 0x22 - "(4) ", // 0x23 - "(5) ", // 0x24 - "(6) ", // 0x25 - "(7) ", // 0x26 - "(8) ", // 0x27 - "(9) ", // 0x28 - "(10) ", // 0x29 - "(Yue) ", // 0x2a - "(Huo) ", // 0x2b - "(Shui) ", // 0x2c - "(Mu) ", // 0x2d - "(Jin) ", // 0x2e - "(Tu) ", // 0x2f - "(Ri) ", // 0x30 - "(Zhu) ", // 0x31 - "(You) ", // 0x32 - "(She) ", // 0x33 - "(Ming) ", // 0x34 - "(Te) ", // 0x35 - "(Cai) ", // 0x36 - "(Zhu) ", // 0x37 - "(Lao) ", // 0x38 - "(Dai) ", // 0x39 - "(Hu) ", // 0x3a - "(Xue) ", // 0x3b - "(Jian) ", // 0x3c - "(Qi) ", // 0x3d - "(Zi) ", // 0x3e - "(Xie) ", // 0x3f - "(Ji) ", // 0x40 - "(Xiu) ", // 0x41 - "<<", // 0x42 - ">>", // 0x43 - "[?]", // 0x44 - "[?]", // 0x45 - "[?]", // 0x46 - "[?]", // 0x47 - "[?]", // 0x48 - "[?]", // 0x49 - "[?]", // 0x4a - "[?]", // 0x4b - "[?]", // 0x4c - "[?]", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "[?]", // 0x50 - "21", // 0x51 - "22", // 0x52 - "23", // 0x53 - "24", // 0x54 - "25", // 0x55 - "26", // 0x56 - "27", // 0x57 - "28", // 0x58 - "29", // 0x59 - "30", // 0x5a - "31", // 0x5b - "32", // 0x5c - "33", // 0x5d - "34", // 0x5e - "35", // 0x5f - "(g)", // 0x60 - "(n)", // 0x61 - "(d)", // 0x62 - "(r)", // 0x63 - "(m)", // 0x64 - "(b)", // 0x65 - "(s)", // 0x66 - "()", // 0x67 - "(j)", // 0x68 - "(c)", // 0x69 - "(k)", // 0x6a - "(t)", // 0x6b - "(p)", // 0x6c - "(h)", // 0x6d - "(ga)", // 0x6e - "(na)", // 0x6f - "(da)", // 0x70 - "(ra)", // 0x71 - "(ma)", // 0x72 - "(ba)", // 0x73 - "(sa)", // 0x74 - "(a)", // 0x75 - "(ja)", // 0x76 - "(ca)", // 0x77 - "(ka)", // 0x78 - "(ta)", // 0x79 - "(pa)", // 0x7a - "(ha)", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "KIS ", // 0x7f - "(1) ", // 0x80 - "(2) ", // 0x81 - "(3) ", // 0x82 - "(4) ", // 0x83 - "(5) ", // 0x84 - "(6) ", // 0x85 - "(7) ", // 0x86 - "(8) ", // 0x87 - "(9) ", // 0x88 - "(10) ", // 0x89 - "(Yue) ", // 0x8a - "(Huo) ", // 0x8b - "(Shui) ", // 0x8c - "(Mu) ", // 0x8d - "(Jin) ", // 0x8e - "(Tu) ", // 0x8f - "(Ri) ", // 0x90 - "(Zhu) ", // 0x91 - "(You) ", // 0x92 - "(She) ", // 0x93 - "(Ming) ", // 0x94 - "(Te) ", // 0x95 - "(Cai) ", // 0x96 - "(Zhu) ", // 0x97 - "(Lao) ", // 0x98 - "(Mi) ", // 0x99 - "(Nan) ", // 0x9a - "(Nu) ", // 0x9b - "(Shi) ", // 0x9c - "(You) ", // 0x9d - "(Yin) ", // 0x9e - "(Zhu) ", // 0x9f - "(Xiang) ", // 0xa0 - "(Xiu) ", // 0xa1 - "(Xie) ", // 0xa2 - "(Zheng) ", // 0xa3 - "(Shang) ", // 0xa4 - "(Zhong) ", // 0xa5 - "(Xia) ", // 0xa6 - "(Zuo) ", // 0xa7 - "(You) ", // 0xa8 - "(Yi) ", // 0xa9 - "(Zong) ", // 0xaa - "(Xue) ", // 0xab - "(Jian) ", // 0xac - "(Qi) ", // 0xad - "(Zi) ", // 0xae - "(Xie) ", // 0xaf - "(Ye) ", // 0xb0 - "36", // 0xb1 - "37", // 0xb2 - "38", // 0xb3 - "39", // 0xb4 - "40", // 0xb5 - "41", // 0xb6 - "42", // 0xb7 - "43", // 0xb8 - "44", // 0xb9 - "45", // 0xba - "46", // 0xbb - "47", // 0xbc - "48", // 0xbd - "49", // 0xbe - "50", // 0xbf - "1M", // 0xc0 - "2M", // 0xc1 - "3M", // 0xc2 - "4M", // 0xc3 - "5M", // 0xc4 - "6M", // 0xc5 - "7M", // 0xc6 - "8M", // 0xc7 - "9M", // 0xc8 - "10M", // 0xc9 - "11M", // 0xca - "12M", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "a", // 0xd0 - "i", // 0xd1 - "u", // 0xd2 - "u", // 0xd3 - "o", // 0xd4 - "ka", // 0xd5 - "ki", // 0xd6 - "ku", // 0xd7 - "ke", // 0xd8 - "ko", // 0xd9 - "sa", // 0xda - "si", // 0xdb - "su", // 0xdc - "se", // 0xdd - "so", // 0xde - "ta", // 0xdf - "ti", // 0xe0 - "tu", // 0xe1 - "te", // 0xe2 - "to", // 0xe3 - "na", // 0xe4 - "ni", // 0xe5 - "nu", // 0xe6 - "ne", // 0xe7 - "no", // 0xe8 - "ha", // 0xe9 - "hi", // 0xea - "hu", // 0xeb - "he", // 0xec - "ho", // 0xed - "ma", // 0xee - "mi", // 0xef - "mu", // 0xf0 - "me", // 0xf1 - "mo", // 0xf2 - "ya", // 0xf3 - "yu", // 0xf4 - "yo", // 0xf5 - "ra", // 0xf6 - "ri", // 0xf7 - "ru", // 0xf8 - "re", // 0xf9 - "ro", // 0xfa - "wa", // 0xfb - "wi", // 0xfc - "we", // 0xfd - "wo", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x033.go b/vendor/github.com/mozillazg/go-unidecode/table/x033.go deleted file mode 100644 index e96c7d9..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x033.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x033 = []string{ - "apartment", // 0x00 - "alpha", // 0x01 - "ampere", // 0x02 - "are", // 0x03 - "inning", // 0x04 - "inch", // 0x05 - "won", // 0x06 - "escudo", // 0x07 - "acre", // 0x08 - "ounce", // 0x09 - "ohm", // 0x0a - "kai-ri", // 0x0b - "carat", // 0x0c - "calorie", // 0x0d - "gallon", // 0x0e - "gamma", // 0x0f - "giga", // 0x10 - "guinea", // 0x11 - "curie", // 0x12 - "guilder", // 0x13 - "kilo", // 0x14 - "kilogram", // 0x15 - "kilometer", // 0x16 - "kilowatt", // 0x17 - "gram", // 0x18 - "gram ton", // 0x19 - "cruzeiro", // 0x1a - "krone", // 0x1b - "case", // 0x1c - "koruna", // 0x1d - "co-op", // 0x1e - "cycle", // 0x1f - "centime", // 0x20 - "shilling", // 0x21 - "centi", // 0x22 - "cent", // 0x23 - "dozen", // 0x24 - "desi", // 0x25 - "dollar", // 0x26 - "ton", // 0x27 - "nano", // 0x28 - "knot", // 0x29 - "heights", // 0x2a - "percent", // 0x2b - "parts", // 0x2c - "barrel", // 0x2d - "piaster", // 0x2e - "picul", // 0x2f - "pico", // 0x30 - "building", // 0x31 - "farad", // 0x32 - "feet", // 0x33 - "bushel", // 0x34 - "franc", // 0x35 - "hectare", // 0x36 - "peso", // 0x37 - "pfennig", // 0x38 - "hertz", // 0x39 - "pence", // 0x3a - "page", // 0x3b - "beta", // 0x3c - "point", // 0x3d - "volt", // 0x3e - "hon", // 0x3f - "pound", // 0x40 - "hall", // 0x41 - "horn", // 0x42 - "micro", // 0x43 - "mile", // 0x44 - "mach", // 0x45 - "mark", // 0x46 - "mansion", // 0x47 - "micron", // 0x48 - "milli", // 0x49 - "millibar", // 0x4a - "mega", // 0x4b - "megaton", // 0x4c - "meter", // 0x4d - "yard", // 0x4e - "yard", // 0x4f - "yuan", // 0x50 - "liter", // 0x51 - "lira", // 0x52 - "rupee", // 0x53 - "ruble", // 0x54 - "rem", // 0x55 - "roentgen", // 0x56 - "watt", // 0x57 - "0h", // 0x58 - "1h", // 0x59 - "2h", // 0x5a - "3h", // 0x5b - "4h", // 0x5c - "5h", // 0x5d - "6h", // 0x5e - "7h", // 0x5f - "8h", // 0x60 - "9h", // 0x61 - "10h", // 0x62 - "11h", // 0x63 - "12h", // 0x64 - "13h", // 0x65 - "14h", // 0x66 - "15h", // 0x67 - "16h", // 0x68 - "17h", // 0x69 - "18h", // 0x6a - "19h", // 0x6b - "20h", // 0x6c - "21h", // 0x6d - "22h", // 0x6e - "23h", // 0x6f - "24h", // 0x70 - "HPA", // 0x71 - "da", // 0x72 - "AU", // 0x73 - "bar", // 0x74 - "oV", // 0x75 - "pc", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "Heisei", // 0x7b - "Syouwa", // 0x7c - "Taisyou", // 0x7d - "Meiji", // 0x7e - "Inc.", // 0x7f - "pA", // 0x80 - "nA", // 0x81 - "microamp", // 0x82 - "mA", // 0x83 - "kA", // 0x84 - "kB", // 0x85 - "MB", // 0x86 - "GB", // 0x87 - "cal", // 0x88 - "kcal", // 0x89 - "pF", // 0x8a - "nF", // 0x8b - "microFarad", // 0x8c - "microgram", // 0x8d - "mg", // 0x8e - "kg", // 0x8f - "Hz", // 0x90 - "kHz", // 0x91 - "MHz", // 0x92 - "GHz", // 0x93 - "THz", // 0x94 - "microliter", // 0x95 - "ml", // 0x96 - "dl", // 0x97 - "kl", // 0x98 - "fm", // 0x99 - "nm", // 0x9a - "micrometer", // 0x9b - "mm", // 0x9c - "cm", // 0x9d - "km", // 0x9e - "mm^2", // 0x9f - "cm^2", // 0xa0 - "m^2", // 0xa1 - "km^2", // 0xa2 - "mm^4", // 0xa3 - "cm^3", // 0xa4 - "m^3", // 0xa5 - "km^3", // 0xa6 - "m/s", // 0xa7 - "m/s^2", // 0xa8 - "Pa", // 0xa9 - "kPa", // 0xaa - "MPa", // 0xab - "GPa", // 0xac - "rad", // 0xad - "rad/s", // 0xae - "rad/s^2", // 0xaf - "ps", // 0xb0 - "ns", // 0xb1 - "microsecond", // 0xb2 - "ms", // 0xb3 - "pV", // 0xb4 - "nV", // 0xb5 - "microvolt", // 0xb6 - "mV", // 0xb7 - "kV", // 0xb8 - "MV", // 0xb9 - "pW", // 0xba - "nW", // 0xbb - "microwatt", // 0xbc - "mW", // 0xbd - "kW", // 0xbe - "MW", // 0xbf - "kOhm", // 0xc0 - "MOhm", // 0xc1 - "a.m.", // 0xc2 - "Bq", // 0xc3 - "cc", // 0xc4 - "cd", // 0xc5 - "C/kg", // 0xc6 - "Co.", // 0xc7 - "dB", // 0xc8 - "Gy", // 0xc9 - "ha", // 0xca - "HP", // 0xcb - "in", // 0xcc - "K.K.", // 0xcd - "KM", // 0xce - "kt", // 0xcf - "lm", // 0xd0 - "ln", // 0xd1 - "log", // 0xd2 - "lx", // 0xd3 - "mb", // 0xd4 - "mil", // 0xd5 - "mol", // 0xd6 - "pH", // 0xd7 - "p.m.", // 0xd8 - "PPM", // 0xd9 - "PR", // 0xda - "sr", // 0xdb - "Sv", // 0xdc - "Wb", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "1d", // 0xe0 - "2d", // 0xe1 - "3d", // 0xe2 - "4d", // 0xe3 - "5d", // 0xe4 - "6d", // 0xe5 - "7d", // 0xe6 - "8d", // 0xe7 - "9d", // 0xe8 - "10d", // 0xe9 - "11d", // 0xea - "12d", // 0xeb - "13d", // 0xec - "14d", // 0xed - "15d", // 0xee - "16d", // 0xef - "17d", // 0xf0 - "18d", // 0xf1 - "19d", // 0xf2 - "20d", // 0xf3 - "21d", // 0xf4 - "22d", // 0xf5 - "23d", // 0xf6 - "24d", // 0xf7 - "25d", // 0xf8 - "26d", // 0xf9 - "27d", // 0xfa - "28d", // 0xfb - "29d", // 0xfc - "30d", // 0xfd - "31d", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x04d.go b/vendor/github.com/mozillazg/go-unidecode/table/x04d.go deleted file mode 100644 index f0787fe..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x04d.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x04d = []string{ - "[?] ", // 0x00 - "[?] ", // 0x01 - "[?] ", // 0x02 - "[?] ", // 0x03 - "[?] ", // 0x04 - "[?] ", // 0x05 - "[?] ", // 0x06 - "[?] ", // 0x07 - "[?] ", // 0x08 - "[?] ", // 0x09 - "[?] ", // 0x0a - "[?] ", // 0x0b - "[?] ", // 0x0c - "[?] ", // 0x0d - "[?] ", // 0x0e - "[?] ", // 0x0f - "[?] ", // 0x10 - "[?] ", // 0x11 - "[?] ", // 0x12 - "[?] ", // 0x13 - "[?] ", // 0x14 - "[?] ", // 0x15 - "[?] ", // 0x16 - "[?] ", // 0x17 - "[?] ", // 0x18 - "[?] ", // 0x19 - "[?] ", // 0x1a - "[?] ", // 0x1b - "[?] ", // 0x1c - "[?] ", // 0x1d - "[?] ", // 0x1e - "[?] ", // 0x1f - "[?] ", // 0x20 - "[?] ", // 0x21 - "[?] ", // 0x22 - "[?] ", // 0x23 - "[?] ", // 0x24 - "[?] ", // 0x25 - "[?] ", // 0x26 - "[?] ", // 0x27 - "[?] ", // 0x28 - "[?] ", // 0x29 - "[?] ", // 0x2a - "[?] ", // 0x2b - "[?] ", // 0x2c - "[?] ", // 0x2d - "[?] ", // 0x2e - "[?] ", // 0x2f - "[?] ", // 0x30 - "[?] ", // 0x31 - "[?] ", // 0x32 - "[?] ", // 0x33 - "[?] ", // 0x34 - "[?] ", // 0x35 - "[?] ", // 0x36 - "[?] ", // 0x37 - "[?] ", // 0x38 - "[?] ", // 0x39 - "[?] ", // 0x3a - "[?] ", // 0x3b - "[?] ", // 0x3c - "[?] ", // 0x3d - "[?] ", // 0x3e - "[?] ", // 0x3f - "[?] ", // 0x40 - "[?] ", // 0x41 - "[?] ", // 0x42 - "[?] ", // 0x43 - "[?] ", // 0x44 - "[?] ", // 0x45 - "[?] ", // 0x46 - "[?] ", // 0x47 - "[?] ", // 0x48 - "[?] ", // 0x49 - "[?] ", // 0x4a - "[?] ", // 0x4b - "[?] ", // 0x4c - "[?] ", // 0x4d - "[?] ", // 0x4e - "[?] ", // 0x4f - "[?] ", // 0x50 - "[?] ", // 0x51 - "[?] ", // 0x52 - "[?] ", // 0x53 - "[?] ", // 0x54 - "[?] ", // 0x55 - "[?] ", // 0x56 - "[?] ", // 0x57 - "[?] ", // 0x58 - "[?] ", // 0x59 - "[?] ", // 0x5a - "[?] ", // 0x5b - "[?] ", // 0x5c - "[?] ", // 0x5d - "[?] ", // 0x5e - "[?] ", // 0x5f - "[?] ", // 0x60 - "[?] ", // 0x61 - "[?] ", // 0x62 - "[?] ", // 0x63 - "[?] ", // 0x64 - "[?] ", // 0x65 - "[?] ", // 0x66 - "[?] ", // 0x67 - "[?] ", // 0x68 - "[?] ", // 0x69 - "[?] ", // 0x6a - "[?] ", // 0x6b - "[?] ", // 0x6c - "[?] ", // 0x6d - "[?] ", // 0x6e - "[?] ", // 0x6f - "[?] ", // 0x70 - "[?] ", // 0x71 - "[?] ", // 0x72 - "[?] ", // 0x73 - "[?] ", // 0x74 - "[?] ", // 0x75 - "[?] ", // 0x76 - "[?] ", // 0x77 - "[?] ", // 0x78 - "[?] ", // 0x79 - "[?] ", // 0x7a - "[?] ", // 0x7b - "[?] ", // 0x7c - "[?] ", // 0x7d - "[?] ", // 0x7e - "[?] ", // 0x7f - "[?] ", // 0x80 - "[?] ", // 0x81 - "[?] ", // 0x82 - "[?] ", // 0x83 - "[?] ", // 0x84 - "[?] ", // 0x85 - "[?] ", // 0x86 - "[?] ", // 0x87 - "[?] ", // 0x88 - "[?] ", // 0x89 - "[?] ", // 0x8a - "[?] ", // 0x8b - "[?] ", // 0x8c - "[?] ", // 0x8d - "[?] ", // 0x8e - "[?] ", // 0x8f - "[?] ", // 0x90 - "[?] ", // 0x91 - "[?] ", // 0x92 - "[?] ", // 0x93 - "[?] ", // 0x94 - "[?] ", // 0x95 - "[?] ", // 0x96 - "[?] ", // 0x97 - "[?] ", // 0x98 - "[?] ", // 0x99 - "[?] ", // 0x9a - "[?] ", // 0x9b - "[?] ", // 0x9c - "[?] ", // 0x9d - "[?] ", // 0x9e - "[?] ", // 0x9f - "[?] ", // 0xa0 - "[?] ", // 0xa1 - "[?] ", // 0xa2 - "[?] ", // 0xa3 - "[?] ", // 0xa4 - "[?] ", // 0xa5 - "[?] ", // 0xa6 - "[?] ", // 0xa7 - "[?] ", // 0xa8 - "[?] ", // 0xa9 - "[?] ", // 0xaa - "[?] ", // 0xab - "[?] ", // 0xac - "[?] ", // 0xad - "[?] ", // 0xae - "[?] ", // 0xaf - "[?] ", // 0xb0 - "[?] ", // 0xb1 - "[?] ", // 0xb2 - "[?] ", // 0xb3 - "[?] ", // 0xb4 - "[?] ", // 0xb5 - "[?]", // 0xb6 - "[?]", // 0xb7 - "[?]", // 0xb8 - "[?]", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "[?]", // 0xbc - "[?]", // 0xbd - "[?]", // 0xbe - "[?]", // 0xbf - "[?]", // 0xc0 - "[?]", // 0xc1 - "[?]", // 0xc2 - "[?]", // 0xc3 - "[?]", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x04e.go b/vendor/github.com/mozillazg/go-unidecode/table/x04e.go deleted file mode 100644 index af5dc46..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x04e.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x04e = []string{ - "Yi ", // 0x00 - "Ding ", // 0x01 - "Kao ", // 0x02 - "Qi ", // 0x03 - "Shang ", // 0x04 - "Xia ", // 0x05 - "[?] ", // 0x06 - "Mo ", // 0x07 - "Zhang ", // 0x08 - "San ", // 0x09 - "Shang ", // 0x0a - "Xia ", // 0x0b - "Ji ", // 0x0c - "Bu ", // 0x0d - "Yu ", // 0x0e - "Mian ", // 0x0f - "Gai ", // 0x10 - "Chou ", // 0x11 - "Chou ", // 0x12 - "Zhuan ", // 0x13 - "Qie ", // 0x14 - "Pi ", // 0x15 - "Shi ", // 0x16 - "Shi ", // 0x17 - "Qiu ", // 0x18 - "Bing ", // 0x19 - "Ye ", // 0x1a - "Cong ", // 0x1b - "Dong ", // 0x1c - "Si ", // 0x1d - "Cheng ", // 0x1e - "Diu ", // 0x1f - "Qiu ", // 0x20 - "Liang ", // 0x21 - "Diu ", // 0x22 - "You ", // 0x23 - "Liang ", // 0x24 - "Yan ", // 0x25 - "Bing ", // 0x26 - "Sang ", // 0x27 - "Gun ", // 0x28 - "Jiu ", // 0x29 - "Ge ", // 0x2a - "Ya ", // 0x2b - "Qiang ", // 0x2c - "Zhong ", // 0x2d - "Ji ", // 0x2e - "Jie ", // 0x2f - "Feng ", // 0x30 - "Guan ", // 0x31 - "Chuan ", // 0x32 - "Chan ", // 0x33 - "Lin ", // 0x34 - "Zhuo ", // 0x35 - "Zhu ", // 0x36 - "Ha ", // 0x37 - "Wan ", // 0x38 - "Dan ", // 0x39 - "Wei ", // 0x3a - "Zhu ", // 0x3b - "Jing ", // 0x3c - "Li ", // 0x3d - "Ju ", // 0x3e - "Pie ", // 0x3f - "Fu ", // 0x40 - "Yi ", // 0x41 - "Yi ", // 0x42 - "Nai ", // 0x43 - "Shime ", // 0x44 - "Jiu ", // 0x45 - "Jiu ", // 0x46 - "Zhe ", // 0x47 - "Yao ", // 0x48 - "Yi ", // 0x49 - "[?] ", // 0x4a - "Zhi ", // 0x4b - "Wu ", // 0x4c - "Zha ", // 0x4d - "Hu ", // 0x4e - "Fa ", // 0x4f - "Le ", // 0x50 - "Zhong ", // 0x51 - "Ping ", // 0x52 - "Pang ", // 0x53 - "Qiao ", // 0x54 - "Hu ", // 0x55 - "Guai ", // 0x56 - "Cheng ", // 0x57 - "Cheng ", // 0x58 - "Yi ", // 0x59 - "Yin ", // 0x5a - "[?] ", // 0x5b - "Mie ", // 0x5c - "Jiu ", // 0x5d - "Qi ", // 0x5e - "Ye ", // 0x5f - "Xi ", // 0x60 - "Xiang ", // 0x61 - "Gai ", // 0x62 - "Diu ", // 0x63 - "Hal ", // 0x64 - "[?] ", // 0x65 - "Shu ", // 0x66 - "Twul ", // 0x67 - "Shi ", // 0x68 - "Ji ", // 0x69 - "Nang ", // 0x6a - "Jia ", // 0x6b - "Kel ", // 0x6c - "Shi ", // 0x6d - "[?] ", // 0x6e - "Ol ", // 0x6f - "Mai ", // 0x70 - "Luan ", // 0x71 - "Cal ", // 0x72 - "Ru ", // 0x73 - "Xue ", // 0x74 - "Yan ", // 0x75 - "Fu ", // 0x76 - "Sha ", // 0x77 - "Na ", // 0x78 - "Gan ", // 0x79 - "Sol ", // 0x7a - "El ", // 0x7b - "Cwul ", // 0x7c - "[?] ", // 0x7d - "Gan ", // 0x7e - "Chi ", // 0x7f - "Gui ", // 0x80 - "Gan ", // 0x81 - "Luan ", // 0x82 - "Lin ", // 0x83 - "Yi ", // 0x84 - "Jue ", // 0x85 - "Liao ", // 0x86 - "Ma ", // 0x87 - "Yu ", // 0x88 - "Zheng ", // 0x89 - "Shi ", // 0x8a - "Shi ", // 0x8b - "Er ", // 0x8c - "Chu ", // 0x8d - "Yu ", // 0x8e - "Yu ", // 0x8f - "Yu ", // 0x90 - "Yun ", // 0x91 - "Hu ", // 0x92 - "Qi ", // 0x93 - "Wu ", // 0x94 - "Jing ", // 0x95 - "Si ", // 0x96 - "Sui ", // 0x97 - "Gen ", // 0x98 - "Gen ", // 0x99 - "Ya ", // 0x9a - "Xie ", // 0x9b - "Ya ", // 0x9c - "Qi ", // 0x9d - "Ya ", // 0x9e - "Ji ", // 0x9f - "Tou ", // 0xa0 - "Wang ", // 0xa1 - "Kang ", // 0xa2 - "Ta ", // 0xa3 - "Jiao ", // 0xa4 - "Hai ", // 0xa5 - "Yi ", // 0xa6 - "Chan ", // 0xa7 - "Heng ", // 0xa8 - "Mu ", // 0xa9 - "[?] ", // 0xaa - "Xiang ", // 0xab - "Jing ", // 0xac - "Ting ", // 0xad - "Liang ", // 0xae - "Xiang ", // 0xaf - "Jing ", // 0xb0 - "Ye ", // 0xb1 - "Qin ", // 0xb2 - "Bo ", // 0xb3 - "You ", // 0xb4 - "Xie ", // 0xb5 - "Dan ", // 0xb6 - "Lian ", // 0xb7 - "Duo ", // 0xb8 - "Wei ", // 0xb9 - "Ren ", // 0xba - "Ren ", // 0xbb - "Ji ", // 0xbc - "La ", // 0xbd - "Wang ", // 0xbe - "Yi ", // 0xbf - "Shi ", // 0xc0 - "Ren ", // 0xc1 - "Le ", // 0xc2 - "Ding ", // 0xc3 - "Ze ", // 0xc4 - "Jin ", // 0xc5 - "Pu ", // 0xc6 - "Chou ", // 0xc7 - "Ba ", // 0xc8 - "Zhang ", // 0xc9 - "Jin ", // 0xca - "Jie ", // 0xcb - "Bing ", // 0xcc - "Reng ", // 0xcd - "Cong ", // 0xce - "Fo ", // 0xcf - "San ", // 0xd0 - "Lun ", // 0xd1 - "Sya ", // 0xd2 - "Cang ", // 0xd3 - "Zi ", // 0xd4 - "Shi ", // 0xd5 - "Ta ", // 0xd6 - "Zhang ", // 0xd7 - "Fu ", // 0xd8 - "Xian ", // 0xd9 - "Xian ", // 0xda - "Tuo ", // 0xdb - "Hong ", // 0xdc - "Tong ", // 0xdd - "Ren ", // 0xde - "Qian ", // 0xdf - "Gan ", // 0xe0 - "Yi ", // 0xe1 - "Di ", // 0xe2 - "Dai ", // 0xe3 - "Ling ", // 0xe4 - "Yi ", // 0xe5 - "Chao ", // 0xe6 - "Chang ", // 0xe7 - "Sa ", // 0xe8 - "[?] ", // 0xe9 - "Yi ", // 0xea - "Mu ", // 0xeb - "Men ", // 0xec - "Ren ", // 0xed - "Jia ", // 0xee - "Chao ", // 0xef - "Yang ", // 0xf0 - "Qian ", // 0xf1 - "Zhong ", // 0xf2 - "Pi ", // 0xf3 - "Wan ", // 0xf4 - "Wu ", // 0xf5 - "Jian ", // 0xf6 - "Jie ", // 0xf7 - "Yao ", // 0xf8 - "Feng ", // 0xf9 - "Cang ", // 0xfa - "Ren ", // 0xfb - "Wang ", // 0xfc - "Fen ", // 0xfd - "Di ", // 0xfe - "Fang ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x04f.go b/vendor/github.com/mozillazg/go-unidecode/table/x04f.go deleted file mode 100644 index d8b9cc0..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x04f.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x04f = []string{ - "Zhong ", // 0x00 - "Qi ", // 0x01 - "Pei ", // 0x02 - "Yu ", // 0x03 - "Diao ", // 0x04 - "Dun ", // 0x05 - "Wen ", // 0x06 - "Yi ", // 0x07 - "Xin ", // 0x08 - "Kang ", // 0x09 - "Yi ", // 0x0a - "Ji ", // 0x0b - "Ai ", // 0x0c - "Wu ", // 0x0d - "Ji ", // 0x0e - "Fu ", // 0x0f - "Fa ", // 0x10 - "Xiu ", // 0x11 - "Jin ", // 0x12 - "Bei ", // 0x13 - "Dan ", // 0x14 - "Fu ", // 0x15 - "Tang ", // 0x16 - "Zhong ", // 0x17 - "You ", // 0x18 - "Huo ", // 0x19 - "Hui ", // 0x1a - "Yu ", // 0x1b - "Cui ", // 0x1c - "Chuan ", // 0x1d - "San ", // 0x1e - "Wei ", // 0x1f - "Chuan ", // 0x20 - "Che ", // 0x21 - "Ya ", // 0x22 - "Xian ", // 0x23 - "Shang ", // 0x24 - "Chang ", // 0x25 - "Lun ", // 0x26 - "Cang ", // 0x27 - "Xun ", // 0x28 - "Xin ", // 0x29 - "Wei ", // 0x2a - "Zhu ", // 0x2b - "[?] ", // 0x2c - "Xuan ", // 0x2d - "Nu ", // 0x2e - "Bo ", // 0x2f - "Gu ", // 0x30 - "Ni ", // 0x31 - "Ni ", // 0x32 - "Xie ", // 0x33 - "Ban ", // 0x34 - "Xu ", // 0x35 - "Ling ", // 0x36 - "Zhou ", // 0x37 - "Shen ", // 0x38 - "Qu ", // 0x39 - "Si ", // 0x3a - "Beng ", // 0x3b - "Si ", // 0x3c - "Jia ", // 0x3d - "Pi ", // 0x3e - "Yi ", // 0x3f - "Si ", // 0x40 - "Ai ", // 0x41 - "Zheng ", // 0x42 - "Dian ", // 0x43 - "Han ", // 0x44 - "Mai ", // 0x45 - "Dan ", // 0x46 - "Zhu ", // 0x47 - "Bu ", // 0x48 - "Qu ", // 0x49 - "Bi ", // 0x4a - "Shao ", // 0x4b - "Ci ", // 0x4c - "Wei ", // 0x4d - "Di ", // 0x4e - "Zhu ", // 0x4f - "Zuo ", // 0x50 - "You ", // 0x51 - "Yang ", // 0x52 - "Ti ", // 0x53 - "Zhan ", // 0x54 - "He ", // 0x55 - "Bi ", // 0x56 - "Tuo ", // 0x57 - "She ", // 0x58 - "Yu ", // 0x59 - "Yi ", // 0x5a - "Fo ", // 0x5b - "Zuo ", // 0x5c - "Kou ", // 0x5d - "Ning ", // 0x5e - "Tong ", // 0x5f - "Ni ", // 0x60 - "Xuan ", // 0x61 - "Qu ", // 0x62 - "Yong ", // 0x63 - "Wa ", // 0x64 - "Qian ", // 0x65 - "[?] ", // 0x66 - "Ka ", // 0x67 - "[?] ", // 0x68 - "Pei ", // 0x69 - "Huai ", // 0x6a - "He ", // 0x6b - "Lao ", // 0x6c - "Xiang ", // 0x6d - "Ge ", // 0x6e - "Yang ", // 0x6f - "Bai ", // 0x70 - "Fa ", // 0x71 - "Ming ", // 0x72 - "Jia ", // 0x73 - "Er ", // 0x74 - "Bing ", // 0x75 - "Ji ", // 0x76 - "Hen ", // 0x77 - "Huo ", // 0x78 - "Gui ", // 0x79 - "Quan ", // 0x7a - "Tiao ", // 0x7b - "Jiao ", // 0x7c - "Ci ", // 0x7d - "Yi ", // 0x7e - "Shi ", // 0x7f - "Xing ", // 0x80 - "Shen ", // 0x81 - "Tuo ", // 0x82 - "Kan ", // 0x83 - "Zhi ", // 0x84 - "Gai ", // 0x85 - "Lai ", // 0x86 - "Yi ", // 0x87 - "Chi ", // 0x88 - "Kua ", // 0x89 - "Guang ", // 0x8a - "Li ", // 0x8b - "Yin ", // 0x8c - "Shi ", // 0x8d - "Mi ", // 0x8e - "Zhu ", // 0x8f - "Xu ", // 0x90 - "You ", // 0x91 - "An ", // 0x92 - "Lu ", // 0x93 - "Mou ", // 0x94 - "Er ", // 0x95 - "Lun ", // 0x96 - "Tong ", // 0x97 - "Cha ", // 0x98 - "Chi ", // 0x99 - "Xun ", // 0x9a - "Gong ", // 0x9b - "Zhou ", // 0x9c - "Yi ", // 0x9d - "Ru ", // 0x9e - "Jian ", // 0x9f - "Xia ", // 0xa0 - "Jia ", // 0xa1 - "Zai ", // 0xa2 - "Lu ", // 0xa3 - "Ko ", // 0xa4 - "Jiao ", // 0xa5 - "Zhen ", // 0xa6 - "Ce ", // 0xa7 - "Qiao ", // 0xa8 - "Kuai ", // 0xa9 - "Chai ", // 0xaa - "Ning ", // 0xab - "Nong ", // 0xac - "Jin ", // 0xad - "Wu ", // 0xae - "Hou ", // 0xaf - "Jiong ", // 0xb0 - "Cheng ", // 0xb1 - "Zhen ", // 0xb2 - "Zuo ", // 0xb3 - "Chou ", // 0xb4 - "Qin ", // 0xb5 - "Lu ", // 0xb6 - "Ju ", // 0xb7 - "Shu ", // 0xb8 - "Ting ", // 0xb9 - "Shen ", // 0xba - "Tuo ", // 0xbb - "Bo ", // 0xbc - "Nan ", // 0xbd - "Hao ", // 0xbe - "Bian ", // 0xbf - "Tui ", // 0xc0 - "Yu ", // 0xc1 - "Xi ", // 0xc2 - "Cu ", // 0xc3 - "E ", // 0xc4 - "Qiu ", // 0xc5 - "Xu ", // 0xc6 - "Kuang ", // 0xc7 - "Ku ", // 0xc8 - "Wu ", // 0xc9 - "Jun ", // 0xca - "Yi ", // 0xcb - "Fu ", // 0xcc - "Lang ", // 0xcd - "Zu ", // 0xce - "Qiao ", // 0xcf - "Li ", // 0xd0 - "Yong ", // 0xd1 - "Hun ", // 0xd2 - "Jing ", // 0xd3 - "Xian ", // 0xd4 - "San ", // 0xd5 - "Pai ", // 0xd6 - "Su ", // 0xd7 - "Fu ", // 0xd8 - "Xi ", // 0xd9 - "Li ", // 0xda - "Fu ", // 0xdb - "Ping ", // 0xdc - "Bao ", // 0xdd - "Yu ", // 0xde - "Si ", // 0xdf - "Xia ", // 0xe0 - "Xin ", // 0xe1 - "Xiu ", // 0xe2 - "Yu ", // 0xe3 - "Ti ", // 0xe4 - "Che ", // 0xe5 - "Chou ", // 0xe6 - "[?] ", // 0xe7 - "Yan ", // 0xe8 - "Lia ", // 0xe9 - "Li ", // 0xea - "Lai ", // 0xeb - "[?] ", // 0xec - "Jian ", // 0xed - "Xiu ", // 0xee - "Fu ", // 0xef - "He ", // 0xf0 - "Ju ", // 0xf1 - "Xiao ", // 0xf2 - "Pai ", // 0xf3 - "Jian ", // 0xf4 - "Biao ", // 0xf5 - "Chu ", // 0xf6 - "Fei ", // 0xf7 - "Feng ", // 0xf8 - "Ya ", // 0xf9 - "An ", // 0xfa - "Bei ", // 0xfb - "Yu ", // 0xfc - "Xin ", // 0xfd - "Bi ", // 0xfe - "Jian ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x050.go b/vendor/github.com/mozillazg/go-unidecode/table/x050.go deleted file mode 100644 index 5623e89..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x050.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x050 = []string{ - "Chang ", // 0x00 - "Chi ", // 0x01 - "Bing ", // 0x02 - "Zan ", // 0x03 - "Yao ", // 0x04 - "Cui ", // 0x05 - "Lia ", // 0x06 - "Wan ", // 0x07 - "Lai ", // 0x08 - "Cang ", // 0x09 - "Zong ", // 0x0a - "Ge ", // 0x0b - "Guan ", // 0x0c - "Bei ", // 0x0d - "Tian ", // 0x0e - "Shu ", // 0x0f - "Shu ", // 0x10 - "Men ", // 0x11 - "Dao ", // 0x12 - "Tan ", // 0x13 - "Jue ", // 0x14 - "Chui ", // 0x15 - "Xing ", // 0x16 - "Peng ", // 0x17 - "Tang ", // 0x18 - "Hou ", // 0x19 - "Yi ", // 0x1a - "Qi ", // 0x1b - "Ti ", // 0x1c - "Gan ", // 0x1d - "Jing ", // 0x1e - "Jie ", // 0x1f - "Sui ", // 0x20 - "Chang ", // 0x21 - "Jie ", // 0x22 - "Fang ", // 0x23 - "Zhi ", // 0x24 - "Kong ", // 0x25 - "Juan ", // 0x26 - "Zong ", // 0x27 - "Ju ", // 0x28 - "Qian ", // 0x29 - "Ni ", // 0x2a - "Lun ", // 0x2b - "Zhuo ", // 0x2c - "Wei ", // 0x2d - "Luo ", // 0x2e - "Song ", // 0x2f - "Leng ", // 0x30 - "Hun ", // 0x31 - "Dong ", // 0x32 - "Zi ", // 0x33 - "Ben ", // 0x34 - "Wu ", // 0x35 - "Ju ", // 0x36 - "Nai ", // 0x37 - "Cai ", // 0x38 - "Jian ", // 0x39 - "Zhai ", // 0x3a - "Ye ", // 0x3b - "Zhi ", // 0x3c - "Sha ", // 0x3d - "Qing ", // 0x3e - "[?] ", // 0x3f - "Ying ", // 0x40 - "Cheng ", // 0x41 - "Jian ", // 0x42 - "Yan ", // 0x43 - "Nuan ", // 0x44 - "Zhong ", // 0x45 - "Chun ", // 0x46 - "Jia ", // 0x47 - "Jie ", // 0x48 - "Wei ", // 0x49 - "Yu ", // 0x4a - "Bing ", // 0x4b - "Ruo ", // 0x4c - "Ti ", // 0x4d - "Wei ", // 0x4e - "Pian ", // 0x4f - "Yan ", // 0x50 - "Feng ", // 0x51 - "Tang ", // 0x52 - "Wo ", // 0x53 - "E ", // 0x54 - "Xie ", // 0x55 - "Che ", // 0x56 - "Sheng ", // 0x57 - "Kan ", // 0x58 - "Di ", // 0x59 - "Zuo ", // 0x5a - "Cha ", // 0x5b - "Ting ", // 0x5c - "Bei ", // 0x5d - "Ye ", // 0x5e - "Huang ", // 0x5f - "Yao ", // 0x60 - "Zhan ", // 0x61 - "Chou ", // 0x62 - "Yan ", // 0x63 - "You ", // 0x64 - "Jian ", // 0x65 - "Xu ", // 0x66 - "Zha ", // 0x67 - "Ci ", // 0x68 - "Fu ", // 0x69 - "Bi ", // 0x6a - "Zhi ", // 0x6b - "Zong ", // 0x6c - "Mian ", // 0x6d - "Ji ", // 0x6e - "Yi ", // 0x6f - "Xie ", // 0x70 - "Xun ", // 0x71 - "Si ", // 0x72 - "Duan ", // 0x73 - "Ce ", // 0x74 - "Zhen ", // 0x75 - "Ou ", // 0x76 - "Tou ", // 0x77 - "Tou ", // 0x78 - "Bei ", // 0x79 - "Za ", // 0x7a - "Lu ", // 0x7b - "Jie ", // 0x7c - "Wei ", // 0x7d - "Fen ", // 0x7e - "Chang ", // 0x7f - "Gui ", // 0x80 - "Sou ", // 0x81 - "Zhi ", // 0x82 - "Su ", // 0x83 - "Xia ", // 0x84 - "Fu ", // 0x85 - "Yuan ", // 0x86 - "Rong ", // 0x87 - "Li ", // 0x88 - "Ru ", // 0x89 - "Yun ", // 0x8a - "Gou ", // 0x8b - "Ma ", // 0x8c - "Bang ", // 0x8d - "Dian ", // 0x8e - "Tang ", // 0x8f - "Hao ", // 0x90 - "Jie ", // 0x91 - "Xi ", // 0x92 - "Shan ", // 0x93 - "Qian ", // 0x94 - "Jue ", // 0x95 - "Cang ", // 0x96 - "Chu ", // 0x97 - "San ", // 0x98 - "Bei ", // 0x99 - "Xiao ", // 0x9a - "Yong ", // 0x9b - "Yao ", // 0x9c - "Tan ", // 0x9d - "Suo ", // 0x9e - "Yang ", // 0x9f - "Fa ", // 0xa0 - "Bing ", // 0xa1 - "Jia ", // 0xa2 - "Dai ", // 0xa3 - "Zai ", // 0xa4 - "Tang ", // 0xa5 - "[?] ", // 0xa6 - "Bin ", // 0xa7 - "Chu ", // 0xa8 - "Nuo ", // 0xa9 - "Can ", // 0xaa - "Lei ", // 0xab - "Cui ", // 0xac - "Yong ", // 0xad - "Zao ", // 0xae - "Zong ", // 0xaf - "Peng ", // 0xb0 - "Song ", // 0xb1 - "Ao ", // 0xb2 - "Chuan ", // 0xb3 - "Yu ", // 0xb4 - "Zhai ", // 0xb5 - "Cou ", // 0xb6 - "Shang ", // 0xb7 - "Qiang ", // 0xb8 - "Jing ", // 0xb9 - "Chi ", // 0xba - "Sha ", // 0xbb - "Han ", // 0xbc - "Zhang ", // 0xbd - "Qing ", // 0xbe - "Yan ", // 0xbf - "Di ", // 0xc0 - "Xi ", // 0xc1 - "Lu ", // 0xc2 - "Bei ", // 0xc3 - "Piao ", // 0xc4 - "Jin ", // 0xc5 - "Lian ", // 0xc6 - "Lu ", // 0xc7 - "Man ", // 0xc8 - "Qian ", // 0xc9 - "Xian ", // 0xca - "Tan ", // 0xcb - "Ying ", // 0xcc - "Dong ", // 0xcd - "Zhuan ", // 0xce - "Xiang ", // 0xcf - "Shan ", // 0xd0 - "Qiao ", // 0xd1 - "Jiong ", // 0xd2 - "Tui ", // 0xd3 - "Zun ", // 0xd4 - "Pu ", // 0xd5 - "Xi ", // 0xd6 - "Lao ", // 0xd7 - "Chang ", // 0xd8 - "Guang ", // 0xd9 - "Liao ", // 0xda - "Qi ", // 0xdb - "Deng ", // 0xdc - "Chan ", // 0xdd - "Wei ", // 0xde - "Ji ", // 0xdf - "Fan ", // 0xe0 - "Hui ", // 0xe1 - "Chuan ", // 0xe2 - "Jian ", // 0xe3 - "Dan ", // 0xe4 - "Jiao ", // 0xe5 - "Jiu ", // 0xe6 - "Seng ", // 0xe7 - "Fen ", // 0xe8 - "Xian ", // 0xe9 - "Jue ", // 0xea - "E ", // 0xeb - "Jiao ", // 0xec - "Jian ", // 0xed - "Tong ", // 0xee - "Lin ", // 0xef - "Bo ", // 0xf0 - "Gu ", // 0xf1 - "[?] ", // 0xf2 - "Su ", // 0xf3 - "Xian ", // 0xf4 - "Jiang ", // 0xf5 - "Min ", // 0xf6 - "Ye ", // 0xf7 - "Jin ", // 0xf8 - "Jia ", // 0xf9 - "Qiao ", // 0xfa - "Pi ", // 0xfb - "Feng ", // 0xfc - "Zhou ", // 0xfd - "Ai ", // 0xfe - "Sai ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x051.go b/vendor/github.com/mozillazg/go-unidecode/table/x051.go deleted file mode 100644 index 867f95c..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x051.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x051 = []string{ - "Yi ", // 0x00 - "Jun ", // 0x01 - "Nong ", // 0x02 - "Chan ", // 0x03 - "Yi ", // 0x04 - "Dang ", // 0x05 - "Jing ", // 0x06 - "Xuan ", // 0x07 - "Kuai ", // 0x08 - "Jian ", // 0x09 - "Chu ", // 0x0a - "Dan ", // 0x0b - "Jiao ", // 0x0c - "Sha ", // 0x0d - "Zai ", // 0x0e - "[?] ", // 0x0f - "Bin ", // 0x10 - "An ", // 0x11 - "Ru ", // 0x12 - "Tai ", // 0x13 - "Chou ", // 0x14 - "Chai ", // 0x15 - "Lan ", // 0x16 - "Ni ", // 0x17 - "Jin ", // 0x18 - "Qian ", // 0x19 - "Meng ", // 0x1a - "Wu ", // 0x1b - "Ning ", // 0x1c - "Qiong ", // 0x1d - "Ni ", // 0x1e - "Chang ", // 0x1f - "Lie ", // 0x20 - "Lei ", // 0x21 - "Lu ", // 0x22 - "Kuang ", // 0x23 - "Bao ", // 0x24 - "Du ", // 0x25 - "Biao ", // 0x26 - "Zan ", // 0x27 - "Zhi ", // 0x28 - "Si ", // 0x29 - "You ", // 0x2a - "Hao ", // 0x2b - "Chen ", // 0x2c - "Chen ", // 0x2d - "Li ", // 0x2e - "Teng ", // 0x2f - "Wei ", // 0x30 - "Long ", // 0x31 - "Chu ", // 0x32 - "Chan ", // 0x33 - "Rang ", // 0x34 - "Shu ", // 0x35 - "Hui ", // 0x36 - "Li ", // 0x37 - "Luo ", // 0x38 - "Zan ", // 0x39 - "Nuo ", // 0x3a - "Tang ", // 0x3b - "Yan ", // 0x3c - "Lei ", // 0x3d - "Nang ", // 0x3e - "Er ", // 0x3f - "Wu ", // 0x40 - "Yun ", // 0x41 - "Zan ", // 0x42 - "Yuan ", // 0x43 - "Xiong ", // 0x44 - "Chong ", // 0x45 - "Zhao ", // 0x46 - "Xiong ", // 0x47 - "Xian ", // 0x48 - "Guang ", // 0x49 - "Dui ", // 0x4a - "Ke ", // 0x4b - "Dui ", // 0x4c - "Mian ", // 0x4d - "Tu ", // 0x4e - "Chang ", // 0x4f - "Er ", // 0x50 - "Dui ", // 0x51 - "Er ", // 0x52 - "Xin ", // 0x53 - "Tu ", // 0x54 - "Si ", // 0x55 - "Yan ", // 0x56 - "Yan ", // 0x57 - "Shi ", // 0x58 - "Shi ", // 0x59 - "Dang ", // 0x5a - "Qian ", // 0x5b - "Dou ", // 0x5c - "Fen ", // 0x5d - "Mao ", // 0x5e - "Shen ", // 0x5f - "Dou ", // 0x60 - "Bai ", // 0x61 - "Jing ", // 0x62 - "Li ", // 0x63 - "Huang ", // 0x64 - "Ru ", // 0x65 - "Wang ", // 0x66 - "Nei ", // 0x67 - "Quan ", // 0x68 - "Liang ", // 0x69 - "Yu ", // 0x6a - "Ba ", // 0x6b - "Gong ", // 0x6c - "Liu ", // 0x6d - "Xi ", // 0x6e - "[?] ", // 0x6f - "Lan ", // 0x70 - "Gong ", // 0x71 - "Tian ", // 0x72 - "Guan ", // 0x73 - "Xing ", // 0x74 - "Bing ", // 0x75 - "Qi ", // 0x76 - "Ju ", // 0x77 - "Dian ", // 0x78 - "Zi ", // 0x79 - "Ppwun ", // 0x7a - "Yang ", // 0x7b - "Jian ", // 0x7c - "Shou ", // 0x7d - "Ji ", // 0x7e - "Yi ", // 0x7f - "Ji ", // 0x80 - "Chan ", // 0x81 - "Jiong ", // 0x82 - "Mao ", // 0x83 - "Ran ", // 0x84 - "Nei ", // 0x85 - "Yuan ", // 0x86 - "Mao ", // 0x87 - "Gang ", // 0x88 - "Ran ", // 0x89 - "Ce ", // 0x8a - "Jiong ", // 0x8b - "Ce ", // 0x8c - "Zai ", // 0x8d - "Gua ", // 0x8e - "Jiong ", // 0x8f - "Mao ", // 0x90 - "Zhou ", // 0x91 - "Mou ", // 0x92 - "Gou ", // 0x93 - "Xu ", // 0x94 - "Mian ", // 0x95 - "Mi ", // 0x96 - "Rong ", // 0x97 - "Yin ", // 0x98 - "Xie ", // 0x99 - "Kan ", // 0x9a - "Jun ", // 0x9b - "Nong ", // 0x9c - "Yi ", // 0x9d - "Mi ", // 0x9e - "Shi ", // 0x9f - "Guan ", // 0xa0 - "Meng ", // 0xa1 - "Zhong ", // 0xa2 - "Ju ", // 0xa3 - "Yuan ", // 0xa4 - "Ming ", // 0xa5 - "Kou ", // 0xa6 - "Lam ", // 0xa7 - "Fu ", // 0xa8 - "Xie ", // 0xa9 - "Mi ", // 0xaa - "Bing ", // 0xab - "Dong ", // 0xac - "Tai ", // 0xad - "Gang ", // 0xae - "Feng ", // 0xaf - "Bing ", // 0xb0 - "Hu ", // 0xb1 - "Chong ", // 0xb2 - "Jue ", // 0xb3 - "Hu ", // 0xb4 - "Kuang ", // 0xb5 - "Ye ", // 0xb6 - "Leng ", // 0xb7 - "Pan ", // 0xb8 - "Fu ", // 0xb9 - "Min ", // 0xba - "Dong ", // 0xbb - "Xian ", // 0xbc - "Lie ", // 0xbd - "Xia ", // 0xbe - "Jian ", // 0xbf - "Jing ", // 0xc0 - "Shu ", // 0xc1 - "Mei ", // 0xc2 - "Tu ", // 0xc3 - "Qi ", // 0xc4 - "Gu ", // 0xc5 - "Zhun ", // 0xc6 - "Song ", // 0xc7 - "Jing ", // 0xc8 - "Liang ", // 0xc9 - "Qing ", // 0xca - "Diao ", // 0xcb - "Ling ", // 0xcc - "Dong ", // 0xcd - "Gan ", // 0xce - "Jian ", // 0xcf - "Yin ", // 0xd0 - "Cou ", // 0xd1 - "Yi ", // 0xd2 - "Li ", // 0xd3 - "Cang ", // 0xd4 - "Ming ", // 0xd5 - "Zhuen ", // 0xd6 - "Cui ", // 0xd7 - "Si ", // 0xd8 - "Duo ", // 0xd9 - "Jin ", // 0xda - "Lin ", // 0xdb - "Lin ", // 0xdc - "Ning ", // 0xdd - "Xi ", // 0xde - "Du ", // 0xdf - "Ji ", // 0xe0 - "Fan ", // 0xe1 - "Fan ", // 0xe2 - "Fan ", // 0xe3 - "Feng ", // 0xe4 - "Ju ", // 0xe5 - "Chu ", // 0xe6 - "Tako ", // 0xe7 - "Feng ", // 0xe8 - "Mok ", // 0xe9 - "Ci ", // 0xea - "Fu ", // 0xeb - "Feng ", // 0xec - "Ping ", // 0xed - "Feng ", // 0xee - "Kai ", // 0xef - "Huang ", // 0xf0 - "Kai ", // 0xf1 - "Gan ", // 0xf2 - "Deng ", // 0xf3 - "Ping ", // 0xf4 - "Qu ", // 0xf5 - "Xiong ", // 0xf6 - "Kuai ", // 0xf7 - "Tu ", // 0xf8 - "Ao ", // 0xf9 - "Chu ", // 0xfa - "Ji ", // 0xfb - "Dang ", // 0xfc - "Han ", // 0xfd - "Han ", // 0xfe - "Zao ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x052.go b/vendor/github.com/mozillazg/go-unidecode/table/x052.go deleted file mode 100644 index 622e8b1..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x052.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x052 = []string{ - "Dao ", // 0x00 - "Diao ", // 0x01 - "Dao ", // 0x02 - "Ren ", // 0x03 - "Ren ", // 0x04 - "Chuang ", // 0x05 - "Fen ", // 0x06 - "Qie ", // 0x07 - "Yi ", // 0x08 - "Ji ", // 0x09 - "Kan ", // 0x0a - "Qian ", // 0x0b - "Cun ", // 0x0c - "Chu ", // 0x0d - "Wen ", // 0x0e - "Ji ", // 0x0f - "Dan ", // 0x10 - "Xing ", // 0x11 - "Hua ", // 0x12 - "Wan ", // 0x13 - "Jue ", // 0x14 - "Li ", // 0x15 - "Yue ", // 0x16 - "Lie ", // 0x17 - "Liu ", // 0x18 - "Ze ", // 0x19 - "Gang ", // 0x1a - "Chuang ", // 0x1b - "Fu ", // 0x1c - "Chu ", // 0x1d - "Qu ", // 0x1e - "Ju ", // 0x1f - "Shan ", // 0x20 - "Min ", // 0x21 - "Ling ", // 0x22 - "Zhong ", // 0x23 - "Pan ", // 0x24 - "Bie ", // 0x25 - "Jie ", // 0x26 - "Jie ", // 0x27 - "Bao ", // 0x28 - "Li ", // 0x29 - "Shan ", // 0x2a - "Bie ", // 0x2b - "Chan ", // 0x2c - "Jing ", // 0x2d - "Gua ", // 0x2e - "Gen ", // 0x2f - "Dao ", // 0x30 - "Chuang ", // 0x31 - "Kui ", // 0x32 - "Ku ", // 0x33 - "Duo ", // 0x34 - "Er ", // 0x35 - "Zhi ", // 0x36 - "Shua ", // 0x37 - "Quan ", // 0x38 - "Cha ", // 0x39 - "Ci ", // 0x3a - "Ke ", // 0x3b - "Jie ", // 0x3c - "Gui ", // 0x3d - "Ci ", // 0x3e - "Gui ", // 0x3f - "Kai ", // 0x40 - "Duo ", // 0x41 - "Ji ", // 0x42 - "Ti ", // 0x43 - "Jing ", // 0x44 - "Lou ", // 0x45 - "Gen ", // 0x46 - "Ze ", // 0x47 - "Yuan ", // 0x48 - "Cuo ", // 0x49 - "Xue ", // 0x4a - "Ke ", // 0x4b - "La ", // 0x4c - "Qian ", // 0x4d - "Cha ", // 0x4e - "Chuang ", // 0x4f - "Gua ", // 0x50 - "Jian ", // 0x51 - "Cuo ", // 0x52 - "Li ", // 0x53 - "Ti ", // 0x54 - "Fei ", // 0x55 - "Pou ", // 0x56 - "Chan ", // 0x57 - "Qi ", // 0x58 - "Chuang ", // 0x59 - "Zi ", // 0x5a - "Gang ", // 0x5b - "Wan ", // 0x5c - "Bo ", // 0x5d - "Ji ", // 0x5e - "Duo ", // 0x5f - "Qing ", // 0x60 - "Yan ", // 0x61 - "Zhuo ", // 0x62 - "Jian ", // 0x63 - "Ji ", // 0x64 - "Bo ", // 0x65 - "Yan ", // 0x66 - "Ju ", // 0x67 - "Huo ", // 0x68 - "Sheng ", // 0x69 - "Jian ", // 0x6a - "Duo ", // 0x6b - "Duan ", // 0x6c - "Wu ", // 0x6d - "Gua ", // 0x6e - "Fu ", // 0x6f - "Sheng ", // 0x70 - "Jian ", // 0x71 - "Ge ", // 0x72 - "Zha ", // 0x73 - "Kai ", // 0x74 - "Chuang ", // 0x75 - "Juan ", // 0x76 - "Chan ", // 0x77 - "Tuan ", // 0x78 - "Lu ", // 0x79 - "Li ", // 0x7a - "Fou ", // 0x7b - "Shan ", // 0x7c - "Piao ", // 0x7d - "Kou ", // 0x7e - "Jiao ", // 0x7f - "Gua ", // 0x80 - "Qiao ", // 0x81 - "Jue ", // 0x82 - "Hua ", // 0x83 - "Zha ", // 0x84 - "Zhuo ", // 0x85 - "Lian ", // 0x86 - "Ju ", // 0x87 - "Pi ", // 0x88 - "Liu ", // 0x89 - "Gui ", // 0x8a - "Jiao ", // 0x8b - "Gui ", // 0x8c - "Jian ", // 0x8d - "Jian ", // 0x8e - "Tang ", // 0x8f - "Huo ", // 0x90 - "Ji ", // 0x91 - "Jian ", // 0x92 - "Yi ", // 0x93 - "Jian ", // 0x94 - "Zhi ", // 0x95 - "Chan ", // 0x96 - "Cuan ", // 0x97 - "Mo ", // 0x98 - "Li ", // 0x99 - "Zhu ", // 0x9a - "Li ", // 0x9b - "Ya ", // 0x9c - "Quan ", // 0x9d - "Ban ", // 0x9e - "Gong ", // 0x9f - "Jia ", // 0xa0 - "Wu ", // 0xa1 - "Mai ", // 0xa2 - "Lie ", // 0xa3 - "Jin ", // 0xa4 - "Keng ", // 0xa5 - "Xie ", // 0xa6 - "Zhi ", // 0xa7 - "Dong ", // 0xa8 - "Zhu ", // 0xa9 - "Nu ", // 0xaa - "Jie ", // 0xab - "Qu ", // 0xac - "Shao ", // 0xad - "Yi ", // 0xae - "Zhu ", // 0xaf - "Miao ", // 0xb0 - "Li ", // 0xb1 - "Jing ", // 0xb2 - "Lao ", // 0xb3 - "Lao ", // 0xb4 - "Juan ", // 0xb5 - "Kou ", // 0xb6 - "Yang ", // 0xb7 - "Wa ", // 0xb8 - "Xiao ", // 0xb9 - "Mou ", // 0xba - "Kuang ", // 0xbb - "Jie ", // 0xbc - "Lie ", // 0xbd - "He ", // 0xbe - "Shi ", // 0xbf - "Ke ", // 0xc0 - "Jing ", // 0xc1 - "Hao ", // 0xc2 - "Bo ", // 0xc3 - "Min ", // 0xc4 - "Chi ", // 0xc5 - "Lang ", // 0xc6 - "Yong ", // 0xc7 - "Yong ", // 0xc8 - "Mian ", // 0xc9 - "Ke ", // 0xca - "Xun ", // 0xcb - "Juan ", // 0xcc - "Qing ", // 0xcd - "Lu ", // 0xce - "Pou ", // 0xcf - "Meng ", // 0xd0 - "Lai ", // 0xd1 - "Le ", // 0xd2 - "Kai ", // 0xd3 - "Mian ", // 0xd4 - "Dong ", // 0xd5 - "Xu ", // 0xd6 - "Xu ", // 0xd7 - "Kan ", // 0xd8 - "Wu ", // 0xd9 - "Yi ", // 0xda - "Xun ", // 0xdb - "Weng ", // 0xdc - "Sheng ", // 0xdd - "Lao ", // 0xde - "Mu ", // 0xdf - "Lu ", // 0xe0 - "Piao ", // 0xe1 - "Shi ", // 0xe2 - "Ji ", // 0xe3 - "Qin ", // 0xe4 - "Qiang ", // 0xe5 - "Jiao ", // 0xe6 - "Quan ", // 0xe7 - "Yang ", // 0xe8 - "Yi ", // 0xe9 - "Jue ", // 0xea - "Fan ", // 0xeb - "Juan ", // 0xec - "Tong ", // 0xed - "Ju ", // 0xee - "Dan ", // 0xef - "Xie ", // 0xf0 - "Mai ", // 0xf1 - "Xun ", // 0xf2 - "Xun ", // 0xf3 - "Lu ", // 0xf4 - "Li ", // 0xf5 - "Che ", // 0xf6 - "Rang ", // 0xf7 - "Quan ", // 0xf8 - "Bao ", // 0xf9 - "Shao ", // 0xfa - "Yun ", // 0xfb - "Jiu ", // 0xfc - "Bao ", // 0xfd - "Gou ", // 0xfe - "Wu ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x053.go b/vendor/github.com/mozillazg/go-unidecode/table/x053.go deleted file mode 100644 index 1103a50..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x053.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x053 = []string{ - "Yun ", // 0x00 - "Mwun ", // 0x01 - "Nay ", // 0x02 - "Gai ", // 0x03 - "Gai ", // 0x04 - "Bao ", // 0x05 - "Cong ", // 0x06 - "[?] ", // 0x07 - "Xiong ", // 0x08 - "Peng ", // 0x09 - "Ju ", // 0x0a - "Tao ", // 0x0b - "Ge ", // 0x0c - "Pu ", // 0x0d - "An ", // 0x0e - "Pao ", // 0x0f - "Fu ", // 0x10 - "Gong ", // 0x11 - "Da ", // 0x12 - "Jiu ", // 0x13 - "Qiong ", // 0x14 - "Bi ", // 0x15 - "Hua ", // 0x16 - "Bei ", // 0x17 - "Nao ", // 0x18 - "Chi ", // 0x19 - "Fang ", // 0x1a - "Jiu ", // 0x1b - "Yi ", // 0x1c - "Za ", // 0x1d - "Jiang ", // 0x1e - "Kang ", // 0x1f - "Jiang ", // 0x20 - "Kuang ", // 0x21 - "Hu ", // 0x22 - "Xia ", // 0x23 - "Qu ", // 0x24 - "Bian ", // 0x25 - "Gui ", // 0x26 - "Qie ", // 0x27 - "Zang ", // 0x28 - "Kuang ", // 0x29 - "Fei ", // 0x2a - "Hu ", // 0x2b - "Tou ", // 0x2c - "Gui ", // 0x2d - "Gui ", // 0x2e - "Hui ", // 0x2f - "Dan ", // 0x30 - "Gui ", // 0x31 - "Lian ", // 0x32 - "Lian ", // 0x33 - "Suan ", // 0x34 - "Du ", // 0x35 - "Jiu ", // 0x36 - "Qu ", // 0x37 - "Xi ", // 0x38 - "Pi ", // 0x39 - "Qu ", // 0x3a - "Yi ", // 0x3b - "Qia ", // 0x3c - "Yan ", // 0x3d - "Bian ", // 0x3e - "Ni ", // 0x3f - "Qu ", // 0x40 - "Shi ", // 0x41 - "Xin ", // 0x42 - "Qian ", // 0x43 - "Nian ", // 0x44 - "Sa ", // 0x45 - "Zu ", // 0x46 - "Sheng ", // 0x47 - "Wu ", // 0x48 - "Hui ", // 0x49 - "Ban ", // 0x4a - "Shi ", // 0x4b - "Xi ", // 0x4c - "Wan ", // 0x4d - "Hua ", // 0x4e - "Xie ", // 0x4f - "Wan ", // 0x50 - "Bei ", // 0x51 - "Zu ", // 0x52 - "Zhuo ", // 0x53 - "Xie ", // 0x54 - "Dan ", // 0x55 - "Mai ", // 0x56 - "Nan ", // 0x57 - "Dan ", // 0x58 - "Ji ", // 0x59 - "Bo ", // 0x5a - "Shuai ", // 0x5b - "Bu ", // 0x5c - "Kuang ", // 0x5d - "Bian ", // 0x5e - "Bu ", // 0x5f - "Zhan ", // 0x60 - "Qia ", // 0x61 - "Lu ", // 0x62 - "You ", // 0x63 - "Lu ", // 0x64 - "Xi ", // 0x65 - "Gua ", // 0x66 - "Wo ", // 0x67 - "Xie ", // 0x68 - "Jie ", // 0x69 - "Jie ", // 0x6a - "Wei ", // 0x6b - "Ang ", // 0x6c - "Qiong ", // 0x6d - "Zhi ", // 0x6e - "Mao ", // 0x6f - "Yin ", // 0x70 - "Wei ", // 0x71 - "Shao ", // 0x72 - "Ji ", // 0x73 - "Que ", // 0x74 - "Luan ", // 0x75 - "Shi ", // 0x76 - "Juan ", // 0x77 - "Xie ", // 0x78 - "Xu ", // 0x79 - "Jin ", // 0x7a - "Que ", // 0x7b - "Wu ", // 0x7c - "Ji ", // 0x7d - "E ", // 0x7e - "Qing ", // 0x7f - "Xi ", // 0x80 - "[?] ", // 0x81 - "Han ", // 0x82 - "Zhan ", // 0x83 - "E ", // 0x84 - "Ting ", // 0x85 - "Li ", // 0x86 - "Zhe ", // 0x87 - "Han ", // 0x88 - "Li ", // 0x89 - "Ya ", // 0x8a - "Ya ", // 0x8b - "Yan ", // 0x8c - "She ", // 0x8d - "Zhi ", // 0x8e - "Zha ", // 0x8f - "Pang ", // 0x90 - "[?] ", // 0x91 - "He ", // 0x92 - "Ya ", // 0x93 - "Zhi ", // 0x94 - "Ce ", // 0x95 - "Pang ", // 0x96 - "Ti ", // 0x97 - "Li ", // 0x98 - "She ", // 0x99 - "Hou ", // 0x9a - "Ting ", // 0x9b - "Zui ", // 0x9c - "Cuo ", // 0x9d - "Fei ", // 0x9e - "Yuan ", // 0x9f - "Ce ", // 0xa0 - "Yuan ", // 0xa1 - "Xiang ", // 0xa2 - "Yan ", // 0xa3 - "Li ", // 0xa4 - "Jue ", // 0xa5 - "Sha ", // 0xa6 - "Dian ", // 0xa7 - "Chu ", // 0xa8 - "Jiu ", // 0xa9 - "Qin ", // 0xaa - "Ao ", // 0xab - "Gui ", // 0xac - "Yan ", // 0xad - "Si ", // 0xae - "Li ", // 0xaf - "Chang ", // 0xb0 - "Lan ", // 0xb1 - "Li ", // 0xb2 - "Yan ", // 0xb3 - "Yan ", // 0xb4 - "Yuan ", // 0xb5 - "Si ", // 0xb6 - "Gong ", // 0xb7 - "Lin ", // 0xb8 - "Qiu ", // 0xb9 - "Qu ", // 0xba - "Qu ", // 0xbb - "Uk ", // 0xbc - "Lei ", // 0xbd - "Du ", // 0xbe - "Xian ", // 0xbf - "Zhuan ", // 0xc0 - "San ", // 0xc1 - "Can ", // 0xc2 - "Can ", // 0xc3 - "Can ", // 0xc4 - "Can ", // 0xc5 - "Ai ", // 0xc6 - "Dai ", // 0xc7 - "You ", // 0xc8 - "Cha ", // 0xc9 - "Ji ", // 0xca - "You ", // 0xcb - "Shuang ", // 0xcc - "Fan ", // 0xcd - "Shou ", // 0xce - "Guai ", // 0xcf - "Ba ", // 0xd0 - "Fa ", // 0xd1 - "Ruo ", // 0xd2 - "Shi ", // 0xd3 - "Shu ", // 0xd4 - "Zhuo ", // 0xd5 - "Qu ", // 0xd6 - "Shou ", // 0xd7 - "Bian ", // 0xd8 - "Xu ", // 0xd9 - "Jia ", // 0xda - "Pan ", // 0xdb - "Sou ", // 0xdc - "Gao ", // 0xdd - "Wei ", // 0xde - "Sou ", // 0xdf - "Die ", // 0xe0 - "Rui ", // 0xe1 - "Cong ", // 0xe2 - "Kou ", // 0xe3 - "Gu ", // 0xe4 - "Ju ", // 0xe5 - "Ling ", // 0xe6 - "Gua ", // 0xe7 - "Tao ", // 0xe8 - "Kou ", // 0xe9 - "Zhi ", // 0xea - "Jiao ", // 0xeb - "Zhao ", // 0xec - "Ba ", // 0xed - "Ding ", // 0xee - "Ke ", // 0xef - "Tai ", // 0xf0 - "Chi ", // 0xf1 - "Shi ", // 0xf2 - "You ", // 0xf3 - "Qiu ", // 0xf4 - "Po ", // 0xf5 - "Xie ", // 0xf6 - "Hao ", // 0xf7 - "Si ", // 0xf8 - "Tan ", // 0xf9 - "Chi ", // 0xfa - "Le ", // 0xfb - "Diao ", // 0xfc - "Ji ", // 0xfd - "[?] ", // 0xfe - "Hong ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x054.go b/vendor/github.com/mozillazg/go-unidecode/table/x054.go deleted file mode 100644 index cfbbeae..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x054.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x054 = []string{ - "Mie ", // 0x00 - "Xu ", // 0x01 - "Mang ", // 0x02 - "Chi ", // 0x03 - "Ge ", // 0x04 - "Xuan ", // 0x05 - "Yao ", // 0x06 - "Zi ", // 0x07 - "He ", // 0x08 - "Ji ", // 0x09 - "Diao ", // 0x0a - "Cun ", // 0x0b - "Tong ", // 0x0c - "Ming ", // 0x0d - "Hou ", // 0x0e - "Li ", // 0x0f - "Tu ", // 0x10 - "Xiang ", // 0x11 - "Zha ", // 0x12 - "Xia ", // 0x13 - "Ye ", // 0x14 - "Lu ", // 0x15 - "A ", // 0x16 - "Ma ", // 0x17 - "Ou ", // 0x18 - "Xue ", // 0x19 - "Yi ", // 0x1a - "Jun ", // 0x1b - "Chou ", // 0x1c - "Lin ", // 0x1d - "Tun ", // 0x1e - "Yin ", // 0x1f - "Fei ", // 0x20 - "Bi ", // 0x21 - "Qin ", // 0x22 - "Qin ", // 0x23 - "Jie ", // 0x24 - "Bu ", // 0x25 - "Fou ", // 0x26 - "Ba ", // 0x27 - "Dun ", // 0x28 - "Fen ", // 0x29 - "E ", // 0x2a - "Han ", // 0x2b - "Ting ", // 0x2c - "Hang ", // 0x2d - "Shun ", // 0x2e - "Qi ", // 0x2f - "Hong ", // 0x30 - "Zhi ", // 0x31 - "Shen ", // 0x32 - "Wu ", // 0x33 - "Wu ", // 0x34 - "Chao ", // 0x35 - "Ne ", // 0x36 - "Xue ", // 0x37 - "Xi ", // 0x38 - "Chui ", // 0x39 - "Dou ", // 0x3a - "Wen ", // 0x3b - "Hou ", // 0x3c - "Ou ", // 0x3d - "Wu ", // 0x3e - "Gao ", // 0x3f - "Ya ", // 0x40 - "Jun ", // 0x41 - "Lu ", // 0x42 - "E ", // 0x43 - "Ge ", // 0x44 - "Mei ", // 0x45 - "Ai ", // 0x46 - "Qi ", // 0x47 - "Cheng ", // 0x48 - "Wu ", // 0x49 - "Gao ", // 0x4a - "Fu ", // 0x4b - "Jiao ", // 0x4c - "Hong ", // 0x4d - "Chi ", // 0x4e - "Sheng ", // 0x4f - "Ne ", // 0x50 - "Tun ", // 0x51 - "Fu ", // 0x52 - "Yi ", // 0x53 - "Dai ", // 0x54 - "Ou ", // 0x55 - "Li ", // 0x56 - "Bai ", // 0x57 - "Yuan ", // 0x58 - "Kuai ", // 0x59 - "[?] ", // 0x5a - "Qiang ", // 0x5b - "Wu ", // 0x5c - "E ", // 0x5d - "Shi ", // 0x5e - "Quan ", // 0x5f - "Pen ", // 0x60 - "Wen ", // 0x61 - "Ni ", // 0x62 - "M ", // 0x63 - "Ling ", // 0x64 - "Ran ", // 0x65 - "You ", // 0x66 - "Di ", // 0x67 - "Zhou ", // 0x68 - "Shi ", // 0x69 - "Zhou ", // 0x6a - "Tie ", // 0x6b - "Xi ", // 0x6c - "Yi ", // 0x6d - "Qi ", // 0x6e - "Ping ", // 0x6f - "Zi ", // 0x70 - "Gu ", // 0x71 - "Zi ", // 0x72 - "Wei ", // 0x73 - "Xu ", // 0x74 - "He ", // 0x75 - "Nao ", // 0x76 - "Xia ", // 0x77 - "Pei ", // 0x78 - "Yi ", // 0x79 - "Xiao ", // 0x7a - "Shen ", // 0x7b - "Hu ", // 0x7c - "Ming ", // 0x7d - "Da ", // 0x7e - "Qu ", // 0x7f - "Ju ", // 0x80 - "Gem ", // 0x81 - "Za ", // 0x82 - "Tuo ", // 0x83 - "Duo ", // 0x84 - "Pou ", // 0x85 - "Pao ", // 0x86 - "Bi ", // 0x87 - "Fu ", // 0x88 - "Yang ", // 0x89 - "He ", // 0x8a - "Zha ", // 0x8b - "He ", // 0x8c - "Hai ", // 0x8d - "Jiu ", // 0x8e - "Yong ", // 0x8f - "Fu ", // 0x90 - "Que ", // 0x91 - "Zhou ", // 0x92 - "Wa ", // 0x93 - "Ka ", // 0x94 - "Gu ", // 0x95 - "Ka ", // 0x96 - "Zuo ", // 0x97 - "Bu ", // 0x98 - "Long ", // 0x99 - "Dong ", // 0x9a - "Ning ", // 0x9b - "Tha ", // 0x9c - "Si ", // 0x9d - "Xian ", // 0x9e - "Huo ", // 0x9f - "Qi ", // 0xa0 - "Er ", // 0xa1 - "E ", // 0xa2 - "Guang ", // 0xa3 - "Zha ", // 0xa4 - "Xi ", // 0xa5 - "Yi ", // 0xa6 - "Lie ", // 0xa7 - "Zi ", // 0xa8 - "Mie ", // 0xa9 - "Mi ", // 0xaa - "Zhi ", // 0xab - "Yao ", // 0xac - "Ji ", // 0xad - "Zhou ", // 0xae - "Ge ", // 0xaf - "Shuai ", // 0xb0 - "Zan ", // 0xb1 - "Xiao ", // 0xb2 - "Ke ", // 0xb3 - "Hui ", // 0xb4 - "Kua ", // 0xb5 - "Huai ", // 0xb6 - "Tao ", // 0xb7 - "Xian ", // 0xb8 - "E ", // 0xb9 - "Xuan ", // 0xba - "Xiu ", // 0xbb - "Wai ", // 0xbc - "Yan ", // 0xbd - "Lao ", // 0xbe - "Yi ", // 0xbf - "Ai ", // 0xc0 - "Pin ", // 0xc1 - "Shen ", // 0xc2 - "Tong ", // 0xc3 - "Hong ", // 0xc4 - "Xiong ", // 0xc5 - "Chi ", // 0xc6 - "Wa ", // 0xc7 - "Ha ", // 0xc8 - "Zai ", // 0xc9 - "Yu ", // 0xca - "Di ", // 0xcb - "Pai ", // 0xcc - "Xiang ", // 0xcd - "Ai ", // 0xce - "Hen ", // 0xcf - "Kuang ", // 0xd0 - "Ya ", // 0xd1 - "Da ", // 0xd2 - "Xiao ", // 0xd3 - "Bi ", // 0xd4 - "Yue ", // 0xd5 - "[?] ", // 0xd6 - "Hua ", // 0xd7 - "Sasou ", // 0xd8 - "Kuai ", // 0xd9 - "Duo ", // 0xda - "[?] ", // 0xdb - "Ji ", // 0xdc - "Nong ", // 0xdd - "Mou ", // 0xde - "Yo ", // 0xdf - "Hao ", // 0xe0 - "Yuan ", // 0xe1 - "Long ", // 0xe2 - "Pou ", // 0xe3 - "Mang ", // 0xe4 - "Ge ", // 0xe5 - "E ", // 0xe6 - "Chi ", // 0xe7 - "Shao ", // 0xe8 - "Li ", // 0xe9 - "Na ", // 0xea - "Zu ", // 0xeb - "He ", // 0xec - "Ku ", // 0xed - "Xiao ", // 0xee - "Xian ", // 0xef - "Lao ", // 0xf0 - "Bo ", // 0xf1 - "Zhe ", // 0xf2 - "Zha ", // 0xf3 - "Liang ", // 0xf4 - "Ba ", // 0xf5 - "Mie ", // 0xf6 - "Le ", // 0xf7 - "Sui ", // 0xf8 - "Fou ", // 0xf9 - "Bu ", // 0xfa - "Han ", // 0xfb - "Heng ", // 0xfc - "Geng ", // 0xfd - "Shuo ", // 0xfe - "Ge ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x055.go b/vendor/github.com/mozillazg/go-unidecode/table/x055.go deleted file mode 100644 index 4ccf466..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x055.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x055 = []string{ - "You ", // 0x00 - "Yan ", // 0x01 - "Gu ", // 0x02 - "Gu ", // 0x03 - "Bai ", // 0x04 - "Han ", // 0x05 - "Suo ", // 0x06 - "Chun ", // 0x07 - "Yi ", // 0x08 - "Ai ", // 0x09 - "Jia ", // 0x0a - "Tu ", // 0x0b - "Xian ", // 0x0c - "Huan ", // 0x0d - "Li ", // 0x0e - "Xi ", // 0x0f - "Tang ", // 0x10 - "Zuo ", // 0x11 - "Qiu ", // 0x12 - "Che ", // 0x13 - "Wu ", // 0x14 - "Zao ", // 0x15 - "Ya ", // 0x16 - "Dou ", // 0x17 - "Qi ", // 0x18 - "Di ", // 0x19 - "Qin ", // 0x1a - "Ma ", // 0x1b - "Mal ", // 0x1c - "Hong ", // 0x1d - "Dou ", // 0x1e - "Kes ", // 0x1f - "Lao ", // 0x20 - "Liang ", // 0x21 - "Suo ", // 0x22 - "Zao ", // 0x23 - "Huan ", // 0x24 - "Lang ", // 0x25 - "Sha ", // 0x26 - "Ji ", // 0x27 - "Zuo ", // 0x28 - "Wo ", // 0x29 - "Feng ", // 0x2a - "Yin ", // 0x2b - "Hu ", // 0x2c - "Qi ", // 0x2d - "Shou ", // 0x2e - "Wei ", // 0x2f - "Shua ", // 0x30 - "Chang ", // 0x31 - "Er ", // 0x32 - "Li ", // 0x33 - "Qiang ", // 0x34 - "An ", // 0x35 - "Jie ", // 0x36 - "Yo ", // 0x37 - "Nian ", // 0x38 - "Yu ", // 0x39 - "Tian ", // 0x3a - "Lai ", // 0x3b - "Sha ", // 0x3c - "Xi ", // 0x3d - "Tuo ", // 0x3e - "Hu ", // 0x3f - "Ai ", // 0x40 - "Zhou ", // 0x41 - "Nou ", // 0x42 - "Ken ", // 0x43 - "Zhuo ", // 0x44 - "Zhuo ", // 0x45 - "Shang ", // 0x46 - "Di ", // 0x47 - "Heng ", // 0x48 - "Lan ", // 0x49 - "A ", // 0x4a - "Xiao ", // 0x4b - "Xiang ", // 0x4c - "Tun ", // 0x4d - "Wu ", // 0x4e - "Wen ", // 0x4f - "Cui ", // 0x50 - "Sha ", // 0x51 - "Hu ", // 0x52 - "Qi ", // 0x53 - "Qi ", // 0x54 - "Tao ", // 0x55 - "Dan ", // 0x56 - "Dan ", // 0x57 - "Ye ", // 0x58 - "Zi ", // 0x59 - "Bi ", // 0x5a - "Cui ", // 0x5b - "Chuo ", // 0x5c - "He ", // 0x5d - "Ya ", // 0x5e - "Qi ", // 0x5f - "Zhe ", // 0x60 - "Pei ", // 0x61 - "Liang ", // 0x62 - "Xian ", // 0x63 - "Pi ", // 0x64 - "Sha ", // 0x65 - "La ", // 0x66 - "Ze ", // 0x67 - "Qing ", // 0x68 - "Gua ", // 0x69 - "Pa ", // 0x6a - "Zhe ", // 0x6b - "Se ", // 0x6c - "Zhuan ", // 0x6d - "Nie ", // 0x6e - "Guo ", // 0x6f - "Luo ", // 0x70 - "Yan ", // 0x71 - "Di ", // 0x72 - "Quan ", // 0x73 - "Tan ", // 0x74 - "Bo ", // 0x75 - "Ding ", // 0x76 - "Lang ", // 0x77 - "Xiao ", // 0x78 - "[?] ", // 0x79 - "Tang ", // 0x7a - "Chi ", // 0x7b - "Ti ", // 0x7c - "An ", // 0x7d - "Jiu ", // 0x7e - "Dan ", // 0x7f - "Ke ", // 0x80 - "Yong ", // 0x81 - "Wei ", // 0x82 - "Nan ", // 0x83 - "Shan ", // 0x84 - "Yu ", // 0x85 - "Zhe ", // 0x86 - "La ", // 0x87 - "Jie ", // 0x88 - "Hou ", // 0x89 - "Han ", // 0x8a - "Die ", // 0x8b - "Zhou ", // 0x8c - "Chai ", // 0x8d - "Wai ", // 0x8e - "Re ", // 0x8f - "Yu ", // 0x90 - "Yin ", // 0x91 - "Zan ", // 0x92 - "Yao ", // 0x93 - "Wo ", // 0x94 - "Mian ", // 0x95 - "Hu ", // 0x96 - "Yun ", // 0x97 - "Chuan ", // 0x98 - "Hui ", // 0x99 - "Huan ", // 0x9a - "Huan ", // 0x9b - "Xi ", // 0x9c - "He ", // 0x9d - "Ji ", // 0x9e - "Kui ", // 0x9f - "Zhong ", // 0xa0 - "Wei ", // 0xa1 - "Sha ", // 0xa2 - "Xu ", // 0xa3 - "Huang ", // 0xa4 - "Du ", // 0xa5 - "Nie ", // 0xa6 - "Xuan ", // 0xa7 - "Liang ", // 0xa8 - "Yu ", // 0xa9 - "Sang ", // 0xaa - "Chi ", // 0xab - "Qiao ", // 0xac - "Yan ", // 0xad - "Dan ", // 0xae - "Pen ", // 0xaf - "Can ", // 0xb0 - "Li ", // 0xb1 - "Yo ", // 0xb2 - "Zha ", // 0xb3 - "Wei ", // 0xb4 - "Miao ", // 0xb5 - "Ying ", // 0xb6 - "Pen ", // 0xb7 - "Phos ", // 0xb8 - "Kui ", // 0xb9 - "Xi ", // 0xba - "Yu ", // 0xbb - "Jie ", // 0xbc - "Lou ", // 0xbd - "Ku ", // 0xbe - "Sao ", // 0xbf - "Huo ", // 0xc0 - "Ti ", // 0xc1 - "Yao ", // 0xc2 - "He ", // 0xc3 - "A ", // 0xc4 - "Xiu ", // 0xc5 - "Qiang ", // 0xc6 - "Se ", // 0xc7 - "Yong ", // 0xc8 - "Su ", // 0xc9 - "Hong ", // 0xca - "Xie ", // 0xcb - "Yi ", // 0xcc - "Suo ", // 0xcd - "Ma ", // 0xce - "Cha ", // 0xcf - "Hai ", // 0xd0 - "Ke ", // 0xd1 - "Ta ", // 0xd2 - "Sang ", // 0xd3 - "Tian ", // 0xd4 - "Ru ", // 0xd5 - "Sou ", // 0xd6 - "Wa ", // 0xd7 - "Ji ", // 0xd8 - "Pang ", // 0xd9 - "Wu ", // 0xda - "Xian ", // 0xdb - "Shi ", // 0xdc - "Ge ", // 0xdd - "Zi ", // 0xde - "Jie ", // 0xdf - "Luo ", // 0xe0 - "Weng ", // 0xe1 - "Wa ", // 0xe2 - "Si ", // 0xe3 - "Chi ", // 0xe4 - "Hao ", // 0xe5 - "Suo ", // 0xe6 - "Jia ", // 0xe7 - "Hai ", // 0xe8 - "Suo ", // 0xe9 - "Qin ", // 0xea - "Nie ", // 0xeb - "He ", // 0xec - "Cis ", // 0xed - "Sai ", // 0xee - "Ng ", // 0xef - "Ge ", // 0xf0 - "Na ", // 0xf1 - "Dia ", // 0xf2 - "Ai ", // 0xf3 - "[?] ", // 0xf4 - "Tong ", // 0xf5 - "Bi ", // 0xf6 - "Ao ", // 0xf7 - "Ao ", // 0xf8 - "Lian ", // 0xf9 - "Cui ", // 0xfa - "Zhe ", // 0xfb - "Mo ", // 0xfc - "Sou ", // 0xfd - "Sou ", // 0xfe - "Tan ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x056.go b/vendor/github.com/mozillazg/go-unidecode/table/x056.go deleted file mode 100644 index e7e6902..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x056.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x056 = []string{ - "Di ", // 0x00 - "Qi ", // 0x01 - "Jiao ", // 0x02 - "Chong ", // 0x03 - "Jiao ", // 0x04 - "Kai ", // 0x05 - "Tan ", // 0x06 - "San ", // 0x07 - "Cao ", // 0x08 - "Jia ", // 0x09 - "Ai ", // 0x0a - "Xiao ", // 0x0b - "Piao ", // 0x0c - "Lou ", // 0x0d - "Ga ", // 0x0e - "Gu ", // 0x0f - "Xiao ", // 0x10 - "Hu ", // 0x11 - "Hui ", // 0x12 - "Guo ", // 0x13 - "Ou ", // 0x14 - "Xian ", // 0x15 - "Ze ", // 0x16 - "Chang ", // 0x17 - "Xu ", // 0x18 - "Po ", // 0x19 - "De ", // 0x1a - "Ma ", // 0x1b - "Ma ", // 0x1c - "Hu ", // 0x1d - "Lei ", // 0x1e - "Du ", // 0x1f - "Ga ", // 0x20 - "Tang ", // 0x21 - "Ye ", // 0x22 - "Beng ", // 0x23 - "Ying ", // 0x24 - "Saai ", // 0x25 - "Jiao ", // 0x26 - "Mi ", // 0x27 - "Xiao ", // 0x28 - "Hua ", // 0x29 - "Mai ", // 0x2a - "Ran ", // 0x2b - "Zuo ", // 0x2c - "Peng ", // 0x2d - "Lao ", // 0x2e - "Xiao ", // 0x2f - "Ji ", // 0x30 - "Zhu ", // 0x31 - "Chao ", // 0x32 - "Kui ", // 0x33 - "Zui ", // 0x34 - "Xiao ", // 0x35 - "Si ", // 0x36 - "Hao ", // 0x37 - "Fu ", // 0x38 - "Liao ", // 0x39 - "Qiao ", // 0x3a - "Xi ", // 0x3b - "Xiu ", // 0x3c - "Tan ", // 0x3d - "Tan ", // 0x3e - "Mo ", // 0x3f - "Xun ", // 0x40 - "E ", // 0x41 - "Zun ", // 0x42 - "Fan ", // 0x43 - "Chi ", // 0x44 - "Hui ", // 0x45 - "Zan ", // 0x46 - "Chuang ", // 0x47 - "Cu ", // 0x48 - "Dan ", // 0x49 - "Yu ", // 0x4a - "Tun ", // 0x4b - "Cheng ", // 0x4c - "Jiao ", // 0x4d - "Ye ", // 0x4e - "Xi ", // 0x4f - "Qi ", // 0x50 - "Hao ", // 0x51 - "Lian ", // 0x52 - "Xu ", // 0x53 - "Deng ", // 0x54 - "Hui ", // 0x55 - "Yin ", // 0x56 - "Pu ", // 0x57 - "Jue ", // 0x58 - "Qin ", // 0x59 - "Xun ", // 0x5a - "Nie ", // 0x5b - "Lu ", // 0x5c - "Si ", // 0x5d - "Yan ", // 0x5e - "Ying ", // 0x5f - "Da ", // 0x60 - "Dan ", // 0x61 - "Yu ", // 0x62 - "Zhou ", // 0x63 - "Jin ", // 0x64 - "Nong ", // 0x65 - "Yue ", // 0x66 - "Hui ", // 0x67 - "Qi ", // 0x68 - "E ", // 0x69 - "Zao ", // 0x6a - "Yi ", // 0x6b - "Shi ", // 0x6c - "Jiao ", // 0x6d - "Yuan ", // 0x6e - "Ai ", // 0x6f - "Yong ", // 0x70 - "Jue ", // 0x71 - "Kuai ", // 0x72 - "Yu ", // 0x73 - "Pen ", // 0x74 - "Dao ", // 0x75 - "Ge ", // 0x76 - "Xin ", // 0x77 - "Dun ", // 0x78 - "Dang ", // 0x79 - "Sin ", // 0x7a - "Sai ", // 0x7b - "Pi ", // 0x7c - "Pi ", // 0x7d - "Yin ", // 0x7e - "Zui ", // 0x7f - "Ning ", // 0x80 - "Di ", // 0x81 - "Lan ", // 0x82 - "Ta ", // 0x83 - "Huo ", // 0x84 - "Ru ", // 0x85 - "Hao ", // 0x86 - "Xia ", // 0x87 - "Ya ", // 0x88 - "Duo ", // 0x89 - "Xi ", // 0x8a - "Chou ", // 0x8b - "Ji ", // 0x8c - "Jin ", // 0x8d - "Hao ", // 0x8e - "Ti ", // 0x8f - "Chang ", // 0x90 - "[?] ", // 0x91 - "[?] ", // 0x92 - "Ca ", // 0x93 - "Ti ", // 0x94 - "Lu ", // 0x95 - "Hui ", // 0x96 - "Bo ", // 0x97 - "You ", // 0x98 - "Nie ", // 0x99 - "Yin ", // 0x9a - "Hu ", // 0x9b - "Mo ", // 0x9c - "Huang ", // 0x9d - "Zhe ", // 0x9e - "Li ", // 0x9f - "Liu ", // 0xa0 - "Haai ", // 0xa1 - "Nang ", // 0xa2 - "Xiao ", // 0xa3 - "Mo ", // 0xa4 - "Yan ", // 0xa5 - "Li ", // 0xa6 - "Lu ", // 0xa7 - "Long ", // 0xa8 - "Fu ", // 0xa9 - "Dan ", // 0xaa - "Chen ", // 0xab - "Pin ", // 0xac - "Pi ", // 0xad - "Xiang ", // 0xae - "Huo ", // 0xaf - "Mo ", // 0xb0 - "Xi ", // 0xb1 - "Duo ", // 0xb2 - "Ku ", // 0xb3 - "Yan ", // 0xb4 - "Chan ", // 0xb5 - "Ying ", // 0xb6 - "Rang ", // 0xb7 - "Dian ", // 0xb8 - "La ", // 0xb9 - "Ta ", // 0xba - "Xiao ", // 0xbb - "Jiao ", // 0xbc - "Chuo ", // 0xbd - "Huan ", // 0xbe - "Huo ", // 0xbf - "Zhuan ", // 0xc0 - "Nie ", // 0xc1 - "Xiao ", // 0xc2 - "Ca ", // 0xc3 - "Li ", // 0xc4 - "Chan ", // 0xc5 - "Chai ", // 0xc6 - "Li ", // 0xc7 - "Yi ", // 0xc8 - "Luo ", // 0xc9 - "Nang ", // 0xca - "Zan ", // 0xcb - "Su ", // 0xcc - "Xi ", // 0xcd - "So ", // 0xce - "Jian ", // 0xcf - "Za ", // 0xd0 - "Zhu ", // 0xd1 - "Lan ", // 0xd2 - "Nie ", // 0xd3 - "Nang ", // 0xd4 - "[?] ", // 0xd5 - "[?] ", // 0xd6 - "Wei ", // 0xd7 - "Hui ", // 0xd8 - "Yin ", // 0xd9 - "Qiu ", // 0xda - "Si ", // 0xdb - "Nin ", // 0xdc - "Jian ", // 0xdd - "Hui ", // 0xde - "Xin ", // 0xdf - "Yin ", // 0xe0 - "Nan ", // 0xe1 - "Tuan ", // 0xe2 - "Tuan ", // 0xe3 - "Dun ", // 0xe4 - "Kang ", // 0xe5 - "Yuan ", // 0xe6 - "Jiong ", // 0xe7 - "Pian ", // 0xe8 - "Yun ", // 0xe9 - "Cong ", // 0xea - "Hu ", // 0xeb - "Hui ", // 0xec - "Yuan ", // 0xed - "You ", // 0xee - "Guo ", // 0xef - "Kun ", // 0xf0 - "Cong ", // 0xf1 - "Wei ", // 0xf2 - "Tu ", // 0xf3 - "Wei ", // 0xf4 - "Lun ", // 0xf5 - "Guo ", // 0xf6 - "Qun ", // 0xf7 - "Ri ", // 0xf8 - "Ling ", // 0xf9 - "Gu ", // 0xfa - "Guo ", // 0xfb - "Tai ", // 0xfc - "Guo ", // 0xfd - "Tu ", // 0xfe - "You ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x057.go b/vendor/github.com/mozillazg/go-unidecode/table/x057.go deleted file mode 100644 index fdb9a08..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x057.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x057 = []string{ - "Guo ", // 0x00 - "Yin ", // 0x01 - "Hun ", // 0x02 - "Pu ", // 0x03 - "Yu ", // 0x04 - "Han ", // 0x05 - "Yuan ", // 0x06 - "Lun ", // 0x07 - "Quan ", // 0x08 - "Yu ", // 0x09 - "Qing ", // 0x0a - "Guo ", // 0x0b - "Chuan ", // 0x0c - "Wei ", // 0x0d - "Yuan ", // 0x0e - "Quan ", // 0x0f - "Ku ", // 0x10 - "Fu ", // 0x11 - "Yuan ", // 0x12 - "Yuan ", // 0x13 - "E ", // 0x14 - "Tu ", // 0x15 - "Tu ", // 0x16 - "Tu ", // 0x17 - "Tuan ", // 0x18 - "Lue ", // 0x19 - "Hui ", // 0x1a - "Yi ", // 0x1b - "Yuan ", // 0x1c - "Luan ", // 0x1d - "Luan ", // 0x1e - "Tu ", // 0x1f - "Ya ", // 0x20 - "Tu ", // 0x21 - "Ting ", // 0x22 - "Sheng ", // 0x23 - "Pu ", // 0x24 - "Lu ", // 0x25 - "Iri ", // 0x26 - "Ya ", // 0x27 - "Zai ", // 0x28 - "Wei ", // 0x29 - "Ge ", // 0x2a - "Yu ", // 0x2b - "Wu ", // 0x2c - "Gui ", // 0x2d - "Pi ", // 0x2e - "Yi ", // 0x2f - "Di ", // 0x30 - "Qian ", // 0x31 - "Qian ", // 0x32 - "Zhen ", // 0x33 - "Zhuo ", // 0x34 - "Dang ", // 0x35 - "Qia ", // 0x36 - "Akutsu ", // 0x37 - "Yama ", // 0x38 - "Kuang ", // 0x39 - "Chang ", // 0x3a - "Qi ", // 0x3b - "Nie ", // 0x3c - "Mo ", // 0x3d - "Ji ", // 0x3e - "Jia ", // 0x3f - "Zhi ", // 0x40 - "Zhi ", // 0x41 - "Ban ", // 0x42 - "Xun ", // 0x43 - "Tou ", // 0x44 - "Qin ", // 0x45 - "Fen ", // 0x46 - "Jun ", // 0x47 - "Keng ", // 0x48 - "Tun ", // 0x49 - "Fang ", // 0x4a - "Fen ", // 0x4b - "Ben ", // 0x4c - "Tan ", // 0x4d - "Kan ", // 0x4e - "Pi ", // 0x4f - "Zuo ", // 0x50 - "Keng ", // 0x51 - "Bi ", // 0x52 - "Xing ", // 0x53 - "Di ", // 0x54 - "Jing ", // 0x55 - "Ji ", // 0x56 - "Kuai ", // 0x57 - "Di ", // 0x58 - "Jing ", // 0x59 - "Jian ", // 0x5a - "Tan ", // 0x5b - "Li ", // 0x5c - "Ba ", // 0x5d - "Wu ", // 0x5e - "Fen ", // 0x5f - "Zhui ", // 0x60 - "Po ", // 0x61 - "Pan ", // 0x62 - "Tang ", // 0x63 - "Kun ", // 0x64 - "Qu ", // 0x65 - "Tan ", // 0x66 - "Zhi ", // 0x67 - "Tuo ", // 0x68 - "Gan ", // 0x69 - "Ping ", // 0x6a - "Dian ", // 0x6b - "Gua ", // 0x6c - "Ni ", // 0x6d - "Tai ", // 0x6e - "Pi ", // 0x6f - "Jiong ", // 0x70 - "Yang ", // 0x71 - "Fo ", // 0x72 - "Ao ", // 0x73 - "Liu ", // 0x74 - "Qiu ", // 0x75 - "Mu ", // 0x76 - "Ke ", // 0x77 - "Gou ", // 0x78 - "Xue ", // 0x79 - "Ba ", // 0x7a - "Chi ", // 0x7b - "Che ", // 0x7c - "Ling ", // 0x7d - "Zhu ", // 0x7e - "Fu ", // 0x7f - "Hu ", // 0x80 - "Zhi ", // 0x81 - "Chui ", // 0x82 - "La ", // 0x83 - "Long ", // 0x84 - "Long ", // 0x85 - "Lu ", // 0x86 - "Ao ", // 0x87 - "Tay ", // 0x88 - "Pao ", // 0x89 - "[?] ", // 0x8a - "Xing ", // 0x8b - "Dong ", // 0x8c - "Ji ", // 0x8d - "Ke ", // 0x8e - "Lu ", // 0x8f - "Ci ", // 0x90 - "Chi ", // 0x91 - "Lei ", // 0x92 - "Gai ", // 0x93 - "Yin ", // 0x94 - "Hou ", // 0x95 - "Dui ", // 0x96 - "Zhao ", // 0x97 - "Fu ", // 0x98 - "Guang ", // 0x99 - "Yao ", // 0x9a - "Duo ", // 0x9b - "Duo ", // 0x9c - "Gui ", // 0x9d - "Cha ", // 0x9e - "Yang ", // 0x9f - "Yin ", // 0xa0 - "Fa ", // 0xa1 - "Gou ", // 0xa2 - "Yuan ", // 0xa3 - "Die ", // 0xa4 - "Xie ", // 0xa5 - "Ken ", // 0xa6 - "Jiong ", // 0xa7 - "Shou ", // 0xa8 - "E ", // 0xa9 - "Ha ", // 0xaa - "Dian ", // 0xab - "Hong ", // 0xac - "Wu ", // 0xad - "Kua ", // 0xae - "[?] ", // 0xaf - "Tao ", // 0xb0 - "Dang ", // 0xb1 - "Kai ", // 0xb2 - "Gake ", // 0xb3 - "Nao ", // 0xb4 - "An ", // 0xb5 - "Xing ", // 0xb6 - "Xian ", // 0xb7 - "Huan ", // 0xb8 - "Bang ", // 0xb9 - "Pei ", // 0xba - "Ba ", // 0xbb - "Yi ", // 0xbc - "Yin ", // 0xbd - "Han ", // 0xbe - "Xu ", // 0xbf - "Chui ", // 0xc0 - "Cen ", // 0xc1 - "Geng ", // 0xc2 - "Ai ", // 0xc3 - "Peng ", // 0xc4 - "Fang ", // 0xc5 - "Que ", // 0xc6 - "Yong ", // 0xc7 - "Xun ", // 0xc8 - "Jia ", // 0xc9 - "Di ", // 0xca - "Mai ", // 0xcb - "Lang ", // 0xcc - "Xuan ", // 0xcd - "Cheng ", // 0xce - "Yan ", // 0xcf - "Jin ", // 0xd0 - "Zhe ", // 0xd1 - "Lei ", // 0xd2 - "Lie ", // 0xd3 - "Bu ", // 0xd4 - "Cheng ", // 0xd5 - "Gomi ", // 0xd6 - "Bu ", // 0xd7 - "Shi ", // 0xd8 - "Xun ", // 0xd9 - "Guo ", // 0xda - "Jiong ", // 0xdb - "Ye ", // 0xdc - "Nian ", // 0xdd - "Di ", // 0xde - "Yu ", // 0xdf - "Bu ", // 0xe0 - "Ya ", // 0xe1 - "Juan ", // 0xe2 - "Sui ", // 0xe3 - "Pi ", // 0xe4 - "Cheng ", // 0xe5 - "Wan ", // 0xe6 - "Ju ", // 0xe7 - "Lun ", // 0xe8 - "Zheng ", // 0xe9 - "Kong ", // 0xea - "Chong ", // 0xeb - "Dong ", // 0xec - "Dai ", // 0xed - "Tan ", // 0xee - "An ", // 0xef - "Cai ", // 0xf0 - "Shu ", // 0xf1 - "Beng ", // 0xf2 - "Kan ", // 0xf3 - "Zhi ", // 0xf4 - "Duo ", // 0xf5 - "Yi ", // 0xf6 - "Zhi ", // 0xf7 - "Yi ", // 0xf8 - "Pei ", // 0xf9 - "Ji ", // 0xfa - "Zhun ", // 0xfb - "Qi ", // 0xfc - "Sao ", // 0xfd - "Ju ", // 0xfe - "Ni ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x058.go b/vendor/github.com/mozillazg/go-unidecode/table/x058.go deleted file mode 100644 index 3146eda..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x058.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x058 = []string{ - "Ku ", // 0x00 - "Ke ", // 0x01 - "Tang ", // 0x02 - "Kun ", // 0x03 - "Ni ", // 0x04 - "Jian ", // 0x05 - "Dui ", // 0x06 - "Jin ", // 0x07 - "Gang ", // 0x08 - "Yu ", // 0x09 - "E ", // 0x0a - "Peng ", // 0x0b - "Gu ", // 0x0c - "Tu ", // 0x0d - "Leng ", // 0x0e - "[?] ", // 0x0f - "Ya ", // 0x10 - "Qian ", // 0x11 - "[?] ", // 0x12 - "An ", // 0x13 - "[?] ", // 0x14 - "Duo ", // 0x15 - "Nao ", // 0x16 - "Tu ", // 0x17 - "Cheng ", // 0x18 - "Yin ", // 0x19 - "Hun ", // 0x1a - "Bi ", // 0x1b - "Lian ", // 0x1c - "Guo ", // 0x1d - "Die ", // 0x1e - "Zhuan ", // 0x1f - "Hou ", // 0x20 - "Bao ", // 0x21 - "Bao ", // 0x22 - "Yu ", // 0x23 - "Di ", // 0x24 - "Mao ", // 0x25 - "Jie ", // 0x26 - "Ruan ", // 0x27 - "E ", // 0x28 - "Geng ", // 0x29 - "Kan ", // 0x2a - "Zong ", // 0x2b - "Yu ", // 0x2c - "Huang ", // 0x2d - "E ", // 0x2e - "Yao ", // 0x2f - "Yan ", // 0x30 - "Bao ", // 0x31 - "Ji ", // 0x32 - "Mei ", // 0x33 - "Chang ", // 0x34 - "Du ", // 0x35 - "Tuo ", // 0x36 - "Yin ", // 0x37 - "Feng ", // 0x38 - "Zhong ", // 0x39 - "Jie ", // 0x3a - "Zhen ", // 0x3b - "Feng ", // 0x3c - "Gang ", // 0x3d - "Chuan ", // 0x3e - "Jian ", // 0x3f - "Pyeng ", // 0x40 - "Toride ", // 0x41 - "Xiang ", // 0x42 - "Huang ", // 0x43 - "Leng ", // 0x44 - "Duan ", // 0x45 - "[?] ", // 0x46 - "Xuan ", // 0x47 - "Ji ", // 0x48 - "Ji ", // 0x49 - "Kuai ", // 0x4a - "Ying ", // 0x4b - "Ta ", // 0x4c - "Cheng ", // 0x4d - "Yong ", // 0x4e - "Kai ", // 0x4f - "Su ", // 0x50 - "Su ", // 0x51 - "Shi ", // 0x52 - "Mi ", // 0x53 - "Ta ", // 0x54 - "Weng ", // 0x55 - "Cheng ", // 0x56 - "Tu ", // 0x57 - "Tang ", // 0x58 - "Que ", // 0x59 - "Zhong ", // 0x5a - "Li ", // 0x5b - "Peng ", // 0x5c - "Bang ", // 0x5d - "Sai ", // 0x5e - "Zang ", // 0x5f - "Dui ", // 0x60 - "Tian ", // 0x61 - "Wu ", // 0x62 - "Cheng ", // 0x63 - "Xun ", // 0x64 - "Ge ", // 0x65 - "Zhen ", // 0x66 - "Ai ", // 0x67 - "Gong ", // 0x68 - "Yan ", // 0x69 - "Kan ", // 0x6a - "Tian ", // 0x6b - "Yuan ", // 0x6c - "Wen ", // 0x6d - "Xie ", // 0x6e - "Liu ", // 0x6f - "Ama ", // 0x70 - "Lang ", // 0x71 - "Chang ", // 0x72 - "Peng ", // 0x73 - "Beng ", // 0x74 - "Chen ", // 0x75 - "Cu ", // 0x76 - "Lu ", // 0x77 - "Ou ", // 0x78 - "Qian ", // 0x79 - "Mei ", // 0x7a - "Mo ", // 0x7b - "Zhuan ", // 0x7c - "Shuang ", // 0x7d - "Shu ", // 0x7e - "Lou ", // 0x7f - "Chi ", // 0x80 - "Man ", // 0x81 - "Biao ", // 0x82 - "Jing ", // 0x83 - "Qi ", // 0x84 - "Shu ", // 0x85 - "Di ", // 0x86 - "Zhang ", // 0x87 - "Kan ", // 0x88 - "Yong ", // 0x89 - "Dian ", // 0x8a - "Chen ", // 0x8b - "Zhi ", // 0x8c - "Xi ", // 0x8d - "Guo ", // 0x8e - "Qiang ", // 0x8f - "Jin ", // 0x90 - "Di ", // 0x91 - "Shang ", // 0x92 - "Mu ", // 0x93 - "Cui ", // 0x94 - "Yan ", // 0x95 - "Ta ", // 0x96 - "Zeng ", // 0x97 - "Qi ", // 0x98 - "Qiang ", // 0x99 - "Liang ", // 0x9a - "[?] ", // 0x9b - "Zhui ", // 0x9c - "Qiao ", // 0x9d - "Zeng ", // 0x9e - "Xu ", // 0x9f - "Shan ", // 0xa0 - "Shan ", // 0xa1 - "Ba ", // 0xa2 - "Pu ", // 0xa3 - "Kuai ", // 0xa4 - "Dong ", // 0xa5 - "Fan ", // 0xa6 - "Que ", // 0xa7 - "Mo ", // 0xa8 - "Dun ", // 0xa9 - "Dun ", // 0xaa - "Dun ", // 0xab - "Di ", // 0xac - "Sheng ", // 0xad - "Duo ", // 0xae - "Duo ", // 0xaf - "Tan ", // 0xb0 - "Deng ", // 0xb1 - "Wu ", // 0xb2 - "Fen ", // 0xb3 - "Huang ", // 0xb4 - "Tan ", // 0xb5 - "Da ", // 0xb6 - "Ye ", // 0xb7 - "Sho ", // 0xb8 - "Mama ", // 0xb9 - "Yu ", // 0xba - "Qiang ", // 0xbb - "Ji ", // 0xbc - "Qiao ", // 0xbd - "Ken ", // 0xbe - "Yi ", // 0xbf - "Pi ", // 0xc0 - "Bi ", // 0xc1 - "Dian ", // 0xc2 - "Jiang ", // 0xc3 - "Ye ", // 0xc4 - "Yong ", // 0xc5 - "Bo ", // 0xc6 - "Tan ", // 0xc7 - "Lan ", // 0xc8 - "Ju ", // 0xc9 - "Huai ", // 0xca - "Dang ", // 0xcb - "Rang ", // 0xcc - "Qian ", // 0xcd - "Xun ", // 0xce - "Lan ", // 0xcf - "Xi ", // 0xd0 - "He ", // 0xd1 - "Ai ", // 0xd2 - "Ya ", // 0xd3 - "Dao ", // 0xd4 - "Hao ", // 0xd5 - "Ruan ", // 0xd6 - "Mama ", // 0xd7 - "Lei ", // 0xd8 - "Kuang ", // 0xd9 - "Lu ", // 0xda - "Yan ", // 0xdb - "Tan ", // 0xdc - "Wei ", // 0xdd - "Huai ", // 0xde - "Long ", // 0xdf - "Long ", // 0xe0 - "Rui ", // 0xe1 - "Li ", // 0xe2 - "Lin ", // 0xe3 - "Rang ", // 0xe4 - "Ten ", // 0xe5 - "Xun ", // 0xe6 - "Yan ", // 0xe7 - "Lei ", // 0xe8 - "Ba ", // 0xe9 - "[?] ", // 0xea - "Shi ", // 0xeb - "Ren ", // 0xec - "[?] ", // 0xed - "Zhuang ", // 0xee - "Zhuang ", // 0xef - "Sheng ", // 0xf0 - "Yi ", // 0xf1 - "Mai ", // 0xf2 - "Ke ", // 0xf3 - "Zhu ", // 0xf4 - "Zhuang ", // 0xf5 - "Hu ", // 0xf6 - "Hu ", // 0xf7 - "Kun ", // 0xf8 - "Yi ", // 0xf9 - "Hu ", // 0xfa - "Xu ", // 0xfb - "Kun ", // 0xfc - "Shou ", // 0xfd - "Mang ", // 0xfe - "Zun ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x059.go b/vendor/github.com/mozillazg/go-unidecode/table/x059.go deleted file mode 100644 index 707a0a7..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x059.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x059 = []string{ - "Shou ", // 0x00 - "Yi ", // 0x01 - "Zhi ", // 0x02 - "Gu ", // 0x03 - "Chu ", // 0x04 - "Jiang ", // 0x05 - "Feng ", // 0x06 - "Bei ", // 0x07 - "Cay ", // 0x08 - "Bian ", // 0x09 - "Sui ", // 0x0a - "Qun ", // 0x0b - "Ling ", // 0x0c - "Fu ", // 0x0d - "Zuo ", // 0x0e - "Xia ", // 0x0f - "Xiong ", // 0x10 - "[?] ", // 0x11 - "Nao ", // 0x12 - "Xia ", // 0x13 - "Kui ", // 0x14 - "Xi ", // 0x15 - "Wai ", // 0x16 - "Yuan ", // 0x17 - "Mao ", // 0x18 - "Su ", // 0x19 - "Duo ", // 0x1a - "Duo ", // 0x1b - "Ye ", // 0x1c - "Qing ", // 0x1d - "Uys ", // 0x1e - "Gou ", // 0x1f - "Gou ", // 0x20 - "Qi ", // 0x21 - "Meng ", // 0x22 - "Meng ", // 0x23 - "Yin ", // 0x24 - "Huo ", // 0x25 - "Chen ", // 0x26 - "Da ", // 0x27 - "Ze ", // 0x28 - "Tian ", // 0x29 - "Tai ", // 0x2a - "Fu ", // 0x2b - "Guai ", // 0x2c - "Yao ", // 0x2d - "Yang ", // 0x2e - "Hang ", // 0x2f - "Gao ", // 0x30 - "Shi ", // 0x31 - "Ben ", // 0x32 - "Tai ", // 0x33 - "Tou ", // 0x34 - "Yan ", // 0x35 - "Bi ", // 0x36 - "Yi ", // 0x37 - "Kua ", // 0x38 - "Jia ", // 0x39 - "Duo ", // 0x3a - "Kwu ", // 0x3b - "Kuang ", // 0x3c - "Yun ", // 0x3d - "Jia ", // 0x3e - "Pa ", // 0x3f - "En ", // 0x40 - "Lian ", // 0x41 - "Huan ", // 0x42 - "Di ", // 0x43 - "Yan ", // 0x44 - "Pao ", // 0x45 - "Quan ", // 0x46 - "Qi ", // 0x47 - "Nai ", // 0x48 - "Feng ", // 0x49 - "Xie ", // 0x4a - "Fen ", // 0x4b - "Dian ", // 0x4c - "[?] ", // 0x4d - "Kui ", // 0x4e - "Zou ", // 0x4f - "Huan ", // 0x50 - "Qi ", // 0x51 - "Kai ", // 0x52 - "Zha ", // 0x53 - "Ben ", // 0x54 - "Yi ", // 0x55 - "Jiang ", // 0x56 - "Tao ", // 0x57 - "Zang ", // 0x58 - "Ben ", // 0x59 - "Xi ", // 0x5a - "Xiang ", // 0x5b - "Fei ", // 0x5c - "Diao ", // 0x5d - "Xun ", // 0x5e - "Keng ", // 0x5f - "Dian ", // 0x60 - "Ao ", // 0x61 - "She ", // 0x62 - "Weng ", // 0x63 - "Pan ", // 0x64 - "Ao ", // 0x65 - "Wu ", // 0x66 - "Ao ", // 0x67 - "Jiang ", // 0x68 - "Lian ", // 0x69 - "Duo ", // 0x6a - "Yun ", // 0x6b - "Jiang ", // 0x6c - "Shi ", // 0x6d - "Fen ", // 0x6e - "Huo ", // 0x6f - "Bi ", // 0x70 - "Lian ", // 0x71 - "Duo ", // 0x72 - "Nu ", // 0x73 - "Nu ", // 0x74 - "Ding ", // 0x75 - "Nai ", // 0x76 - "Qian ", // 0x77 - "Jian ", // 0x78 - "Ta ", // 0x79 - "Jiu ", // 0x7a - "Nan ", // 0x7b - "Cha ", // 0x7c - "Hao ", // 0x7d - "Xian ", // 0x7e - "Fan ", // 0x7f - "Ji ", // 0x80 - "Shuo ", // 0x81 - "Ru ", // 0x82 - "Fei ", // 0x83 - "Wang ", // 0x84 - "Hong ", // 0x85 - "Zhuang ", // 0x86 - "Fu ", // 0x87 - "Ma ", // 0x88 - "Dan ", // 0x89 - "Ren ", // 0x8a - "Fu ", // 0x8b - "Jing ", // 0x8c - "Yan ", // 0x8d - "Xie ", // 0x8e - "Wen ", // 0x8f - "Zhong ", // 0x90 - "Pa ", // 0x91 - "Du ", // 0x92 - "Ji ", // 0x93 - "Keng ", // 0x94 - "Zhong ", // 0x95 - "Yao ", // 0x96 - "Jin ", // 0x97 - "Yun ", // 0x98 - "Miao ", // 0x99 - "Pei ", // 0x9a - "Shi ", // 0x9b - "Yue ", // 0x9c - "Zhuang ", // 0x9d - "Niu ", // 0x9e - "Yan ", // 0x9f - "Na ", // 0xa0 - "Xin ", // 0xa1 - "Fen ", // 0xa2 - "Bi ", // 0xa3 - "Yu ", // 0xa4 - "Tuo ", // 0xa5 - "Feng ", // 0xa6 - "Yuan ", // 0xa7 - "Fang ", // 0xa8 - "Wu ", // 0xa9 - "Yu ", // 0xaa - "Gui ", // 0xab - "Du ", // 0xac - "Ba ", // 0xad - "Ni ", // 0xae - "Zhou ", // 0xaf - "Zhuo ", // 0xb0 - "Zhao ", // 0xb1 - "Da ", // 0xb2 - "Nai ", // 0xb3 - "Yuan ", // 0xb4 - "Tou ", // 0xb5 - "Xuan ", // 0xb6 - "Zhi ", // 0xb7 - "E ", // 0xb8 - "Mei ", // 0xb9 - "Mo ", // 0xba - "Qi ", // 0xbb - "Bi ", // 0xbc - "Shen ", // 0xbd - "Qie ", // 0xbe - "E ", // 0xbf - "He ", // 0xc0 - "Xu ", // 0xc1 - "Fa ", // 0xc2 - "Zheng ", // 0xc3 - "Min ", // 0xc4 - "Ban ", // 0xc5 - "Mu ", // 0xc6 - "Fu ", // 0xc7 - "Ling ", // 0xc8 - "Zi ", // 0xc9 - "Zi ", // 0xca - "Shi ", // 0xcb - "Ran ", // 0xcc - "Shan ", // 0xcd - "Yang ", // 0xce - "Man ", // 0xcf - "Jie ", // 0xd0 - "Gu ", // 0xd1 - "Si ", // 0xd2 - "Xing ", // 0xd3 - "Wei ", // 0xd4 - "Zi ", // 0xd5 - "Ju ", // 0xd6 - "Shan ", // 0xd7 - "Pin ", // 0xd8 - "Ren ", // 0xd9 - "Yao ", // 0xda - "Tong ", // 0xdb - "Jiang ", // 0xdc - "Shu ", // 0xdd - "Ji ", // 0xde - "Gai ", // 0xdf - "Shang ", // 0xe0 - "Kuo ", // 0xe1 - "Juan ", // 0xe2 - "Jiao ", // 0xe3 - "Gou ", // 0xe4 - "Mu ", // 0xe5 - "Jian ", // 0xe6 - "Jian ", // 0xe7 - "Yi ", // 0xe8 - "Nian ", // 0xe9 - "Zhi ", // 0xea - "Ji ", // 0xeb - "Ji ", // 0xec - "Xian ", // 0xed - "Heng ", // 0xee - "Guang ", // 0xef - "Jun ", // 0xf0 - "Kua ", // 0xf1 - "Yan ", // 0xf2 - "Ming ", // 0xf3 - "Lie ", // 0xf4 - "Pei ", // 0xf5 - "Yan ", // 0xf6 - "You ", // 0xf7 - "Yan ", // 0xf8 - "Cha ", // 0xf9 - "Shen ", // 0xfa - "Yin ", // 0xfb - "Chi ", // 0xfc - "Gui ", // 0xfd - "Quan ", // 0xfe - "Zi ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x05a.go b/vendor/github.com/mozillazg/go-unidecode/table/x05a.go deleted file mode 100644 index 306ae77..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x05a.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x05a = []string{ - "Song ", // 0x00 - "Wei ", // 0x01 - "Hong ", // 0x02 - "Wa ", // 0x03 - "Lou ", // 0x04 - "Ya ", // 0x05 - "Rao ", // 0x06 - "Jiao ", // 0x07 - "Luan ", // 0x08 - "Ping ", // 0x09 - "Xian ", // 0x0a - "Shao ", // 0x0b - "Li ", // 0x0c - "Cheng ", // 0x0d - "Xiao ", // 0x0e - "Mang ", // 0x0f - "Fu ", // 0x10 - "Suo ", // 0x11 - "Wu ", // 0x12 - "Wei ", // 0x13 - "Ke ", // 0x14 - "Lai ", // 0x15 - "Chuo ", // 0x16 - "Ding ", // 0x17 - "Niang ", // 0x18 - "Xing ", // 0x19 - "Nan ", // 0x1a - "Yu ", // 0x1b - "Nuo ", // 0x1c - "Pei ", // 0x1d - "Nei ", // 0x1e - "Juan ", // 0x1f - "Shen ", // 0x20 - "Zhi ", // 0x21 - "Han ", // 0x22 - "Di ", // 0x23 - "Zhuang ", // 0x24 - "E ", // 0x25 - "Pin ", // 0x26 - "Tui ", // 0x27 - "Han ", // 0x28 - "Mian ", // 0x29 - "Wu ", // 0x2a - "Yan ", // 0x2b - "Wu ", // 0x2c - "Xi ", // 0x2d - "Yan ", // 0x2e - "Yu ", // 0x2f - "Si ", // 0x30 - "Yu ", // 0x31 - "Wa ", // 0x32 - "[?] ", // 0x33 - "Xian ", // 0x34 - "Ju ", // 0x35 - "Qu ", // 0x36 - "Shui ", // 0x37 - "Qi ", // 0x38 - "Xian ", // 0x39 - "Zhui ", // 0x3a - "Dong ", // 0x3b - "Chang ", // 0x3c - "Lu ", // 0x3d - "Ai ", // 0x3e - "E ", // 0x3f - "E ", // 0x40 - "Lou ", // 0x41 - "Mian ", // 0x42 - "Cong ", // 0x43 - "Pou ", // 0x44 - "Ju ", // 0x45 - "Po ", // 0x46 - "Cai ", // 0x47 - "Ding ", // 0x48 - "Wan ", // 0x49 - "Biao ", // 0x4a - "Xiao ", // 0x4b - "Shu ", // 0x4c - "Qi ", // 0x4d - "Hui ", // 0x4e - "Fu ", // 0x4f - "E ", // 0x50 - "Wo ", // 0x51 - "Tan ", // 0x52 - "Fei ", // 0x53 - "Wei ", // 0x54 - "Jie ", // 0x55 - "Tian ", // 0x56 - "Ni ", // 0x57 - "Quan ", // 0x58 - "Jing ", // 0x59 - "Hun ", // 0x5a - "Jing ", // 0x5b - "Qian ", // 0x5c - "Dian ", // 0x5d - "Xing ", // 0x5e - "Hu ", // 0x5f - "Wa ", // 0x60 - "Lai ", // 0x61 - "Bi ", // 0x62 - "Yin ", // 0x63 - "Chou ", // 0x64 - "Chuo ", // 0x65 - "Fu ", // 0x66 - "Jing ", // 0x67 - "Lun ", // 0x68 - "Yan ", // 0x69 - "Lan ", // 0x6a - "Kun ", // 0x6b - "Yin ", // 0x6c - "Ya ", // 0x6d - "Ju ", // 0x6e - "Li ", // 0x6f - "Dian ", // 0x70 - "Xian ", // 0x71 - "Hwa ", // 0x72 - "Hua ", // 0x73 - "Ying ", // 0x74 - "Chan ", // 0x75 - "Shen ", // 0x76 - "Ting ", // 0x77 - "Dang ", // 0x78 - "Yao ", // 0x79 - "Wu ", // 0x7a - "Nan ", // 0x7b - "Ruo ", // 0x7c - "Jia ", // 0x7d - "Tou ", // 0x7e - "Xu ", // 0x7f - "Yu ", // 0x80 - "Wei ", // 0x81 - "Ti ", // 0x82 - "Rou ", // 0x83 - "Mei ", // 0x84 - "Dan ", // 0x85 - "Ruan ", // 0x86 - "Qin ", // 0x87 - "Hui ", // 0x88 - "Wu ", // 0x89 - "Qian ", // 0x8a - "Chun ", // 0x8b - "Mao ", // 0x8c - "Fu ", // 0x8d - "Jie ", // 0x8e - "Duan ", // 0x8f - "Xi ", // 0x90 - "Zhong ", // 0x91 - "Mei ", // 0x92 - "Huang ", // 0x93 - "Mian ", // 0x94 - "An ", // 0x95 - "Ying ", // 0x96 - "Xuan ", // 0x97 - "Jie ", // 0x98 - "Wei ", // 0x99 - "Mei ", // 0x9a - "Yuan ", // 0x9b - "Zhen ", // 0x9c - "Qiu ", // 0x9d - "Ti ", // 0x9e - "Xie ", // 0x9f - "Tuo ", // 0xa0 - "Lian ", // 0xa1 - "Mao ", // 0xa2 - "Ran ", // 0xa3 - "Si ", // 0xa4 - "Pian ", // 0xa5 - "Wei ", // 0xa6 - "Wa ", // 0xa7 - "Jiu ", // 0xa8 - "Hu ", // 0xa9 - "Ao ", // 0xaa - "[?] ", // 0xab - "Bou ", // 0xac - "Xu ", // 0xad - "Tou ", // 0xae - "Gui ", // 0xaf - "Zou ", // 0xb0 - "Yao ", // 0xb1 - "Pi ", // 0xb2 - "Xi ", // 0xb3 - "Yuan ", // 0xb4 - "Ying ", // 0xb5 - "Rong ", // 0xb6 - "Ru ", // 0xb7 - "Chi ", // 0xb8 - "Liu ", // 0xb9 - "Mei ", // 0xba - "Pan ", // 0xbb - "Ao ", // 0xbc - "Ma ", // 0xbd - "Gou ", // 0xbe - "Kui ", // 0xbf - "Qin ", // 0xc0 - "Jia ", // 0xc1 - "Sao ", // 0xc2 - "Zhen ", // 0xc3 - "Yuan ", // 0xc4 - "Cha ", // 0xc5 - "Yong ", // 0xc6 - "Ming ", // 0xc7 - "Ying ", // 0xc8 - "Ji ", // 0xc9 - "Su ", // 0xca - "Niao ", // 0xcb - "Xian ", // 0xcc - "Tao ", // 0xcd - "Pang ", // 0xce - "Lang ", // 0xcf - "Nao ", // 0xd0 - "Bao ", // 0xd1 - "Ai ", // 0xd2 - "Pi ", // 0xd3 - "Pin ", // 0xd4 - "Yi ", // 0xd5 - "Piao ", // 0xd6 - "Yu ", // 0xd7 - "Lei ", // 0xd8 - "Xuan ", // 0xd9 - "Man ", // 0xda - "Yi ", // 0xdb - "Zhang ", // 0xdc - "Kang ", // 0xdd - "Yong ", // 0xde - "Ni ", // 0xdf - "Li ", // 0xe0 - "Di ", // 0xe1 - "Gui ", // 0xe2 - "Yan ", // 0xe3 - "Jin ", // 0xe4 - "Zhuan ", // 0xe5 - "Chang ", // 0xe6 - "Ce ", // 0xe7 - "Han ", // 0xe8 - "Nen ", // 0xe9 - "Lao ", // 0xea - "Mo ", // 0xeb - "Zhe ", // 0xec - "Hu ", // 0xed - "Hu ", // 0xee - "Ao ", // 0xef - "Nen ", // 0xf0 - "Qiang ", // 0xf1 - "Ma ", // 0xf2 - "Pie ", // 0xf3 - "Gu ", // 0xf4 - "Wu ", // 0xf5 - "Jiao ", // 0xf6 - "Tuo ", // 0xf7 - "Zhan ", // 0xf8 - "Mao ", // 0xf9 - "Xian ", // 0xfa - "Xian ", // 0xfb - "Mo ", // 0xfc - "Liao ", // 0xfd - "Lian ", // 0xfe - "Hua ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x05b.go b/vendor/github.com/mozillazg/go-unidecode/table/x05b.go deleted file mode 100644 index 9157364..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x05b.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x05b = []string{ - "Gui ", // 0x00 - "Deng ", // 0x01 - "Zhi ", // 0x02 - "Xu ", // 0x03 - "Yi ", // 0x04 - "Hua ", // 0x05 - "Xi ", // 0x06 - "Hui ", // 0x07 - "Rao ", // 0x08 - "Xi ", // 0x09 - "Yan ", // 0x0a - "Chan ", // 0x0b - "Jiao ", // 0x0c - "Mei ", // 0x0d - "Fan ", // 0x0e - "Fan ", // 0x0f - "Xian ", // 0x10 - "Yi ", // 0x11 - "Wei ", // 0x12 - "Jiao ", // 0x13 - "Fu ", // 0x14 - "Shi ", // 0x15 - "Bi ", // 0x16 - "Shan ", // 0x17 - "Sui ", // 0x18 - "Qiang ", // 0x19 - "Lian ", // 0x1a - "Huan ", // 0x1b - "Xin ", // 0x1c - "Niao ", // 0x1d - "Dong ", // 0x1e - "Yi ", // 0x1f - "Can ", // 0x20 - "Ai ", // 0x21 - "Niang ", // 0x22 - "Neng ", // 0x23 - "Ma ", // 0x24 - "Tiao ", // 0x25 - "Chou ", // 0x26 - "Jin ", // 0x27 - "Ci ", // 0x28 - "Yu ", // 0x29 - "Pin ", // 0x2a - "Yong ", // 0x2b - "Xu ", // 0x2c - "Nai ", // 0x2d - "Yan ", // 0x2e - "Tai ", // 0x2f - "Ying ", // 0x30 - "Can ", // 0x31 - "Niao ", // 0x32 - "Wo ", // 0x33 - "Ying ", // 0x34 - "Mian ", // 0x35 - "Kaka ", // 0x36 - "Ma ", // 0x37 - "Shen ", // 0x38 - "Xing ", // 0x39 - "Ni ", // 0x3a - "Du ", // 0x3b - "Liu ", // 0x3c - "Yuan ", // 0x3d - "Lan ", // 0x3e - "Yan ", // 0x3f - "Shuang ", // 0x40 - "Ling ", // 0x41 - "Jiao ", // 0x42 - "Niang ", // 0x43 - "Lan ", // 0x44 - "Xian ", // 0x45 - "Ying ", // 0x46 - "Shuang ", // 0x47 - "Shuai ", // 0x48 - "Quan ", // 0x49 - "Mi ", // 0x4a - "Li ", // 0x4b - "Luan ", // 0x4c - "Yan ", // 0x4d - "Zhu ", // 0x4e - "Lan ", // 0x4f - "Zi ", // 0x50 - "Jie ", // 0x51 - "Jue ", // 0x52 - "Jue ", // 0x53 - "Kong ", // 0x54 - "Yun ", // 0x55 - "Zi ", // 0x56 - "Zi ", // 0x57 - "Cun ", // 0x58 - "Sun ", // 0x59 - "Fu ", // 0x5a - "Bei ", // 0x5b - "Zi ", // 0x5c - "Xiao ", // 0x5d - "Xin ", // 0x5e - "Meng ", // 0x5f - "Si ", // 0x60 - "Tai ", // 0x61 - "Bao ", // 0x62 - "Ji ", // 0x63 - "Gu ", // 0x64 - "Nu ", // 0x65 - "Xue ", // 0x66 - "[?] ", // 0x67 - "Zhuan ", // 0x68 - "Hai ", // 0x69 - "Luan ", // 0x6a - "Sun ", // 0x6b - "Huai ", // 0x6c - "Mie ", // 0x6d - "Cong ", // 0x6e - "Qian ", // 0x6f - "Shu ", // 0x70 - "Chan ", // 0x71 - "Ya ", // 0x72 - "Zi ", // 0x73 - "Ni ", // 0x74 - "Fu ", // 0x75 - "Zi ", // 0x76 - "Li ", // 0x77 - "Xue ", // 0x78 - "Bo ", // 0x79 - "Ru ", // 0x7a - "Lai ", // 0x7b - "Nie ", // 0x7c - "Nie ", // 0x7d - "Ying ", // 0x7e - "Luan ", // 0x7f - "Mian ", // 0x80 - "Zhu ", // 0x81 - "Rong ", // 0x82 - "Ta ", // 0x83 - "Gui ", // 0x84 - "Zhai ", // 0x85 - "Qiong ", // 0x86 - "Yu ", // 0x87 - "Shou ", // 0x88 - "An ", // 0x89 - "Tu ", // 0x8a - "Song ", // 0x8b - "Wan ", // 0x8c - "Rou ", // 0x8d - "Yao ", // 0x8e - "Hong ", // 0x8f - "Yi ", // 0x90 - "Jing ", // 0x91 - "Zhun ", // 0x92 - "Mi ", // 0x93 - "Zhu ", // 0x94 - "Dang ", // 0x95 - "Hong ", // 0x96 - "Zong ", // 0x97 - "Guan ", // 0x98 - "Zhou ", // 0x99 - "Ding ", // 0x9a - "Wan ", // 0x9b - "Yi ", // 0x9c - "Bao ", // 0x9d - "Shi ", // 0x9e - "Shi ", // 0x9f - "Chong ", // 0xa0 - "Shen ", // 0xa1 - "Ke ", // 0xa2 - "Xuan ", // 0xa3 - "Shi ", // 0xa4 - "You ", // 0xa5 - "Huan ", // 0xa6 - "Yi ", // 0xa7 - "Tiao ", // 0xa8 - "Shi ", // 0xa9 - "Xian ", // 0xaa - "Gong ", // 0xab - "Cheng ", // 0xac - "Qun ", // 0xad - "Gong ", // 0xae - "Xiao ", // 0xaf - "Zai ", // 0xb0 - "Zha ", // 0xb1 - "Bao ", // 0xb2 - "Hai ", // 0xb3 - "Yan ", // 0xb4 - "Xiao ", // 0xb5 - "Jia ", // 0xb6 - "Shen ", // 0xb7 - "Chen ", // 0xb8 - "Rong ", // 0xb9 - "Huang ", // 0xba - "Mi ", // 0xbb - "Kou ", // 0xbc - "Kuan ", // 0xbd - "Bin ", // 0xbe - "Su ", // 0xbf - "Cai ", // 0xc0 - "Zan ", // 0xc1 - "Ji ", // 0xc2 - "Yuan ", // 0xc3 - "Ji ", // 0xc4 - "Yin ", // 0xc5 - "Mi ", // 0xc6 - "Kou ", // 0xc7 - "Qing ", // 0xc8 - "Que ", // 0xc9 - "Zhen ", // 0xca - "Jian ", // 0xcb - "Fu ", // 0xcc - "Ning ", // 0xcd - "Bing ", // 0xce - "Huan ", // 0xcf - "Mei ", // 0xd0 - "Qin ", // 0xd1 - "Han ", // 0xd2 - "Yu ", // 0xd3 - "Shi ", // 0xd4 - "Ning ", // 0xd5 - "Qin ", // 0xd6 - "Ning ", // 0xd7 - "Zhi ", // 0xd8 - "Yu ", // 0xd9 - "Bao ", // 0xda - "Kuan ", // 0xdb - "Ning ", // 0xdc - "Qin ", // 0xdd - "Mo ", // 0xde - "Cha ", // 0xdf - "Ju ", // 0xe0 - "Gua ", // 0xe1 - "Qin ", // 0xe2 - "Hu ", // 0xe3 - "Wu ", // 0xe4 - "Liao ", // 0xe5 - "Shi ", // 0xe6 - "Zhu ", // 0xe7 - "Zhai ", // 0xe8 - "Shen ", // 0xe9 - "Wei ", // 0xea - "Xie ", // 0xeb - "Kuan ", // 0xec - "Hui ", // 0xed - "Liao ", // 0xee - "Jun ", // 0xef - "Huan ", // 0xf0 - "Yi ", // 0xf1 - "Yi ", // 0xf2 - "Bao ", // 0xf3 - "Qin ", // 0xf4 - "Chong ", // 0xf5 - "Bao ", // 0xf6 - "Feng ", // 0xf7 - "Cun ", // 0xf8 - "Dui ", // 0xf9 - "Si ", // 0xfa - "Xun ", // 0xfb - "Dao ", // 0xfc - "Lu ", // 0xfd - "Dui ", // 0xfe - "Shou ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x05c.go b/vendor/github.com/mozillazg/go-unidecode/table/x05c.go deleted file mode 100644 index 647f11e..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x05c.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x05c = []string{ - "Po ", // 0x00 - "Feng ", // 0x01 - "Zhuan ", // 0x02 - "Fu ", // 0x03 - "She ", // 0x04 - "Ke ", // 0x05 - "Jiang ", // 0x06 - "Jiang ", // 0x07 - "Zhuan ", // 0x08 - "Wei ", // 0x09 - "Zun ", // 0x0a - "Xun ", // 0x0b - "Shu ", // 0x0c - "Dui ", // 0x0d - "Dao ", // 0x0e - "Xiao ", // 0x0f - "Ji ", // 0x10 - "Shao ", // 0x11 - "Er ", // 0x12 - "Er ", // 0x13 - "Er ", // 0x14 - "Ga ", // 0x15 - "Jian ", // 0x16 - "Shu ", // 0x17 - "Chen ", // 0x18 - "Shang ", // 0x19 - "Shang ", // 0x1a - "Mo ", // 0x1b - "Ga ", // 0x1c - "Chang ", // 0x1d - "Liao ", // 0x1e - "Xian ", // 0x1f - "Xian ", // 0x20 - "[?] ", // 0x21 - "Wang ", // 0x22 - "Wang ", // 0x23 - "You ", // 0x24 - "Liao ", // 0x25 - "Liao ", // 0x26 - "Yao ", // 0x27 - "Mang ", // 0x28 - "Wang ", // 0x29 - "Wang ", // 0x2a - "Wang ", // 0x2b - "Ga ", // 0x2c - "Yao ", // 0x2d - "Duo ", // 0x2e - "Kui ", // 0x2f - "Zhong ", // 0x30 - "Jiu ", // 0x31 - "Gan ", // 0x32 - "Gu ", // 0x33 - "Gan ", // 0x34 - "Tui ", // 0x35 - "Gan ", // 0x36 - "Gan ", // 0x37 - "Shi ", // 0x38 - "Yin ", // 0x39 - "Chi ", // 0x3a - "Kao ", // 0x3b - "Ni ", // 0x3c - "Jin ", // 0x3d - "Wei ", // 0x3e - "Niao ", // 0x3f - "Ju ", // 0x40 - "Pi ", // 0x41 - "Ceng ", // 0x42 - "Xi ", // 0x43 - "Bi ", // 0x44 - "Ju ", // 0x45 - "Jie ", // 0x46 - "Tian ", // 0x47 - "Qu ", // 0x48 - "Ti ", // 0x49 - "Jie ", // 0x4a - "Wu ", // 0x4b - "Diao ", // 0x4c - "Shi ", // 0x4d - "Shi ", // 0x4e - "Ping ", // 0x4f - "Ji ", // 0x50 - "Xie ", // 0x51 - "Chen ", // 0x52 - "Xi ", // 0x53 - "Ni ", // 0x54 - "Zhan ", // 0x55 - "Xi ", // 0x56 - "[?] ", // 0x57 - "Man ", // 0x58 - "E ", // 0x59 - "Lou ", // 0x5a - "Ping ", // 0x5b - "Ti ", // 0x5c - "Fei ", // 0x5d - "Shu ", // 0x5e - "Xie ", // 0x5f - "Tu ", // 0x60 - "Lu ", // 0x61 - "Lu ", // 0x62 - "Xi ", // 0x63 - "Ceng ", // 0x64 - "Lu ", // 0x65 - "Ju ", // 0x66 - "Xie ", // 0x67 - "Ju ", // 0x68 - "Jue ", // 0x69 - "Liao ", // 0x6a - "Jue ", // 0x6b - "Shu ", // 0x6c - "Xi ", // 0x6d - "Che ", // 0x6e - "Tun ", // 0x6f - "Ni ", // 0x70 - "Shan ", // 0x71 - "[?] ", // 0x72 - "Xian ", // 0x73 - "Li ", // 0x74 - "Xue ", // 0x75 - "Nata ", // 0x76 - "[?] ", // 0x77 - "Long ", // 0x78 - "Yi ", // 0x79 - "Qi ", // 0x7a - "Ren ", // 0x7b - "Wu ", // 0x7c - "Han ", // 0x7d - "Shen ", // 0x7e - "Yu ", // 0x7f - "Chu ", // 0x80 - "Sui ", // 0x81 - "Qi ", // 0x82 - "[?] ", // 0x83 - "Yue ", // 0x84 - "Ban ", // 0x85 - "Yao ", // 0x86 - "Ang ", // 0x87 - "Ya ", // 0x88 - "Wu ", // 0x89 - "Jie ", // 0x8a - "E ", // 0x8b - "Ji ", // 0x8c - "Qian ", // 0x8d - "Fen ", // 0x8e - "Yuan ", // 0x8f - "Qi ", // 0x90 - "Cen ", // 0x91 - "Qian ", // 0x92 - "Qi ", // 0x93 - "Cha ", // 0x94 - "Jie ", // 0x95 - "Qu ", // 0x96 - "Gang ", // 0x97 - "Xian ", // 0x98 - "Ao ", // 0x99 - "Lan ", // 0x9a - "Dao ", // 0x9b - "Ba ", // 0x9c - "Zuo ", // 0x9d - "Zuo ", // 0x9e - "Yang ", // 0x9f - "Ju ", // 0xa0 - "Gang ", // 0xa1 - "Ke ", // 0xa2 - "Gou ", // 0xa3 - "Xue ", // 0xa4 - "Bei ", // 0xa5 - "Li ", // 0xa6 - "Tiao ", // 0xa7 - "Ju ", // 0xa8 - "Yan ", // 0xa9 - "Fu ", // 0xaa - "Xiu ", // 0xab - "Jia ", // 0xac - "Ling ", // 0xad - "Tuo ", // 0xae - "Pei ", // 0xaf - "You ", // 0xb0 - "Dai ", // 0xb1 - "Kuang ", // 0xb2 - "Yue ", // 0xb3 - "Qu ", // 0xb4 - "Hu ", // 0xb5 - "Po ", // 0xb6 - "Min ", // 0xb7 - "An ", // 0xb8 - "Tiao ", // 0xb9 - "Ling ", // 0xba - "Chi ", // 0xbb - "Yuri ", // 0xbc - "Dong ", // 0xbd - "Cem ", // 0xbe - "Kui ", // 0xbf - "Xiu ", // 0xc0 - "Mao ", // 0xc1 - "Tong ", // 0xc2 - "Xue ", // 0xc3 - "Yi ", // 0xc4 - "Kura ", // 0xc5 - "He ", // 0xc6 - "Ke ", // 0xc7 - "Luo ", // 0xc8 - "E ", // 0xc9 - "Fu ", // 0xca - "Xun ", // 0xcb - "Die ", // 0xcc - "Lu ", // 0xcd - "An ", // 0xce - "Er ", // 0xcf - "Gai ", // 0xd0 - "Quan ", // 0xd1 - "Tong ", // 0xd2 - "Yi ", // 0xd3 - "Mu ", // 0xd4 - "Shi ", // 0xd5 - "An ", // 0xd6 - "Wei ", // 0xd7 - "Hu ", // 0xd8 - "Zhi ", // 0xd9 - "Mi ", // 0xda - "Li ", // 0xdb - "Ji ", // 0xdc - "Tong ", // 0xdd - "Wei ", // 0xde - "You ", // 0xdf - "Sang ", // 0xe0 - "Xia ", // 0xe1 - "Li ", // 0xe2 - "Yao ", // 0xe3 - "Jiao ", // 0xe4 - "Zheng ", // 0xe5 - "Luan ", // 0xe6 - "Jiao ", // 0xe7 - "E ", // 0xe8 - "E ", // 0xe9 - "Yu ", // 0xea - "Ye ", // 0xeb - "Bu ", // 0xec - "Qiao ", // 0xed - "Qun ", // 0xee - "Feng ", // 0xef - "Feng ", // 0xf0 - "Nao ", // 0xf1 - "Li ", // 0xf2 - "You ", // 0xf3 - "Xian ", // 0xf4 - "Hong ", // 0xf5 - "Dao ", // 0xf6 - "Shen ", // 0xf7 - "Cheng ", // 0xf8 - "Tu ", // 0xf9 - "Geng ", // 0xfa - "Jun ", // 0xfb - "Hao ", // 0xfc - "Xia ", // 0xfd - "Yin ", // 0xfe - "Yu ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x05d.go b/vendor/github.com/mozillazg/go-unidecode/table/x05d.go deleted file mode 100644 index 546eaf3..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x05d.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x05d = []string{ - "Lang ", // 0x00 - "Kan ", // 0x01 - "Lao ", // 0x02 - "Lai ", // 0x03 - "Xian ", // 0x04 - "Que ", // 0x05 - "Kong ", // 0x06 - "Chong ", // 0x07 - "Chong ", // 0x08 - "Ta ", // 0x09 - "Lin ", // 0x0a - "Hua ", // 0x0b - "Ju ", // 0x0c - "Lai ", // 0x0d - "Qi ", // 0x0e - "Min ", // 0x0f - "Kun ", // 0x10 - "Kun ", // 0x11 - "Zu ", // 0x12 - "Gu ", // 0x13 - "Cui ", // 0x14 - "Ya ", // 0x15 - "Ya ", // 0x16 - "Gang ", // 0x17 - "Lun ", // 0x18 - "Lun ", // 0x19 - "Leng ", // 0x1a - "Jue ", // 0x1b - "Duo ", // 0x1c - "Zheng ", // 0x1d - "Guo ", // 0x1e - "Yin ", // 0x1f - "Dong ", // 0x20 - "Han ", // 0x21 - "Zheng ", // 0x22 - "Wei ", // 0x23 - "Yao ", // 0x24 - "Pi ", // 0x25 - "Yan ", // 0x26 - "Song ", // 0x27 - "Jie ", // 0x28 - "Beng ", // 0x29 - "Zu ", // 0x2a - "Jue ", // 0x2b - "Dong ", // 0x2c - "Zhan ", // 0x2d - "Gu ", // 0x2e - "Yin ", // 0x2f - "[?] ", // 0x30 - "Ze ", // 0x31 - "Huang ", // 0x32 - "Yu ", // 0x33 - "Wei ", // 0x34 - "Yang ", // 0x35 - "Feng ", // 0x36 - "Qiu ", // 0x37 - "Dun ", // 0x38 - "Ti ", // 0x39 - "Yi ", // 0x3a - "Zhi ", // 0x3b - "Shi ", // 0x3c - "Zai ", // 0x3d - "Yao ", // 0x3e - "E ", // 0x3f - "Zhu ", // 0x40 - "Kan ", // 0x41 - "Lu ", // 0x42 - "Yan ", // 0x43 - "Mei ", // 0x44 - "Gan ", // 0x45 - "Ji ", // 0x46 - "Ji ", // 0x47 - "Huan ", // 0x48 - "Ting ", // 0x49 - "Sheng ", // 0x4a - "Mei ", // 0x4b - "Qian ", // 0x4c - "Wu ", // 0x4d - "Yu ", // 0x4e - "Zong ", // 0x4f - "Lan ", // 0x50 - "Jue ", // 0x51 - "Yan ", // 0x52 - "Yan ", // 0x53 - "Wei ", // 0x54 - "Zong ", // 0x55 - "Cha ", // 0x56 - "Sui ", // 0x57 - "Rong ", // 0x58 - "Yamashina ", // 0x59 - "Qin ", // 0x5a - "Yu ", // 0x5b - "Kewashii ", // 0x5c - "Lou ", // 0x5d - "Tu ", // 0x5e - "Dui ", // 0x5f - "Xi ", // 0x60 - "Weng ", // 0x61 - "Cang ", // 0x62 - "Dang ", // 0x63 - "Hong ", // 0x64 - "Jie ", // 0x65 - "Ai ", // 0x66 - "Liu ", // 0x67 - "Wu ", // 0x68 - "Song ", // 0x69 - "Qiao ", // 0x6a - "Zi ", // 0x6b - "Wei ", // 0x6c - "Beng ", // 0x6d - "Dian ", // 0x6e - "Cuo ", // 0x6f - "Qian ", // 0x70 - "Yong ", // 0x71 - "Nie ", // 0x72 - "Cuo ", // 0x73 - "Ji ", // 0x74 - "[?] ", // 0x75 - "Tao ", // 0x76 - "Song ", // 0x77 - "Zong ", // 0x78 - "Jiang ", // 0x79 - "Liao ", // 0x7a - "Kang ", // 0x7b - "Chan ", // 0x7c - "Die ", // 0x7d - "Cen ", // 0x7e - "Ding ", // 0x7f - "Tu ", // 0x80 - "Lou ", // 0x81 - "Zhang ", // 0x82 - "Zhan ", // 0x83 - "Zhan ", // 0x84 - "Ao ", // 0x85 - "Cao ", // 0x86 - "Qu ", // 0x87 - "Qiang ", // 0x88 - "Zui ", // 0x89 - "Zui ", // 0x8a - "Dao ", // 0x8b - "Dao ", // 0x8c - "Xi ", // 0x8d - "Yu ", // 0x8e - "Bo ", // 0x8f - "Long ", // 0x90 - "Xiang ", // 0x91 - "Ceng ", // 0x92 - "Bo ", // 0x93 - "Qin ", // 0x94 - "Jiao ", // 0x95 - "Yan ", // 0x96 - "Lao ", // 0x97 - "Zhan ", // 0x98 - "Lin ", // 0x99 - "Liao ", // 0x9a - "Liao ", // 0x9b - "Jin ", // 0x9c - "Deng ", // 0x9d - "Duo ", // 0x9e - "Zun ", // 0x9f - "Jiao ", // 0xa0 - "Gui ", // 0xa1 - "Yao ", // 0xa2 - "Qiao ", // 0xa3 - "Yao ", // 0xa4 - "Jue ", // 0xa5 - "Zhan ", // 0xa6 - "Yi ", // 0xa7 - "Xue ", // 0xa8 - "Nao ", // 0xa9 - "Ye ", // 0xaa - "Ye ", // 0xab - "Yi ", // 0xac - "E ", // 0xad - "Xian ", // 0xae - "Ji ", // 0xaf - "Xie ", // 0xb0 - "Ke ", // 0xb1 - "Xi ", // 0xb2 - "Di ", // 0xb3 - "Ao ", // 0xb4 - "Zui ", // 0xb5 - "[?] ", // 0xb6 - "Ni ", // 0xb7 - "Rong ", // 0xb8 - "Dao ", // 0xb9 - "Ling ", // 0xba - "Za ", // 0xbb - "Yu ", // 0xbc - "Yue ", // 0xbd - "Yin ", // 0xbe - "[?] ", // 0xbf - "Jie ", // 0xc0 - "Li ", // 0xc1 - "Sui ", // 0xc2 - "Long ", // 0xc3 - "Long ", // 0xc4 - "Dian ", // 0xc5 - "Ying ", // 0xc6 - "Xi ", // 0xc7 - "Ju ", // 0xc8 - "Chan ", // 0xc9 - "Ying ", // 0xca - "Kui ", // 0xcb - "Yan ", // 0xcc - "Wei ", // 0xcd - "Nao ", // 0xce - "Quan ", // 0xcf - "Chao ", // 0xd0 - "Cuan ", // 0xd1 - "Luan ", // 0xd2 - "Dian ", // 0xd3 - "Dian ", // 0xd4 - "[?] ", // 0xd5 - "Yan ", // 0xd6 - "Yan ", // 0xd7 - "Yan ", // 0xd8 - "Nao ", // 0xd9 - "Yan ", // 0xda - "Chuan ", // 0xdb - "Gui ", // 0xdc - "Chuan ", // 0xdd - "Zhou ", // 0xde - "Huang ", // 0xdf - "Jing ", // 0xe0 - "Xun ", // 0xe1 - "Chao ", // 0xe2 - "Chao ", // 0xe3 - "Lie ", // 0xe4 - "Gong ", // 0xe5 - "Zuo ", // 0xe6 - "Qiao ", // 0xe7 - "Ju ", // 0xe8 - "Gong ", // 0xe9 - "Kek ", // 0xea - "Wu ", // 0xeb - "Pwu ", // 0xec - "Pwu ", // 0xed - "Chai ", // 0xee - "Qiu ", // 0xef - "Qiu ", // 0xf0 - "Ji ", // 0xf1 - "Yi ", // 0xf2 - "Si ", // 0xf3 - "Ba ", // 0xf4 - "Zhi ", // 0xf5 - "Zhao ", // 0xf6 - "Xiang ", // 0xf7 - "Yi ", // 0xf8 - "Jin ", // 0xf9 - "Xun ", // 0xfa - "Juan ", // 0xfb - "Phas ", // 0xfc - "Xun ", // 0xfd - "Jin ", // 0xfe - "Fu ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x05e.go b/vendor/github.com/mozillazg/go-unidecode/table/x05e.go deleted file mode 100644 index 9964d0f..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x05e.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x05e = []string{ - "Za ", // 0x00 - "Bi ", // 0x01 - "Shi ", // 0x02 - "Bu ", // 0x03 - "Ding ", // 0x04 - "Shuai ", // 0x05 - "Fan ", // 0x06 - "Nie ", // 0x07 - "Shi ", // 0x08 - "Fen ", // 0x09 - "Pa ", // 0x0a - "Zhi ", // 0x0b - "Xi ", // 0x0c - "Hu ", // 0x0d - "Dan ", // 0x0e - "Wei ", // 0x0f - "Zhang ", // 0x10 - "Tang ", // 0x11 - "Dai ", // 0x12 - "Ma ", // 0x13 - "Pei ", // 0x14 - "Pa ", // 0x15 - "Tie ", // 0x16 - "Fu ", // 0x17 - "Lian ", // 0x18 - "Zhi ", // 0x19 - "Zhou ", // 0x1a - "Bo ", // 0x1b - "Zhi ", // 0x1c - "Di ", // 0x1d - "Mo ", // 0x1e - "Yi ", // 0x1f - "Yi ", // 0x20 - "Ping ", // 0x21 - "Qia ", // 0x22 - "Juan ", // 0x23 - "Ru ", // 0x24 - "Shuai ", // 0x25 - "Dai ", // 0x26 - "Zheng ", // 0x27 - "Shui ", // 0x28 - "Qiao ", // 0x29 - "Zhen ", // 0x2a - "Shi ", // 0x2b - "Qun ", // 0x2c - "Xi ", // 0x2d - "Bang ", // 0x2e - "Dai ", // 0x2f - "Gui ", // 0x30 - "Chou ", // 0x31 - "Ping ", // 0x32 - "Zhang ", // 0x33 - "Sha ", // 0x34 - "Wan ", // 0x35 - "Dai ", // 0x36 - "Wei ", // 0x37 - "Chang ", // 0x38 - "Sha ", // 0x39 - "Qi ", // 0x3a - "Ze ", // 0x3b - "Guo ", // 0x3c - "Mao ", // 0x3d - "Du ", // 0x3e - "Hou ", // 0x3f - "Zheng ", // 0x40 - "Xu ", // 0x41 - "Mi ", // 0x42 - "Wei ", // 0x43 - "Wo ", // 0x44 - "Fu ", // 0x45 - "Yi ", // 0x46 - "Bang ", // 0x47 - "Ping ", // 0x48 - "Tazuna ", // 0x49 - "Gong ", // 0x4a - "Pan ", // 0x4b - "Huang ", // 0x4c - "Dao ", // 0x4d - "Mi ", // 0x4e - "Jia ", // 0x4f - "Teng ", // 0x50 - "Hui ", // 0x51 - "Zhong ", // 0x52 - "Shan ", // 0x53 - "Man ", // 0x54 - "Mu ", // 0x55 - "Biao ", // 0x56 - "Guo ", // 0x57 - "Ze ", // 0x58 - "Mu ", // 0x59 - "Bang ", // 0x5a - "Zhang ", // 0x5b - "Jiong ", // 0x5c - "Chan ", // 0x5d - "Fu ", // 0x5e - "Zhi ", // 0x5f - "Hu ", // 0x60 - "Fan ", // 0x61 - "Chuang ", // 0x62 - "Bi ", // 0x63 - "Hei ", // 0x64 - "[?] ", // 0x65 - "Mi ", // 0x66 - "Qiao ", // 0x67 - "Chan ", // 0x68 - "Fen ", // 0x69 - "Meng ", // 0x6a - "Bang ", // 0x6b - "Chou ", // 0x6c - "Mie ", // 0x6d - "Chu ", // 0x6e - "Jie ", // 0x6f - "Xian ", // 0x70 - "Lan ", // 0x71 - "Gan ", // 0x72 - "Ping ", // 0x73 - "Nian ", // 0x74 - "Qian ", // 0x75 - "Bing ", // 0x76 - "Bing ", // 0x77 - "Xing ", // 0x78 - "Gan ", // 0x79 - "Yao ", // 0x7a - "Huan ", // 0x7b - "You ", // 0x7c - "You ", // 0x7d - "Ji ", // 0x7e - "Guang ", // 0x7f - "Pi ", // 0x80 - "Ting ", // 0x81 - "Ze ", // 0x82 - "Guang ", // 0x83 - "Zhuang ", // 0x84 - "Mo ", // 0x85 - "Qing ", // 0x86 - "Bi ", // 0x87 - "Qin ", // 0x88 - "Dun ", // 0x89 - "Chuang ", // 0x8a - "Gui ", // 0x8b - "Ya ", // 0x8c - "Bai ", // 0x8d - "Jie ", // 0x8e - "Xu ", // 0x8f - "Lu ", // 0x90 - "Wu ", // 0x91 - "[?] ", // 0x92 - "Ku ", // 0x93 - "Ying ", // 0x94 - "Di ", // 0x95 - "Pao ", // 0x96 - "Dian ", // 0x97 - "Ya ", // 0x98 - "Miao ", // 0x99 - "Geng ", // 0x9a - "Ci ", // 0x9b - "Fu ", // 0x9c - "Tong ", // 0x9d - "Pang ", // 0x9e - "Fei ", // 0x9f - "Xiang ", // 0xa0 - "Yi ", // 0xa1 - "Zhi ", // 0xa2 - "Tiao ", // 0xa3 - "Zhi ", // 0xa4 - "Xiu ", // 0xa5 - "Du ", // 0xa6 - "Zuo ", // 0xa7 - "Xiao ", // 0xa8 - "Tu ", // 0xa9 - "Gui ", // 0xaa - "Ku ", // 0xab - "Pang ", // 0xac - "Ting ", // 0xad - "You ", // 0xae - "Bu ", // 0xaf - "Ding ", // 0xb0 - "Cheng ", // 0xb1 - "Lai ", // 0xb2 - "Bei ", // 0xb3 - "Ji ", // 0xb4 - "An ", // 0xb5 - "Shu ", // 0xb6 - "Kang ", // 0xb7 - "Yong ", // 0xb8 - "Tuo ", // 0xb9 - "Song ", // 0xba - "Shu ", // 0xbb - "Qing ", // 0xbc - "Yu ", // 0xbd - "Yu ", // 0xbe - "Miao ", // 0xbf - "Sou ", // 0xc0 - "Ce ", // 0xc1 - "Xiang ", // 0xc2 - "Fei ", // 0xc3 - "Jiu ", // 0xc4 - "He ", // 0xc5 - "Hui ", // 0xc6 - "Liu ", // 0xc7 - "Sha ", // 0xc8 - "Lian ", // 0xc9 - "Lang ", // 0xca - "Sou ", // 0xcb - "Jian ", // 0xcc - "Pou ", // 0xcd - "Qing ", // 0xce - "Jiu ", // 0xcf - "Jiu ", // 0xd0 - "Qin ", // 0xd1 - "Ao ", // 0xd2 - "Kuo ", // 0xd3 - "Lou ", // 0xd4 - "Yin ", // 0xd5 - "Liao ", // 0xd6 - "Dai ", // 0xd7 - "Lu ", // 0xd8 - "Yi ", // 0xd9 - "Chu ", // 0xda - "Chan ", // 0xdb - "Tu ", // 0xdc - "Si ", // 0xdd - "Xin ", // 0xde - "Miao ", // 0xdf - "Chang ", // 0xe0 - "Wu ", // 0xe1 - "Fei ", // 0xe2 - "Guang ", // 0xe3 - "Koc ", // 0xe4 - "Kuai ", // 0xe5 - "Bi ", // 0xe6 - "Qiang ", // 0xe7 - "Xie ", // 0xe8 - "Lin ", // 0xe9 - "Lin ", // 0xea - "Liao ", // 0xeb - "Lu ", // 0xec - "[?] ", // 0xed - "Ying ", // 0xee - "Xian ", // 0xef - "Ting ", // 0xf0 - "Yong ", // 0xf1 - "Li ", // 0xf2 - "Ting ", // 0xf3 - "Yin ", // 0xf4 - "Xun ", // 0xf5 - "Yan ", // 0xf6 - "Ting ", // 0xf7 - "Di ", // 0xf8 - "Po ", // 0xf9 - "Jian ", // 0xfa - "Hui ", // 0xfb - "Nai ", // 0xfc - "Hui ", // 0xfd - "Gong ", // 0xfe - "Nian ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x05f.go b/vendor/github.com/mozillazg/go-unidecode/table/x05f.go deleted file mode 100644 index 095d689..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x05f.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x05f = []string{ - "Kai ", // 0x00 - "Bian ", // 0x01 - "Yi ", // 0x02 - "Qi ", // 0x03 - "Nong ", // 0x04 - "Fen ", // 0x05 - "Ju ", // 0x06 - "Yan ", // 0x07 - "Yi ", // 0x08 - "Zang ", // 0x09 - "Bi ", // 0x0a - "Yi ", // 0x0b - "Yi ", // 0x0c - "Er ", // 0x0d - "San ", // 0x0e - "Shi ", // 0x0f - "Er ", // 0x10 - "Shi ", // 0x11 - "Shi ", // 0x12 - "Gong ", // 0x13 - "Diao ", // 0x14 - "Yin ", // 0x15 - "Hu ", // 0x16 - "Fu ", // 0x17 - "Hong ", // 0x18 - "Wu ", // 0x19 - "Tui ", // 0x1a - "Chi ", // 0x1b - "Jiang ", // 0x1c - "Ba ", // 0x1d - "Shen ", // 0x1e - "Di ", // 0x1f - "Zhang ", // 0x20 - "Jue ", // 0x21 - "Tao ", // 0x22 - "Fu ", // 0x23 - "Di ", // 0x24 - "Mi ", // 0x25 - "Xian ", // 0x26 - "Hu ", // 0x27 - "Chao ", // 0x28 - "Nu ", // 0x29 - "Jing ", // 0x2a - "Zhen ", // 0x2b - "Yi ", // 0x2c - "Mi ", // 0x2d - "Quan ", // 0x2e - "Wan ", // 0x2f - "Shao ", // 0x30 - "Ruo ", // 0x31 - "Xuan ", // 0x32 - "Jing ", // 0x33 - "Dun ", // 0x34 - "Zhang ", // 0x35 - "Jiang ", // 0x36 - "Qiang ", // 0x37 - "Peng ", // 0x38 - "Dan ", // 0x39 - "Qiang ", // 0x3a - "Bi ", // 0x3b - "Bi ", // 0x3c - "She ", // 0x3d - "Dan ", // 0x3e - "Jian ", // 0x3f - "Gou ", // 0x40 - "Sei ", // 0x41 - "Fa ", // 0x42 - "Bi ", // 0x43 - "Kou ", // 0x44 - "Nagi ", // 0x45 - "Bie ", // 0x46 - "Xiao ", // 0x47 - "Dan ", // 0x48 - "Kuo ", // 0x49 - "Qiang ", // 0x4a - "Hong ", // 0x4b - "Mi ", // 0x4c - "Kuo ", // 0x4d - "Wan ", // 0x4e - "Jue ", // 0x4f - "Ji ", // 0x50 - "Ji ", // 0x51 - "Gui ", // 0x52 - "Dang ", // 0x53 - "Lu ", // 0x54 - "Lu ", // 0x55 - "Tuan ", // 0x56 - "Hui ", // 0x57 - "Zhi ", // 0x58 - "Hui ", // 0x59 - "Hui ", // 0x5a - "Yi ", // 0x5b - "Yi ", // 0x5c - "Yi ", // 0x5d - "Yi ", // 0x5e - "Huo ", // 0x5f - "Huo ", // 0x60 - "Shan ", // 0x61 - "Xing ", // 0x62 - "Wen ", // 0x63 - "Tong ", // 0x64 - "Yan ", // 0x65 - "Yan ", // 0x66 - "Yu ", // 0x67 - "Chi ", // 0x68 - "Cai ", // 0x69 - "Biao ", // 0x6a - "Diao ", // 0x6b - "Bin ", // 0x6c - "Peng ", // 0x6d - "Yong ", // 0x6e - "Piao ", // 0x6f - "Zhang ", // 0x70 - "Ying ", // 0x71 - "Chi ", // 0x72 - "Chi ", // 0x73 - "Zhuo ", // 0x74 - "Tuo ", // 0x75 - "Ji ", // 0x76 - "Pang ", // 0x77 - "Zhong ", // 0x78 - "Yi ", // 0x79 - "Wang ", // 0x7a - "Che ", // 0x7b - "Bi ", // 0x7c - "Chi ", // 0x7d - "Ling ", // 0x7e - "Fu ", // 0x7f - "Wang ", // 0x80 - "Zheng ", // 0x81 - "Cu ", // 0x82 - "Wang ", // 0x83 - "Jing ", // 0x84 - "Dai ", // 0x85 - "Xi ", // 0x86 - "Xun ", // 0x87 - "Hen ", // 0x88 - "Yang ", // 0x89 - "Huai ", // 0x8a - "Lu ", // 0x8b - "Hou ", // 0x8c - "Wa ", // 0x8d - "Cheng ", // 0x8e - "Zhi ", // 0x8f - "Xu ", // 0x90 - "Jing ", // 0x91 - "Tu ", // 0x92 - "Cong ", // 0x93 - "[?] ", // 0x94 - "Lai ", // 0x95 - "Cong ", // 0x96 - "De ", // 0x97 - "Pai ", // 0x98 - "Xi ", // 0x99 - "[?] ", // 0x9a - "Qi ", // 0x9b - "Chang ", // 0x9c - "Zhi ", // 0x9d - "Cong ", // 0x9e - "Zhou ", // 0x9f - "Lai ", // 0xa0 - "Yu ", // 0xa1 - "Xie ", // 0xa2 - "Jie ", // 0xa3 - "Jian ", // 0xa4 - "Chi ", // 0xa5 - "Jia ", // 0xa6 - "Bian ", // 0xa7 - "Huang ", // 0xa8 - "Fu ", // 0xa9 - "Xun ", // 0xaa - "Wei ", // 0xab - "Pang ", // 0xac - "Yao ", // 0xad - "Wei ", // 0xae - "Xi ", // 0xaf - "Zheng ", // 0xb0 - "Piao ", // 0xb1 - "Chi ", // 0xb2 - "De ", // 0xb3 - "Zheng ", // 0xb4 - "Zheng ", // 0xb5 - "Bie ", // 0xb6 - "De ", // 0xb7 - "Chong ", // 0xb8 - "Che ", // 0xb9 - "Jiao ", // 0xba - "Wei ", // 0xbb - "Jiao ", // 0xbc - "Hui ", // 0xbd - "Mei ", // 0xbe - "Long ", // 0xbf - "Xiang ", // 0xc0 - "Bao ", // 0xc1 - "Qu ", // 0xc2 - "Xin ", // 0xc3 - "Shu ", // 0xc4 - "Bi ", // 0xc5 - "Yi ", // 0xc6 - "Le ", // 0xc7 - "Ren ", // 0xc8 - "Dao ", // 0xc9 - "Ding ", // 0xca - "Gai ", // 0xcb - "Ji ", // 0xcc - "Ren ", // 0xcd - "Ren ", // 0xce - "Chan ", // 0xcf - "Tan ", // 0xd0 - "Te ", // 0xd1 - "Te ", // 0xd2 - "Gan ", // 0xd3 - "Qi ", // 0xd4 - "Shi ", // 0xd5 - "Cun ", // 0xd6 - "Zhi ", // 0xd7 - "Wang ", // 0xd8 - "Mang ", // 0xd9 - "Xi ", // 0xda - "Fan ", // 0xdb - "Ying ", // 0xdc - "Tian ", // 0xdd - "Min ", // 0xde - "Min ", // 0xdf - "Zhong ", // 0xe0 - "Chong ", // 0xe1 - "Wu ", // 0xe2 - "Ji ", // 0xe3 - "Wu ", // 0xe4 - "Xi ", // 0xe5 - "Ye ", // 0xe6 - "You ", // 0xe7 - "Wan ", // 0xe8 - "Cong ", // 0xe9 - "Zhong ", // 0xea - "Kuai ", // 0xeb - "Yu ", // 0xec - "Bian ", // 0xed - "Zhi ", // 0xee - "Qi ", // 0xef - "Cui ", // 0xf0 - "Chen ", // 0xf1 - "Tai ", // 0xf2 - "Tun ", // 0xf3 - "Qian ", // 0xf4 - "Nian ", // 0xf5 - "Hun ", // 0xf6 - "Xiong ", // 0xf7 - "Niu ", // 0xf8 - "Wang ", // 0xf9 - "Xian ", // 0xfa - "Xin ", // 0xfb - "Kang ", // 0xfc - "Hu ", // 0xfd - "Kai ", // 0xfe - "Fen ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x060.go b/vendor/github.com/mozillazg/go-unidecode/table/x060.go deleted file mode 100644 index 3349f65..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x060.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x060 = []string{ - "Huai ", // 0x00 - "Tai ", // 0x01 - "Song ", // 0x02 - "Wu ", // 0x03 - "Ou ", // 0x04 - "Chang ", // 0x05 - "Chuang ", // 0x06 - "Ju ", // 0x07 - "Yi ", // 0x08 - "Bao ", // 0x09 - "Chao ", // 0x0a - "Min ", // 0x0b - "Pei ", // 0x0c - "Zuo ", // 0x0d - "Zen ", // 0x0e - "Yang ", // 0x0f - "Kou ", // 0x10 - "Ban ", // 0x11 - "Nu ", // 0x12 - "Nao ", // 0x13 - "Zheng ", // 0x14 - "Pa ", // 0x15 - "Bu ", // 0x16 - "Tie ", // 0x17 - "Gu ", // 0x18 - "Hu ", // 0x19 - "Ju ", // 0x1a - "Da ", // 0x1b - "Lian ", // 0x1c - "Si ", // 0x1d - "Chou ", // 0x1e - "Di ", // 0x1f - "Dai ", // 0x20 - "Yi ", // 0x21 - "Tu ", // 0x22 - "You ", // 0x23 - "Fu ", // 0x24 - "Ji ", // 0x25 - "Peng ", // 0x26 - "Xing ", // 0x27 - "Yuan ", // 0x28 - "Ni ", // 0x29 - "Guai ", // 0x2a - "Fu ", // 0x2b - "Xi ", // 0x2c - "Bi ", // 0x2d - "You ", // 0x2e - "Qie ", // 0x2f - "Xuan ", // 0x30 - "Cong ", // 0x31 - "Bing ", // 0x32 - "Huang ", // 0x33 - "Xu ", // 0x34 - "Chu ", // 0x35 - "Pi ", // 0x36 - "Xi ", // 0x37 - "Xi ", // 0x38 - "Tan ", // 0x39 - "Koraeru ", // 0x3a - "Zong ", // 0x3b - "Dui ", // 0x3c - "[?] ", // 0x3d - "Ki ", // 0x3e - "Yi ", // 0x3f - "Chi ", // 0x40 - "Ren ", // 0x41 - "Xun ", // 0x42 - "Shi ", // 0x43 - "Xi ", // 0x44 - "Lao ", // 0x45 - "Heng ", // 0x46 - "Kuang ", // 0x47 - "Mu ", // 0x48 - "Zhi ", // 0x49 - "Xie ", // 0x4a - "Lian ", // 0x4b - "Tiao ", // 0x4c - "Huang ", // 0x4d - "Die ", // 0x4e - "Hao ", // 0x4f - "Kong ", // 0x50 - "Gui ", // 0x51 - "Heng ", // 0x52 - "Xi ", // 0x53 - "Xiao ", // 0x54 - "Shu ", // 0x55 - "S ", // 0x56 - "Kua ", // 0x57 - "Qiu ", // 0x58 - "Yang ", // 0x59 - "Hui ", // 0x5a - "Hui ", // 0x5b - "Chi ", // 0x5c - "Jia ", // 0x5d - "Yi ", // 0x5e - "Xiong ", // 0x5f - "Guai ", // 0x60 - "Lin ", // 0x61 - "Hui ", // 0x62 - "Zi ", // 0x63 - "Xu ", // 0x64 - "Chi ", // 0x65 - "Xiang ", // 0x66 - "Nu ", // 0x67 - "Hen ", // 0x68 - "En ", // 0x69 - "Ke ", // 0x6a - "Tong ", // 0x6b - "Tian ", // 0x6c - "Gong ", // 0x6d - "Quan ", // 0x6e - "Xi ", // 0x6f - "Qia ", // 0x70 - "Yue ", // 0x71 - "Peng ", // 0x72 - "Ken ", // 0x73 - "De ", // 0x74 - "Hui ", // 0x75 - "E ", // 0x76 - "Kyuu ", // 0x77 - "Tong ", // 0x78 - "Yan ", // 0x79 - "Kai ", // 0x7a - "Ce ", // 0x7b - "Nao ", // 0x7c - "Yun ", // 0x7d - "Mang ", // 0x7e - "Yong ", // 0x7f - "Yong ", // 0x80 - "Yuan ", // 0x81 - "Pi ", // 0x82 - "Kun ", // 0x83 - "Qiao ", // 0x84 - "Yue ", // 0x85 - "Yu ", // 0x86 - "Yu ", // 0x87 - "Jie ", // 0x88 - "Xi ", // 0x89 - "Zhe ", // 0x8a - "Lin ", // 0x8b - "Ti ", // 0x8c - "Han ", // 0x8d - "Hao ", // 0x8e - "Qie ", // 0x8f - "Ti ", // 0x90 - "Bu ", // 0x91 - "Yi ", // 0x92 - "Qian ", // 0x93 - "Hui ", // 0x94 - "Xi ", // 0x95 - "Bei ", // 0x96 - "Man ", // 0x97 - "Yi ", // 0x98 - "Heng ", // 0x99 - "Song ", // 0x9a - "Quan ", // 0x9b - "Cheng ", // 0x9c - "Hui ", // 0x9d - "Wu ", // 0x9e - "Wu ", // 0x9f - "You ", // 0xa0 - "Li ", // 0xa1 - "Liang ", // 0xa2 - "Huan ", // 0xa3 - "Cong ", // 0xa4 - "Yi ", // 0xa5 - "Yue ", // 0xa6 - "Li ", // 0xa7 - "Nin ", // 0xa8 - "Nao ", // 0xa9 - "E ", // 0xaa - "Que ", // 0xab - "Xuan ", // 0xac - "Qian ", // 0xad - "Wu ", // 0xae - "Min ", // 0xaf - "Cong ", // 0xb0 - "Fei ", // 0xb1 - "Bei ", // 0xb2 - "Duo ", // 0xb3 - "Cui ", // 0xb4 - "Chang ", // 0xb5 - "Men ", // 0xb6 - "Li ", // 0xb7 - "Ji ", // 0xb8 - "Guan ", // 0xb9 - "Guan ", // 0xba - "Xing ", // 0xbb - "Dao ", // 0xbc - "Qi ", // 0xbd - "Kong ", // 0xbe - "Tian ", // 0xbf - "Lun ", // 0xc0 - "Xi ", // 0xc1 - "Kan ", // 0xc2 - "Kun ", // 0xc3 - "Ni ", // 0xc4 - "Qing ", // 0xc5 - "Chou ", // 0xc6 - "Dun ", // 0xc7 - "Guo ", // 0xc8 - "Chan ", // 0xc9 - "Jing ", // 0xca - "Wan ", // 0xcb - "Yuan ", // 0xcc - "Jin ", // 0xcd - "Ji ", // 0xce - "Lin ", // 0xcf - "Yu ", // 0xd0 - "Huo ", // 0xd1 - "He ", // 0xd2 - "Quan ", // 0xd3 - "Tan ", // 0xd4 - "Ti ", // 0xd5 - "Ti ", // 0xd6 - "Nie ", // 0xd7 - "Wang ", // 0xd8 - "Chuo ", // 0xd9 - "Bu ", // 0xda - "Hun ", // 0xdb - "Xi ", // 0xdc - "Tang ", // 0xdd - "Xin ", // 0xde - "Wei ", // 0xdf - "Hui ", // 0xe0 - "E ", // 0xe1 - "Rui ", // 0xe2 - "Zong ", // 0xe3 - "Jian ", // 0xe4 - "Yong ", // 0xe5 - "Dian ", // 0xe6 - "Ju ", // 0xe7 - "Can ", // 0xe8 - "Cheng ", // 0xe9 - "De ", // 0xea - "Bei ", // 0xeb - "Qie ", // 0xec - "Can ", // 0xed - "Dan ", // 0xee - "Guan ", // 0xef - "Duo ", // 0xf0 - "Nao ", // 0xf1 - "Yun ", // 0xf2 - "Xiang ", // 0xf3 - "Zhui ", // 0xf4 - "Die ", // 0xf5 - "Huang ", // 0xf6 - "Chun ", // 0xf7 - "Qiong ", // 0xf8 - "Re ", // 0xf9 - "Xing ", // 0xfa - "Ce ", // 0xfb - "Bian ", // 0xfc - "Hun ", // 0xfd - "Zong ", // 0xfe - "Ti ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x061.go b/vendor/github.com/mozillazg/go-unidecode/table/x061.go deleted file mode 100644 index ba84835..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x061.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x061 = []string{ - "Qiao ", // 0x00 - "Chou ", // 0x01 - "Bei ", // 0x02 - "Xuan ", // 0x03 - "Wei ", // 0x04 - "Ge ", // 0x05 - "Qian ", // 0x06 - "Wei ", // 0x07 - "Yu ", // 0x08 - "Yu ", // 0x09 - "Bi ", // 0x0a - "Xuan ", // 0x0b - "Huan ", // 0x0c - "Min ", // 0x0d - "Bi ", // 0x0e - "Yi ", // 0x0f - "Mian ", // 0x10 - "Yong ", // 0x11 - "Kai ", // 0x12 - "Dang ", // 0x13 - "Yin ", // 0x14 - "E ", // 0x15 - "Chen ", // 0x16 - "Mou ", // 0x17 - "Ke ", // 0x18 - "Ke ", // 0x19 - "Yu ", // 0x1a - "Ai ", // 0x1b - "Qie ", // 0x1c - "Yan ", // 0x1d - "Nuo ", // 0x1e - "Gan ", // 0x1f - "Yun ", // 0x20 - "Zong ", // 0x21 - "Sai ", // 0x22 - "Leng ", // 0x23 - "Fen ", // 0x24 - "[?] ", // 0x25 - "Kui ", // 0x26 - "Kui ", // 0x27 - "Que ", // 0x28 - "Gong ", // 0x29 - "Yun ", // 0x2a - "Su ", // 0x2b - "Su ", // 0x2c - "Qi ", // 0x2d - "Yao ", // 0x2e - "Song ", // 0x2f - "Huang ", // 0x30 - "Ji ", // 0x31 - "Gu ", // 0x32 - "Ju ", // 0x33 - "Chuang ", // 0x34 - "Ni ", // 0x35 - "Xie ", // 0x36 - "Kai ", // 0x37 - "Zheng ", // 0x38 - "Yong ", // 0x39 - "Cao ", // 0x3a - "Sun ", // 0x3b - "Shen ", // 0x3c - "Bo ", // 0x3d - "Kai ", // 0x3e - "Yuan ", // 0x3f - "Xie ", // 0x40 - "Hun ", // 0x41 - "Yong ", // 0x42 - "Yang ", // 0x43 - "Li ", // 0x44 - "Sao ", // 0x45 - "Tao ", // 0x46 - "Yin ", // 0x47 - "Ci ", // 0x48 - "Xu ", // 0x49 - "Qian ", // 0x4a - "Tai ", // 0x4b - "Huang ", // 0x4c - "Yun ", // 0x4d - "Shen ", // 0x4e - "Ming ", // 0x4f - "[?] ", // 0x50 - "She ", // 0x51 - "Cong ", // 0x52 - "Piao ", // 0x53 - "Mo ", // 0x54 - "Mu ", // 0x55 - "Guo ", // 0x56 - "Chi ", // 0x57 - "Can ", // 0x58 - "Can ", // 0x59 - "Can ", // 0x5a - "Cui ", // 0x5b - "Min ", // 0x5c - "Te ", // 0x5d - "Zhang ", // 0x5e - "Tong ", // 0x5f - "Ao ", // 0x60 - "Shuang ", // 0x61 - "Man ", // 0x62 - "Guan ", // 0x63 - "Que ", // 0x64 - "Zao ", // 0x65 - "Jiu ", // 0x66 - "Hui ", // 0x67 - "Kai ", // 0x68 - "Lian ", // 0x69 - "Ou ", // 0x6a - "Song ", // 0x6b - "Jin ", // 0x6c - "Yin ", // 0x6d - "Lu ", // 0x6e - "Shang ", // 0x6f - "Wei ", // 0x70 - "Tuan ", // 0x71 - "Man ", // 0x72 - "Qian ", // 0x73 - "She ", // 0x74 - "Yong ", // 0x75 - "Qing ", // 0x76 - "Kang ", // 0x77 - "Di ", // 0x78 - "Zhi ", // 0x79 - "Lou ", // 0x7a - "Juan ", // 0x7b - "Qi ", // 0x7c - "Qi ", // 0x7d - "Yu ", // 0x7e - "Ping ", // 0x7f - "Liao ", // 0x80 - "Cong ", // 0x81 - "You ", // 0x82 - "Chong ", // 0x83 - "Zhi ", // 0x84 - "Tong ", // 0x85 - "Cheng ", // 0x86 - "Qi ", // 0x87 - "Qu ", // 0x88 - "Peng ", // 0x89 - "Bei ", // 0x8a - "Bie ", // 0x8b - "Chun ", // 0x8c - "Jiao ", // 0x8d - "Zeng ", // 0x8e - "Chi ", // 0x8f - "Lian ", // 0x90 - "Ping ", // 0x91 - "Kui ", // 0x92 - "Hui ", // 0x93 - "Qiao ", // 0x94 - "Cheng ", // 0x95 - "Yin ", // 0x96 - "Yin ", // 0x97 - "Xi ", // 0x98 - "Xi ", // 0x99 - "Dan ", // 0x9a - "Tan ", // 0x9b - "Duo ", // 0x9c - "Dui ", // 0x9d - "Dui ", // 0x9e - "Su ", // 0x9f - "Jue ", // 0xa0 - "Ce ", // 0xa1 - "Xiao ", // 0xa2 - "Fan ", // 0xa3 - "Fen ", // 0xa4 - "Lao ", // 0xa5 - "Lao ", // 0xa6 - "Chong ", // 0xa7 - "Han ", // 0xa8 - "Qi ", // 0xa9 - "Xian ", // 0xaa - "Min ", // 0xab - "Jing ", // 0xac - "Liao ", // 0xad - "Wu ", // 0xae - "Can ", // 0xaf - "Jue ", // 0xb0 - "Cu ", // 0xb1 - "Xian ", // 0xb2 - "Tan ", // 0xb3 - "Sheng ", // 0xb4 - "Pi ", // 0xb5 - "Yi ", // 0xb6 - "Chu ", // 0xb7 - "Xian ", // 0xb8 - "Nao ", // 0xb9 - "Dan ", // 0xba - "Tan ", // 0xbb - "Jing ", // 0xbc - "Song ", // 0xbd - "Han ", // 0xbe - "Jiao ", // 0xbf - "Wai ", // 0xc0 - "Huan ", // 0xc1 - "Dong ", // 0xc2 - "Qin ", // 0xc3 - "Qin ", // 0xc4 - "Qu ", // 0xc5 - "Cao ", // 0xc6 - "Ken ", // 0xc7 - "Xie ", // 0xc8 - "Ying ", // 0xc9 - "Ao ", // 0xca - "Mao ", // 0xcb - "Yi ", // 0xcc - "Lin ", // 0xcd - "Se ", // 0xce - "Jun ", // 0xcf - "Huai ", // 0xd0 - "Men ", // 0xd1 - "Lan ", // 0xd2 - "Ai ", // 0xd3 - "Lin ", // 0xd4 - "Yan ", // 0xd5 - "Gua ", // 0xd6 - "Xia ", // 0xd7 - "Chi ", // 0xd8 - "Yu ", // 0xd9 - "Yin ", // 0xda - "Dai ", // 0xdb - "Meng ", // 0xdc - "Ai ", // 0xdd - "Meng ", // 0xde - "Dui ", // 0xdf - "Qi ", // 0xe0 - "Mo ", // 0xe1 - "Lan ", // 0xe2 - "Men ", // 0xe3 - "Chou ", // 0xe4 - "Zhi ", // 0xe5 - "Nuo ", // 0xe6 - "Nuo ", // 0xe7 - "Yan ", // 0xe8 - "Yang ", // 0xe9 - "Bo ", // 0xea - "Zhi ", // 0xeb - "Kuang ", // 0xec - "Kuang ", // 0xed - "You ", // 0xee - "Fu ", // 0xef - "Liu ", // 0xf0 - "Mie ", // 0xf1 - "Cheng ", // 0xf2 - "[?] ", // 0xf3 - "Chan ", // 0xf4 - "Meng ", // 0xf5 - "Lan ", // 0xf6 - "Huai ", // 0xf7 - "Xuan ", // 0xf8 - "Rang ", // 0xf9 - "Chan ", // 0xfa - "Ji ", // 0xfb - "Ju ", // 0xfc - "Huan ", // 0xfd - "She ", // 0xfe - "Yi ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x062.go b/vendor/github.com/mozillazg/go-unidecode/table/x062.go deleted file mode 100644 index 50a25f3..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x062.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x062 = []string{ - "Lian ", // 0x00 - "Nan ", // 0x01 - "Mi ", // 0x02 - "Tang ", // 0x03 - "Jue ", // 0x04 - "Gang ", // 0x05 - "Gang ", // 0x06 - "Gang ", // 0x07 - "Ge ", // 0x08 - "Yue ", // 0x09 - "Wu ", // 0x0a - "Jian ", // 0x0b - "Xu ", // 0x0c - "Shu ", // 0x0d - "Rong ", // 0x0e - "Xi ", // 0x0f - "Cheng ", // 0x10 - "Wo ", // 0x11 - "Jie ", // 0x12 - "Ge ", // 0x13 - "Jian ", // 0x14 - "Qiang ", // 0x15 - "Huo ", // 0x16 - "Qiang ", // 0x17 - "Zhan ", // 0x18 - "Dong ", // 0x19 - "Qi ", // 0x1a - "Jia ", // 0x1b - "Die ", // 0x1c - "Zei ", // 0x1d - "Jia ", // 0x1e - "Ji ", // 0x1f - "Shi ", // 0x20 - "Kan ", // 0x21 - "Ji ", // 0x22 - "Kui ", // 0x23 - "Gai ", // 0x24 - "Deng ", // 0x25 - "Zhan ", // 0x26 - "Chuang ", // 0x27 - "Ge ", // 0x28 - "Jian ", // 0x29 - "Jie ", // 0x2a - "Yu ", // 0x2b - "Jian ", // 0x2c - "Yan ", // 0x2d - "Lu ", // 0x2e - "Xi ", // 0x2f - "Zhan ", // 0x30 - "Xi ", // 0x31 - "Xi ", // 0x32 - "Chuo ", // 0x33 - "Dai ", // 0x34 - "Qu ", // 0x35 - "Hu ", // 0x36 - "Hu ", // 0x37 - "Hu ", // 0x38 - "E ", // 0x39 - "Shi ", // 0x3a - "Li ", // 0x3b - "Mao ", // 0x3c - "Hu ", // 0x3d - "Li ", // 0x3e - "Fang ", // 0x3f - "Suo ", // 0x40 - "Bian ", // 0x41 - "Dian ", // 0x42 - "Jiong ", // 0x43 - "Shang ", // 0x44 - "Yi ", // 0x45 - "Yi ", // 0x46 - "Shan ", // 0x47 - "Hu ", // 0x48 - "Fei ", // 0x49 - "Yan ", // 0x4a - "Shou ", // 0x4b - "T ", // 0x4c - "Cai ", // 0x4d - "Zha ", // 0x4e - "Qiu ", // 0x4f - "Le ", // 0x50 - "Bu ", // 0x51 - "Ba ", // 0x52 - "Da ", // 0x53 - "Reng ", // 0x54 - "Fu ", // 0x55 - "Hameru ", // 0x56 - "Zai ", // 0x57 - "Tuo ", // 0x58 - "Zhang ", // 0x59 - "Diao ", // 0x5a - "Kang ", // 0x5b - "Yu ", // 0x5c - "Ku ", // 0x5d - "Han ", // 0x5e - "Shen ", // 0x5f - "Cha ", // 0x60 - "Yi ", // 0x61 - "Gu ", // 0x62 - "Kou ", // 0x63 - "Wu ", // 0x64 - "Tuo ", // 0x65 - "Qian ", // 0x66 - "Zhi ", // 0x67 - "Ren ", // 0x68 - "Kuo ", // 0x69 - "Men ", // 0x6a - "Sao ", // 0x6b - "Yang ", // 0x6c - "Niu ", // 0x6d - "Ban ", // 0x6e - "Che ", // 0x6f - "Rao ", // 0x70 - "Xi ", // 0x71 - "Qian ", // 0x72 - "Ban ", // 0x73 - "Jia ", // 0x74 - "Yu ", // 0x75 - "Fu ", // 0x76 - "Ao ", // 0x77 - "Xi ", // 0x78 - "Pi ", // 0x79 - "Zhi ", // 0x7a - "Zi ", // 0x7b - "E ", // 0x7c - "Dun ", // 0x7d - "Zhao ", // 0x7e - "Cheng ", // 0x7f - "Ji ", // 0x80 - "Yan ", // 0x81 - "Kuang ", // 0x82 - "Bian ", // 0x83 - "Chao ", // 0x84 - "Ju ", // 0x85 - "Wen ", // 0x86 - "Hu ", // 0x87 - "Yue ", // 0x88 - "Jue ", // 0x89 - "Ba ", // 0x8a - "Qin ", // 0x8b - "Zhen ", // 0x8c - "Zheng ", // 0x8d - "Yun ", // 0x8e - "Wan ", // 0x8f - "Nu ", // 0x90 - "Yi ", // 0x91 - "Shu ", // 0x92 - "Zhua ", // 0x93 - "Pou ", // 0x94 - "Tou ", // 0x95 - "Dou ", // 0x96 - "Kang ", // 0x97 - "Zhe ", // 0x98 - "Pou ", // 0x99 - "Fu ", // 0x9a - "Pao ", // 0x9b - "Ba ", // 0x9c - "Ao ", // 0x9d - "Ze ", // 0x9e - "Tuan ", // 0x9f - "Kou ", // 0xa0 - "Lun ", // 0xa1 - "Qiang ", // 0xa2 - "[?] ", // 0xa3 - "Hu ", // 0xa4 - "Bao ", // 0xa5 - "Bing ", // 0xa6 - "Zhi ", // 0xa7 - "Peng ", // 0xa8 - "Tan ", // 0xa9 - "Pu ", // 0xaa - "Pi ", // 0xab - "Tai ", // 0xac - "Yao ", // 0xad - "Zhen ", // 0xae - "Zha ", // 0xaf - "Yang ", // 0xb0 - "Bao ", // 0xb1 - "He ", // 0xb2 - "Ni ", // 0xb3 - "Yi ", // 0xb4 - "Di ", // 0xb5 - "Chi ", // 0xb6 - "Pi ", // 0xb7 - "Za ", // 0xb8 - "Mo ", // 0xb9 - "Mo ", // 0xba - "Shen ", // 0xbb - "Ya ", // 0xbc - "Chou ", // 0xbd - "Qu ", // 0xbe - "Min ", // 0xbf - "Chu ", // 0xc0 - "Jia ", // 0xc1 - "Fu ", // 0xc2 - "Zhan ", // 0xc3 - "Zhu ", // 0xc4 - "Dan ", // 0xc5 - "Chai ", // 0xc6 - "Mu ", // 0xc7 - "Nian ", // 0xc8 - "La ", // 0xc9 - "Fu ", // 0xca - "Pao ", // 0xcb - "Ban ", // 0xcc - "Pai ", // 0xcd - "Ling ", // 0xce - "Na ", // 0xcf - "Guai ", // 0xd0 - "Qian ", // 0xd1 - "Ju ", // 0xd2 - "Tuo ", // 0xd3 - "Ba ", // 0xd4 - "Tuo ", // 0xd5 - "Tuo ", // 0xd6 - "Ao ", // 0xd7 - "Ju ", // 0xd8 - "Zhuo ", // 0xd9 - "Pan ", // 0xda - "Zhao ", // 0xdb - "Bai ", // 0xdc - "Bai ", // 0xdd - "Di ", // 0xde - "Ni ", // 0xdf - "Ju ", // 0xe0 - "Kuo ", // 0xe1 - "Long ", // 0xe2 - "Jian ", // 0xe3 - "[?] ", // 0xe4 - "Yong ", // 0xe5 - "Lan ", // 0xe6 - "Ning ", // 0xe7 - "Bo ", // 0xe8 - "Ze ", // 0xe9 - "Qian ", // 0xea - "Hen ", // 0xeb - "Gua ", // 0xec - "Shi ", // 0xed - "Jie ", // 0xee - "Zheng ", // 0xef - "Nin ", // 0xf0 - "Gong ", // 0xf1 - "Gong ", // 0xf2 - "Quan ", // 0xf3 - "Shuan ", // 0xf4 - "Cun ", // 0xf5 - "Zan ", // 0xf6 - "Kao ", // 0xf7 - "Chi ", // 0xf8 - "Xie ", // 0xf9 - "Ce ", // 0xfa - "Hui ", // 0xfb - "Pin ", // 0xfc - "Zhuai ", // 0xfd - "Shi ", // 0xfe - "Na ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x063.go b/vendor/github.com/mozillazg/go-unidecode/table/x063.go deleted file mode 100644 index 14ab434..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x063.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x063 = []string{ - "Bo ", // 0x00 - "Chi ", // 0x01 - "Gua ", // 0x02 - "Zhi ", // 0x03 - "Kuo ", // 0x04 - "Duo ", // 0x05 - "Duo ", // 0x06 - "Zhi ", // 0x07 - "Qie ", // 0x08 - "An ", // 0x09 - "Nong ", // 0x0a - "Zhen ", // 0x0b - "Ge ", // 0x0c - "Jiao ", // 0x0d - "Ku ", // 0x0e - "Dong ", // 0x0f - "Ru ", // 0x10 - "Tiao ", // 0x11 - "Lie ", // 0x12 - "Zha ", // 0x13 - "Lu ", // 0x14 - "Die ", // 0x15 - "Wa ", // 0x16 - "Jue ", // 0x17 - "Mushiru ", // 0x18 - "Ju ", // 0x19 - "Zhi ", // 0x1a - "Luan ", // 0x1b - "Ya ", // 0x1c - "Zhua ", // 0x1d - "Ta ", // 0x1e - "Xie ", // 0x1f - "Nao ", // 0x20 - "Dang ", // 0x21 - "Jiao ", // 0x22 - "Zheng ", // 0x23 - "Ji ", // 0x24 - "Hui ", // 0x25 - "Xun ", // 0x26 - "Ku ", // 0x27 - "Ai ", // 0x28 - "Tuo ", // 0x29 - "Nuo ", // 0x2a - "Cuo ", // 0x2b - "Bo ", // 0x2c - "Geng ", // 0x2d - "Ti ", // 0x2e - "Zhen ", // 0x2f - "Cheng ", // 0x30 - "Suo ", // 0x31 - "Suo ", // 0x32 - "Keng ", // 0x33 - "Mei ", // 0x34 - "Long ", // 0x35 - "Ju ", // 0x36 - "Peng ", // 0x37 - "Jian ", // 0x38 - "Yi ", // 0x39 - "Ting ", // 0x3a - "Shan ", // 0x3b - "Nuo ", // 0x3c - "Wan ", // 0x3d - "Xie ", // 0x3e - "Cha ", // 0x3f - "Feng ", // 0x40 - "Jiao ", // 0x41 - "Wu ", // 0x42 - "Jun ", // 0x43 - "Jiu ", // 0x44 - "Tong ", // 0x45 - "Kun ", // 0x46 - "Huo ", // 0x47 - "Tu ", // 0x48 - "Zhuo ", // 0x49 - "Pou ", // 0x4a - "Le ", // 0x4b - "Ba ", // 0x4c - "Han ", // 0x4d - "Shao ", // 0x4e - "Nie ", // 0x4f - "Juan ", // 0x50 - "Ze ", // 0x51 - "Song ", // 0x52 - "Ye ", // 0x53 - "Jue ", // 0x54 - "Bu ", // 0x55 - "Huan ", // 0x56 - "Bu ", // 0x57 - "Zun ", // 0x58 - "Yi ", // 0x59 - "Zhai ", // 0x5a - "Lu ", // 0x5b - "Sou ", // 0x5c - "Tuo ", // 0x5d - "Lao ", // 0x5e - "Sun ", // 0x5f - "Bang ", // 0x60 - "Jian ", // 0x61 - "Huan ", // 0x62 - "Dao ", // 0x63 - "[?] ", // 0x64 - "Wan ", // 0x65 - "Qin ", // 0x66 - "Peng ", // 0x67 - "She ", // 0x68 - "Lie ", // 0x69 - "Min ", // 0x6a - "Men ", // 0x6b - "Fu ", // 0x6c - "Bai ", // 0x6d - "Ju ", // 0x6e - "Dao ", // 0x6f - "Wo ", // 0x70 - "Ai ", // 0x71 - "Juan ", // 0x72 - "Yue ", // 0x73 - "Zong ", // 0x74 - "Chen ", // 0x75 - "Chui ", // 0x76 - "Jie ", // 0x77 - "Tu ", // 0x78 - "Ben ", // 0x79 - "Na ", // 0x7a - "Nian ", // 0x7b - "Nuo ", // 0x7c - "Zu ", // 0x7d - "Wo ", // 0x7e - "Xi ", // 0x7f - "Xian ", // 0x80 - "Cheng ", // 0x81 - "Dian ", // 0x82 - "Sao ", // 0x83 - "Lun ", // 0x84 - "Qing ", // 0x85 - "Gang ", // 0x86 - "Duo ", // 0x87 - "Shou ", // 0x88 - "Diao ", // 0x89 - "Pou ", // 0x8a - "Di ", // 0x8b - "Zhang ", // 0x8c - "Gun ", // 0x8d - "Ji ", // 0x8e - "Tao ", // 0x8f - "Qia ", // 0x90 - "Qi ", // 0x91 - "Pai ", // 0x92 - "Shu ", // 0x93 - "Qian ", // 0x94 - "Ling ", // 0x95 - "Yi ", // 0x96 - "Ya ", // 0x97 - "Jue ", // 0x98 - "Zheng ", // 0x99 - "Liang ", // 0x9a - "Gua ", // 0x9b - "Yi ", // 0x9c - "Huo ", // 0x9d - "Shan ", // 0x9e - "Zheng ", // 0x9f - "Lue ", // 0xa0 - "Cai ", // 0xa1 - "Tan ", // 0xa2 - "Che ", // 0xa3 - "Bing ", // 0xa4 - "Jie ", // 0xa5 - "Ti ", // 0xa6 - "Kong ", // 0xa7 - "Tui ", // 0xa8 - "Yan ", // 0xa9 - "Cuo ", // 0xaa - "Zou ", // 0xab - "Ju ", // 0xac - "Tian ", // 0xad - "Qian ", // 0xae - "Ken ", // 0xaf - "Bai ", // 0xb0 - "Shou ", // 0xb1 - "Jie ", // 0xb2 - "Lu ", // 0xb3 - "Guo ", // 0xb4 - "Haba ", // 0xb5 - "[?] ", // 0xb6 - "Zhi ", // 0xb7 - "Dan ", // 0xb8 - "Mang ", // 0xb9 - "Xian ", // 0xba - "Sao ", // 0xbb - "Guan ", // 0xbc - "Peng ", // 0xbd - "Yuan ", // 0xbe - "Nuo ", // 0xbf - "Jian ", // 0xc0 - "Zhen ", // 0xc1 - "Jiu ", // 0xc2 - "Jian ", // 0xc3 - "Yu ", // 0xc4 - "Yan ", // 0xc5 - "Kui ", // 0xc6 - "Nan ", // 0xc7 - "Hong ", // 0xc8 - "Rou ", // 0xc9 - "Pi ", // 0xca - "Wei ", // 0xcb - "Sai ", // 0xcc - "Zou ", // 0xcd - "Xuan ", // 0xce - "Miao ", // 0xcf - "Ti ", // 0xd0 - "Nie ", // 0xd1 - "Cha ", // 0xd2 - "Shi ", // 0xd3 - "Zong ", // 0xd4 - "Zhen ", // 0xd5 - "Yi ", // 0xd6 - "Shun ", // 0xd7 - "Heng ", // 0xd8 - "Bian ", // 0xd9 - "Yang ", // 0xda - "Huan ", // 0xdb - "Yan ", // 0xdc - "Zuan ", // 0xdd - "An ", // 0xde - "Xu ", // 0xdf - "Ya ", // 0xe0 - "Wo ", // 0xe1 - "Ke ", // 0xe2 - "Chuai ", // 0xe3 - "Ji ", // 0xe4 - "Ti ", // 0xe5 - "La ", // 0xe6 - "La ", // 0xe7 - "Cheng ", // 0xe8 - "Kai ", // 0xe9 - "Jiu ", // 0xea - "Jiu ", // 0xeb - "Tu ", // 0xec - "Jie ", // 0xed - "Hui ", // 0xee - "Geng ", // 0xef - "Chong ", // 0xf0 - "Shuo ", // 0xf1 - "She ", // 0xf2 - "Xie ", // 0xf3 - "Yuan ", // 0xf4 - "Qian ", // 0xf5 - "Ye ", // 0xf6 - "Cha ", // 0xf7 - "Zha ", // 0xf8 - "Bei ", // 0xf9 - "Yao ", // 0xfa - "[?] ", // 0xfb - "[?] ", // 0xfc - "Lan ", // 0xfd - "Wen ", // 0xfe - "Qin ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x064.go b/vendor/github.com/mozillazg/go-unidecode/table/x064.go deleted file mode 100644 index f7b3ae6..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x064.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x064 = []string{ - "Chan ", // 0x00 - "Ge ", // 0x01 - "Lou ", // 0x02 - "Zong ", // 0x03 - "Geng ", // 0x04 - "Jiao ", // 0x05 - "Gou ", // 0x06 - "Qin ", // 0x07 - "Yong ", // 0x08 - "Que ", // 0x09 - "Chou ", // 0x0a - "Chi ", // 0x0b - "Zhan ", // 0x0c - "Sun ", // 0x0d - "Sun ", // 0x0e - "Bo ", // 0x0f - "Chu ", // 0x10 - "Rong ", // 0x11 - "Beng ", // 0x12 - "Cuo ", // 0x13 - "Sao ", // 0x14 - "Ke ", // 0x15 - "Yao ", // 0x16 - "Dao ", // 0x17 - "Zhi ", // 0x18 - "Nu ", // 0x19 - "Xie ", // 0x1a - "Jian ", // 0x1b - "Sou ", // 0x1c - "Qiu ", // 0x1d - "Gao ", // 0x1e - "Xian ", // 0x1f - "Shuo ", // 0x20 - "Sang ", // 0x21 - "Jin ", // 0x22 - "Mie ", // 0x23 - "E ", // 0x24 - "Chui ", // 0x25 - "Nuo ", // 0x26 - "Shan ", // 0x27 - "Ta ", // 0x28 - "Jie ", // 0x29 - "Tang ", // 0x2a - "Pan ", // 0x2b - "Ban ", // 0x2c - "Da ", // 0x2d - "Li ", // 0x2e - "Tao ", // 0x2f - "Hu ", // 0x30 - "Zhi ", // 0x31 - "Wa ", // 0x32 - "Xia ", // 0x33 - "Qian ", // 0x34 - "Wen ", // 0x35 - "Qiang ", // 0x36 - "Tian ", // 0x37 - "Zhen ", // 0x38 - "E ", // 0x39 - "Xi ", // 0x3a - "Nuo ", // 0x3b - "Quan ", // 0x3c - "Cha ", // 0x3d - "Zha ", // 0x3e - "Ge ", // 0x3f - "Wu ", // 0x40 - "En ", // 0x41 - "She ", // 0x42 - "Kang ", // 0x43 - "She ", // 0x44 - "Shu ", // 0x45 - "Bai ", // 0x46 - "Yao ", // 0x47 - "Bin ", // 0x48 - "Sou ", // 0x49 - "Tan ", // 0x4a - "Sa ", // 0x4b - "Chan ", // 0x4c - "Suo ", // 0x4d - "Liao ", // 0x4e - "Chong ", // 0x4f - "Chuang ", // 0x50 - "Guo ", // 0x51 - "Bing ", // 0x52 - "Feng ", // 0x53 - "Shuai ", // 0x54 - "Di ", // 0x55 - "Qi ", // 0x56 - "Sou ", // 0x57 - "Zhai ", // 0x58 - "Lian ", // 0x59 - "Tang ", // 0x5a - "Chi ", // 0x5b - "Guan ", // 0x5c - "Lu ", // 0x5d - "Luo ", // 0x5e - "Lou ", // 0x5f - "Zong ", // 0x60 - "Gai ", // 0x61 - "Hu ", // 0x62 - "Zha ", // 0x63 - "Chuang ", // 0x64 - "Tang ", // 0x65 - "Hua ", // 0x66 - "Cui ", // 0x67 - "Nai ", // 0x68 - "Mo ", // 0x69 - "Jiang ", // 0x6a - "Gui ", // 0x6b - "Ying ", // 0x6c - "Zhi ", // 0x6d - "Ao ", // 0x6e - "Zhi ", // 0x6f - "Nie ", // 0x70 - "Man ", // 0x71 - "Shan ", // 0x72 - "Kou ", // 0x73 - "Shu ", // 0x74 - "Suo ", // 0x75 - "Tuan ", // 0x76 - "Jiao ", // 0x77 - "Mo ", // 0x78 - "Mo ", // 0x79 - "Zhe ", // 0x7a - "Xian ", // 0x7b - "Keng ", // 0x7c - "Piao ", // 0x7d - "Jiang ", // 0x7e - "Yin ", // 0x7f - "Gou ", // 0x80 - "Qian ", // 0x81 - "Lue ", // 0x82 - "Ji ", // 0x83 - "Ying ", // 0x84 - "Jue ", // 0x85 - "Pie ", // 0x86 - "Pie ", // 0x87 - "Lao ", // 0x88 - "Dun ", // 0x89 - "Xian ", // 0x8a - "Ruan ", // 0x8b - "Kui ", // 0x8c - "Zan ", // 0x8d - "Yi ", // 0x8e - "Xun ", // 0x8f - "Cheng ", // 0x90 - "Cheng ", // 0x91 - "Sa ", // 0x92 - "Nao ", // 0x93 - "Heng ", // 0x94 - "Si ", // 0x95 - "Qian ", // 0x96 - "Huang ", // 0x97 - "Da ", // 0x98 - "Zun ", // 0x99 - "Nian ", // 0x9a - "Lin ", // 0x9b - "Zheng ", // 0x9c - "Hui ", // 0x9d - "Zhuang ", // 0x9e - "Jiao ", // 0x9f - "Ji ", // 0xa0 - "Cao ", // 0xa1 - "Dan ", // 0xa2 - "Dan ", // 0xa3 - "Che ", // 0xa4 - "Bo ", // 0xa5 - "Che ", // 0xa6 - "Jue ", // 0xa7 - "Xiao ", // 0xa8 - "Liao ", // 0xa9 - "Ben ", // 0xaa - "Fu ", // 0xab - "Qiao ", // 0xac - "Bo ", // 0xad - "Cuo ", // 0xae - "Zhuo ", // 0xaf - "Zhuan ", // 0xb0 - "Tuo ", // 0xb1 - "Pu ", // 0xb2 - "Qin ", // 0xb3 - "Dun ", // 0xb4 - "Nian ", // 0xb5 - "[?] ", // 0xb6 - "Xie ", // 0xb7 - "Lu ", // 0xb8 - "Jiao ", // 0xb9 - "Cuan ", // 0xba - "Ta ", // 0xbb - "Han ", // 0xbc - "Qiao ", // 0xbd - "Zhua ", // 0xbe - "Jian ", // 0xbf - "Gan ", // 0xc0 - "Yong ", // 0xc1 - "Lei ", // 0xc2 - "Kuo ", // 0xc3 - "Lu ", // 0xc4 - "Shan ", // 0xc5 - "Zhuo ", // 0xc6 - "Ze ", // 0xc7 - "Pu ", // 0xc8 - "Chuo ", // 0xc9 - "Ji ", // 0xca - "Dang ", // 0xcb - "Suo ", // 0xcc - "Cao ", // 0xcd - "Qing ", // 0xce - "Jing ", // 0xcf - "Huan ", // 0xd0 - "Jie ", // 0xd1 - "Qin ", // 0xd2 - "Kuai ", // 0xd3 - "Dan ", // 0xd4 - "Xi ", // 0xd5 - "Ge ", // 0xd6 - "Pi ", // 0xd7 - "Bo ", // 0xd8 - "Ao ", // 0xd9 - "Ju ", // 0xda - "Ye ", // 0xdb - "[?] ", // 0xdc - "Mang ", // 0xdd - "Sou ", // 0xde - "Mi ", // 0xdf - "Ji ", // 0xe0 - "Tai ", // 0xe1 - "Zhuo ", // 0xe2 - "Dao ", // 0xe3 - "Xing ", // 0xe4 - "Lan ", // 0xe5 - "Ca ", // 0xe6 - "Ju ", // 0xe7 - "Ye ", // 0xe8 - "Ru ", // 0xe9 - "Ye ", // 0xea - "Ye ", // 0xeb - "Ni ", // 0xec - "Hu ", // 0xed - "Ji ", // 0xee - "Bin ", // 0xef - "Ning ", // 0xf0 - "Ge ", // 0xf1 - "Zhi ", // 0xf2 - "Jie ", // 0xf3 - "Kuo ", // 0xf4 - "Mo ", // 0xf5 - "Jian ", // 0xf6 - "Xie ", // 0xf7 - "Lie ", // 0xf8 - "Tan ", // 0xf9 - "Bai ", // 0xfa - "Sou ", // 0xfb - "Lu ", // 0xfc - "Lue ", // 0xfd - "Rao ", // 0xfe - "Zhi ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x065.go b/vendor/github.com/mozillazg/go-unidecode/table/x065.go deleted file mode 100644 index 44df311..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x065.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x065 = []string{ - "Pan ", // 0x00 - "Yang ", // 0x01 - "Lei ", // 0x02 - "Sa ", // 0x03 - "Shu ", // 0x04 - "Zan ", // 0x05 - "Nian ", // 0x06 - "Xian ", // 0x07 - "Jun ", // 0x08 - "Huo ", // 0x09 - "Li ", // 0x0a - "La ", // 0x0b - "Han ", // 0x0c - "Ying ", // 0x0d - "Lu ", // 0x0e - "Long ", // 0x0f - "Qian ", // 0x10 - "Qian ", // 0x11 - "Zan ", // 0x12 - "Qian ", // 0x13 - "Lan ", // 0x14 - "San ", // 0x15 - "Ying ", // 0x16 - "Mei ", // 0x17 - "Rang ", // 0x18 - "Chan ", // 0x19 - "[?] ", // 0x1a - "Cuan ", // 0x1b - "Xi ", // 0x1c - "She ", // 0x1d - "Luo ", // 0x1e - "Jun ", // 0x1f - "Mi ", // 0x20 - "Li ", // 0x21 - "Zan ", // 0x22 - "Luan ", // 0x23 - "Tan ", // 0x24 - "Zuan ", // 0x25 - "Li ", // 0x26 - "Dian ", // 0x27 - "Wa ", // 0x28 - "Dang ", // 0x29 - "Jiao ", // 0x2a - "Jue ", // 0x2b - "Lan ", // 0x2c - "Li ", // 0x2d - "Nang ", // 0x2e - "Zhi ", // 0x2f - "Gui ", // 0x30 - "Gui ", // 0x31 - "Qi ", // 0x32 - "Xin ", // 0x33 - "Pu ", // 0x34 - "Sui ", // 0x35 - "Shou ", // 0x36 - "Kao ", // 0x37 - "You ", // 0x38 - "Gai ", // 0x39 - "Yi ", // 0x3a - "Gong ", // 0x3b - "Gan ", // 0x3c - "Ban ", // 0x3d - "Fang ", // 0x3e - "Zheng ", // 0x3f - "Bo ", // 0x40 - "Dian ", // 0x41 - "Kou ", // 0x42 - "Min ", // 0x43 - "Wu ", // 0x44 - "Gu ", // 0x45 - "He ", // 0x46 - "Ce ", // 0x47 - "Xiao ", // 0x48 - "Mi ", // 0x49 - "Chu ", // 0x4a - "Ge ", // 0x4b - "Di ", // 0x4c - "Xu ", // 0x4d - "Jiao ", // 0x4e - "Min ", // 0x4f - "Chen ", // 0x50 - "Jiu ", // 0x51 - "Zhen ", // 0x52 - "Duo ", // 0x53 - "Yu ", // 0x54 - "Chi ", // 0x55 - "Ao ", // 0x56 - "Bai ", // 0x57 - "Xu ", // 0x58 - "Jiao ", // 0x59 - "Duo ", // 0x5a - "Lian ", // 0x5b - "Nie ", // 0x5c - "Bi ", // 0x5d - "Chang ", // 0x5e - "Dian ", // 0x5f - "Duo ", // 0x60 - "Yi ", // 0x61 - "Gan ", // 0x62 - "San ", // 0x63 - "Ke ", // 0x64 - "Yan ", // 0x65 - "Dun ", // 0x66 - "Qi ", // 0x67 - "Dou ", // 0x68 - "Xiao ", // 0x69 - "Duo ", // 0x6a - "Jiao ", // 0x6b - "Jing ", // 0x6c - "Yang ", // 0x6d - "Xia ", // 0x6e - "Min ", // 0x6f - "Shu ", // 0x70 - "Ai ", // 0x71 - "Qiao ", // 0x72 - "Ai ", // 0x73 - "Zheng ", // 0x74 - "Di ", // 0x75 - "Zhen ", // 0x76 - "Fu ", // 0x77 - "Shu ", // 0x78 - "Liao ", // 0x79 - "Qu ", // 0x7a - "Xiong ", // 0x7b - "Xi ", // 0x7c - "Jiao ", // 0x7d - "Sen ", // 0x7e - "Jiao ", // 0x7f - "Zhuo ", // 0x80 - "Yi ", // 0x81 - "Lian ", // 0x82 - "Bi ", // 0x83 - "Li ", // 0x84 - "Xiao ", // 0x85 - "Xiao ", // 0x86 - "Wen ", // 0x87 - "Xue ", // 0x88 - "Qi ", // 0x89 - "Qi ", // 0x8a - "Zhai ", // 0x8b - "Bin ", // 0x8c - "Jue ", // 0x8d - "Zhai ", // 0x8e - "[?] ", // 0x8f - "Fei ", // 0x90 - "Ban ", // 0x91 - "Ban ", // 0x92 - "Lan ", // 0x93 - "Yu ", // 0x94 - "Lan ", // 0x95 - "Wei ", // 0x96 - "Dou ", // 0x97 - "Sheng ", // 0x98 - "Liao ", // 0x99 - "Jia ", // 0x9a - "Hu ", // 0x9b - "Xie ", // 0x9c - "Jia ", // 0x9d - "Yu ", // 0x9e - "Zhen ", // 0x9f - "Jiao ", // 0xa0 - "Wo ", // 0xa1 - "Tou ", // 0xa2 - "Chu ", // 0xa3 - "Jin ", // 0xa4 - "Chi ", // 0xa5 - "Yin ", // 0xa6 - "Fu ", // 0xa7 - "Qiang ", // 0xa8 - "Zhan ", // 0xa9 - "Qu ", // 0xaa - "Zhuo ", // 0xab - "Zhan ", // 0xac - "Duan ", // 0xad - "Zhuo ", // 0xae - "Si ", // 0xaf - "Xin ", // 0xb0 - "Zhuo ", // 0xb1 - "Zhuo ", // 0xb2 - "Qin ", // 0xb3 - "Lin ", // 0xb4 - "Zhuo ", // 0xb5 - "Chu ", // 0xb6 - "Duan ", // 0xb7 - "Zhu ", // 0xb8 - "Fang ", // 0xb9 - "Xie ", // 0xba - "Hang ", // 0xbb - "Yu ", // 0xbc - "Shi ", // 0xbd - "Pei ", // 0xbe - "You ", // 0xbf - "Mye ", // 0xc0 - "Pang ", // 0xc1 - "Qi ", // 0xc2 - "Zhan ", // 0xc3 - "Mao ", // 0xc4 - "Lu ", // 0xc5 - "Pei ", // 0xc6 - "Pi ", // 0xc7 - "Liu ", // 0xc8 - "Fu ", // 0xc9 - "Fang ", // 0xca - "Xuan ", // 0xcb - "Jing ", // 0xcc - "Jing ", // 0xcd - "Ni ", // 0xce - "Zu ", // 0xcf - "Zhao ", // 0xd0 - "Yi ", // 0xd1 - "Liu ", // 0xd2 - "Shao ", // 0xd3 - "Jian ", // 0xd4 - "Es ", // 0xd5 - "Yi ", // 0xd6 - "Qi ", // 0xd7 - "Zhi ", // 0xd8 - "Fan ", // 0xd9 - "Piao ", // 0xda - "Fan ", // 0xdb - "Zhan ", // 0xdc - "Guai ", // 0xdd - "Sui ", // 0xde - "Yu ", // 0xdf - "Wu ", // 0xe0 - "Ji ", // 0xe1 - "Ji ", // 0xe2 - "Ji ", // 0xe3 - "Huo ", // 0xe4 - "Ri ", // 0xe5 - "Dan ", // 0xe6 - "Jiu ", // 0xe7 - "Zhi ", // 0xe8 - "Zao ", // 0xe9 - "Xie ", // 0xea - "Tiao ", // 0xeb - "Xun ", // 0xec - "Xu ", // 0xed - "Xu ", // 0xee - "Xu ", // 0xef - "Gan ", // 0xf0 - "Han ", // 0xf1 - "Tai ", // 0xf2 - "Di ", // 0xf3 - "Xu ", // 0xf4 - "Chan ", // 0xf5 - "Shi ", // 0xf6 - "Kuang ", // 0xf7 - "Yang ", // 0xf8 - "Shi ", // 0xf9 - "Wang ", // 0xfa - "Min ", // 0xfb - "Min ", // 0xfc - "Tun ", // 0xfd - "Chun ", // 0xfe - "Wu ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x066.go b/vendor/github.com/mozillazg/go-unidecode/table/x066.go deleted file mode 100644 index 5a3898b..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x066.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x066 = []string{ - "Yun ", // 0x00 - "Bei ", // 0x01 - "Ang ", // 0x02 - "Ze ", // 0x03 - "Ban ", // 0x04 - "Jie ", // 0x05 - "Kun ", // 0x06 - "Sheng ", // 0x07 - "Hu ", // 0x08 - "Fang ", // 0x09 - "Hao ", // 0x0a - "Gui ", // 0x0b - "Chang ", // 0x0c - "Xuan ", // 0x0d - "Ming ", // 0x0e - "Hun ", // 0x0f - "Fen ", // 0x10 - "Qin ", // 0x11 - "Hu ", // 0x12 - "Yi ", // 0x13 - "Xi ", // 0x14 - "Xin ", // 0x15 - "Yan ", // 0x16 - "Ze ", // 0x17 - "Fang ", // 0x18 - "Tan ", // 0x19 - "Shen ", // 0x1a - "Ju ", // 0x1b - "Yang ", // 0x1c - "Zan ", // 0x1d - "Bing ", // 0x1e - "Xing ", // 0x1f - "Ying ", // 0x20 - "Xuan ", // 0x21 - "Pei ", // 0x22 - "Zhen ", // 0x23 - "Ling ", // 0x24 - "Chun ", // 0x25 - "Hao ", // 0x26 - "Mei ", // 0x27 - "Zuo ", // 0x28 - "Mo ", // 0x29 - "Bian ", // 0x2a - "Xu ", // 0x2b - "Hun ", // 0x2c - "Zhao ", // 0x2d - "Zong ", // 0x2e - "Shi ", // 0x2f - "Shi ", // 0x30 - "Yu ", // 0x31 - "Fei ", // 0x32 - "Die ", // 0x33 - "Mao ", // 0x34 - "Ni ", // 0x35 - "Chang ", // 0x36 - "Wen ", // 0x37 - "Dong ", // 0x38 - "Ai ", // 0x39 - "Bing ", // 0x3a - "Ang ", // 0x3b - "Zhou ", // 0x3c - "Long ", // 0x3d - "Xian ", // 0x3e - "Kuang ", // 0x3f - "Tiao ", // 0x40 - "Chao ", // 0x41 - "Shi ", // 0x42 - "Huang ", // 0x43 - "Huang ", // 0x44 - "Xuan ", // 0x45 - "Kui ", // 0x46 - "Xu ", // 0x47 - "Jiao ", // 0x48 - "Jin ", // 0x49 - "Zhi ", // 0x4a - "Jin ", // 0x4b - "Shang ", // 0x4c - "Tong ", // 0x4d - "Hong ", // 0x4e - "Yan ", // 0x4f - "Gai ", // 0x50 - "Xiang ", // 0x51 - "Shai ", // 0x52 - "Xiao ", // 0x53 - "Ye ", // 0x54 - "Yun ", // 0x55 - "Hui ", // 0x56 - "Han ", // 0x57 - "Han ", // 0x58 - "Jun ", // 0x59 - "Wan ", // 0x5a - "Xian ", // 0x5b - "Kun ", // 0x5c - "Zhou ", // 0x5d - "Xi ", // 0x5e - "Cheng ", // 0x5f - "Sheng ", // 0x60 - "Bu ", // 0x61 - "Zhe ", // 0x62 - "Zhe ", // 0x63 - "Wu ", // 0x64 - "Han ", // 0x65 - "Hui ", // 0x66 - "Hao ", // 0x67 - "Chen ", // 0x68 - "Wan ", // 0x69 - "Tian ", // 0x6a - "Zhuo ", // 0x6b - "Zui ", // 0x6c - "Zhou ", // 0x6d - "Pu ", // 0x6e - "Jing ", // 0x6f - "Xi ", // 0x70 - "Shan ", // 0x71 - "Yi ", // 0x72 - "Xi ", // 0x73 - "Qing ", // 0x74 - "Qi ", // 0x75 - "Jing ", // 0x76 - "Gui ", // 0x77 - "Zhen ", // 0x78 - "Yi ", // 0x79 - "Zhi ", // 0x7a - "An ", // 0x7b - "Wan ", // 0x7c - "Lin ", // 0x7d - "Liang ", // 0x7e - "Chang ", // 0x7f - "Wang ", // 0x80 - "Xiao ", // 0x81 - "Zan ", // 0x82 - "Hi ", // 0x83 - "Xuan ", // 0x84 - "Xuan ", // 0x85 - "Yi ", // 0x86 - "Xia ", // 0x87 - "Yun ", // 0x88 - "Hui ", // 0x89 - "Fu ", // 0x8a - "Min ", // 0x8b - "Kui ", // 0x8c - "He ", // 0x8d - "Ying ", // 0x8e - "Du ", // 0x8f - "Wei ", // 0x90 - "Shu ", // 0x91 - "Qing ", // 0x92 - "Mao ", // 0x93 - "Nan ", // 0x94 - "Jian ", // 0x95 - "Nuan ", // 0x96 - "An ", // 0x97 - "Yang ", // 0x98 - "Chun ", // 0x99 - "Yao ", // 0x9a - "Suo ", // 0x9b - "Jin ", // 0x9c - "Ming ", // 0x9d - "Jiao ", // 0x9e - "Kai ", // 0x9f - "Gao ", // 0xa0 - "Weng ", // 0xa1 - "Chang ", // 0xa2 - "Qi ", // 0xa3 - "Hao ", // 0xa4 - "Yan ", // 0xa5 - "Li ", // 0xa6 - "Ai ", // 0xa7 - "Ji ", // 0xa8 - "Gui ", // 0xa9 - "Men ", // 0xaa - "Zan ", // 0xab - "Xie ", // 0xac - "Hao ", // 0xad - "Mu ", // 0xae - "Mo ", // 0xaf - "Cong ", // 0xb0 - "Ni ", // 0xb1 - "Zhang ", // 0xb2 - "Hui ", // 0xb3 - "Bao ", // 0xb4 - "Han ", // 0xb5 - "Xuan ", // 0xb6 - "Chuan ", // 0xb7 - "Liao ", // 0xb8 - "Xian ", // 0xb9 - "Dan ", // 0xba - "Jing ", // 0xbb - "Pie ", // 0xbc - "Lin ", // 0xbd - "Tun ", // 0xbe - "Xi ", // 0xbf - "Yi ", // 0xc0 - "Ji ", // 0xc1 - "Huang ", // 0xc2 - "Tai ", // 0xc3 - "Ye ", // 0xc4 - "Ye ", // 0xc5 - "Li ", // 0xc6 - "Tan ", // 0xc7 - "Tong ", // 0xc8 - "Xiao ", // 0xc9 - "Fei ", // 0xca - "Qin ", // 0xcb - "Zhao ", // 0xcc - "Hao ", // 0xcd - "Yi ", // 0xce - "Xiang ", // 0xcf - "Xing ", // 0xd0 - "Sen ", // 0xd1 - "Jiao ", // 0xd2 - "Bao ", // 0xd3 - "Jing ", // 0xd4 - "Yian ", // 0xd5 - "Ai ", // 0xd6 - "Ye ", // 0xd7 - "Ru ", // 0xd8 - "Shu ", // 0xd9 - "Meng ", // 0xda - "Xun ", // 0xdb - "Yao ", // 0xdc - "Pu ", // 0xdd - "Li ", // 0xde - "Chen ", // 0xdf - "Kuang ", // 0xe0 - "Die ", // 0xe1 - "[?] ", // 0xe2 - "Yan ", // 0xe3 - "Huo ", // 0xe4 - "Lu ", // 0xe5 - "Xi ", // 0xe6 - "Rong ", // 0xe7 - "Long ", // 0xe8 - "Nang ", // 0xe9 - "Luo ", // 0xea - "Luan ", // 0xeb - "Shai ", // 0xec - "Tang ", // 0xed - "Yan ", // 0xee - "Chu ", // 0xef - "Yue ", // 0xf0 - "Yue ", // 0xf1 - "Qu ", // 0xf2 - "Yi ", // 0xf3 - "Geng ", // 0xf4 - "Ye ", // 0xf5 - "Hu ", // 0xf6 - "He ", // 0xf7 - "Shu ", // 0xf8 - "Cao ", // 0xf9 - "Cao ", // 0xfa - "Noboru ", // 0xfb - "Man ", // 0xfc - "Ceng ", // 0xfd - "Ceng ", // 0xfe - "Ti ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x067.go b/vendor/github.com/mozillazg/go-unidecode/table/x067.go deleted file mode 100644 index a1ea181..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x067.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x067 = []string{ - "Zui ", // 0x00 - "Can ", // 0x01 - "Xu ", // 0x02 - "Hui ", // 0x03 - "Yin ", // 0x04 - "Qie ", // 0x05 - "Fen ", // 0x06 - "Pi ", // 0x07 - "Yue ", // 0x08 - "You ", // 0x09 - "Ruan ", // 0x0a - "Peng ", // 0x0b - "Ban ", // 0x0c - "Fu ", // 0x0d - "Ling ", // 0x0e - "Fei ", // 0x0f - "Qu ", // 0x10 - "[?] ", // 0x11 - "Nu ", // 0x12 - "Tiao ", // 0x13 - "Shuo ", // 0x14 - "Zhen ", // 0x15 - "Lang ", // 0x16 - "Lang ", // 0x17 - "Juan ", // 0x18 - "Ming ", // 0x19 - "Huang ", // 0x1a - "Wang ", // 0x1b - "Tun ", // 0x1c - "Zhao ", // 0x1d - "Ji ", // 0x1e - "Qi ", // 0x1f - "Ying ", // 0x20 - "Zong ", // 0x21 - "Wang ", // 0x22 - "Tong ", // 0x23 - "Lang ", // 0x24 - "[?] ", // 0x25 - "Meng ", // 0x26 - "Long ", // 0x27 - "Mu ", // 0x28 - "Deng ", // 0x29 - "Wei ", // 0x2a - "Mo ", // 0x2b - "Ben ", // 0x2c - "Zha ", // 0x2d - "Zhu ", // 0x2e - "Zhu ", // 0x2f - "[?] ", // 0x30 - "Zhu ", // 0x31 - "Ren ", // 0x32 - "Ba ", // 0x33 - "Po ", // 0x34 - "Duo ", // 0x35 - "Duo ", // 0x36 - "Dao ", // 0x37 - "Li ", // 0x38 - "Qiu ", // 0x39 - "Ji ", // 0x3a - "Jiu ", // 0x3b - "Bi ", // 0x3c - "Xiu ", // 0x3d - "Ting ", // 0x3e - "Ci ", // 0x3f - "Sha ", // 0x40 - "Eburi ", // 0x41 - "Za ", // 0x42 - "Quan ", // 0x43 - "Qian ", // 0x44 - "Yu ", // 0x45 - "Gan ", // 0x46 - "Wu ", // 0x47 - "Cha ", // 0x48 - "Shan ", // 0x49 - "Xun ", // 0x4a - "Fan ", // 0x4b - "Wu ", // 0x4c - "Zi ", // 0x4d - "Li ", // 0x4e - "Xing ", // 0x4f - "Cai ", // 0x50 - "Cun ", // 0x51 - "Ren ", // 0x52 - "Shao ", // 0x53 - "Tuo ", // 0x54 - "Di ", // 0x55 - "Zhang ", // 0x56 - "Mang ", // 0x57 - "Chi ", // 0x58 - "Yi ", // 0x59 - "Gu ", // 0x5a - "Gong ", // 0x5b - "Du ", // 0x5c - "Yi ", // 0x5d - "Qi ", // 0x5e - "Shu ", // 0x5f - "Gang ", // 0x60 - "Tiao ", // 0x61 - "Moku ", // 0x62 - "Soma ", // 0x63 - "Tochi ", // 0x64 - "Lai ", // 0x65 - "Sugi ", // 0x66 - "Mang ", // 0x67 - "Yang ", // 0x68 - "Ma ", // 0x69 - "Miao ", // 0x6a - "Si ", // 0x6b - "Yuan ", // 0x6c - "Hang ", // 0x6d - "Fei ", // 0x6e - "Bei ", // 0x6f - "Jie ", // 0x70 - "Dong ", // 0x71 - "Gao ", // 0x72 - "Yao ", // 0x73 - "Xian ", // 0x74 - "Chu ", // 0x75 - "Qun ", // 0x76 - "Pa ", // 0x77 - "Shu ", // 0x78 - "Hua ", // 0x79 - "Xin ", // 0x7a - "Chou ", // 0x7b - "Zhu ", // 0x7c - "Chou ", // 0x7d - "Song ", // 0x7e - "Ban ", // 0x7f - "Song ", // 0x80 - "Ji ", // 0x81 - "Yue ", // 0x82 - "Jin ", // 0x83 - "Gou ", // 0x84 - "Ji ", // 0x85 - "Mao ", // 0x86 - "Pi ", // 0x87 - "Bi ", // 0x88 - "Wang ", // 0x89 - "Ang ", // 0x8a - "Fang ", // 0x8b - "Fen ", // 0x8c - "Yi ", // 0x8d - "Fu ", // 0x8e - "Nan ", // 0x8f - "Xi ", // 0x90 - "Hu ", // 0x91 - "Ya ", // 0x92 - "Dou ", // 0x93 - "Xun ", // 0x94 - "Zhen ", // 0x95 - "Yao ", // 0x96 - "Lin ", // 0x97 - "Rui ", // 0x98 - "E ", // 0x99 - "Mei ", // 0x9a - "Zhao ", // 0x9b - "Guo ", // 0x9c - "Zhi ", // 0x9d - "Cong ", // 0x9e - "Yun ", // 0x9f - "Waku ", // 0xa0 - "Dou ", // 0xa1 - "Shu ", // 0xa2 - "Zao ", // 0xa3 - "[?] ", // 0xa4 - "Li ", // 0xa5 - "Haze ", // 0xa6 - "Jian ", // 0xa7 - "Cheng ", // 0xa8 - "Matsu ", // 0xa9 - "Qiang ", // 0xaa - "Feng ", // 0xab - "Nan ", // 0xac - "Xiao ", // 0xad - "Xian ", // 0xae - "Ku ", // 0xaf - "Ping ", // 0xb0 - "Yi ", // 0xb1 - "Xi ", // 0xb2 - "Zhi ", // 0xb3 - "Guai ", // 0xb4 - "Xiao ", // 0xb5 - "Jia ", // 0xb6 - "Jia ", // 0xb7 - "Gou ", // 0xb8 - "Fu ", // 0xb9 - "Mo ", // 0xba - "Yi ", // 0xbb - "Ye ", // 0xbc - "Ye ", // 0xbd - "Shi ", // 0xbe - "Nie ", // 0xbf - "Bi ", // 0xc0 - "Duo ", // 0xc1 - "Yi ", // 0xc2 - "Ling ", // 0xc3 - "Bing ", // 0xc4 - "Ni ", // 0xc5 - "La ", // 0xc6 - "He ", // 0xc7 - "Pan ", // 0xc8 - "Fan ", // 0xc9 - "Zhong ", // 0xca - "Dai ", // 0xcb - "Ci ", // 0xcc - "Yang ", // 0xcd - "Fu ", // 0xce - "Bo ", // 0xcf - "Mou ", // 0xd0 - "Gan ", // 0xd1 - "Qi ", // 0xd2 - "Ran ", // 0xd3 - "Rou ", // 0xd4 - "Mao ", // 0xd5 - "Zhao ", // 0xd6 - "Song ", // 0xd7 - "Zhe ", // 0xd8 - "Xia ", // 0xd9 - "You ", // 0xda - "Shen ", // 0xdb - "Ju ", // 0xdc - "Tuo ", // 0xdd - "Zuo ", // 0xde - "Nan ", // 0xdf - "Ning ", // 0xe0 - "Yong ", // 0xe1 - "Di ", // 0xe2 - "Zhi ", // 0xe3 - "Zha ", // 0xe4 - "Cha ", // 0xe5 - "Dan ", // 0xe6 - "Gu ", // 0xe7 - "Pu ", // 0xe8 - "Jiu ", // 0xe9 - "Ao ", // 0xea - "Fu ", // 0xeb - "Jian ", // 0xec - "Bo ", // 0xed - "Duo ", // 0xee - "Ke ", // 0xef - "Nai ", // 0xf0 - "Zhu ", // 0xf1 - "Bi ", // 0xf2 - "Liu ", // 0xf3 - "Chai ", // 0xf4 - "Zha ", // 0xf5 - "Si ", // 0xf6 - "Zhu ", // 0xf7 - "Pei ", // 0xf8 - "Shi ", // 0xf9 - "Guai ", // 0xfa - "Cha ", // 0xfb - "Yao ", // 0xfc - "Jue ", // 0xfd - "Jiu ", // 0xfe - "Shi ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x068.go b/vendor/github.com/mozillazg/go-unidecode/table/x068.go deleted file mode 100644 index 130be4b..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x068.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x068 = []string{ - "Zhi ", // 0x00 - "Liu ", // 0x01 - "Mei ", // 0x02 - "Hoy ", // 0x03 - "Rong ", // 0x04 - "Zha ", // 0x05 - "[?] ", // 0x06 - "Biao ", // 0x07 - "Zhan ", // 0x08 - "Jie ", // 0x09 - "Long ", // 0x0a - "Dong ", // 0x0b - "Lu ", // 0x0c - "Sayng ", // 0x0d - "Li ", // 0x0e - "Lan ", // 0x0f - "Yong ", // 0x10 - "Shu ", // 0x11 - "Xun ", // 0x12 - "Shuan ", // 0x13 - "Qi ", // 0x14 - "Zhen ", // 0x15 - "Qi ", // 0x16 - "Li ", // 0x17 - "Yi ", // 0x18 - "Xiang ", // 0x19 - "Zhen ", // 0x1a - "Li ", // 0x1b - "Su ", // 0x1c - "Gua ", // 0x1d - "Kan ", // 0x1e - "Bing ", // 0x1f - "Ren ", // 0x20 - "Xiao ", // 0x21 - "Bo ", // 0x22 - "Ren ", // 0x23 - "Bing ", // 0x24 - "Zi ", // 0x25 - "Chou ", // 0x26 - "Yi ", // 0x27 - "Jie ", // 0x28 - "Xu ", // 0x29 - "Zhu ", // 0x2a - "Jian ", // 0x2b - "Zui ", // 0x2c - "Er ", // 0x2d - "Er ", // 0x2e - "You ", // 0x2f - "Fa ", // 0x30 - "Gong ", // 0x31 - "Kao ", // 0x32 - "Lao ", // 0x33 - "Zhan ", // 0x34 - "Li ", // 0x35 - "Yin ", // 0x36 - "Yang ", // 0x37 - "He ", // 0x38 - "Gen ", // 0x39 - "Zhi ", // 0x3a - "Chi ", // 0x3b - "Ge ", // 0x3c - "Zai ", // 0x3d - "Luan ", // 0x3e - "Fu ", // 0x3f - "Jie ", // 0x40 - "Hang ", // 0x41 - "Gui ", // 0x42 - "Tao ", // 0x43 - "Guang ", // 0x44 - "Wei ", // 0x45 - "Kuang ", // 0x46 - "Ru ", // 0x47 - "An ", // 0x48 - "An ", // 0x49 - "Juan ", // 0x4a - "Yi ", // 0x4b - "Zhuo ", // 0x4c - "Ku ", // 0x4d - "Zhi ", // 0x4e - "Qiong ", // 0x4f - "Tong ", // 0x50 - "Sang ", // 0x51 - "Sang ", // 0x52 - "Huan ", // 0x53 - "Jie ", // 0x54 - "Jiu ", // 0x55 - "Xue ", // 0x56 - "Duo ", // 0x57 - "Zhui ", // 0x58 - "Yu ", // 0x59 - "Zan ", // 0x5a - "Kasei ", // 0x5b - "Ying ", // 0x5c - "Masu ", // 0x5d - "[?] ", // 0x5e - "Zhan ", // 0x5f - "Ya ", // 0x60 - "Nao ", // 0x61 - "Zhen ", // 0x62 - "Dang ", // 0x63 - "Qi ", // 0x64 - "Qiao ", // 0x65 - "Hua ", // 0x66 - "Kuai ", // 0x67 - "Jiang ", // 0x68 - "Zhuang ", // 0x69 - "Xun ", // 0x6a - "Suo ", // 0x6b - "Sha ", // 0x6c - "Zhen ", // 0x6d - "Bei ", // 0x6e - "Ting ", // 0x6f - "Gua ", // 0x70 - "Jing ", // 0x71 - "Bo ", // 0x72 - "Ben ", // 0x73 - "Fu ", // 0x74 - "Rui ", // 0x75 - "Tong ", // 0x76 - "Jue ", // 0x77 - "Xi ", // 0x78 - "Lang ", // 0x79 - "Liu ", // 0x7a - "Feng ", // 0x7b - "Qi ", // 0x7c - "Wen ", // 0x7d - "Jun ", // 0x7e - "Gan ", // 0x7f - "Cu ", // 0x80 - "Liang ", // 0x81 - "Qiu ", // 0x82 - "Ting ", // 0x83 - "You ", // 0x84 - "Mei ", // 0x85 - "Bang ", // 0x86 - "Long ", // 0x87 - "Peng ", // 0x88 - "Zhuang ", // 0x89 - "Di ", // 0x8a - "Xuan ", // 0x8b - "Tu ", // 0x8c - "Zao ", // 0x8d - "Ao ", // 0x8e - "Gu ", // 0x8f - "Bi ", // 0x90 - "Di ", // 0x91 - "Han ", // 0x92 - "Zi ", // 0x93 - "Zhi ", // 0x94 - "Ren ", // 0x95 - "Bei ", // 0x96 - "Geng ", // 0x97 - "Jian ", // 0x98 - "Huan ", // 0x99 - "Wan ", // 0x9a - "Nuo ", // 0x9b - "Jia ", // 0x9c - "Tiao ", // 0x9d - "Ji ", // 0x9e - "Xiao ", // 0x9f - "Lu ", // 0xa0 - "Huan ", // 0xa1 - "Shao ", // 0xa2 - "Cen ", // 0xa3 - "Fen ", // 0xa4 - "Song ", // 0xa5 - "Meng ", // 0xa6 - "Wu ", // 0xa7 - "Li ", // 0xa8 - "Li ", // 0xa9 - "Dou ", // 0xaa - "Cen ", // 0xab - "Ying ", // 0xac - "Suo ", // 0xad - "Ju ", // 0xae - "Ti ", // 0xaf - "Jie ", // 0xb0 - "Kun ", // 0xb1 - "Zhuo ", // 0xb2 - "Shu ", // 0xb3 - "Chan ", // 0xb4 - "Fan ", // 0xb5 - "Wei ", // 0xb6 - "Jing ", // 0xb7 - "Li ", // 0xb8 - "Bing ", // 0xb9 - "Fumoto ", // 0xba - "Shikimi ", // 0xbb - "Tao ", // 0xbc - "Zhi ", // 0xbd - "Lai ", // 0xbe - "Lian ", // 0xbf - "Jian ", // 0xc0 - "Zhuo ", // 0xc1 - "Ling ", // 0xc2 - "Li ", // 0xc3 - "Qi ", // 0xc4 - "Bing ", // 0xc5 - "Zhun ", // 0xc6 - "Cong ", // 0xc7 - "Qian ", // 0xc8 - "Mian ", // 0xc9 - "Qi ", // 0xca - "Qi ", // 0xcb - "Cai ", // 0xcc - "Gun ", // 0xcd - "Chan ", // 0xce - "Te ", // 0xcf - "Fei ", // 0xd0 - "Pai ", // 0xd1 - "Bang ", // 0xd2 - "Pou ", // 0xd3 - "Hun ", // 0xd4 - "Zong ", // 0xd5 - "Cheng ", // 0xd6 - "Zao ", // 0xd7 - "Ji ", // 0xd8 - "Li ", // 0xd9 - "Peng ", // 0xda - "Yu ", // 0xdb - "Yu ", // 0xdc - "Gu ", // 0xdd - "Hun ", // 0xde - "Dong ", // 0xdf - "Tang ", // 0xe0 - "Gang ", // 0xe1 - "Wang ", // 0xe2 - "Di ", // 0xe3 - "Xi ", // 0xe4 - "Fan ", // 0xe5 - "Cheng ", // 0xe6 - "Zhan ", // 0xe7 - "Qi ", // 0xe8 - "Yuan ", // 0xe9 - "Yan ", // 0xea - "Yu ", // 0xeb - "Quan ", // 0xec - "Yi ", // 0xed - "Sen ", // 0xee - "Ren ", // 0xef - "Chui ", // 0xf0 - "Leng ", // 0xf1 - "Qi ", // 0xf2 - "Zhuo ", // 0xf3 - "Fu ", // 0xf4 - "Ke ", // 0xf5 - "Lai ", // 0xf6 - "Zou ", // 0xf7 - "Zou ", // 0xf8 - "Zhuo ", // 0xf9 - "Guan ", // 0xfa - "Fen ", // 0xfb - "Fen ", // 0xfc - "Chen ", // 0xfd - "Qiong ", // 0xfe - "Nie ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x069.go b/vendor/github.com/mozillazg/go-unidecode/table/x069.go deleted file mode 100644 index 83665ef..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x069.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x069 = []string{ - "Wan ", // 0x00 - "Guo ", // 0x01 - "Lu ", // 0x02 - "Hao ", // 0x03 - "Jie ", // 0x04 - "Yi ", // 0x05 - "Chou ", // 0x06 - "Ju ", // 0x07 - "Ju ", // 0x08 - "Cheng ", // 0x09 - "Zuo ", // 0x0a - "Liang ", // 0x0b - "Qiang ", // 0x0c - "Zhi ", // 0x0d - "Zhui ", // 0x0e - "Ya ", // 0x0f - "Ju ", // 0x10 - "Bei ", // 0x11 - "Jiao ", // 0x12 - "Zhuo ", // 0x13 - "Zi ", // 0x14 - "Bin ", // 0x15 - "Peng ", // 0x16 - "Ding ", // 0x17 - "Chu ", // 0x18 - "Chang ", // 0x19 - "Kunugi ", // 0x1a - "Momiji ", // 0x1b - "Jian ", // 0x1c - "Gui ", // 0x1d - "Xi ", // 0x1e - "Du ", // 0x1f - "Qian ", // 0x20 - "Kunugi ", // 0x21 - "Soko ", // 0x22 - "Shide ", // 0x23 - "Luo ", // 0x24 - "Zhi ", // 0x25 - "Ken ", // 0x26 - "Myeng ", // 0x27 - "Tafu ", // 0x28 - "[?] ", // 0x29 - "Peng ", // 0x2a - "Zhan ", // 0x2b - "[?] ", // 0x2c - "Tuo ", // 0x2d - "Sen ", // 0x2e - "Duo ", // 0x2f - "Ye ", // 0x30 - "Fou ", // 0x31 - "Wei ", // 0x32 - "Wei ", // 0x33 - "Duan ", // 0x34 - "Jia ", // 0x35 - "Zong ", // 0x36 - "Jian ", // 0x37 - "Yi ", // 0x38 - "Shen ", // 0x39 - "Xi ", // 0x3a - "Yan ", // 0x3b - "Yan ", // 0x3c - "Chuan ", // 0x3d - "Zhan ", // 0x3e - "Chun ", // 0x3f - "Yu ", // 0x40 - "He ", // 0x41 - "Zha ", // 0x42 - "Wo ", // 0x43 - "Pian ", // 0x44 - "Bi ", // 0x45 - "Yao ", // 0x46 - "Huo ", // 0x47 - "Xu ", // 0x48 - "Ruo ", // 0x49 - "Yang ", // 0x4a - "La ", // 0x4b - "Yan ", // 0x4c - "Ben ", // 0x4d - "Hun ", // 0x4e - "Kui ", // 0x4f - "Jie ", // 0x50 - "Kui ", // 0x51 - "Si ", // 0x52 - "Feng ", // 0x53 - "Xie ", // 0x54 - "Tuo ", // 0x55 - "Zhi ", // 0x56 - "Jian ", // 0x57 - "Mu ", // 0x58 - "Mao ", // 0x59 - "Chu ", // 0x5a - "Hu ", // 0x5b - "Hu ", // 0x5c - "Lian ", // 0x5d - "Leng ", // 0x5e - "Ting ", // 0x5f - "Nan ", // 0x60 - "Yu ", // 0x61 - "You ", // 0x62 - "Mei ", // 0x63 - "Song ", // 0x64 - "Xuan ", // 0x65 - "Xuan ", // 0x66 - "Ying ", // 0x67 - "Zhen ", // 0x68 - "Pian ", // 0x69 - "Ye ", // 0x6a - "Ji ", // 0x6b - "Jie ", // 0x6c - "Ye ", // 0x6d - "Chu ", // 0x6e - "Shun ", // 0x6f - "Yu ", // 0x70 - "Cou ", // 0x71 - "Wei ", // 0x72 - "Mei ", // 0x73 - "Di ", // 0x74 - "Ji ", // 0x75 - "Jie ", // 0x76 - "Kai ", // 0x77 - "Qiu ", // 0x78 - "Ying ", // 0x79 - "Rou ", // 0x7a - "Heng ", // 0x7b - "Lou ", // 0x7c - "Le ", // 0x7d - "Hazou ", // 0x7e - "Katsura ", // 0x7f - "Pin ", // 0x80 - "Muro ", // 0x81 - "Gai ", // 0x82 - "Tan ", // 0x83 - "Lan ", // 0x84 - "Yun ", // 0x85 - "Yu ", // 0x86 - "Chen ", // 0x87 - "Lu ", // 0x88 - "Ju ", // 0x89 - "Sakaki ", // 0x8a - "[?] ", // 0x8b - "Pi ", // 0x8c - "Xie ", // 0x8d - "Jia ", // 0x8e - "Yi ", // 0x8f - "Zhan ", // 0x90 - "Fu ", // 0x91 - "Nai ", // 0x92 - "Mi ", // 0x93 - "Lang ", // 0x94 - "Rong ", // 0x95 - "Gu ", // 0x96 - "Jian ", // 0x97 - "Ju ", // 0x98 - "Ta ", // 0x99 - "Yao ", // 0x9a - "Zhen ", // 0x9b - "Bang ", // 0x9c - "Sha ", // 0x9d - "Yuan ", // 0x9e - "Zi ", // 0x9f - "Ming ", // 0xa0 - "Su ", // 0xa1 - "Jia ", // 0xa2 - "Yao ", // 0xa3 - "Jie ", // 0xa4 - "Huang ", // 0xa5 - "Gan ", // 0xa6 - "Fei ", // 0xa7 - "Zha ", // 0xa8 - "Qian ", // 0xa9 - "Ma ", // 0xaa - "Sun ", // 0xab - "Yuan ", // 0xac - "Xie ", // 0xad - "Rong ", // 0xae - "Shi ", // 0xaf - "Zhi ", // 0xb0 - "Cui ", // 0xb1 - "Yun ", // 0xb2 - "Ting ", // 0xb3 - "Liu ", // 0xb4 - "Rong ", // 0xb5 - "Tang ", // 0xb6 - "Que ", // 0xb7 - "Zhai ", // 0xb8 - "Si ", // 0xb9 - "Sheng ", // 0xba - "Ta ", // 0xbb - "Ke ", // 0xbc - "Xi ", // 0xbd - "Gu ", // 0xbe - "Qi ", // 0xbf - "Kao ", // 0xc0 - "Gao ", // 0xc1 - "Sun ", // 0xc2 - "Pan ", // 0xc3 - "Tao ", // 0xc4 - "Ge ", // 0xc5 - "Xun ", // 0xc6 - "Dian ", // 0xc7 - "Nou ", // 0xc8 - "Ji ", // 0xc9 - "Shuo ", // 0xca - "Gou ", // 0xcb - "Chui ", // 0xcc - "Qiang ", // 0xcd - "Cha ", // 0xce - "Qian ", // 0xcf - "Huai ", // 0xd0 - "Mei ", // 0xd1 - "Xu ", // 0xd2 - "Gang ", // 0xd3 - "Gao ", // 0xd4 - "Zhuo ", // 0xd5 - "Tuo ", // 0xd6 - "Hashi ", // 0xd7 - "Yang ", // 0xd8 - "Dian ", // 0xd9 - "Jia ", // 0xda - "Jian ", // 0xdb - "Zui ", // 0xdc - "Kashi ", // 0xdd - "Ori ", // 0xde - "Bin ", // 0xdf - "Zhu ", // 0xe0 - "[?] ", // 0xe1 - "Xi ", // 0xe2 - "Qi ", // 0xe3 - "Lian ", // 0xe4 - "Hui ", // 0xe5 - "Yong ", // 0xe6 - "Qian ", // 0xe7 - "Guo ", // 0xe8 - "Gai ", // 0xe9 - "Gai ", // 0xea - "Tuan ", // 0xeb - "Hua ", // 0xec - "Cu ", // 0xed - "Sen ", // 0xee - "Cui ", // 0xef - "Beng ", // 0xf0 - "You ", // 0xf1 - "Hu ", // 0xf2 - "Jiang ", // 0xf3 - "Hu ", // 0xf4 - "Huan ", // 0xf5 - "Kui ", // 0xf6 - "Yi ", // 0xf7 - "Nie ", // 0xf8 - "Gao ", // 0xf9 - "Kang ", // 0xfa - "Gui ", // 0xfb - "Gui ", // 0xfc - "Cao ", // 0xfd - "Man ", // 0xfe - "Jin ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x06a.go b/vendor/github.com/mozillazg/go-unidecode/table/x06a.go deleted file mode 100644 index 2f7d3ce..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x06a.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x06a = []string{ - "Di ", // 0x00 - "Zhuang ", // 0x01 - "Le ", // 0x02 - "Lang ", // 0x03 - "Chen ", // 0x04 - "Cong ", // 0x05 - "Li ", // 0x06 - "Xiu ", // 0x07 - "Qing ", // 0x08 - "Shuang ", // 0x09 - "Fan ", // 0x0a - "Tong ", // 0x0b - "Guan ", // 0x0c - "Ji ", // 0x0d - "Suo ", // 0x0e - "Lei ", // 0x0f - "Lu ", // 0x10 - "Liang ", // 0x11 - "Mi ", // 0x12 - "Lou ", // 0x13 - "Chao ", // 0x14 - "Su ", // 0x15 - "Ke ", // 0x16 - "Shu ", // 0x17 - "Tang ", // 0x18 - "Biao ", // 0x19 - "Lu ", // 0x1a - "Jiu ", // 0x1b - "Shu ", // 0x1c - "Zha ", // 0x1d - "Shu ", // 0x1e - "Zhang ", // 0x1f - "Men ", // 0x20 - "Mo ", // 0x21 - "Niao ", // 0x22 - "Yang ", // 0x23 - "Tiao ", // 0x24 - "Peng ", // 0x25 - "Zhu ", // 0x26 - "Sha ", // 0x27 - "Xi ", // 0x28 - "Quan ", // 0x29 - "Heng ", // 0x2a - "Jian ", // 0x2b - "Cong ", // 0x2c - "[?] ", // 0x2d - "Hokuso ", // 0x2e - "Qiang ", // 0x2f - "Tara ", // 0x30 - "Ying ", // 0x31 - "Er ", // 0x32 - "Xin ", // 0x33 - "Zhi ", // 0x34 - "Qiao ", // 0x35 - "Zui ", // 0x36 - "Cong ", // 0x37 - "Pu ", // 0x38 - "Shu ", // 0x39 - "Hua ", // 0x3a - "Kui ", // 0x3b - "Zhen ", // 0x3c - "Zun ", // 0x3d - "Yue ", // 0x3e - "Zhan ", // 0x3f - "Xi ", // 0x40 - "Xun ", // 0x41 - "Dian ", // 0x42 - "Fa ", // 0x43 - "Gan ", // 0x44 - "Mo ", // 0x45 - "Wu ", // 0x46 - "Qiao ", // 0x47 - "Nao ", // 0x48 - "Lin ", // 0x49 - "Liu ", // 0x4a - "Qiao ", // 0x4b - "Xian ", // 0x4c - "Run ", // 0x4d - "Fan ", // 0x4e - "Zhan ", // 0x4f - "Tuo ", // 0x50 - "Lao ", // 0x51 - "Yun ", // 0x52 - "Shun ", // 0x53 - "Tui ", // 0x54 - "Cheng ", // 0x55 - "Tang ", // 0x56 - "Meng ", // 0x57 - "Ju ", // 0x58 - "Cheng ", // 0x59 - "Su ", // 0x5a - "Jue ", // 0x5b - "Jue ", // 0x5c - "Tan ", // 0x5d - "Hui ", // 0x5e - "Ji ", // 0x5f - "Nuo ", // 0x60 - "Xiang ", // 0x61 - "Tuo ", // 0x62 - "Ning ", // 0x63 - "Rui ", // 0x64 - "Zhu ", // 0x65 - "Chuang ", // 0x66 - "Zeng ", // 0x67 - "Fen ", // 0x68 - "Qiong ", // 0x69 - "Ran ", // 0x6a - "Heng ", // 0x6b - "Cen ", // 0x6c - "Gu ", // 0x6d - "Liu ", // 0x6e - "Lao ", // 0x6f - "Gao ", // 0x70 - "Chu ", // 0x71 - "Zusa ", // 0x72 - "Nude ", // 0x73 - "Ca ", // 0x74 - "San ", // 0x75 - "Ji ", // 0x76 - "Dou ", // 0x77 - "Shou ", // 0x78 - "Lu ", // 0x79 - "[?] ", // 0x7a - "[?] ", // 0x7b - "Yuan ", // 0x7c - "Ta ", // 0x7d - "Shu ", // 0x7e - "Jiang ", // 0x7f - "Tan ", // 0x80 - "Lin ", // 0x81 - "Nong ", // 0x82 - "Yin ", // 0x83 - "Xi ", // 0x84 - "Sui ", // 0x85 - "Shan ", // 0x86 - "Zui ", // 0x87 - "Xuan ", // 0x88 - "Cheng ", // 0x89 - "Gan ", // 0x8a - "Ju ", // 0x8b - "Zui ", // 0x8c - "Yi ", // 0x8d - "Qin ", // 0x8e - "Pu ", // 0x8f - "Yan ", // 0x90 - "Lei ", // 0x91 - "Feng ", // 0x92 - "Hui ", // 0x93 - "Dang ", // 0x94 - "Ji ", // 0x95 - "Sui ", // 0x96 - "Bo ", // 0x97 - "Bi ", // 0x98 - "Ding ", // 0x99 - "Chu ", // 0x9a - "Zhua ", // 0x9b - "Kuai ", // 0x9c - "Ji ", // 0x9d - "Jie ", // 0x9e - "Jia ", // 0x9f - "Qing ", // 0xa0 - "Zhe ", // 0xa1 - "Jian ", // 0xa2 - "Qiang ", // 0xa3 - "Dao ", // 0xa4 - "Yi ", // 0xa5 - "Biao ", // 0xa6 - "Song ", // 0xa7 - "She ", // 0xa8 - "Lin ", // 0xa9 - "Kunugi ", // 0xaa - "Cha ", // 0xab - "Meng ", // 0xac - "Yin ", // 0xad - "Tao ", // 0xae - "Tai ", // 0xaf - "Mian ", // 0xb0 - "Qi ", // 0xb1 - "Toan ", // 0xb2 - "Bin ", // 0xb3 - "Huo ", // 0xb4 - "Ji ", // 0xb5 - "Qian ", // 0xb6 - "Mi ", // 0xb7 - "Ning ", // 0xb8 - "Yi ", // 0xb9 - "Gao ", // 0xba - "Jian ", // 0xbb - "Yin ", // 0xbc - "Er ", // 0xbd - "Qing ", // 0xbe - "Yan ", // 0xbf - "Qi ", // 0xc0 - "Mi ", // 0xc1 - "Zhao ", // 0xc2 - "Gui ", // 0xc3 - "Chun ", // 0xc4 - "Ji ", // 0xc5 - "Kui ", // 0xc6 - "Po ", // 0xc7 - "Deng ", // 0xc8 - "Chu ", // 0xc9 - "[?] ", // 0xca - "Mian ", // 0xcb - "You ", // 0xcc - "Zhi ", // 0xcd - "Guang ", // 0xce - "Qian ", // 0xcf - "Lei ", // 0xd0 - "Lei ", // 0xd1 - "Sa ", // 0xd2 - "Lu ", // 0xd3 - "Li ", // 0xd4 - "Cuan ", // 0xd5 - "Lu ", // 0xd6 - "Mie ", // 0xd7 - "Hui ", // 0xd8 - "Ou ", // 0xd9 - "Lu ", // 0xda - "Jie ", // 0xdb - "Gao ", // 0xdc - "Du ", // 0xdd - "Yuan ", // 0xde - "Li ", // 0xdf - "Fei ", // 0xe0 - "Zhuo ", // 0xe1 - "Sou ", // 0xe2 - "Lian ", // 0xe3 - "Tamo ", // 0xe4 - "Chu ", // 0xe5 - "[?] ", // 0xe6 - "Zhu ", // 0xe7 - "Lu ", // 0xe8 - "Yan ", // 0xe9 - "Li ", // 0xea - "Zhu ", // 0xeb - "Chen ", // 0xec - "Jie ", // 0xed - "E ", // 0xee - "Su ", // 0xef - "Huai ", // 0xf0 - "Nie ", // 0xf1 - "Yu ", // 0xf2 - "Long ", // 0xf3 - "Lai ", // 0xf4 - "[?] ", // 0xf5 - "Xian ", // 0xf6 - "Kwi ", // 0xf7 - "Ju ", // 0xf8 - "Xiao ", // 0xf9 - "Ling ", // 0xfa - "Ying ", // 0xfb - "Jian ", // 0xfc - "Yin ", // 0xfd - "You ", // 0xfe - "Ying ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x06b.go b/vendor/github.com/mozillazg/go-unidecode/table/x06b.go deleted file mode 100644 index 4186b40..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x06b.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x06b = []string{ - "Xiang ", // 0x00 - "Nong ", // 0x01 - "Bo ", // 0x02 - "Chan ", // 0x03 - "Lan ", // 0x04 - "Ju ", // 0x05 - "Shuang ", // 0x06 - "She ", // 0x07 - "Wei ", // 0x08 - "Cong ", // 0x09 - "Quan ", // 0x0a - "Qu ", // 0x0b - "Cang ", // 0x0c - "[?] ", // 0x0d - "Yu ", // 0x0e - "Luo ", // 0x0f - "Li ", // 0x10 - "Zan ", // 0x11 - "Luan ", // 0x12 - "Dang ", // 0x13 - "Jue ", // 0x14 - "Em ", // 0x15 - "Lan ", // 0x16 - "Lan ", // 0x17 - "Zhu ", // 0x18 - "Lei ", // 0x19 - "Li ", // 0x1a - "Ba ", // 0x1b - "Nang ", // 0x1c - "Yu ", // 0x1d - "Ling ", // 0x1e - "Tsuki ", // 0x1f - "Qian ", // 0x20 - "Ci ", // 0x21 - "Huan ", // 0x22 - "Xin ", // 0x23 - "Yu ", // 0x24 - "Yu ", // 0x25 - "Qian ", // 0x26 - "Ou ", // 0x27 - "Xu ", // 0x28 - "Chao ", // 0x29 - "Chu ", // 0x2a - "Chi ", // 0x2b - "Kai ", // 0x2c - "Yi ", // 0x2d - "Jue ", // 0x2e - "Xi ", // 0x2f - "Xu ", // 0x30 - "Xia ", // 0x31 - "Yu ", // 0x32 - "Kuai ", // 0x33 - "Lang ", // 0x34 - "Kuan ", // 0x35 - "Shuo ", // 0x36 - "Xi ", // 0x37 - "Ai ", // 0x38 - "Yi ", // 0x39 - "Qi ", // 0x3a - "Hu ", // 0x3b - "Chi ", // 0x3c - "Qin ", // 0x3d - "Kuan ", // 0x3e - "Kan ", // 0x3f - "Kuan ", // 0x40 - "Kan ", // 0x41 - "Chuan ", // 0x42 - "Sha ", // 0x43 - "Gua ", // 0x44 - "Yin ", // 0x45 - "Xin ", // 0x46 - "Xie ", // 0x47 - "Yu ", // 0x48 - "Qian ", // 0x49 - "Xiao ", // 0x4a - "Yi ", // 0x4b - "Ge ", // 0x4c - "Wu ", // 0x4d - "Tan ", // 0x4e - "Jin ", // 0x4f - "Ou ", // 0x50 - "Hu ", // 0x51 - "Ti ", // 0x52 - "Huan ", // 0x53 - "Xu ", // 0x54 - "Pen ", // 0x55 - "Xi ", // 0x56 - "Xiao ", // 0x57 - "Xu ", // 0x58 - "Xi ", // 0x59 - "Sen ", // 0x5a - "Lian ", // 0x5b - "Chu ", // 0x5c - "Yi ", // 0x5d - "Kan ", // 0x5e - "Yu ", // 0x5f - "Chuo ", // 0x60 - "Huan ", // 0x61 - "Zhi ", // 0x62 - "Zheng ", // 0x63 - "Ci ", // 0x64 - "Bu ", // 0x65 - "Wu ", // 0x66 - "Qi ", // 0x67 - "Bu ", // 0x68 - "Bu ", // 0x69 - "Wai ", // 0x6a - "Ju ", // 0x6b - "Qian ", // 0x6c - "Chi ", // 0x6d - "Se ", // 0x6e - "Chi ", // 0x6f - "Se ", // 0x70 - "Zhong ", // 0x71 - "Sui ", // 0x72 - "Sui ", // 0x73 - "Li ", // 0x74 - "Cuo ", // 0x75 - "Yu ", // 0x76 - "Li ", // 0x77 - "Gui ", // 0x78 - "Dai ", // 0x79 - "Dai ", // 0x7a - "Si ", // 0x7b - "Jian ", // 0x7c - "Zhe ", // 0x7d - "Mo ", // 0x7e - "Mo ", // 0x7f - "Yao ", // 0x80 - "Mo ", // 0x81 - "Cu ", // 0x82 - "Yang ", // 0x83 - "Tian ", // 0x84 - "Sheng ", // 0x85 - "Dai ", // 0x86 - "Shang ", // 0x87 - "Xu ", // 0x88 - "Xun ", // 0x89 - "Shu ", // 0x8a - "Can ", // 0x8b - "Jue ", // 0x8c - "Piao ", // 0x8d - "Qia ", // 0x8e - "Qiu ", // 0x8f - "Su ", // 0x90 - "Qing ", // 0x91 - "Yun ", // 0x92 - "Lian ", // 0x93 - "Yi ", // 0x94 - "Fou ", // 0x95 - "Zhi ", // 0x96 - "Ye ", // 0x97 - "Can ", // 0x98 - "Hun ", // 0x99 - "Dan ", // 0x9a - "Ji ", // 0x9b - "Ye ", // 0x9c - "Zhen ", // 0x9d - "Yun ", // 0x9e - "Wen ", // 0x9f - "Chou ", // 0xa0 - "Bin ", // 0xa1 - "Ti ", // 0xa2 - "Jin ", // 0xa3 - "Shang ", // 0xa4 - "Yin ", // 0xa5 - "Diao ", // 0xa6 - "Cu ", // 0xa7 - "Hui ", // 0xa8 - "Cuan ", // 0xa9 - "Yi ", // 0xaa - "Dan ", // 0xab - "Du ", // 0xac - "Jiang ", // 0xad - "Lian ", // 0xae - "Bin ", // 0xaf - "Du ", // 0xb0 - "Tsukusu ", // 0xb1 - "Jian ", // 0xb2 - "Shu ", // 0xb3 - "Ou ", // 0xb4 - "Duan ", // 0xb5 - "Zhu ", // 0xb6 - "Yin ", // 0xb7 - "Qing ", // 0xb8 - "Yi ", // 0xb9 - "Sha ", // 0xba - "Que ", // 0xbb - "Ke ", // 0xbc - "Yao ", // 0xbd - "Jun ", // 0xbe - "Dian ", // 0xbf - "Hui ", // 0xc0 - "Hui ", // 0xc1 - "Gu ", // 0xc2 - "Que ", // 0xc3 - "Ji ", // 0xc4 - "Yi ", // 0xc5 - "Ou ", // 0xc6 - "Hui ", // 0xc7 - "Duan ", // 0xc8 - "Yi ", // 0xc9 - "Xiao ", // 0xca - "Wu ", // 0xcb - "Guan ", // 0xcc - "Mu ", // 0xcd - "Mei ", // 0xce - "Mei ", // 0xcf - "Ai ", // 0xd0 - "Zuo ", // 0xd1 - "Du ", // 0xd2 - "Yu ", // 0xd3 - "Bi ", // 0xd4 - "Bi ", // 0xd5 - "Bi ", // 0xd6 - "Pi ", // 0xd7 - "Pi ", // 0xd8 - "Bi ", // 0xd9 - "Chan ", // 0xda - "Mao ", // 0xdb - "[?] ", // 0xdc - "[?] ", // 0xdd - "Pu ", // 0xde - "Mushiru ", // 0xdf - "Jia ", // 0xe0 - "Zhan ", // 0xe1 - "Sai ", // 0xe2 - "Mu ", // 0xe3 - "Tuo ", // 0xe4 - "Xun ", // 0xe5 - "Er ", // 0xe6 - "Rong ", // 0xe7 - "Xian ", // 0xe8 - "Ju ", // 0xe9 - "Mu ", // 0xea - "Hao ", // 0xeb - "Qiu ", // 0xec - "Dou ", // 0xed - "Mushiru ", // 0xee - "Tan ", // 0xef - "Pei ", // 0xf0 - "Ju ", // 0xf1 - "Duo ", // 0xf2 - "Cui ", // 0xf3 - "Bi ", // 0xf4 - "San ", // 0xf5 - "[?] ", // 0xf6 - "Mao ", // 0xf7 - "Sui ", // 0xf8 - "Yu ", // 0xf9 - "Yu ", // 0xfa - "Tuo ", // 0xfb - "He ", // 0xfc - "Jian ", // 0xfd - "Ta ", // 0xfe - "San ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x06c.go b/vendor/github.com/mozillazg/go-unidecode/table/x06c.go deleted file mode 100644 index b6345fc..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x06c.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x06c = []string{ - "Lu ", // 0x00 - "Mu ", // 0x01 - "Li ", // 0x02 - "Tong ", // 0x03 - "Rong ", // 0x04 - "Chang ", // 0x05 - "Pu ", // 0x06 - "Luo ", // 0x07 - "Zhan ", // 0x08 - "Sao ", // 0x09 - "Zhan ", // 0x0a - "Meng ", // 0x0b - "Luo ", // 0x0c - "Qu ", // 0x0d - "Die ", // 0x0e - "Shi ", // 0x0f - "Di ", // 0x10 - "Min ", // 0x11 - "Jue ", // 0x12 - "Mang ", // 0x13 - "Qi ", // 0x14 - "Pie ", // 0x15 - "Nai ", // 0x16 - "Qi ", // 0x17 - "Dao ", // 0x18 - "Xian ", // 0x19 - "Chuan ", // 0x1a - "Fen ", // 0x1b - "Ri ", // 0x1c - "Nei ", // 0x1d - "[?] ", // 0x1e - "Fu ", // 0x1f - "Shen ", // 0x20 - "Dong ", // 0x21 - "Qing ", // 0x22 - "Qi ", // 0x23 - "Yin ", // 0x24 - "Xi ", // 0x25 - "Hai ", // 0x26 - "Yang ", // 0x27 - "An ", // 0x28 - "Ya ", // 0x29 - "Ke ", // 0x2a - "Qing ", // 0x2b - "Ya ", // 0x2c - "Dong ", // 0x2d - "Dan ", // 0x2e - "Lu ", // 0x2f - "Qing ", // 0x30 - "Yang ", // 0x31 - "Yun ", // 0x32 - "Yun ", // 0x33 - "Shui ", // 0x34 - "San ", // 0x35 - "Zheng ", // 0x36 - "Bing ", // 0x37 - "Yong ", // 0x38 - "Dang ", // 0x39 - "Shitamizu ", // 0x3a - "Le ", // 0x3b - "Ni ", // 0x3c - "Tun ", // 0x3d - "Fan ", // 0x3e - "Gui ", // 0x3f - "Ting ", // 0x40 - "Zhi ", // 0x41 - "Qiu ", // 0x42 - "Bin ", // 0x43 - "Ze ", // 0x44 - "Mian ", // 0x45 - "Cuan ", // 0x46 - "Hui ", // 0x47 - "Diao ", // 0x48 - "Yi ", // 0x49 - "Cha ", // 0x4a - "Zhuo ", // 0x4b - "Chuan ", // 0x4c - "Wan ", // 0x4d - "Fan ", // 0x4e - "Dai ", // 0x4f - "Xi ", // 0x50 - "Tuo ", // 0x51 - "Mang ", // 0x52 - "Qiu ", // 0x53 - "Qi ", // 0x54 - "Shan ", // 0x55 - "Pai ", // 0x56 - "Han ", // 0x57 - "Qian ", // 0x58 - "Wu ", // 0x59 - "Wu ", // 0x5a - "Xun ", // 0x5b - "Si ", // 0x5c - "Ru ", // 0x5d - "Gong ", // 0x5e - "Jiang ", // 0x5f - "Chi ", // 0x60 - "Wu ", // 0x61 - "Tsuchi ", // 0x62 - "[?] ", // 0x63 - "Tang ", // 0x64 - "Zhi ", // 0x65 - "Chi ", // 0x66 - "Qian ", // 0x67 - "Mi ", // 0x68 - "Yu ", // 0x69 - "Wang ", // 0x6a - "Qing ", // 0x6b - "Jing ", // 0x6c - "Rui ", // 0x6d - "Jun ", // 0x6e - "Hong ", // 0x6f - "Tai ", // 0x70 - "Quan ", // 0x71 - "Ji ", // 0x72 - "Bian ", // 0x73 - "Bian ", // 0x74 - "Gan ", // 0x75 - "Wen ", // 0x76 - "Zhong ", // 0x77 - "Fang ", // 0x78 - "Xiong ", // 0x79 - "Jue ", // 0x7a - "Hang ", // 0x7b - "Niou ", // 0x7c - "Qi ", // 0x7d - "Fen ", // 0x7e - "Xu ", // 0x7f - "Xu ", // 0x80 - "Qin ", // 0x81 - "Yi ", // 0x82 - "Wo ", // 0x83 - "Yun ", // 0x84 - "Yuan ", // 0x85 - "Hang ", // 0x86 - "Yan ", // 0x87 - "Chen ", // 0x88 - "Chen ", // 0x89 - "Dan ", // 0x8a - "You ", // 0x8b - "Dun ", // 0x8c - "Hu ", // 0x8d - "Huo ", // 0x8e - "Qie ", // 0x8f - "Mu ", // 0x90 - "Rou ", // 0x91 - "Mei ", // 0x92 - "Ta ", // 0x93 - "Mian ", // 0x94 - "Wu ", // 0x95 - "Chong ", // 0x96 - "Tian ", // 0x97 - "Bi ", // 0x98 - "Sha ", // 0x99 - "Zhi ", // 0x9a - "Pei ", // 0x9b - "Pan ", // 0x9c - "Zhui ", // 0x9d - "Za ", // 0x9e - "Gou ", // 0x9f - "Liu ", // 0xa0 - "Mei ", // 0xa1 - "Ze ", // 0xa2 - "Feng ", // 0xa3 - "Ou ", // 0xa4 - "Li ", // 0xa5 - "Lun ", // 0xa6 - "Cang ", // 0xa7 - "Feng ", // 0xa8 - "Wei ", // 0xa9 - "Hu ", // 0xaa - "Mo ", // 0xab - "Mei ", // 0xac - "Shu ", // 0xad - "Ju ", // 0xae - "Zan ", // 0xaf - "Tuo ", // 0xb0 - "Tuo ", // 0xb1 - "Tuo ", // 0xb2 - "He ", // 0xb3 - "Li ", // 0xb4 - "Mi ", // 0xb5 - "Yi ", // 0xb6 - "Fa ", // 0xb7 - "Fei ", // 0xb8 - "You ", // 0xb9 - "Tian ", // 0xba - "Zhi ", // 0xbb - "Zhao ", // 0xbc - "Gu ", // 0xbd - "Zhan ", // 0xbe - "Yan ", // 0xbf - "Si ", // 0xc0 - "Kuang ", // 0xc1 - "Jiong ", // 0xc2 - "Ju ", // 0xc3 - "Xie ", // 0xc4 - "Qiu ", // 0xc5 - "Yi ", // 0xc6 - "Jia ", // 0xc7 - "Zhong ", // 0xc8 - "Quan ", // 0xc9 - "Bo ", // 0xca - "Hui ", // 0xcb - "Mi ", // 0xcc - "Ben ", // 0xcd - "Zhuo ", // 0xce - "Chu ", // 0xcf - "Le ", // 0xd0 - "You ", // 0xd1 - "Gu ", // 0xd2 - "Hong ", // 0xd3 - "Gan ", // 0xd4 - "Fa ", // 0xd5 - "Mao ", // 0xd6 - "Si ", // 0xd7 - "Hu ", // 0xd8 - "Ping ", // 0xd9 - "Ci ", // 0xda - "Fan ", // 0xdb - "Chi ", // 0xdc - "Su ", // 0xdd - "Ning ", // 0xde - "Cheng ", // 0xdf - "Ling ", // 0xe0 - "Pao ", // 0xe1 - "Bo ", // 0xe2 - "Qi ", // 0xe3 - "Si ", // 0xe4 - "Ni ", // 0xe5 - "Ju ", // 0xe6 - "Yue ", // 0xe7 - "Zhu ", // 0xe8 - "Sheng ", // 0xe9 - "Lei ", // 0xea - "Xuan ", // 0xeb - "Xue ", // 0xec - "Fu ", // 0xed - "Pan ", // 0xee - "Min ", // 0xef - "Tai ", // 0xf0 - "Yang ", // 0xf1 - "Ji ", // 0xf2 - "Yong ", // 0xf3 - "Guan ", // 0xf4 - "Beng ", // 0xf5 - "Xue ", // 0xf6 - "Long ", // 0xf7 - "Lu ", // 0xf8 - "[?] ", // 0xf9 - "Bo ", // 0xfa - "Xie ", // 0xfb - "Po ", // 0xfc - "Ze ", // 0xfd - "Jing ", // 0xfe - "Yin ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x06d.go b/vendor/github.com/mozillazg/go-unidecode/table/x06d.go deleted file mode 100644 index 6361c67..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x06d.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x06d = []string{ - "Zhou ", // 0x00 - "Ji ", // 0x01 - "Yi ", // 0x02 - "Hui ", // 0x03 - "Hui ", // 0x04 - "Zui ", // 0x05 - "Cheng ", // 0x06 - "Yin ", // 0x07 - "Wei ", // 0x08 - "Hou ", // 0x09 - "Jian ", // 0x0a - "Yang ", // 0x0b - "Lie ", // 0x0c - "Si ", // 0x0d - "Ji ", // 0x0e - "Er ", // 0x0f - "Xing ", // 0x10 - "Fu ", // 0x11 - "Sa ", // 0x12 - "Suo ", // 0x13 - "Zhi ", // 0x14 - "Yin ", // 0x15 - "Wu ", // 0x16 - "Xi ", // 0x17 - "Kao ", // 0x18 - "Zhu ", // 0x19 - "Jiang ", // 0x1a - "Luo ", // 0x1b - "[?] ", // 0x1c - "An ", // 0x1d - "Dong ", // 0x1e - "Yi ", // 0x1f - "Mou ", // 0x20 - "Lei ", // 0x21 - "Yi ", // 0x22 - "Mi ", // 0x23 - "Quan ", // 0x24 - "Jin ", // 0x25 - "Mo ", // 0x26 - "Wei ", // 0x27 - "Xiao ", // 0x28 - "Xie ", // 0x29 - "Hong ", // 0x2a - "Xu ", // 0x2b - "Shuo ", // 0x2c - "Kuang ", // 0x2d - "Tao ", // 0x2e - "Qie ", // 0x2f - "Ju ", // 0x30 - "Er ", // 0x31 - "Zhou ", // 0x32 - "Ru ", // 0x33 - "Ping ", // 0x34 - "Xun ", // 0x35 - "Xiong ", // 0x36 - "Zhi ", // 0x37 - "Guang ", // 0x38 - "Huan ", // 0x39 - "Ming ", // 0x3a - "Huo ", // 0x3b - "Wa ", // 0x3c - "Qia ", // 0x3d - "Pai ", // 0x3e - "Wu ", // 0x3f - "Qu ", // 0x40 - "Liu ", // 0x41 - "Yi ", // 0x42 - "Jia ", // 0x43 - "Jing ", // 0x44 - "Qian ", // 0x45 - "Jiang ", // 0x46 - "Jiao ", // 0x47 - "Cheng ", // 0x48 - "Shi ", // 0x49 - "Zhuo ", // 0x4a - "Ce ", // 0x4b - "Pal ", // 0x4c - "Kuai ", // 0x4d - "Ji ", // 0x4e - "Liu ", // 0x4f - "Chan ", // 0x50 - "Hun ", // 0x51 - "Hu ", // 0x52 - "Nong ", // 0x53 - "Xun ", // 0x54 - "Jin ", // 0x55 - "Lie ", // 0x56 - "Qiu ", // 0x57 - "Wei ", // 0x58 - "Zhe ", // 0x59 - "Jun ", // 0x5a - "Han ", // 0x5b - "Bang ", // 0x5c - "Mang ", // 0x5d - "Zhuo ", // 0x5e - "You ", // 0x5f - "Xi ", // 0x60 - "Bo ", // 0x61 - "Dou ", // 0x62 - "Wan ", // 0x63 - "Hong ", // 0x64 - "Yi ", // 0x65 - "Pu ", // 0x66 - "Ying ", // 0x67 - "Lan ", // 0x68 - "Hao ", // 0x69 - "Lang ", // 0x6a - "Han ", // 0x6b - "Li ", // 0x6c - "Geng ", // 0x6d - "Fu ", // 0x6e - "Wu ", // 0x6f - "Lian ", // 0x70 - "Chun ", // 0x71 - "Feng ", // 0x72 - "Yi ", // 0x73 - "Yu ", // 0x74 - "Tong ", // 0x75 - "Lao ", // 0x76 - "Hai ", // 0x77 - "Jin ", // 0x78 - "Jia ", // 0x79 - "Chong ", // 0x7a - "Weng ", // 0x7b - "Mei ", // 0x7c - "Sui ", // 0x7d - "Cheng ", // 0x7e - "Pei ", // 0x7f - "Xian ", // 0x80 - "Shen ", // 0x81 - "Tu ", // 0x82 - "Kun ", // 0x83 - "Pin ", // 0x84 - "Nie ", // 0x85 - "Han ", // 0x86 - "Jing ", // 0x87 - "Xiao ", // 0x88 - "She ", // 0x89 - "Nian ", // 0x8a - "Tu ", // 0x8b - "Yong ", // 0x8c - "Xiao ", // 0x8d - "Xian ", // 0x8e - "Ting ", // 0x8f - "E ", // 0x90 - "Su ", // 0x91 - "Tun ", // 0x92 - "Juan ", // 0x93 - "Cen ", // 0x94 - "Ti ", // 0x95 - "Li ", // 0x96 - "Shui ", // 0x97 - "Si ", // 0x98 - "Lei ", // 0x99 - "Shui ", // 0x9a - "Tao ", // 0x9b - "Du ", // 0x9c - "Lao ", // 0x9d - "Lai ", // 0x9e - "Lian ", // 0x9f - "Wei ", // 0xa0 - "Wo ", // 0xa1 - "Yun ", // 0xa2 - "Huan ", // 0xa3 - "Di ", // 0xa4 - "[?] ", // 0xa5 - "Run ", // 0xa6 - "Jian ", // 0xa7 - "Zhang ", // 0xa8 - "Se ", // 0xa9 - "Fu ", // 0xaa - "Guan ", // 0xab - "Xing ", // 0xac - "Shou ", // 0xad - "Shuan ", // 0xae - "Ya ", // 0xaf - "Chuo ", // 0xb0 - "Zhang ", // 0xb1 - "Ye ", // 0xb2 - "Kong ", // 0xb3 - "Wo ", // 0xb4 - "Han ", // 0xb5 - "Tuo ", // 0xb6 - "Dong ", // 0xb7 - "He ", // 0xb8 - "Wo ", // 0xb9 - "Ju ", // 0xba - "Gan ", // 0xbb - "Liang ", // 0xbc - "Hun ", // 0xbd - "Ta ", // 0xbe - "Zhuo ", // 0xbf - "Dian ", // 0xc0 - "Qie ", // 0xc1 - "De ", // 0xc2 - "Juan ", // 0xc3 - "Zi ", // 0xc4 - "Xi ", // 0xc5 - "Yao ", // 0xc6 - "Qi ", // 0xc7 - "Gu ", // 0xc8 - "Guo ", // 0xc9 - "Han ", // 0xca - "Lin ", // 0xcb - "Tang ", // 0xcc - "Zhou ", // 0xcd - "Peng ", // 0xce - "Hao ", // 0xcf - "Chang ", // 0xd0 - "Shu ", // 0xd1 - "Qi ", // 0xd2 - "Fang ", // 0xd3 - "Chi ", // 0xd4 - "Lu ", // 0xd5 - "Nao ", // 0xd6 - "Ju ", // 0xd7 - "Tao ", // 0xd8 - "Cong ", // 0xd9 - "Lei ", // 0xda - "Zhi ", // 0xdb - "Peng ", // 0xdc - "Fei ", // 0xdd - "Song ", // 0xde - "Tian ", // 0xdf - "Pi ", // 0xe0 - "Dan ", // 0xe1 - "Yu ", // 0xe2 - "Ni ", // 0xe3 - "Yu ", // 0xe4 - "Lu ", // 0xe5 - "Gan ", // 0xe6 - "Mi ", // 0xe7 - "Jing ", // 0xe8 - "Ling ", // 0xe9 - "Lun ", // 0xea - "Yin ", // 0xeb - "Cui ", // 0xec - "Qu ", // 0xed - "Huai ", // 0xee - "Yu ", // 0xef - "Nian ", // 0xf0 - "Shen ", // 0xf1 - "Piao ", // 0xf2 - "Chun ", // 0xf3 - "Wa ", // 0xf4 - "Yuan ", // 0xf5 - "Lai ", // 0xf6 - "Hun ", // 0xf7 - "Qing ", // 0xf8 - "Yan ", // 0xf9 - "Qian ", // 0xfa - "Tian ", // 0xfb - "Miao ", // 0xfc - "Zhi ", // 0xfd - "Yin ", // 0xfe - "Mi ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x06e.go b/vendor/github.com/mozillazg/go-unidecode/table/x06e.go deleted file mode 100644 index 3d40226..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x06e.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x06e = []string{ - "Ben ", // 0x00 - "Yuan ", // 0x01 - "Wen ", // 0x02 - "Re ", // 0x03 - "Fei ", // 0x04 - "Qing ", // 0x05 - "Yuan ", // 0x06 - "Ke ", // 0x07 - "Ji ", // 0x08 - "She ", // 0x09 - "Yuan ", // 0x0a - "Shibui ", // 0x0b - "Lu ", // 0x0c - "Zi ", // 0x0d - "Du ", // 0x0e - "[?] ", // 0x0f - "Jian ", // 0x10 - "Min ", // 0x11 - "Pi ", // 0x12 - "Tani ", // 0x13 - "Yu ", // 0x14 - "Yuan ", // 0x15 - "Shen ", // 0x16 - "Shen ", // 0x17 - "Rou ", // 0x18 - "Huan ", // 0x19 - "Zhu ", // 0x1a - "Jian ", // 0x1b - "Nuan ", // 0x1c - "Yu ", // 0x1d - "Qiu ", // 0x1e - "Ting ", // 0x1f - "Qu ", // 0x20 - "Du ", // 0x21 - "Feng ", // 0x22 - "Zha ", // 0x23 - "Bo ", // 0x24 - "Wo ", // 0x25 - "Wo ", // 0x26 - "Di ", // 0x27 - "Wei ", // 0x28 - "Wen ", // 0x29 - "Ru ", // 0x2a - "Xie ", // 0x2b - "Ce ", // 0x2c - "Wei ", // 0x2d - "Ge ", // 0x2e - "Gang ", // 0x2f - "Yan ", // 0x30 - "Hong ", // 0x31 - "Xuan ", // 0x32 - "Mi ", // 0x33 - "Ke ", // 0x34 - "Mao ", // 0x35 - "Ying ", // 0x36 - "Yan ", // 0x37 - "You ", // 0x38 - "Hong ", // 0x39 - "Miao ", // 0x3a - "Xing ", // 0x3b - "Mei ", // 0x3c - "Zai ", // 0x3d - "Hun ", // 0x3e - "Nai ", // 0x3f - "Kui ", // 0x40 - "Shi ", // 0x41 - "E ", // 0x42 - "Pai ", // 0x43 - "Mei ", // 0x44 - "Lian ", // 0x45 - "Qi ", // 0x46 - "Qi ", // 0x47 - "Mei ", // 0x48 - "Tian ", // 0x49 - "Cou ", // 0x4a - "Wei ", // 0x4b - "Can ", // 0x4c - "Tuan ", // 0x4d - "Mian ", // 0x4e - "Hui ", // 0x4f - "Mo ", // 0x50 - "Xu ", // 0x51 - "Ji ", // 0x52 - "Pen ", // 0x53 - "Jian ", // 0x54 - "Jian ", // 0x55 - "Hu ", // 0x56 - "Feng ", // 0x57 - "Xiang ", // 0x58 - "Yi ", // 0x59 - "Yin ", // 0x5a - "Zhan ", // 0x5b - "Shi ", // 0x5c - "Jie ", // 0x5d - "Cheng ", // 0x5e - "Huang ", // 0x5f - "Tan ", // 0x60 - "Yu ", // 0x61 - "Bi ", // 0x62 - "Min ", // 0x63 - "Shi ", // 0x64 - "Tu ", // 0x65 - "Sheng ", // 0x66 - "Yong ", // 0x67 - "Qu ", // 0x68 - "Zhong ", // 0x69 - "Suei ", // 0x6a - "Jiu ", // 0x6b - "Jiao ", // 0x6c - "Qiou ", // 0x6d - "Yin ", // 0x6e - "Tang ", // 0x6f - "Long ", // 0x70 - "Huo ", // 0x71 - "Yuan ", // 0x72 - "Nan ", // 0x73 - "Ban ", // 0x74 - "You ", // 0x75 - "Quan ", // 0x76 - "Chui ", // 0x77 - "Liang ", // 0x78 - "Chan ", // 0x79 - "Yan ", // 0x7a - "Chun ", // 0x7b - "Nie ", // 0x7c - "Zi ", // 0x7d - "Wan ", // 0x7e - "Shi ", // 0x7f - "Man ", // 0x80 - "Ying ", // 0x81 - "Ratsu ", // 0x82 - "Kui ", // 0x83 - "[?] ", // 0x84 - "Jian ", // 0x85 - "Xu ", // 0x86 - "Lu ", // 0x87 - "Gui ", // 0x88 - "Gai ", // 0x89 - "[?] ", // 0x8a - "[?] ", // 0x8b - "Po ", // 0x8c - "Jin ", // 0x8d - "Gui ", // 0x8e - "Tang ", // 0x8f - "Yuan ", // 0x90 - "Suo ", // 0x91 - "Yuan ", // 0x92 - "Lian ", // 0x93 - "Yao ", // 0x94 - "Meng ", // 0x95 - "Zhun ", // 0x96 - "Sheng ", // 0x97 - "Ke ", // 0x98 - "Tai ", // 0x99 - "Da ", // 0x9a - "Wa ", // 0x9b - "Liu ", // 0x9c - "Gou ", // 0x9d - "Sao ", // 0x9e - "Ming ", // 0x9f - "Zha ", // 0xa0 - "Shi ", // 0xa1 - "Yi ", // 0xa2 - "Lun ", // 0xa3 - "Ma ", // 0xa4 - "Pu ", // 0xa5 - "Wei ", // 0xa6 - "Li ", // 0xa7 - "Cai ", // 0xa8 - "Wu ", // 0xa9 - "Xi ", // 0xaa - "Wen ", // 0xab - "Qiang ", // 0xac - "Ze ", // 0xad - "Shi ", // 0xae - "Su ", // 0xaf - "Yi ", // 0xb0 - "Zhen ", // 0xb1 - "Sou ", // 0xb2 - "Yun ", // 0xb3 - "Xiu ", // 0xb4 - "Yin ", // 0xb5 - "Rong ", // 0xb6 - "Hun ", // 0xb7 - "Su ", // 0xb8 - "Su ", // 0xb9 - "Ni ", // 0xba - "Ta ", // 0xbb - "Shi ", // 0xbc - "Ru ", // 0xbd - "Wei ", // 0xbe - "Pan ", // 0xbf - "Chu ", // 0xc0 - "Chu ", // 0xc1 - "Pang ", // 0xc2 - "Weng ", // 0xc3 - "Cang ", // 0xc4 - "Mie ", // 0xc5 - "He ", // 0xc6 - "Dian ", // 0xc7 - "Hao ", // 0xc8 - "Huang ", // 0xc9 - "Xi ", // 0xca - "Zi ", // 0xcb - "Di ", // 0xcc - "Zhi ", // 0xcd - "Ying ", // 0xce - "Fu ", // 0xcf - "Jie ", // 0xd0 - "Hua ", // 0xd1 - "Ge ", // 0xd2 - "Zi ", // 0xd3 - "Tao ", // 0xd4 - "Teng ", // 0xd5 - "Sui ", // 0xd6 - "Bi ", // 0xd7 - "Jiao ", // 0xd8 - "Hui ", // 0xd9 - "Gun ", // 0xda - "Yin ", // 0xdb - "Gao ", // 0xdc - "Long ", // 0xdd - "Zhi ", // 0xde - "Yan ", // 0xdf - "She ", // 0xe0 - "Man ", // 0xe1 - "Ying ", // 0xe2 - "Chun ", // 0xe3 - "Lu ", // 0xe4 - "Lan ", // 0xe5 - "Luan ", // 0xe6 - "[?] ", // 0xe7 - "Bin ", // 0xe8 - "Tan ", // 0xe9 - "Yu ", // 0xea - "Sou ", // 0xeb - "Hu ", // 0xec - "Bi ", // 0xed - "Biao ", // 0xee - "Zhi ", // 0xef - "Jiang ", // 0xf0 - "Kou ", // 0xf1 - "Shen ", // 0xf2 - "Shang ", // 0xf3 - "Di ", // 0xf4 - "Mi ", // 0xf5 - "Ao ", // 0xf6 - "Lu ", // 0xf7 - "Hu ", // 0xf8 - "Hu ", // 0xf9 - "You ", // 0xfa - "Chan ", // 0xfb - "Fan ", // 0xfc - "Yong ", // 0xfd - "Gun ", // 0xfe - "Man ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x06f.go b/vendor/github.com/mozillazg/go-unidecode/table/x06f.go deleted file mode 100644 index 2bd6243..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x06f.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x06f = []string{ - "Qing ", // 0x00 - "Yu ", // 0x01 - "Piao ", // 0x02 - "Ji ", // 0x03 - "Ya ", // 0x04 - "Jiao ", // 0x05 - "Qi ", // 0x06 - "Xi ", // 0x07 - "Ji ", // 0x08 - "Lu ", // 0x09 - "Lu ", // 0x0a - "Long ", // 0x0b - "Jin ", // 0x0c - "Guo ", // 0x0d - "Cong ", // 0x0e - "Lou ", // 0x0f - "Zhi ", // 0x10 - "Gai ", // 0x11 - "Qiang ", // 0x12 - "Li ", // 0x13 - "Yan ", // 0x14 - "Cao ", // 0x15 - "Jiao ", // 0x16 - "Cong ", // 0x17 - "Qun ", // 0x18 - "Tuan ", // 0x19 - "Ou ", // 0x1a - "Teng ", // 0x1b - "Ye ", // 0x1c - "Xi ", // 0x1d - "Mi ", // 0x1e - "Tang ", // 0x1f - "Mo ", // 0x20 - "Shang ", // 0x21 - "Han ", // 0x22 - "Lian ", // 0x23 - "Lan ", // 0x24 - "Wa ", // 0x25 - "Li ", // 0x26 - "Qian ", // 0x27 - "Feng ", // 0x28 - "Xuan ", // 0x29 - "Yi ", // 0x2a - "Man ", // 0x2b - "Zi ", // 0x2c - "Mang ", // 0x2d - "Kang ", // 0x2e - "Lei ", // 0x2f - "Peng ", // 0x30 - "Shu ", // 0x31 - "Zhang ", // 0x32 - "Zhang ", // 0x33 - "Chong ", // 0x34 - "Xu ", // 0x35 - "Huan ", // 0x36 - "Kuo ", // 0x37 - "Jian ", // 0x38 - "Yan ", // 0x39 - "Chuang ", // 0x3a - "Liao ", // 0x3b - "Cui ", // 0x3c - "Ti ", // 0x3d - "Yang ", // 0x3e - "Jiang ", // 0x3f - "Cong ", // 0x40 - "Ying ", // 0x41 - "Hong ", // 0x42 - "Xun ", // 0x43 - "Shu ", // 0x44 - "Guan ", // 0x45 - "Ying ", // 0x46 - "Xiao ", // 0x47 - "[?] ", // 0x48 - "[?] ", // 0x49 - "Xu ", // 0x4a - "Lian ", // 0x4b - "Zhi ", // 0x4c - "Wei ", // 0x4d - "Pi ", // 0x4e - "Jue ", // 0x4f - "Jiao ", // 0x50 - "Po ", // 0x51 - "Dang ", // 0x52 - "Hui ", // 0x53 - "Jie ", // 0x54 - "Wu ", // 0x55 - "Pa ", // 0x56 - "Ji ", // 0x57 - "Pan ", // 0x58 - "Gui ", // 0x59 - "Xiao ", // 0x5a - "Qian ", // 0x5b - "Qian ", // 0x5c - "Xi ", // 0x5d - "Lu ", // 0x5e - "Xi ", // 0x5f - "Xuan ", // 0x60 - "Dun ", // 0x61 - "Huang ", // 0x62 - "Min ", // 0x63 - "Run ", // 0x64 - "Su ", // 0x65 - "Liao ", // 0x66 - "Zhen ", // 0x67 - "Zhong ", // 0x68 - "Yi ", // 0x69 - "Di ", // 0x6a - "Wan ", // 0x6b - "Dan ", // 0x6c - "Tan ", // 0x6d - "Chao ", // 0x6e - "Xun ", // 0x6f - "Kui ", // 0x70 - "Yie ", // 0x71 - "Shao ", // 0x72 - "Tu ", // 0x73 - "Zhu ", // 0x74 - "San ", // 0x75 - "Hei ", // 0x76 - "Bi ", // 0x77 - "Shan ", // 0x78 - "Chan ", // 0x79 - "Chan ", // 0x7a - "Shu ", // 0x7b - "Tong ", // 0x7c - "Pu ", // 0x7d - "Lin ", // 0x7e - "Wei ", // 0x7f - "Se ", // 0x80 - "Se ", // 0x81 - "Cheng ", // 0x82 - "Jiong ", // 0x83 - "Cheng ", // 0x84 - "Hua ", // 0x85 - "Jiao ", // 0x86 - "Lao ", // 0x87 - "Che ", // 0x88 - "Gan ", // 0x89 - "Cun ", // 0x8a - "Heng ", // 0x8b - "Si ", // 0x8c - "Shu ", // 0x8d - "Peng ", // 0x8e - "Han ", // 0x8f - "Yun ", // 0x90 - "Liu ", // 0x91 - "Hong ", // 0x92 - "Fu ", // 0x93 - "Hao ", // 0x94 - "He ", // 0x95 - "Xian ", // 0x96 - "Jian ", // 0x97 - "Shan ", // 0x98 - "Xi ", // 0x99 - "Oki ", // 0x9a - "[?] ", // 0x9b - "Lan ", // 0x9c - "[?] ", // 0x9d - "Yu ", // 0x9e - "Lin ", // 0x9f - "Min ", // 0xa0 - "Zao ", // 0xa1 - "Dang ", // 0xa2 - "Wan ", // 0xa3 - "Ze ", // 0xa4 - "Xie ", // 0xa5 - "Yu ", // 0xa6 - "Li ", // 0xa7 - "Shi ", // 0xa8 - "Xue ", // 0xa9 - "Ling ", // 0xaa - "Man ", // 0xab - "Zi ", // 0xac - "Yong ", // 0xad - "Kuai ", // 0xae - "Can ", // 0xaf - "Lian ", // 0xb0 - "Dian ", // 0xb1 - "Ye ", // 0xb2 - "Ao ", // 0xb3 - "Huan ", // 0xb4 - "Zhen ", // 0xb5 - "Chan ", // 0xb6 - "Man ", // 0xb7 - "Dan ", // 0xb8 - "Dan ", // 0xb9 - "Yi ", // 0xba - "Sui ", // 0xbb - "Pi ", // 0xbc - "Ju ", // 0xbd - "Ta ", // 0xbe - "Qin ", // 0xbf - "Ji ", // 0xc0 - "Zhuo ", // 0xc1 - "Lian ", // 0xc2 - "Nong ", // 0xc3 - "Guo ", // 0xc4 - "Jin ", // 0xc5 - "Fen ", // 0xc6 - "Se ", // 0xc7 - "Ji ", // 0xc8 - "Sui ", // 0xc9 - "Hui ", // 0xca - "Chu ", // 0xcb - "Ta ", // 0xcc - "Song ", // 0xcd - "Ding ", // 0xce - "[?] ", // 0xcf - "Zhu ", // 0xd0 - "Lai ", // 0xd1 - "Bin ", // 0xd2 - "Lian ", // 0xd3 - "Mi ", // 0xd4 - "Shi ", // 0xd5 - "Shu ", // 0xd6 - "Mi ", // 0xd7 - "Ning ", // 0xd8 - "Ying ", // 0xd9 - "Ying ", // 0xda - "Meng ", // 0xdb - "Jin ", // 0xdc - "Qi ", // 0xdd - "Pi ", // 0xde - "Ji ", // 0xdf - "Hao ", // 0xe0 - "Ru ", // 0xe1 - "Zui ", // 0xe2 - "Wo ", // 0xe3 - "Tao ", // 0xe4 - "Yin ", // 0xe5 - "Yin ", // 0xe6 - "Dui ", // 0xe7 - "Ci ", // 0xe8 - "Huo ", // 0xe9 - "Jing ", // 0xea - "Lan ", // 0xeb - "Jun ", // 0xec - "Ai ", // 0xed - "Pu ", // 0xee - "Zhuo ", // 0xef - "Wei ", // 0xf0 - "Bin ", // 0xf1 - "Gu ", // 0xf2 - "Qian ", // 0xf3 - "Xing ", // 0xf4 - "Hama ", // 0xf5 - "Kuo ", // 0xf6 - "Fei ", // 0xf7 - "[?] ", // 0xf8 - "Boku ", // 0xf9 - "Jian ", // 0xfa - "Wei ", // 0xfb - "Luo ", // 0xfc - "Zan ", // 0xfd - "Lu ", // 0xfe - "Li ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x070.go b/vendor/github.com/mozillazg/go-unidecode/table/x070.go deleted file mode 100644 index a7ac284..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x070.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x070 = []string{ - "You ", // 0x00 - "Yang ", // 0x01 - "Lu ", // 0x02 - "Si ", // 0x03 - "Jie ", // 0x04 - "Ying ", // 0x05 - "Du ", // 0x06 - "Wang ", // 0x07 - "Hui ", // 0x08 - "Xie ", // 0x09 - "Pan ", // 0x0a - "Shen ", // 0x0b - "Biao ", // 0x0c - "Chan ", // 0x0d - "Mo ", // 0x0e - "Liu ", // 0x0f - "Jian ", // 0x10 - "Pu ", // 0x11 - "Se ", // 0x12 - "Cheng ", // 0x13 - "Gu ", // 0x14 - "Bin ", // 0x15 - "Huo ", // 0x16 - "Xian ", // 0x17 - "Lu ", // 0x18 - "Qin ", // 0x19 - "Han ", // 0x1a - "Ying ", // 0x1b - "Yong ", // 0x1c - "Li ", // 0x1d - "Jing ", // 0x1e - "Xiao ", // 0x1f - "Ying ", // 0x20 - "Sui ", // 0x21 - "Wei ", // 0x22 - "Xie ", // 0x23 - "Huai ", // 0x24 - "Hao ", // 0x25 - "Zhu ", // 0x26 - "Long ", // 0x27 - "Lai ", // 0x28 - "Dui ", // 0x29 - "Fan ", // 0x2a - "Hu ", // 0x2b - "Lai ", // 0x2c - "[?] ", // 0x2d - "[?] ", // 0x2e - "Ying ", // 0x2f - "Mi ", // 0x30 - "Ji ", // 0x31 - "Lian ", // 0x32 - "Jian ", // 0x33 - "Ying ", // 0x34 - "Fen ", // 0x35 - "Lin ", // 0x36 - "Yi ", // 0x37 - "Jian ", // 0x38 - "Yue ", // 0x39 - "Chan ", // 0x3a - "Dai ", // 0x3b - "Rang ", // 0x3c - "Jian ", // 0x3d - "Lan ", // 0x3e - "Fan ", // 0x3f - "Shuang ", // 0x40 - "Yuan ", // 0x41 - "Zhuo ", // 0x42 - "Feng ", // 0x43 - "She ", // 0x44 - "Lei ", // 0x45 - "Lan ", // 0x46 - "Cong ", // 0x47 - "Qu ", // 0x48 - "Yong ", // 0x49 - "Qian ", // 0x4a - "Fa ", // 0x4b - "Guan ", // 0x4c - "Que ", // 0x4d - "Yan ", // 0x4e - "Hao ", // 0x4f - "Hyeng ", // 0x50 - "Sa ", // 0x51 - "Zan ", // 0x52 - "Luan ", // 0x53 - "Yan ", // 0x54 - "Li ", // 0x55 - "Mi ", // 0x56 - "Shan ", // 0x57 - "Tan ", // 0x58 - "Dang ", // 0x59 - "Jiao ", // 0x5a - "Chan ", // 0x5b - "[?] ", // 0x5c - "Hao ", // 0x5d - "Ba ", // 0x5e - "Zhu ", // 0x5f - "Lan ", // 0x60 - "Lan ", // 0x61 - "Nang ", // 0x62 - "Wan ", // 0x63 - "Luan ", // 0x64 - "Xun ", // 0x65 - "Xian ", // 0x66 - "Yan ", // 0x67 - "Gan ", // 0x68 - "Yan ", // 0x69 - "Yu ", // 0x6a - "Huo ", // 0x6b - "Si ", // 0x6c - "Mie ", // 0x6d - "Guang ", // 0x6e - "Deng ", // 0x6f - "Hui ", // 0x70 - "Xiao ", // 0x71 - "Xiao ", // 0x72 - "Hu ", // 0x73 - "Hong ", // 0x74 - "Ling ", // 0x75 - "Zao ", // 0x76 - "Zhuan ", // 0x77 - "Jiu ", // 0x78 - "Zha ", // 0x79 - "Xie ", // 0x7a - "Chi ", // 0x7b - "Zhuo ", // 0x7c - "Zai ", // 0x7d - "Zai ", // 0x7e - "Can ", // 0x7f - "Yang ", // 0x80 - "Qi ", // 0x81 - "Zhong ", // 0x82 - "Fen ", // 0x83 - "Niu ", // 0x84 - "Jiong ", // 0x85 - "Wen ", // 0x86 - "Po ", // 0x87 - "Yi ", // 0x88 - "Lu ", // 0x89 - "Chui ", // 0x8a - "Pi ", // 0x8b - "Kai ", // 0x8c - "Pan ", // 0x8d - "Yan ", // 0x8e - "Kai ", // 0x8f - "Pang ", // 0x90 - "Mu ", // 0x91 - "Chao ", // 0x92 - "Liao ", // 0x93 - "Gui ", // 0x94 - "Kang ", // 0x95 - "Tun ", // 0x96 - "Guang ", // 0x97 - "Xin ", // 0x98 - "Zhi ", // 0x99 - "Guang ", // 0x9a - "Guang ", // 0x9b - "Wei ", // 0x9c - "Qiang ", // 0x9d - "[?] ", // 0x9e - "Da ", // 0x9f - "Xia ", // 0xa0 - "Zheng ", // 0xa1 - "Zhu ", // 0xa2 - "Ke ", // 0xa3 - "Zhao ", // 0xa4 - "Fu ", // 0xa5 - "Ba ", // 0xa6 - "Duo ", // 0xa7 - "Duo ", // 0xa8 - "Ling ", // 0xa9 - "Zhuo ", // 0xaa - "Xuan ", // 0xab - "Ju ", // 0xac - "Tan ", // 0xad - "Pao ", // 0xae - "Jiong ", // 0xaf - "Pao ", // 0xb0 - "Tai ", // 0xb1 - "Tai ", // 0xb2 - "Bing ", // 0xb3 - "Yang ", // 0xb4 - "Tong ", // 0xb5 - "Han ", // 0xb6 - "Zhu ", // 0xb7 - "Zha ", // 0xb8 - "Dian ", // 0xb9 - "Wei ", // 0xba - "Shi ", // 0xbb - "Lian ", // 0xbc - "Chi ", // 0xbd - "Huang ", // 0xbe - "[?] ", // 0xbf - "Hu ", // 0xc0 - "Shuo ", // 0xc1 - "Lan ", // 0xc2 - "Jing ", // 0xc3 - "Jiao ", // 0xc4 - "Xu ", // 0xc5 - "Xing ", // 0xc6 - "Quan ", // 0xc7 - "Lie ", // 0xc8 - "Huan ", // 0xc9 - "Yang ", // 0xca - "Xiao ", // 0xcb - "Xiu ", // 0xcc - "Xian ", // 0xcd - "Yin ", // 0xce - "Wu ", // 0xcf - "Zhou ", // 0xd0 - "Yao ", // 0xd1 - "Shi ", // 0xd2 - "Wei ", // 0xd3 - "Tong ", // 0xd4 - "Xue ", // 0xd5 - "Zai ", // 0xd6 - "Kai ", // 0xd7 - "Hong ", // 0xd8 - "Luo ", // 0xd9 - "Xia ", // 0xda - "Zhu ", // 0xdb - "Xuan ", // 0xdc - "Zheng ", // 0xdd - "Po ", // 0xde - "Yan ", // 0xdf - "Hui ", // 0xe0 - "Guang ", // 0xe1 - "Zhe ", // 0xe2 - "Hui ", // 0xe3 - "Kao ", // 0xe4 - "[?] ", // 0xe5 - "Fan ", // 0xe6 - "Shao ", // 0xe7 - "Ye ", // 0xe8 - "Hui ", // 0xe9 - "[?] ", // 0xea - "Tang ", // 0xeb - "Jin ", // 0xec - "Re ", // 0xed - "[?] ", // 0xee - "Xi ", // 0xef - "Fu ", // 0xf0 - "Jiong ", // 0xf1 - "Che ", // 0xf2 - "Pu ", // 0xf3 - "Jing ", // 0xf4 - "Zhuo ", // 0xf5 - "Ting ", // 0xf6 - "Wan ", // 0xf7 - "Hai ", // 0xf8 - "Peng ", // 0xf9 - "Lang ", // 0xfa - "Shan ", // 0xfb - "Hu ", // 0xfc - "Feng ", // 0xfd - "Chi ", // 0xfe - "Rong ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x071.go b/vendor/github.com/mozillazg/go-unidecode/table/x071.go deleted file mode 100644 index d88d867..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x071.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x071 = []string{ - "Hu ", // 0x00 - "Xi ", // 0x01 - "Shu ", // 0x02 - "He ", // 0x03 - "Xun ", // 0x04 - "Ku ", // 0x05 - "Jue ", // 0x06 - "Xiao ", // 0x07 - "Xi ", // 0x08 - "Yan ", // 0x09 - "Han ", // 0x0a - "Zhuang ", // 0x0b - "Jun ", // 0x0c - "Di ", // 0x0d - "Xie ", // 0x0e - "Ji ", // 0x0f - "Wu ", // 0x10 - "[?] ", // 0x11 - "[?] ", // 0x12 - "Han ", // 0x13 - "Yan ", // 0x14 - "Huan ", // 0x15 - "Men ", // 0x16 - "Ju ", // 0x17 - "Chou ", // 0x18 - "Bei ", // 0x19 - "Fen ", // 0x1a - "Lin ", // 0x1b - "Kun ", // 0x1c - "Hun ", // 0x1d - "Tun ", // 0x1e - "Xi ", // 0x1f - "Cui ", // 0x20 - "Wu ", // 0x21 - "Hong ", // 0x22 - "Ju ", // 0x23 - "Fu ", // 0x24 - "Wo ", // 0x25 - "Jiao ", // 0x26 - "Cong ", // 0x27 - "Feng ", // 0x28 - "Ping ", // 0x29 - "Qiong ", // 0x2a - "Ruo ", // 0x2b - "Xi ", // 0x2c - "Qiong ", // 0x2d - "Xin ", // 0x2e - "Zhuo ", // 0x2f - "Yan ", // 0x30 - "Yan ", // 0x31 - "Yi ", // 0x32 - "Jue ", // 0x33 - "Yu ", // 0x34 - "Gang ", // 0x35 - "Ran ", // 0x36 - "Pi ", // 0x37 - "Gu ", // 0x38 - "[?] ", // 0x39 - "Sheng ", // 0x3a - "Chang ", // 0x3b - "Shao ", // 0x3c - "[?] ", // 0x3d - "[?] ", // 0x3e - "[?] ", // 0x3f - "[?] ", // 0x40 - "Chen ", // 0x41 - "He ", // 0x42 - "Kui ", // 0x43 - "Zhong ", // 0x44 - "Duan ", // 0x45 - "Xia ", // 0x46 - "Hui ", // 0x47 - "Feng ", // 0x48 - "Lian ", // 0x49 - "Xuan ", // 0x4a - "Xing ", // 0x4b - "Huang ", // 0x4c - "Jiao ", // 0x4d - "Jian ", // 0x4e - "Bi ", // 0x4f - "Ying ", // 0x50 - "Zhu ", // 0x51 - "Wei ", // 0x52 - "Tuan ", // 0x53 - "Tian ", // 0x54 - "Xi ", // 0x55 - "Nuan ", // 0x56 - "Nuan ", // 0x57 - "Chan ", // 0x58 - "Yan ", // 0x59 - "Jiong ", // 0x5a - "Jiong ", // 0x5b - "Yu ", // 0x5c - "Mei ", // 0x5d - "Sha ", // 0x5e - "Wei ", // 0x5f - "Ye ", // 0x60 - "Xin ", // 0x61 - "Qiong ", // 0x62 - "Rou ", // 0x63 - "Mei ", // 0x64 - "Huan ", // 0x65 - "Xu ", // 0x66 - "Zhao ", // 0x67 - "Wei ", // 0x68 - "Fan ", // 0x69 - "Qiu ", // 0x6a - "Sui ", // 0x6b - "Yang ", // 0x6c - "Lie ", // 0x6d - "Zhu ", // 0x6e - "Jie ", // 0x6f - "Gao ", // 0x70 - "Gua ", // 0x71 - "Bao ", // 0x72 - "Hu ", // 0x73 - "Yun ", // 0x74 - "Xia ", // 0x75 - "[?] ", // 0x76 - "[?] ", // 0x77 - "Bian ", // 0x78 - "Gou ", // 0x79 - "Tui ", // 0x7a - "Tang ", // 0x7b - "Chao ", // 0x7c - "Shan ", // 0x7d - "N ", // 0x7e - "Bo ", // 0x7f - "Huang ", // 0x80 - "Xie ", // 0x81 - "Xi ", // 0x82 - "Wu ", // 0x83 - "Xi ", // 0x84 - "Yun ", // 0x85 - "He ", // 0x86 - "He ", // 0x87 - "Xi ", // 0x88 - "Yun ", // 0x89 - "Xiong ", // 0x8a - "Nai ", // 0x8b - "Shan ", // 0x8c - "Qiong ", // 0x8d - "Yao ", // 0x8e - "Xun ", // 0x8f - "Mi ", // 0x90 - "Lian ", // 0x91 - "Ying ", // 0x92 - "Wen ", // 0x93 - "Rong ", // 0x94 - "Oozutsu ", // 0x95 - "[?] ", // 0x96 - "Qiang ", // 0x97 - "Liu ", // 0x98 - "Xi ", // 0x99 - "Bi ", // 0x9a - "Biao ", // 0x9b - "Zong ", // 0x9c - "Lu ", // 0x9d - "Jian ", // 0x9e - "Shou ", // 0x9f - "Yi ", // 0xa0 - "Lou ", // 0xa1 - "Feng ", // 0xa2 - "Sui ", // 0xa3 - "Yi ", // 0xa4 - "Tong ", // 0xa5 - "Jue ", // 0xa6 - "Zong ", // 0xa7 - "Yun ", // 0xa8 - "Hu ", // 0xa9 - "Yi ", // 0xaa - "Zhi ", // 0xab - "Ao ", // 0xac - "Wei ", // 0xad - "Liao ", // 0xae - "Han ", // 0xaf - "Ou ", // 0xb0 - "Re ", // 0xb1 - "Jiong ", // 0xb2 - "Man ", // 0xb3 - "[?] ", // 0xb4 - "Shang ", // 0xb5 - "Cuan ", // 0xb6 - "Zeng ", // 0xb7 - "Jian ", // 0xb8 - "Xi ", // 0xb9 - "Xi ", // 0xba - "Xi ", // 0xbb - "Yi ", // 0xbc - "Xiao ", // 0xbd - "Chi ", // 0xbe - "Huang ", // 0xbf - "Chan ", // 0xc0 - "Ye ", // 0xc1 - "Qian ", // 0xc2 - "Ran ", // 0xc3 - "Yan ", // 0xc4 - "Xian ", // 0xc5 - "Qiao ", // 0xc6 - "Zun ", // 0xc7 - "Deng ", // 0xc8 - "Dun ", // 0xc9 - "Shen ", // 0xca - "Jiao ", // 0xcb - "Fen ", // 0xcc - "Si ", // 0xcd - "Liao ", // 0xce - "Yu ", // 0xcf - "Lin ", // 0xd0 - "Tong ", // 0xd1 - "Shao ", // 0xd2 - "Fen ", // 0xd3 - "Fan ", // 0xd4 - "Yan ", // 0xd5 - "Xun ", // 0xd6 - "Lan ", // 0xd7 - "Mei ", // 0xd8 - "Tang ", // 0xd9 - "Yi ", // 0xda - "Jing ", // 0xdb - "Men ", // 0xdc - "[?] ", // 0xdd - "[?] ", // 0xde - "Ying ", // 0xdf - "Yu ", // 0xe0 - "Yi ", // 0xe1 - "Xue ", // 0xe2 - "Lan ", // 0xe3 - "Tai ", // 0xe4 - "Zao ", // 0xe5 - "Can ", // 0xe6 - "Sui ", // 0xe7 - "Xi ", // 0xe8 - "Que ", // 0xe9 - "Cong ", // 0xea - "Lian ", // 0xeb - "Hui ", // 0xec - "Zhu ", // 0xed - "Xie ", // 0xee - "Ling ", // 0xef - "Wei ", // 0xf0 - "Yi ", // 0xf1 - "Xie ", // 0xf2 - "Zhao ", // 0xf3 - "Hui ", // 0xf4 - "Tatsu ", // 0xf5 - "Nung ", // 0xf6 - "Lan ", // 0xf7 - "Ru ", // 0xf8 - "Xian ", // 0xf9 - "Kao ", // 0xfa - "Xun ", // 0xfb - "Jin ", // 0xfc - "Chou ", // 0xfd - "Chou ", // 0xfe - "Yao ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x072.go b/vendor/github.com/mozillazg/go-unidecode/table/x072.go deleted file mode 100644 index 701c429..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x072.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x072 = []string{ - "He ", // 0x00 - "Lan ", // 0x01 - "Biao ", // 0x02 - "Rong ", // 0x03 - "Li ", // 0x04 - "Mo ", // 0x05 - "Bao ", // 0x06 - "Ruo ", // 0x07 - "Lu ", // 0x08 - "La ", // 0x09 - "Ao ", // 0x0a - "Xun ", // 0x0b - "Kuang ", // 0x0c - "Shuo ", // 0x0d - "[?] ", // 0x0e - "Li ", // 0x0f - "Lu ", // 0x10 - "Jue ", // 0x11 - "Liao ", // 0x12 - "Yan ", // 0x13 - "Xi ", // 0x14 - "Xie ", // 0x15 - "Long ", // 0x16 - "Ye ", // 0x17 - "[?] ", // 0x18 - "Rang ", // 0x19 - "Yue ", // 0x1a - "Lan ", // 0x1b - "Cong ", // 0x1c - "Jue ", // 0x1d - "Tong ", // 0x1e - "Guan ", // 0x1f - "[?] ", // 0x20 - "Che ", // 0x21 - "Mi ", // 0x22 - "Tang ", // 0x23 - "Lan ", // 0x24 - "Zhu ", // 0x25 - "[?] ", // 0x26 - "Ling ", // 0x27 - "Cuan ", // 0x28 - "Yu ", // 0x29 - "Zhua ", // 0x2a - "Tsumekanmuri ", // 0x2b - "Pa ", // 0x2c - "Zheng ", // 0x2d - "Pao ", // 0x2e - "Cheng ", // 0x2f - "Yuan ", // 0x30 - "Ai ", // 0x31 - "Wei ", // 0x32 - "[?] ", // 0x33 - "Jue ", // 0x34 - "Jue ", // 0x35 - "Fu ", // 0x36 - "Ye ", // 0x37 - "Ba ", // 0x38 - "Die ", // 0x39 - "Ye ", // 0x3a - "Yao ", // 0x3b - "Zu ", // 0x3c - "Shuang ", // 0x3d - "Er ", // 0x3e - "Qiang ", // 0x3f - "Chuang ", // 0x40 - "Ge ", // 0x41 - "Zang ", // 0x42 - "Die ", // 0x43 - "Qiang ", // 0x44 - "Yong ", // 0x45 - "Qiang ", // 0x46 - "Pian ", // 0x47 - "Ban ", // 0x48 - "Pan ", // 0x49 - "Shao ", // 0x4a - "Jian ", // 0x4b - "Pai ", // 0x4c - "Du ", // 0x4d - "Chuang ", // 0x4e - "Tou ", // 0x4f - "Zha ", // 0x50 - "Bian ", // 0x51 - "Die ", // 0x52 - "Bang ", // 0x53 - "Bo ", // 0x54 - "Chuang ", // 0x55 - "You ", // 0x56 - "[?] ", // 0x57 - "Du ", // 0x58 - "Ya ", // 0x59 - "Cheng ", // 0x5a - "Niu ", // 0x5b - "Ushihen ", // 0x5c - "Pin ", // 0x5d - "Jiu ", // 0x5e - "Mou ", // 0x5f - "Tuo ", // 0x60 - "Mu ", // 0x61 - "Lao ", // 0x62 - "Ren ", // 0x63 - "Mang ", // 0x64 - "Fang ", // 0x65 - "Mao ", // 0x66 - "Mu ", // 0x67 - "Gang ", // 0x68 - "Wu ", // 0x69 - "Yan ", // 0x6a - "Ge ", // 0x6b - "Bei ", // 0x6c - "Si ", // 0x6d - "Jian ", // 0x6e - "Gu ", // 0x6f - "You ", // 0x70 - "Ge ", // 0x71 - "Sheng ", // 0x72 - "Mu ", // 0x73 - "Di ", // 0x74 - "Qian ", // 0x75 - "Quan ", // 0x76 - "Quan ", // 0x77 - "Zi ", // 0x78 - "Te ", // 0x79 - "Xi ", // 0x7a - "Mang ", // 0x7b - "Keng ", // 0x7c - "Qian ", // 0x7d - "Wu ", // 0x7e - "Gu ", // 0x7f - "Xi ", // 0x80 - "Li ", // 0x81 - "Li ", // 0x82 - "Pou ", // 0x83 - "Ji ", // 0x84 - "Gang ", // 0x85 - "Zhi ", // 0x86 - "Ben ", // 0x87 - "Quan ", // 0x88 - "Run ", // 0x89 - "Du ", // 0x8a - "Ju ", // 0x8b - "Jia ", // 0x8c - "Jian ", // 0x8d - "Feng ", // 0x8e - "Pian ", // 0x8f - "Ke ", // 0x90 - "Ju ", // 0x91 - "Kao ", // 0x92 - "Chu ", // 0x93 - "Xi ", // 0x94 - "Bei ", // 0x95 - "Luo ", // 0x96 - "Jie ", // 0x97 - "Ma ", // 0x98 - "San ", // 0x99 - "Wei ", // 0x9a - "Li ", // 0x9b - "Dun ", // 0x9c - "Tong ", // 0x9d - "[?] ", // 0x9e - "Jiang ", // 0x9f - "Ikenie ", // 0xa0 - "Li ", // 0xa1 - "Du ", // 0xa2 - "Lie ", // 0xa3 - "Pi ", // 0xa4 - "Piao ", // 0xa5 - "Bao ", // 0xa6 - "Xi ", // 0xa7 - "Chou ", // 0xa8 - "Wei ", // 0xa9 - "Kui ", // 0xaa - "Chou ", // 0xab - "Quan ", // 0xac - "Fan ", // 0xad - "Ba ", // 0xae - "Fan ", // 0xaf - "Qiu ", // 0xb0 - "Ji ", // 0xb1 - "Cai ", // 0xb2 - "Chuo ", // 0xb3 - "An ", // 0xb4 - "Jie ", // 0xb5 - "Zhuang ", // 0xb6 - "Guang ", // 0xb7 - "Ma ", // 0xb8 - "You ", // 0xb9 - "Kang ", // 0xba - "Bo ", // 0xbb - "Hou ", // 0xbc - "Ya ", // 0xbd - "Yin ", // 0xbe - "Huan ", // 0xbf - "Zhuang ", // 0xc0 - "Yun ", // 0xc1 - "Kuang ", // 0xc2 - "Niu ", // 0xc3 - "Di ", // 0xc4 - "Qing ", // 0xc5 - "Zhong ", // 0xc6 - "Mu ", // 0xc7 - "Bei ", // 0xc8 - "Pi ", // 0xc9 - "Ju ", // 0xca - "Ni ", // 0xcb - "Sheng ", // 0xcc - "Pao ", // 0xcd - "Xia ", // 0xce - "Tuo ", // 0xcf - "Hu ", // 0xd0 - "Ling ", // 0xd1 - "Fei ", // 0xd2 - "Pi ", // 0xd3 - "Ni ", // 0xd4 - "Ao ", // 0xd5 - "You ", // 0xd6 - "Gou ", // 0xd7 - "Yue ", // 0xd8 - "Ju ", // 0xd9 - "Dan ", // 0xda - "Po ", // 0xdb - "Gu ", // 0xdc - "Xian ", // 0xdd - "Ning ", // 0xde - "Huan ", // 0xdf - "Hen ", // 0xe0 - "Jiao ", // 0xe1 - "He ", // 0xe2 - "Zhao ", // 0xe3 - "Ji ", // 0xe4 - "Xun ", // 0xe5 - "Shan ", // 0xe6 - "Ta ", // 0xe7 - "Rong ", // 0xe8 - "Shou ", // 0xe9 - "Tong ", // 0xea - "Lao ", // 0xeb - "Du ", // 0xec - "Xia ", // 0xed - "Shi ", // 0xee - "Hua ", // 0xef - "Zheng ", // 0xf0 - "Yu ", // 0xf1 - "Sun ", // 0xf2 - "Yu ", // 0xf3 - "Bi ", // 0xf4 - "Mang ", // 0xf5 - "Xi ", // 0xf6 - "Juan ", // 0xf7 - "Li ", // 0xf8 - "Xia ", // 0xf9 - "Yin ", // 0xfa - "Suan ", // 0xfb - "Lang ", // 0xfc - "Bei ", // 0xfd - "Zhi ", // 0xfe - "Yan ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x073.go b/vendor/github.com/mozillazg/go-unidecode/table/x073.go deleted file mode 100644 index b87cd0c..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x073.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x073 = []string{ - "Sha ", // 0x00 - "Li ", // 0x01 - "Han ", // 0x02 - "Xian ", // 0x03 - "Jing ", // 0x04 - "Pai ", // 0x05 - "Fei ", // 0x06 - "Yao ", // 0x07 - "Ba ", // 0x08 - "Qi ", // 0x09 - "Ni ", // 0x0a - "Biao ", // 0x0b - "Yin ", // 0x0c - "Lai ", // 0x0d - "Xi ", // 0x0e - "Jian ", // 0x0f - "Qiang ", // 0x10 - "Kun ", // 0x11 - "Yan ", // 0x12 - "Guo ", // 0x13 - "Zong ", // 0x14 - "Mi ", // 0x15 - "Chang ", // 0x16 - "Yi ", // 0x17 - "Zhi ", // 0x18 - "Zheng ", // 0x19 - "Ya ", // 0x1a - "Meng ", // 0x1b - "Cai ", // 0x1c - "Cu ", // 0x1d - "She ", // 0x1e - "Kari ", // 0x1f - "Cen ", // 0x20 - "Luo ", // 0x21 - "Hu ", // 0x22 - "Zong ", // 0x23 - "Ji ", // 0x24 - "Wei ", // 0x25 - "Feng ", // 0x26 - "Wo ", // 0x27 - "Yuan ", // 0x28 - "Xing ", // 0x29 - "Zhu ", // 0x2a - "Mao ", // 0x2b - "Wei ", // 0x2c - "Yuan ", // 0x2d - "Xian ", // 0x2e - "Tuan ", // 0x2f - "Ya ", // 0x30 - "Nao ", // 0x31 - "Xie ", // 0x32 - "Jia ", // 0x33 - "Hou ", // 0x34 - "Bian ", // 0x35 - "You ", // 0x36 - "You ", // 0x37 - "Mei ", // 0x38 - "Zha ", // 0x39 - "Yao ", // 0x3a - "Sun ", // 0x3b - "Bo ", // 0x3c - "Ming ", // 0x3d - "Hua ", // 0x3e - "Yuan ", // 0x3f - "Sou ", // 0x40 - "Ma ", // 0x41 - "Yuan ", // 0x42 - "Dai ", // 0x43 - "Yu ", // 0x44 - "Shi ", // 0x45 - "Hao ", // 0x46 - "[?] ", // 0x47 - "Yi ", // 0x48 - "Zhen ", // 0x49 - "Chuang ", // 0x4a - "Hao ", // 0x4b - "Man ", // 0x4c - "Jing ", // 0x4d - "Jiang ", // 0x4e - "Mu ", // 0x4f - "Zhang ", // 0x50 - "Chan ", // 0x51 - "Ao ", // 0x52 - "Ao ", // 0x53 - "Hao ", // 0x54 - "Cui ", // 0x55 - "Fen ", // 0x56 - "Jue ", // 0x57 - "Bi ", // 0x58 - "Bi ", // 0x59 - "Huang ", // 0x5a - "Pu ", // 0x5b - "Lin ", // 0x5c - "Yu ", // 0x5d - "Tong ", // 0x5e - "Yao ", // 0x5f - "Liao ", // 0x60 - "Shuo ", // 0x61 - "Xiao ", // 0x62 - "Swu ", // 0x63 - "Ton ", // 0x64 - "Xi ", // 0x65 - "Ge ", // 0x66 - "Juan ", // 0x67 - "Du ", // 0x68 - "Hui ", // 0x69 - "Kuai ", // 0x6a - "Xian ", // 0x6b - "Xie ", // 0x6c - "Ta ", // 0x6d - "Xian ", // 0x6e - "Xun ", // 0x6f - "Ning ", // 0x70 - "Pin ", // 0x71 - "Huo ", // 0x72 - "Nou ", // 0x73 - "Meng ", // 0x74 - "Lie ", // 0x75 - "Nao ", // 0x76 - "Guang ", // 0x77 - "Shou ", // 0x78 - "Lu ", // 0x79 - "Ta ", // 0x7a - "Xian ", // 0x7b - "Mi ", // 0x7c - "Rang ", // 0x7d - "Huan ", // 0x7e - "Nao ", // 0x7f - "Luo ", // 0x80 - "Xian ", // 0x81 - "Qi ", // 0x82 - "Jue ", // 0x83 - "Xuan ", // 0x84 - "Miao ", // 0x85 - "Zi ", // 0x86 - "Lu ", // 0x87 - "Lu ", // 0x88 - "Yu ", // 0x89 - "Su ", // 0x8a - "Wang ", // 0x8b - "Qiu ", // 0x8c - "Ga ", // 0x8d - "Ding ", // 0x8e - "Le ", // 0x8f - "Ba ", // 0x90 - "Ji ", // 0x91 - "Hong ", // 0x92 - "Di ", // 0x93 - "Quan ", // 0x94 - "Gan ", // 0x95 - "Jiu ", // 0x96 - "Yu ", // 0x97 - "Ji ", // 0x98 - "Yu ", // 0x99 - "Yang ", // 0x9a - "Ma ", // 0x9b - "Gong ", // 0x9c - "Wu ", // 0x9d - "Fu ", // 0x9e - "Wen ", // 0x9f - "Jie ", // 0xa0 - "Ya ", // 0xa1 - "Fen ", // 0xa2 - "Bian ", // 0xa3 - "Beng ", // 0xa4 - "Yue ", // 0xa5 - "Jue ", // 0xa6 - "Yun ", // 0xa7 - "Jue ", // 0xa8 - "Wan ", // 0xa9 - "Jian ", // 0xaa - "Mei ", // 0xab - "Dan ", // 0xac - "Pi ", // 0xad - "Wei ", // 0xae - "Huan ", // 0xaf - "Xian ", // 0xb0 - "Qiang ", // 0xb1 - "Ling ", // 0xb2 - "Dai ", // 0xb3 - "Yi ", // 0xb4 - "An ", // 0xb5 - "Ping ", // 0xb6 - "Dian ", // 0xb7 - "Fu ", // 0xb8 - "Xuan ", // 0xb9 - "Xi ", // 0xba - "Bo ", // 0xbb - "Ci ", // 0xbc - "Gou ", // 0xbd - "Jia ", // 0xbe - "Shao ", // 0xbf - "Po ", // 0xc0 - "Ci ", // 0xc1 - "Ke ", // 0xc2 - "Ran ", // 0xc3 - "Sheng ", // 0xc4 - "Shen ", // 0xc5 - "Yi ", // 0xc6 - "Zu ", // 0xc7 - "Jia ", // 0xc8 - "Min ", // 0xc9 - "Shan ", // 0xca - "Liu ", // 0xcb - "Bi ", // 0xcc - "Zhen ", // 0xcd - "Zhen ", // 0xce - "Jue ", // 0xcf - "Fa ", // 0xd0 - "Long ", // 0xd1 - "Jin ", // 0xd2 - "Jiao ", // 0xd3 - "Jian ", // 0xd4 - "Li ", // 0xd5 - "Guang ", // 0xd6 - "Xian ", // 0xd7 - "Zhou ", // 0xd8 - "Gong ", // 0xd9 - "Yan ", // 0xda - "Xiu ", // 0xdb - "Yang ", // 0xdc - "Xu ", // 0xdd - "Luo ", // 0xde - "Su ", // 0xdf - "Zhu ", // 0xe0 - "Qin ", // 0xe1 - "Ken ", // 0xe2 - "Xun ", // 0xe3 - "Bao ", // 0xe4 - "Er ", // 0xe5 - "Xiang ", // 0xe6 - "Yao ", // 0xe7 - "Xia ", // 0xe8 - "Heng ", // 0xe9 - "Gui ", // 0xea - "Chong ", // 0xeb - "Xu ", // 0xec - "Ban ", // 0xed - "Pei ", // 0xee - "[?] ", // 0xef - "Dang ", // 0xf0 - "Ei ", // 0xf1 - "Hun ", // 0xf2 - "Wen ", // 0xf3 - "E ", // 0xf4 - "Cheng ", // 0xf5 - "Ti ", // 0xf6 - "Wu ", // 0xf7 - "Wu ", // 0xf8 - "Cheng ", // 0xf9 - "Jun ", // 0xfa - "Mei ", // 0xfb - "Bei ", // 0xfc - "Ting ", // 0xfd - "Xian ", // 0xfe - "Chuo ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x074.go b/vendor/github.com/mozillazg/go-unidecode/table/x074.go deleted file mode 100644 index 3b3b5a8..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x074.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x074 = []string{ - "Han ", // 0x00 - "Xuan ", // 0x01 - "Yan ", // 0x02 - "Qiu ", // 0x03 - "Quan ", // 0x04 - "Lang ", // 0x05 - "Li ", // 0x06 - "Xiu ", // 0x07 - "Fu ", // 0x08 - "Liu ", // 0x09 - "Ye ", // 0x0a - "Xi ", // 0x0b - "Ling ", // 0x0c - "Li ", // 0x0d - "Jin ", // 0x0e - "Lian ", // 0x0f - "Suo ", // 0x10 - "Chiisai ", // 0x11 - "[?] ", // 0x12 - "Wan ", // 0x13 - "Dian ", // 0x14 - "Pin ", // 0x15 - "Zhan ", // 0x16 - "Cui ", // 0x17 - "Min ", // 0x18 - "Yu ", // 0x19 - "Ju ", // 0x1a - "Chen ", // 0x1b - "Lai ", // 0x1c - "Wen ", // 0x1d - "Sheng ", // 0x1e - "Wei ", // 0x1f - "Dian ", // 0x20 - "Chu ", // 0x21 - "Zhuo ", // 0x22 - "Pei ", // 0x23 - "Cheng ", // 0x24 - "Hu ", // 0x25 - "Qi ", // 0x26 - "E ", // 0x27 - "Kun ", // 0x28 - "Chang ", // 0x29 - "Qi ", // 0x2a - "Beng ", // 0x2b - "Wan ", // 0x2c - "Lu ", // 0x2d - "Cong ", // 0x2e - "Guan ", // 0x2f - "Yan ", // 0x30 - "Diao ", // 0x31 - "Bei ", // 0x32 - "Lin ", // 0x33 - "Qin ", // 0x34 - "Pi ", // 0x35 - "Pa ", // 0x36 - "Que ", // 0x37 - "Zhuo ", // 0x38 - "Qin ", // 0x39 - "Fa ", // 0x3a - "[?] ", // 0x3b - "Qiong ", // 0x3c - "Du ", // 0x3d - "Jie ", // 0x3e - "Hun ", // 0x3f - "Yu ", // 0x40 - "Mao ", // 0x41 - "Mei ", // 0x42 - "Chun ", // 0x43 - "Xuan ", // 0x44 - "Ti ", // 0x45 - "Xing ", // 0x46 - "Dai ", // 0x47 - "Rou ", // 0x48 - "Min ", // 0x49 - "Zhen ", // 0x4a - "Wei ", // 0x4b - "Ruan ", // 0x4c - "Huan ", // 0x4d - "Jie ", // 0x4e - "Chuan ", // 0x4f - "Jian ", // 0x50 - "Zhuan ", // 0x51 - "Yang ", // 0x52 - "Lian ", // 0x53 - "Quan ", // 0x54 - "Xia ", // 0x55 - "Duan ", // 0x56 - "Yuan ", // 0x57 - "Ye ", // 0x58 - "Nao ", // 0x59 - "Hu ", // 0x5a - "Ying ", // 0x5b - "Yu ", // 0x5c - "Huang ", // 0x5d - "Rui ", // 0x5e - "Se ", // 0x5f - "Liu ", // 0x60 - "Shi ", // 0x61 - "Rong ", // 0x62 - "Suo ", // 0x63 - "Yao ", // 0x64 - "Wen ", // 0x65 - "Wu ", // 0x66 - "Jin ", // 0x67 - "Jin ", // 0x68 - "Ying ", // 0x69 - "Ma ", // 0x6a - "Tao ", // 0x6b - "Liu ", // 0x6c - "Tang ", // 0x6d - "Li ", // 0x6e - "Lang ", // 0x6f - "Gui ", // 0x70 - "Zhen ", // 0x71 - "Qiang ", // 0x72 - "Cuo ", // 0x73 - "Jue ", // 0x74 - "Zhao ", // 0x75 - "Yao ", // 0x76 - "Ai ", // 0x77 - "Bin ", // 0x78 - "Tu ", // 0x79 - "Chang ", // 0x7a - "Kun ", // 0x7b - "Zhuan ", // 0x7c - "Cong ", // 0x7d - "Jin ", // 0x7e - "Yi ", // 0x7f - "Cui ", // 0x80 - "Cong ", // 0x81 - "Qi ", // 0x82 - "Li ", // 0x83 - "Ying ", // 0x84 - "Suo ", // 0x85 - "Qiu ", // 0x86 - "Xuan ", // 0x87 - "Ao ", // 0x88 - "Lian ", // 0x89 - "Man ", // 0x8a - "Zhang ", // 0x8b - "Yin ", // 0x8c - "[?] ", // 0x8d - "Ying ", // 0x8e - "Zhi ", // 0x8f - "Lu ", // 0x90 - "Wu ", // 0x91 - "Deng ", // 0x92 - "Xiou ", // 0x93 - "Zeng ", // 0x94 - "Xun ", // 0x95 - "Qu ", // 0x96 - "Dang ", // 0x97 - "Lin ", // 0x98 - "Liao ", // 0x99 - "Qiong ", // 0x9a - "Su ", // 0x9b - "Huang ", // 0x9c - "Gui ", // 0x9d - "Pu ", // 0x9e - "Jing ", // 0x9f - "Fan ", // 0xa0 - "Jin ", // 0xa1 - "Liu ", // 0xa2 - "Ji ", // 0xa3 - "[?] ", // 0xa4 - "Jing ", // 0xa5 - "Ai ", // 0xa6 - "Bi ", // 0xa7 - "Can ", // 0xa8 - "Qu ", // 0xa9 - "Zao ", // 0xaa - "Dang ", // 0xab - "Jiao ", // 0xac - "Gun ", // 0xad - "Tan ", // 0xae - "Hui ", // 0xaf - "Huan ", // 0xb0 - "Se ", // 0xb1 - "Sui ", // 0xb2 - "Tian ", // 0xb3 - "[?] ", // 0xb4 - "Yu ", // 0xb5 - "Jin ", // 0xb6 - "Lu ", // 0xb7 - "Bin ", // 0xb8 - "Shou ", // 0xb9 - "Wen ", // 0xba - "Zui ", // 0xbb - "Lan ", // 0xbc - "Xi ", // 0xbd - "Ji ", // 0xbe - "Xuan ", // 0xbf - "Ruan ", // 0xc0 - "Huo ", // 0xc1 - "Gai ", // 0xc2 - "Lei ", // 0xc3 - "Du ", // 0xc4 - "Li ", // 0xc5 - "Zhi ", // 0xc6 - "Rou ", // 0xc7 - "Li ", // 0xc8 - "Zan ", // 0xc9 - "Qiong ", // 0xca - "Zhe ", // 0xcb - "Gui ", // 0xcc - "Sui ", // 0xcd - "La ", // 0xce - "Long ", // 0xcf - "Lu ", // 0xd0 - "Li ", // 0xd1 - "Zan ", // 0xd2 - "Lan ", // 0xd3 - "Ying ", // 0xd4 - "Mi ", // 0xd5 - "Xiang ", // 0xd6 - "Xi ", // 0xd7 - "Guan ", // 0xd8 - "Dao ", // 0xd9 - "Zan ", // 0xda - "Huan ", // 0xdb - "Gua ", // 0xdc - "Bo ", // 0xdd - "Die ", // 0xde - "Bao ", // 0xdf - "Hu ", // 0xe0 - "Zhi ", // 0xe1 - "Piao ", // 0xe2 - "Ban ", // 0xe3 - "Rang ", // 0xe4 - "Li ", // 0xe5 - "Wa ", // 0xe6 - "Dekaguramu ", // 0xe7 - "Jiang ", // 0xe8 - "Qian ", // 0xe9 - "Fan ", // 0xea - "Pen ", // 0xeb - "Fang ", // 0xec - "Dan ", // 0xed - "Weng ", // 0xee - "Ou ", // 0xef - "Deshiguramu ", // 0xf0 - "Miriguramu ", // 0xf1 - "Thon ", // 0xf2 - "Hu ", // 0xf3 - "Ling ", // 0xf4 - "Yi ", // 0xf5 - "Ping ", // 0xf6 - "Ci ", // 0xf7 - "Hekutogura ", // 0xf8 - "Juan ", // 0xf9 - "Chang ", // 0xfa - "Chi ", // 0xfb - "Sarake ", // 0xfc - "Dang ", // 0xfd - "Meng ", // 0xfe - "Pou ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x075.go b/vendor/github.com/mozillazg/go-unidecode/table/x075.go deleted file mode 100644 index 71ed429..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x075.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x075 = []string{ - "Zhui ", // 0x00 - "Ping ", // 0x01 - "Bian ", // 0x02 - "Zhou ", // 0x03 - "Zhen ", // 0x04 - "Senchigura ", // 0x05 - "Ci ", // 0x06 - "Ying ", // 0x07 - "Qi ", // 0x08 - "Xian ", // 0x09 - "Lou ", // 0x0a - "Di ", // 0x0b - "Ou ", // 0x0c - "Meng ", // 0x0d - "Zhuan ", // 0x0e - "Peng ", // 0x0f - "Lin ", // 0x10 - "Zeng ", // 0x11 - "Wu ", // 0x12 - "Pi ", // 0x13 - "Dan ", // 0x14 - "Weng ", // 0x15 - "Ying ", // 0x16 - "Yan ", // 0x17 - "Gan ", // 0x18 - "Dai ", // 0x19 - "Shen ", // 0x1a - "Tian ", // 0x1b - "Tian ", // 0x1c - "Han ", // 0x1d - "Chang ", // 0x1e - "Sheng ", // 0x1f - "Qing ", // 0x20 - "Sheng ", // 0x21 - "Chan ", // 0x22 - "Chan ", // 0x23 - "Rui ", // 0x24 - "Sheng ", // 0x25 - "Su ", // 0x26 - "Sen ", // 0x27 - "Yong ", // 0x28 - "Shuai ", // 0x29 - "Lu ", // 0x2a - "Fu ", // 0x2b - "Yong ", // 0x2c - "Beng ", // 0x2d - "Feng ", // 0x2e - "Ning ", // 0x2f - "Tian ", // 0x30 - "You ", // 0x31 - "Jia ", // 0x32 - "Shen ", // 0x33 - "Zha ", // 0x34 - "Dian ", // 0x35 - "Fu ", // 0x36 - "Nan ", // 0x37 - "Dian ", // 0x38 - "Ping ", // 0x39 - "Ting ", // 0x3a - "Hua ", // 0x3b - "Ting ", // 0x3c - "Quan ", // 0x3d - "Zi ", // 0x3e - "Meng ", // 0x3f - "Bi ", // 0x40 - "Qi ", // 0x41 - "Liu ", // 0x42 - "Xun ", // 0x43 - "Liu ", // 0x44 - "Chang ", // 0x45 - "Mu ", // 0x46 - "Yun ", // 0x47 - "Fan ", // 0x48 - "Fu ", // 0x49 - "Geng ", // 0x4a - "Tian ", // 0x4b - "Jie ", // 0x4c - "Jie ", // 0x4d - "Quan ", // 0x4e - "Wei ", // 0x4f - "Fu ", // 0x50 - "Tian ", // 0x51 - "Mu ", // 0x52 - "Tap ", // 0x53 - "Pan ", // 0x54 - "Jiang ", // 0x55 - "Wa ", // 0x56 - "Da ", // 0x57 - "Nan ", // 0x58 - "Liu ", // 0x59 - "Ben ", // 0x5a - "Zhen ", // 0x5b - "Chu ", // 0x5c - "Mu ", // 0x5d - "Mu ", // 0x5e - "Ce ", // 0x5f - "Cen ", // 0x60 - "Gai ", // 0x61 - "Bi ", // 0x62 - "Da ", // 0x63 - "Zhi ", // 0x64 - "Lue ", // 0x65 - "Qi ", // 0x66 - "Lue ", // 0x67 - "Pan ", // 0x68 - "Kesa ", // 0x69 - "Fan ", // 0x6a - "Hua ", // 0x6b - "Yu ", // 0x6c - "Yu ", // 0x6d - "Mu ", // 0x6e - "Jun ", // 0x6f - "Yi ", // 0x70 - "Liu ", // 0x71 - "Yu ", // 0x72 - "Die ", // 0x73 - "Chou ", // 0x74 - "Hua ", // 0x75 - "Dang ", // 0x76 - "Chuo ", // 0x77 - "Ji ", // 0x78 - "Wan ", // 0x79 - "Jiang ", // 0x7a - "Sheng ", // 0x7b - "Chang ", // 0x7c - "Tuan ", // 0x7d - "Lei ", // 0x7e - "Ji ", // 0x7f - "Cha ", // 0x80 - "Liu ", // 0x81 - "Tatamu ", // 0x82 - "Tuan ", // 0x83 - "Lin ", // 0x84 - "Jiang ", // 0x85 - "Jiang ", // 0x86 - "Chou ", // 0x87 - "Bo ", // 0x88 - "Die ", // 0x89 - "Die ", // 0x8a - "Pi ", // 0x8b - "Nie ", // 0x8c - "Dan ", // 0x8d - "Shu ", // 0x8e - "Shu ", // 0x8f - "Zhi ", // 0x90 - "Yi ", // 0x91 - "Chuang ", // 0x92 - "Nai ", // 0x93 - "Ding ", // 0x94 - "Bi ", // 0x95 - "Jie ", // 0x96 - "Liao ", // 0x97 - "Gong ", // 0x98 - "Ge ", // 0x99 - "Jiu ", // 0x9a - "Zhou ", // 0x9b - "Xia ", // 0x9c - "Shan ", // 0x9d - "Xu ", // 0x9e - "Nue ", // 0x9f - "Li ", // 0xa0 - "Yang ", // 0xa1 - "Chen ", // 0xa2 - "You ", // 0xa3 - "Ba ", // 0xa4 - "Jie ", // 0xa5 - "Jue ", // 0xa6 - "Zhi ", // 0xa7 - "Xia ", // 0xa8 - "Cui ", // 0xa9 - "Bi ", // 0xaa - "Yi ", // 0xab - "Li ", // 0xac - "Zong ", // 0xad - "Chuang ", // 0xae - "Feng ", // 0xaf - "Zhu ", // 0xb0 - "Pao ", // 0xb1 - "Pi ", // 0xb2 - "Gan ", // 0xb3 - "Ke ", // 0xb4 - "Ci ", // 0xb5 - "Xie ", // 0xb6 - "Qi ", // 0xb7 - "Dan ", // 0xb8 - "Zhen ", // 0xb9 - "Fa ", // 0xba - "Zhi ", // 0xbb - "Teng ", // 0xbc - "Ju ", // 0xbd - "Ji ", // 0xbe - "Fei ", // 0xbf - "Qu ", // 0xc0 - "Dian ", // 0xc1 - "Jia ", // 0xc2 - "Xian ", // 0xc3 - "Cha ", // 0xc4 - "Bing ", // 0xc5 - "Ni ", // 0xc6 - "Zheng ", // 0xc7 - "Yong ", // 0xc8 - "Jing ", // 0xc9 - "Quan ", // 0xca - "Chong ", // 0xcb - "Tong ", // 0xcc - "Yi ", // 0xcd - "Kai ", // 0xce - "Wei ", // 0xcf - "Hui ", // 0xd0 - "Duo ", // 0xd1 - "Yang ", // 0xd2 - "Chi ", // 0xd3 - "Zhi ", // 0xd4 - "Hen ", // 0xd5 - "Ya ", // 0xd6 - "Mei ", // 0xd7 - "Dou ", // 0xd8 - "Jing ", // 0xd9 - "Xiao ", // 0xda - "Tong ", // 0xdb - "Tu ", // 0xdc - "Mang ", // 0xdd - "Pi ", // 0xde - "Xiao ", // 0xdf - "Suan ", // 0xe0 - "Pu ", // 0xe1 - "Li ", // 0xe2 - "Zhi ", // 0xe3 - "Cuo ", // 0xe4 - "Duo ", // 0xe5 - "Wu ", // 0xe6 - "Sha ", // 0xe7 - "Lao ", // 0xe8 - "Shou ", // 0xe9 - "Huan ", // 0xea - "Xian ", // 0xeb - "Yi ", // 0xec - "Peng ", // 0xed - "Zhang ", // 0xee - "Guan ", // 0xef - "Tan ", // 0xf0 - "Fei ", // 0xf1 - "Ma ", // 0xf2 - "Lin ", // 0xf3 - "Chi ", // 0xf4 - "Ji ", // 0xf5 - "Dian ", // 0xf6 - "An ", // 0xf7 - "Chi ", // 0xf8 - "Bi ", // 0xf9 - "Bei ", // 0xfa - "Min ", // 0xfb - "Gu ", // 0xfc - "Dui ", // 0xfd - "E ", // 0xfe - "Wei ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x076.go b/vendor/github.com/mozillazg/go-unidecode/table/x076.go deleted file mode 100644 index 186937e..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x076.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x076 = []string{ - "Yu ", // 0x00 - "Cui ", // 0x01 - "Ya ", // 0x02 - "Zhu ", // 0x03 - "Cu ", // 0x04 - "Dan ", // 0x05 - "Shen ", // 0x06 - "Zhung ", // 0x07 - "Ji ", // 0x08 - "Yu ", // 0x09 - "Hou ", // 0x0a - "Feng ", // 0x0b - "La ", // 0x0c - "Yang ", // 0x0d - "Shen ", // 0x0e - "Tu ", // 0x0f - "Yu ", // 0x10 - "Gua ", // 0x11 - "Wen ", // 0x12 - "Huan ", // 0x13 - "Ku ", // 0x14 - "Jia ", // 0x15 - "Yin ", // 0x16 - "Yi ", // 0x17 - "Lu ", // 0x18 - "Sao ", // 0x19 - "Jue ", // 0x1a - "Chi ", // 0x1b - "Xi ", // 0x1c - "Guan ", // 0x1d - "Yi ", // 0x1e - "Wen ", // 0x1f - "Ji ", // 0x20 - "Chuang ", // 0x21 - "Ban ", // 0x22 - "Lei ", // 0x23 - "Liu ", // 0x24 - "Chai ", // 0x25 - "Shou ", // 0x26 - "Nue ", // 0x27 - "Dian ", // 0x28 - "Da ", // 0x29 - "Pie ", // 0x2a - "Tan ", // 0x2b - "Zhang ", // 0x2c - "Biao ", // 0x2d - "Shen ", // 0x2e - "Cu ", // 0x2f - "Luo ", // 0x30 - "Yi ", // 0x31 - "Zong ", // 0x32 - "Chou ", // 0x33 - "Zhang ", // 0x34 - "Zhai ", // 0x35 - "Sou ", // 0x36 - "Suo ", // 0x37 - "Que ", // 0x38 - "Diao ", // 0x39 - "Lou ", // 0x3a - "Lu ", // 0x3b - "Mo ", // 0x3c - "Jin ", // 0x3d - "Yin ", // 0x3e - "Ying ", // 0x3f - "Huang ", // 0x40 - "Fu ", // 0x41 - "Liao ", // 0x42 - "Long ", // 0x43 - "Qiao ", // 0x44 - "Liu ", // 0x45 - "Lao ", // 0x46 - "Xian ", // 0x47 - "Fei ", // 0x48 - "Dan ", // 0x49 - "Yin ", // 0x4a - "He ", // 0x4b - "Yan ", // 0x4c - "Ban ", // 0x4d - "Xian ", // 0x4e - "Guan ", // 0x4f - "Guai ", // 0x50 - "Nong ", // 0x51 - "Yu ", // 0x52 - "Wei ", // 0x53 - "Yi ", // 0x54 - "Yong ", // 0x55 - "Pi ", // 0x56 - "Lei ", // 0x57 - "Li ", // 0x58 - "Shu ", // 0x59 - "Dan ", // 0x5a - "Lin ", // 0x5b - "Dian ", // 0x5c - "Lin ", // 0x5d - "Lai ", // 0x5e - "Pie ", // 0x5f - "Ji ", // 0x60 - "Chi ", // 0x61 - "Yang ", // 0x62 - "Xian ", // 0x63 - "Jie ", // 0x64 - "Zheng ", // 0x65 - "[?] ", // 0x66 - "Li ", // 0x67 - "Huo ", // 0x68 - "Lai ", // 0x69 - "Shaku ", // 0x6a - "Dian ", // 0x6b - "Xian ", // 0x6c - "Ying ", // 0x6d - "Yin ", // 0x6e - "Qu ", // 0x6f - "Yong ", // 0x70 - "Tan ", // 0x71 - "Dian ", // 0x72 - "Luo ", // 0x73 - "Luan ", // 0x74 - "Luan ", // 0x75 - "Bo ", // 0x76 - "[?] ", // 0x77 - "Gui ", // 0x78 - "Po ", // 0x79 - "Fa ", // 0x7a - "Deng ", // 0x7b - "Fa ", // 0x7c - "Bai ", // 0x7d - "Bai ", // 0x7e - "Qie ", // 0x7f - "Bi ", // 0x80 - "Zao ", // 0x81 - "Zao ", // 0x82 - "Mao ", // 0x83 - "De ", // 0x84 - "Pa ", // 0x85 - "Jie ", // 0x86 - "Huang ", // 0x87 - "Gui ", // 0x88 - "Ci ", // 0x89 - "Ling ", // 0x8a - "Gao ", // 0x8b - "Mo ", // 0x8c - "Ji ", // 0x8d - "Jiao ", // 0x8e - "Peng ", // 0x8f - "Gao ", // 0x90 - "Ai ", // 0x91 - "E ", // 0x92 - "Hao ", // 0x93 - "Han ", // 0x94 - "Bi ", // 0x95 - "Wan ", // 0x96 - "Chou ", // 0x97 - "Qian ", // 0x98 - "Xi ", // 0x99 - "Ai ", // 0x9a - "Jiong ", // 0x9b - "Hao ", // 0x9c - "Huang ", // 0x9d - "Hao ", // 0x9e - "Ze ", // 0x9f - "Cui ", // 0xa0 - "Hao ", // 0xa1 - "Xiao ", // 0xa2 - "Ye ", // 0xa3 - "Po ", // 0xa4 - "Hao ", // 0xa5 - "Jiao ", // 0xa6 - "Ai ", // 0xa7 - "Xing ", // 0xa8 - "Huang ", // 0xa9 - "Li ", // 0xaa - "Piao ", // 0xab - "He ", // 0xac - "Jiao ", // 0xad - "Pi ", // 0xae - "Gan ", // 0xaf - "Pao ", // 0xb0 - "Zhou ", // 0xb1 - "Jun ", // 0xb2 - "Qiu ", // 0xb3 - "Cun ", // 0xb4 - "Que ", // 0xb5 - "Zha ", // 0xb6 - "Gu ", // 0xb7 - "Jun ", // 0xb8 - "Jun ", // 0xb9 - "Zhou ", // 0xba - "Zha ", // 0xbb - "Gu ", // 0xbc - "Zhan ", // 0xbd - "Du ", // 0xbe - "Min ", // 0xbf - "Qi ", // 0xc0 - "Ying ", // 0xc1 - "Yu ", // 0xc2 - "Bei ", // 0xc3 - "Zhao ", // 0xc4 - "Zhong ", // 0xc5 - "Pen ", // 0xc6 - "He ", // 0xc7 - "Ying ", // 0xc8 - "He ", // 0xc9 - "Yi ", // 0xca - "Bo ", // 0xcb - "Wan ", // 0xcc - "He ", // 0xcd - "Ang ", // 0xce - "Zhan ", // 0xcf - "Yan ", // 0xd0 - "Jian ", // 0xd1 - "He ", // 0xd2 - "Yu ", // 0xd3 - "Kui ", // 0xd4 - "Fan ", // 0xd5 - "Gai ", // 0xd6 - "Dao ", // 0xd7 - "Pan ", // 0xd8 - "Fu ", // 0xd9 - "Qiu ", // 0xda - "Sheng ", // 0xdb - "Dao ", // 0xdc - "Lu ", // 0xdd - "Zhan ", // 0xde - "Meng ", // 0xdf - "Li ", // 0xe0 - "Jin ", // 0xe1 - "Xu ", // 0xe2 - "Jian ", // 0xe3 - "Pan ", // 0xe4 - "Guan ", // 0xe5 - "An ", // 0xe6 - "Lu ", // 0xe7 - "Shu ", // 0xe8 - "Zhou ", // 0xe9 - "Dang ", // 0xea - "An ", // 0xeb - "Gu ", // 0xec - "Li ", // 0xed - "Mu ", // 0xee - "Cheng ", // 0xef - "Gan ", // 0xf0 - "Xu ", // 0xf1 - "Mang ", // 0xf2 - "Mang ", // 0xf3 - "Zhi ", // 0xf4 - "Qi ", // 0xf5 - "Ruan ", // 0xf6 - "Tian ", // 0xf7 - "Xiang ", // 0xf8 - "Dun ", // 0xf9 - "Xin ", // 0xfa - "Xi ", // 0xfb - "Pan ", // 0xfc - "Feng ", // 0xfd - "Dun ", // 0xfe - "Min ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x077.go b/vendor/github.com/mozillazg/go-unidecode/table/x077.go deleted file mode 100644 index 2f8c0e6..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x077.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x077 = []string{ - "Ming ", // 0x00 - "Sheng ", // 0x01 - "Shi ", // 0x02 - "Yun ", // 0x03 - "Mian ", // 0x04 - "Pan ", // 0x05 - "Fang ", // 0x06 - "Miao ", // 0x07 - "Dan ", // 0x08 - "Mei ", // 0x09 - "Mao ", // 0x0a - "Kan ", // 0x0b - "Xian ", // 0x0c - "Ou ", // 0x0d - "Shi ", // 0x0e - "Yang ", // 0x0f - "Zheng ", // 0x10 - "Yao ", // 0x11 - "Shen ", // 0x12 - "Huo ", // 0x13 - "Da ", // 0x14 - "Zhen ", // 0x15 - "Kuang ", // 0x16 - "Ju ", // 0x17 - "Shen ", // 0x18 - "Chi ", // 0x19 - "Sheng ", // 0x1a - "Mei ", // 0x1b - "Mo ", // 0x1c - "Zhu ", // 0x1d - "Zhen ", // 0x1e - "Zhen ", // 0x1f - "Mian ", // 0x20 - "Di ", // 0x21 - "Yuan ", // 0x22 - "Die ", // 0x23 - "Yi ", // 0x24 - "Zi ", // 0x25 - "Zi ", // 0x26 - "Chao ", // 0x27 - "Zha ", // 0x28 - "Xuan ", // 0x29 - "Bing ", // 0x2a - "Mi ", // 0x2b - "Long ", // 0x2c - "Sui ", // 0x2d - "Dong ", // 0x2e - "Mi ", // 0x2f - "Die ", // 0x30 - "Yi ", // 0x31 - "Er ", // 0x32 - "Ming ", // 0x33 - "Xuan ", // 0x34 - "Chi ", // 0x35 - "Kuang ", // 0x36 - "Juan ", // 0x37 - "Mou ", // 0x38 - "Zhen ", // 0x39 - "Tiao ", // 0x3a - "Yang ", // 0x3b - "Yan ", // 0x3c - "Mo ", // 0x3d - "Zhong ", // 0x3e - "Mai ", // 0x3f - "Zhao ", // 0x40 - "Zheng ", // 0x41 - "Mei ", // 0x42 - "Jun ", // 0x43 - "Shao ", // 0x44 - "Han ", // 0x45 - "Huan ", // 0x46 - "Di ", // 0x47 - "Cheng ", // 0x48 - "Cuo ", // 0x49 - "Juan ", // 0x4a - "E ", // 0x4b - "Wan ", // 0x4c - "Xian ", // 0x4d - "Xi ", // 0x4e - "Kun ", // 0x4f - "Lai ", // 0x50 - "Jian ", // 0x51 - "Shan ", // 0x52 - "Tian ", // 0x53 - "Hun ", // 0x54 - "Wan ", // 0x55 - "Ling ", // 0x56 - "Shi ", // 0x57 - "Qiong ", // 0x58 - "Lie ", // 0x59 - "Yai ", // 0x5a - "Jing ", // 0x5b - "Zheng ", // 0x5c - "Li ", // 0x5d - "Lai ", // 0x5e - "Sui ", // 0x5f - "Juan ", // 0x60 - "Shui ", // 0x61 - "Sui ", // 0x62 - "Du ", // 0x63 - "Bi ", // 0x64 - "Bi ", // 0x65 - "Mu ", // 0x66 - "Hun ", // 0x67 - "Ni ", // 0x68 - "Lu ", // 0x69 - "Yi ", // 0x6a - "Jie ", // 0x6b - "Cai ", // 0x6c - "Zhou ", // 0x6d - "Yu ", // 0x6e - "Hun ", // 0x6f - "Ma ", // 0x70 - "Xia ", // 0x71 - "Xing ", // 0x72 - "Xi ", // 0x73 - "Gun ", // 0x74 - "Cai ", // 0x75 - "Chun ", // 0x76 - "Jian ", // 0x77 - "Mei ", // 0x78 - "Du ", // 0x79 - "Hou ", // 0x7a - "Xuan ", // 0x7b - "Ti ", // 0x7c - "Kui ", // 0x7d - "Gao ", // 0x7e - "Rui ", // 0x7f - "Mou ", // 0x80 - "Xu ", // 0x81 - "Fa ", // 0x82 - "Wen ", // 0x83 - "Miao ", // 0x84 - "Chou ", // 0x85 - "Kui ", // 0x86 - "Mi ", // 0x87 - "Weng ", // 0x88 - "Kou ", // 0x89 - "Dang ", // 0x8a - "Chen ", // 0x8b - "Ke ", // 0x8c - "Sou ", // 0x8d - "Xia ", // 0x8e - "Qiong ", // 0x8f - "Mao ", // 0x90 - "Ming ", // 0x91 - "Man ", // 0x92 - "Shui ", // 0x93 - "Ze ", // 0x94 - "Zhang ", // 0x95 - "Yi ", // 0x96 - "Diao ", // 0x97 - "Ou ", // 0x98 - "Mo ", // 0x99 - "Shun ", // 0x9a - "Cong ", // 0x9b - "Lou ", // 0x9c - "Chi ", // 0x9d - "Man ", // 0x9e - "Piao ", // 0x9f - "Cheng ", // 0xa0 - "Ji ", // 0xa1 - "Meng ", // 0xa2 - "[?] ", // 0xa3 - "Run ", // 0xa4 - "Pie ", // 0xa5 - "Xi ", // 0xa6 - "Qiao ", // 0xa7 - "Pu ", // 0xa8 - "Zhu ", // 0xa9 - "Deng ", // 0xaa - "Shen ", // 0xab - "Shun ", // 0xac - "Liao ", // 0xad - "Che ", // 0xae - "Xian ", // 0xaf - "Kan ", // 0xb0 - "Ye ", // 0xb1 - "Xu ", // 0xb2 - "Tong ", // 0xb3 - "Mou ", // 0xb4 - "Lin ", // 0xb5 - "Kui ", // 0xb6 - "Xian ", // 0xb7 - "Ye ", // 0xb8 - "Ai ", // 0xb9 - "Hui ", // 0xba - "Zhan ", // 0xbb - "Jian ", // 0xbc - "Gu ", // 0xbd - "Zhao ", // 0xbe - "Qu ", // 0xbf - "Wei ", // 0xc0 - "Chou ", // 0xc1 - "Sao ", // 0xc2 - "Ning ", // 0xc3 - "Xun ", // 0xc4 - "Yao ", // 0xc5 - "Huo ", // 0xc6 - "Meng ", // 0xc7 - "Mian ", // 0xc8 - "Bin ", // 0xc9 - "Mian ", // 0xca - "Li ", // 0xcb - "Kuang ", // 0xcc - "Jue ", // 0xcd - "Xuan ", // 0xce - "Mian ", // 0xcf - "Huo ", // 0xd0 - "Lu ", // 0xd1 - "Meng ", // 0xd2 - "Long ", // 0xd3 - "Guan ", // 0xd4 - "Man ", // 0xd5 - "Xi ", // 0xd6 - "Chu ", // 0xd7 - "Tang ", // 0xd8 - "Kan ", // 0xd9 - "Zhu ", // 0xda - "Mao ", // 0xdb - "Jin ", // 0xdc - "Lin ", // 0xdd - "Yu ", // 0xde - "Shuo ", // 0xdf - "Ce ", // 0xe0 - "Jue ", // 0xe1 - "Shi ", // 0xe2 - "Yi ", // 0xe3 - "Shen ", // 0xe4 - "Zhi ", // 0xe5 - "Hou ", // 0xe6 - "Shen ", // 0xe7 - "Ying ", // 0xe8 - "Ju ", // 0xe9 - "Zhou ", // 0xea - "Jiao ", // 0xeb - "Cuo ", // 0xec - "Duan ", // 0xed - "Ai ", // 0xee - "Jiao ", // 0xef - "Zeng ", // 0xf0 - "Huo ", // 0xf1 - "Bai ", // 0xf2 - "Shi ", // 0xf3 - "Ding ", // 0xf4 - "Qi ", // 0xf5 - "Ji ", // 0xf6 - "Zi ", // 0xf7 - "Gan ", // 0xf8 - "Wu ", // 0xf9 - "Tuo ", // 0xfa - "Ku ", // 0xfb - "Qiang ", // 0xfc - "Xi ", // 0xfd - "Fan ", // 0xfe - "Kuang ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x078.go b/vendor/github.com/mozillazg/go-unidecode/table/x078.go deleted file mode 100644 index af5968d..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x078.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x078 = []string{ - "Dang ", // 0x00 - "Ma ", // 0x01 - "Sha ", // 0x02 - "Dan ", // 0x03 - "Jue ", // 0x04 - "Li ", // 0x05 - "Fu ", // 0x06 - "Min ", // 0x07 - "Nuo ", // 0x08 - "Huo ", // 0x09 - "Kang ", // 0x0a - "Zhi ", // 0x0b - "Qi ", // 0x0c - "Kan ", // 0x0d - "Jie ", // 0x0e - "Fen ", // 0x0f - "E ", // 0x10 - "Ya ", // 0x11 - "Pi ", // 0x12 - "Zhe ", // 0x13 - "Yan ", // 0x14 - "Sui ", // 0x15 - "Zhuan ", // 0x16 - "Che ", // 0x17 - "Dun ", // 0x18 - "Pan ", // 0x19 - "Yan ", // 0x1a - "[?] ", // 0x1b - "Feng ", // 0x1c - "Fa ", // 0x1d - "Mo ", // 0x1e - "Zha ", // 0x1f - "Qu ", // 0x20 - "Yu ", // 0x21 - "Luo ", // 0x22 - "Tuo ", // 0x23 - "Tuo ", // 0x24 - "Di ", // 0x25 - "Zhai ", // 0x26 - "Zhen ", // 0x27 - "Ai ", // 0x28 - "Fei ", // 0x29 - "Mu ", // 0x2a - "Zhu ", // 0x2b - "Li ", // 0x2c - "Bian ", // 0x2d - "Nu ", // 0x2e - "Ping ", // 0x2f - "Peng ", // 0x30 - "Ling ", // 0x31 - "Pao ", // 0x32 - "Le ", // 0x33 - "Po ", // 0x34 - "Bo ", // 0x35 - "Po ", // 0x36 - "Shen ", // 0x37 - "Za ", // 0x38 - "Nuo ", // 0x39 - "Li ", // 0x3a - "Long ", // 0x3b - "Tong ", // 0x3c - "[?] ", // 0x3d - "Li ", // 0x3e - "Aragane ", // 0x3f - "Chu ", // 0x40 - "Keng ", // 0x41 - "Quan ", // 0x42 - "Zhu ", // 0x43 - "Kuang ", // 0x44 - "Huo ", // 0x45 - "E ", // 0x46 - "Nao ", // 0x47 - "Jia ", // 0x48 - "Lu ", // 0x49 - "Wei ", // 0x4a - "Ai ", // 0x4b - "Luo ", // 0x4c - "Ken ", // 0x4d - "Xing ", // 0x4e - "Yan ", // 0x4f - "Tong ", // 0x50 - "Peng ", // 0x51 - "Xi ", // 0x52 - "[?] ", // 0x53 - "Hong ", // 0x54 - "Shuo ", // 0x55 - "Xia ", // 0x56 - "Qiao ", // 0x57 - "[?] ", // 0x58 - "Wei ", // 0x59 - "Qiao ", // 0x5a - "[?] ", // 0x5b - "Keng ", // 0x5c - "Xiao ", // 0x5d - "Que ", // 0x5e - "Chan ", // 0x5f - "Lang ", // 0x60 - "Hong ", // 0x61 - "Yu ", // 0x62 - "Xiao ", // 0x63 - "Xia ", // 0x64 - "Mang ", // 0x65 - "Long ", // 0x66 - "Iong ", // 0x67 - "Che ", // 0x68 - "Che ", // 0x69 - "E ", // 0x6a - "Liu ", // 0x6b - "Ying ", // 0x6c - "Mang ", // 0x6d - "Que ", // 0x6e - "Yan ", // 0x6f - "Sha ", // 0x70 - "Kun ", // 0x71 - "Yu ", // 0x72 - "[?] ", // 0x73 - "Kaki ", // 0x74 - "Lu ", // 0x75 - "Chen ", // 0x76 - "Jian ", // 0x77 - "Nue ", // 0x78 - "Song ", // 0x79 - "Zhuo ", // 0x7a - "Keng ", // 0x7b - "Peng ", // 0x7c - "Yan ", // 0x7d - "Zhui ", // 0x7e - "Kong ", // 0x7f - "Ceng ", // 0x80 - "Qi ", // 0x81 - "Zong ", // 0x82 - "Qing ", // 0x83 - "Lin ", // 0x84 - "Jun ", // 0x85 - "Bo ", // 0x86 - "Ding ", // 0x87 - "Min ", // 0x88 - "Diao ", // 0x89 - "Jian ", // 0x8a - "He ", // 0x8b - "Lu ", // 0x8c - "Ai ", // 0x8d - "Sui ", // 0x8e - "Que ", // 0x8f - "Ling ", // 0x90 - "Bei ", // 0x91 - "Yin ", // 0x92 - "Dui ", // 0x93 - "Wu ", // 0x94 - "Qi ", // 0x95 - "Lun ", // 0x96 - "Wan ", // 0x97 - "Dian ", // 0x98 - "Gang ", // 0x99 - "Pei ", // 0x9a - "Qi ", // 0x9b - "Chen ", // 0x9c - "Ruan ", // 0x9d - "Yan ", // 0x9e - "Die ", // 0x9f - "Ding ", // 0xa0 - "Du ", // 0xa1 - "Tuo ", // 0xa2 - "Jie ", // 0xa3 - "Ying ", // 0xa4 - "Bian ", // 0xa5 - "Ke ", // 0xa6 - "Bi ", // 0xa7 - "Wei ", // 0xa8 - "Shuo ", // 0xa9 - "Zhen ", // 0xaa - "Duan ", // 0xab - "Xia ", // 0xac - "Dang ", // 0xad - "Ti ", // 0xae - "Nao ", // 0xaf - "Peng ", // 0xb0 - "Jian ", // 0xb1 - "Di ", // 0xb2 - "Tan ", // 0xb3 - "Cha ", // 0xb4 - "Seki ", // 0xb5 - "Qi ", // 0xb6 - "[?] ", // 0xb7 - "Feng ", // 0xb8 - "Xuan ", // 0xb9 - "Que ", // 0xba - "Que ", // 0xbb - "Ma ", // 0xbc - "Gong ", // 0xbd - "Nian ", // 0xbe - "Su ", // 0xbf - "E ", // 0xc0 - "Ci ", // 0xc1 - "Liu ", // 0xc2 - "Si ", // 0xc3 - "Tang ", // 0xc4 - "Bang ", // 0xc5 - "Hua ", // 0xc6 - "Pi ", // 0xc7 - "Wei ", // 0xc8 - "Sang ", // 0xc9 - "Lei ", // 0xca - "Cuo ", // 0xcb - "Zhen ", // 0xcc - "Xia ", // 0xcd - "Qi ", // 0xce - "Lian ", // 0xcf - "Pan ", // 0xd0 - "Wei ", // 0xd1 - "Yun ", // 0xd2 - "Dui ", // 0xd3 - "Zhe ", // 0xd4 - "Ke ", // 0xd5 - "La ", // 0xd6 - "[?] ", // 0xd7 - "Qing ", // 0xd8 - "Gun ", // 0xd9 - "Zhuan ", // 0xda - "Chan ", // 0xdb - "Qi ", // 0xdc - "Ao ", // 0xdd - "Peng ", // 0xde - "Lu ", // 0xdf - "Lu ", // 0xe0 - "Kan ", // 0xe1 - "Qiang ", // 0xe2 - "Chen ", // 0xe3 - "Yin ", // 0xe4 - "Lei ", // 0xe5 - "Biao ", // 0xe6 - "Qi ", // 0xe7 - "Mo ", // 0xe8 - "Qi ", // 0xe9 - "Cui ", // 0xea - "Zong ", // 0xeb - "Qing ", // 0xec - "Chuo ", // 0xed - "[?] ", // 0xee - "Ji ", // 0xef - "Shan ", // 0xf0 - "Lao ", // 0xf1 - "Qu ", // 0xf2 - "Zeng ", // 0xf3 - "Deng ", // 0xf4 - "Jian ", // 0xf5 - "Xi ", // 0xf6 - "Lin ", // 0xf7 - "Ding ", // 0xf8 - "Dian ", // 0xf9 - "Huang ", // 0xfa - "Pan ", // 0xfb - "Za ", // 0xfc - "Qiao ", // 0xfd - "Di ", // 0xfe - "Li ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x079.go b/vendor/github.com/mozillazg/go-unidecode/table/x079.go deleted file mode 100644 index 408e7b3..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x079.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x079 = []string{ - "Tani ", // 0x00 - "Jiao ", // 0x01 - "[?] ", // 0x02 - "Zhang ", // 0x03 - "Qiao ", // 0x04 - "Dun ", // 0x05 - "Xian ", // 0x06 - "Yu ", // 0x07 - "Zhui ", // 0x08 - "He ", // 0x09 - "Huo ", // 0x0a - "Zhai ", // 0x0b - "Lei ", // 0x0c - "Ke ", // 0x0d - "Chu ", // 0x0e - "Ji ", // 0x0f - "Que ", // 0x10 - "Dang ", // 0x11 - "Yi ", // 0x12 - "Jiang ", // 0x13 - "Pi ", // 0x14 - "Pi ", // 0x15 - "Yu ", // 0x16 - "Pin ", // 0x17 - "Qi ", // 0x18 - "Ai ", // 0x19 - "Kai ", // 0x1a - "Jian ", // 0x1b - "Yu ", // 0x1c - "Ruan ", // 0x1d - "Meng ", // 0x1e - "Pao ", // 0x1f - "Ci ", // 0x20 - "[?] ", // 0x21 - "[?] ", // 0x22 - "Mie ", // 0x23 - "Ca ", // 0x24 - "Xian ", // 0x25 - "Kuang ", // 0x26 - "Lei ", // 0x27 - "Lei ", // 0x28 - "Zhi ", // 0x29 - "Li ", // 0x2a - "Li ", // 0x2b - "Fan ", // 0x2c - "Que ", // 0x2d - "Pao ", // 0x2e - "Ying ", // 0x2f - "Li ", // 0x30 - "Long ", // 0x31 - "Long ", // 0x32 - "Mo ", // 0x33 - "Bo ", // 0x34 - "Shuang ", // 0x35 - "Guan ", // 0x36 - "Lan ", // 0x37 - "Zan ", // 0x38 - "Yan ", // 0x39 - "Shi ", // 0x3a - "Shi ", // 0x3b - "Li ", // 0x3c - "Reng ", // 0x3d - "She ", // 0x3e - "Yue ", // 0x3f - "Si ", // 0x40 - "Qi ", // 0x41 - "Ta ", // 0x42 - "Ma ", // 0x43 - "Xie ", // 0x44 - "Xian ", // 0x45 - "Xian ", // 0x46 - "Zhi ", // 0x47 - "Qi ", // 0x48 - "Zhi ", // 0x49 - "Beng ", // 0x4a - "Dui ", // 0x4b - "Zhong ", // 0x4c - "[?] ", // 0x4d - "Yi ", // 0x4e - "Shi ", // 0x4f - "You ", // 0x50 - "Zhi ", // 0x51 - "Tiao ", // 0x52 - "Fu ", // 0x53 - "Fu ", // 0x54 - "Mi ", // 0x55 - "Zu ", // 0x56 - "Zhi ", // 0x57 - "Suan ", // 0x58 - "Mei ", // 0x59 - "Zuo ", // 0x5a - "Qu ", // 0x5b - "Hu ", // 0x5c - "Zhu ", // 0x5d - "Shen ", // 0x5e - "Sui ", // 0x5f - "Ci ", // 0x60 - "Chai ", // 0x61 - "Mi ", // 0x62 - "Lu ", // 0x63 - "Yu ", // 0x64 - "Xiang ", // 0x65 - "Wu ", // 0x66 - "Tiao ", // 0x67 - "Piao ", // 0x68 - "Zhu ", // 0x69 - "Gui ", // 0x6a - "Xia ", // 0x6b - "Zhi ", // 0x6c - "Ji ", // 0x6d - "Gao ", // 0x6e - "Zhen ", // 0x6f - "Gao ", // 0x70 - "Shui ", // 0x71 - "Jin ", // 0x72 - "Chen ", // 0x73 - "Gai ", // 0x74 - "Kun ", // 0x75 - "Di ", // 0x76 - "Dao ", // 0x77 - "Huo ", // 0x78 - "Tao ", // 0x79 - "Qi ", // 0x7a - "Gu ", // 0x7b - "Guan ", // 0x7c - "Zui ", // 0x7d - "Ling ", // 0x7e - "Lu ", // 0x7f - "Bing ", // 0x80 - "Jin ", // 0x81 - "Dao ", // 0x82 - "Zhi ", // 0x83 - "Lu ", // 0x84 - "Shan ", // 0x85 - "Bei ", // 0x86 - "Zhe ", // 0x87 - "Hui ", // 0x88 - "You ", // 0x89 - "Xi ", // 0x8a - "Yin ", // 0x8b - "Zi ", // 0x8c - "Huo ", // 0x8d - "Zhen ", // 0x8e - "Fu ", // 0x8f - "Yuan ", // 0x90 - "Wu ", // 0x91 - "Xian ", // 0x92 - "Yang ", // 0x93 - "Ti ", // 0x94 - "Yi ", // 0x95 - "Mei ", // 0x96 - "Si ", // 0x97 - "Di ", // 0x98 - "[?] ", // 0x99 - "Zhuo ", // 0x9a - "Zhen ", // 0x9b - "Yong ", // 0x9c - "Ji ", // 0x9d - "Gao ", // 0x9e - "Tang ", // 0x9f - "Si ", // 0xa0 - "Ma ", // 0xa1 - "Ta ", // 0xa2 - "[?] ", // 0xa3 - "Xuan ", // 0xa4 - "Qi ", // 0xa5 - "Yu ", // 0xa6 - "Xi ", // 0xa7 - "Ji ", // 0xa8 - "Si ", // 0xa9 - "Chan ", // 0xaa - "Tan ", // 0xab - "Kuai ", // 0xac - "Sui ", // 0xad - "Li ", // 0xae - "Nong ", // 0xaf - "Ni ", // 0xb0 - "Dao ", // 0xb1 - "Li ", // 0xb2 - "Rang ", // 0xb3 - "Yue ", // 0xb4 - "Ti ", // 0xb5 - "Zan ", // 0xb6 - "Lei ", // 0xb7 - "Rou ", // 0xb8 - "Yu ", // 0xb9 - "Yu ", // 0xba - "Chi ", // 0xbb - "Xie ", // 0xbc - "Qin ", // 0xbd - "He ", // 0xbe - "Tu ", // 0xbf - "Xiu ", // 0xc0 - "Si ", // 0xc1 - "Ren ", // 0xc2 - "Tu ", // 0xc3 - "Zi ", // 0xc4 - "Cha ", // 0xc5 - "Gan ", // 0xc6 - "Yi ", // 0xc7 - "Xian ", // 0xc8 - "Bing ", // 0xc9 - "Nian ", // 0xca - "Qiu ", // 0xcb - "Qiu ", // 0xcc - "Chong ", // 0xcd - "Fen ", // 0xce - "Hao ", // 0xcf - "Yun ", // 0xd0 - "Ke ", // 0xd1 - "Miao ", // 0xd2 - "Zhi ", // 0xd3 - "Geng ", // 0xd4 - "Bi ", // 0xd5 - "Zhi ", // 0xd6 - "Yu ", // 0xd7 - "Mi ", // 0xd8 - "Ku ", // 0xd9 - "Ban ", // 0xda - "Pi ", // 0xdb - "Ni ", // 0xdc - "Li ", // 0xdd - "You ", // 0xde - "Zu ", // 0xdf - "Pi ", // 0xe0 - "Ba ", // 0xe1 - "Ling ", // 0xe2 - "Mo ", // 0xe3 - "Cheng ", // 0xe4 - "Nian ", // 0xe5 - "Qin ", // 0xe6 - "Yang ", // 0xe7 - "Zuo ", // 0xe8 - "Zhi ", // 0xe9 - "Zhi ", // 0xea - "Shu ", // 0xeb - "Ju ", // 0xec - "Zi ", // 0xed - "Huo ", // 0xee - "Ji ", // 0xef - "Cheng ", // 0xf0 - "Tong ", // 0xf1 - "Zhi ", // 0xf2 - "Huo ", // 0xf3 - "He ", // 0xf4 - "Yin ", // 0xf5 - "Zi ", // 0xf6 - "Zhi ", // 0xf7 - "Jie ", // 0xf8 - "Ren ", // 0xf9 - "Du ", // 0xfa - "Yi ", // 0xfb - "Zhu ", // 0xfc - "Hui ", // 0xfd - "Nong ", // 0xfe - "Fu ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x07a.go b/vendor/github.com/mozillazg/go-unidecode/table/x07a.go deleted file mode 100644 index 4167f04..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x07a.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x07a = []string{ - "Xi ", // 0x00 - "Kao ", // 0x01 - "Lang ", // 0x02 - "Fu ", // 0x03 - "Ze ", // 0x04 - "Shui ", // 0x05 - "Lu ", // 0x06 - "Kun ", // 0x07 - "Gan ", // 0x08 - "Geng ", // 0x09 - "Ti ", // 0x0a - "Cheng ", // 0x0b - "Tu ", // 0x0c - "Shao ", // 0x0d - "Shui ", // 0x0e - "Ya ", // 0x0f - "Lun ", // 0x10 - "Lu ", // 0x11 - "Gu ", // 0x12 - "Zuo ", // 0x13 - "Ren ", // 0x14 - "Zhun ", // 0x15 - "Bang ", // 0x16 - "Bai ", // 0x17 - "Ji ", // 0x18 - "Zhi ", // 0x19 - "Zhi ", // 0x1a - "Kun ", // 0x1b - "Leng ", // 0x1c - "Peng ", // 0x1d - "Ke ", // 0x1e - "Bing ", // 0x1f - "Chou ", // 0x20 - "Zu ", // 0x21 - "Yu ", // 0x22 - "Su ", // 0x23 - "Lue ", // 0x24 - "[?] ", // 0x25 - "Yi ", // 0x26 - "Xi ", // 0x27 - "Bian ", // 0x28 - "Ji ", // 0x29 - "Fu ", // 0x2a - "Bi ", // 0x2b - "Nuo ", // 0x2c - "Jie ", // 0x2d - "Zhong ", // 0x2e - "Zong ", // 0x2f - "Xu ", // 0x30 - "Cheng ", // 0x31 - "Dao ", // 0x32 - "Wen ", // 0x33 - "Lian ", // 0x34 - "Zi ", // 0x35 - "Yu ", // 0x36 - "Ji ", // 0x37 - "Xu ", // 0x38 - "Zhen ", // 0x39 - "Zhi ", // 0x3a - "Dao ", // 0x3b - "Jia ", // 0x3c - "Ji ", // 0x3d - "Gao ", // 0x3e - "Gao ", // 0x3f - "Gu ", // 0x40 - "Rong ", // 0x41 - "Sui ", // 0x42 - "You ", // 0x43 - "Ji ", // 0x44 - "Kang ", // 0x45 - "Mu ", // 0x46 - "Shan ", // 0x47 - "Men ", // 0x48 - "Zhi ", // 0x49 - "Ji ", // 0x4a - "Lu ", // 0x4b - "Su ", // 0x4c - "Ji ", // 0x4d - "Ying ", // 0x4e - "Wen ", // 0x4f - "Qiu ", // 0x50 - "Se ", // 0x51 - "[?] ", // 0x52 - "Yi ", // 0x53 - "Huang ", // 0x54 - "Qie ", // 0x55 - "Ji ", // 0x56 - "Sui ", // 0x57 - "Xiao ", // 0x58 - "Pu ", // 0x59 - "Jiao ", // 0x5a - "Zhuo ", // 0x5b - "Tong ", // 0x5c - "Sai ", // 0x5d - "Lu ", // 0x5e - "Sui ", // 0x5f - "Nong ", // 0x60 - "Se ", // 0x61 - "Hui ", // 0x62 - "Rang ", // 0x63 - "Nuo ", // 0x64 - "Yu ", // 0x65 - "Bin ", // 0x66 - "Ji ", // 0x67 - "Tui ", // 0x68 - "Wen ", // 0x69 - "Cheng ", // 0x6a - "Huo ", // 0x6b - "Gong ", // 0x6c - "Lu ", // 0x6d - "Biao ", // 0x6e - "[?] ", // 0x6f - "Rang ", // 0x70 - "Zhuo ", // 0x71 - "Li ", // 0x72 - "Zan ", // 0x73 - "Xue ", // 0x74 - "Wa ", // 0x75 - "Jiu ", // 0x76 - "Qiong ", // 0x77 - "Xi ", // 0x78 - "Qiong ", // 0x79 - "Kong ", // 0x7a - "Yu ", // 0x7b - "Sen ", // 0x7c - "Jing ", // 0x7d - "Yao ", // 0x7e - "Chuan ", // 0x7f - "Zhun ", // 0x80 - "Tu ", // 0x81 - "Lao ", // 0x82 - "Qie ", // 0x83 - "Zhai ", // 0x84 - "Yao ", // 0x85 - "Bian ", // 0x86 - "Bao ", // 0x87 - "Yao ", // 0x88 - "Bing ", // 0x89 - "Wa ", // 0x8a - "Zhu ", // 0x8b - "Jiao ", // 0x8c - "Qiao ", // 0x8d - "Diao ", // 0x8e - "Wu ", // 0x8f - "Gui ", // 0x90 - "Yao ", // 0x91 - "Zhi ", // 0x92 - "Chuang ", // 0x93 - "Yao ", // 0x94 - "Tiao ", // 0x95 - "Jiao ", // 0x96 - "Chuang ", // 0x97 - "Jiong ", // 0x98 - "Xiao ", // 0x99 - "Cheng ", // 0x9a - "Kou ", // 0x9b - "Cuan ", // 0x9c - "Wo ", // 0x9d - "Dan ", // 0x9e - "Ku ", // 0x9f - "Ke ", // 0xa0 - "Zhui ", // 0xa1 - "Xu ", // 0xa2 - "Su ", // 0xa3 - "Guan ", // 0xa4 - "Kui ", // 0xa5 - "Dou ", // 0xa6 - "[?] ", // 0xa7 - "Yin ", // 0xa8 - "Wo ", // 0xa9 - "Wa ", // 0xaa - "Ya ", // 0xab - "Yu ", // 0xac - "Ju ", // 0xad - "Qiong ", // 0xae - "Yao ", // 0xaf - "Yao ", // 0xb0 - "Tiao ", // 0xb1 - "Chao ", // 0xb2 - "Yu ", // 0xb3 - "Tian ", // 0xb4 - "Diao ", // 0xb5 - "Ju ", // 0xb6 - "Liao ", // 0xb7 - "Xi ", // 0xb8 - "Wu ", // 0xb9 - "Kui ", // 0xba - "Chuang ", // 0xbb - "Zhao ", // 0xbc - "[?] ", // 0xbd - "Kuan ", // 0xbe - "Long ", // 0xbf - "Cheng ", // 0xc0 - "Cui ", // 0xc1 - "Piao ", // 0xc2 - "Zao ", // 0xc3 - "Cuan ", // 0xc4 - "Qiao ", // 0xc5 - "Qiong ", // 0xc6 - "Dou ", // 0xc7 - "Zao ", // 0xc8 - "Long ", // 0xc9 - "Qie ", // 0xca - "Li ", // 0xcb - "Chu ", // 0xcc - "Shi ", // 0xcd - "Fou ", // 0xce - "Qian ", // 0xcf - "Chu ", // 0xd0 - "Hong ", // 0xd1 - "Qi ", // 0xd2 - "Qian ", // 0xd3 - "Gong ", // 0xd4 - "Shi ", // 0xd5 - "Shu ", // 0xd6 - "Miao ", // 0xd7 - "Ju ", // 0xd8 - "Zhan ", // 0xd9 - "Zhu ", // 0xda - "Ling ", // 0xdb - "Long ", // 0xdc - "Bing ", // 0xdd - "Jing ", // 0xde - "Jing ", // 0xdf - "Zhang ", // 0xe0 - "Yi ", // 0xe1 - "Si ", // 0xe2 - "Jun ", // 0xe3 - "Hong ", // 0xe4 - "Tong ", // 0xe5 - "Song ", // 0xe6 - "Jing ", // 0xe7 - "Diao ", // 0xe8 - "Yi ", // 0xe9 - "Shu ", // 0xea - "Jing ", // 0xeb - "Qu ", // 0xec - "Jie ", // 0xed - "Ping ", // 0xee - "Duan ", // 0xef - "Shao ", // 0xf0 - "Zhuan ", // 0xf1 - "Ceng ", // 0xf2 - "Deng ", // 0xf3 - "Cui ", // 0xf4 - "Huai ", // 0xf5 - "Jing ", // 0xf6 - "Kan ", // 0xf7 - "Jing ", // 0xf8 - "Zhu ", // 0xf9 - "Zhu ", // 0xfa - "Le ", // 0xfb - "Peng ", // 0xfc - "Yu ", // 0xfd - "Chi ", // 0xfe - "Gan ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x07b.go b/vendor/github.com/mozillazg/go-unidecode/table/x07b.go deleted file mode 100644 index 6e91a0a..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x07b.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x07b = []string{ - "Mang ", // 0x00 - "Zhu ", // 0x01 - "Utsubo ", // 0x02 - "Du ", // 0x03 - "Ji ", // 0x04 - "Xiao ", // 0x05 - "Ba ", // 0x06 - "Suan ", // 0x07 - "Ji ", // 0x08 - "Zhen ", // 0x09 - "Zhao ", // 0x0a - "Sun ", // 0x0b - "Ya ", // 0x0c - "Zhui ", // 0x0d - "Yuan ", // 0x0e - "Hu ", // 0x0f - "Gang ", // 0x10 - "Xiao ", // 0x11 - "Cen ", // 0x12 - "Pi ", // 0x13 - "Bi ", // 0x14 - "Jian ", // 0x15 - "Yi ", // 0x16 - "Dong ", // 0x17 - "Shan ", // 0x18 - "Sheng ", // 0x19 - "Xia ", // 0x1a - "Di ", // 0x1b - "Zhu ", // 0x1c - "Na ", // 0x1d - "Chi ", // 0x1e - "Gu ", // 0x1f - "Li ", // 0x20 - "Qie ", // 0x21 - "Min ", // 0x22 - "Bao ", // 0x23 - "Tiao ", // 0x24 - "Si ", // 0x25 - "Fu ", // 0x26 - "Ce ", // 0x27 - "Ben ", // 0x28 - "Pei ", // 0x29 - "Da ", // 0x2a - "Zi ", // 0x2b - "Di ", // 0x2c - "Ling ", // 0x2d - "Ze ", // 0x2e - "Nu ", // 0x2f - "Fu ", // 0x30 - "Gou ", // 0x31 - "Fan ", // 0x32 - "Jia ", // 0x33 - "Ge ", // 0x34 - "Fan ", // 0x35 - "Shi ", // 0x36 - "Mao ", // 0x37 - "Po ", // 0x38 - "Sey ", // 0x39 - "Jian ", // 0x3a - "Qiong ", // 0x3b - "Long ", // 0x3c - "Souke ", // 0x3d - "Bian ", // 0x3e - "Luo ", // 0x3f - "Gui ", // 0x40 - "Qu ", // 0x41 - "Chi ", // 0x42 - "Yin ", // 0x43 - "Yao ", // 0x44 - "Xian ", // 0x45 - "Bi ", // 0x46 - "Qiong ", // 0x47 - "Gua ", // 0x48 - "Deng ", // 0x49 - "Jiao ", // 0x4a - "Jin ", // 0x4b - "Quan ", // 0x4c - "Sun ", // 0x4d - "Ru ", // 0x4e - "Fa ", // 0x4f - "Kuang ", // 0x50 - "Zhu ", // 0x51 - "Tong ", // 0x52 - "Ji ", // 0x53 - "Da ", // 0x54 - "Xing ", // 0x55 - "Ce ", // 0x56 - "Zhong ", // 0x57 - "Kou ", // 0x58 - "Lai ", // 0x59 - "Bi ", // 0x5a - "Shai ", // 0x5b - "Dang ", // 0x5c - "Zheng ", // 0x5d - "Ce ", // 0x5e - "Fu ", // 0x5f - "Yun ", // 0x60 - "Tu ", // 0x61 - "Pa ", // 0x62 - "Li ", // 0x63 - "Lang ", // 0x64 - "Ju ", // 0x65 - "Guan ", // 0x66 - "Jian ", // 0x67 - "Han ", // 0x68 - "Tong ", // 0x69 - "Xia ", // 0x6a - "Zhi ", // 0x6b - "Cheng ", // 0x6c - "Suan ", // 0x6d - "Shi ", // 0x6e - "Zhu ", // 0x6f - "Zuo ", // 0x70 - "Xiao ", // 0x71 - "Shao ", // 0x72 - "Ting ", // 0x73 - "Ce ", // 0x74 - "Yan ", // 0x75 - "Gao ", // 0x76 - "Kuai ", // 0x77 - "Gan ", // 0x78 - "Chou ", // 0x79 - "Kago ", // 0x7a - "Gang ", // 0x7b - "Yun ", // 0x7c - "O ", // 0x7d - "Qian ", // 0x7e - "Xiao ", // 0x7f - "Jian ", // 0x80 - "Pu ", // 0x81 - "Lai ", // 0x82 - "Zou ", // 0x83 - "Bi ", // 0x84 - "Bi ", // 0x85 - "Bi ", // 0x86 - "Ge ", // 0x87 - "Chi ", // 0x88 - "Guai ", // 0x89 - "Yu ", // 0x8a - "Jian ", // 0x8b - "Zhao ", // 0x8c - "Gu ", // 0x8d - "Chi ", // 0x8e - "Zheng ", // 0x8f - "Jing ", // 0x90 - "Sha ", // 0x91 - "Zhou ", // 0x92 - "Lu ", // 0x93 - "Bo ", // 0x94 - "Ji ", // 0x95 - "Lin ", // 0x96 - "Suan ", // 0x97 - "Jun ", // 0x98 - "Fu ", // 0x99 - "Zha ", // 0x9a - "Gu ", // 0x9b - "Kong ", // 0x9c - "Qian ", // 0x9d - "Quan ", // 0x9e - "Jun ", // 0x9f - "Chui ", // 0xa0 - "Guan ", // 0xa1 - "Yuan ", // 0xa2 - "Ce ", // 0xa3 - "Ju ", // 0xa4 - "Bo ", // 0xa5 - "Ze ", // 0xa6 - "Qie ", // 0xa7 - "Tuo ", // 0xa8 - "Luo ", // 0xa9 - "Dan ", // 0xaa - "Xiao ", // 0xab - "Ruo ", // 0xac - "Jian ", // 0xad - "Xuan ", // 0xae - "Bian ", // 0xaf - "Sun ", // 0xb0 - "Xiang ", // 0xb1 - "Xian ", // 0xb2 - "Ping ", // 0xb3 - "Zhen ", // 0xb4 - "Sheng ", // 0xb5 - "Hu ", // 0xb6 - "Shi ", // 0xb7 - "Zhu ", // 0xb8 - "Yue ", // 0xb9 - "Chun ", // 0xba - "Lu ", // 0xbb - "Wu ", // 0xbc - "Dong ", // 0xbd - "Xiao ", // 0xbe - "Ji ", // 0xbf - "Jie ", // 0xc0 - "Huang ", // 0xc1 - "Xing ", // 0xc2 - "Mei ", // 0xc3 - "Fan ", // 0xc4 - "Chui ", // 0xc5 - "Zhuan ", // 0xc6 - "Pian ", // 0xc7 - "Feng ", // 0xc8 - "Zhu ", // 0xc9 - "Hong ", // 0xca - "Qie ", // 0xcb - "Hou ", // 0xcc - "Qiu ", // 0xcd - "Miao ", // 0xce - "Qian ", // 0xcf - "[?] ", // 0xd0 - "Kui ", // 0xd1 - "Sik ", // 0xd2 - "Lou ", // 0xd3 - "Yun ", // 0xd4 - "He ", // 0xd5 - "Tang ", // 0xd6 - "Yue ", // 0xd7 - "Chou ", // 0xd8 - "Gao ", // 0xd9 - "Fei ", // 0xda - "Ruo ", // 0xdb - "Zheng ", // 0xdc - "Gou ", // 0xdd - "Nie ", // 0xde - "Qian ", // 0xdf - "Xiao ", // 0xe0 - "Cuan ", // 0xe1 - "Gong ", // 0xe2 - "Pang ", // 0xe3 - "Du ", // 0xe4 - "Li ", // 0xe5 - "Bi ", // 0xe6 - "Zhuo ", // 0xe7 - "Chu ", // 0xe8 - "Shai ", // 0xe9 - "Chi ", // 0xea - "Zhu ", // 0xeb - "Qiang ", // 0xec - "Long ", // 0xed - "Lan ", // 0xee - "Jian ", // 0xef - "Bu ", // 0xf0 - "Li ", // 0xf1 - "Hui ", // 0xf2 - "Bi ", // 0xf3 - "Di ", // 0xf4 - "Cong ", // 0xf5 - "Yan ", // 0xf6 - "Peng ", // 0xf7 - "Sen ", // 0xf8 - "Zhuan ", // 0xf9 - "Pai ", // 0xfa - "Piao ", // 0xfb - "Dou ", // 0xfc - "Yu ", // 0xfd - "Mie ", // 0xfe - "Zhuan ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x07c.go b/vendor/github.com/mozillazg/go-unidecode/table/x07c.go deleted file mode 100644 index a7b5a8d..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x07c.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x07c = []string{ - "Ze ", // 0x00 - "Xi ", // 0x01 - "Guo ", // 0x02 - "Yi ", // 0x03 - "Hu ", // 0x04 - "Chan ", // 0x05 - "Kou ", // 0x06 - "Cu ", // 0x07 - "Ping ", // 0x08 - "Chou ", // 0x09 - "Ji ", // 0x0a - "Gui ", // 0x0b - "Su ", // 0x0c - "Lou ", // 0x0d - "Zha ", // 0x0e - "Lu ", // 0x0f - "Nian ", // 0x10 - "Suo ", // 0x11 - "Cuan ", // 0x12 - "Sasara ", // 0x13 - "Suo ", // 0x14 - "Le ", // 0x15 - "Duan ", // 0x16 - "Yana ", // 0x17 - "Xiao ", // 0x18 - "Bo ", // 0x19 - "Mi ", // 0x1a - "Si ", // 0x1b - "Dang ", // 0x1c - "Liao ", // 0x1d - "Dan ", // 0x1e - "Dian ", // 0x1f - "Fu ", // 0x20 - "Jian ", // 0x21 - "Min ", // 0x22 - "Kui ", // 0x23 - "Dai ", // 0x24 - "Qiao ", // 0x25 - "Deng ", // 0x26 - "Huang ", // 0x27 - "Sun ", // 0x28 - "Lao ", // 0x29 - "Zan ", // 0x2a - "Xiao ", // 0x2b - "Du ", // 0x2c - "Shi ", // 0x2d - "Zan ", // 0x2e - "[?] ", // 0x2f - "Pai ", // 0x30 - "Hata ", // 0x31 - "Pai ", // 0x32 - "Gan ", // 0x33 - "Ju ", // 0x34 - "Du ", // 0x35 - "Lu ", // 0x36 - "Yan ", // 0x37 - "Bo ", // 0x38 - "Dang ", // 0x39 - "Sai ", // 0x3a - "Ke ", // 0x3b - "Long ", // 0x3c - "Qian ", // 0x3d - "Lian ", // 0x3e - "Bo ", // 0x3f - "Zhou ", // 0x40 - "Lai ", // 0x41 - "[?] ", // 0x42 - "Lan ", // 0x43 - "Kui ", // 0x44 - "Yu ", // 0x45 - "Yue ", // 0x46 - "Hao ", // 0x47 - "Zhen ", // 0x48 - "Tai ", // 0x49 - "Ti ", // 0x4a - "Mi ", // 0x4b - "Chou ", // 0x4c - "Ji ", // 0x4d - "[?] ", // 0x4e - "Hata ", // 0x4f - "Teng ", // 0x50 - "Zhuan ", // 0x51 - "Zhou ", // 0x52 - "Fan ", // 0x53 - "Sou ", // 0x54 - "Zhou ", // 0x55 - "Kuji ", // 0x56 - "Zhuo ", // 0x57 - "Teng ", // 0x58 - "Lu ", // 0x59 - "Lu ", // 0x5a - "Jian ", // 0x5b - "Tuo ", // 0x5c - "Ying ", // 0x5d - "Yu ", // 0x5e - "Lai ", // 0x5f - "Long ", // 0x60 - "Shinshi ", // 0x61 - "Lian ", // 0x62 - "Lan ", // 0x63 - "Qian ", // 0x64 - "Yue ", // 0x65 - "Zhong ", // 0x66 - "Qu ", // 0x67 - "Lian ", // 0x68 - "Bian ", // 0x69 - "Duan ", // 0x6a - "Zuan ", // 0x6b - "Li ", // 0x6c - "Si ", // 0x6d - "Luo ", // 0x6e - "Ying ", // 0x6f - "Yue ", // 0x70 - "Zhuo ", // 0x71 - "Xu ", // 0x72 - "Mi ", // 0x73 - "Di ", // 0x74 - "Fan ", // 0x75 - "Shen ", // 0x76 - "Zhe ", // 0x77 - "Shen ", // 0x78 - "Nu ", // 0x79 - "Xie ", // 0x7a - "Lei ", // 0x7b - "Xian ", // 0x7c - "Zi ", // 0x7d - "Ni ", // 0x7e - "Cun ", // 0x7f - "[?] ", // 0x80 - "Qian ", // 0x81 - "Kume ", // 0x82 - "Bi ", // 0x83 - "Ban ", // 0x84 - "Wu ", // 0x85 - "Sha ", // 0x86 - "Kang ", // 0x87 - "Rou ", // 0x88 - "Fen ", // 0x89 - "Bi ", // 0x8a - "Cui ", // 0x8b - "[?] ", // 0x8c - "Li ", // 0x8d - "Chi ", // 0x8e - "Nukamiso ", // 0x8f - "Ro ", // 0x90 - "Ba ", // 0x91 - "Li ", // 0x92 - "Gan ", // 0x93 - "Ju ", // 0x94 - "Po ", // 0x95 - "Mo ", // 0x96 - "Cu ", // 0x97 - "Nian ", // 0x98 - "Zhou ", // 0x99 - "Li ", // 0x9a - "Su ", // 0x9b - "Tiao ", // 0x9c - "Li ", // 0x9d - "Qi ", // 0x9e - "Su ", // 0x9f - "Hong ", // 0xa0 - "Tong ", // 0xa1 - "Zi ", // 0xa2 - "Ce ", // 0xa3 - "Yue ", // 0xa4 - "Zhou ", // 0xa5 - "Lin ", // 0xa6 - "Zhuang ", // 0xa7 - "Bai ", // 0xa8 - "[?] ", // 0xa9 - "Fen ", // 0xaa - "Ji ", // 0xab - "[?] ", // 0xac - "Sukumo ", // 0xad - "Liang ", // 0xae - "Xian ", // 0xaf - "Fu ", // 0xb0 - "Liang ", // 0xb1 - "Can ", // 0xb2 - "Geng ", // 0xb3 - "Li ", // 0xb4 - "Yue ", // 0xb5 - "Lu ", // 0xb6 - "Ju ", // 0xb7 - "Qi ", // 0xb8 - "Cui ", // 0xb9 - "Bai ", // 0xba - "Zhang ", // 0xbb - "Lin ", // 0xbc - "Zong ", // 0xbd - "Jing ", // 0xbe - "Guo ", // 0xbf - "Kouji ", // 0xc0 - "San ", // 0xc1 - "San ", // 0xc2 - "Tang ", // 0xc3 - "Bian ", // 0xc4 - "Rou ", // 0xc5 - "Mian ", // 0xc6 - "Hou ", // 0xc7 - "Xu ", // 0xc8 - "Zong ", // 0xc9 - "Hu ", // 0xca - "Jian ", // 0xcb - "Zan ", // 0xcc - "Ci ", // 0xcd - "Li ", // 0xce - "Xie ", // 0xcf - "Fu ", // 0xd0 - "Ni ", // 0xd1 - "Bei ", // 0xd2 - "Gu ", // 0xd3 - "Xiu ", // 0xd4 - "Gao ", // 0xd5 - "Tang ", // 0xd6 - "Qiu ", // 0xd7 - "Sukumo ", // 0xd8 - "Cao ", // 0xd9 - "Zhuang ", // 0xda - "Tang ", // 0xdb - "Mi ", // 0xdc - "San ", // 0xdd - "Fen ", // 0xde - "Zao ", // 0xdf - "Kang ", // 0xe0 - "Jiang ", // 0xe1 - "Mo ", // 0xe2 - "San ", // 0xe3 - "San ", // 0xe4 - "Nuo ", // 0xe5 - "Xi ", // 0xe6 - "Liang ", // 0xe7 - "Jiang ", // 0xe8 - "Kuai ", // 0xe9 - "Bo ", // 0xea - "Huan ", // 0xeb - "[?] ", // 0xec - "Zong ", // 0xed - "Xian ", // 0xee - "Nuo ", // 0xef - "Tuan ", // 0xf0 - "Nie ", // 0xf1 - "Li ", // 0xf2 - "Zuo ", // 0xf3 - "Di ", // 0xf4 - "Nie ", // 0xf5 - "Tiao ", // 0xf6 - "Lan ", // 0xf7 - "Mi ", // 0xf8 - "Jiao ", // 0xf9 - "Jiu ", // 0xfa - "Xi ", // 0xfb - "Gong ", // 0xfc - "Zheng ", // 0xfd - "Jiu ", // 0xfe - "You ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x07d.go b/vendor/github.com/mozillazg/go-unidecode/table/x07d.go deleted file mode 100644 index 5ac1dad..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x07d.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x07d = []string{ - "Ji ", // 0x00 - "Cha ", // 0x01 - "Zhou ", // 0x02 - "Xun ", // 0x03 - "Yue ", // 0x04 - "Hong ", // 0x05 - "Yu ", // 0x06 - "He ", // 0x07 - "Wan ", // 0x08 - "Ren ", // 0x09 - "Wen ", // 0x0a - "Wen ", // 0x0b - "Qiu ", // 0x0c - "Na ", // 0x0d - "Zi ", // 0x0e - "Tou ", // 0x0f - "Niu ", // 0x10 - "Fou ", // 0x11 - "Jie ", // 0x12 - "Shu ", // 0x13 - "Chun ", // 0x14 - "Pi ", // 0x15 - "Yin ", // 0x16 - "Sha ", // 0x17 - "Hong ", // 0x18 - "Zhi ", // 0x19 - "Ji ", // 0x1a - "Fen ", // 0x1b - "Yun ", // 0x1c - "Ren ", // 0x1d - "Dan ", // 0x1e - "Jin ", // 0x1f - "Su ", // 0x20 - "Fang ", // 0x21 - "Suo ", // 0x22 - "Cui ", // 0x23 - "Jiu ", // 0x24 - "Zha ", // 0x25 - "Kinu ", // 0x26 - "Jin ", // 0x27 - "Fu ", // 0x28 - "Zhi ", // 0x29 - "Ci ", // 0x2a - "Zi ", // 0x2b - "Chou ", // 0x2c - "Hong ", // 0x2d - "Zha ", // 0x2e - "Lei ", // 0x2f - "Xi ", // 0x30 - "Fu ", // 0x31 - "Xie ", // 0x32 - "Shen ", // 0x33 - "Bei ", // 0x34 - "Zhu ", // 0x35 - "Qu ", // 0x36 - "Ling ", // 0x37 - "Zhu ", // 0x38 - "Shao ", // 0x39 - "Gan ", // 0x3a - "Yang ", // 0x3b - "Fu ", // 0x3c - "Tuo ", // 0x3d - "Zhen ", // 0x3e - "Dai ", // 0x3f - "Zhuo ", // 0x40 - "Shi ", // 0x41 - "Zhong ", // 0x42 - "Xian ", // 0x43 - "Zu ", // 0x44 - "Jiong ", // 0x45 - "Ban ", // 0x46 - "Ju ", // 0x47 - "Mo ", // 0x48 - "Shu ", // 0x49 - "Zui ", // 0x4a - "Wata ", // 0x4b - "Jing ", // 0x4c - "Ren ", // 0x4d - "Heng ", // 0x4e - "Xie ", // 0x4f - "Jie ", // 0x50 - "Zhu ", // 0x51 - "Chou ", // 0x52 - "Gua ", // 0x53 - "Bai ", // 0x54 - "Jue ", // 0x55 - "Kuang ", // 0x56 - "Hu ", // 0x57 - "Ci ", // 0x58 - "Geng ", // 0x59 - "Geng ", // 0x5a - "Tao ", // 0x5b - "Xie ", // 0x5c - "Ku ", // 0x5d - "Jiao ", // 0x5e - "Quan ", // 0x5f - "Gai ", // 0x60 - "Luo ", // 0x61 - "Xuan ", // 0x62 - "Bing ", // 0x63 - "Xian ", // 0x64 - "Fu ", // 0x65 - "Gei ", // 0x66 - "Tong ", // 0x67 - "Rong ", // 0x68 - "Tiao ", // 0x69 - "Yin ", // 0x6a - "Lei ", // 0x6b - "Xie ", // 0x6c - "Quan ", // 0x6d - "Xu ", // 0x6e - "Lun ", // 0x6f - "Die ", // 0x70 - "Tong ", // 0x71 - "Si ", // 0x72 - "Jiang ", // 0x73 - "Xiang ", // 0x74 - "Hui ", // 0x75 - "Jue ", // 0x76 - "Zhi ", // 0x77 - "Jian ", // 0x78 - "Juan ", // 0x79 - "Chi ", // 0x7a - "Mian ", // 0x7b - "Zhen ", // 0x7c - "Lu ", // 0x7d - "Cheng ", // 0x7e - "Qiu ", // 0x7f - "Shu ", // 0x80 - "Bang ", // 0x81 - "Tong ", // 0x82 - "Xiao ", // 0x83 - "Wan ", // 0x84 - "Qin ", // 0x85 - "Geng ", // 0x86 - "Xiu ", // 0x87 - "Ti ", // 0x88 - "Xiu ", // 0x89 - "Xie ", // 0x8a - "Hong ", // 0x8b - "Xi ", // 0x8c - "Fu ", // 0x8d - "Ting ", // 0x8e - "Sui ", // 0x8f - "Dui ", // 0x90 - "Kun ", // 0x91 - "Fu ", // 0x92 - "Jing ", // 0x93 - "Hu ", // 0x94 - "Zhi ", // 0x95 - "Yan ", // 0x96 - "Jiong ", // 0x97 - "Feng ", // 0x98 - "Ji ", // 0x99 - "Sok ", // 0x9a - "Kase ", // 0x9b - "Zong ", // 0x9c - "Lin ", // 0x9d - "Duo ", // 0x9e - "Li ", // 0x9f - "Lu ", // 0xa0 - "Liang ", // 0xa1 - "Chou ", // 0xa2 - "Quan ", // 0xa3 - "Shao ", // 0xa4 - "Qi ", // 0xa5 - "Qi ", // 0xa6 - "Zhun ", // 0xa7 - "Qi ", // 0xa8 - "Wan ", // 0xa9 - "Qian ", // 0xaa - "Xian ", // 0xab - "Shou ", // 0xac - "Wei ", // 0xad - "Qi ", // 0xae - "Tao ", // 0xaf - "Wan ", // 0xb0 - "Gang ", // 0xb1 - "Wang ", // 0xb2 - "Beng ", // 0xb3 - "Zhui ", // 0xb4 - "Cai ", // 0xb5 - "Guo ", // 0xb6 - "Cui ", // 0xb7 - "Lun ", // 0xb8 - "Liu ", // 0xb9 - "Qi ", // 0xba - "Zhan ", // 0xbb - "Bei ", // 0xbc - "Chuo ", // 0xbd - "Ling ", // 0xbe - "Mian ", // 0xbf - "Qi ", // 0xc0 - "Qie ", // 0xc1 - "Tan ", // 0xc2 - "Zong ", // 0xc3 - "Gun ", // 0xc4 - "Zou ", // 0xc5 - "Yi ", // 0xc6 - "Zi ", // 0xc7 - "Xing ", // 0xc8 - "Liang ", // 0xc9 - "Jin ", // 0xca - "Fei ", // 0xcb - "Rui ", // 0xcc - "Min ", // 0xcd - "Yu ", // 0xce - "Zong ", // 0xcf - "Fan ", // 0xd0 - "Lu ", // 0xd1 - "Xu ", // 0xd2 - "Yingl ", // 0xd3 - "Zhang ", // 0xd4 - "Kasuri ", // 0xd5 - "Xu ", // 0xd6 - "Xiang ", // 0xd7 - "Jian ", // 0xd8 - "Ke ", // 0xd9 - "Xian ", // 0xda - "Ruan ", // 0xdb - "Mian ", // 0xdc - "Qi ", // 0xdd - "Duan ", // 0xde - "Zhong ", // 0xdf - "Di ", // 0xe0 - "Min ", // 0xe1 - "Miao ", // 0xe2 - "Yuan ", // 0xe3 - "Xie ", // 0xe4 - "Bao ", // 0xe5 - "Si ", // 0xe6 - "Qiu ", // 0xe7 - "Bian ", // 0xe8 - "Huan ", // 0xe9 - "Geng ", // 0xea - "Cong ", // 0xeb - "Mian ", // 0xec - "Wei ", // 0xed - "Fu ", // 0xee - "Wei ", // 0xef - "Yu ", // 0xf0 - "Gou ", // 0xf1 - "Miao ", // 0xf2 - "Xie ", // 0xf3 - "Lian ", // 0xf4 - "Zong ", // 0xf5 - "Bian ", // 0xf6 - "Yun ", // 0xf7 - "Yin ", // 0xf8 - "Ti ", // 0xf9 - "Gua ", // 0xfa - "Zhi ", // 0xfb - "Yun ", // 0xfc - "Cheng ", // 0xfd - "Chan ", // 0xfe - "Dai ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x07e.go b/vendor/github.com/mozillazg/go-unidecode/table/x07e.go deleted file mode 100644 index 3d5bd07..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x07e.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x07e = []string{ - "Xia ", // 0x00 - "Yuan ", // 0x01 - "Zong ", // 0x02 - "Xu ", // 0x03 - "Nawa ", // 0x04 - "Odoshi ", // 0x05 - "Geng ", // 0x06 - "Sen ", // 0x07 - "Ying ", // 0x08 - "Jin ", // 0x09 - "Yi ", // 0x0a - "Zhui ", // 0x0b - "Ni ", // 0x0c - "Bang ", // 0x0d - "Gu ", // 0x0e - "Pan ", // 0x0f - "Zhou ", // 0x10 - "Jian ", // 0x11 - "Cuo ", // 0x12 - "Quan ", // 0x13 - "Shuang ", // 0x14 - "Yun ", // 0x15 - "Xia ", // 0x16 - "Shuai ", // 0x17 - "Xi ", // 0x18 - "Rong ", // 0x19 - "Tao ", // 0x1a - "Fu ", // 0x1b - "Yun ", // 0x1c - "Zhen ", // 0x1d - "Gao ", // 0x1e - "Ru ", // 0x1f - "Hu ", // 0x20 - "Zai ", // 0x21 - "Teng ", // 0x22 - "Xian ", // 0x23 - "Su ", // 0x24 - "Zhen ", // 0x25 - "Zong ", // 0x26 - "Tao ", // 0x27 - "Horo ", // 0x28 - "Cai ", // 0x29 - "Bi ", // 0x2a - "Feng ", // 0x2b - "Cu ", // 0x2c - "Li ", // 0x2d - "Suo ", // 0x2e - "Yin ", // 0x2f - "Xi ", // 0x30 - "Zong ", // 0x31 - "Lei ", // 0x32 - "Zhuan ", // 0x33 - "Qian ", // 0x34 - "Man ", // 0x35 - "Zhi ", // 0x36 - "Lu ", // 0x37 - "Mo ", // 0x38 - "Piao ", // 0x39 - "Lian ", // 0x3a - "Mi ", // 0x3b - "Xuan ", // 0x3c - "Zong ", // 0x3d - "Ji ", // 0x3e - "Shan ", // 0x3f - "Sui ", // 0x40 - "Fan ", // 0x41 - "Shuai ", // 0x42 - "Beng ", // 0x43 - "Yi ", // 0x44 - "Sao ", // 0x45 - "Mou ", // 0x46 - "Zhou ", // 0x47 - "Qiang ", // 0x48 - "Hun ", // 0x49 - "Sem ", // 0x4a - "Xi ", // 0x4b - "Jung ", // 0x4c - "Xiu ", // 0x4d - "Ran ", // 0x4e - "Xuan ", // 0x4f - "Hui ", // 0x50 - "Qiao ", // 0x51 - "Zeng ", // 0x52 - "Zuo ", // 0x53 - "Zhi ", // 0x54 - "Shan ", // 0x55 - "San ", // 0x56 - "Lin ", // 0x57 - "Yu ", // 0x58 - "Fan ", // 0x59 - "Liao ", // 0x5a - "Chuo ", // 0x5b - "Zun ", // 0x5c - "Jian ", // 0x5d - "Rao ", // 0x5e - "Chan ", // 0x5f - "Rui ", // 0x60 - "Xiu ", // 0x61 - "Hui ", // 0x62 - "Hua ", // 0x63 - "Zuan ", // 0x64 - "Xi ", // 0x65 - "Qiang ", // 0x66 - "Un ", // 0x67 - "Da ", // 0x68 - "Sheng ", // 0x69 - "Hui ", // 0x6a - "Xi ", // 0x6b - "Se ", // 0x6c - "Jian ", // 0x6d - "Jiang ", // 0x6e - "Huan ", // 0x6f - "Zao ", // 0x70 - "Cong ", // 0x71 - "Jie ", // 0x72 - "Jiao ", // 0x73 - "Bo ", // 0x74 - "Chan ", // 0x75 - "Yi ", // 0x76 - "Nao ", // 0x77 - "Sui ", // 0x78 - "Yi ", // 0x79 - "Shai ", // 0x7a - "Xu ", // 0x7b - "Ji ", // 0x7c - "Bin ", // 0x7d - "Qian ", // 0x7e - "Lan ", // 0x7f - "Pu ", // 0x80 - "Xun ", // 0x81 - "Zuan ", // 0x82 - "Qi ", // 0x83 - "Peng ", // 0x84 - "Li ", // 0x85 - "Mo ", // 0x86 - "Lei ", // 0x87 - "Xie ", // 0x88 - "Zuan ", // 0x89 - "Kuang ", // 0x8a - "You ", // 0x8b - "Xu ", // 0x8c - "Lei ", // 0x8d - "Xian ", // 0x8e - "Chan ", // 0x8f - "Kou ", // 0x90 - "Lu ", // 0x91 - "Chan ", // 0x92 - "Ying ", // 0x93 - "Cai ", // 0x94 - "Xiang ", // 0x95 - "Xian ", // 0x96 - "Zui ", // 0x97 - "Zuan ", // 0x98 - "Luo ", // 0x99 - "Xi ", // 0x9a - "Dao ", // 0x9b - "Lan ", // 0x9c - "Lei ", // 0x9d - "Lian ", // 0x9e - "Si ", // 0x9f - "Jiu ", // 0xa0 - "Yu ", // 0xa1 - "Hong ", // 0xa2 - "Zhou ", // 0xa3 - "Xian ", // 0xa4 - "He ", // 0xa5 - "Yue ", // 0xa6 - "Ji ", // 0xa7 - "Wan ", // 0xa8 - "Kuang ", // 0xa9 - "Ji ", // 0xaa - "Ren ", // 0xab - "Wei ", // 0xac - "Yun ", // 0xad - "Hong ", // 0xae - "Chun ", // 0xaf - "Pi ", // 0xb0 - "Sha ", // 0xb1 - "Gang ", // 0xb2 - "Na ", // 0xb3 - "Ren ", // 0xb4 - "Zong ", // 0xb5 - "Lun ", // 0xb6 - "Fen ", // 0xb7 - "Zhi ", // 0xb8 - "Wen ", // 0xb9 - "Fang ", // 0xba - "Zhu ", // 0xbb - "Yin ", // 0xbc - "Niu ", // 0xbd - "Shu ", // 0xbe - "Xian ", // 0xbf - "Gan ", // 0xc0 - "Xie ", // 0xc1 - "Fu ", // 0xc2 - "Lian ", // 0xc3 - "Zu ", // 0xc4 - "Shen ", // 0xc5 - "Xi ", // 0xc6 - "Zhi ", // 0xc7 - "Zhong ", // 0xc8 - "Zhou ", // 0xc9 - "Ban ", // 0xca - "Fu ", // 0xcb - "Zhuo ", // 0xcc - "Shao ", // 0xcd - "Yi ", // 0xce - "Jing ", // 0xcf - "Dai ", // 0xd0 - "Bang ", // 0xd1 - "Rong ", // 0xd2 - "Jie ", // 0xd3 - "Ku ", // 0xd4 - "Rao ", // 0xd5 - "Die ", // 0xd6 - "Heng ", // 0xd7 - "Hui ", // 0xd8 - "Gei ", // 0xd9 - "Xuan ", // 0xda - "Jiang ", // 0xdb - "Luo ", // 0xdc - "Jue ", // 0xdd - "Jiao ", // 0xde - "Tong ", // 0xdf - "Geng ", // 0xe0 - "Xiao ", // 0xe1 - "Juan ", // 0xe2 - "Xiu ", // 0xe3 - "Xi ", // 0xe4 - "Sui ", // 0xe5 - "Tao ", // 0xe6 - "Ji ", // 0xe7 - "Ti ", // 0xe8 - "Ji ", // 0xe9 - "Xu ", // 0xea - "Ling ", // 0xeb - "[?] ", // 0xec - "Xu ", // 0xed - "Qi ", // 0xee - "Fei ", // 0xef - "Chuo ", // 0xf0 - "Zhang ", // 0xf1 - "Gun ", // 0xf2 - "Sheng ", // 0xf3 - "Wei ", // 0xf4 - "Mian ", // 0xf5 - "Shou ", // 0xf6 - "Beng ", // 0xf7 - "Chou ", // 0xf8 - "Tao ", // 0xf9 - "Liu ", // 0xfa - "Quan ", // 0xfb - "Zong ", // 0xfc - "Zhan ", // 0xfd - "Wan ", // 0xfe - "Lu ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x07f.go b/vendor/github.com/mozillazg/go-unidecode/table/x07f.go deleted file mode 100644 index a0bb2f7..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x07f.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x07f = []string{ - "Zhui ", // 0x00 - "Zi ", // 0x01 - "Ke ", // 0x02 - "Xiang ", // 0x03 - "Jian ", // 0x04 - "Mian ", // 0x05 - "Lan ", // 0x06 - "Ti ", // 0x07 - "Miao ", // 0x08 - "Qi ", // 0x09 - "Yun ", // 0x0a - "Hui ", // 0x0b - "Si ", // 0x0c - "Duo ", // 0x0d - "Duan ", // 0x0e - "Bian ", // 0x0f - "Xian ", // 0x10 - "Gou ", // 0x11 - "Zhui ", // 0x12 - "Huan ", // 0x13 - "Di ", // 0x14 - "Lu ", // 0x15 - "Bian ", // 0x16 - "Min ", // 0x17 - "Yuan ", // 0x18 - "Jin ", // 0x19 - "Fu ", // 0x1a - "Ru ", // 0x1b - "Zhen ", // 0x1c - "Feng ", // 0x1d - "Shuai ", // 0x1e - "Gao ", // 0x1f - "Chan ", // 0x20 - "Li ", // 0x21 - "Yi ", // 0x22 - "Jian ", // 0x23 - "Bin ", // 0x24 - "Piao ", // 0x25 - "Man ", // 0x26 - "Lei ", // 0x27 - "Ying ", // 0x28 - "Suo ", // 0x29 - "Mou ", // 0x2a - "Sao ", // 0x2b - "Xie ", // 0x2c - "Liao ", // 0x2d - "Shan ", // 0x2e - "Zeng ", // 0x2f - "Jiang ", // 0x30 - "Qian ", // 0x31 - "Zao ", // 0x32 - "Huan ", // 0x33 - "Jiao ", // 0x34 - "Zuan ", // 0x35 - "Fou ", // 0x36 - "Xie ", // 0x37 - "Gang ", // 0x38 - "Fou ", // 0x39 - "Que ", // 0x3a - "Fou ", // 0x3b - "Kaakeru ", // 0x3c - "Bo ", // 0x3d - "Ping ", // 0x3e - "Hou ", // 0x3f - "[?] ", // 0x40 - "Gang ", // 0x41 - "Ying ", // 0x42 - "Ying ", // 0x43 - "Qing ", // 0x44 - "Xia ", // 0x45 - "Guan ", // 0x46 - "Zun ", // 0x47 - "Tan ", // 0x48 - "Chang ", // 0x49 - "Qi ", // 0x4a - "Weng ", // 0x4b - "Ying ", // 0x4c - "Lei ", // 0x4d - "Tan ", // 0x4e - "Lu ", // 0x4f - "Guan ", // 0x50 - "Wang ", // 0x51 - "Wang ", // 0x52 - "Gang ", // 0x53 - "Wang ", // 0x54 - "Han ", // 0x55 - "[?] ", // 0x56 - "Luo ", // 0x57 - "Fu ", // 0x58 - "Mi ", // 0x59 - "Fa ", // 0x5a - "Gu ", // 0x5b - "Zhu ", // 0x5c - "Ju ", // 0x5d - "Mao ", // 0x5e - "Gu ", // 0x5f - "Min ", // 0x60 - "Gang ", // 0x61 - "Ba ", // 0x62 - "Gua ", // 0x63 - "Ti ", // 0x64 - "Juan ", // 0x65 - "Fu ", // 0x66 - "Lin ", // 0x67 - "Yan ", // 0x68 - "Zhao ", // 0x69 - "Zui ", // 0x6a - "Gua ", // 0x6b - "Zhuo ", // 0x6c - "Yu ", // 0x6d - "Zhi ", // 0x6e - "An ", // 0x6f - "Fa ", // 0x70 - "Nan ", // 0x71 - "Shu ", // 0x72 - "Si ", // 0x73 - "Pi ", // 0x74 - "Ma ", // 0x75 - "Liu ", // 0x76 - "Ba ", // 0x77 - "Fa ", // 0x78 - "Li ", // 0x79 - "Chao ", // 0x7a - "Wei ", // 0x7b - "Bi ", // 0x7c - "Ji ", // 0x7d - "Zeng ", // 0x7e - "Tong ", // 0x7f - "Liu ", // 0x80 - "Ji ", // 0x81 - "Juan ", // 0x82 - "Mi ", // 0x83 - "Zhao ", // 0x84 - "Luo ", // 0x85 - "Pi ", // 0x86 - "Ji ", // 0x87 - "Ji ", // 0x88 - "Luan ", // 0x89 - "Yang ", // 0x8a - "Mie ", // 0x8b - "Qiang ", // 0x8c - "Ta ", // 0x8d - "Mei ", // 0x8e - "Yang ", // 0x8f - "You ", // 0x90 - "You ", // 0x91 - "Fen ", // 0x92 - "Ba ", // 0x93 - "Gao ", // 0x94 - "Yang ", // 0x95 - "Gu ", // 0x96 - "Qiang ", // 0x97 - "Zang ", // 0x98 - "Gao ", // 0x99 - "Ling ", // 0x9a - "Yi ", // 0x9b - "Zhu ", // 0x9c - "Di ", // 0x9d - "Xiu ", // 0x9e - "Qian ", // 0x9f - "Yi ", // 0xa0 - "Xian ", // 0xa1 - "Rong ", // 0xa2 - "Qun ", // 0xa3 - "Qun ", // 0xa4 - "Qian ", // 0xa5 - "Huan ", // 0xa6 - "Zui ", // 0xa7 - "Xian ", // 0xa8 - "Yi ", // 0xa9 - "Yashinau ", // 0xaa - "Qiang ", // 0xab - "Xian ", // 0xac - "Yu ", // 0xad - "Geng ", // 0xae - "Jie ", // 0xaf - "Tang ", // 0xb0 - "Yuan ", // 0xb1 - "Xi ", // 0xb2 - "Fan ", // 0xb3 - "Shan ", // 0xb4 - "Fen ", // 0xb5 - "Shan ", // 0xb6 - "Lian ", // 0xb7 - "Lei ", // 0xb8 - "Geng ", // 0xb9 - "Nou ", // 0xba - "Qiang ", // 0xbb - "Chan ", // 0xbc - "Yu ", // 0xbd - "Gong ", // 0xbe - "Yi ", // 0xbf - "Chong ", // 0xc0 - "Weng ", // 0xc1 - "Fen ", // 0xc2 - "Hong ", // 0xc3 - "Chi ", // 0xc4 - "Chi ", // 0xc5 - "Cui ", // 0xc6 - "Fu ", // 0xc7 - "Xia ", // 0xc8 - "Pen ", // 0xc9 - "Yi ", // 0xca - "La ", // 0xcb - "Yi ", // 0xcc - "Pi ", // 0xcd - "Ling ", // 0xce - "Liu ", // 0xcf - "Zhi ", // 0xd0 - "Qu ", // 0xd1 - "Xi ", // 0xd2 - "Xie ", // 0xd3 - "Xiang ", // 0xd4 - "Xi ", // 0xd5 - "Xi ", // 0xd6 - "Qi ", // 0xd7 - "Qiao ", // 0xd8 - "Hui ", // 0xd9 - "Hui ", // 0xda - "Xiao ", // 0xdb - "Se ", // 0xdc - "Hong ", // 0xdd - "Jiang ", // 0xde - "Di ", // 0xdf - "Cui ", // 0xe0 - "Fei ", // 0xe1 - "Tao ", // 0xe2 - "Sha ", // 0xe3 - "Chi ", // 0xe4 - "Zhu ", // 0xe5 - "Jian ", // 0xe6 - "Xuan ", // 0xe7 - "Shi ", // 0xe8 - "Pian ", // 0xe9 - "Zong ", // 0xea - "Wan ", // 0xeb - "Hui ", // 0xec - "Hou ", // 0xed - "He ", // 0xee - "He ", // 0xef - "Han ", // 0xf0 - "Ao ", // 0xf1 - "Piao ", // 0xf2 - "Yi ", // 0xf3 - "Lian ", // 0xf4 - "Qu ", // 0xf5 - "[?] ", // 0xf6 - "Lin ", // 0xf7 - "Pen ", // 0xf8 - "Qiao ", // 0xf9 - "Ao ", // 0xfa - "Fan ", // 0xfb - "Yi ", // 0xfc - "Hui ", // 0xfd - "Xuan ", // 0xfe - "Dao ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x080.go b/vendor/github.com/mozillazg/go-unidecode/table/x080.go deleted file mode 100644 index 32a41e1..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x080.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x080 = []string{ - "Yao ", // 0x00 - "Lao ", // 0x01 - "[?] ", // 0x02 - "Kao ", // 0x03 - "Mao ", // 0x04 - "Zhe ", // 0x05 - "Qi ", // 0x06 - "Gou ", // 0x07 - "Gou ", // 0x08 - "Gou ", // 0x09 - "Die ", // 0x0a - "Die ", // 0x0b - "Er ", // 0x0c - "Shua ", // 0x0d - "Ruan ", // 0x0e - "Er ", // 0x0f - "Nai ", // 0x10 - "Zhuan ", // 0x11 - "Lei ", // 0x12 - "Ting ", // 0x13 - "Zi ", // 0x14 - "Geng ", // 0x15 - "Chao ", // 0x16 - "Hao ", // 0x17 - "Yun ", // 0x18 - "Pa ", // 0x19 - "Pi ", // 0x1a - "Chi ", // 0x1b - "Si ", // 0x1c - "Chu ", // 0x1d - "Jia ", // 0x1e - "Ju ", // 0x1f - "He ", // 0x20 - "Chu ", // 0x21 - "Lao ", // 0x22 - "Lun ", // 0x23 - "Ji ", // 0x24 - "Tang ", // 0x25 - "Ou ", // 0x26 - "Lou ", // 0x27 - "Nou ", // 0x28 - "Gou ", // 0x29 - "Pang ", // 0x2a - "Ze ", // 0x2b - "Lou ", // 0x2c - "Ji ", // 0x2d - "Lao ", // 0x2e - "Huo ", // 0x2f - "You ", // 0x30 - "Mo ", // 0x31 - "Huai ", // 0x32 - "Er ", // 0x33 - "Zhe ", // 0x34 - "Ting ", // 0x35 - "Ye ", // 0x36 - "Da ", // 0x37 - "Song ", // 0x38 - "Qin ", // 0x39 - "Yun ", // 0x3a - "Chi ", // 0x3b - "Dan ", // 0x3c - "Dan ", // 0x3d - "Hong ", // 0x3e - "Geng ", // 0x3f - "Zhi ", // 0x40 - "[?] ", // 0x41 - "Nie ", // 0x42 - "Dan ", // 0x43 - "Zhen ", // 0x44 - "Che ", // 0x45 - "Ling ", // 0x46 - "Zheng ", // 0x47 - "You ", // 0x48 - "Wa ", // 0x49 - "Liao ", // 0x4a - "Long ", // 0x4b - "Zhi ", // 0x4c - "Ning ", // 0x4d - "Tiao ", // 0x4e - "Er ", // 0x4f - "Ya ", // 0x50 - "Die ", // 0x51 - "Gua ", // 0x52 - "[?] ", // 0x53 - "Lian ", // 0x54 - "Hao ", // 0x55 - "Sheng ", // 0x56 - "Lie ", // 0x57 - "Pin ", // 0x58 - "Jing ", // 0x59 - "Ju ", // 0x5a - "Bi ", // 0x5b - "Di ", // 0x5c - "Guo ", // 0x5d - "Wen ", // 0x5e - "Xu ", // 0x5f - "Ping ", // 0x60 - "Cong ", // 0x61 - "Shikato ", // 0x62 - "[?] ", // 0x63 - "Ting ", // 0x64 - "Yu ", // 0x65 - "Cong ", // 0x66 - "Kui ", // 0x67 - "Tsuraneru ", // 0x68 - "Kui ", // 0x69 - "Cong ", // 0x6a - "Lian ", // 0x6b - "Weng ", // 0x6c - "Kui ", // 0x6d - "Lian ", // 0x6e - "Lian ", // 0x6f - "Cong ", // 0x70 - "Ao ", // 0x71 - "Sheng ", // 0x72 - "Song ", // 0x73 - "Ting ", // 0x74 - "Kui ", // 0x75 - "Nie ", // 0x76 - "Zhi ", // 0x77 - "Dan ", // 0x78 - "Ning ", // 0x79 - "Qie ", // 0x7a - "Ji ", // 0x7b - "Ting ", // 0x7c - "Ting ", // 0x7d - "Long ", // 0x7e - "Yu ", // 0x7f - "Yu ", // 0x80 - "Zhao ", // 0x81 - "Si ", // 0x82 - "Su ", // 0x83 - "Yi ", // 0x84 - "Su ", // 0x85 - "Si ", // 0x86 - "Zhao ", // 0x87 - "Zhao ", // 0x88 - "Rou ", // 0x89 - "Yi ", // 0x8a - "Le ", // 0x8b - "Ji ", // 0x8c - "Qiu ", // 0x8d - "Ken ", // 0x8e - "Cao ", // 0x8f - "Ge ", // 0x90 - "Di ", // 0x91 - "Huan ", // 0x92 - "Huang ", // 0x93 - "Yi ", // 0x94 - "Ren ", // 0x95 - "Xiao ", // 0x96 - "Ru ", // 0x97 - "Zhou ", // 0x98 - "Yuan ", // 0x99 - "Du ", // 0x9a - "Gang ", // 0x9b - "Rong ", // 0x9c - "Gan ", // 0x9d - "Cha ", // 0x9e - "Wo ", // 0x9f - "Chang ", // 0xa0 - "Gu ", // 0xa1 - "Zhi ", // 0xa2 - "Han ", // 0xa3 - "Fu ", // 0xa4 - "Fei ", // 0xa5 - "Fen ", // 0xa6 - "Pei ", // 0xa7 - "Pang ", // 0xa8 - "Jian ", // 0xa9 - "Fang ", // 0xaa - "Zhun ", // 0xab - "You ", // 0xac - "Na ", // 0xad - "Hang ", // 0xae - "Ken ", // 0xaf - "Ran ", // 0xb0 - "Gong ", // 0xb1 - "Yu ", // 0xb2 - "Wen ", // 0xb3 - "Yao ", // 0xb4 - "Jin ", // 0xb5 - "Pi ", // 0xb6 - "Qian ", // 0xb7 - "Xi ", // 0xb8 - "Xi ", // 0xb9 - "Fei ", // 0xba - "Ken ", // 0xbb - "Jing ", // 0xbc - "Tai ", // 0xbd - "Shen ", // 0xbe - "Zhong ", // 0xbf - "Zhang ", // 0xc0 - "Xie ", // 0xc1 - "Shen ", // 0xc2 - "Wei ", // 0xc3 - "Zhou ", // 0xc4 - "Die ", // 0xc5 - "Dan ", // 0xc6 - "Fei ", // 0xc7 - "Ba ", // 0xc8 - "Bo ", // 0xc9 - "Qu ", // 0xca - "Tian ", // 0xcb - "Bei ", // 0xcc - "Gua ", // 0xcd - "Tai ", // 0xce - "Zi ", // 0xcf - "Ku ", // 0xd0 - "Zhi ", // 0xd1 - "Ni ", // 0xd2 - "Ping ", // 0xd3 - "Zi ", // 0xd4 - "Fu ", // 0xd5 - "Pang ", // 0xd6 - "Zhen ", // 0xd7 - "Xian ", // 0xd8 - "Zuo ", // 0xd9 - "Pei ", // 0xda - "Jia ", // 0xdb - "Sheng ", // 0xdc - "Zhi ", // 0xdd - "Bao ", // 0xde - "Mu ", // 0xdf - "Qu ", // 0xe0 - "Hu ", // 0xe1 - "Ke ", // 0xe2 - "Yi ", // 0xe3 - "Yin ", // 0xe4 - "Xu ", // 0xe5 - "Yang ", // 0xe6 - "Long ", // 0xe7 - "Dong ", // 0xe8 - "Ka ", // 0xe9 - "Lu ", // 0xea - "Jing ", // 0xeb - "Nu ", // 0xec - "Yan ", // 0xed - "Pang ", // 0xee - "Kua ", // 0xef - "Yi ", // 0xf0 - "Guang ", // 0xf1 - "Gai ", // 0xf2 - "Ge ", // 0xf3 - "Dong ", // 0xf4 - "Zhi ", // 0xf5 - "Xiao ", // 0xf6 - "Xiong ", // 0xf7 - "Xiong ", // 0xf8 - "Er ", // 0xf9 - "E ", // 0xfa - "Xing ", // 0xfb - "Pian ", // 0xfc - "Neng ", // 0xfd - "Zi ", // 0xfe - "Gui ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x081.go b/vendor/github.com/mozillazg/go-unidecode/table/x081.go deleted file mode 100644 index 4ab3797..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x081.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x081 = []string{ - "Cheng ", // 0x00 - "Tiao ", // 0x01 - "Zhi ", // 0x02 - "Cui ", // 0x03 - "Mei ", // 0x04 - "Xie ", // 0x05 - "Cui ", // 0x06 - "Xie ", // 0x07 - "Mo ", // 0x08 - "Mai ", // 0x09 - "Ji ", // 0x0a - "Obiyaakasu ", // 0x0b - "[?] ", // 0x0c - "Kuai ", // 0x0d - "Sa ", // 0x0e - "Zang ", // 0x0f - "Qi ", // 0x10 - "Nao ", // 0x11 - "Mi ", // 0x12 - "Nong ", // 0x13 - "Luan ", // 0x14 - "Wan ", // 0x15 - "Bo ", // 0x16 - "Wen ", // 0x17 - "Guan ", // 0x18 - "Qiu ", // 0x19 - "Jiao ", // 0x1a - "Jing ", // 0x1b - "Rou ", // 0x1c - "Heng ", // 0x1d - "Cuo ", // 0x1e - "Lie ", // 0x1f - "Shan ", // 0x20 - "Ting ", // 0x21 - "Mei ", // 0x22 - "Chun ", // 0x23 - "Shen ", // 0x24 - "Xie ", // 0x25 - "De ", // 0x26 - "Zui ", // 0x27 - "Cu ", // 0x28 - "Xiu ", // 0x29 - "Xin ", // 0x2a - "Tuo ", // 0x2b - "Pao ", // 0x2c - "Cheng ", // 0x2d - "Nei ", // 0x2e - "Fu ", // 0x2f - "Dou ", // 0x30 - "Tuo ", // 0x31 - "Niao ", // 0x32 - "Noy ", // 0x33 - "Pi ", // 0x34 - "Gu ", // 0x35 - "Gua ", // 0x36 - "Li ", // 0x37 - "Lian ", // 0x38 - "Zhang ", // 0x39 - "Cui ", // 0x3a - "Jie ", // 0x3b - "Liang ", // 0x3c - "Zhou ", // 0x3d - "Pi ", // 0x3e - "Biao ", // 0x3f - "Lun ", // 0x40 - "Pian ", // 0x41 - "Guo ", // 0x42 - "Kui ", // 0x43 - "Chui ", // 0x44 - "Dan ", // 0x45 - "Tian ", // 0x46 - "Nei ", // 0x47 - "Jing ", // 0x48 - "Jie ", // 0x49 - "La ", // 0x4a - "Yi ", // 0x4b - "An ", // 0x4c - "Ren ", // 0x4d - "Shen ", // 0x4e - "Chuo ", // 0x4f - "Fu ", // 0x50 - "Fu ", // 0x51 - "Ju ", // 0x52 - "Fei ", // 0x53 - "Qiang ", // 0x54 - "Wan ", // 0x55 - "Dong ", // 0x56 - "Pi ", // 0x57 - "Guo ", // 0x58 - "Zong ", // 0x59 - "Ding ", // 0x5a - "Wu ", // 0x5b - "Mei ", // 0x5c - "Ruan ", // 0x5d - "Zhuan ", // 0x5e - "Zhi ", // 0x5f - "Cou ", // 0x60 - "Gua ", // 0x61 - "Ou ", // 0x62 - "Di ", // 0x63 - "An ", // 0x64 - "Xing ", // 0x65 - "Nao ", // 0x66 - "Yu ", // 0x67 - "Chuan ", // 0x68 - "Nan ", // 0x69 - "Yun ", // 0x6a - "Zhong ", // 0x6b - "Rou ", // 0x6c - "E ", // 0x6d - "Sai ", // 0x6e - "Tu ", // 0x6f - "Yao ", // 0x70 - "Jian ", // 0x71 - "Wei ", // 0x72 - "Jiao ", // 0x73 - "Yu ", // 0x74 - "Jia ", // 0x75 - "Duan ", // 0x76 - "Bi ", // 0x77 - "Chang ", // 0x78 - "Fu ", // 0x79 - "Xian ", // 0x7a - "Ni ", // 0x7b - "Mian ", // 0x7c - "Wa ", // 0x7d - "Teng ", // 0x7e - "Tui ", // 0x7f - "Bang ", // 0x80 - "Qian ", // 0x81 - "Lu ", // 0x82 - "Wa ", // 0x83 - "Sou ", // 0x84 - "Tang ", // 0x85 - "Su ", // 0x86 - "Zhui ", // 0x87 - "Ge ", // 0x88 - "Yi ", // 0x89 - "Bo ", // 0x8a - "Liao ", // 0x8b - "Ji ", // 0x8c - "Pi ", // 0x8d - "Xie ", // 0x8e - "Gao ", // 0x8f - "Lu ", // 0x90 - "Bin ", // 0x91 - "Ou ", // 0x92 - "Chang ", // 0x93 - "Lu ", // 0x94 - "Guo ", // 0x95 - "Pang ", // 0x96 - "Chuai ", // 0x97 - "Piao ", // 0x98 - "Jiang ", // 0x99 - "Fu ", // 0x9a - "Tang ", // 0x9b - "Mo ", // 0x9c - "Xi ", // 0x9d - "Zhuan ", // 0x9e - "Lu ", // 0x9f - "Jiao ", // 0xa0 - "Ying ", // 0xa1 - "Lu ", // 0xa2 - "Zhi ", // 0xa3 - "Tara ", // 0xa4 - "Chun ", // 0xa5 - "Lian ", // 0xa6 - "Tong ", // 0xa7 - "Peng ", // 0xa8 - "Ni ", // 0xa9 - "Zha ", // 0xaa - "Liao ", // 0xab - "Cui ", // 0xac - "Gui ", // 0xad - "Xiao ", // 0xae - "Teng ", // 0xaf - "Fan ", // 0xb0 - "Zhi ", // 0xb1 - "Jiao ", // 0xb2 - "Shan ", // 0xb3 - "Wu ", // 0xb4 - "Cui ", // 0xb5 - "Run ", // 0xb6 - "Xiang ", // 0xb7 - "Sui ", // 0xb8 - "Fen ", // 0xb9 - "Ying ", // 0xba - "Tan ", // 0xbb - "Zhua ", // 0xbc - "Dan ", // 0xbd - "Kuai ", // 0xbe - "Nong ", // 0xbf - "Tun ", // 0xc0 - "Lian ", // 0xc1 - "Bi ", // 0xc2 - "Yong ", // 0xc3 - "Jue ", // 0xc4 - "Chu ", // 0xc5 - "Yi ", // 0xc6 - "Juan ", // 0xc7 - "La ", // 0xc8 - "Lian ", // 0xc9 - "Sao ", // 0xca - "Tun ", // 0xcb - "Gu ", // 0xcc - "Qi ", // 0xcd - "Cui ", // 0xce - "Bin ", // 0xcf - "Xun ", // 0xd0 - "Ru ", // 0xd1 - "Huo ", // 0xd2 - "Zang ", // 0xd3 - "Xian ", // 0xd4 - "Biao ", // 0xd5 - "Xing ", // 0xd6 - "Kuan ", // 0xd7 - "La ", // 0xd8 - "Yan ", // 0xd9 - "Lu ", // 0xda - "Huo ", // 0xdb - "Zang ", // 0xdc - "Luo ", // 0xdd - "Qu ", // 0xde - "Zang ", // 0xdf - "Luan ", // 0xe0 - "Ni ", // 0xe1 - "Zang ", // 0xe2 - "Chen ", // 0xe3 - "Qian ", // 0xe4 - "Wo ", // 0xe5 - "Guang ", // 0xe6 - "Zang ", // 0xe7 - "Lin ", // 0xe8 - "Guang ", // 0xe9 - "Zi ", // 0xea - "Jiao ", // 0xeb - "Nie ", // 0xec - "Chou ", // 0xed - "Ji ", // 0xee - "Gao ", // 0xef - "Chou ", // 0xf0 - "Mian ", // 0xf1 - "Nie ", // 0xf2 - "Zhi ", // 0xf3 - "Zhi ", // 0xf4 - "Ge ", // 0xf5 - "Jian ", // 0xf6 - "Die ", // 0xf7 - "Zhi ", // 0xf8 - "Xiu ", // 0xf9 - "Tai ", // 0xfa - "Zhen ", // 0xfb - "Jiu ", // 0xfc - "Xian ", // 0xfd - "Yu ", // 0xfe - "Cha ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x082.go b/vendor/github.com/mozillazg/go-unidecode/table/x082.go deleted file mode 100644 index 4ada1cc..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x082.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x082 = []string{ - "Yao ", // 0x00 - "Yu ", // 0x01 - "Chong ", // 0x02 - "Xi ", // 0x03 - "Xi ", // 0x04 - "Jiu ", // 0x05 - "Yu ", // 0x06 - "Yu ", // 0x07 - "Xing ", // 0x08 - "Ju ", // 0x09 - "Jiu ", // 0x0a - "Xin ", // 0x0b - "She ", // 0x0c - "She ", // 0x0d - "Yadoru ", // 0x0e - "Jiu ", // 0x0f - "Shi ", // 0x10 - "Tan ", // 0x11 - "Shu ", // 0x12 - "Shi ", // 0x13 - "Tian ", // 0x14 - "Dan ", // 0x15 - "Pu ", // 0x16 - "Pu ", // 0x17 - "Guan ", // 0x18 - "Hua ", // 0x19 - "Tan ", // 0x1a - "Chuan ", // 0x1b - "Shun ", // 0x1c - "Xia ", // 0x1d - "Wu ", // 0x1e - "Zhou ", // 0x1f - "Dao ", // 0x20 - "Gang ", // 0x21 - "Shan ", // 0x22 - "Yi ", // 0x23 - "[?] ", // 0x24 - "Pa ", // 0x25 - "Tai ", // 0x26 - "Fan ", // 0x27 - "Ban ", // 0x28 - "Chuan ", // 0x29 - "Hang ", // 0x2a - "Fang ", // 0x2b - "Ban ", // 0x2c - "Que ", // 0x2d - "Hesaki ", // 0x2e - "Zhong ", // 0x2f - "Jian ", // 0x30 - "Cang ", // 0x31 - "Ling ", // 0x32 - "Zhu ", // 0x33 - "Ze ", // 0x34 - "Duo ", // 0x35 - "Bo ", // 0x36 - "Xian ", // 0x37 - "Ge ", // 0x38 - "Chuan ", // 0x39 - "Jia ", // 0x3a - "Lu ", // 0x3b - "Hong ", // 0x3c - "Pang ", // 0x3d - "Xi ", // 0x3e - "[?] ", // 0x3f - "Fu ", // 0x40 - "Zao ", // 0x41 - "Feng ", // 0x42 - "Li ", // 0x43 - "Shao ", // 0x44 - "Yu ", // 0x45 - "Lang ", // 0x46 - "Ting ", // 0x47 - "[?] ", // 0x48 - "Wei ", // 0x49 - "Bo ", // 0x4a - "Meng ", // 0x4b - "Nian ", // 0x4c - "Ju ", // 0x4d - "Huang ", // 0x4e - "Shou ", // 0x4f - "Zong ", // 0x50 - "Bian ", // 0x51 - "Mao ", // 0x52 - "Die ", // 0x53 - "[?] ", // 0x54 - "Bang ", // 0x55 - "Cha ", // 0x56 - "Yi ", // 0x57 - "Sao ", // 0x58 - "Cang ", // 0x59 - "Cao ", // 0x5a - "Lou ", // 0x5b - "Dai ", // 0x5c - "Sori ", // 0x5d - "Yao ", // 0x5e - "Tong ", // 0x5f - "Yofune ", // 0x60 - "Dang ", // 0x61 - "Tan ", // 0x62 - "Lu ", // 0x63 - "Yi ", // 0x64 - "Jie ", // 0x65 - "Jian ", // 0x66 - "Huo ", // 0x67 - "Meng ", // 0x68 - "Qi ", // 0x69 - "Lu ", // 0x6a - "Lu ", // 0x6b - "Chan ", // 0x6c - "Shuang ", // 0x6d - "Gen ", // 0x6e - "Liang ", // 0x6f - "Jian ", // 0x70 - "Jian ", // 0x71 - "Se ", // 0x72 - "Yan ", // 0x73 - "Fu ", // 0x74 - "Ping ", // 0x75 - "Yan ", // 0x76 - "Yan ", // 0x77 - "Cao ", // 0x78 - "Cao ", // 0x79 - "Yi ", // 0x7a - "Le ", // 0x7b - "Ting ", // 0x7c - "Qiu ", // 0x7d - "Ai ", // 0x7e - "Nai ", // 0x7f - "Tiao ", // 0x80 - "Jiao ", // 0x81 - "Jie ", // 0x82 - "Peng ", // 0x83 - "Wan ", // 0x84 - "Yi ", // 0x85 - "Chai ", // 0x86 - "Mian ", // 0x87 - "Mie ", // 0x88 - "Gan ", // 0x89 - "Qian ", // 0x8a - "Yu ", // 0x8b - "Yu ", // 0x8c - "Shuo ", // 0x8d - "Qiong ", // 0x8e - "Tu ", // 0x8f - "Xia ", // 0x90 - "Qi ", // 0x91 - "Mang ", // 0x92 - "Zi ", // 0x93 - "Hui ", // 0x94 - "Sui ", // 0x95 - "Zhi ", // 0x96 - "Xiang ", // 0x97 - "Bi ", // 0x98 - "Fu ", // 0x99 - "Tun ", // 0x9a - "Wei ", // 0x9b - "Wu ", // 0x9c - "Zhi ", // 0x9d - "Qi ", // 0x9e - "Shan ", // 0x9f - "Wen ", // 0xa0 - "Qian ", // 0xa1 - "Ren ", // 0xa2 - "Fou ", // 0xa3 - "Kou ", // 0xa4 - "Jie ", // 0xa5 - "Lu ", // 0xa6 - "Xu ", // 0xa7 - "Ji ", // 0xa8 - "Qin ", // 0xa9 - "Qi ", // 0xaa - "Yuan ", // 0xab - "Fen ", // 0xac - "Ba ", // 0xad - "Rui ", // 0xae - "Xin ", // 0xaf - "Ji ", // 0xb0 - "Hua ", // 0xb1 - "Hua ", // 0xb2 - "Fang ", // 0xb3 - "Wu ", // 0xb4 - "Jue ", // 0xb5 - "Gou ", // 0xb6 - "Zhi ", // 0xb7 - "Yun ", // 0xb8 - "Qin ", // 0xb9 - "Ao ", // 0xba - "Chu ", // 0xbb - "Mao ", // 0xbc - "Ya ", // 0xbd - "Fei ", // 0xbe - "Reng ", // 0xbf - "Hang ", // 0xc0 - "Cong ", // 0xc1 - "Yin ", // 0xc2 - "You ", // 0xc3 - "Bian ", // 0xc4 - "Yi ", // 0xc5 - "Susa ", // 0xc6 - "Wei ", // 0xc7 - "Li ", // 0xc8 - "Pi ", // 0xc9 - "E ", // 0xca - "Xian ", // 0xcb - "Chang ", // 0xcc - "Cang ", // 0xcd - "Meng ", // 0xce - "Su ", // 0xcf - "Yi ", // 0xd0 - "Yuan ", // 0xd1 - "Ran ", // 0xd2 - "Ling ", // 0xd3 - "Tai ", // 0xd4 - "Tiao ", // 0xd5 - "Di ", // 0xd6 - "Miao ", // 0xd7 - "Qiong ", // 0xd8 - "Li ", // 0xd9 - "Yong ", // 0xda - "Ke ", // 0xdb - "Mu ", // 0xdc - "Pei ", // 0xdd - "Bao ", // 0xde - "Gou ", // 0xdf - "Min ", // 0xe0 - "Yi ", // 0xe1 - "Yi ", // 0xe2 - "Ju ", // 0xe3 - "Pi ", // 0xe4 - "Ruo ", // 0xe5 - "Ku ", // 0xe6 - "Zhu ", // 0xe7 - "Ni ", // 0xe8 - "Bo ", // 0xe9 - "Bing ", // 0xea - "Shan ", // 0xeb - "Qiu ", // 0xec - "Yao ", // 0xed - "Xian ", // 0xee - "Ben ", // 0xef - "Hong ", // 0xf0 - "Ying ", // 0xf1 - "Zha ", // 0xf2 - "Dong ", // 0xf3 - "Ju ", // 0xf4 - "Die ", // 0xf5 - "Nie ", // 0xf6 - "Gan ", // 0xf7 - "Hu ", // 0xf8 - "Ping ", // 0xf9 - "Mei ", // 0xfa - "Fu ", // 0xfb - "Sheng ", // 0xfc - "Gu ", // 0xfd - "Bi ", // 0xfe - "Wei ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x083.go b/vendor/github.com/mozillazg/go-unidecode/table/x083.go deleted file mode 100644 index 8588eb1..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x083.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x083 = []string{ - "Fu ", // 0x00 - "Zhuo ", // 0x01 - "Mao ", // 0x02 - "Fan ", // 0x03 - "Qie ", // 0x04 - "Mao ", // 0x05 - "Mao ", // 0x06 - "Ba ", // 0x07 - "Zi ", // 0x08 - "Mo ", // 0x09 - "Zi ", // 0x0a - "Di ", // 0x0b - "Chi ", // 0x0c - "Ji ", // 0x0d - "Jing ", // 0x0e - "Long ", // 0x0f - "[?] ", // 0x10 - "Niao ", // 0x11 - "[?] ", // 0x12 - "Xue ", // 0x13 - "Ying ", // 0x14 - "Qiong ", // 0x15 - "Ge ", // 0x16 - "Ming ", // 0x17 - "Li ", // 0x18 - "Rong ", // 0x19 - "Yin ", // 0x1a - "Gen ", // 0x1b - "Qian ", // 0x1c - "Chai ", // 0x1d - "Chen ", // 0x1e - "Yu ", // 0x1f - "Xiu ", // 0x20 - "Zi ", // 0x21 - "Lie ", // 0x22 - "Wu ", // 0x23 - "Ji ", // 0x24 - "Kui ", // 0x25 - "Ce ", // 0x26 - "Chong ", // 0x27 - "Ci ", // 0x28 - "Gou ", // 0x29 - "Guang ", // 0x2a - "Mang ", // 0x2b - "Chi ", // 0x2c - "Jiao ", // 0x2d - "Jiao ", // 0x2e - "Fu ", // 0x2f - "Yu ", // 0x30 - "Zhu ", // 0x31 - "Zi ", // 0x32 - "Jiang ", // 0x33 - "Hui ", // 0x34 - "Yin ", // 0x35 - "Cha ", // 0x36 - "Fa ", // 0x37 - "Rong ", // 0x38 - "Ru ", // 0x39 - "Chong ", // 0x3a - "Mang ", // 0x3b - "Tong ", // 0x3c - "Zhong ", // 0x3d - "[?] ", // 0x3e - "Zhu ", // 0x3f - "Xun ", // 0x40 - "Huan ", // 0x41 - "Kua ", // 0x42 - "Quan ", // 0x43 - "Gai ", // 0x44 - "Da ", // 0x45 - "Jing ", // 0x46 - "Xing ", // 0x47 - "Quan ", // 0x48 - "Cao ", // 0x49 - "Jing ", // 0x4a - "Er ", // 0x4b - "An ", // 0x4c - "Shou ", // 0x4d - "Chi ", // 0x4e - "Ren ", // 0x4f - "Jian ", // 0x50 - "Ti ", // 0x51 - "Huang ", // 0x52 - "Ping ", // 0x53 - "Li ", // 0x54 - "Jin ", // 0x55 - "Lao ", // 0x56 - "Shu ", // 0x57 - "Zhuang ", // 0x58 - "Da ", // 0x59 - "Jia ", // 0x5a - "Rao ", // 0x5b - "Bi ", // 0x5c - "Ze ", // 0x5d - "Qiao ", // 0x5e - "Hui ", // 0x5f - "Qi ", // 0x60 - "Dang ", // 0x61 - "[?] ", // 0x62 - "Rong ", // 0x63 - "Hun ", // 0x64 - "Ying ", // 0x65 - "Luo ", // 0x66 - "Ying ", // 0x67 - "Xun ", // 0x68 - "Jin ", // 0x69 - "Sun ", // 0x6a - "Yin ", // 0x6b - "Mai ", // 0x6c - "Hong ", // 0x6d - "Zhou ", // 0x6e - "Yao ", // 0x6f - "Du ", // 0x70 - "Wei ", // 0x71 - "Chu ", // 0x72 - "Dou ", // 0x73 - "Fu ", // 0x74 - "Ren ", // 0x75 - "Yin ", // 0x76 - "He ", // 0x77 - "Bi ", // 0x78 - "Bu ", // 0x79 - "Yun ", // 0x7a - "Di ", // 0x7b - "Tu ", // 0x7c - "Sui ", // 0x7d - "Sui ", // 0x7e - "Cheng ", // 0x7f - "Chen ", // 0x80 - "Wu ", // 0x81 - "Bie ", // 0x82 - "Xi ", // 0x83 - "Geng ", // 0x84 - "Li ", // 0x85 - "Fu ", // 0x86 - "Zhu ", // 0x87 - "Mo ", // 0x88 - "Li ", // 0x89 - "Zhuang ", // 0x8a - "Ji ", // 0x8b - "Duo ", // 0x8c - "Qiu ", // 0x8d - "Sha ", // 0x8e - "Suo ", // 0x8f - "Chen ", // 0x90 - "Feng ", // 0x91 - "Ju ", // 0x92 - "Mei ", // 0x93 - "Meng ", // 0x94 - "Xing ", // 0x95 - "Jing ", // 0x96 - "Che ", // 0x97 - "Xin ", // 0x98 - "Jun ", // 0x99 - "Yan ", // 0x9a - "Ting ", // 0x9b - "Diao ", // 0x9c - "Cuo ", // 0x9d - "Wan ", // 0x9e - "Han ", // 0x9f - "You ", // 0xa0 - "Cuo ", // 0xa1 - "Jia ", // 0xa2 - "Wang ", // 0xa3 - "You ", // 0xa4 - "Niu ", // 0xa5 - "Shao ", // 0xa6 - "Xian ", // 0xa7 - "Lang ", // 0xa8 - "Fu ", // 0xa9 - "E ", // 0xaa - "Mo ", // 0xab - "Wen ", // 0xac - "Jie ", // 0xad - "Nan ", // 0xae - "Mu ", // 0xaf - "Kan ", // 0xb0 - "Lai ", // 0xb1 - "Lian ", // 0xb2 - "Shi ", // 0xb3 - "Wo ", // 0xb4 - "Usagi ", // 0xb5 - "Lian ", // 0xb6 - "Huo ", // 0xb7 - "You ", // 0xb8 - "Ying ", // 0xb9 - "Ying ", // 0xba - "Nuc ", // 0xbb - "Chun ", // 0xbc - "Mang ", // 0xbd - "Mang ", // 0xbe - "Ci ", // 0xbf - "Wan ", // 0xc0 - "Jing ", // 0xc1 - "Di ", // 0xc2 - "Qu ", // 0xc3 - "Dong ", // 0xc4 - "Jian ", // 0xc5 - "Zou ", // 0xc6 - "Gu ", // 0xc7 - "La ", // 0xc8 - "Lu ", // 0xc9 - "Ju ", // 0xca - "Wei ", // 0xcb - "Jun ", // 0xcc - "Nie ", // 0xcd - "Kun ", // 0xce - "He ", // 0xcf - "Pu ", // 0xd0 - "Zi ", // 0xd1 - "Gao ", // 0xd2 - "Guo ", // 0xd3 - "Fu ", // 0xd4 - "Lun ", // 0xd5 - "Chang ", // 0xd6 - "Chou ", // 0xd7 - "Song ", // 0xd8 - "Chui ", // 0xd9 - "Zhan ", // 0xda - "Men ", // 0xdb - "Cai ", // 0xdc - "Ba ", // 0xdd - "Li ", // 0xde - "Tu ", // 0xdf - "Bo ", // 0xe0 - "Han ", // 0xe1 - "Bao ", // 0xe2 - "Qin ", // 0xe3 - "Juan ", // 0xe4 - "Xi ", // 0xe5 - "Qin ", // 0xe6 - "Di ", // 0xe7 - "Jie ", // 0xe8 - "Pu ", // 0xe9 - "Dang ", // 0xea - "Jin ", // 0xeb - "Zhao ", // 0xec - "Tai ", // 0xed - "Geng ", // 0xee - "Hua ", // 0xef - "Gu ", // 0xf0 - "Ling ", // 0xf1 - "Fei ", // 0xf2 - "Jin ", // 0xf3 - "An ", // 0xf4 - "Wang ", // 0xf5 - "Beng ", // 0xf6 - "Zhou ", // 0xf7 - "Yan ", // 0xf8 - "Ju ", // 0xf9 - "Jian ", // 0xfa - "Lin ", // 0xfb - "Tan ", // 0xfc - "Shu ", // 0xfd - "Tian ", // 0xfe - "Dao ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x084.go b/vendor/github.com/mozillazg/go-unidecode/table/x084.go deleted file mode 100644 index b6be1ea..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x084.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x084 = []string{ - "Hu ", // 0x00 - "Qi ", // 0x01 - "He ", // 0x02 - "Cui ", // 0x03 - "Tao ", // 0x04 - "Chun ", // 0x05 - "Bei ", // 0x06 - "Chang ", // 0x07 - "Huan ", // 0x08 - "Fei ", // 0x09 - "Lai ", // 0x0a - "Qi ", // 0x0b - "Meng ", // 0x0c - "Ping ", // 0x0d - "Wei ", // 0x0e - "Dan ", // 0x0f - "Sha ", // 0x10 - "Huan ", // 0x11 - "Yan ", // 0x12 - "Yi ", // 0x13 - "Tiao ", // 0x14 - "Qi ", // 0x15 - "Wan ", // 0x16 - "Ce ", // 0x17 - "Nai ", // 0x18 - "Kutabireru ", // 0x19 - "Tuo ", // 0x1a - "Jiu ", // 0x1b - "Tie ", // 0x1c - "Luo ", // 0x1d - "[?] ", // 0x1e - "[?] ", // 0x1f - "Meng ", // 0x20 - "[?] ", // 0x21 - "Yaji ", // 0x22 - "[?] ", // 0x23 - "Ying ", // 0x24 - "Ying ", // 0x25 - "Ying ", // 0x26 - "Xiao ", // 0x27 - "Sa ", // 0x28 - "Qiu ", // 0x29 - "Ke ", // 0x2a - "Xiang ", // 0x2b - "Wan ", // 0x2c - "Yu ", // 0x2d - "Yu ", // 0x2e - "Fu ", // 0x2f - "Lian ", // 0x30 - "Xuan ", // 0x31 - "Yuan ", // 0x32 - "Nan ", // 0x33 - "Ze ", // 0x34 - "Wo ", // 0x35 - "Chun ", // 0x36 - "Xiao ", // 0x37 - "Yu ", // 0x38 - "Pian ", // 0x39 - "Mao ", // 0x3a - "An ", // 0x3b - "E ", // 0x3c - "Luo ", // 0x3d - "Ying ", // 0x3e - "Huo ", // 0x3f - "Gua ", // 0x40 - "Jiang ", // 0x41 - "Mian ", // 0x42 - "Zuo ", // 0x43 - "Zuo ", // 0x44 - "Ju ", // 0x45 - "Bao ", // 0x46 - "Rou ", // 0x47 - "Xi ", // 0x48 - "Xie ", // 0x49 - "An ", // 0x4a - "Qu ", // 0x4b - "Jian ", // 0x4c - "Fu ", // 0x4d - "Lu ", // 0x4e - "Jing ", // 0x4f - "Pen ", // 0x50 - "Feng ", // 0x51 - "Hong ", // 0x52 - "Hong ", // 0x53 - "Hou ", // 0x54 - "Yan ", // 0x55 - "Tu ", // 0x56 - "Zhu ", // 0x57 - "Zi ", // 0x58 - "Xiang ", // 0x59 - "Shen ", // 0x5a - "Ge ", // 0x5b - "Jie ", // 0x5c - "Jing ", // 0x5d - "Mi ", // 0x5e - "Huang ", // 0x5f - "Shen ", // 0x60 - "Pu ", // 0x61 - "Gai ", // 0x62 - "Dong ", // 0x63 - "Zhou ", // 0x64 - "Qian ", // 0x65 - "Wei ", // 0x66 - "Bo ", // 0x67 - "Wei ", // 0x68 - "Pa ", // 0x69 - "Ji ", // 0x6a - "Hu ", // 0x6b - "Zang ", // 0x6c - "Jia ", // 0x6d - "Duan ", // 0x6e - "Yao ", // 0x6f - "Jun ", // 0x70 - "Cong ", // 0x71 - "Quan ", // 0x72 - "Wei ", // 0x73 - "Xian ", // 0x74 - "Kui ", // 0x75 - "Ting ", // 0x76 - "Hun ", // 0x77 - "Xi ", // 0x78 - "Shi ", // 0x79 - "Qi ", // 0x7a - "Lan ", // 0x7b - "Zong ", // 0x7c - "Yao ", // 0x7d - "Yuan ", // 0x7e - "Mei ", // 0x7f - "Yun ", // 0x80 - "Shu ", // 0x81 - "Di ", // 0x82 - "Zhuan ", // 0x83 - "Guan ", // 0x84 - "Sukumo ", // 0x85 - "Xue ", // 0x86 - "Chan ", // 0x87 - "Kai ", // 0x88 - "Kui ", // 0x89 - "[?] ", // 0x8a - "Jiang ", // 0x8b - "Lou ", // 0x8c - "Wei ", // 0x8d - "Pai ", // 0x8e - "[?] ", // 0x8f - "Sou ", // 0x90 - "Yin ", // 0x91 - "Shi ", // 0x92 - "Chun ", // 0x93 - "Shi ", // 0x94 - "Yun ", // 0x95 - "Zhen ", // 0x96 - "Lang ", // 0x97 - "Nu ", // 0x98 - "Meng ", // 0x99 - "He ", // 0x9a - "Que ", // 0x9b - "Suan ", // 0x9c - "Yuan ", // 0x9d - "Li ", // 0x9e - "Ju ", // 0x9f - "Xi ", // 0xa0 - "Pang ", // 0xa1 - "Chu ", // 0xa2 - "Xu ", // 0xa3 - "Tu ", // 0xa4 - "Liu ", // 0xa5 - "Wo ", // 0xa6 - "Zhen ", // 0xa7 - "Qian ", // 0xa8 - "Zu ", // 0xa9 - "Po ", // 0xaa - "Cuo ", // 0xab - "Yuan ", // 0xac - "Chu ", // 0xad - "Yu ", // 0xae - "Kuai ", // 0xaf - "Pan ", // 0xb0 - "Pu ", // 0xb1 - "Pu ", // 0xb2 - "Na ", // 0xb3 - "Shuo ", // 0xb4 - "Xi ", // 0xb5 - "Fen ", // 0xb6 - "Yun ", // 0xb7 - "Zheng ", // 0xb8 - "Jian ", // 0xb9 - "Ji ", // 0xba - "Ruo ", // 0xbb - "Cang ", // 0xbc - "En ", // 0xbd - "Mi ", // 0xbe - "Hao ", // 0xbf - "Sun ", // 0xc0 - "Zhen ", // 0xc1 - "Ming ", // 0xc2 - "Sou ", // 0xc3 - "Xu ", // 0xc4 - "Liu ", // 0xc5 - "Xi ", // 0xc6 - "Gu ", // 0xc7 - "Lang ", // 0xc8 - "Rong ", // 0xc9 - "Weng ", // 0xca - "Gai ", // 0xcb - "Cuo ", // 0xcc - "Shi ", // 0xcd - "Tang ", // 0xce - "Luo ", // 0xcf - "Ru ", // 0xd0 - "Suo ", // 0xd1 - "Xian ", // 0xd2 - "Bei ", // 0xd3 - "Yao ", // 0xd4 - "Gui ", // 0xd5 - "Bi ", // 0xd6 - "Zong ", // 0xd7 - "Gun ", // 0xd8 - "Za ", // 0xd9 - "Xiu ", // 0xda - "Ce ", // 0xdb - "Hai ", // 0xdc - "Lan ", // 0xdd - "[?] ", // 0xde - "Ji ", // 0xdf - "Li ", // 0xe0 - "Can ", // 0xe1 - "Lang ", // 0xe2 - "Yu ", // 0xe3 - "[?] ", // 0xe4 - "Ying ", // 0xe5 - "Mo ", // 0xe6 - "Diao ", // 0xe7 - "Tiao ", // 0xe8 - "Mao ", // 0xe9 - "Tong ", // 0xea - "Zhu ", // 0xeb - "Peng ", // 0xec - "An ", // 0xed - "Lian ", // 0xee - "Cong ", // 0xef - "Xi ", // 0xf0 - "Ping ", // 0xf1 - "Qiu ", // 0xf2 - "Jin ", // 0xf3 - "Chun ", // 0xf4 - "Jie ", // 0xf5 - "Wei ", // 0xf6 - "Tui ", // 0xf7 - "Cao ", // 0xf8 - "Yu ", // 0xf9 - "Yi ", // 0xfa - "Ji ", // 0xfb - "Liao ", // 0xfc - "Bi ", // 0xfd - "Lu ", // 0xfe - "Su ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x085.go b/vendor/github.com/mozillazg/go-unidecode/table/x085.go deleted file mode 100644 index dd2514e..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x085.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x085 = []string{ - "Bu ", // 0x00 - "Zhang ", // 0x01 - "Luo ", // 0x02 - "Jiang ", // 0x03 - "Man ", // 0x04 - "Yan ", // 0x05 - "Ling ", // 0x06 - "Ji ", // 0x07 - "Piao ", // 0x08 - "Gun ", // 0x09 - "Han ", // 0x0a - "Di ", // 0x0b - "Su ", // 0x0c - "Lu ", // 0x0d - "She ", // 0x0e - "Shang ", // 0x0f - "Di ", // 0x10 - "Mie ", // 0x11 - "Xun ", // 0x12 - "Man ", // 0x13 - "Bo ", // 0x14 - "Di ", // 0x15 - "Cuo ", // 0x16 - "Zhe ", // 0x17 - "Sen ", // 0x18 - "Xuan ", // 0x19 - "Wei ", // 0x1a - "Hu ", // 0x1b - "Ao ", // 0x1c - "Mi ", // 0x1d - "Lou ", // 0x1e - "Cu ", // 0x1f - "Zhong ", // 0x20 - "Cai ", // 0x21 - "Po ", // 0x22 - "Jiang ", // 0x23 - "Mi ", // 0x24 - "Cong ", // 0x25 - "Niao ", // 0x26 - "Hui ", // 0x27 - "Jun ", // 0x28 - "Yin ", // 0x29 - "Jian ", // 0x2a - "Yan ", // 0x2b - "Shu ", // 0x2c - "Yin ", // 0x2d - "Kui ", // 0x2e - "Chen ", // 0x2f - "Hu ", // 0x30 - "Sha ", // 0x31 - "Kou ", // 0x32 - "Qian ", // 0x33 - "Ma ", // 0x34 - "Zang ", // 0x35 - "Sonoko ", // 0x36 - "Qiang ", // 0x37 - "Dou ", // 0x38 - "Lian ", // 0x39 - "Lin ", // 0x3a - "Kou ", // 0x3b - "Ai ", // 0x3c - "Bi ", // 0x3d - "Li ", // 0x3e - "Wei ", // 0x3f - "Ji ", // 0x40 - "Xun ", // 0x41 - "Sheng ", // 0x42 - "Fan ", // 0x43 - "Meng ", // 0x44 - "Ou ", // 0x45 - "Chan ", // 0x46 - "Dian ", // 0x47 - "Xun ", // 0x48 - "Jiao ", // 0x49 - "Rui ", // 0x4a - "Rui ", // 0x4b - "Lei ", // 0x4c - "Yu ", // 0x4d - "Qiao ", // 0x4e - "Chu ", // 0x4f - "Hua ", // 0x50 - "Jian ", // 0x51 - "Mai ", // 0x52 - "Yun ", // 0x53 - "Bao ", // 0x54 - "You ", // 0x55 - "Qu ", // 0x56 - "Lu ", // 0x57 - "Rao ", // 0x58 - "Hui ", // 0x59 - "E ", // 0x5a - "Teng ", // 0x5b - "Fei ", // 0x5c - "Jue ", // 0x5d - "Zui ", // 0x5e - "Fa ", // 0x5f - "Ru ", // 0x60 - "Fen ", // 0x61 - "Kui ", // 0x62 - "Shun ", // 0x63 - "Rui ", // 0x64 - "Ya ", // 0x65 - "Xu ", // 0x66 - "Fu ", // 0x67 - "Jue ", // 0x68 - "Dang ", // 0x69 - "Wu ", // 0x6a - "Tong ", // 0x6b - "Si ", // 0x6c - "Xiao ", // 0x6d - "Xi ", // 0x6e - "Long ", // 0x6f - "Yun ", // 0x70 - "[?] ", // 0x71 - "Qi ", // 0x72 - "Jian ", // 0x73 - "Yun ", // 0x74 - "Sun ", // 0x75 - "Ling ", // 0x76 - "Yu ", // 0x77 - "Xia ", // 0x78 - "Yong ", // 0x79 - "Ji ", // 0x7a - "Hong ", // 0x7b - "Si ", // 0x7c - "Nong ", // 0x7d - "Lei ", // 0x7e - "Xuan ", // 0x7f - "Yun ", // 0x80 - "Yu ", // 0x81 - "Xi ", // 0x82 - "Hao ", // 0x83 - "Bo ", // 0x84 - "Hao ", // 0x85 - "Ai ", // 0x86 - "Wei ", // 0x87 - "Hui ", // 0x88 - "Wei ", // 0x89 - "Ji ", // 0x8a - "Ci ", // 0x8b - "Xiang ", // 0x8c - "Luan ", // 0x8d - "Mie ", // 0x8e - "Yi ", // 0x8f - "Leng ", // 0x90 - "Jiang ", // 0x91 - "Can ", // 0x92 - "Shen ", // 0x93 - "Qiang ", // 0x94 - "Lian ", // 0x95 - "Ke ", // 0x96 - "Yuan ", // 0x97 - "Da ", // 0x98 - "Ti ", // 0x99 - "Tang ", // 0x9a - "Xie ", // 0x9b - "Bi ", // 0x9c - "Zhan ", // 0x9d - "Sun ", // 0x9e - "Lian ", // 0x9f - "Fan ", // 0xa0 - "Ding ", // 0xa1 - "Jie ", // 0xa2 - "Gu ", // 0xa3 - "Xie ", // 0xa4 - "Shu ", // 0xa5 - "Jian ", // 0xa6 - "Kao ", // 0xa7 - "Hong ", // 0xa8 - "Sa ", // 0xa9 - "Xin ", // 0xaa - "Xun ", // 0xab - "Yao ", // 0xac - "Hie ", // 0xad - "Sou ", // 0xae - "Shu ", // 0xaf - "Xun ", // 0xb0 - "Dui ", // 0xb1 - "Pin ", // 0xb2 - "Wei ", // 0xb3 - "Neng ", // 0xb4 - "Chou ", // 0xb5 - "Mai ", // 0xb6 - "Ru ", // 0xb7 - "Piao ", // 0xb8 - "Tai ", // 0xb9 - "Qi ", // 0xba - "Zao ", // 0xbb - "Chen ", // 0xbc - "Zhen ", // 0xbd - "Er ", // 0xbe - "Ni ", // 0xbf - "Ying ", // 0xc0 - "Gao ", // 0xc1 - "Cong ", // 0xc2 - "Xiao ", // 0xc3 - "Qi ", // 0xc4 - "Fa ", // 0xc5 - "Jian ", // 0xc6 - "Xu ", // 0xc7 - "Kui ", // 0xc8 - "Jie ", // 0xc9 - "Bian ", // 0xca - "Diao ", // 0xcb - "Mi ", // 0xcc - "Lan ", // 0xcd - "Jin ", // 0xce - "Cang ", // 0xcf - "Miao ", // 0xd0 - "Qiong ", // 0xd1 - "Qie ", // 0xd2 - "Xian ", // 0xd3 - "[?] ", // 0xd4 - "Ou ", // 0xd5 - "Xian ", // 0xd6 - "Su ", // 0xd7 - "Lu ", // 0xd8 - "Yi ", // 0xd9 - "Xu ", // 0xda - "Xie ", // 0xdb - "Li ", // 0xdc - "Yi ", // 0xdd - "La ", // 0xde - "Lei ", // 0xdf - "Xiao ", // 0xe0 - "Di ", // 0xe1 - "Zhi ", // 0xe2 - "Bei ", // 0xe3 - "Teng ", // 0xe4 - "Yao ", // 0xe5 - "Mo ", // 0xe6 - "Huan ", // 0xe7 - "Piao ", // 0xe8 - "Fan ", // 0xe9 - "Sou ", // 0xea - "Tan ", // 0xeb - "Tui ", // 0xec - "Qiong ", // 0xed - "Qiao ", // 0xee - "Wei ", // 0xef - "Liu ", // 0xf0 - "Hui ", // 0xf1 - "[?] ", // 0xf2 - "Gao ", // 0xf3 - "Yun ", // 0xf4 - "[?] ", // 0xf5 - "Li ", // 0xf6 - "Shu ", // 0xf7 - "Chu ", // 0xf8 - "Ai ", // 0xf9 - "Lin ", // 0xfa - "Zao ", // 0xfb - "Xuan ", // 0xfc - "Chen ", // 0xfd - "Lai ", // 0xfe - "Huo ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x086.go b/vendor/github.com/mozillazg/go-unidecode/table/x086.go deleted file mode 100644 index 7268130..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x086.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x086 = []string{ - "Tuo ", // 0x00 - "Wu ", // 0x01 - "Rui ", // 0x02 - "Rui ", // 0x03 - "Qi ", // 0x04 - "Heng ", // 0x05 - "Lu ", // 0x06 - "Su ", // 0x07 - "Tui ", // 0x08 - "Mang ", // 0x09 - "Yun ", // 0x0a - "Pin ", // 0x0b - "Yu ", // 0x0c - "Xun ", // 0x0d - "Ji ", // 0x0e - "Jiong ", // 0x0f - "Xian ", // 0x10 - "Mo ", // 0x11 - "Hagi ", // 0x12 - "Su ", // 0x13 - "Jiong ", // 0x14 - "[?] ", // 0x15 - "Nie ", // 0x16 - "Bo ", // 0x17 - "Rang ", // 0x18 - "Yi ", // 0x19 - "Xian ", // 0x1a - "Yu ", // 0x1b - "Ju ", // 0x1c - "Lian ", // 0x1d - "Lian ", // 0x1e - "Yin ", // 0x1f - "Qiang ", // 0x20 - "Ying ", // 0x21 - "Long ", // 0x22 - "Tong ", // 0x23 - "Wei ", // 0x24 - "Yue ", // 0x25 - "Ling ", // 0x26 - "Qu ", // 0x27 - "Yao ", // 0x28 - "Fan ", // 0x29 - "Mi ", // 0x2a - "Lan ", // 0x2b - "Kui ", // 0x2c - "Lan ", // 0x2d - "Ji ", // 0x2e - "Dang ", // 0x2f - "Katsura ", // 0x30 - "Lei ", // 0x31 - "Lei ", // 0x32 - "Hua ", // 0x33 - "Feng ", // 0x34 - "Zhi ", // 0x35 - "Wei ", // 0x36 - "Kui ", // 0x37 - "Zhan ", // 0x38 - "Huai ", // 0x39 - "Li ", // 0x3a - "Ji ", // 0x3b - "Mi ", // 0x3c - "Lei ", // 0x3d - "Huai ", // 0x3e - "Luo ", // 0x3f - "Ji ", // 0x40 - "Kui ", // 0x41 - "Lu ", // 0x42 - "Jian ", // 0x43 - "San ", // 0x44 - "[?] ", // 0x45 - "Lei ", // 0x46 - "Quan ", // 0x47 - "Xiao ", // 0x48 - "Yi ", // 0x49 - "Luan ", // 0x4a - "Men ", // 0x4b - "Bie ", // 0x4c - "Hu ", // 0x4d - "Hu ", // 0x4e - "Lu ", // 0x4f - "Nue ", // 0x50 - "Lu ", // 0x51 - "Si ", // 0x52 - "Xiao ", // 0x53 - "Qian ", // 0x54 - "Chu ", // 0x55 - "Hu ", // 0x56 - "Xu ", // 0x57 - "Cuo ", // 0x58 - "Fu ", // 0x59 - "Xu ", // 0x5a - "Xu ", // 0x5b - "Lu ", // 0x5c - "Hu ", // 0x5d - "Yu ", // 0x5e - "Hao ", // 0x5f - "Jiao ", // 0x60 - "Ju ", // 0x61 - "Guo ", // 0x62 - "Bao ", // 0x63 - "Yan ", // 0x64 - "Zhan ", // 0x65 - "Zhan ", // 0x66 - "Kui ", // 0x67 - "Ban ", // 0x68 - "Xi ", // 0x69 - "Shu ", // 0x6a - "Chong ", // 0x6b - "Qiu ", // 0x6c - "Diao ", // 0x6d - "Ji ", // 0x6e - "Qiu ", // 0x6f - "Cheng ", // 0x70 - "Shi ", // 0x71 - "[?] ", // 0x72 - "Di ", // 0x73 - "Zhe ", // 0x74 - "She ", // 0x75 - "Yu ", // 0x76 - "Gan ", // 0x77 - "Zi ", // 0x78 - "Hong ", // 0x79 - "Hui ", // 0x7a - "Meng ", // 0x7b - "Ge ", // 0x7c - "Sui ", // 0x7d - "Xia ", // 0x7e - "Chai ", // 0x7f - "Shi ", // 0x80 - "Yi ", // 0x81 - "Ma ", // 0x82 - "Xiang ", // 0x83 - "Fang ", // 0x84 - "E ", // 0x85 - "Pa ", // 0x86 - "Chi ", // 0x87 - "Qian ", // 0x88 - "Wen ", // 0x89 - "Wen ", // 0x8a - "Rui ", // 0x8b - "Bang ", // 0x8c - "Bi ", // 0x8d - "Yue ", // 0x8e - "Yue ", // 0x8f - "Jun ", // 0x90 - "Qi ", // 0x91 - "Ran ", // 0x92 - "Yin ", // 0x93 - "Qi ", // 0x94 - "Tian ", // 0x95 - "Yuan ", // 0x96 - "Jue ", // 0x97 - "Hui ", // 0x98 - "Qin ", // 0x99 - "Qi ", // 0x9a - "Zhong ", // 0x9b - "Ya ", // 0x9c - "Ci ", // 0x9d - "Mu ", // 0x9e - "Wang ", // 0x9f - "Fen ", // 0xa0 - "Fen ", // 0xa1 - "Hang ", // 0xa2 - "Gong ", // 0xa3 - "Zao ", // 0xa4 - "Fu ", // 0xa5 - "Ran ", // 0xa6 - "Jie ", // 0xa7 - "Fu ", // 0xa8 - "Chi ", // 0xa9 - "Dou ", // 0xaa - "Piao ", // 0xab - "Xian ", // 0xac - "Ni ", // 0xad - "Te ", // 0xae - "Qiu ", // 0xaf - "You ", // 0xb0 - "Zha ", // 0xb1 - "Ping ", // 0xb2 - "Chi ", // 0xb3 - "You ", // 0xb4 - "He ", // 0xb5 - "Han ", // 0xb6 - "Ju ", // 0xb7 - "Li ", // 0xb8 - "Fu ", // 0xb9 - "Ran ", // 0xba - "Zha ", // 0xbb - "Gou ", // 0xbc - "Pi ", // 0xbd - "Bo ", // 0xbe - "Xian ", // 0xbf - "Zhu ", // 0xc0 - "Diao ", // 0xc1 - "Bie ", // 0xc2 - "Bing ", // 0xc3 - "Gu ", // 0xc4 - "Ran ", // 0xc5 - "Qu ", // 0xc6 - "She ", // 0xc7 - "Tie ", // 0xc8 - "Ling ", // 0xc9 - "Gu ", // 0xca - "Dan ", // 0xcb - "Gu ", // 0xcc - "Ying ", // 0xcd - "Li ", // 0xce - "Cheng ", // 0xcf - "Qu ", // 0xd0 - "Mou ", // 0xd1 - "Ge ", // 0xd2 - "Ci ", // 0xd3 - "Hui ", // 0xd4 - "Hui ", // 0xd5 - "Mang ", // 0xd6 - "Fu ", // 0xd7 - "Yang ", // 0xd8 - "Wa ", // 0xd9 - "Lie ", // 0xda - "Zhu ", // 0xdb - "Yi ", // 0xdc - "Xian ", // 0xdd - "Kuo ", // 0xde - "Jiao ", // 0xdf - "Li ", // 0xe0 - "Yi ", // 0xe1 - "Ping ", // 0xe2 - "Ji ", // 0xe3 - "Ha ", // 0xe4 - "She ", // 0xe5 - "Yi ", // 0xe6 - "Wang ", // 0xe7 - "Mo ", // 0xe8 - "Qiong ", // 0xe9 - "Qie ", // 0xea - "Gui ", // 0xeb - "Gong ", // 0xec - "Zhi ", // 0xed - "Man ", // 0xee - "Ebi ", // 0xef - "Zhi ", // 0xf0 - "Jia ", // 0xf1 - "Rao ", // 0xf2 - "Si ", // 0xf3 - "Qi ", // 0xf4 - "Xing ", // 0xf5 - "Lie ", // 0xf6 - "Qiu ", // 0xf7 - "Shao ", // 0xf8 - "Yong ", // 0xf9 - "Jia ", // 0xfa - "Shui ", // 0xfb - "Che ", // 0xfc - "Bai ", // 0xfd - "E ", // 0xfe - "Han ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x087.go b/vendor/github.com/mozillazg/go-unidecode/table/x087.go deleted file mode 100644 index 243ba2b..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x087.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x087 = []string{ - "Shu ", // 0x00 - "Xuan ", // 0x01 - "Feng ", // 0x02 - "Shen ", // 0x03 - "Zhen ", // 0x04 - "Fu ", // 0x05 - "Xian ", // 0x06 - "Zhe ", // 0x07 - "Wu ", // 0x08 - "Fu ", // 0x09 - "Li ", // 0x0a - "Lang ", // 0x0b - "Bi ", // 0x0c - "Chu ", // 0x0d - "Yuan ", // 0x0e - "You ", // 0x0f - "Jie ", // 0x10 - "Dan ", // 0x11 - "Yan ", // 0x12 - "Ting ", // 0x13 - "Dian ", // 0x14 - "Shui ", // 0x15 - "Hui ", // 0x16 - "Gua ", // 0x17 - "Zhi ", // 0x18 - "Song ", // 0x19 - "Fei ", // 0x1a - "Ju ", // 0x1b - "Mi ", // 0x1c - "Qi ", // 0x1d - "Qi ", // 0x1e - "Yu ", // 0x1f - "Jun ", // 0x20 - "Zha ", // 0x21 - "Meng ", // 0x22 - "Qiang ", // 0x23 - "Si ", // 0x24 - "Xi ", // 0x25 - "Lun ", // 0x26 - "Li ", // 0x27 - "Die ", // 0x28 - "Tiao ", // 0x29 - "Tao ", // 0x2a - "Kun ", // 0x2b - "Gan ", // 0x2c - "Han ", // 0x2d - "Yu ", // 0x2e - "Bang ", // 0x2f - "Fei ", // 0x30 - "Pi ", // 0x31 - "Wei ", // 0x32 - "Dun ", // 0x33 - "Yi ", // 0x34 - "Yuan ", // 0x35 - "Su ", // 0x36 - "Quan ", // 0x37 - "Qian ", // 0x38 - "Rui ", // 0x39 - "Ni ", // 0x3a - "Qing ", // 0x3b - "Wei ", // 0x3c - "Liang ", // 0x3d - "Guo ", // 0x3e - "Wan ", // 0x3f - "Dong ", // 0x40 - "E ", // 0x41 - "Ban ", // 0x42 - "Di ", // 0x43 - "Wang ", // 0x44 - "Can ", // 0x45 - "Yang ", // 0x46 - "Ying ", // 0x47 - "Guo ", // 0x48 - "Chan ", // 0x49 - "[?] ", // 0x4a - "La ", // 0x4b - "Ke ", // 0x4c - "Ji ", // 0x4d - "He ", // 0x4e - "Ting ", // 0x4f - "Mai ", // 0x50 - "Xu ", // 0x51 - "Mian ", // 0x52 - "Yu ", // 0x53 - "Jie ", // 0x54 - "Shi ", // 0x55 - "Xuan ", // 0x56 - "Huang ", // 0x57 - "Yan ", // 0x58 - "Bian ", // 0x59 - "Rou ", // 0x5a - "Wei ", // 0x5b - "Fu ", // 0x5c - "Yuan ", // 0x5d - "Mei ", // 0x5e - "Wei ", // 0x5f - "Fu ", // 0x60 - "Ruan ", // 0x61 - "Xie ", // 0x62 - "You ", // 0x63 - "Qiu ", // 0x64 - "Mao ", // 0x65 - "Xia ", // 0x66 - "Ying ", // 0x67 - "Shi ", // 0x68 - "Chong ", // 0x69 - "Tang ", // 0x6a - "Zhu ", // 0x6b - "Zong ", // 0x6c - "Ti ", // 0x6d - "Fu ", // 0x6e - "Yuan ", // 0x6f - "Hui ", // 0x70 - "Meng ", // 0x71 - "La ", // 0x72 - "Du ", // 0x73 - "Hu ", // 0x74 - "Qiu ", // 0x75 - "Die ", // 0x76 - "Li ", // 0x77 - "Gua ", // 0x78 - "Yun ", // 0x79 - "Ju ", // 0x7a - "Nan ", // 0x7b - "Lou ", // 0x7c - "Qun ", // 0x7d - "Rong ", // 0x7e - "Ying ", // 0x7f - "Jiang ", // 0x80 - "[?] ", // 0x81 - "Lang ", // 0x82 - "Pang ", // 0x83 - "Si ", // 0x84 - "Xi ", // 0x85 - "Ci ", // 0x86 - "Xi ", // 0x87 - "Yuan ", // 0x88 - "Weng ", // 0x89 - "Lian ", // 0x8a - "Sou ", // 0x8b - "Ban ", // 0x8c - "Rong ", // 0x8d - "Rong ", // 0x8e - "Ji ", // 0x8f - "Wu ", // 0x90 - "Qiu ", // 0x91 - "Han ", // 0x92 - "Qin ", // 0x93 - "Yi ", // 0x94 - "Bi ", // 0x95 - "Hua ", // 0x96 - "Tang ", // 0x97 - "Yi ", // 0x98 - "Du ", // 0x99 - "Nai ", // 0x9a - "He ", // 0x9b - "Hu ", // 0x9c - "Hui ", // 0x9d - "Ma ", // 0x9e - "Ming ", // 0x9f - "Yi ", // 0xa0 - "Wen ", // 0xa1 - "Ying ", // 0xa2 - "Teng ", // 0xa3 - "Yu ", // 0xa4 - "Cang ", // 0xa5 - "So ", // 0xa6 - "Ebi ", // 0xa7 - "Man ", // 0xa8 - "[?] ", // 0xa9 - "Shang ", // 0xaa - "Zhe ", // 0xab - "Cao ", // 0xac - "Chi ", // 0xad - "Di ", // 0xae - "Ao ", // 0xaf - "Lu ", // 0xb0 - "Wei ", // 0xb1 - "Zhi ", // 0xb2 - "Tang ", // 0xb3 - "Chen ", // 0xb4 - "Piao ", // 0xb5 - "Qu ", // 0xb6 - "Pi ", // 0xb7 - "Yu ", // 0xb8 - "Jian ", // 0xb9 - "Luo ", // 0xba - "Lou ", // 0xbb - "Qin ", // 0xbc - "Zhong ", // 0xbd - "Yin ", // 0xbe - "Jiang ", // 0xbf - "Shuai ", // 0xc0 - "Wen ", // 0xc1 - "Jiao ", // 0xc2 - "Wan ", // 0xc3 - "Zhi ", // 0xc4 - "Zhe ", // 0xc5 - "Ma ", // 0xc6 - "Ma ", // 0xc7 - "Guo ", // 0xc8 - "Liu ", // 0xc9 - "Mao ", // 0xca - "Xi ", // 0xcb - "Cong ", // 0xcc - "Li ", // 0xcd - "Man ", // 0xce - "Xiao ", // 0xcf - "Kamakiri ", // 0xd0 - "Zhang ", // 0xd1 - "Mang ", // 0xd2 - "Xiang ", // 0xd3 - "Mo ", // 0xd4 - "Zui ", // 0xd5 - "Si ", // 0xd6 - "Qiu ", // 0xd7 - "Te ", // 0xd8 - "Zhi ", // 0xd9 - "Peng ", // 0xda - "Peng ", // 0xdb - "Jiao ", // 0xdc - "Qu ", // 0xdd - "Bie ", // 0xde - "Liao ", // 0xdf - "Pan ", // 0xe0 - "Gui ", // 0xe1 - "Xi ", // 0xe2 - "Ji ", // 0xe3 - "Zhuan ", // 0xe4 - "Huang ", // 0xe5 - "Fei ", // 0xe6 - "Lao ", // 0xe7 - "Jue ", // 0xe8 - "Jue ", // 0xe9 - "Hui ", // 0xea - "Yin ", // 0xeb - "Chan ", // 0xec - "Jiao ", // 0xed - "Shan ", // 0xee - "Rao ", // 0xef - "Xiao ", // 0xf0 - "Mou ", // 0xf1 - "Chong ", // 0xf2 - "Xun ", // 0xf3 - "Si ", // 0xf4 - "[?] ", // 0xf5 - "Cheng ", // 0xf6 - "Dang ", // 0xf7 - "Li ", // 0xf8 - "Xie ", // 0xf9 - "Shan ", // 0xfa - "Yi ", // 0xfb - "Jing ", // 0xfc - "Da ", // 0xfd - "Chan ", // 0xfe - "Qi ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x088.go b/vendor/github.com/mozillazg/go-unidecode/table/x088.go deleted file mode 100644 index fb7dac6..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x088.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x088 = []string{ - "Ci ", // 0x00 - "Xiang ", // 0x01 - "She ", // 0x02 - "Luo ", // 0x03 - "Qin ", // 0x04 - "Ying ", // 0x05 - "Chai ", // 0x06 - "Li ", // 0x07 - "Ze ", // 0x08 - "Xuan ", // 0x09 - "Lian ", // 0x0a - "Zhu ", // 0x0b - "Ze ", // 0x0c - "Xie ", // 0x0d - "Mang ", // 0x0e - "Xie ", // 0x0f - "Qi ", // 0x10 - "Rong ", // 0x11 - "Jian ", // 0x12 - "Meng ", // 0x13 - "Hao ", // 0x14 - "Ruan ", // 0x15 - "Huo ", // 0x16 - "Zhuo ", // 0x17 - "Jie ", // 0x18 - "Bin ", // 0x19 - "He ", // 0x1a - "Mie ", // 0x1b - "Fan ", // 0x1c - "Lei ", // 0x1d - "Jie ", // 0x1e - "La ", // 0x1f - "Mi ", // 0x20 - "Li ", // 0x21 - "Chun ", // 0x22 - "Li ", // 0x23 - "Qiu ", // 0x24 - "Nie ", // 0x25 - "Lu ", // 0x26 - "Du ", // 0x27 - "Xiao ", // 0x28 - "Zhu ", // 0x29 - "Long ", // 0x2a - "Li ", // 0x2b - "Long ", // 0x2c - "Feng ", // 0x2d - "Ye ", // 0x2e - "Beng ", // 0x2f - "Shang ", // 0x30 - "Gu ", // 0x31 - "Juan ", // 0x32 - "Ying ", // 0x33 - "[?] ", // 0x34 - "Xi ", // 0x35 - "Can ", // 0x36 - "Qu ", // 0x37 - "Quan ", // 0x38 - "Du ", // 0x39 - "Can ", // 0x3a - "Man ", // 0x3b - "Jue ", // 0x3c - "Jie ", // 0x3d - "Zhu ", // 0x3e - "Zha ", // 0x3f - "Xie ", // 0x40 - "Huang ", // 0x41 - "Niu ", // 0x42 - "Pei ", // 0x43 - "Nu ", // 0x44 - "Xin ", // 0x45 - "Zhong ", // 0x46 - "Mo ", // 0x47 - "Er ", // 0x48 - "Ke ", // 0x49 - "Mie ", // 0x4a - "Xi ", // 0x4b - "Xing ", // 0x4c - "Yan ", // 0x4d - "Kan ", // 0x4e - "Yuan ", // 0x4f - "[?] ", // 0x50 - "Ling ", // 0x51 - "Xuan ", // 0x52 - "Shu ", // 0x53 - "Xian ", // 0x54 - "Tong ", // 0x55 - "Long ", // 0x56 - "Jie ", // 0x57 - "Xian ", // 0x58 - "Ya ", // 0x59 - "Hu ", // 0x5a - "Wei ", // 0x5b - "Dao ", // 0x5c - "Chong ", // 0x5d - "Wei ", // 0x5e - "Dao ", // 0x5f - "Zhun ", // 0x60 - "Heng ", // 0x61 - "Qu ", // 0x62 - "Yi ", // 0x63 - "Yi ", // 0x64 - "Bu ", // 0x65 - "Gan ", // 0x66 - "Yu ", // 0x67 - "Biao ", // 0x68 - "Cha ", // 0x69 - "Yi ", // 0x6a - "Shan ", // 0x6b - "Chen ", // 0x6c - "Fu ", // 0x6d - "Gun ", // 0x6e - "Fen ", // 0x6f - "Shuai ", // 0x70 - "Jie ", // 0x71 - "Na ", // 0x72 - "Zhong ", // 0x73 - "Dan ", // 0x74 - "Ri ", // 0x75 - "Zhong ", // 0x76 - "Zhong ", // 0x77 - "Xie ", // 0x78 - "Qi ", // 0x79 - "Xie ", // 0x7a - "Ran ", // 0x7b - "Zhi ", // 0x7c - "Ren ", // 0x7d - "Qin ", // 0x7e - "Jin ", // 0x7f - "Jun ", // 0x80 - "Yuan ", // 0x81 - "Mei ", // 0x82 - "Chai ", // 0x83 - "Ao ", // 0x84 - "Niao ", // 0x85 - "Hui ", // 0x86 - "Ran ", // 0x87 - "Jia ", // 0x88 - "Tuo ", // 0x89 - "Ling ", // 0x8a - "Dai ", // 0x8b - "Bao ", // 0x8c - "Pao ", // 0x8d - "Yao ", // 0x8e - "Zuo ", // 0x8f - "Bi ", // 0x90 - "Shao ", // 0x91 - "Tan ", // 0x92 - "Ju ", // 0x93 - "He ", // 0x94 - "Shu ", // 0x95 - "Xiu ", // 0x96 - "Zhen ", // 0x97 - "Yi ", // 0x98 - "Pa ", // 0x99 - "Bo ", // 0x9a - "Di ", // 0x9b - "Wa ", // 0x9c - "Fu ", // 0x9d - "Gun ", // 0x9e - "Zhi ", // 0x9f - "Zhi ", // 0xa0 - "Ran ", // 0xa1 - "Pan ", // 0xa2 - "Yi ", // 0xa3 - "Mao ", // 0xa4 - "Tuo ", // 0xa5 - "Na ", // 0xa6 - "Kou ", // 0xa7 - "Xian ", // 0xa8 - "Chan ", // 0xa9 - "Qu ", // 0xaa - "Bei ", // 0xab - "Gun ", // 0xac - "Xi ", // 0xad - "Ne ", // 0xae - "Bo ", // 0xaf - "Horo ", // 0xb0 - "Fu ", // 0xb1 - "Yi ", // 0xb2 - "Chi ", // 0xb3 - "Ku ", // 0xb4 - "Ren ", // 0xb5 - "Jiang ", // 0xb6 - "Jia ", // 0xb7 - "Cun ", // 0xb8 - "Mo ", // 0xb9 - "Jie ", // 0xba - "Er ", // 0xbb - "Luo ", // 0xbc - "Ru ", // 0xbd - "Zhu ", // 0xbe - "Gui ", // 0xbf - "Yin ", // 0xc0 - "Cai ", // 0xc1 - "Lie ", // 0xc2 - "Kamishimo ", // 0xc3 - "Yuki ", // 0xc4 - "Zhuang ", // 0xc5 - "Dang ", // 0xc6 - "[?] ", // 0xc7 - "Kun ", // 0xc8 - "Ken ", // 0xc9 - "Niao ", // 0xca - "Shu ", // 0xcb - "Jia ", // 0xcc - "Kun ", // 0xcd - "Cheng ", // 0xce - "Li ", // 0xcf - "Juan ", // 0xd0 - "Shen ", // 0xd1 - "Pou ", // 0xd2 - "Ge ", // 0xd3 - "Yi ", // 0xd4 - "Yu ", // 0xd5 - "Zhen ", // 0xd6 - "Liu ", // 0xd7 - "Qiu ", // 0xd8 - "Qun ", // 0xd9 - "Ji ", // 0xda - "Yi ", // 0xdb - "Bu ", // 0xdc - "Zhuang ", // 0xdd - "Shui ", // 0xde - "Sha ", // 0xdf - "Qun ", // 0xe0 - "Li ", // 0xe1 - "Lian ", // 0xe2 - "Lian ", // 0xe3 - "Ku ", // 0xe4 - "Jian ", // 0xe5 - "Fou ", // 0xe6 - "Chan ", // 0xe7 - "Bi ", // 0xe8 - "Gun ", // 0xe9 - "Tao ", // 0xea - "Yuan ", // 0xeb - "Ling ", // 0xec - "Chi ", // 0xed - "Chang ", // 0xee - "Chou ", // 0xef - "Duo ", // 0xf0 - "Biao ", // 0xf1 - "Liang ", // 0xf2 - "Chang ", // 0xf3 - "Pei ", // 0xf4 - "Pei ", // 0xf5 - "Fei ", // 0xf6 - "Yuan ", // 0xf7 - "Luo ", // 0xf8 - "Guo ", // 0xf9 - "Yan ", // 0xfa - "Du ", // 0xfb - "Xi ", // 0xfc - "Zhi ", // 0xfd - "Ju ", // 0xfe - "Qi ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x089.go b/vendor/github.com/mozillazg/go-unidecode/table/x089.go deleted file mode 100644 index caaa517..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x089.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x089 = []string{ - "Ji ", // 0x00 - "Zhi ", // 0x01 - "Gua ", // 0x02 - "Ken ", // 0x03 - "Che ", // 0x04 - "Ti ", // 0x05 - "Ti ", // 0x06 - "Fu ", // 0x07 - "Chong ", // 0x08 - "Xie ", // 0x09 - "Bian ", // 0x0a - "Die ", // 0x0b - "Kun ", // 0x0c - "Duan ", // 0x0d - "Xiu ", // 0x0e - "Xiu ", // 0x0f - "He ", // 0x10 - "Yuan ", // 0x11 - "Bao ", // 0x12 - "Bao ", // 0x13 - "Fu ", // 0x14 - "Yu ", // 0x15 - "Tuan ", // 0x16 - "Yan ", // 0x17 - "Hui ", // 0x18 - "Bei ", // 0x19 - "Chu ", // 0x1a - "Lu ", // 0x1b - "Ena ", // 0x1c - "Hitoe ", // 0x1d - "Yun ", // 0x1e - "Da ", // 0x1f - "Gou ", // 0x20 - "Da ", // 0x21 - "Huai ", // 0x22 - "Rong ", // 0x23 - "Yuan ", // 0x24 - "Ru ", // 0x25 - "Nai ", // 0x26 - "Jiong ", // 0x27 - "Suo ", // 0x28 - "Ban ", // 0x29 - "Tun ", // 0x2a - "Chi ", // 0x2b - "Sang ", // 0x2c - "Niao ", // 0x2d - "Ying ", // 0x2e - "Jie ", // 0x2f - "Qian ", // 0x30 - "Huai ", // 0x31 - "Ku ", // 0x32 - "Lian ", // 0x33 - "Bao ", // 0x34 - "Li ", // 0x35 - "Zhe ", // 0x36 - "Shi ", // 0x37 - "Lu ", // 0x38 - "Yi ", // 0x39 - "Die ", // 0x3a - "Xie ", // 0x3b - "Xian ", // 0x3c - "Wei ", // 0x3d - "Biao ", // 0x3e - "Cao ", // 0x3f - "Ji ", // 0x40 - "Jiang ", // 0x41 - "Sen ", // 0x42 - "Bao ", // 0x43 - "Xiang ", // 0x44 - "Chihaya ", // 0x45 - "Pu ", // 0x46 - "Jian ", // 0x47 - "Zhuan ", // 0x48 - "Jian ", // 0x49 - "Zui ", // 0x4a - "Ji ", // 0x4b - "Dan ", // 0x4c - "Za ", // 0x4d - "Fan ", // 0x4e - "Bo ", // 0x4f - "Xiang ", // 0x50 - "Xin ", // 0x51 - "Bie ", // 0x52 - "Rao ", // 0x53 - "Man ", // 0x54 - "Lan ", // 0x55 - "Ao ", // 0x56 - "Duo ", // 0x57 - "Gui ", // 0x58 - "Cao ", // 0x59 - "Sui ", // 0x5a - "Nong ", // 0x5b - "Chan ", // 0x5c - "Lian ", // 0x5d - "Bi ", // 0x5e - "Jin ", // 0x5f - "Dang ", // 0x60 - "Shu ", // 0x61 - "Tan ", // 0x62 - "Bi ", // 0x63 - "Lan ", // 0x64 - "Pu ", // 0x65 - "Ru ", // 0x66 - "Zhi ", // 0x67 - "[?] ", // 0x68 - "Shu ", // 0x69 - "Wa ", // 0x6a - "Shi ", // 0x6b - "Bai ", // 0x6c - "Xie ", // 0x6d - "Bo ", // 0x6e - "Chen ", // 0x6f - "Lai ", // 0x70 - "Long ", // 0x71 - "Xi ", // 0x72 - "Xian ", // 0x73 - "Lan ", // 0x74 - "Zhe ", // 0x75 - "Dai ", // 0x76 - "Tasuki ", // 0x77 - "Zan ", // 0x78 - "Shi ", // 0x79 - "Jian ", // 0x7a - "Pan ", // 0x7b - "Yi ", // 0x7c - "Ran ", // 0x7d - "Ya ", // 0x7e - "Xi ", // 0x7f - "Xi ", // 0x80 - "Yao ", // 0x81 - "Feng ", // 0x82 - "Tan ", // 0x83 - "[?] ", // 0x84 - "Biao ", // 0x85 - "Fu ", // 0x86 - "Ba ", // 0x87 - "He ", // 0x88 - "Ji ", // 0x89 - "Ji ", // 0x8a - "Jian ", // 0x8b - "Guan ", // 0x8c - "Bian ", // 0x8d - "Yan ", // 0x8e - "Gui ", // 0x8f - "Jue ", // 0x90 - "Pian ", // 0x91 - "Mao ", // 0x92 - "Mi ", // 0x93 - "Mi ", // 0x94 - "Mie ", // 0x95 - "Shi ", // 0x96 - "Si ", // 0x97 - "Zhan ", // 0x98 - "Luo ", // 0x99 - "Jue ", // 0x9a - "Mi ", // 0x9b - "Tiao ", // 0x9c - "Lian ", // 0x9d - "Yao ", // 0x9e - "Zhi ", // 0x9f - "Jun ", // 0xa0 - "Xi ", // 0xa1 - "Shan ", // 0xa2 - "Wei ", // 0xa3 - "Xi ", // 0xa4 - "Tian ", // 0xa5 - "Yu ", // 0xa6 - "Lan ", // 0xa7 - "E ", // 0xa8 - "Du ", // 0xa9 - "Qin ", // 0xaa - "Pang ", // 0xab - "Ji ", // 0xac - "Ming ", // 0xad - "Ying ", // 0xae - "Gou ", // 0xaf - "Qu ", // 0xb0 - "Zhan ", // 0xb1 - "Jin ", // 0xb2 - "Guan ", // 0xb3 - "Deng ", // 0xb4 - "Jian ", // 0xb5 - "Luo ", // 0xb6 - "Qu ", // 0xb7 - "Jian ", // 0xb8 - "Wei ", // 0xb9 - "Jue ", // 0xba - "Qu ", // 0xbb - "Luo ", // 0xbc - "Lan ", // 0xbd - "Shen ", // 0xbe - "Di ", // 0xbf - "Guan ", // 0xc0 - "Jian ", // 0xc1 - "Guan ", // 0xc2 - "Yan ", // 0xc3 - "Gui ", // 0xc4 - "Mi ", // 0xc5 - "Shi ", // 0xc6 - "Zhan ", // 0xc7 - "Lan ", // 0xc8 - "Jue ", // 0xc9 - "Ji ", // 0xca - "Xi ", // 0xcb - "Di ", // 0xcc - "Tian ", // 0xcd - "Yu ", // 0xce - "Gou ", // 0xcf - "Jin ", // 0xd0 - "Qu ", // 0xd1 - "Jiao ", // 0xd2 - "Jiu ", // 0xd3 - "Jin ", // 0xd4 - "Cu ", // 0xd5 - "Jue ", // 0xd6 - "Zhi ", // 0xd7 - "Chao ", // 0xd8 - "Ji ", // 0xd9 - "Gu ", // 0xda - "Dan ", // 0xdb - "Zui ", // 0xdc - "Di ", // 0xdd - "Shang ", // 0xde - "Hua ", // 0xdf - "Quan ", // 0xe0 - "Ge ", // 0xe1 - "Chi ", // 0xe2 - "Jie ", // 0xe3 - "Gui ", // 0xe4 - "Gong ", // 0xe5 - "Hong ", // 0xe6 - "Jie ", // 0xe7 - "Hun ", // 0xe8 - "Qiu ", // 0xe9 - "Xing ", // 0xea - "Su ", // 0xeb - "Ni ", // 0xec - "Ji ", // 0xed - "Lu ", // 0xee - "Zhi ", // 0xef - "Zha ", // 0xf0 - "Bi ", // 0xf1 - "Xing ", // 0xf2 - "Hu ", // 0xf3 - "Shang ", // 0xf4 - "Gong ", // 0xf5 - "Zhi ", // 0xf6 - "Xue ", // 0xf7 - "Chu ", // 0xf8 - "Xi ", // 0xf9 - "Yi ", // 0xfa - "Lu ", // 0xfb - "Jue ", // 0xfc - "Xi ", // 0xfd - "Yan ", // 0xfe - "Xi ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x08a.go b/vendor/github.com/mozillazg/go-unidecode/table/x08a.go deleted file mode 100644 index 8a14ba1..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x08a.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x08a = []string{ - "Yan ", // 0x00 - "Yan ", // 0x01 - "Ding ", // 0x02 - "Fu ", // 0x03 - "Qiu ", // 0x04 - "Qiu ", // 0x05 - "Jiao ", // 0x06 - "Hong ", // 0x07 - "Ji ", // 0x08 - "Fan ", // 0x09 - "Xun ", // 0x0a - "Diao ", // 0x0b - "Hong ", // 0x0c - "Cha ", // 0x0d - "Tao ", // 0x0e - "Xu ", // 0x0f - "Jie ", // 0x10 - "Yi ", // 0x11 - "Ren ", // 0x12 - "Xun ", // 0x13 - "Yin ", // 0x14 - "Shan ", // 0x15 - "Qi ", // 0x16 - "Tuo ", // 0x17 - "Ji ", // 0x18 - "Xun ", // 0x19 - "Yin ", // 0x1a - "E ", // 0x1b - "Fen ", // 0x1c - "Ya ", // 0x1d - "Yao ", // 0x1e - "Song ", // 0x1f - "Shen ", // 0x20 - "Yin ", // 0x21 - "Xin ", // 0x22 - "Jue ", // 0x23 - "Xiao ", // 0x24 - "Ne ", // 0x25 - "Chen ", // 0x26 - "You ", // 0x27 - "Zhi ", // 0x28 - "Xiong ", // 0x29 - "Fang ", // 0x2a - "Xin ", // 0x2b - "Chao ", // 0x2c - "She ", // 0x2d - "Xian ", // 0x2e - "Sha ", // 0x2f - "Tun ", // 0x30 - "Xu ", // 0x31 - "Yi ", // 0x32 - "Yi ", // 0x33 - "Su ", // 0x34 - "Chi ", // 0x35 - "He ", // 0x36 - "Shen ", // 0x37 - "He ", // 0x38 - "Xu ", // 0x39 - "Zhen ", // 0x3a - "Zhu ", // 0x3b - "Zheng ", // 0x3c - "Gou ", // 0x3d - "Zi ", // 0x3e - "Zi ", // 0x3f - "Zhan ", // 0x40 - "Gu ", // 0x41 - "Fu ", // 0x42 - "Quan ", // 0x43 - "Die ", // 0x44 - "Ling ", // 0x45 - "Di ", // 0x46 - "Yang ", // 0x47 - "Li ", // 0x48 - "Nao ", // 0x49 - "Pan ", // 0x4a - "Zhou ", // 0x4b - "Gan ", // 0x4c - "Yi ", // 0x4d - "Ju ", // 0x4e - "Ao ", // 0x4f - "Zha ", // 0x50 - "Tuo ", // 0x51 - "Yi ", // 0x52 - "Qu ", // 0x53 - "Zhao ", // 0x54 - "Ping ", // 0x55 - "Bi ", // 0x56 - "Xiong ", // 0x57 - "Qu ", // 0x58 - "Ba ", // 0x59 - "Da ", // 0x5a - "Zu ", // 0x5b - "Tao ", // 0x5c - "Zhu ", // 0x5d - "Ci ", // 0x5e - "Zhe ", // 0x5f - "Yong ", // 0x60 - "Xu ", // 0x61 - "Xun ", // 0x62 - "Yi ", // 0x63 - "Huang ", // 0x64 - "He ", // 0x65 - "Shi ", // 0x66 - "Cha ", // 0x67 - "Jiao ", // 0x68 - "Shi ", // 0x69 - "Hen ", // 0x6a - "Cha ", // 0x6b - "Gou ", // 0x6c - "Gui ", // 0x6d - "Quan ", // 0x6e - "Hui ", // 0x6f - "Jie ", // 0x70 - "Hua ", // 0x71 - "Gai ", // 0x72 - "Xiang ", // 0x73 - "Wei ", // 0x74 - "Shen ", // 0x75 - "Chou ", // 0x76 - "Tong ", // 0x77 - "Mi ", // 0x78 - "Zhan ", // 0x79 - "Ming ", // 0x7a - "E ", // 0x7b - "Hui ", // 0x7c - "Yan ", // 0x7d - "Xiong ", // 0x7e - "Gua ", // 0x7f - "Er ", // 0x80 - "Beng ", // 0x81 - "Tiao ", // 0x82 - "Chi ", // 0x83 - "Lei ", // 0x84 - "Zhu ", // 0x85 - "Kuang ", // 0x86 - "Kua ", // 0x87 - "Wu ", // 0x88 - "Yu ", // 0x89 - "Teng ", // 0x8a - "Ji ", // 0x8b - "Zhi ", // 0x8c - "Ren ", // 0x8d - "Su ", // 0x8e - "Lang ", // 0x8f - "E ", // 0x90 - "Kuang ", // 0x91 - "E ", // 0x92 - "Shi ", // 0x93 - "Ting ", // 0x94 - "Dan ", // 0x95 - "Bo ", // 0x96 - "Chan ", // 0x97 - "You ", // 0x98 - "Heng ", // 0x99 - "Qiao ", // 0x9a - "Qin ", // 0x9b - "Shua ", // 0x9c - "An ", // 0x9d - "Yu ", // 0x9e - "Xiao ", // 0x9f - "Cheng ", // 0xa0 - "Jie ", // 0xa1 - "Xian ", // 0xa2 - "Wu ", // 0xa3 - "Wu ", // 0xa4 - "Gao ", // 0xa5 - "Song ", // 0xa6 - "Pu ", // 0xa7 - "Hui ", // 0xa8 - "Jing ", // 0xa9 - "Shuo ", // 0xaa - "Zhen ", // 0xab - "Shuo ", // 0xac - "Du ", // 0xad - "Yasashi ", // 0xae - "Chang ", // 0xaf - "Shui ", // 0xb0 - "Jie ", // 0xb1 - "Ke ", // 0xb2 - "Qu ", // 0xb3 - "Cong ", // 0xb4 - "Xiao ", // 0xb5 - "Sui ", // 0xb6 - "Wang ", // 0xb7 - "Xuan ", // 0xb8 - "Fei ", // 0xb9 - "Chi ", // 0xba - "Ta ", // 0xbb - "Yi ", // 0xbc - "Na ", // 0xbd - "Yin ", // 0xbe - "Diao ", // 0xbf - "Pi ", // 0xc0 - "Chuo ", // 0xc1 - "Chan ", // 0xc2 - "Chen ", // 0xc3 - "Zhun ", // 0xc4 - "Ji ", // 0xc5 - "Qi ", // 0xc6 - "Tan ", // 0xc7 - "Zhui ", // 0xc8 - "Wei ", // 0xc9 - "Ju ", // 0xca - "Qing ", // 0xcb - "Jian ", // 0xcc - "Zheng ", // 0xcd - "Ze ", // 0xce - "Zou ", // 0xcf - "Qian ", // 0xd0 - "Zhuo ", // 0xd1 - "Liang ", // 0xd2 - "Jian ", // 0xd3 - "Zhu ", // 0xd4 - "Hao ", // 0xd5 - "Lun ", // 0xd6 - "Shen ", // 0xd7 - "Biao ", // 0xd8 - "Huai ", // 0xd9 - "Pian ", // 0xda - "Yu ", // 0xdb - "Die ", // 0xdc - "Xu ", // 0xdd - "Pian ", // 0xde - "Shi ", // 0xdf - "Xuan ", // 0xe0 - "Shi ", // 0xe1 - "Hun ", // 0xe2 - "Hua ", // 0xe3 - "E ", // 0xe4 - "Zhong ", // 0xe5 - "Di ", // 0xe6 - "Xie ", // 0xe7 - "Fu ", // 0xe8 - "Pu ", // 0xe9 - "Ting ", // 0xea - "Jian ", // 0xeb - "Qi ", // 0xec - "Yu ", // 0xed - "Zi ", // 0xee - "Chuan ", // 0xef - "Xi ", // 0xf0 - "Hui ", // 0xf1 - "Yin ", // 0xf2 - "An ", // 0xf3 - "Xian ", // 0xf4 - "Nan ", // 0xf5 - "Chen ", // 0xf6 - "Feng ", // 0xf7 - "Zhu ", // 0xf8 - "Yang ", // 0xf9 - "Yan ", // 0xfa - "Heng ", // 0xfb - "Xuan ", // 0xfc - "Ge ", // 0xfd - "Nuo ", // 0xfe - "Qi ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x08b.go b/vendor/github.com/mozillazg/go-unidecode/table/x08b.go deleted file mode 100644 index 19149c1..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x08b.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x08b = []string{ - "Mou ", // 0x00 - "Ye ", // 0x01 - "Wei ", // 0x02 - "[?] ", // 0x03 - "Teng ", // 0x04 - "Zou ", // 0x05 - "Shan ", // 0x06 - "Jian ", // 0x07 - "Bo ", // 0x08 - "Ku ", // 0x09 - "Huang ", // 0x0a - "Huo ", // 0x0b - "Ge ", // 0x0c - "Ying ", // 0x0d - "Mi ", // 0x0e - "Xiao ", // 0x0f - "Mi ", // 0x10 - "Xi ", // 0x11 - "Qiang ", // 0x12 - "Chen ", // 0x13 - "Nue ", // 0x14 - "Ti ", // 0x15 - "Su ", // 0x16 - "Bang ", // 0x17 - "Chi ", // 0x18 - "Qian ", // 0x19 - "Shi ", // 0x1a - "Jiang ", // 0x1b - "Yuan ", // 0x1c - "Xie ", // 0x1d - "Xue ", // 0x1e - "Tao ", // 0x1f - "Yao ", // 0x20 - "Yao ", // 0x21 - "[?] ", // 0x22 - "Yu ", // 0x23 - "Biao ", // 0x24 - "Cong ", // 0x25 - "Qing ", // 0x26 - "Li ", // 0x27 - "Mo ", // 0x28 - "Mo ", // 0x29 - "Shang ", // 0x2a - "Zhe ", // 0x2b - "Miu ", // 0x2c - "Jian ", // 0x2d - "Ze ", // 0x2e - "Jie ", // 0x2f - "Lian ", // 0x30 - "Lou ", // 0x31 - "Can ", // 0x32 - "Ou ", // 0x33 - "Guan ", // 0x34 - "Xi ", // 0x35 - "Zhuo ", // 0x36 - "Ao ", // 0x37 - "Ao ", // 0x38 - "Jin ", // 0x39 - "Zhe ", // 0x3a - "Yi ", // 0x3b - "Hu ", // 0x3c - "Jiang ", // 0x3d - "Man ", // 0x3e - "Chao ", // 0x3f - "Han ", // 0x40 - "Hua ", // 0x41 - "Chan ", // 0x42 - "Xu ", // 0x43 - "Zeng ", // 0x44 - "Se ", // 0x45 - "Xi ", // 0x46 - "She ", // 0x47 - "Dui ", // 0x48 - "Zheng ", // 0x49 - "Nao ", // 0x4a - "Lan ", // 0x4b - "E ", // 0x4c - "Ying ", // 0x4d - "Jue ", // 0x4e - "Ji ", // 0x4f - "Zun ", // 0x50 - "Jiao ", // 0x51 - "Bo ", // 0x52 - "Hui ", // 0x53 - "Zhuan ", // 0x54 - "Mu ", // 0x55 - "Zen ", // 0x56 - "Zha ", // 0x57 - "Shi ", // 0x58 - "Qiao ", // 0x59 - "Tan ", // 0x5a - "Zen ", // 0x5b - "Pu ", // 0x5c - "Sheng ", // 0x5d - "Xuan ", // 0x5e - "Zao ", // 0x5f - "Tan ", // 0x60 - "Dang ", // 0x61 - "Sui ", // 0x62 - "Qian ", // 0x63 - "Ji ", // 0x64 - "Jiao ", // 0x65 - "Jing ", // 0x66 - "Lian ", // 0x67 - "Nou ", // 0x68 - "Yi ", // 0x69 - "Ai ", // 0x6a - "Zhan ", // 0x6b - "Pi ", // 0x6c - "Hui ", // 0x6d - "Hua ", // 0x6e - "Yi ", // 0x6f - "Yi ", // 0x70 - "Shan ", // 0x71 - "Rang ", // 0x72 - "Nou ", // 0x73 - "Qian ", // 0x74 - "Zhui ", // 0x75 - "Ta ", // 0x76 - "Hu ", // 0x77 - "Zhou ", // 0x78 - "Hao ", // 0x79 - "Ye ", // 0x7a - "Ying ", // 0x7b - "Jian ", // 0x7c - "Yu ", // 0x7d - "Jian ", // 0x7e - "Hui ", // 0x7f - "Du ", // 0x80 - "Zhe ", // 0x81 - "Xuan ", // 0x82 - "Zan ", // 0x83 - "Lei ", // 0x84 - "Shen ", // 0x85 - "Wei ", // 0x86 - "Chan ", // 0x87 - "Li ", // 0x88 - "Yi ", // 0x89 - "Bian ", // 0x8a - "Zhe ", // 0x8b - "Yan ", // 0x8c - "E ", // 0x8d - "Chou ", // 0x8e - "Wei ", // 0x8f - "Chou ", // 0x90 - "Yao ", // 0x91 - "Chan ", // 0x92 - "Rang ", // 0x93 - "Yin ", // 0x94 - "Lan ", // 0x95 - "Chen ", // 0x96 - "Huo ", // 0x97 - "Zhe ", // 0x98 - "Huan ", // 0x99 - "Zan ", // 0x9a - "Yi ", // 0x9b - "Dang ", // 0x9c - "Zhan ", // 0x9d - "Yan ", // 0x9e - "Du ", // 0x9f - "Yan ", // 0xa0 - "Ji ", // 0xa1 - "Ding ", // 0xa2 - "Fu ", // 0xa3 - "Ren ", // 0xa4 - "Ji ", // 0xa5 - "Jie ", // 0xa6 - "Hong ", // 0xa7 - "Tao ", // 0xa8 - "Rang ", // 0xa9 - "Shan ", // 0xaa - "Qi ", // 0xab - "Tuo ", // 0xac - "Xun ", // 0xad - "Yi ", // 0xae - "Xun ", // 0xaf - "Ji ", // 0xb0 - "Ren ", // 0xb1 - "Jiang ", // 0xb2 - "Hui ", // 0xb3 - "Ou ", // 0xb4 - "Ju ", // 0xb5 - "Ya ", // 0xb6 - "Ne ", // 0xb7 - "Xu ", // 0xb8 - "E ", // 0xb9 - "Lun ", // 0xba - "Xiong ", // 0xbb - "Song ", // 0xbc - "Feng ", // 0xbd - "She ", // 0xbe - "Fang ", // 0xbf - "Jue ", // 0xc0 - "Zheng ", // 0xc1 - "Gu ", // 0xc2 - "He ", // 0xc3 - "Ping ", // 0xc4 - "Zu ", // 0xc5 - "Shi ", // 0xc6 - "Xiong ", // 0xc7 - "Zha ", // 0xc8 - "Su ", // 0xc9 - "Zhen ", // 0xca - "Di ", // 0xcb - "Zou ", // 0xcc - "Ci ", // 0xcd - "Qu ", // 0xce - "Zhao ", // 0xcf - "Bi ", // 0xd0 - "Yi ", // 0xd1 - "Yi ", // 0xd2 - "Kuang ", // 0xd3 - "Lei ", // 0xd4 - "Shi ", // 0xd5 - "Gua ", // 0xd6 - "Shi ", // 0xd7 - "Jie ", // 0xd8 - "Hui ", // 0xd9 - "Cheng ", // 0xda - "Zhu ", // 0xdb - "Shen ", // 0xdc - "Hua ", // 0xdd - "Dan ", // 0xde - "Gou ", // 0xdf - "Quan ", // 0xe0 - "Gui ", // 0xe1 - "Xun ", // 0xe2 - "Yi ", // 0xe3 - "Zheng ", // 0xe4 - "Gai ", // 0xe5 - "Xiang ", // 0xe6 - "Cha ", // 0xe7 - "Hun ", // 0xe8 - "Xu ", // 0xe9 - "Zhou ", // 0xea - "Jie ", // 0xeb - "Wu ", // 0xec - "Yu ", // 0xed - "Qiao ", // 0xee - "Wu ", // 0xef - "Gao ", // 0xf0 - "You ", // 0xf1 - "Hui ", // 0xf2 - "Kuang ", // 0xf3 - "Shuo ", // 0xf4 - "Song ", // 0xf5 - "Ai ", // 0xf6 - "Qing ", // 0xf7 - "Zhu ", // 0xf8 - "Zou ", // 0xf9 - "Nuo ", // 0xfa - "Du ", // 0xfb - "Zhuo ", // 0xfc - "Fei ", // 0xfd - "Ke ", // 0xfe - "Wei ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x08c.go b/vendor/github.com/mozillazg/go-unidecode/table/x08c.go deleted file mode 100644 index 635fece..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x08c.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x08c = []string{ - "Yu ", // 0x00 - "Shui ", // 0x01 - "Shen ", // 0x02 - "Diao ", // 0x03 - "Chan ", // 0x04 - "Liang ", // 0x05 - "Zhun ", // 0x06 - "Sui ", // 0x07 - "Tan ", // 0x08 - "Shen ", // 0x09 - "Yi ", // 0x0a - "Mou ", // 0x0b - "Chen ", // 0x0c - "Die ", // 0x0d - "Huang ", // 0x0e - "Jian ", // 0x0f - "Xie ", // 0x10 - "Nue ", // 0x11 - "Ye ", // 0x12 - "Wei ", // 0x13 - "E ", // 0x14 - "Yu ", // 0x15 - "Xuan ", // 0x16 - "Chan ", // 0x17 - "Zi ", // 0x18 - "An ", // 0x19 - "Yan ", // 0x1a - "Di ", // 0x1b - "Mi ", // 0x1c - "Pian ", // 0x1d - "Xu ", // 0x1e - "Mo ", // 0x1f - "Dang ", // 0x20 - "Su ", // 0x21 - "Xie ", // 0x22 - "Yao ", // 0x23 - "Bang ", // 0x24 - "Shi ", // 0x25 - "Qian ", // 0x26 - "Mi ", // 0x27 - "Jin ", // 0x28 - "Man ", // 0x29 - "Zhe ", // 0x2a - "Jian ", // 0x2b - "Miu ", // 0x2c - "Tan ", // 0x2d - "Zen ", // 0x2e - "Qiao ", // 0x2f - "Lan ", // 0x30 - "Pu ", // 0x31 - "Jue ", // 0x32 - "Yan ", // 0x33 - "Qian ", // 0x34 - "Zhan ", // 0x35 - "Chen ", // 0x36 - "Gu ", // 0x37 - "Qian ", // 0x38 - "Hong ", // 0x39 - "Xia ", // 0x3a - "Jue ", // 0x3b - "Hong ", // 0x3c - "Han ", // 0x3d - "Hong ", // 0x3e - "Xi ", // 0x3f - "Xi ", // 0x40 - "Huo ", // 0x41 - "Liao ", // 0x42 - "Han ", // 0x43 - "Du ", // 0x44 - "Long ", // 0x45 - "Dou ", // 0x46 - "Jiang ", // 0x47 - "Qi ", // 0x48 - "Shi ", // 0x49 - "Li ", // 0x4a - "Deng ", // 0x4b - "Wan ", // 0x4c - "Bi ", // 0x4d - "Shu ", // 0x4e - "Xian ", // 0x4f - "Feng ", // 0x50 - "Zhi ", // 0x51 - "Zhi ", // 0x52 - "Yan ", // 0x53 - "Yan ", // 0x54 - "Shi ", // 0x55 - "Chu ", // 0x56 - "Hui ", // 0x57 - "Tun ", // 0x58 - "Yi ", // 0x59 - "Tun ", // 0x5a - "Yi ", // 0x5b - "Jian ", // 0x5c - "Ba ", // 0x5d - "Hou ", // 0x5e - "E ", // 0x5f - "Cu ", // 0x60 - "Xiang ", // 0x61 - "Huan ", // 0x62 - "Jian ", // 0x63 - "Ken ", // 0x64 - "Gai ", // 0x65 - "Qu ", // 0x66 - "Fu ", // 0x67 - "Xi ", // 0x68 - "Bin ", // 0x69 - "Hao ", // 0x6a - "Yu ", // 0x6b - "Zhu ", // 0x6c - "Jia ", // 0x6d - "[?] ", // 0x6e - "Xi ", // 0x6f - "Bo ", // 0x70 - "Wen ", // 0x71 - "Huan ", // 0x72 - "Bin ", // 0x73 - "Di ", // 0x74 - "Zong ", // 0x75 - "Fen ", // 0x76 - "Yi ", // 0x77 - "Zhi ", // 0x78 - "Bao ", // 0x79 - "Chai ", // 0x7a - "Han ", // 0x7b - "Pi ", // 0x7c - "Na ", // 0x7d - "Pi ", // 0x7e - "Gou ", // 0x7f - "Na ", // 0x80 - "You ", // 0x81 - "Diao ", // 0x82 - "Mo ", // 0x83 - "Si ", // 0x84 - "Xiu ", // 0x85 - "Huan ", // 0x86 - "Kun ", // 0x87 - "He ", // 0x88 - "He ", // 0x89 - "Mo ", // 0x8a - "Han ", // 0x8b - "Mao ", // 0x8c - "Li ", // 0x8d - "Ni ", // 0x8e - "Bi ", // 0x8f - "Yu ", // 0x90 - "Jia ", // 0x91 - "Tuan ", // 0x92 - "Mao ", // 0x93 - "Pi ", // 0x94 - "Xi ", // 0x95 - "E ", // 0x96 - "Ju ", // 0x97 - "Mo ", // 0x98 - "Chu ", // 0x99 - "Tan ", // 0x9a - "Huan ", // 0x9b - "Jue ", // 0x9c - "Bei ", // 0x9d - "Zhen ", // 0x9e - "Yuan ", // 0x9f - "Fu ", // 0xa0 - "Cai ", // 0xa1 - "Gong ", // 0xa2 - "Te ", // 0xa3 - "Yi ", // 0xa4 - "Hang ", // 0xa5 - "Wan ", // 0xa6 - "Pin ", // 0xa7 - "Huo ", // 0xa8 - "Fan ", // 0xa9 - "Tan ", // 0xaa - "Guan ", // 0xab - "Ze ", // 0xac - "Zhi ", // 0xad - "Er ", // 0xae - "Zhu ", // 0xaf - "Shi ", // 0xb0 - "Bi ", // 0xb1 - "Zi ", // 0xb2 - "Er ", // 0xb3 - "Gui ", // 0xb4 - "Pian ", // 0xb5 - "Bian ", // 0xb6 - "Mai ", // 0xb7 - "Dai ", // 0xb8 - "Sheng ", // 0xb9 - "Kuang ", // 0xba - "Fei ", // 0xbb - "Tie ", // 0xbc - "Yi ", // 0xbd - "Chi ", // 0xbe - "Mao ", // 0xbf - "He ", // 0xc0 - "Bi ", // 0xc1 - "Lu ", // 0xc2 - "Ren ", // 0xc3 - "Hui ", // 0xc4 - "Gai ", // 0xc5 - "Pian ", // 0xc6 - "Zi ", // 0xc7 - "Jia ", // 0xc8 - "Xu ", // 0xc9 - "Zei ", // 0xca - "Jiao ", // 0xcb - "Gai ", // 0xcc - "Zang ", // 0xcd - "Jian ", // 0xce - "Ying ", // 0xcf - "Xun ", // 0xd0 - "Zhen ", // 0xd1 - "She ", // 0xd2 - "Bin ", // 0xd3 - "Bin ", // 0xd4 - "Qiu ", // 0xd5 - "She ", // 0xd6 - "Chuan ", // 0xd7 - "Zang ", // 0xd8 - "Zhou ", // 0xd9 - "Lai ", // 0xda - "Zan ", // 0xdb - "Si ", // 0xdc - "Chen ", // 0xdd - "Shang ", // 0xde - "Tian ", // 0xdf - "Pei ", // 0xe0 - "Geng ", // 0xe1 - "Xian ", // 0xe2 - "Mai ", // 0xe3 - "Jian ", // 0xe4 - "Sui ", // 0xe5 - "Fu ", // 0xe6 - "Tan ", // 0xe7 - "Cong ", // 0xe8 - "Cong ", // 0xe9 - "Zhi ", // 0xea - "Ji ", // 0xeb - "Zhang ", // 0xec - "Du ", // 0xed - "Jin ", // 0xee - "Xiong ", // 0xef - "Shun ", // 0xf0 - "Yun ", // 0xf1 - "Bao ", // 0xf2 - "Zai ", // 0xf3 - "Lai ", // 0xf4 - "Feng ", // 0xf5 - "Cang ", // 0xf6 - "Ji ", // 0xf7 - "Sheng ", // 0xf8 - "Ai ", // 0xf9 - "Zhuan ", // 0xfa - "Fu ", // 0xfb - "Gou ", // 0xfc - "Sai ", // 0xfd - "Ze ", // 0xfe - "Liao ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x08d.go b/vendor/github.com/mozillazg/go-unidecode/table/x08d.go deleted file mode 100644 index e8260ed..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x08d.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x08d = []string{ - "Wei ", // 0x00 - "Bai ", // 0x01 - "Chen ", // 0x02 - "Zhuan ", // 0x03 - "Zhi ", // 0x04 - "Zhui ", // 0x05 - "Biao ", // 0x06 - "Yun ", // 0x07 - "Zeng ", // 0x08 - "Tan ", // 0x09 - "Zan ", // 0x0a - "Yan ", // 0x0b - "[?] ", // 0x0c - "Shan ", // 0x0d - "Wan ", // 0x0e - "Ying ", // 0x0f - "Jin ", // 0x10 - "Gan ", // 0x11 - "Xian ", // 0x12 - "Zang ", // 0x13 - "Bi ", // 0x14 - "Du ", // 0x15 - "Shu ", // 0x16 - "Yan ", // 0x17 - "[?] ", // 0x18 - "Xuan ", // 0x19 - "Long ", // 0x1a - "Gan ", // 0x1b - "Zang ", // 0x1c - "Bei ", // 0x1d - "Zhen ", // 0x1e - "Fu ", // 0x1f - "Yuan ", // 0x20 - "Gong ", // 0x21 - "Cai ", // 0x22 - "Ze ", // 0x23 - "Xian ", // 0x24 - "Bai ", // 0x25 - "Zhang ", // 0x26 - "Huo ", // 0x27 - "Zhi ", // 0x28 - "Fan ", // 0x29 - "Tan ", // 0x2a - "Pin ", // 0x2b - "Bian ", // 0x2c - "Gou ", // 0x2d - "Zhu ", // 0x2e - "Guan ", // 0x2f - "Er ", // 0x30 - "Jian ", // 0x31 - "Bi ", // 0x32 - "Shi ", // 0x33 - "Tie ", // 0x34 - "Gui ", // 0x35 - "Kuang ", // 0x36 - "Dai ", // 0x37 - "Mao ", // 0x38 - "Fei ", // 0x39 - "He ", // 0x3a - "Yi ", // 0x3b - "Zei ", // 0x3c - "Zhi ", // 0x3d - "Jia ", // 0x3e - "Hui ", // 0x3f - "Zi ", // 0x40 - "Ren ", // 0x41 - "Lu ", // 0x42 - "Zang ", // 0x43 - "Zi ", // 0x44 - "Gai ", // 0x45 - "Jin ", // 0x46 - "Qiu ", // 0x47 - "Zhen ", // 0x48 - "Lai ", // 0x49 - "She ", // 0x4a - "Fu ", // 0x4b - "Du ", // 0x4c - "Ji ", // 0x4d - "Shu ", // 0x4e - "Shang ", // 0x4f - "Si ", // 0x50 - "Bi ", // 0x51 - "Zhou ", // 0x52 - "Geng ", // 0x53 - "Pei ", // 0x54 - "Tan ", // 0x55 - "Lai ", // 0x56 - "Feng ", // 0x57 - "Zhui ", // 0x58 - "Fu ", // 0x59 - "Zhuan ", // 0x5a - "Sai ", // 0x5b - "Ze ", // 0x5c - "Yan ", // 0x5d - "Zan ", // 0x5e - "Yun ", // 0x5f - "Zeng ", // 0x60 - "Shan ", // 0x61 - "Ying ", // 0x62 - "Gan ", // 0x63 - "Chi ", // 0x64 - "Xi ", // 0x65 - "She ", // 0x66 - "Nan ", // 0x67 - "Xiong ", // 0x68 - "Xi ", // 0x69 - "Cheng ", // 0x6a - "He ", // 0x6b - "Cheng ", // 0x6c - "Zhe ", // 0x6d - "Xia ", // 0x6e - "Tang ", // 0x6f - "Zou ", // 0x70 - "Zou ", // 0x71 - "Li ", // 0x72 - "Jiu ", // 0x73 - "Fu ", // 0x74 - "Zhao ", // 0x75 - "Gan ", // 0x76 - "Qi ", // 0x77 - "Shan ", // 0x78 - "Qiong ", // 0x79 - "Qin ", // 0x7a - "Xian ", // 0x7b - "Ci ", // 0x7c - "Jue ", // 0x7d - "Qin ", // 0x7e - "Chi ", // 0x7f - "Ci ", // 0x80 - "Chen ", // 0x81 - "Chen ", // 0x82 - "Die ", // 0x83 - "Ju ", // 0x84 - "Chao ", // 0x85 - "Di ", // 0x86 - "Se ", // 0x87 - "Zhan ", // 0x88 - "Zhu ", // 0x89 - "Yue ", // 0x8a - "Qu ", // 0x8b - "Jie ", // 0x8c - "Chi ", // 0x8d - "Chu ", // 0x8e - "Gua ", // 0x8f - "Xue ", // 0x90 - "Ci ", // 0x91 - "Tiao ", // 0x92 - "Duo ", // 0x93 - "Lie ", // 0x94 - "Gan ", // 0x95 - "Suo ", // 0x96 - "Cu ", // 0x97 - "Xi ", // 0x98 - "Zhao ", // 0x99 - "Su ", // 0x9a - "Yin ", // 0x9b - "Ju ", // 0x9c - "Jian ", // 0x9d - "Que ", // 0x9e - "Tang ", // 0x9f - "Chuo ", // 0xa0 - "Cui ", // 0xa1 - "Lu ", // 0xa2 - "Qu ", // 0xa3 - "Dang ", // 0xa4 - "Qiu ", // 0xa5 - "Zi ", // 0xa6 - "Ti ", // 0xa7 - "Qu ", // 0xa8 - "Chi ", // 0xa9 - "Huang ", // 0xaa - "Qiao ", // 0xab - "Qiao ", // 0xac - "Yao ", // 0xad - "Zao ", // 0xae - "Ti ", // 0xaf - "[?] ", // 0xb0 - "Zan ", // 0xb1 - "Zan ", // 0xb2 - "Zu ", // 0xb3 - "Pa ", // 0xb4 - "Bao ", // 0xb5 - "Ku ", // 0xb6 - "Ke ", // 0xb7 - "Dun ", // 0xb8 - "Jue ", // 0xb9 - "Fu ", // 0xba - "Chen ", // 0xbb - "Jian ", // 0xbc - "Fang ", // 0xbd - "Zhi ", // 0xbe - "Sa ", // 0xbf - "Yue ", // 0xc0 - "Pa ", // 0xc1 - "Qi ", // 0xc2 - "Yue ", // 0xc3 - "Qiang ", // 0xc4 - "Tuo ", // 0xc5 - "Tai ", // 0xc6 - "Yi ", // 0xc7 - "Nian ", // 0xc8 - "Ling ", // 0xc9 - "Mei ", // 0xca - "Ba ", // 0xcb - "Die ", // 0xcc - "Ku ", // 0xcd - "Tuo ", // 0xce - "Jia ", // 0xcf - "Ci ", // 0xd0 - "Pao ", // 0xd1 - "Qia ", // 0xd2 - "Zhu ", // 0xd3 - "Ju ", // 0xd4 - "Die ", // 0xd5 - "Zhi ", // 0xd6 - "Fu ", // 0xd7 - "Pan ", // 0xd8 - "Ju ", // 0xd9 - "Shan ", // 0xda - "Bo ", // 0xdb - "Ni ", // 0xdc - "Ju ", // 0xdd - "Li ", // 0xde - "Gen ", // 0xdf - "Yi ", // 0xe0 - "Ji ", // 0xe1 - "Dai ", // 0xe2 - "Xian ", // 0xe3 - "Jiao ", // 0xe4 - "Duo ", // 0xe5 - "Zhu ", // 0xe6 - "Zhuan ", // 0xe7 - "Kua ", // 0xe8 - "Zhuai ", // 0xe9 - "Gui ", // 0xea - "Qiong ", // 0xeb - "Kui ", // 0xec - "Xiang ", // 0xed - "Chi ", // 0xee - "Lu ", // 0xef - "Beng ", // 0xf0 - "Zhi ", // 0xf1 - "Jia ", // 0xf2 - "Tiao ", // 0xf3 - "Cai ", // 0xf4 - "Jian ", // 0xf5 - "Ta ", // 0xf6 - "Qiao ", // 0xf7 - "Bi ", // 0xf8 - "Xian ", // 0xf9 - "Duo ", // 0xfa - "Ji ", // 0xfb - "Ju ", // 0xfc - "Ji ", // 0xfd - "Shu ", // 0xfe - "Tu ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x08e.go b/vendor/github.com/mozillazg/go-unidecode/table/x08e.go deleted file mode 100644 index 24783ab..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x08e.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x08e = []string{ - "Chu ", // 0x00 - "Jing ", // 0x01 - "Nie ", // 0x02 - "Xiao ", // 0x03 - "Bo ", // 0x04 - "Chi ", // 0x05 - "Qun ", // 0x06 - "Mou ", // 0x07 - "Shu ", // 0x08 - "Lang ", // 0x09 - "Yong ", // 0x0a - "Jiao ", // 0x0b - "Chou ", // 0x0c - "Qiao ", // 0x0d - "[?] ", // 0x0e - "Ta ", // 0x0f - "Jian ", // 0x10 - "Qi ", // 0x11 - "Wo ", // 0x12 - "Wei ", // 0x13 - "Zhuo ", // 0x14 - "Jie ", // 0x15 - "Ji ", // 0x16 - "Nie ", // 0x17 - "Ju ", // 0x18 - "Ju ", // 0x19 - "Lun ", // 0x1a - "Lu ", // 0x1b - "Leng ", // 0x1c - "Huai ", // 0x1d - "Ju ", // 0x1e - "Chi ", // 0x1f - "Wan ", // 0x20 - "Quan ", // 0x21 - "Ti ", // 0x22 - "Bo ", // 0x23 - "Zu ", // 0x24 - "Qie ", // 0x25 - "Ji ", // 0x26 - "Cu ", // 0x27 - "Zong ", // 0x28 - "Cai ", // 0x29 - "Zong ", // 0x2a - "Peng ", // 0x2b - "Zhi ", // 0x2c - "Zheng ", // 0x2d - "Dian ", // 0x2e - "Zhi ", // 0x2f - "Yu ", // 0x30 - "Duo ", // 0x31 - "Dun ", // 0x32 - "Chun ", // 0x33 - "Yong ", // 0x34 - "Zhong ", // 0x35 - "Di ", // 0x36 - "Zhe ", // 0x37 - "Chen ", // 0x38 - "Chuai ", // 0x39 - "Jian ", // 0x3a - "Gua ", // 0x3b - "Tang ", // 0x3c - "Ju ", // 0x3d - "Fu ", // 0x3e - "Zu ", // 0x3f - "Die ", // 0x40 - "Pian ", // 0x41 - "Rou ", // 0x42 - "Nuo ", // 0x43 - "Ti ", // 0x44 - "Cha ", // 0x45 - "Tui ", // 0x46 - "Jian ", // 0x47 - "Dao ", // 0x48 - "Cuo ", // 0x49 - "Xi ", // 0x4a - "Ta ", // 0x4b - "Qiang ", // 0x4c - "Zhan ", // 0x4d - "Dian ", // 0x4e - "Ti ", // 0x4f - "Ji ", // 0x50 - "Nie ", // 0x51 - "Man ", // 0x52 - "Liu ", // 0x53 - "Zhan ", // 0x54 - "Bi ", // 0x55 - "Chong ", // 0x56 - "Lu ", // 0x57 - "Liao ", // 0x58 - "Cu ", // 0x59 - "Tang ", // 0x5a - "Dai ", // 0x5b - "Suo ", // 0x5c - "Xi ", // 0x5d - "Kui ", // 0x5e - "Ji ", // 0x5f - "Zhi ", // 0x60 - "Qiang ", // 0x61 - "Di ", // 0x62 - "Man ", // 0x63 - "Zong ", // 0x64 - "Lian ", // 0x65 - "Beng ", // 0x66 - "Zao ", // 0x67 - "Nian ", // 0x68 - "Bie ", // 0x69 - "Tui ", // 0x6a - "Ju ", // 0x6b - "Deng ", // 0x6c - "Ceng ", // 0x6d - "Xian ", // 0x6e - "Fan ", // 0x6f - "Chu ", // 0x70 - "Zhong ", // 0x71 - "Dun ", // 0x72 - "Bo ", // 0x73 - "Cu ", // 0x74 - "Zu ", // 0x75 - "Jue ", // 0x76 - "Jue ", // 0x77 - "Lin ", // 0x78 - "Ta ", // 0x79 - "Qiao ", // 0x7a - "Qiao ", // 0x7b - "Pu ", // 0x7c - "Liao ", // 0x7d - "Dun ", // 0x7e - "Cuan ", // 0x7f - "Kuang ", // 0x80 - "Zao ", // 0x81 - "Ta ", // 0x82 - "Bi ", // 0x83 - "Bi ", // 0x84 - "Zhu ", // 0x85 - "Ju ", // 0x86 - "Chu ", // 0x87 - "Qiao ", // 0x88 - "Dun ", // 0x89 - "Chou ", // 0x8a - "Ji ", // 0x8b - "Wu ", // 0x8c - "Yue ", // 0x8d - "Nian ", // 0x8e - "Lin ", // 0x8f - "Lie ", // 0x90 - "Zhi ", // 0x91 - "Li ", // 0x92 - "Zhi ", // 0x93 - "Chan ", // 0x94 - "Chu ", // 0x95 - "Duan ", // 0x96 - "Wei ", // 0x97 - "Long ", // 0x98 - "Lin ", // 0x99 - "Xian ", // 0x9a - "Wei ", // 0x9b - "Zuan ", // 0x9c - "Lan ", // 0x9d - "Xie ", // 0x9e - "Rang ", // 0x9f - "Xie ", // 0xa0 - "Nie ", // 0xa1 - "Ta ", // 0xa2 - "Qu ", // 0xa3 - "Jie ", // 0xa4 - "Cuan ", // 0xa5 - "Zuan ", // 0xa6 - "Xi ", // 0xa7 - "Kui ", // 0xa8 - "Jue ", // 0xa9 - "Lin ", // 0xaa - "Shen ", // 0xab - "Gong ", // 0xac - "Dan ", // 0xad - "Segare ", // 0xae - "Qu ", // 0xaf - "Ti ", // 0xb0 - "Duo ", // 0xb1 - "Duo ", // 0xb2 - "Gong ", // 0xb3 - "Lang ", // 0xb4 - "Nerau ", // 0xb5 - "Luo ", // 0xb6 - "Ai ", // 0xb7 - "Ji ", // 0xb8 - "Ju ", // 0xb9 - "Tang ", // 0xba - "Utsuke ", // 0xbb - "[?] ", // 0xbc - "Yan ", // 0xbd - "Shitsuke ", // 0xbe - "Kang ", // 0xbf - "Qu ", // 0xc0 - "Lou ", // 0xc1 - "Lao ", // 0xc2 - "Tuo ", // 0xc3 - "Zhi ", // 0xc4 - "Yagate ", // 0xc5 - "Ti ", // 0xc6 - "Dao ", // 0xc7 - "Yagate ", // 0xc8 - "Yu ", // 0xc9 - "Che ", // 0xca - "Ya ", // 0xcb - "Gui ", // 0xcc - "Jun ", // 0xcd - "Wei ", // 0xce - "Yue ", // 0xcf - "Xin ", // 0xd0 - "Di ", // 0xd1 - "Xuan ", // 0xd2 - "Fan ", // 0xd3 - "Ren ", // 0xd4 - "Shan ", // 0xd5 - "Qiang ", // 0xd6 - "Shu ", // 0xd7 - "Tun ", // 0xd8 - "Chen ", // 0xd9 - "Dai ", // 0xda - "E ", // 0xdb - "Na ", // 0xdc - "Qi ", // 0xdd - "Mao ", // 0xde - "Ruan ", // 0xdf - "Ren ", // 0xe0 - "Fan ", // 0xe1 - "Zhuan ", // 0xe2 - "Hong ", // 0xe3 - "Hu ", // 0xe4 - "Qu ", // 0xe5 - "Huang ", // 0xe6 - "Di ", // 0xe7 - "Ling ", // 0xe8 - "Dai ", // 0xe9 - "Ao ", // 0xea - "Zhen ", // 0xeb - "Fan ", // 0xec - "Kuang ", // 0xed - "Ang ", // 0xee - "Peng ", // 0xef - "Bei ", // 0xf0 - "Gu ", // 0xf1 - "Ku ", // 0xf2 - "Pao ", // 0xf3 - "Zhu ", // 0xf4 - "Rong ", // 0xf5 - "E ", // 0xf6 - "Ba ", // 0xf7 - "Zhou ", // 0xf8 - "Zhi ", // 0xf9 - "Yao ", // 0xfa - "Ke ", // 0xfb - "Yi ", // 0xfc - "Qing ", // 0xfd - "Shi ", // 0xfe - "Ping ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x08f.go b/vendor/github.com/mozillazg/go-unidecode/table/x08f.go deleted file mode 100644 index 4ff371a..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x08f.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x08f = []string{ - "Er ", // 0x00 - "Qiong ", // 0x01 - "Ju ", // 0x02 - "Jiao ", // 0x03 - "Guang ", // 0x04 - "Lu ", // 0x05 - "Kai ", // 0x06 - "Quan ", // 0x07 - "Zhou ", // 0x08 - "Zai ", // 0x09 - "Zhi ", // 0x0a - "She ", // 0x0b - "Liang ", // 0x0c - "Yu ", // 0x0d - "Shao ", // 0x0e - "You ", // 0x0f - "Huan ", // 0x10 - "Yun ", // 0x11 - "Zhe ", // 0x12 - "Wan ", // 0x13 - "Fu ", // 0x14 - "Qing ", // 0x15 - "Zhou ", // 0x16 - "Ni ", // 0x17 - "Ling ", // 0x18 - "Zhe ", // 0x19 - "Zhan ", // 0x1a - "Liang ", // 0x1b - "Zi ", // 0x1c - "Hui ", // 0x1d - "Wang ", // 0x1e - "Chuo ", // 0x1f - "Guo ", // 0x20 - "Kan ", // 0x21 - "Yi ", // 0x22 - "Peng ", // 0x23 - "Qian ", // 0x24 - "Gun ", // 0x25 - "Nian ", // 0x26 - "Pian ", // 0x27 - "Guan ", // 0x28 - "Bei ", // 0x29 - "Lun ", // 0x2a - "Pai ", // 0x2b - "Liang ", // 0x2c - "Ruan ", // 0x2d - "Rou ", // 0x2e - "Ji ", // 0x2f - "Yang ", // 0x30 - "Xian ", // 0x31 - "Chuan ", // 0x32 - "Cou ", // 0x33 - "Qun ", // 0x34 - "Ge ", // 0x35 - "You ", // 0x36 - "Hong ", // 0x37 - "Shu ", // 0x38 - "Fu ", // 0x39 - "Zi ", // 0x3a - "Fu ", // 0x3b - "Wen ", // 0x3c - "Ben ", // 0x3d - "Zhan ", // 0x3e - "Yu ", // 0x3f - "Wen ", // 0x40 - "Tao ", // 0x41 - "Gu ", // 0x42 - "Zhen ", // 0x43 - "Xia ", // 0x44 - "Yuan ", // 0x45 - "Lu ", // 0x46 - "Jiu ", // 0x47 - "Chao ", // 0x48 - "Zhuan ", // 0x49 - "Wei ", // 0x4a - "Hun ", // 0x4b - "Sori ", // 0x4c - "Che ", // 0x4d - "Jiao ", // 0x4e - "Zhan ", // 0x4f - "Pu ", // 0x50 - "Lao ", // 0x51 - "Fen ", // 0x52 - "Fan ", // 0x53 - "Lin ", // 0x54 - "Ge ", // 0x55 - "Se ", // 0x56 - "Kan ", // 0x57 - "Huan ", // 0x58 - "Yi ", // 0x59 - "Ji ", // 0x5a - "Dui ", // 0x5b - "Er ", // 0x5c - "Yu ", // 0x5d - "Xian ", // 0x5e - "Hong ", // 0x5f - "Lei ", // 0x60 - "Pei ", // 0x61 - "Li ", // 0x62 - "Li ", // 0x63 - "Lu ", // 0x64 - "Lin ", // 0x65 - "Che ", // 0x66 - "Ya ", // 0x67 - "Gui ", // 0x68 - "Xuan ", // 0x69 - "Di ", // 0x6a - "Ren ", // 0x6b - "Zhuan ", // 0x6c - "E ", // 0x6d - "Lun ", // 0x6e - "Ruan ", // 0x6f - "Hong ", // 0x70 - "Ku ", // 0x71 - "Ke ", // 0x72 - "Lu ", // 0x73 - "Zhou ", // 0x74 - "Zhi ", // 0x75 - "Yi ", // 0x76 - "Hu ", // 0x77 - "Zhen ", // 0x78 - "Li ", // 0x79 - "Yao ", // 0x7a - "Qing ", // 0x7b - "Shi ", // 0x7c - "Zai ", // 0x7d - "Zhi ", // 0x7e - "Jiao ", // 0x7f - "Zhou ", // 0x80 - "Quan ", // 0x81 - "Lu ", // 0x82 - "Jiao ", // 0x83 - "Zhe ", // 0x84 - "Fu ", // 0x85 - "Liang ", // 0x86 - "Nian ", // 0x87 - "Bei ", // 0x88 - "Hui ", // 0x89 - "Gun ", // 0x8a - "Wang ", // 0x8b - "Liang ", // 0x8c - "Chuo ", // 0x8d - "Zi ", // 0x8e - "Cou ", // 0x8f - "Fu ", // 0x90 - "Ji ", // 0x91 - "Wen ", // 0x92 - "Shu ", // 0x93 - "Pei ", // 0x94 - "Yuan ", // 0x95 - "Xia ", // 0x96 - "Zhan ", // 0x97 - "Lu ", // 0x98 - "Che ", // 0x99 - "Lin ", // 0x9a - "Xin ", // 0x9b - "Gu ", // 0x9c - "Ci ", // 0x9d - "Ci ", // 0x9e - "Pi ", // 0x9f - "Zui ", // 0xa0 - "Bian ", // 0xa1 - "La ", // 0xa2 - "La ", // 0xa3 - "Ci ", // 0xa4 - "Xue ", // 0xa5 - "Ban ", // 0xa6 - "Bian ", // 0xa7 - "Bian ", // 0xa8 - "Bian ", // 0xa9 - "[?] ", // 0xaa - "Bian ", // 0xab - "Ban ", // 0xac - "Ci ", // 0xad - "Bian ", // 0xae - "Bian ", // 0xaf - "Chen ", // 0xb0 - "Ru ", // 0xb1 - "Nong ", // 0xb2 - "Nong ", // 0xb3 - "Zhen ", // 0xb4 - "Chuo ", // 0xb5 - "Chuo ", // 0xb6 - "Suberu ", // 0xb7 - "Reng ", // 0xb8 - "Bian ", // 0xb9 - "Bian ", // 0xba - "Sip ", // 0xbb - "Ip ", // 0xbc - "Liao ", // 0xbd - "Da ", // 0xbe - "Chan ", // 0xbf - "Gan ", // 0xc0 - "Qian ", // 0xc1 - "Yu ", // 0xc2 - "Yu ", // 0xc3 - "Qi ", // 0xc4 - "Xun ", // 0xc5 - "Yi ", // 0xc6 - "Guo ", // 0xc7 - "Mai ", // 0xc8 - "Qi ", // 0xc9 - "Za ", // 0xca - "Wang ", // 0xcb - "Jia ", // 0xcc - "Zhun ", // 0xcd - "Ying ", // 0xce - "Ti ", // 0xcf - "Yun ", // 0xd0 - "Jin ", // 0xd1 - "Hang ", // 0xd2 - "Ya ", // 0xd3 - "Fan ", // 0xd4 - "Wu ", // 0xd5 - "Da ", // 0xd6 - "E ", // 0xd7 - "Huan ", // 0xd8 - "Zhe ", // 0xd9 - "Totemo ", // 0xda - "Jin ", // 0xdb - "Yuan ", // 0xdc - "Wei ", // 0xdd - "Lian ", // 0xde - "Chi ", // 0xdf - "Che ", // 0xe0 - "Ni ", // 0xe1 - "Tiao ", // 0xe2 - "Zhi ", // 0xe3 - "Yi ", // 0xe4 - "Jiong ", // 0xe5 - "Jia ", // 0xe6 - "Chen ", // 0xe7 - "Dai ", // 0xe8 - "Er ", // 0xe9 - "Di ", // 0xea - "Po ", // 0xeb - "Wang ", // 0xec - "Die ", // 0xed - "Ze ", // 0xee - "Tao ", // 0xef - "Shu ", // 0xf0 - "Tuo ", // 0xf1 - "Kep ", // 0xf2 - "Jing ", // 0xf3 - "Hui ", // 0xf4 - "Tong ", // 0xf5 - "You ", // 0xf6 - "Mi ", // 0xf7 - "Beng ", // 0xf8 - "Ji ", // 0xf9 - "Nai ", // 0xfa - "Yi ", // 0xfb - "Jie ", // 0xfc - "Zhui ", // 0xfd - "Lie ", // 0xfe - "Xun ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x090.go b/vendor/github.com/mozillazg/go-unidecode/table/x090.go deleted file mode 100644 index ffd2dd4..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x090.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x090 = []string{ - "Tui ", // 0x00 - "Song ", // 0x01 - "Gua ", // 0x02 - "Tao ", // 0x03 - "Pang ", // 0x04 - "Hou ", // 0x05 - "Ni ", // 0x06 - "Dun ", // 0x07 - "Jiong ", // 0x08 - "Xuan ", // 0x09 - "Xun ", // 0x0a - "Bu ", // 0x0b - "You ", // 0x0c - "Xiao ", // 0x0d - "Qiu ", // 0x0e - "Tou ", // 0x0f - "Zhu ", // 0x10 - "Qiu ", // 0x11 - "Di ", // 0x12 - "Di ", // 0x13 - "Tu ", // 0x14 - "Jing ", // 0x15 - "Ti ", // 0x16 - "Dou ", // 0x17 - "Yi ", // 0x18 - "Zhe ", // 0x19 - "Tong ", // 0x1a - "Guang ", // 0x1b - "Wu ", // 0x1c - "Shi ", // 0x1d - "Cheng ", // 0x1e - "Su ", // 0x1f - "Zao ", // 0x20 - "Qun ", // 0x21 - "Feng ", // 0x22 - "Lian ", // 0x23 - "Suo ", // 0x24 - "Hui ", // 0x25 - "Li ", // 0x26 - "Sako ", // 0x27 - "Lai ", // 0x28 - "Ben ", // 0x29 - "Cuo ", // 0x2a - "Jue ", // 0x2b - "Beng ", // 0x2c - "Huan ", // 0x2d - "Dai ", // 0x2e - "Lu ", // 0x2f - "You ", // 0x30 - "Zhou ", // 0x31 - "Jin ", // 0x32 - "Yu ", // 0x33 - "Chuo ", // 0x34 - "Kui ", // 0x35 - "Wei ", // 0x36 - "Ti ", // 0x37 - "Yi ", // 0x38 - "Da ", // 0x39 - "Yuan ", // 0x3a - "Luo ", // 0x3b - "Bi ", // 0x3c - "Nuo ", // 0x3d - "Yu ", // 0x3e - "Dang ", // 0x3f - "Sui ", // 0x40 - "Dun ", // 0x41 - "Sui ", // 0x42 - "Yan ", // 0x43 - "Chuan ", // 0x44 - "Chi ", // 0x45 - "Ti ", // 0x46 - "Yu ", // 0x47 - "Shi ", // 0x48 - "Zhen ", // 0x49 - "You ", // 0x4a - "Yun ", // 0x4b - "E ", // 0x4c - "Bian ", // 0x4d - "Guo ", // 0x4e - "E ", // 0x4f - "Xia ", // 0x50 - "Huang ", // 0x51 - "Qiu ", // 0x52 - "Dao ", // 0x53 - "Da ", // 0x54 - "Wei ", // 0x55 - "Appare ", // 0x56 - "Yi ", // 0x57 - "Gou ", // 0x58 - "Yao ", // 0x59 - "Chu ", // 0x5a - "Liu ", // 0x5b - "Xun ", // 0x5c - "Ta ", // 0x5d - "Di ", // 0x5e - "Chi ", // 0x5f - "Yuan ", // 0x60 - "Su ", // 0x61 - "Ta ", // 0x62 - "Qian ", // 0x63 - "[?] ", // 0x64 - "Yao ", // 0x65 - "Guan ", // 0x66 - "Zhang ", // 0x67 - "Ao ", // 0x68 - "Shi ", // 0x69 - "Ce ", // 0x6a - "Chi ", // 0x6b - "Su ", // 0x6c - "Zao ", // 0x6d - "Zhe ", // 0x6e - "Dun ", // 0x6f - "Di ", // 0x70 - "Lou ", // 0x71 - "Chi ", // 0x72 - "Cuo ", // 0x73 - "Lin ", // 0x74 - "Zun ", // 0x75 - "Rao ", // 0x76 - "Qian ", // 0x77 - "Xuan ", // 0x78 - "Yu ", // 0x79 - "Yi ", // 0x7a - "Wu ", // 0x7b - "Liao ", // 0x7c - "Ju ", // 0x7d - "Shi ", // 0x7e - "Bi ", // 0x7f - "Yao ", // 0x80 - "Mai ", // 0x81 - "Xie ", // 0x82 - "Sui ", // 0x83 - "Huan ", // 0x84 - "Zhan ", // 0x85 - "Teng ", // 0x86 - "Er ", // 0x87 - "Miao ", // 0x88 - "Bian ", // 0x89 - "Bian ", // 0x8a - "La ", // 0x8b - "Li ", // 0x8c - "Yuan ", // 0x8d - "Yao ", // 0x8e - "Luo ", // 0x8f - "Li ", // 0x90 - "Yi ", // 0x91 - "Ting ", // 0x92 - "Deng ", // 0x93 - "Qi ", // 0x94 - "Yong ", // 0x95 - "Shan ", // 0x96 - "Han ", // 0x97 - "Yu ", // 0x98 - "Mang ", // 0x99 - "Ru ", // 0x9a - "Qiong ", // 0x9b - "[?] ", // 0x9c - "Kuang ", // 0x9d - "Fu ", // 0x9e - "Kang ", // 0x9f - "Bin ", // 0xa0 - "Fang ", // 0xa1 - "Xing ", // 0xa2 - "Na ", // 0xa3 - "Xin ", // 0xa4 - "Shen ", // 0xa5 - "Bang ", // 0xa6 - "Yuan ", // 0xa7 - "Cun ", // 0xa8 - "Huo ", // 0xa9 - "Xie ", // 0xaa - "Bang ", // 0xab - "Wu ", // 0xac - "Ju ", // 0xad - "You ", // 0xae - "Han ", // 0xaf - "Tai ", // 0xb0 - "Qiu ", // 0xb1 - "Bi ", // 0xb2 - "Pei ", // 0xb3 - "Bing ", // 0xb4 - "Shao ", // 0xb5 - "Bei ", // 0xb6 - "Wa ", // 0xb7 - "Di ", // 0xb8 - "Zou ", // 0xb9 - "Ye ", // 0xba - "Lin ", // 0xbb - "Kuang ", // 0xbc - "Gui ", // 0xbd - "Zhu ", // 0xbe - "Shi ", // 0xbf - "Ku ", // 0xc0 - "Yu ", // 0xc1 - "Gai ", // 0xc2 - "Ge ", // 0xc3 - "Xi ", // 0xc4 - "Zhi ", // 0xc5 - "Ji ", // 0xc6 - "Xun ", // 0xc7 - "Hou ", // 0xc8 - "Xing ", // 0xc9 - "Jiao ", // 0xca - "Xi ", // 0xcb - "Gui ", // 0xcc - "Nuo ", // 0xcd - "Lang ", // 0xce - "Jia ", // 0xcf - "Kuai ", // 0xd0 - "Zheng ", // 0xd1 - "Otoko ", // 0xd2 - "Yun ", // 0xd3 - "Yan ", // 0xd4 - "Cheng ", // 0xd5 - "Dou ", // 0xd6 - "Chi ", // 0xd7 - "Lu ", // 0xd8 - "Fu ", // 0xd9 - "Wu ", // 0xda - "Fu ", // 0xdb - "Gao ", // 0xdc - "Hao ", // 0xdd - "Lang ", // 0xde - "Jia ", // 0xdf - "Geng ", // 0xe0 - "Jun ", // 0xe1 - "Ying ", // 0xe2 - "Bo ", // 0xe3 - "Xi ", // 0xe4 - "Bei ", // 0xe5 - "Li ", // 0xe6 - "Yun ", // 0xe7 - "Bu ", // 0xe8 - "Xiao ", // 0xe9 - "Qi ", // 0xea - "Pi ", // 0xeb - "Qing ", // 0xec - "Guo ", // 0xed - "Zhou ", // 0xee - "Tan ", // 0xef - "Zou ", // 0xf0 - "Ping ", // 0xf1 - "Lai ", // 0xf2 - "Ni ", // 0xf3 - "Chen ", // 0xf4 - "You ", // 0xf5 - "Bu ", // 0xf6 - "Xiang ", // 0xf7 - "Dan ", // 0xf8 - "Ju ", // 0xf9 - "Yong ", // 0xfa - "Qiao ", // 0xfb - "Yi ", // 0xfc - "Du ", // 0xfd - "Yan ", // 0xfe - "Mei ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x091.go b/vendor/github.com/mozillazg/go-unidecode/table/x091.go deleted file mode 100644 index 2af077c..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x091.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x091 = []string{ - "Ruo ", // 0x00 - "Bei ", // 0x01 - "E ", // 0x02 - "Yu ", // 0x03 - "Juan ", // 0x04 - "Yu ", // 0x05 - "Yun ", // 0x06 - "Hou ", // 0x07 - "Kui ", // 0x08 - "Xiang ", // 0x09 - "Xiang ", // 0x0a - "Sou ", // 0x0b - "Tang ", // 0x0c - "Ming ", // 0x0d - "Xi ", // 0x0e - "Ru ", // 0x0f - "Chu ", // 0x10 - "Zi ", // 0x11 - "Zou ", // 0x12 - "Ju ", // 0x13 - "Wu ", // 0x14 - "Xiang ", // 0x15 - "Yun ", // 0x16 - "Hao ", // 0x17 - "Yong ", // 0x18 - "Bi ", // 0x19 - "Mo ", // 0x1a - "Chao ", // 0x1b - "Fu ", // 0x1c - "Liao ", // 0x1d - "Yin ", // 0x1e - "Zhuan ", // 0x1f - "Hu ", // 0x20 - "Qiao ", // 0x21 - "Yan ", // 0x22 - "Zhang ", // 0x23 - "Fan ", // 0x24 - "Qiao ", // 0x25 - "Xu ", // 0x26 - "Deng ", // 0x27 - "Bi ", // 0x28 - "Xin ", // 0x29 - "Bi ", // 0x2a - "Ceng ", // 0x2b - "Wei ", // 0x2c - "Zheng ", // 0x2d - "Mao ", // 0x2e - "Shan ", // 0x2f - "Lin ", // 0x30 - "Po ", // 0x31 - "Dan ", // 0x32 - "Meng ", // 0x33 - "Ye ", // 0x34 - "Cao ", // 0x35 - "Kuai ", // 0x36 - "Feng ", // 0x37 - "Meng ", // 0x38 - "Zou ", // 0x39 - "Kuang ", // 0x3a - "Lian ", // 0x3b - "Zan ", // 0x3c - "Chan ", // 0x3d - "You ", // 0x3e - "Qi ", // 0x3f - "Yan ", // 0x40 - "Chan ", // 0x41 - "Zan ", // 0x42 - "Ling ", // 0x43 - "Huan ", // 0x44 - "Xi ", // 0x45 - "Feng ", // 0x46 - "Zan ", // 0x47 - "Li ", // 0x48 - "You ", // 0x49 - "Ding ", // 0x4a - "Qiu ", // 0x4b - "Zhuo ", // 0x4c - "Pei ", // 0x4d - "Zhou ", // 0x4e - "Yi ", // 0x4f - "Hang ", // 0x50 - "Yu ", // 0x51 - "Jiu ", // 0x52 - "Yan ", // 0x53 - "Zui ", // 0x54 - "Mao ", // 0x55 - "Dan ", // 0x56 - "Xu ", // 0x57 - "Tou ", // 0x58 - "Zhen ", // 0x59 - "Fen ", // 0x5a - "Sakenomoto ", // 0x5b - "[?] ", // 0x5c - "Yun ", // 0x5d - "Tai ", // 0x5e - "Tian ", // 0x5f - "Qia ", // 0x60 - "Tuo ", // 0x61 - "Zuo ", // 0x62 - "Han ", // 0x63 - "Gu ", // 0x64 - "Su ", // 0x65 - "Po ", // 0x66 - "Chou ", // 0x67 - "Zai ", // 0x68 - "Ming ", // 0x69 - "Luo ", // 0x6a - "Chuo ", // 0x6b - "Chou ", // 0x6c - "You ", // 0x6d - "Tong ", // 0x6e - "Zhi ", // 0x6f - "Xian ", // 0x70 - "Jiang ", // 0x71 - "Cheng ", // 0x72 - "Yin ", // 0x73 - "Tu ", // 0x74 - "Xiao ", // 0x75 - "Mei ", // 0x76 - "Ku ", // 0x77 - "Suan ", // 0x78 - "Lei ", // 0x79 - "Pu ", // 0x7a - "Zui ", // 0x7b - "Hai ", // 0x7c - "Yan ", // 0x7d - "Xi ", // 0x7e - "Niang ", // 0x7f - "Wei ", // 0x80 - "Lu ", // 0x81 - "Lan ", // 0x82 - "Yan ", // 0x83 - "Tao ", // 0x84 - "Pei ", // 0x85 - "Zhan ", // 0x86 - "Chun ", // 0x87 - "Tan ", // 0x88 - "Zui ", // 0x89 - "Chuo ", // 0x8a - "Cu ", // 0x8b - "Kun ", // 0x8c - "Ti ", // 0x8d - "Mian ", // 0x8e - "Du ", // 0x8f - "Hu ", // 0x90 - "Xu ", // 0x91 - "Xing ", // 0x92 - "Tan ", // 0x93 - "Jiu ", // 0x94 - "Chun ", // 0x95 - "Yun ", // 0x96 - "Po ", // 0x97 - "Ke ", // 0x98 - "Sou ", // 0x99 - "Mi ", // 0x9a - "Quan ", // 0x9b - "Chou ", // 0x9c - "Cuo ", // 0x9d - "Yun ", // 0x9e - "Yong ", // 0x9f - "Ang ", // 0xa0 - "Zha ", // 0xa1 - "Hai ", // 0xa2 - "Tang ", // 0xa3 - "Jiang ", // 0xa4 - "Piao ", // 0xa5 - "Shan ", // 0xa6 - "Yu ", // 0xa7 - "Li ", // 0xa8 - "Zao ", // 0xa9 - "Lao ", // 0xaa - "Yi ", // 0xab - "Jiang ", // 0xac - "Pu ", // 0xad - "Jiao ", // 0xae - "Xi ", // 0xaf - "Tan ", // 0xb0 - "Po ", // 0xb1 - "Nong ", // 0xb2 - "Yi ", // 0xb3 - "Li ", // 0xb4 - "Ju ", // 0xb5 - "Jiao ", // 0xb6 - "Yi ", // 0xb7 - "Niang ", // 0xb8 - "Ru ", // 0xb9 - "Xun ", // 0xba - "Chou ", // 0xbb - "Yan ", // 0xbc - "Ling ", // 0xbd - "Mi ", // 0xbe - "Mi ", // 0xbf - "Niang ", // 0xc0 - "Xin ", // 0xc1 - "Jiao ", // 0xc2 - "Xi ", // 0xc3 - "Mi ", // 0xc4 - "Yan ", // 0xc5 - "Bian ", // 0xc6 - "Cai ", // 0xc7 - "Shi ", // 0xc8 - "You ", // 0xc9 - "Shi ", // 0xca - "Shi ", // 0xcb - "Li ", // 0xcc - "Zhong ", // 0xcd - "Ye ", // 0xce - "Liang ", // 0xcf - "Li ", // 0xd0 - "Jin ", // 0xd1 - "Jin ", // 0xd2 - "Qiu ", // 0xd3 - "Yi ", // 0xd4 - "Diao ", // 0xd5 - "Dao ", // 0xd6 - "Zhao ", // 0xd7 - "Ding ", // 0xd8 - "Po ", // 0xd9 - "Qiu ", // 0xda - "He ", // 0xdb - "Fu ", // 0xdc - "Zhen ", // 0xdd - "Zhi ", // 0xde - "Ba ", // 0xdf - "Luan ", // 0xe0 - "Fu ", // 0xe1 - "Nai ", // 0xe2 - "Diao ", // 0xe3 - "Shan ", // 0xe4 - "Qiao ", // 0xe5 - "Kou ", // 0xe6 - "Chuan ", // 0xe7 - "Zi ", // 0xe8 - "Fan ", // 0xe9 - "Yu ", // 0xea - "Hua ", // 0xeb - "Han ", // 0xec - "Gong ", // 0xed - "Qi ", // 0xee - "Mang ", // 0xef - "Ri ", // 0xf0 - "Di ", // 0xf1 - "Si ", // 0xf2 - "Xi ", // 0xf3 - "Yi ", // 0xf4 - "Chai ", // 0xf5 - "Shi ", // 0xf6 - "Tu ", // 0xf7 - "Xi ", // 0xf8 - "Nu ", // 0xf9 - "Qian ", // 0xfa - "Ishiyumi ", // 0xfb - "Jian ", // 0xfc - "Pi ", // 0xfd - "Ye ", // 0xfe - "Yin ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x092.go b/vendor/github.com/mozillazg/go-unidecode/table/x092.go deleted file mode 100644 index 7bc0d27..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x092.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x092 = []string{ - "Ba ", // 0x00 - "Fang ", // 0x01 - "Chen ", // 0x02 - "Xing ", // 0x03 - "Tou ", // 0x04 - "Yue ", // 0x05 - "Yan ", // 0x06 - "Fu ", // 0x07 - "Pi ", // 0x08 - "Na ", // 0x09 - "Xin ", // 0x0a - "E ", // 0x0b - "Jue ", // 0x0c - "Dun ", // 0x0d - "Gou ", // 0x0e - "Yin ", // 0x0f - "Qian ", // 0x10 - "Ban ", // 0x11 - "Ji ", // 0x12 - "Ren ", // 0x13 - "Chao ", // 0x14 - "Niu ", // 0x15 - "Fen ", // 0x16 - "Yun ", // 0x17 - "Ji ", // 0x18 - "Qin ", // 0x19 - "Pi ", // 0x1a - "Guo ", // 0x1b - "Hong ", // 0x1c - "Yin ", // 0x1d - "Jun ", // 0x1e - "Shi ", // 0x1f - "Yi ", // 0x20 - "Zhong ", // 0x21 - "Nie ", // 0x22 - "Gai ", // 0x23 - "Ri ", // 0x24 - "Huo ", // 0x25 - "Tai ", // 0x26 - "Kang ", // 0x27 - "Habaki ", // 0x28 - "Irori ", // 0x29 - "Ngaak ", // 0x2a - "[?] ", // 0x2b - "Duo ", // 0x2c - "Zi ", // 0x2d - "Ni ", // 0x2e - "Tu ", // 0x2f - "Shi ", // 0x30 - "Min ", // 0x31 - "Gu ", // 0x32 - "E ", // 0x33 - "Ling ", // 0x34 - "Bing ", // 0x35 - "Yi ", // 0x36 - "Gu ", // 0x37 - "Ba ", // 0x38 - "Pi ", // 0x39 - "Yu ", // 0x3a - "Si ", // 0x3b - "Zuo ", // 0x3c - "Bu ", // 0x3d - "You ", // 0x3e - "Dian ", // 0x3f - "Jia ", // 0x40 - "Zhen ", // 0x41 - "Shi ", // 0x42 - "Shi ", // 0x43 - "Tie ", // 0x44 - "Ju ", // 0x45 - "Zhan ", // 0x46 - "Shi ", // 0x47 - "She ", // 0x48 - "Xuan ", // 0x49 - "Zhao ", // 0x4a - "Bao ", // 0x4b - "He ", // 0x4c - "Bi ", // 0x4d - "Sheng ", // 0x4e - "Chu ", // 0x4f - "Shi ", // 0x50 - "Bo ", // 0x51 - "Zhu ", // 0x52 - "Chi ", // 0x53 - "Za ", // 0x54 - "Po ", // 0x55 - "Tong ", // 0x56 - "Qian ", // 0x57 - "Fu ", // 0x58 - "Zhai ", // 0x59 - "Liu ", // 0x5a - "Qian ", // 0x5b - "Fu ", // 0x5c - "Li ", // 0x5d - "Yue ", // 0x5e - "Pi ", // 0x5f - "Yang ", // 0x60 - "Ban ", // 0x61 - "Bo ", // 0x62 - "Jie ", // 0x63 - "Gou ", // 0x64 - "Shu ", // 0x65 - "Zheng ", // 0x66 - "Mu ", // 0x67 - "Ni ", // 0x68 - "Nie ", // 0x69 - "Di ", // 0x6a - "Jia ", // 0x6b - "Mu ", // 0x6c - "Dan ", // 0x6d - "Shen ", // 0x6e - "Yi ", // 0x6f - "Si ", // 0x70 - "Kuang ", // 0x71 - "Ka ", // 0x72 - "Bei ", // 0x73 - "Jian ", // 0x74 - "Tong ", // 0x75 - "Xing ", // 0x76 - "Hong ", // 0x77 - "Jiao ", // 0x78 - "Chi ", // 0x79 - "Er ", // 0x7a - "Ge ", // 0x7b - "Bing ", // 0x7c - "Shi ", // 0x7d - "Mou ", // 0x7e - "Jia ", // 0x7f - "Yin ", // 0x80 - "Jun ", // 0x81 - "Zhou ", // 0x82 - "Chong ", // 0x83 - "Shang ", // 0x84 - "Tong ", // 0x85 - "Mo ", // 0x86 - "Lei ", // 0x87 - "Ji ", // 0x88 - "Yu ", // 0x89 - "Xu ", // 0x8a - "Ren ", // 0x8b - "Zun ", // 0x8c - "Zhi ", // 0x8d - "Qiong ", // 0x8e - "Shan ", // 0x8f - "Chi ", // 0x90 - "Xian ", // 0x91 - "Xing ", // 0x92 - "Quan ", // 0x93 - "Pi ", // 0x94 - "Tie ", // 0x95 - "Zhu ", // 0x96 - "Hou ", // 0x97 - "Ming ", // 0x98 - "Kua ", // 0x99 - "Yao ", // 0x9a - "Xian ", // 0x9b - "Xian ", // 0x9c - "Xiu ", // 0x9d - "Jun ", // 0x9e - "Cha ", // 0x9f - "Lao ", // 0xa0 - "Ji ", // 0xa1 - "Pi ", // 0xa2 - "Ru ", // 0xa3 - "Mi ", // 0xa4 - "Yi ", // 0xa5 - "Yin ", // 0xa6 - "Guang ", // 0xa7 - "An ", // 0xa8 - "Diou ", // 0xa9 - "You ", // 0xaa - "Se ", // 0xab - "Kao ", // 0xac - "Qian ", // 0xad - "Luan ", // 0xae - "Kasugai ", // 0xaf - "Ai ", // 0xb0 - "Diao ", // 0xb1 - "Han ", // 0xb2 - "Rui ", // 0xb3 - "Shi ", // 0xb4 - "Keng ", // 0xb5 - "Qiu ", // 0xb6 - "Xiao ", // 0xb7 - "Zhe ", // 0xb8 - "Xiu ", // 0xb9 - "Zang ", // 0xba - "Ti ", // 0xbb - "Cuo ", // 0xbc - "Gua ", // 0xbd - "Gong ", // 0xbe - "Zhong ", // 0xbf - "Dou ", // 0xc0 - "Lu ", // 0xc1 - "Mei ", // 0xc2 - "Lang ", // 0xc3 - "Wan ", // 0xc4 - "Xin ", // 0xc5 - "Yun ", // 0xc6 - "Bei ", // 0xc7 - "Wu ", // 0xc8 - "Su ", // 0xc9 - "Yu ", // 0xca - "Chan ", // 0xcb - "Ting ", // 0xcc - "Bo ", // 0xcd - "Han ", // 0xce - "Jia ", // 0xcf - "Hong ", // 0xd0 - "Cuan ", // 0xd1 - "Feng ", // 0xd2 - "Chan ", // 0xd3 - "Wan ", // 0xd4 - "Zhi ", // 0xd5 - "Si ", // 0xd6 - "Xuan ", // 0xd7 - "Wu ", // 0xd8 - "Wu ", // 0xd9 - "Tiao ", // 0xda - "Gong ", // 0xdb - "Zhuo ", // 0xdc - "Lue ", // 0xdd - "Xing ", // 0xde - "Qian ", // 0xdf - "Shen ", // 0xe0 - "Han ", // 0xe1 - "Lue ", // 0xe2 - "Xie ", // 0xe3 - "Chu ", // 0xe4 - "Zheng ", // 0xe5 - "Ju ", // 0xe6 - "Xian ", // 0xe7 - "Tie ", // 0xe8 - "Mang ", // 0xe9 - "Pu ", // 0xea - "Li ", // 0xeb - "Pan ", // 0xec - "Rui ", // 0xed - "Cheng ", // 0xee - "Gao ", // 0xef - "Li ", // 0xf0 - "Te ", // 0xf1 - "Pyeng ", // 0xf2 - "Zhu ", // 0xf3 - "[?] ", // 0xf4 - "Tu ", // 0xf5 - "Liu ", // 0xf6 - "Zui ", // 0xf7 - "Ju ", // 0xf8 - "Chang ", // 0xf9 - "Yuan ", // 0xfa - "Jian ", // 0xfb - "Gang ", // 0xfc - "Diao ", // 0xfd - "Tao ", // 0xfe - "Chang ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x093.go b/vendor/github.com/mozillazg/go-unidecode/table/x093.go deleted file mode 100644 index ac6fbc2..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x093.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x093 = []string{ - "Lun ", // 0x00 - "Kua ", // 0x01 - "Ling ", // 0x02 - "Bei ", // 0x03 - "Lu ", // 0x04 - "Li ", // 0x05 - "Qiang ", // 0x06 - "Pou ", // 0x07 - "Juan ", // 0x08 - "Min ", // 0x09 - "Zui ", // 0x0a - "Peng ", // 0x0b - "An ", // 0x0c - "Pi ", // 0x0d - "Xian ", // 0x0e - "Ya ", // 0x0f - "Zhui ", // 0x10 - "Lei ", // 0x11 - "A ", // 0x12 - "Kong ", // 0x13 - "Ta ", // 0x14 - "Kun ", // 0x15 - "Du ", // 0x16 - "Wei ", // 0x17 - "Chui ", // 0x18 - "Zi ", // 0x19 - "Zheng ", // 0x1a - "Ben ", // 0x1b - "Nie ", // 0x1c - "Cong ", // 0x1d - "Qun ", // 0x1e - "Tan ", // 0x1f - "Ding ", // 0x20 - "Qi ", // 0x21 - "Qian ", // 0x22 - "Zhuo ", // 0x23 - "Qi ", // 0x24 - "Yu ", // 0x25 - "Jin ", // 0x26 - "Guan ", // 0x27 - "Mao ", // 0x28 - "Chang ", // 0x29 - "Tian ", // 0x2a - "Xi ", // 0x2b - "Lian ", // 0x2c - "Tao ", // 0x2d - "Gu ", // 0x2e - "Cuo ", // 0x2f - "Shu ", // 0x30 - "Zhen ", // 0x31 - "Lu ", // 0x32 - "Meng ", // 0x33 - "Lu ", // 0x34 - "Hua ", // 0x35 - "Biao ", // 0x36 - "Ga ", // 0x37 - "Lai ", // 0x38 - "Ken ", // 0x39 - "Kazari ", // 0x3a - "Bu ", // 0x3b - "Nai ", // 0x3c - "Wan ", // 0x3d - "Zan ", // 0x3e - "[?] ", // 0x3f - "De ", // 0x40 - "Xian ", // 0x41 - "[?] ", // 0x42 - "Huo ", // 0x43 - "Liang ", // 0x44 - "[?] ", // 0x45 - "Men ", // 0x46 - "Kai ", // 0x47 - "Ying ", // 0x48 - "Di ", // 0x49 - "Lian ", // 0x4a - "Guo ", // 0x4b - "Xian ", // 0x4c - "Du ", // 0x4d - "Tu ", // 0x4e - "Wei ", // 0x4f - "Cong ", // 0x50 - "Fu ", // 0x51 - "Rou ", // 0x52 - "Ji ", // 0x53 - "E ", // 0x54 - "Rou ", // 0x55 - "Chen ", // 0x56 - "Ti ", // 0x57 - "Zha ", // 0x58 - "Hong ", // 0x59 - "Yang ", // 0x5a - "Duan ", // 0x5b - "Xia ", // 0x5c - "Yu ", // 0x5d - "Keng ", // 0x5e - "Xing ", // 0x5f - "Huang ", // 0x60 - "Wei ", // 0x61 - "Fu ", // 0x62 - "Zhao ", // 0x63 - "Cha ", // 0x64 - "Qie ", // 0x65 - "She ", // 0x66 - "Hong ", // 0x67 - "Kui ", // 0x68 - "Tian ", // 0x69 - "Mou ", // 0x6a - "Qiao ", // 0x6b - "Qiao ", // 0x6c - "Hou ", // 0x6d - "Tou ", // 0x6e - "Cong ", // 0x6f - "Huan ", // 0x70 - "Ye ", // 0x71 - "Min ", // 0x72 - "Jian ", // 0x73 - "Duan ", // 0x74 - "Jian ", // 0x75 - "Song ", // 0x76 - "Kui ", // 0x77 - "Hu ", // 0x78 - "Xuan ", // 0x79 - "Duo ", // 0x7a - "Jie ", // 0x7b - "Zhen ", // 0x7c - "Bian ", // 0x7d - "Zhong ", // 0x7e - "Zi ", // 0x7f - "Xiu ", // 0x80 - "Ye ", // 0x81 - "Mei ", // 0x82 - "Pai ", // 0x83 - "Ai ", // 0x84 - "Jie ", // 0x85 - "[?] ", // 0x86 - "Mei ", // 0x87 - "Chuo ", // 0x88 - "Ta ", // 0x89 - "Bang ", // 0x8a - "Xia ", // 0x8b - "Lian ", // 0x8c - "Suo ", // 0x8d - "Xi ", // 0x8e - "Liu ", // 0x8f - "Zu ", // 0x90 - "Ye ", // 0x91 - "Nou ", // 0x92 - "Weng ", // 0x93 - "Rong ", // 0x94 - "Tang ", // 0x95 - "Suo ", // 0x96 - "Qiang ", // 0x97 - "Ge ", // 0x98 - "Shuo ", // 0x99 - "Chui ", // 0x9a - "Bo ", // 0x9b - "Pan ", // 0x9c - "Sa ", // 0x9d - "Bi ", // 0x9e - "Sang ", // 0x9f - "Gang ", // 0xa0 - "Zi ", // 0xa1 - "Wu ", // 0xa2 - "Ying ", // 0xa3 - "Huang ", // 0xa4 - "Tiao ", // 0xa5 - "Liu ", // 0xa6 - "Kai ", // 0xa7 - "Sun ", // 0xa8 - "Sha ", // 0xa9 - "Sou ", // 0xaa - "Wan ", // 0xab - "Hao ", // 0xac - "Zhen ", // 0xad - "Zhen ", // 0xae - "Luo ", // 0xaf - "Yi ", // 0xb0 - "Yuan ", // 0xb1 - "Tang ", // 0xb2 - "Nie ", // 0xb3 - "Xi ", // 0xb4 - "Jia ", // 0xb5 - "Ge ", // 0xb6 - "Ma ", // 0xb7 - "Juan ", // 0xb8 - "Kasugai ", // 0xb9 - "Habaki ", // 0xba - "Suo ", // 0xbb - "[?] ", // 0xbc - "[?] ", // 0xbd - "[?] ", // 0xbe - "Na ", // 0xbf - "Lu ", // 0xc0 - "Suo ", // 0xc1 - "Ou ", // 0xc2 - "Zu ", // 0xc3 - "Tuan ", // 0xc4 - "Xiu ", // 0xc5 - "Guan ", // 0xc6 - "Xuan ", // 0xc7 - "Lian ", // 0xc8 - "Shou ", // 0xc9 - "Ao ", // 0xca - "Man ", // 0xcb - "Mo ", // 0xcc - "Luo ", // 0xcd - "Bi ", // 0xce - "Wei ", // 0xcf - "Liu ", // 0xd0 - "Di ", // 0xd1 - "Qiao ", // 0xd2 - "Cong ", // 0xd3 - "Yi ", // 0xd4 - "Lu ", // 0xd5 - "Ao ", // 0xd6 - "Keng ", // 0xd7 - "Qiang ", // 0xd8 - "Cui ", // 0xd9 - "Qi ", // 0xda - "Chang ", // 0xdb - "Tang ", // 0xdc - "Man ", // 0xdd - "Yong ", // 0xde - "Chan ", // 0xdf - "Feng ", // 0xe0 - "Jing ", // 0xe1 - "Biao ", // 0xe2 - "Shu ", // 0xe3 - "Lou ", // 0xe4 - "Xiu ", // 0xe5 - "Cong ", // 0xe6 - "Long ", // 0xe7 - "Zan ", // 0xe8 - "Jian ", // 0xe9 - "Cao ", // 0xea - "Li ", // 0xeb - "Xia ", // 0xec - "Xi ", // 0xed - "Kang ", // 0xee - "[?] ", // 0xef - "Beng ", // 0xf0 - "[?] ", // 0xf1 - "[?] ", // 0xf2 - "Zheng ", // 0xf3 - "Lu ", // 0xf4 - "Hua ", // 0xf5 - "Ji ", // 0xf6 - "Pu ", // 0xf7 - "Hui ", // 0xf8 - "Qiang ", // 0xf9 - "Po ", // 0xfa - "Lin ", // 0xfb - "Suo ", // 0xfc - "Xiu ", // 0xfd - "San ", // 0xfe - "Cheng ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x094.go b/vendor/github.com/mozillazg/go-unidecode/table/x094.go deleted file mode 100644 index 73cd4d7..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x094.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x094 = []string{ - "Kui ", // 0x00 - "Si ", // 0x01 - "Liu ", // 0x02 - "Nao ", // 0x03 - "Heng ", // 0x04 - "Pie ", // 0x05 - "Sui ", // 0x06 - "Fan ", // 0x07 - "Qiao ", // 0x08 - "Quan ", // 0x09 - "Yang ", // 0x0a - "Tang ", // 0x0b - "Xiang ", // 0x0c - "Jue ", // 0x0d - "Jiao ", // 0x0e - "Zun ", // 0x0f - "Liao ", // 0x10 - "Jie ", // 0x11 - "Lao ", // 0x12 - "Dui ", // 0x13 - "Tan ", // 0x14 - "Zan ", // 0x15 - "Ji ", // 0x16 - "Jian ", // 0x17 - "Zhong ", // 0x18 - "Deng ", // 0x19 - "Ya ", // 0x1a - "Ying ", // 0x1b - "Dui ", // 0x1c - "Jue ", // 0x1d - "Nou ", // 0x1e - "Ti ", // 0x1f - "Pu ", // 0x20 - "Tie ", // 0x21 - "[?] ", // 0x22 - "[?] ", // 0x23 - "Ding ", // 0x24 - "Shan ", // 0x25 - "Kai ", // 0x26 - "Jian ", // 0x27 - "Fei ", // 0x28 - "Sui ", // 0x29 - "Lu ", // 0x2a - "Juan ", // 0x2b - "Hui ", // 0x2c - "Yu ", // 0x2d - "Lian ", // 0x2e - "Zhuo ", // 0x2f - "Qiao ", // 0x30 - "Qian ", // 0x31 - "Zhuo ", // 0x32 - "Lei ", // 0x33 - "Bi ", // 0x34 - "Tie ", // 0x35 - "Huan ", // 0x36 - "Ye ", // 0x37 - "Duo ", // 0x38 - "Guo ", // 0x39 - "Dang ", // 0x3a - "Ju ", // 0x3b - "Fen ", // 0x3c - "Da ", // 0x3d - "Bei ", // 0x3e - "Yi ", // 0x3f - "Ai ", // 0x40 - "Zong ", // 0x41 - "Xun ", // 0x42 - "Diao ", // 0x43 - "Zhu ", // 0x44 - "Heng ", // 0x45 - "Zhui ", // 0x46 - "Ji ", // 0x47 - "Nie ", // 0x48 - "Ta ", // 0x49 - "Huo ", // 0x4a - "Qing ", // 0x4b - "Bin ", // 0x4c - "Ying ", // 0x4d - "Kui ", // 0x4e - "Ning ", // 0x4f - "Xu ", // 0x50 - "Jian ", // 0x51 - "Jian ", // 0x52 - "Yari ", // 0x53 - "Cha ", // 0x54 - "Zhi ", // 0x55 - "Mie ", // 0x56 - "Li ", // 0x57 - "Lei ", // 0x58 - "Ji ", // 0x59 - "Zuan ", // 0x5a - "Kuang ", // 0x5b - "Shang ", // 0x5c - "Peng ", // 0x5d - "La ", // 0x5e - "Du ", // 0x5f - "Shuo ", // 0x60 - "Chuo ", // 0x61 - "Lu ", // 0x62 - "Biao ", // 0x63 - "Bao ", // 0x64 - "Lu ", // 0x65 - "[?] ", // 0x66 - "[?] ", // 0x67 - "Long ", // 0x68 - "E ", // 0x69 - "Lu ", // 0x6a - "Xin ", // 0x6b - "Jian ", // 0x6c - "Lan ", // 0x6d - "Bo ", // 0x6e - "Jian ", // 0x6f - "Yao ", // 0x70 - "Chan ", // 0x71 - "Xiang ", // 0x72 - "Jian ", // 0x73 - "Xi ", // 0x74 - "Guan ", // 0x75 - "Cang ", // 0x76 - "Nie ", // 0x77 - "Lei ", // 0x78 - "Cuan ", // 0x79 - "Qu ", // 0x7a - "Pan ", // 0x7b - "Luo ", // 0x7c - "Zuan ", // 0x7d - "Luan ", // 0x7e - "Zao ", // 0x7f - "Nie ", // 0x80 - "Jue ", // 0x81 - "Tang ", // 0x82 - "Shu ", // 0x83 - "Lan ", // 0x84 - "Jin ", // 0x85 - "Qiu ", // 0x86 - "Yi ", // 0x87 - "Zhen ", // 0x88 - "Ding ", // 0x89 - "Zhao ", // 0x8a - "Po ", // 0x8b - "Diao ", // 0x8c - "Tu ", // 0x8d - "Qian ", // 0x8e - "Chuan ", // 0x8f - "Shan ", // 0x90 - "Ji ", // 0x91 - "Fan ", // 0x92 - "Diao ", // 0x93 - "Men ", // 0x94 - "Nu ", // 0x95 - "Xi ", // 0x96 - "Chai ", // 0x97 - "Xing ", // 0x98 - "Gai ", // 0x99 - "Bu ", // 0x9a - "Tai ", // 0x9b - "Ju ", // 0x9c - "Dun ", // 0x9d - "Chao ", // 0x9e - "Zhong ", // 0x9f - "Na ", // 0xa0 - "Bei ", // 0xa1 - "Gang ", // 0xa2 - "Ban ", // 0xa3 - "Qian ", // 0xa4 - "Yao ", // 0xa5 - "Qin ", // 0xa6 - "Jun ", // 0xa7 - "Wu ", // 0xa8 - "Gou ", // 0xa9 - "Kang ", // 0xaa - "Fang ", // 0xab - "Huo ", // 0xac - "Tou ", // 0xad - "Niu ", // 0xae - "Ba ", // 0xaf - "Yu ", // 0xb0 - "Qian ", // 0xb1 - "Zheng ", // 0xb2 - "Qian ", // 0xb3 - "Gu ", // 0xb4 - "Bo ", // 0xb5 - "E ", // 0xb6 - "Po ", // 0xb7 - "Bu ", // 0xb8 - "Ba ", // 0xb9 - "Yue ", // 0xba - "Zuan ", // 0xbb - "Mu ", // 0xbc - "Dan ", // 0xbd - "Jia ", // 0xbe - "Dian ", // 0xbf - "You ", // 0xc0 - "Tie ", // 0xc1 - "Bo ", // 0xc2 - "Ling ", // 0xc3 - "Shuo ", // 0xc4 - "Qian ", // 0xc5 - "Liu ", // 0xc6 - "Bao ", // 0xc7 - "Shi ", // 0xc8 - "Xuan ", // 0xc9 - "She ", // 0xca - "Bi ", // 0xcb - "Ni ", // 0xcc - "Pi ", // 0xcd - "Duo ", // 0xce - "Xing ", // 0xcf - "Kao ", // 0xd0 - "Lao ", // 0xd1 - "Er ", // 0xd2 - "Mang ", // 0xd3 - "Ya ", // 0xd4 - "You ", // 0xd5 - "Cheng ", // 0xd6 - "Jia ", // 0xd7 - "Ye ", // 0xd8 - "Nao ", // 0xd9 - "Zhi ", // 0xda - "Dang ", // 0xdb - "Tong ", // 0xdc - "Lu ", // 0xdd - "Diao ", // 0xde - "Yin ", // 0xdf - "Kai ", // 0xe0 - "Zha ", // 0xe1 - "Zhu ", // 0xe2 - "Xian ", // 0xe3 - "Ting ", // 0xe4 - "Diu ", // 0xe5 - "Xian ", // 0xe6 - "Hua ", // 0xe7 - "Quan ", // 0xe8 - "Sha ", // 0xe9 - "Jia ", // 0xea - "Yao ", // 0xeb - "Ge ", // 0xec - "Ming ", // 0xed - "Zheng ", // 0xee - "Se ", // 0xef - "Jiao ", // 0xf0 - "Yi ", // 0xf1 - "Chan ", // 0xf2 - "Chong ", // 0xf3 - "Tang ", // 0xf4 - "An ", // 0xf5 - "Yin ", // 0xf6 - "Ru ", // 0xf7 - "Zhu ", // 0xf8 - "Lao ", // 0xf9 - "Pu ", // 0xfa - "Wu ", // 0xfb - "Lai ", // 0xfc - "Te ", // 0xfd - "Lian ", // 0xfe - "Keng ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x095.go b/vendor/github.com/mozillazg/go-unidecode/table/x095.go deleted file mode 100644 index 0f72354..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x095.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x095 = []string{ - "Xiao ", // 0x00 - "Suo ", // 0x01 - "Li ", // 0x02 - "Zheng ", // 0x03 - "Chu ", // 0x04 - "Guo ", // 0x05 - "Gao ", // 0x06 - "Tie ", // 0x07 - "Xiu ", // 0x08 - "Cuo ", // 0x09 - "Lue ", // 0x0a - "Feng ", // 0x0b - "Xin ", // 0x0c - "Liu ", // 0x0d - "Kai ", // 0x0e - "Jian ", // 0x0f - "Rui ", // 0x10 - "Ti ", // 0x11 - "Lang ", // 0x12 - "Qian ", // 0x13 - "Ju ", // 0x14 - "A ", // 0x15 - "Qiang ", // 0x16 - "Duo ", // 0x17 - "Tian ", // 0x18 - "Cuo ", // 0x19 - "Mao ", // 0x1a - "Ben ", // 0x1b - "Qi ", // 0x1c - "De ", // 0x1d - "Kua ", // 0x1e - "Kun ", // 0x1f - "Chang ", // 0x20 - "Xi ", // 0x21 - "Gu ", // 0x22 - "Luo ", // 0x23 - "Chui ", // 0x24 - "Zhui ", // 0x25 - "Jin ", // 0x26 - "Zhi ", // 0x27 - "Xian ", // 0x28 - "Juan ", // 0x29 - "Huo ", // 0x2a - "Pou ", // 0x2b - "Tan ", // 0x2c - "Ding ", // 0x2d - "Jian ", // 0x2e - "Ju ", // 0x2f - "Meng ", // 0x30 - "Zi ", // 0x31 - "Qie ", // 0x32 - "Ying ", // 0x33 - "Kai ", // 0x34 - "Qiang ", // 0x35 - "Song ", // 0x36 - "E ", // 0x37 - "Cha ", // 0x38 - "Qiao ", // 0x39 - "Zhong ", // 0x3a - "Duan ", // 0x3b - "Sou ", // 0x3c - "Huang ", // 0x3d - "Huan ", // 0x3e - "Ai ", // 0x3f - "Du ", // 0x40 - "Mei ", // 0x41 - "Lou ", // 0x42 - "Zi ", // 0x43 - "Fei ", // 0x44 - "Mei ", // 0x45 - "Mo ", // 0x46 - "Zhen ", // 0x47 - "Bo ", // 0x48 - "Ge ", // 0x49 - "Nie ", // 0x4a - "Tang ", // 0x4b - "Juan ", // 0x4c - "Nie ", // 0x4d - "Na ", // 0x4e - "Liu ", // 0x4f - "Hao ", // 0x50 - "Bang ", // 0x51 - "Yi ", // 0x52 - "Jia ", // 0x53 - "Bin ", // 0x54 - "Rong ", // 0x55 - "Biao ", // 0x56 - "Tang ", // 0x57 - "Man ", // 0x58 - "Luo ", // 0x59 - "Beng ", // 0x5a - "Yong ", // 0x5b - "Jing ", // 0x5c - "Di ", // 0x5d - "Zu ", // 0x5e - "Xuan ", // 0x5f - "Liu ", // 0x60 - "Tan ", // 0x61 - "Jue ", // 0x62 - "Liao ", // 0x63 - "Pu ", // 0x64 - "Lu ", // 0x65 - "Dui ", // 0x66 - "Lan ", // 0x67 - "Pu ", // 0x68 - "Cuan ", // 0x69 - "Qiang ", // 0x6a - "Deng ", // 0x6b - "Huo ", // 0x6c - "Lei ", // 0x6d - "Huan ", // 0x6e - "Zhuo ", // 0x6f - "Lian ", // 0x70 - "Yi ", // 0x71 - "Cha ", // 0x72 - "Biao ", // 0x73 - "La ", // 0x74 - "Chan ", // 0x75 - "Xiang ", // 0x76 - "Chang ", // 0x77 - "Chang ", // 0x78 - "Jiu ", // 0x79 - "Ao ", // 0x7a - "Die ", // 0x7b - "Qu ", // 0x7c - "Liao ", // 0x7d - "Mi ", // 0x7e - "Chang ", // 0x7f - "Men ", // 0x80 - "Ma ", // 0x81 - "Shuan ", // 0x82 - "Shan ", // 0x83 - "Huo ", // 0x84 - "Men ", // 0x85 - "Yan ", // 0x86 - "Bi ", // 0x87 - "Han ", // 0x88 - "Bi ", // 0x89 - "San ", // 0x8a - "Kai ", // 0x8b - "Kang ", // 0x8c - "Beng ", // 0x8d - "Hong ", // 0x8e - "Run ", // 0x8f - "San ", // 0x90 - "Xian ", // 0x91 - "Xian ", // 0x92 - "Jian ", // 0x93 - "Min ", // 0x94 - "Xia ", // 0x95 - "Yuru ", // 0x96 - "Dou ", // 0x97 - "Zha ", // 0x98 - "Nao ", // 0x99 - "Jian ", // 0x9a - "Peng ", // 0x9b - "Xia ", // 0x9c - "Ling ", // 0x9d - "Bian ", // 0x9e - "Bi ", // 0x9f - "Run ", // 0xa0 - "He ", // 0xa1 - "Guan ", // 0xa2 - "Ge ", // 0xa3 - "Ge ", // 0xa4 - "Fa ", // 0xa5 - "Chu ", // 0xa6 - "Hong ", // 0xa7 - "Gui ", // 0xa8 - "Min ", // 0xa9 - "Se ", // 0xaa - "Kun ", // 0xab - "Lang ", // 0xac - "Lu ", // 0xad - "Ting ", // 0xae - "Sha ", // 0xaf - "Ju ", // 0xb0 - "Yue ", // 0xb1 - "Yue ", // 0xb2 - "Chan ", // 0xb3 - "Qu ", // 0xb4 - "Lin ", // 0xb5 - "Chang ", // 0xb6 - "Shai ", // 0xb7 - "Kun ", // 0xb8 - "Yan ", // 0xb9 - "Min ", // 0xba - "Yan ", // 0xbb - "E ", // 0xbc - "Hun ", // 0xbd - "Yu ", // 0xbe - "Wen ", // 0xbf - "Xiang ", // 0xc0 - "Bao ", // 0xc1 - "Xiang ", // 0xc2 - "Qu ", // 0xc3 - "Yao ", // 0xc4 - "Wen ", // 0xc5 - "Ban ", // 0xc6 - "An ", // 0xc7 - "Wei ", // 0xc8 - "Yin ", // 0xc9 - "Kuo ", // 0xca - "Que ", // 0xcb - "Lan ", // 0xcc - "Du ", // 0xcd - "[?] ", // 0xce - "Phwung ", // 0xcf - "Tian ", // 0xd0 - "Nie ", // 0xd1 - "Ta ", // 0xd2 - "Kai ", // 0xd3 - "He ", // 0xd4 - "Que ", // 0xd5 - "Chuang ", // 0xd6 - "Guan ", // 0xd7 - "Dou ", // 0xd8 - "Qi ", // 0xd9 - "Kui ", // 0xda - "Tang ", // 0xdb - "Guan ", // 0xdc - "Piao ", // 0xdd - "Kan ", // 0xde - "Xi ", // 0xdf - "Hui ", // 0xe0 - "Chan ", // 0xe1 - "Pi ", // 0xe2 - "Dang ", // 0xe3 - "Huan ", // 0xe4 - "Ta ", // 0xe5 - "Wen ", // 0xe6 - "[?] ", // 0xe7 - "Men ", // 0xe8 - "Shuan ", // 0xe9 - "Shan ", // 0xea - "Yan ", // 0xeb - "Han ", // 0xec - "Bi ", // 0xed - "Wen ", // 0xee - "Chuang ", // 0xef - "Run ", // 0xf0 - "Wei ", // 0xf1 - "Xian ", // 0xf2 - "Hong ", // 0xf3 - "Jian ", // 0xf4 - "Min ", // 0xf5 - "Kang ", // 0xf6 - "Men ", // 0xf7 - "Zha ", // 0xf8 - "Nao ", // 0xf9 - "Gui ", // 0xfa - "Wen ", // 0xfb - "Ta ", // 0xfc - "Min ", // 0xfd - "Lu ", // 0xfe - "Kai ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x096.go b/vendor/github.com/mozillazg/go-unidecode/table/x096.go deleted file mode 100644 index 390de91..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x096.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x096 = []string{ - "Fa ", // 0x00 - "Ge ", // 0x01 - "He ", // 0x02 - "Kun ", // 0x03 - "Jiu ", // 0x04 - "Yue ", // 0x05 - "Lang ", // 0x06 - "Du ", // 0x07 - "Yu ", // 0x08 - "Yan ", // 0x09 - "Chang ", // 0x0a - "Xi ", // 0x0b - "Wen ", // 0x0c - "Hun ", // 0x0d - "Yan ", // 0x0e - "E ", // 0x0f - "Chan ", // 0x10 - "Lan ", // 0x11 - "Qu ", // 0x12 - "Hui ", // 0x13 - "Kuo ", // 0x14 - "Que ", // 0x15 - "Ge ", // 0x16 - "Tian ", // 0x17 - "Ta ", // 0x18 - "Que ", // 0x19 - "Kan ", // 0x1a - "Huan ", // 0x1b - "Fu ", // 0x1c - "Fu ", // 0x1d - "Le ", // 0x1e - "Dui ", // 0x1f - "Xin ", // 0x20 - "Qian ", // 0x21 - "Wu ", // 0x22 - "Yi ", // 0x23 - "Tuo ", // 0x24 - "Yin ", // 0x25 - "Yang ", // 0x26 - "Dou ", // 0x27 - "E ", // 0x28 - "Sheng ", // 0x29 - "Ban ", // 0x2a - "Pei ", // 0x2b - "Keng ", // 0x2c - "Yun ", // 0x2d - "Ruan ", // 0x2e - "Zhi ", // 0x2f - "Pi ", // 0x30 - "Jing ", // 0x31 - "Fang ", // 0x32 - "Yang ", // 0x33 - "Yin ", // 0x34 - "Zhen ", // 0x35 - "Jie ", // 0x36 - "Cheng ", // 0x37 - "E ", // 0x38 - "Qu ", // 0x39 - "Di ", // 0x3a - "Zu ", // 0x3b - "Zuo ", // 0x3c - "Dian ", // 0x3d - "Ling ", // 0x3e - "A ", // 0x3f - "Tuo ", // 0x40 - "Tuo ", // 0x41 - "Po ", // 0x42 - "Bing ", // 0x43 - "Fu ", // 0x44 - "Ji ", // 0x45 - "Lu ", // 0x46 - "Long ", // 0x47 - "Chen ", // 0x48 - "Xing ", // 0x49 - "Duo ", // 0x4a - "Lou ", // 0x4b - "Mo ", // 0x4c - "Jiang ", // 0x4d - "Shu ", // 0x4e - "Duo ", // 0x4f - "Xian ", // 0x50 - "Er ", // 0x51 - "Gui ", // 0x52 - "Yu ", // 0x53 - "Gai ", // 0x54 - "Shan ", // 0x55 - "Xun ", // 0x56 - "Qiao ", // 0x57 - "Xing ", // 0x58 - "Chun ", // 0x59 - "Fu ", // 0x5a - "Bi ", // 0x5b - "Xia ", // 0x5c - "Shan ", // 0x5d - "Sheng ", // 0x5e - "Zhi ", // 0x5f - "Pu ", // 0x60 - "Dou ", // 0x61 - "Yuan ", // 0x62 - "Zhen ", // 0x63 - "Chu ", // 0x64 - "Xian ", // 0x65 - "Tou ", // 0x66 - "Nie ", // 0x67 - "Yun ", // 0x68 - "Xian ", // 0x69 - "Pei ", // 0x6a - "Pei ", // 0x6b - "Zou ", // 0x6c - "Yi ", // 0x6d - "Dui ", // 0x6e - "Lun ", // 0x6f - "Yin ", // 0x70 - "Ju ", // 0x71 - "Chui ", // 0x72 - "Chen ", // 0x73 - "Pi ", // 0x74 - "Ling ", // 0x75 - "Tao ", // 0x76 - "Xian ", // 0x77 - "Lu ", // 0x78 - "Sheng ", // 0x79 - "Xian ", // 0x7a - "Yin ", // 0x7b - "Zhu ", // 0x7c - "Yang ", // 0x7d - "Reng ", // 0x7e - "Shan ", // 0x7f - "Chong ", // 0x80 - "Yan ", // 0x81 - "Yin ", // 0x82 - "Yu ", // 0x83 - "Ti ", // 0x84 - "Yu ", // 0x85 - "Long ", // 0x86 - "Wei ", // 0x87 - "Wei ", // 0x88 - "Nie ", // 0x89 - "Dui ", // 0x8a - "Sui ", // 0x8b - "An ", // 0x8c - "Huang ", // 0x8d - "Jie ", // 0x8e - "Sui ", // 0x8f - "Yin ", // 0x90 - "Gai ", // 0x91 - "Yan ", // 0x92 - "Hui ", // 0x93 - "Ge ", // 0x94 - "Yun ", // 0x95 - "Wu ", // 0x96 - "Wei ", // 0x97 - "Ai ", // 0x98 - "Xi ", // 0x99 - "Tang ", // 0x9a - "Ji ", // 0x9b - "Zhang ", // 0x9c - "Dao ", // 0x9d - "Ao ", // 0x9e - "Xi ", // 0x9f - "Yin ", // 0xa0 - "[?] ", // 0xa1 - "Rao ", // 0xa2 - "Lin ", // 0xa3 - "Tui ", // 0xa4 - "Deng ", // 0xa5 - "Pi ", // 0xa6 - "Sui ", // 0xa7 - "Sui ", // 0xa8 - "Yu ", // 0xa9 - "Xian ", // 0xaa - "Fen ", // 0xab - "Ni ", // 0xac - "Er ", // 0xad - "Ji ", // 0xae - "Dao ", // 0xaf - "Xi ", // 0xb0 - "Yin ", // 0xb1 - "E ", // 0xb2 - "Hui ", // 0xb3 - "Long ", // 0xb4 - "Xi ", // 0xb5 - "Li ", // 0xb6 - "Li ", // 0xb7 - "Li ", // 0xb8 - "Zhui ", // 0xb9 - "He ", // 0xba - "Zhi ", // 0xbb - "Zhun ", // 0xbc - "Jun ", // 0xbd - "Nan ", // 0xbe - "Yi ", // 0xbf - "Que ", // 0xc0 - "Yan ", // 0xc1 - "Qian ", // 0xc2 - "Ya ", // 0xc3 - "Xiong ", // 0xc4 - "Ya ", // 0xc5 - "Ji ", // 0xc6 - "Gu ", // 0xc7 - "Huan ", // 0xc8 - "Zhi ", // 0xc9 - "Gou ", // 0xca - "Jun ", // 0xcb - "Ci ", // 0xcc - "Yong ", // 0xcd - "Ju ", // 0xce - "Chu ", // 0xcf - "Hu ", // 0xd0 - "Za ", // 0xd1 - "Luo ", // 0xd2 - "Yu ", // 0xd3 - "Chou ", // 0xd4 - "Diao ", // 0xd5 - "Sui ", // 0xd6 - "Han ", // 0xd7 - "Huo ", // 0xd8 - "Shuang ", // 0xd9 - "Guan ", // 0xda - "Chu ", // 0xdb - "Za ", // 0xdc - "Yong ", // 0xdd - "Ji ", // 0xde - "Xi ", // 0xdf - "Chou ", // 0xe0 - "Liu ", // 0xe1 - "Li ", // 0xe2 - "Nan ", // 0xe3 - "Xue ", // 0xe4 - "Za ", // 0xe5 - "Ji ", // 0xe6 - "Ji ", // 0xe7 - "Yu ", // 0xe8 - "Yu ", // 0xe9 - "Xue ", // 0xea - "Na ", // 0xeb - "Fou ", // 0xec - "Se ", // 0xed - "Mu ", // 0xee - "Wen ", // 0xef - "Fen ", // 0xf0 - "Pang ", // 0xf1 - "Yun ", // 0xf2 - "Li ", // 0xf3 - "Li ", // 0xf4 - "Ang ", // 0xf5 - "Ling ", // 0xf6 - "Lei ", // 0xf7 - "An ", // 0xf8 - "Bao ", // 0xf9 - "Meng ", // 0xfa - "Dian ", // 0xfb - "Dang ", // 0xfc - "Xing ", // 0xfd - "Wu ", // 0xfe - "Zhao ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x097.go b/vendor/github.com/mozillazg/go-unidecode/table/x097.go deleted file mode 100644 index 3025aff..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x097.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x097 = []string{ - "Xu ", // 0x00 - "Ji ", // 0x01 - "Mu ", // 0x02 - "Chen ", // 0x03 - "Xiao ", // 0x04 - "Zha ", // 0x05 - "Ting ", // 0x06 - "Zhen ", // 0x07 - "Pei ", // 0x08 - "Mei ", // 0x09 - "Ling ", // 0x0a - "Qi ", // 0x0b - "Chou ", // 0x0c - "Huo ", // 0x0d - "Sha ", // 0x0e - "Fei ", // 0x0f - "Weng ", // 0x10 - "Zhan ", // 0x11 - "Yin ", // 0x12 - "Ni ", // 0x13 - "Chou ", // 0x14 - "Tun ", // 0x15 - "Lin ", // 0x16 - "[?] ", // 0x17 - "Dong ", // 0x18 - "Ying ", // 0x19 - "Wu ", // 0x1a - "Ling ", // 0x1b - "Shuang ", // 0x1c - "Ling ", // 0x1d - "Xia ", // 0x1e - "Hong ", // 0x1f - "Yin ", // 0x20 - "Mo ", // 0x21 - "Mai ", // 0x22 - "Yun ", // 0x23 - "Liu ", // 0x24 - "Meng ", // 0x25 - "Bin ", // 0x26 - "Wu ", // 0x27 - "Wei ", // 0x28 - "Huo ", // 0x29 - "Yin ", // 0x2a - "Xi ", // 0x2b - "Yi ", // 0x2c - "Ai ", // 0x2d - "Dan ", // 0x2e - "Deng ", // 0x2f - "Xian ", // 0x30 - "Yu ", // 0x31 - "Lu ", // 0x32 - "Long ", // 0x33 - "Dai ", // 0x34 - "Ji ", // 0x35 - "Pang ", // 0x36 - "Yang ", // 0x37 - "Ba ", // 0x38 - "Pi ", // 0x39 - "Wei ", // 0x3a - "[?] ", // 0x3b - "Xi ", // 0x3c - "Ji ", // 0x3d - "Mai ", // 0x3e - "Meng ", // 0x3f - "Meng ", // 0x40 - "Lei ", // 0x41 - "Li ", // 0x42 - "Huo ", // 0x43 - "Ai ", // 0x44 - "Fei ", // 0x45 - "Dai ", // 0x46 - "Long ", // 0x47 - "Ling ", // 0x48 - "Ai ", // 0x49 - "Feng ", // 0x4a - "Li ", // 0x4b - "Bao ", // 0x4c - "[?] ", // 0x4d - "He ", // 0x4e - "He ", // 0x4f - "Bing ", // 0x50 - "Qing ", // 0x51 - "Qing ", // 0x52 - "Jing ", // 0x53 - "Tian ", // 0x54 - "Zhen ", // 0x55 - "Jing ", // 0x56 - "Cheng ", // 0x57 - "Qing ", // 0x58 - "Jing ", // 0x59 - "Jing ", // 0x5a - "Dian ", // 0x5b - "Jing ", // 0x5c - "Tian ", // 0x5d - "Fei ", // 0x5e - "Fei ", // 0x5f - "Kao ", // 0x60 - "Mi ", // 0x61 - "Mian ", // 0x62 - "Mian ", // 0x63 - "Pao ", // 0x64 - "Ye ", // 0x65 - "Tian ", // 0x66 - "Hui ", // 0x67 - "Ye ", // 0x68 - "Ge ", // 0x69 - "Ding ", // 0x6a - "Cha ", // 0x6b - "Jian ", // 0x6c - "Ren ", // 0x6d - "Di ", // 0x6e - "Du ", // 0x6f - "Wu ", // 0x70 - "Ren ", // 0x71 - "Qin ", // 0x72 - "Jin ", // 0x73 - "Xue ", // 0x74 - "Niu ", // 0x75 - "Ba ", // 0x76 - "Yin ", // 0x77 - "Sa ", // 0x78 - "Na ", // 0x79 - "Mo ", // 0x7a - "Zu ", // 0x7b - "Da ", // 0x7c - "Ban ", // 0x7d - "Yi ", // 0x7e - "Yao ", // 0x7f - "Tao ", // 0x80 - "Tuo ", // 0x81 - "Jia ", // 0x82 - "Hong ", // 0x83 - "Pao ", // 0x84 - "Yang ", // 0x85 - "Tomo ", // 0x86 - "Yin ", // 0x87 - "Jia ", // 0x88 - "Tao ", // 0x89 - "Ji ", // 0x8a - "Xie ", // 0x8b - "An ", // 0x8c - "An ", // 0x8d - "Hen ", // 0x8e - "Gong ", // 0x8f - "Kohaze ", // 0x90 - "Da ", // 0x91 - "Qiao ", // 0x92 - "Ting ", // 0x93 - "Wan ", // 0x94 - "Ying ", // 0x95 - "Sui ", // 0x96 - "Tiao ", // 0x97 - "Qiao ", // 0x98 - "Xuan ", // 0x99 - "Kong ", // 0x9a - "Beng ", // 0x9b - "Ta ", // 0x9c - "Zhang ", // 0x9d - "Bing ", // 0x9e - "Kuo ", // 0x9f - "Ju ", // 0xa0 - "La ", // 0xa1 - "Xie ", // 0xa2 - "Rou ", // 0xa3 - "Bang ", // 0xa4 - "Yi ", // 0xa5 - "Qiu ", // 0xa6 - "Qiu ", // 0xa7 - "He ", // 0xa8 - "Xiao ", // 0xa9 - "Mu ", // 0xaa - "Ju ", // 0xab - "Jian ", // 0xac - "Bian ", // 0xad - "Di ", // 0xae - "Jian ", // 0xaf - "On ", // 0xb0 - "Tao ", // 0xb1 - "Gou ", // 0xb2 - "Ta ", // 0xb3 - "Bei ", // 0xb4 - "Xie ", // 0xb5 - "Pan ", // 0xb6 - "Ge ", // 0xb7 - "Bi ", // 0xb8 - "Kuo ", // 0xb9 - "Tang ", // 0xba - "Lou ", // 0xbb - "Gui ", // 0xbc - "Qiao ", // 0xbd - "Xue ", // 0xbe - "Ji ", // 0xbf - "Jian ", // 0xc0 - "Jiang ", // 0xc1 - "Chan ", // 0xc2 - "Da ", // 0xc3 - "Huo ", // 0xc4 - "Xian ", // 0xc5 - "Qian ", // 0xc6 - "Du ", // 0xc7 - "Wa ", // 0xc8 - "Jian ", // 0xc9 - "Lan ", // 0xca - "Wei ", // 0xcb - "Ren ", // 0xcc - "Fu ", // 0xcd - "Mei ", // 0xce - "Juan ", // 0xcf - "Ge ", // 0xd0 - "Wei ", // 0xd1 - "Qiao ", // 0xd2 - "Han ", // 0xd3 - "Chang ", // 0xd4 - "[?] ", // 0xd5 - "Rou ", // 0xd6 - "Xun ", // 0xd7 - "She ", // 0xd8 - "Wei ", // 0xd9 - "Ge ", // 0xda - "Bei ", // 0xdb - "Tao ", // 0xdc - "Gou ", // 0xdd - "Yun ", // 0xde - "[?] ", // 0xdf - "Bi ", // 0xe0 - "Wei ", // 0xe1 - "Hui ", // 0xe2 - "Du ", // 0xe3 - "Wa ", // 0xe4 - "Du ", // 0xe5 - "Wei ", // 0xe6 - "Ren ", // 0xe7 - "Fu ", // 0xe8 - "Han ", // 0xe9 - "Wei ", // 0xea - "Yun ", // 0xeb - "Tao ", // 0xec - "Jiu ", // 0xed - "Jiu ", // 0xee - "Xian ", // 0xef - "Xie ", // 0xf0 - "Xian ", // 0xf1 - "Ji ", // 0xf2 - "Yin ", // 0xf3 - "Za ", // 0xf4 - "Yun ", // 0xf5 - "Shao ", // 0xf6 - "Le ", // 0xf7 - "Peng ", // 0xf8 - "Heng ", // 0xf9 - "Ying ", // 0xfa - "Yun ", // 0xfb - "Peng ", // 0xfc - "Yin ", // 0xfd - "Yin ", // 0xfe - "Xiang ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x098.go b/vendor/github.com/mozillazg/go-unidecode/table/x098.go deleted file mode 100644 index 1fd79c2..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x098.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x098 = []string{ - "Hu ", // 0x00 - "Ye ", // 0x01 - "Ding ", // 0x02 - "Qing ", // 0x03 - "Pan ", // 0x04 - "Xiang ", // 0x05 - "Shun ", // 0x06 - "Han ", // 0x07 - "Xu ", // 0x08 - "Yi ", // 0x09 - "Xu ", // 0x0a - "Gu ", // 0x0b - "Song ", // 0x0c - "Kui ", // 0x0d - "Qi ", // 0x0e - "Hang ", // 0x0f - "Yu ", // 0x10 - "Wan ", // 0x11 - "Ban ", // 0x12 - "Dun ", // 0x13 - "Di ", // 0x14 - "Dan ", // 0x15 - "Pan ", // 0x16 - "Po ", // 0x17 - "Ling ", // 0x18 - "Ce ", // 0x19 - "Jing ", // 0x1a - "Lei ", // 0x1b - "He ", // 0x1c - "Qiao ", // 0x1d - "E ", // 0x1e - "E ", // 0x1f - "Wei ", // 0x20 - "Jie ", // 0x21 - "Gua ", // 0x22 - "Shen ", // 0x23 - "Yi ", // 0x24 - "Shen ", // 0x25 - "Hai ", // 0x26 - "Dui ", // 0x27 - "Pian ", // 0x28 - "Ping ", // 0x29 - "Lei ", // 0x2a - "Fu ", // 0x2b - "Jia ", // 0x2c - "Tou ", // 0x2d - "Hui ", // 0x2e - "Kui ", // 0x2f - "Jia ", // 0x30 - "Le ", // 0x31 - "Tian ", // 0x32 - "Cheng ", // 0x33 - "Ying ", // 0x34 - "Jun ", // 0x35 - "Hu ", // 0x36 - "Han ", // 0x37 - "Jing ", // 0x38 - "Tui ", // 0x39 - "Tui ", // 0x3a - "Pin ", // 0x3b - "Lai ", // 0x3c - "Tui ", // 0x3d - "Zi ", // 0x3e - "Zi ", // 0x3f - "Chui ", // 0x40 - "Ding ", // 0x41 - "Lai ", // 0x42 - "Yan ", // 0x43 - "Han ", // 0x44 - "Jian ", // 0x45 - "Ke ", // 0x46 - "Cui ", // 0x47 - "Jiong ", // 0x48 - "Qin ", // 0x49 - "Yi ", // 0x4a - "Sai ", // 0x4b - "Ti ", // 0x4c - "E ", // 0x4d - "E ", // 0x4e - "Yan ", // 0x4f - "Hun ", // 0x50 - "Kan ", // 0x51 - "Yong ", // 0x52 - "Zhuan ", // 0x53 - "Yan ", // 0x54 - "Xian ", // 0x55 - "Xin ", // 0x56 - "Yi ", // 0x57 - "Yuan ", // 0x58 - "Sang ", // 0x59 - "Dian ", // 0x5a - "Dian ", // 0x5b - "Jiang ", // 0x5c - "Ku ", // 0x5d - "Lei ", // 0x5e - "Liao ", // 0x5f - "Piao ", // 0x60 - "Yi ", // 0x61 - "Man ", // 0x62 - "Qi ", // 0x63 - "Rao ", // 0x64 - "Hao ", // 0x65 - "Qiao ", // 0x66 - "Gu ", // 0x67 - "Xun ", // 0x68 - "Qian ", // 0x69 - "Hui ", // 0x6a - "Zhan ", // 0x6b - "Ru ", // 0x6c - "Hong ", // 0x6d - "Bin ", // 0x6e - "Xian ", // 0x6f - "Pin ", // 0x70 - "Lu ", // 0x71 - "Lan ", // 0x72 - "Nie ", // 0x73 - "Quan ", // 0x74 - "Ye ", // 0x75 - "Ding ", // 0x76 - "Qing ", // 0x77 - "Han ", // 0x78 - "Xiang ", // 0x79 - "Shun ", // 0x7a - "Xu ", // 0x7b - "Xu ", // 0x7c - "Wan ", // 0x7d - "Gu ", // 0x7e - "Dun ", // 0x7f - "Qi ", // 0x80 - "Ban ", // 0x81 - "Song ", // 0x82 - "Hang ", // 0x83 - "Yu ", // 0x84 - "Lu ", // 0x85 - "Ling ", // 0x86 - "Po ", // 0x87 - "Jing ", // 0x88 - "Jie ", // 0x89 - "Jia ", // 0x8a - "Tian ", // 0x8b - "Han ", // 0x8c - "Ying ", // 0x8d - "Jiong ", // 0x8e - "Hai ", // 0x8f - "Yi ", // 0x90 - "Pin ", // 0x91 - "Hui ", // 0x92 - "Tui ", // 0x93 - "Han ", // 0x94 - "Ying ", // 0x95 - "Ying ", // 0x96 - "Ke ", // 0x97 - "Ti ", // 0x98 - "Yong ", // 0x99 - "E ", // 0x9a - "Zhuan ", // 0x9b - "Yan ", // 0x9c - "E ", // 0x9d - "Nie ", // 0x9e - "Man ", // 0x9f - "Dian ", // 0xa0 - "Sang ", // 0xa1 - "Hao ", // 0xa2 - "Lei ", // 0xa3 - "Zhan ", // 0xa4 - "Ru ", // 0xa5 - "Pin ", // 0xa6 - "Quan ", // 0xa7 - "Feng ", // 0xa8 - "Biao ", // 0xa9 - "Oroshi ", // 0xaa - "Fu ", // 0xab - "Xia ", // 0xac - "Zhan ", // 0xad - "Biao ", // 0xae - "Sa ", // 0xaf - "Ba ", // 0xb0 - "Tai ", // 0xb1 - "Lie ", // 0xb2 - "Gua ", // 0xb3 - "Xuan ", // 0xb4 - "Shao ", // 0xb5 - "Ju ", // 0xb6 - "Bi ", // 0xb7 - "Si ", // 0xb8 - "Wei ", // 0xb9 - "Yang ", // 0xba - "Yao ", // 0xbb - "Sou ", // 0xbc - "Kai ", // 0xbd - "Sao ", // 0xbe - "Fan ", // 0xbf - "Liu ", // 0xc0 - "Xi ", // 0xc1 - "Liao ", // 0xc2 - "Piao ", // 0xc3 - "Piao ", // 0xc4 - "Liu ", // 0xc5 - "Biao ", // 0xc6 - "Biao ", // 0xc7 - "Biao ", // 0xc8 - "Liao ", // 0xc9 - "[?] ", // 0xca - "Se ", // 0xcb - "Feng ", // 0xcc - "Biao ", // 0xcd - "Feng ", // 0xce - "Yang ", // 0xcf - "Zhan ", // 0xd0 - "Biao ", // 0xd1 - "Sa ", // 0xd2 - "Ju ", // 0xd3 - "Si ", // 0xd4 - "Sou ", // 0xd5 - "Yao ", // 0xd6 - "Liu ", // 0xd7 - "Piao ", // 0xd8 - "Biao ", // 0xd9 - "Biao ", // 0xda - "Fei ", // 0xdb - "Fan ", // 0xdc - "Fei ", // 0xdd - "Fei ", // 0xde - "Shi ", // 0xdf - "Shi ", // 0xe0 - "Can ", // 0xe1 - "Ji ", // 0xe2 - "Ding ", // 0xe3 - "Si ", // 0xe4 - "Tuo ", // 0xe5 - "Zhan ", // 0xe6 - "Sun ", // 0xe7 - "Xiang ", // 0xe8 - "Tun ", // 0xe9 - "Ren ", // 0xea - "Yu ", // 0xeb - "Juan ", // 0xec - "Chi ", // 0xed - "Yin ", // 0xee - "Fan ", // 0xef - "Fan ", // 0xf0 - "Sun ", // 0xf1 - "Yin ", // 0xf2 - "Zhu ", // 0xf3 - "Yi ", // 0xf4 - "Zhai ", // 0xf5 - "Bi ", // 0xf6 - "Jie ", // 0xf7 - "Tao ", // 0xf8 - "Liu ", // 0xf9 - "Ci ", // 0xfa - "Tie ", // 0xfb - "Si ", // 0xfc - "Bao ", // 0xfd - "Shi ", // 0xfe - "Duo ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x099.go b/vendor/github.com/mozillazg/go-unidecode/table/x099.go deleted file mode 100644 index 947f7a0..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x099.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x099 = []string{ - "Hai ", // 0x00 - "Ren ", // 0x01 - "Tian ", // 0x02 - "Jiao ", // 0x03 - "Jia ", // 0x04 - "Bing ", // 0x05 - "Yao ", // 0x06 - "Tong ", // 0x07 - "Ci ", // 0x08 - "Xiang ", // 0x09 - "Yang ", // 0x0a - "Yang ", // 0x0b - "Er ", // 0x0c - "Yan ", // 0x0d - "Le ", // 0x0e - "Yi ", // 0x0f - "Can ", // 0x10 - "Bo ", // 0x11 - "Nei ", // 0x12 - "E ", // 0x13 - "Bu ", // 0x14 - "Jun ", // 0x15 - "Dou ", // 0x16 - "Su ", // 0x17 - "Yu ", // 0x18 - "Shi ", // 0x19 - "Yao ", // 0x1a - "Hun ", // 0x1b - "Guo ", // 0x1c - "Shi ", // 0x1d - "Jian ", // 0x1e - "Zhui ", // 0x1f - "Bing ", // 0x20 - "Xian ", // 0x21 - "Bu ", // 0x22 - "Ye ", // 0x23 - "Tan ", // 0x24 - "Fei ", // 0x25 - "Zhang ", // 0x26 - "Wei ", // 0x27 - "Guan ", // 0x28 - "E ", // 0x29 - "Nuan ", // 0x2a - "Hun ", // 0x2b - "Hu ", // 0x2c - "Huang ", // 0x2d - "Tie ", // 0x2e - "Hui ", // 0x2f - "Jian ", // 0x30 - "Hou ", // 0x31 - "He ", // 0x32 - "Xing ", // 0x33 - "Fen ", // 0x34 - "Wei ", // 0x35 - "Gu ", // 0x36 - "Cha ", // 0x37 - "Song ", // 0x38 - "Tang ", // 0x39 - "Bo ", // 0x3a - "Gao ", // 0x3b - "Xi ", // 0x3c - "Kui ", // 0x3d - "Liu ", // 0x3e - "Sou ", // 0x3f - "Tao ", // 0x40 - "Ye ", // 0x41 - "Yun ", // 0x42 - "Mo ", // 0x43 - "Tang ", // 0x44 - "Man ", // 0x45 - "Bi ", // 0x46 - "Yu ", // 0x47 - "Xiu ", // 0x48 - "Jin ", // 0x49 - "San ", // 0x4a - "Kui ", // 0x4b - "Zhuan ", // 0x4c - "Shan ", // 0x4d - "Chi ", // 0x4e - "Dan ", // 0x4f - "Yi ", // 0x50 - "Ji ", // 0x51 - "Rao ", // 0x52 - "Cheng ", // 0x53 - "Yong ", // 0x54 - "Tao ", // 0x55 - "Hui ", // 0x56 - "Xiang ", // 0x57 - "Zhan ", // 0x58 - "Fen ", // 0x59 - "Hai ", // 0x5a - "Meng ", // 0x5b - "Yan ", // 0x5c - "Mo ", // 0x5d - "Chan ", // 0x5e - "Xiang ", // 0x5f - "Luo ", // 0x60 - "Zuan ", // 0x61 - "Nang ", // 0x62 - "Shi ", // 0x63 - "Ding ", // 0x64 - "Ji ", // 0x65 - "Tuo ", // 0x66 - "Xing ", // 0x67 - "Tun ", // 0x68 - "Xi ", // 0x69 - "Ren ", // 0x6a - "Yu ", // 0x6b - "Chi ", // 0x6c - "Fan ", // 0x6d - "Yin ", // 0x6e - "Jian ", // 0x6f - "Shi ", // 0x70 - "Bao ", // 0x71 - "Si ", // 0x72 - "Duo ", // 0x73 - "Yi ", // 0x74 - "Er ", // 0x75 - "Rao ", // 0x76 - "Xiang ", // 0x77 - "Jia ", // 0x78 - "Le ", // 0x79 - "Jiao ", // 0x7a - "Yi ", // 0x7b - "Bing ", // 0x7c - "Bo ", // 0x7d - "Dou ", // 0x7e - "E ", // 0x7f - "Yu ", // 0x80 - "Nei ", // 0x81 - "Jun ", // 0x82 - "Guo ", // 0x83 - "Hun ", // 0x84 - "Xian ", // 0x85 - "Guan ", // 0x86 - "Cha ", // 0x87 - "Kui ", // 0x88 - "Gu ", // 0x89 - "Sou ", // 0x8a - "Chan ", // 0x8b - "Ye ", // 0x8c - "Mo ", // 0x8d - "Bo ", // 0x8e - "Liu ", // 0x8f - "Xiu ", // 0x90 - "Jin ", // 0x91 - "Man ", // 0x92 - "San ", // 0x93 - "Zhuan ", // 0x94 - "Nang ", // 0x95 - "Shou ", // 0x96 - "Kui ", // 0x97 - "Guo ", // 0x98 - "Xiang ", // 0x99 - "Fen ", // 0x9a - "Ba ", // 0x9b - "Ni ", // 0x9c - "Bi ", // 0x9d - "Bo ", // 0x9e - "Tu ", // 0x9f - "Han ", // 0xa0 - "Fei ", // 0xa1 - "Jian ", // 0xa2 - "An ", // 0xa3 - "Ai ", // 0xa4 - "Fu ", // 0xa5 - "Xian ", // 0xa6 - "Wen ", // 0xa7 - "Xin ", // 0xa8 - "Fen ", // 0xa9 - "Bin ", // 0xaa - "Xing ", // 0xab - "Ma ", // 0xac - "Yu ", // 0xad - "Feng ", // 0xae - "Han ", // 0xaf - "Di ", // 0xb0 - "Tuo ", // 0xb1 - "Tuo ", // 0xb2 - "Chi ", // 0xb3 - "Xun ", // 0xb4 - "Zhu ", // 0xb5 - "Zhi ", // 0xb6 - "Pei ", // 0xb7 - "Xin ", // 0xb8 - "Ri ", // 0xb9 - "Sa ", // 0xba - "Yin ", // 0xbb - "Wen ", // 0xbc - "Zhi ", // 0xbd - "Dan ", // 0xbe - "Lu ", // 0xbf - "You ", // 0xc0 - "Bo ", // 0xc1 - "Bao ", // 0xc2 - "Kuai ", // 0xc3 - "Tuo ", // 0xc4 - "Yi ", // 0xc5 - "Qu ", // 0xc6 - "[?] ", // 0xc7 - "Qu ", // 0xc8 - "Jiong ", // 0xc9 - "Bo ", // 0xca - "Zhao ", // 0xcb - "Yuan ", // 0xcc - "Peng ", // 0xcd - "Zhou ", // 0xce - "Ju ", // 0xcf - "Zhu ", // 0xd0 - "Nu ", // 0xd1 - "Ju ", // 0xd2 - "Pi ", // 0xd3 - "Zang ", // 0xd4 - "Jia ", // 0xd5 - "Ling ", // 0xd6 - "Zhen ", // 0xd7 - "Tai ", // 0xd8 - "Fu ", // 0xd9 - "Yang ", // 0xda - "Shi ", // 0xdb - "Bi ", // 0xdc - "Tuo ", // 0xdd - "Tuo ", // 0xde - "Si ", // 0xdf - "Liu ", // 0xe0 - "Ma ", // 0xe1 - "Pian ", // 0xe2 - "Tao ", // 0xe3 - "Zhi ", // 0xe4 - "Rong ", // 0xe5 - "Teng ", // 0xe6 - "Dong ", // 0xe7 - "Xun ", // 0xe8 - "Quan ", // 0xe9 - "Shen ", // 0xea - "Jiong ", // 0xeb - "Er ", // 0xec - "Hai ", // 0xed - "Bo ", // 0xee - "Zhu ", // 0xef - "Yin ", // 0xf0 - "Luo ", // 0xf1 - "Shuu ", // 0xf2 - "Dan ", // 0xf3 - "Xie ", // 0xf4 - "Liu ", // 0xf5 - "Ju ", // 0xf6 - "Song ", // 0xf7 - "Qin ", // 0xf8 - "Mang ", // 0xf9 - "Liang ", // 0xfa - "Han ", // 0xfb - "Tu ", // 0xfc - "Xuan ", // 0xfd - "Tui ", // 0xfe - "Jun ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x09a.go b/vendor/github.com/mozillazg/go-unidecode/table/x09a.go deleted file mode 100644 index 3e65ba3..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x09a.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x09a = []string{ - "E ", // 0x00 - "Cheng ", // 0x01 - "Xin ", // 0x02 - "Ai ", // 0x03 - "Lu ", // 0x04 - "Zhui ", // 0x05 - "Zhou ", // 0x06 - "She ", // 0x07 - "Pian ", // 0x08 - "Kun ", // 0x09 - "Tao ", // 0x0a - "Lai ", // 0x0b - "Zong ", // 0x0c - "Ke ", // 0x0d - "Qi ", // 0x0e - "Qi ", // 0x0f - "Yan ", // 0x10 - "Fei ", // 0x11 - "Sao ", // 0x12 - "Yan ", // 0x13 - "Jie ", // 0x14 - "Yao ", // 0x15 - "Wu ", // 0x16 - "Pian ", // 0x17 - "Cong ", // 0x18 - "Pian ", // 0x19 - "Qian ", // 0x1a - "Fei ", // 0x1b - "Huang ", // 0x1c - "Jian ", // 0x1d - "Huo ", // 0x1e - "Yu ", // 0x1f - "Ti ", // 0x20 - "Quan ", // 0x21 - "Xia ", // 0x22 - "Zong ", // 0x23 - "Kui ", // 0x24 - "Rou ", // 0x25 - "Si ", // 0x26 - "Gua ", // 0x27 - "Tuo ", // 0x28 - "Kui ", // 0x29 - "Sou ", // 0x2a - "Qian ", // 0x2b - "Cheng ", // 0x2c - "Zhi ", // 0x2d - "Liu ", // 0x2e - "Pang ", // 0x2f - "Teng ", // 0x30 - "Xi ", // 0x31 - "Cao ", // 0x32 - "Du ", // 0x33 - "Yan ", // 0x34 - "Yuan ", // 0x35 - "Zou ", // 0x36 - "Sao ", // 0x37 - "Shan ", // 0x38 - "Li ", // 0x39 - "Zhi ", // 0x3a - "Shuang ", // 0x3b - "Lu ", // 0x3c - "Xi ", // 0x3d - "Luo ", // 0x3e - "Zhang ", // 0x3f - "Mo ", // 0x40 - "Ao ", // 0x41 - "Can ", // 0x42 - "Piao ", // 0x43 - "Cong ", // 0x44 - "Qu ", // 0x45 - "Bi ", // 0x46 - "Zhi ", // 0x47 - "Yu ", // 0x48 - "Xu ", // 0x49 - "Hua ", // 0x4a - "Bo ", // 0x4b - "Su ", // 0x4c - "Xiao ", // 0x4d - "Lin ", // 0x4e - "Chan ", // 0x4f - "Dun ", // 0x50 - "Liu ", // 0x51 - "Tuo ", // 0x52 - "Zeng ", // 0x53 - "Tan ", // 0x54 - "Jiao ", // 0x55 - "Tie ", // 0x56 - "Yan ", // 0x57 - "Luo ", // 0x58 - "Zhan ", // 0x59 - "Jing ", // 0x5a - "Yi ", // 0x5b - "Ye ", // 0x5c - "Tuo ", // 0x5d - "Bin ", // 0x5e - "Zou ", // 0x5f - "Yan ", // 0x60 - "Peng ", // 0x61 - "Lu ", // 0x62 - "Teng ", // 0x63 - "Xiang ", // 0x64 - "Ji ", // 0x65 - "Shuang ", // 0x66 - "Ju ", // 0x67 - "Xi ", // 0x68 - "Huan ", // 0x69 - "Li ", // 0x6a - "Biao ", // 0x6b - "Ma ", // 0x6c - "Yu ", // 0x6d - "Tuo ", // 0x6e - "Xun ", // 0x6f - "Chi ", // 0x70 - "Qu ", // 0x71 - "Ri ", // 0x72 - "Bo ", // 0x73 - "Lu ", // 0x74 - "Zang ", // 0x75 - "Shi ", // 0x76 - "Si ", // 0x77 - "Fu ", // 0x78 - "Ju ", // 0x79 - "Zou ", // 0x7a - "Zhu ", // 0x7b - "Tuo ", // 0x7c - "Nu ", // 0x7d - "Jia ", // 0x7e - "Yi ", // 0x7f - "Tai ", // 0x80 - "Xiao ", // 0x81 - "Ma ", // 0x82 - "Yin ", // 0x83 - "Jiao ", // 0x84 - "Hua ", // 0x85 - "Luo ", // 0x86 - "Hai ", // 0x87 - "Pian ", // 0x88 - "Biao ", // 0x89 - "Li ", // 0x8a - "Cheng ", // 0x8b - "Yan ", // 0x8c - "Xin ", // 0x8d - "Qin ", // 0x8e - "Jun ", // 0x8f - "Qi ", // 0x90 - "Qi ", // 0x91 - "Ke ", // 0x92 - "Zhui ", // 0x93 - "Zong ", // 0x94 - "Su ", // 0x95 - "Can ", // 0x96 - "Pian ", // 0x97 - "Zhi ", // 0x98 - "Kui ", // 0x99 - "Sao ", // 0x9a - "Wu ", // 0x9b - "Ao ", // 0x9c - "Liu ", // 0x9d - "Qian ", // 0x9e - "Shan ", // 0x9f - "Piao ", // 0xa0 - "Luo ", // 0xa1 - "Cong ", // 0xa2 - "Chan ", // 0xa3 - "Zou ", // 0xa4 - "Ji ", // 0xa5 - "Shuang ", // 0xa6 - "Xiang ", // 0xa7 - "Gu ", // 0xa8 - "Wei ", // 0xa9 - "Wei ", // 0xaa - "Wei ", // 0xab - "Yu ", // 0xac - "Gan ", // 0xad - "Yi ", // 0xae - "Ang ", // 0xaf - "Tou ", // 0xb0 - "Xie ", // 0xb1 - "Bao ", // 0xb2 - "Bi ", // 0xb3 - "Chi ", // 0xb4 - "Ti ", // 0xb5 - "Di ", // 0xb6 - "Ku ", // 0xb7 - "Hai ", // 0xb8 - "Qiao ", // 0xb9 - "Gou ", // 0xba - "Kua ", // 0xbb - "Ge ", // 0xbc - "Tui ", // 0xbd - "Geng ", // 0xbe - "Pian ", // 0xbf - "Bi ", // 0xc0 - "Ke ", // 0xc1 - "Ka ", // 0xc2 - "Yu ", // 0xc3 - "Sui ", // 0xc4 - "Lou ", // 0xc5 - "Bo ", // 0xc6 - "Xiao ", // 0xc7 - "Pang ", // 0xc8 - "Bo ", // 0xc9 - "Ci ", // 0xca - "Kuan ", // 0xcb - "Bin ", // 0xcc - "Mo ", // 0xcd - "Liao ", // 0xce - "Lou ", // 0xcf - "Nao ", // 0xd0 - "Du ", // 0xd1 - "Zang ", // 0xd2 - "Sui ", // 0xd3 - "Ti ", // 0xd4 - "Bin ", // 0xd5 - "Kuan ", // 0xd6 - "Lu ", // 0xd7 - "Gao ", // 0xd8 - "Gao ", // 0xd9 - "Qiao ", // 0xda - "Kao ", // 0xdb - "Qiao ", // 0xdc - "Lao ", // 0xdd - "Zao ", // 0xde - "Biao ", // 0xdf - "Kun ", // 0xe0 - "Kun ", // 0xe1 - "Ti ", // 0xe2 - "Fang ", // 0xe3 - "Xiu ", // 0xe4 - "Ran ", // 0xe5 - "Mao ", // 0xe6 - "Dan ", // 0xe7 - "Kun ", // 0xe8 - "Bin ", // 0xe9 - "Fa ", // 0xea - "Tiao ", // 0xeb - "Peng ", // 0xec - "Zi ", // 0xed - "Fa ", // 0xee - "Ran ", // 0xef - "Ti ", // 0xf0 - "Pao ", // 0xf1 - "Pi ", // 0xf2 - "Mao ", // 0xf3 - "Fu ", // 0xf4 - "Er ", // 0xf5 - "Rong ", // 0xf6 - "Qu ", // 0xf7 - "Gong ", // 0xf8 - "Xiu ", // 0xf9 - "Gua ", // 0xfa - "Ji ", // 0xfb - "Peng ", // 0xfc - "Zhua ", // 0xfd - "Shao ", // 0xfe - "Sha ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x09b.go b/vendor/github.com/mozillazg/go-unidecode/table/x09b.go deleted file mode 100644 index 192b9b8..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x09b.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x09b = []string{ - "Ti ", // 0x00 - "Li ", // 0x01 - "Bin ", // 0x02 - "Zong ", // 0x03 - "Ti ", // 0x04 - "Peng ", // 0x05 - "Song ", // 0x06 - "Zheng ", // 0x07 - "Quan ", // 0x08 - "Zong ", // 0x09 - "Shun ", // 0x0a - "Jian ", // 0x0b - "Duo ", // 0x0c - "Hu ", // 0x0d - "La ", // 0x0e - "Jiu ", // 0x0f - "Qi ", // 0x10 - "Lian ", // 0x11 - "Zhen ", // 0x12 - "Bin ", // 0x13 - "Peng ", // 0x14 - "Mo ", // 0x15 - "San ", // 0x16 - "Man ", // 0x17 - "Man ", // 0x18 - "Seng ", // 0x19 - "Xu ", // 0x1a - "Lie ", // 0x1b - "Qian ", // 0x1c - "Qian ", // 0x1d - "Nong ", // 0x1e - "Huan ", // 0x1f - "Kuai ", // 0x20 - "Ning ", // 0x21 - "Bin ", // 0x22 - "Lie ", // 0x23 - "Rang ", // 0x24 - "Dou ", // 0x25 - "Dou ", // 0x26 - "Nao ", // 0x27 - "Hong ", // 0x28 - "Xi ", // 0x29 - "Dou ", // 0x2a - "Han ", // 0x2b - "Dou ", // 0x2c - "Dou ", // 0x2d - "Jiu ", // 0x2e - "Chang ", // 0x2f - "Yu ", // 0x30 - "Yu ", // 0x31 - "Li ", // 0x32 - "Juan ", // 0x33 - "Fu ", // 0x34 - "Qian ", // 0x35 - "Gui ", // 0x36 - "Zong ", // 0x37 - "Liu ", // 0x38 - "Gui ", // 0x39 - "Shang ", // 0x3a - "Yu ", // 0x3b - "Gui ", // 0x3c - "Mei ", // 0x3d - "Ji ", // 0x3e - "Qi ", // 0x3f - "Jie ", // 0x40 - "Kui ", // 0x41 - "Hun ", // 0x42 - "Ba ", // 0x43 - "Po ", // 0x44 - "Mei ", // 0x45 - "Xu ", // 0x46 - "Yan ", // 0x47 - "Xiao ", // 0x48 - "Liang ", // 0x49 - "Yu ", // 0x4a - "Tui ", // 0x4b - "Qi ", // 0x4c - "Wang ", // 0x4d - "Liang ", // 0x4e - "Wei ", // 0x4f - "Jian ", // 0x50 - "Chi ", // 0x51 - "Piao ", // 0x52 - "Bi ", // 0x53 - "Mo ", // 0x54 - "Ji ", // 0x55 - "Xu ", // 0x56 - "Chou ", // 0x57 - "Yan ", // 0x58 - "Zhan ", // 0x59 - "Yu ", // 0x5a - "Dao ", // 0x5b - "Ren ", // 0x5c - "Ji ", // 0x5d - "Eri ", // 0x5e - "Gong ", // 0x5f - "Tuo ", // 0x60 - "Diao ", // 0x61 - "Ji ", // 0x62 - "Xu ", // 0x63 - "E ", // 0x64 - "E ", // 0x65 - "Sha ", // 0x66 - "Hang ", // 0x67 - "Tun ", // 0x68 - "Mo ", // 0x69 - "Jie ", // 0x6a - "Shen ", // 0x6b - "Fan ", // 0x6c - "Yuan ", // 0x6d - "Bi ", // 0x6e - "Lu ", // 0x6f - "Wen ", // 0x70 - "Hu ", // 0x71 - "Lu ", // 0x72 - "Za ", // 0x73 - "Fang ", // 0x74 - "Fen ", // 0x75 - "Na ", // 0x76 - "You ", // 0x77 - "Namazu ", // 0x78 - "Todo ", // 0x79 - "He ", // 0x7a - "Xia ", // 0x7b - "Qu ", // 0x7c - "Han ", // 0x7d - "Pi ", // 0x7e - "Ling ", // 0x7f - "Tuo ", // 0x80 - "Bo ", // 0x81 - "Qiu ", // 0x82 - "Ping ", // 0x83 - "Fu ", // 0x84 - "Bi ", // 0x85 - "Ji ", // 0x86 - "Wei ", // 0x87 - "Ju ", // 0x88 - "Diao ", // 0x89 - "Bo ", // 0x8a - "You ", // 0x8b - "Gun ", // 0x8c - "Pi ", // 0x8d - "Nian ", // 0x8e - "Xing ", // 0x8f - "Tai ", // 0x90 - "Bao ", // 0x91 - "Fu ", // 0x92 - "Zha ", // 0x93 - "Ju ", // 0x94 - "Gu ", // 0x95 - "Kajika ", // 0x96 - "Tong ", // 0x97 - "[?] ", // 0x98 - "Ta ", // 0x99 - "Jie ", // 0x9a - "Shu ", // 0x9b - "Hou ", // 0x9c - "Xiang ", // 0x9d - "Er ", // 0x9e - "An ", // 0x9f - "Wei ", // 0xa0 - "Tiao ", // 0xa1 - "Zhu ", // 0xa2 - "Yin ", // 0xa3 - "Lie ", // 0xa4 - "Luo ", // 0xa5 - "Tong ", // 0xa6 - "Yi ", // 0xa7 - "Qi ", // 0xa8 - "Bing ", // 0xa9 - "Wei ", // 0xaa - "Jiao ", // 0xab - "Bu ", // 0xac - "Gui ", // 0xad - "Xian ", // 0xae - "Ge ", // 0xaf - "Hui ", // 0xb0 - "Bora ", // 0xb1 - "Mate ", // 0xb2 - "Kao ", // 0xb3 - "Gori ", // 0xb4 - "Duo ", // 0xb5 - "Jun ", // 0xb6 - "Ti ", // 0xb7 - "Man ", // 0xb8 - "Xiao ", // 0xb9 - "Za ", // 0xba - "Sha ", // 0xbb - "Qin ", // 0xbc - "Yu ", // 0xbd - "Nei ", // 0xbe - "Zhe ", // 0xbf - "Gun ", // 0xc0 - "Geng ", // 0xc1 - "Su ", // 0xc2 - "Wu ", // 0xc3 - "Qiu ", // 0xc4 - "Ting ", // 0xc5 - "Fu ", // 0xc6 - "Wan ", // 0xc7 - "You ", // 0xc8 - "Li ", // 0xc9 - "Sha ", // 0xca - "Sha ", // 0xcb - "Gao ", // 0xcc - "Meng ", // 0xcd - "Ugui ", // 0xce - "Asari ", // 0xcf - "Subashiri ", // 0xd0 - "Kazunoko ", // 0xd1 - "Yong ", // 0xd2 - "Ni ", // 0xd3 - "Zi ", // 0xd4 - "Qi ", // 0xd5 - "Qing ", // 0xd6 - "Xiang ", // 0xd7 - "Nei ", // 0xd8 - "Chun ", // 0xd9 - "Ji ", // 0xda - "Diao ", // 0xdb - "Qie ", // 0xdc - "Gu ", // 0xdd - "Zhou ", // 0xde - "Dong ", // 0xdf - "Lai ", // 0xe0 - "Fei ", // 0xe1 - "Ni ", // 0xe2 - "Yi ", // 0xe3 - "Kun ", // 0xe4 - "Lu ", // 0xe5 - "Jiu ", // 0xe6 - "Chang ", // 0xe7 - "Jing ", // 0xe8 - "Lun ", // 0xe9 - "Ling ", // 0xea - "Zou ", // 0xeb - "Li ", // 0xec - "Meng ", // 0xed - "Zong ", // 0xee - "Zhi ", // 0xef - "Nian ", // 0xf0 - "Shachi ", // 0xf1 - "Dojou ", // 0xf2 - "Sukesou ", // 0xf3 - "Shi ", // 0xf4 - "Shen ", // 0xf5 - "Hun ", // 0xf6 - "Shi ", // 0xf7 - "Hou ", // 0xf8 - "Xing ", // 0xf9 - "Zhu ", // 0xfa - "La ", // 0xfb - "Zong ", // 0xfc - "Ji ", // 0xfd - "Bian ", // 0xfe - "Bian ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x09c.go b/vendor/github.com/mozillazg/go-unidecode/table/x09c.go deleted file mode 100644 index a244810..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x09c.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x09c = []string{ - "Huan ", // 0x00 - "Quan ", // 0x01 - "Ze ", // 0x02 - "Wei ", // 0x03 - "Wei ", // 0x04 - "Yu ", // 0x05 - "Qun ", // 0x06 - "Rou ", // 0x07 - "Die ", // 0x08 - "Huang ", // 0x09 - "Lian ", // 0x0a - "Yan ", // 0x0b - "Qiu ", // 0x0c - "Qiu ", // 0x0d - "Jian ", // 0x0e - "Bi ", // 0x0f - "E ", // 0x10 - "Yang ", // 0x11 - "Fu ", // 0x12 - "Sai ", // 0x13 - "Jian ", // 0x14 - "Xia ", // 0x15 - "Tuo ", // 0x16 - "Hu ", // 0x17 - "Muroaji ", // 0x18 - "Ruo ", // 0x19 - "Haraka ", // 0x1a - "Wen ", // 0x1b - "Jian ", // 0x1c - "Hao ", // 0x1d - "Wu ", // 0x1e - "Fang ", // 0x1f - "Sao ", // 0x20 - "Liu ", // 0x21 - "Ma ", // 0x22 - "Shi ", // 0x23 - "Shi ", // 0x24 - "Yin ", // 0x25 - "Z ", // 0x26 - "Teng ", // 0x27 - "Ta ", // 0x28 - "Yao ", // 0x29 - "Ge ", // 0x2a - "Rong ", // 0x2b - "Qian ", // 0x2c - "Qi ", // 0x2d - "Wen ", // 0x2e - "Ruo ", // 0x2f - "Hatahata ", // 0x30 - "Lian ", // 0x31 - "Ao ", // 0x32 - "Le ", // 0x33 - "Hui ", // 0x34 - "Min ", // 0x35 - "Ji ", // 0x36 - "Tiao ", // 0x37 - "Qu ", // 0x38 - "Jian ", // 0x39 - "Sao ", // 0x3a - "Man ", // 0x3b - "Xi ", // 0x3c - "Qiu ", // 0x3d - "Biao ", // 0x3e - "Ji ", // 0x3f - "Ji ", // 0x40 - "Zhu ", // 0x41 - "Jiang ", // 0x42 - "Qiu ", // 0x43 - "Zhuan ", // 0x44 - "Yong ", // 0x45 - "Zhang ", // 0x46 - "Kang ", // 0x47 - "Xue ", // 0x48 - "Bie ", // 0x49 - "Jue ", // 0x4a - "Qu ", // 0x4b - "Xiang ", // 0x4c - "Bo ", // 0x4d - "Jiao ", // 0x4e - "Xun ", // 0x4f - "Su ", // 0x50 - "Huang ", // 0x51 - "Zun ", // 0x52 - "Shan ", // 0x53 - "Shan ", // 0x54 - "Fan ", // 0x55 - "Jue ", // 0x56 - "Lin ", // 0x57 - "Xun ", // 0x58 - "Miao ", // 0x59 - "Xi ", // 0x5a - "Eso ", // 0x5b - "Kyou ", // 0x5c - "Fen ", // 0x5d - "Guan ", // 0x5e - "Hou ", // 0x5f - "Kuai ", // 0x60 - "Zei ", // 0x61 - "Sao ", // 0x62 - "Zhan ", // 0x63 - "Gan ", // 0x64 - "Gui ", // 0x65 - "Sheng ", // 0x66 - "Li ", // 0x67 - "Chang ", // 0x68 - "Hatahata ", // 0x69 - "Shiira ", // 0x6a - "Mutsu ", // 0x6b - "Ru ", // 0x6c - "Ji ", // 0x6d - "Xu ", // 0x6e - "Huo ", // 0x6f - "Shiira ", // 0x70 - "Li ", // 0x71 - "Lie ", // 0x72 - "Li ", // 0x73 - "Mie ", // 0x74 - "Zhen ", // 0x75 - "Xiang ", // 0x76 - "E ", // 0x77 - "Lu ", // 0x78 - "Guan ", // 0x79 - "Li ", // 0x7a - "Xian ", // 0x7b - "Yu ", // 0x7c - "Dao ", // 0x7d - "Ji ", // 0x7e - "You ", // 0x7f - "Tun ", // 0x80 - "Lu ", // 0x81 - "Fang ", // 0x82 - "Ba ", // 0x83 - "He ", // 0x84 - "Bo ", // 0x85 - "Ping ", // 0x86 - "Nian ", // 0x87 - "Lu ", // 0x88 - "You ", // 0x89 - "Zha ", // 0x8a - "Fu ", // 0x8b - "Bo ", // 0x8c - "Bao ", // 0x8d - "Hou ", // 0x8e - "Pi ", // 0x8f - "Tai ", // 0x90 - "Gui ", // 0x91 - "Jie ", // 0x92 - "Kao ", // 0x93 - "Wei ", // 0x94 - "Er ", // 0x95 - "Tong ", // 0x96 - "Ze ", // 0x97 - "Hou ", // 0x98 - "Kuai ", // 0x99 - "Ji ", // 0x9a - "Jiao ", // 0x9b - "Xian ", // 0x9c - "Za ", // 0x9d - "Xiang ", // 0x9e - "Xun ", // 0x9f - "Geng ", // 0xa0 - "Li ", // 0xa1 - "Lian ", // 0xa2 - "Jian ", // 0xa3 - "Li ", // 0xa4 - "Shi ", // 0xa5 - "Tiao ", // 0xa6 - "Gun ", // 0xa7 - "Sha ", // 0xa8 - "Wan ", // 0xa9 - "Jun ", // 0xaa - "Ji ", // 0xab - "Yong ", // 0xac - "Qing ", // 0xad - "Ling ", // 0xae - "Qi ", // 0xaf - "Zou ", // 0xb0 - "Fei ", // 0xb1 - "Kun ", // 0xb2 - "Chang ", // 0xb3 - "Gu ", // 0xb4 - "Ni ", // 0xb5 - "Nian ", // 0xb6 - "Diao ", // 0xb7 - "Jing ", // 0xb8 - "Shen ", // 0xb9 - "Shi ", // 0xba - "Zi ", // 0xbb - "Fen ", // 0xbc - "Die ", // 0xbd - "Bi ", // 0xbe - "Chang ", // 0xbf - "Shi ", // 0xc0 - "Wen ", // 0xc1 - "Wei ", // 0xc2 - "Sai ", // 0xc3 - "E ", // 0xc4 - "Qiu ", // 0xc5 - "Fu ", // 0xc6 - "Huang ", // 0xc7 - "Quan ", // 0xc8 - "Jiang ", // 0xc9 - "Bian ", // 0xca - "Sao ", // 0xcb - "Ao ", // 0xcc - "Qi ", // 0xcd - "Ta ", // 0xce - "Yin ", // 0xcf - "Yao ", // 0xd0 - "Fang ", // 0xd1 - "Jian ", // 0xd2 - "Le ", // 0xd3 - "Biao ", // 0xd4 - "Xue ", // 0xd5 - "Bie ", // 0xd6 - "Man ", // 0xd7 - "Min ", // 0xd8 - "Yong ", // 0xd9 - "Wei ", // 0xda - "Xi ", // 0xdb - "Jue ", // 0xdc - "Shan ", // 0xdd - "Lin ", // 0xde - "Zun ", // 0xdf - "Huo ", // 0xe0 - "Gan ", // 0xe1 - "Li ", // 0xe2 - "Zhan ", // 0xe3 - "Guan ", // 0xe4 - "Niao ", // 0xe5 - "Yi ", // 0xe6 - "Fu ", // 0xe7 - "Li ", // 0xe8 - "Jiu ", // 0xe9 - "Bu ", // 0xea - "Yan ", // 0xeb - "Fu ", // 0xec - "Diao ", // 0xed - "Ji ", // 0xee - "Feng ", // 0xef - "Nio ", // 0xf0 - "Gan ", // 0xf1 - "Shi ", // 0xf2 - "Feng ", // 0xf3 - "Ming ", // 0xf4 - "Bao ", // 0xf5 - "Yuan ", // 0xf6 - "Zhi ", // 0xf7 - "Hu ", // 0xf8 - "Qin ", // 0xf9 - "Fu ", // 0xfa - "Fen ", // 0xfb - "Wen ", // 0xfc - "Jian ", // 0xfd - "Shi ", // 0xfe - "Yu ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x09d.go b/vendor/github.com/mozillazg/go-unidecode/table/x09d.go deleted file mode 100644 index afa05ef..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x09d.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x09d = []string{ - "Fou ", // 0x00 - "Yiao ", // 0x01 - "Jue ", // 0x02 - "Jue ", // 0x03 - "Pi ", // 0x04 - "Huan ", // 0x05 - "Zhen ", // 0x06 - "Bao ", // 0x07 - "Yan ", // 0x08 - "Ya ", // 0x09 - "Zheng ", // 0x0a - "Fang ", // 0x0b - "Feng ", // 0x0c - "Wen ", // 0x0d - "Ou ", // 0x0e - "Te ", // 0x0f - "Jia ", // 0x10 - "Nu ", // 0x11 - "Ling ", // 0x12 - "Mie ", // 0x13 - "Fu ", // 0x14 - "Tuo ", // 0x15 - "Wen ", // 0x16 - "Li ", // 0x17 - "Bian ", // 0x18 - "Zhi ", // 0x19 - "Ge ", // 0x1a - "Yuan ", // 0x1b - "Zi ", // 0x1c - "Qu ", // 0x1d - "Xiao ", // 0x1e - "Zhi ", // 0x1f - "Dan ", // 0x20 - "Ju ", // 0x21 - "You ", // 0x22 - "Gu ", // 0x23 - "Zhong ", // 0x24 - "Yu ", // 0x25 - "Yang ", // 0x26 - "Rong ", // 0x27 - "Ya ", // 0x28 - "Tie ", // 0x29 - "Yu ", // 0x2a - "Shigi ", // 0x2b - "Ying ", // 0x2c - "Zhui ", // 0x2d - "Wu ", // 0x2e - "Er ", // 0x2f - "Gua ", // 0x30 - "Ai ", // 0x31 - "Zhi ", // 0x32 - "Yan ", // 0x33 - "Heng ", // 0x34 - "Jiao ", // 0x35 - "Ji ", // 0x36 - "Lie ", // 0x37 - "Zhu ", // 0x38 - "Ren ", // 0x39 - "Yi ", // 0x3a - "Hong ", // 0x3b - "Luo ", // 0x3c - "Ru ", // 0x3d - "Mou ", // 0x3e - "Ge ", // 0x3f - "Ren ", // 0x40 - "Jiao ", // 0x41 - "Xiu ", // 0x42 - "Zhou ", // 0x43 - "Zhi ", // 0x44 - "Luo ", // 0x45 - "Chidori ", // 0x46 - "Toki ", // 0x47 - "Ten ", // 0x48 - "Luan ", // 0x49 - "Jia ", // 0x4a - "Ji ", // 0x4b - "Yu ", // 0x4c - "Huan ", // 0x4d - "Tuo ", // 0x4e - "Bu ", // 0x4f - "Wu ", // 0x50 - "Juan ", // 0x51 - "Yu ", // 0x52 - "Bo ", // 0x53 - "Xun ", // 0x54 - "Xun ", // 0x55 - "Bi ", // 0x56 - "Xi ", // 0x57 - "Jun ", // 0x58 - "Ju ", // 0x59 - "Tu ", // 0x5a - "Jing ", // 0x5b - "Ti ", // 0x5c - "E ", // 0x5d - "E ", // 0x5e - "Kuang ", // 0x5f - "Hu ", // 0x60 - "Wu ", // 0x61 - "Shen ", // 0x62 - "Lai ", // 0x63 - "Ikaruga ", // 0x64 - "Kakesu ", // 0x65 - "Lu ", // 0x66 - "Ping ", // 0x67 - "Shu ", // 0x68 - "Fu ", // 0x69 - "An ", // 0x6a - "Zhao ", // 0x6b - "Peng ", // 0x6c - "Qin ", // 0x6d - "Qian ", // 0x6e - "Bei ", // 0x6f - "Diao ", // 0x70 - "Lu ", // 0x71 - "Que ", // 0x72 - "Jian ", // 0x73 - "Ju ", // 0x74 - "Tu ", // 0x75 - "Ya ", // 0x76 - "Yuan ", // 0x77 - "Qi ", // 0x78 - "Li ", // 0x79 - "Ye ", // 0x7a - "Zhui ", // 0x7b - "Kong ", // 0x7c - "Zhui ", // 0x7d - "Kun ", // 0x7e - "Sheng ", // 0x7f - "Qi ", // 0x80 - "Jing ", // 0x81 - "Yi ", // 0x82 - "Yi ", // 0x83 - "Jing ", // 0x84 - "Zi ", // 0x85 - "Lai ", // 0x86 - "Dong ", // 0x87 - "Qi ", // 0x88 - "Chun ", // 0x89 - "Geng ", // 0x8a - "Ju ", // 0x8b - "Qu ", // 0x8c - "Isuka ", // 0x8d - "Kikuitadaki ", // 0x8e - "Ji ", // 0x8f - "Shu ", // 0x90 - "[?] ", // 0x91 - "Chi ", // 0x92 - "Miao ", // 0x93 - "Rou ", // 0x94 - "An ", // 0x95 - "Qiu ", // 0x96 - "Ti ", // 0x97 - "Hu ", // 0x98 - "Ti ", // 0x99 - "E ", // 0x9a - "Jie ", // 0x9b - "Mao ", // 0x9c - "Fu ", // 0x9d - "Chun ", // 0x9e - "Tu ", // 0x9f - "Yan ", // 0xa0 - "He ", // 0xa1 - "Yuan ", // 0xa2 - "Pian ", // 0xa3 - "Yun ", // 0xa4 - "Mei ", // 0xa5 - "Hu ", // 0xa6 - "Ying ", // 0xa7 - "Dun ", // 0xa8 - "Mu ", // 0xa9 - "Ju ", // 0xaa - "Tsugumi ", // 0xab - "Cang ", // 0xac - "Fang ", // 0xad - "Gu ", // 0xae - "Ying ", // 0xaf - "Yuan ", // 0xb0 - "Xuan ", // 0xb1 - "Weng ", // 0xb2 - "Shi ", // 0xb3 - "He ", // 0xb4 - "Chu ", // 0xb5 - "Tang ", // 0xb6 - "Xia ", // 0xb7 - "Ruo ", // 0xb8 - "Liu ", // 0xb9 - "Ji ", // 0xba - "Gu ", // 0xbb - "Jian ", // 0xbc - "Zhun ", // 0xbd - "Han ", // 0xbe - "Zi ", // 0xbf - "Zi ", // 0xc0 - "Ni ", // 0xc1 - "Yao ", // 0xc2 - "Yan ", // 0xc3 - "Ji ", // 0xc4 - "Li ", // 0xc5 - "Tian ", // 0xc6 - "Kou ", // 0xc7 - "Ti ", // 0xc8 - "Ti ", // 0xc9 - "Ni ", // 0xca - "Tu ", // 0xcb - "Ma ", // 0xcc - "Jiao ", // 0xcd - "Gao ", // 0xce - "Tian ", // 0xcf - "Chen ", // 0xd0 - "Li ", // 0xd1 - "Zhuan ", // 0xd2 - "Zhe ", // 0xd3 - "Ao ", // 0xd4 - "Yao ", // 0xd5 - "Yi ", // 0xd6 - "Ou ", // 0xd7 - "Chi ", // 0xd8 - "Zhi ", // 0xd9 - "Liao ", // 0xda - "Rong ", // 0xdb - "Lou ", // 0xdc - "Bi ", // 0xdd - "Shuang ", // 0xde - "Zhuo ", // 0xdf - "Yu ", // 0xe0 - "Wu ", // 0xe1 - "Jue ", // 0xe2 - "Yin ", // 0xe3 - "Quan ", // 0xe4 - "Si ", // 0xe5 - "Jiao ", // 0xe6 - "Yi ", // 0xe7 - "Hua ", // 0xe8 - "Bi ", // 0xe9 - "Ying ", // 0xea - "Su ", // 0xeb - "Huang ", // 0xec - "Fan ", // 0xed - "Jiao ", // 0xee - "Liao ", // 0xef - "Yan ", // 0xf0 - "Kao ", // 0xf1 - "Jiu ", // 0xf2 - "Xian ", // 0xf3 - "Xian ", // 0xf4 - "Tu ", // 0xf5 - "Mai ", // 0xf6 - "Zun ", // 0xf7 - "Yu ", // 0xf8 - "Ying ", // 0xf9 - "Lu ", // 0xfa - "Tuan ", // 0xfb - "Xian ", // 0xfc - "Xue ", // 0xfd - "Yi ", // 0xfe - "Pi ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x09e.go b/vendor/github.com/mozillazg/go-unidecode/table/x09e.go deleted file mode 100644 index ab1a4ab..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x09e.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x09e = []string{ - "Shu ", // 0x00 - "Luo ", // 0x01 - "Qi ", // 0x02 - "Yi ", // 0x03 - "Ji ", // 0x04 - "Zhe ", // 0x05 - "Yu ", // 0x06 - "Zhan ", // 0x07 - "Ye ", // 0x08 - "Yang ", // 0x09 - "Pi ", // 0x0a - "Ning ", // 0x0b - "Huo ", // 0x0c - "Mi ", // 0x0d - "Ying ", // 0x0e - "Meng ", // 0x0f - "Di ", // 0x10 - "Yue ", // 0x11 - "Yu ", // 0x12 - "Lei ", // 0x13 - "Bao ", // 0x14 - "Lu ", // 0x15 - "He ", // 0x16 - "Long ", // 0x17 - "Shuang ", // 0x18 - "Yue ", // 0x19 - "Ying ", // 0x1a - "Guan ", // 0x1b - "Qu ", // 0x1c - "Li ", // 0x1d - "Luan ", // 0x1e - "Niao ", // 0x1f - "Jiu ", // 0x20 - "Ji ", // 0x21 - "Yuan ", // 0x22 - "Ming ", // 0x23 - "Shi ", // 0x24 - "Ou ", // 0x25 - "Ya ", // 0x26 - "Cang ", // 0x27 - "Bao ", // 0x28 - "Zhen ", // 0x29 - "Gu ", // 0x2a - "Dong ", // 0x2b - "Lu ", // 0x2c - "Ya ", // 0x2d - "Xiao ", // 0x2e - "Yang ", // 0x2f - "Ling ", // 0x30 - "Zhi ", // 0x31 - "Qu ", // 0x32 - "Yuan ", // 0x33 - "Xue ", // 0x34 - "Tuo ", // 0x35 - "Si ", // 0x36 - "Zhi ", // 0x37 - "Er ", // 0x38 - "Gua ", // 0x39 - "Xiu ", // 0x3a - "Heng ", // 0x3b - "Zhou ", // 0x3c - "Ge ", // 0x3d - "Luan ", // 0x3e - "Hong ", // 0x3f - "Wu ", // 0x40 - "Bo ", // 0x41 - "Li ", // 0x42 - "Juan ", // 0x43 - "Hu ", // 0x44 - "E ", // 0x45 - "Yu ", // 0x46 - "Xian ", // 0x47 - "Ti ", // 0x48 - "Wu ", // 0x49 - "Que ", // 0x4a - "Miao ", // 0x4b - "An ", // 0x4c - "Kun ", // 0x4d - "Bei ", // 0x4e - "Peng ", // 0x4f - "Qian ", // 0x50 - "Chun ", // 0x51 - "Geng ", // 0x52 - "Yuan ", // 0x53 - "Su ", // 0x54 - "Hu ", // 0x55 - "He ", // 0x56 - "E ", // 0x57 - "Gu ", // 0x58 - "Qiu ", // 0x59 - "Zi ", // 0x5a - "Mei ", // 0x5b - "Mu ", // 0x5c - "Ni ", // 0x5d - "Yao ", // 0x5e - "Weng ", // 0x5f - "Liu ", // 0x60 - "Ji ", // 0x61 - "Ni ", // 0x62 - "Jian ", // 0x63 - "He ", // 0x64 - "Yi ", // 0x65 - "Ying ", // 0x66 - "Zhe ", // 0x67 - "Liao ", // 0x68 - "Liao ", // 0x69 - "Jiao ", // 0x6a - "Jiu ", // 0x6b - "Yu ", // 0x6c - "Lu ", // 0x6d - "Xuan ", // 0x6e - "Zhan ", // 0x6f - "Ying ", // 0x70 - "Huo ", // 0x71 - "Meng ", // 0x72 - "Guan ", // 0x73 - "Shuang ", // 0x74 - "Lu ", // 0x75 - "Jin ", // 0x76 - "Ling ", // 0x77 - "Jian ", // 0x78 - "Xian ", // 0x79 - "Cuo ", // 0x7a - "Jian ", // 0x7b - "Jian ", // 0x7c - "Yan ", // 0x7d - "Cuo ", // 0x7e - "Lu ", // 0x7f - "You ", // 0x80 - "Cu ", // 0x81 - "Ji ", // 0x82 - "Biao ", // 0x83 - "Cu ", // 0x84 - "Biao ", // 0x85 - "Zhu ", // 0x86 - "Jun ", // 0x87 - "Zhu ", // 0x88 - "Jian ", // 0x89 - "Mi ", // 0x8a - "Mi ", // 0x8b - "Wu ", // 0x8c - "Liu ", // 0x8d - "Chen ", // 0x8e - "Jun ", // 0x8f - "Lin ", // 0x90 - "Ni ", // 0x91 - "Qi ", // 0x92 - "Lu ", // 0x93 - "Jiu ", // 0x94 - "Jun ", // 0x95 - "Jing ", // 0x96 - "Li ", // 0x97 - "Xiang ", // 0x98 - "Yan ", // 0x99 - "Jia ", // 0x9a - "Mi ", // 0x9b - "Li ", // 0x9c - "She ", // 0x9d - "Zhang ", // 0x9e - "Lin ", // 0x9f - "Jing ", // 0xa0 - "Ji ", // 0xa1 - "Ling ", // 0xa2 - "Yan ", // 0xa3 - "Cu ", // 0xa4 - "Mai ", // 0xa5 - "Mai ", // 0xa6 - "Ge ", // 0xa7 - "Chao ", // 0xa8 - "Fu ", // 0xa9 - "Mian ", // 0xaa - "Mian ", // 0xab - "Fu ", // 0xac - "Pao ", // 0xad - "Qu ", // 0xae - "Qu ", // 0xaf - "Mou ", // 0xb0 - "Fu ", // 0xb1 - "Xian ", // 0xb2 - "Lai ", // 0xb3 - "Qu ", // 0xb4 - "Mian ", // 0xb5 - "[?] ", // 0xb6 - "Feng ", // 0xb7 - "Fu ", // 0xb8 - "Qu ", // 0xb9 - "Mian ", // 0xba - "Ma ", // 0xbb - "Mo ", // 0xbc - "Mo ", // 0xbd - "Hui ", // 0xbe - "Ma ", // 0xbf - "Zou ", // 0xc0 - "Nen ", // 0xc1 - "Fen ", // 0xc2 - "Huang ", // 0xc3 - "Huang ", // 0xc4 - "Jin ", // 0xc5 - "Guang ", // 0xc6 - "Tian ", // 0xc7 - "Tou ", // 0xc8 - "Heng ", // 0xc9 - "Xi ", // 0xca - "Kuang ", // 0xcb - "Heng ", // 0xcc - "Shu ", // 0xcd - "Li ", // 0xce - "Nian ", // 0xcf - "Chi ", // 0xd0 - "Hei ", // 0xd1 - "Hei ", // 0xd2 - "Yi ", // 0xd3 - "Qian ", // 0xd4 - "Dan ", // 0xd5 - "Xi ", // 0xd6 - "Tuan ", // 0xd7 - "Mo ", // 0xd8 - "Mo ", // 0xd9 - "Qian ", // 0xda - "Dai ", // 0xdb - "Chu ", // 0xdc - "You ", // 0xdd - "Dian ", // 0xde - "Yi ", // 0xdf - "Xia ", // 0xe0 - "Yan ", // 0xe1 - "Qu ", // 0xe2 - "Mei ", // 0xe3 - "Yan ", // 0xe4 - "Jing ", // 0xe5 - "Yu ", // 0xe6 - "Li ", // 0xe7 - "Dang ", // 0xe8 - "Du ", // 0xe9 - "Can ", // 0xea - "Yin ", // 0xeb - "An ", // 0xec - "Yan ", // 0xed - "Tan ", // 0xee - "An ", // 0xef - "Zhen ", // 0xf0 - "Dai ", // 0xf1 - "Can ", // 0xf2 - "Yi ", // 0xf3 - "Mei ", // 0xf4 - "Dan ", // 0xf5 - "Yan ", // 0xf6 - "Du ", // 0xf7 - "Lu ", // 0xf8 - "Zhi ", // 0xf9 - "Fen ", // 0xfa - "Fu ", // 0xfb - "Fu ", // 0xfc - "Min ", // 0xfd - "Min ", // 0xfe - "Yuan ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x09f.go b/vendor/github.com/mozillazg/go-unidecode/table/x09f.go deleted file mode 100644 index 13c016d..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x09f.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x09f = []string{ - "Cu ", // 0x00 - "Qu ", // 0x01 - "Chao ", // 0x02 - "Wa ", // 0x03 - "Zhu ", // 0x04 - "Zhi ", // 0x05 - "Mang ", // 0x06 - "Ao ", // 0x07 - "Bie ", // 0x08 - "Tuo ", // 0x09 - "Bi ", // 0x0a - "Yuan ", // 0x0b - "Chao ", // 0x0c - "Tuo ", // 0x0d - "Ding ", // 0x0e - "Mi ", // 0x0f - "Nai ", // 0x10 - "Ding ", // 0x11 - "Zi ", // 0x12 - "Gu ", // 0x13 - "Gu ", // 0x14 - "Dong ", // 0x15 - "Fen ", // 0x16 - "Tao ", // 0x17 - "Yuan ", // 0x18 - "Pi ", // 0x19 - "Chang ", // 0x1a - "Gao ", // 0x1b - "Qi ", // 0x1c - "Yuan ", // 0x1d - "Tang ", // 0x1e - "Teng ", // 0x1f - "Shu ", // 0x20 - "Shu ", // 0x21 - "Fen ", // 0x22 - "Fei ", // 0x23 - "Wen ", // 0x24 - "Ba ", // 0x25 - "Diao ", // 0x26 - "Tuo ", // 0x27 - "Tong ", // 0x28 - "Qu ", // 0x29 - "Sheng ", // 0x2a - "Shi ", // 0x2b - "You ", // 0x2c - "Shi ", // 0x2d - "Ting ", // 0x2e - "Wu ", // 0x2f - "Nian ", // 0x30 - "Jing ", // 0x31 - "Hun ", // 0x32 - "Ju ", // 0x33 - "Yan ", // 0x34 - "Tu ", // 0x35 - "Ti ", // 0x36 - "Xi ", // 0x37 - "Xian ", // 0x38 - "Yan ", // 0x39 - "Lei ", // 0x3a - "Bi ", // 0x3b - "Yao ", // 0x3c - "Qiu ", // 0x3d - "Han ", // 0x3e - "Wu ", // 0x3f - "Wu ", // 0x40 - "Hou ", // 0x41 - "Xi ", // 0x42 - "Ge ", // 0x43 - "Zha ", // 0x44 - "Xiu ", // 0x45 - "Weng ", // 0x46 - "Zha ", // 0x47 - "Nong ", // 0x48 - "Nang ", // 0x49 - "Qi ", // 0x4a - "Zhai ", // 0x4b - "Ji ", // 0x4c - "Zi ", // 0x4d - "Ji ", // 0x4e - "Ji ", // 0x4f - "Qi ", // 0x50 - "Ji ", // 0x51 - "Chi ", // 0x52 - "Chen ", // 0x53 - "Chen ", // 0x54 - "He ", // 0x55 - "Ya ", // 0x56 - "Ken ", // 0x57 - "Xie ", // 0x58 - "Pao ", // 0x59 - "Cuo ", // 0x5a - "Shi ", // 0x5b - "Zi ", // 0x5c - "Chi ", // 0x5d - "Nian ", // 0x5e - "Ju ", // 0x5f - "Tiao ", // 0x60 - "Ling ", // 0x61 - "Ling ", // 0x62 - "Chu ", // 0x63 - "Quan ", // 0x64 - "Xie ", // 0x65 - "Ken ", // 0x66 - "Nie ", // 0x67 - "Jiu ", // 0x68 - "Yao ", // 0x69 - "Chuo ", // 0x6a - "Kun ", // 0x6b - "Yu ", // 0x6c - "Chu ", // 0x6d - "Yi ", // 0x6e - "Ni ", // 0x6f - "Cuo ", // 0x70 - "Zou ", // 0x71 - "Qu ", // 0x72 - "Nen ", // 0x73 - "Xian ", // 0x74 - "Ou ", // 0x75 - "E ", // 0x76 - "Wo ", // 0x77 - "Yi ", // 0x78 - "Chuo ", // 0x79 - "Zou ", // 0x7a - "Dian ", // 0x7b - "Chu ", // 0x7c - "Jin ", // 0x7d - "Ya ", // 0x7e - "Chi ", // 0x7f - "Chen ", // 0x80 - "He ", // 0x81 - "Ken ", // 0x82 - "Ju ", // 0x83 - "Ling ", // 0x84 - "Pao ", // 0x85 - "Tiao ", // 0x86 - "Zi ", // 0x87 - "Ken ", // 0x88 - "Yu ", // 0x89 - "Chuo ", // 0x8a - "Qu ", // 0x8b - "Wo ", // 0x8c - "Long ", // 0x8d - "Pang ", // 0x8e - "Gong ", // 0x8f - "Pang ", // 0x90 - "Yan ", // 0x91 - "Long ", // 0x92 - "Long ", // 0x93 - "Gong ", // 0x94 - "Kan ", // 0x95 - "Ta ", // 0x96 - "Ling ", // 0x97 - "Ta ", // 0x98 - "Long ", // 0x99 - "Gong ", // 0x9a - "Kan ", // 0x9b - "Gui ", // 0x9c - "Qiu ", // 0x9d - "Bie ", // 0x9e - "Gui ", // 0x9f - "Yue ", // 0xa0 - "Chui ", // 0xa1 - "He ", // 0xa2 - "Jue ", // 0xa3 - "Xie ", // 0xa4 - "Yu ", // 0xa5 - "[?]", // 0xa6 - "[?]", // 0xa7 - "[?]", // 0xa8 - "[?]", // 0xa9 - "[?]", // 0xaa - "[?]", // 0xab - "[?]", // 0xac - "[?]", // 0xad - "[?]", // 0xae - "[?]", // 0xaf - "[?]", // 0xb0 - "[?]", // 0xb1 - "[?]", // 0xb2 - "[?]", // 0xb3 - "[?]", // 0xb4 - "[?]", // 0xb5 - "[?]", // 0xb6 - "[?]", // 0xb7 - "[?]", // 0xb8 - "[?]", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "[?]", // 0xbc - "[?]", // 0xbd - "[?]", // 0xbe - "[?]", // 0xbf - "[?]", // 0xc0 - "[?]", // 0xc1 - "[?]", // 0xc2 - "[?]", // 0xc3 - "[?]", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0a0.go b/vendor/github.com/mozillazg/go-unidecode/table/x0a0.go deleted file mode 100644 index 4362af2..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0a0.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0a0 = []string{ - "it", // 0x00 - "ix", // 0x01 - "i", // 0x02 - "ip", // 0x03 - "iet", // 0x04 - "iex", // 0x05 - "ie", // 0x06 - "iep", // 0x07 - "at", // 0x08 - "ax", // 0x09 - "a", // 0x0a - "ap", // 0x0b - "uox", // 0x0c - "uo", // 0x0d - "uop", // 0x0e - "ot", // 0x0f - "ox", // 0x10 - "o", // 0x11 - "op", // 0x12 - "ex", // 0x13 - "e", // 0x14 - "wu", // 0x15 - "bit", // 0x16 - "bix", // 0x17 - "bi", // 0x18 - "bip", // 0x19 - "biet", // 0x1a - "biex", // 0x1b - "bie", // 0x1c - "biep", // 0x1d - "bat", // 0x1e - "bax", // 0x1f - "ba", // 0x20 - "bap", // 0x21 - "buox", // 0x22 - "buo", // 0x23 - "buop", // 0x24 - "bot", // 0x25 - "box", // 0x26 - "bo", // 0x27 - "bop", // 0x28 - "bex", // 0x29 - "be", // 0x2a - "bep", // 0x2b - "but", // 0x2c - "bux", // 0x2d - "bu", // 0x2e - "bup", // 0x2f - "burx", // 0x30 - "bur", // 0x31 - "byt", // 0x32 - "byx", // 0x33 - "by", // 0x34 - "byp", // 0x35 - "byrx", // 0x36 - "byr", // 0x37 - "pit", // 0x38 - "pix", // 0x39 - "pi", // 0x3a - "pip", // 0x3b - "piex", // 0x3c - "pie", // 0x3d - "piep", // 0x3e - "pat", // 0x3f - "pax", // 0x40 - "pa", // 0x41 - "pap", // 0x42 - "puox", // 0x43 - "puo", // 0x44 - "puop", // 0x45 - "pot", // 0x46 - "pox", // 0x47 - "po", // 0x48 - "pop", // 0x49 - "put", // 0x4a - "pux", // 0x4b - "pu", // 0x4c - "pup", // 0x4d - "purx", // 0x4e - "pur", // 0x4f - "pyt", // 0x50 - "pyx", // 0x51 - "py", // 0x52 - "pyp", // 0x53 - "pyrx", // 0x54 - "pyr", // 0x55 - "bbit", // 0x56 - "bbix", // 0x57 - "bbi", // 0x58 - "bbip", // 0x59 - "bbiet", // 0x5a - "bbiex", // 0x5b - "bbie", // 0x5c - "bbiep", // 0x5d - "bbat", // 0x5e - "bbax", // 0x5f - "bba", // 0x60 - "bbap", // 0x61 - "bbuox", // 0x62 - "bbuo", // 0x63 - "bbuop", // 0x64 - "bbot", // 0x65 - "bbox", // 0x66 - "bbo", // 0x67 - "bbop", // 0x68 - "bbex", // 0x69 - "bbe", // 0x6a - "bbep", // 0x6b - "bbut", // 0x6c - "bbux", // 0x6d - "bbu", // 0x6e - "bbup", // 0x6f - "bburx", // 0x70 - "bbur", // 0x71 - "bbyt", // 0x72 - "bbyx", // 0x73 - "bby", // 0x74 - "bbyp", // 0x75 - "nbit", // 0x76 - "nbix", // 0x77 - "nbi", // 0x78 - "nbip", // 0x79 - "nbiex", // 0x7a - "nbie", // 0x7b - "nbiep", // 0x7c - "nbat", // 0x7d - "nbax", // 0x7e - "nba", // 0x7f - "nbap", // 0x80 - "nbot", // 0x81 - "nbox", // 0x82 - "nbo", // 0x83 - "nbop", // 0x84 - "nbut", // 0x85 - "nbux", // 0x86 - "nbu", // 0x87 - "nbup", // 0x88 - "nburx", // 0x89 - "nbur", // 0x8a - "nbyt", // 0x8b - "nbyx", // 0x8c - "nby", // 0x8d - "nbyp", // 0x8e - "nbyrx", // 0x8f - "nbyr", // 0x90 - "hmit", // 0x91 - "hmix", // 0x92 - "hmi", // 0x93 - "hmip", // 0x94 - "hmiex", // 0x95 - "hmie", // 0x96 - "hmiep", // 0x97 - "hmat", // 0x98 - "hmax", // 0x99 - "hma", // 0x9a - "hmap", // 0x9b - "hmuox", // 0x9c - "hmuo", // 0x9d - "hmuop", // 0x9e - "hmot", // 0x9f - "hmox", // 0xa0 - "hmo", // 0xa1 - "hmop", // 0xa2 - "hmut", // 0xa3 - "hmux", // 0xa4 - "hmu", // 0xa5 - "hmup", // 0xa6 - "hmurx", // 0xa7 - "hmur", // 0xa8 - "hmyx", // 0xa9 - "hmy", // 0xaa - "hmyp", // 0xab - "hmyrx", // 0xac - "hmyr", // 0xad - "mit", // 0xae - "mix", // 0xaf - "mi", // 0xb0 - "mip", // 0xb1 - "miex", // 0xb2 - "mie", // 0xb3 - "miep", // 0xb4 - "mat", // 0xb5 - "max", // 0xb6 - "ma", // 0xb7 - "map", // 0xb8 - "muot", // 0xb9 - "muox", // 0xba - "muo", // 0xbb - "muop", // 0xbc - "mot", // 0xbd - "mox", // 0xbe - "mo", // 0xbf - "mop", // 0xc0 - "mex", // 0xc1 - "me", // 0xc2 - "mut", // 0xc3 - "mux", // 0xc4 - "mu", // 0xc5 - "mup", // 0xc6 - "murx", // 0xc7 - "mur", // 0xc8 - "myt", // 0xc9 - "myx", // 0xca - "my", // 0xcb - "myp", // 0xcc - "fit", // 0xcd - "fix", // 0xce - "fi", // 0xcf - "fip", // 0xd0 - "fat", // 0xd1 - "fax", // 0xd2 - "fa", // 0xd3 - "fap", // 0xd4 - "fox", // 0xd5 - "fo", // 0xd6 - "fop", // 0xd7 - "fut", // 0xd8 - "fux", // 0xd9 - "fu", // 0xda - "fup", // 0xdb - "furx", // 0xdc - "fur", // 0xdd - "fyt", // 0xde - "fyx", // 0xdf - "fy", // 0xe0 - "fyp", // 0xe1 - "vit", // 0xe2 - "vix", // 0xe3 - "vi", // 0xe4 - "vip", // 0xe5 - "viet", // 0xe6 - "viex", // 0xe7 - "vie", // 0xe8 - "viep", // 0xe9 - "vat", // 0xea - "vax", // 0xeb - "va", // 0xec - "vap", // 0xed - "vot", // 0xee - "vox", // 0xef - "vo", // 0xf0 - "vop", // 0xf1 - "vex", // 0xf2 - "vep", // 0xf3 - "vut", // 0xf4 - "vux", // 0xf5 - "vu", // 0xf6 - "vup", // 0xf7 - "vurx", // 0xf8 - "vur", // 0xf9 - "vyt", // 0xfa - "vyx", // 0xfb - "vy", // 0xfc - "vyp", // 0xfd - "vyrx", // 0xfe - "vyr", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0a1.go b/vendor/github.com/mozillazg/go-unidecode/table/x0a1.go deleted file mode 100644 index 54ee328..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0a1.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0a1 = []string{ - "dit", // 0x00 - "dix", // 0x01 - "di", // 0x02 - "dip", // 0x03 - "diex", // 0x04 - "die", // 0x05 - "diep", // 0x06 - "dat", // 0x07 - "dax", // 0x08 - "da", // 0x09 - "dap", // 0x0a - "duox", // 0x0b - "duo", // 0x0c - "dot", // 0x0d - "dox", // 0x0e - "do", // 0x0f - "dop", // 0x10 - "dex", // 0x11 - "de", // 0x12 - "dep", // 0x13 - "dut", // 0x14 - "dux", // 0x15 - "du", // 0x16 - "dup", // 0x17 - "durx", // 0x18 - "dur", // 0x19 - "tit", // 0x1a - "tix", // 0x1b - "ti", // 0x1c - "tip", // 0x1d - "tiex", // 0x1e - "tie", // 0x1f - "tiep", // 0x20 - "tat", // 0x21 - "tax", // 0x22 - "ta", // 0x23 - "tap", // 0x24 - "tuot", // 0x25 - "tuox", // 0x26 - "tuo", // 0x27 - "tuop", // 0x28 - "tot", // 0x29 - "tox", // 0x2a - "to", // 0x2b - "top", // 0x2c - "tex", // 0x2d - "te", // 0x2e - "tep", // 0x2f - "tut", // 0x30 - "tux", // 0x31 - "tu", // 0x32 - "tup", // 0x33 - "turx", // 0x34 - "tur", // 0x35 - "ddit", // 0x36 - "ddix", // 0x37 - "ddi", // 0x38 - "ddip", // 0x39 - "ddiex", // 0x3a - "ddie", // 0x3b - "ddiep", // 0x3c - "ddat", // 0x3d - "ddax", // 0x3e - "dda", // 0x3f - "ddap", // 0x40 - "dduox", // 0x41 - "dduo", // 0x42 - "dduop", // 0x43 - "ddot", // 0x44 - "ddox", // 0x45 - "ddo", // 0x46 - "ddop", // 0x47 - "ddex", // 0x48 - "dde", // 0x49 - "ddep", // 0x4a - "ddut", // 0x4b - "ddux", // 0x4c - "ddu", // 0x4d - "ddup", // 0x4e - "ddurx", // 0x4f - "ddur", // 0x50 - "ndit", // 0x51 - "ndix", // 0x52 - "ndi", // 0x53 - "ndip", // 0x54 - "ndiex", // 0x55 - "ndie", // 0x56 - "ndat", // 0x57 - "ndax", // 0x58 - "nda", // 0x59 - "ndap", // 0x5a - "ndot", // 0x5b - "ndox", // 0x5c - "ndo", // 0x5d - "ndop", // 0x5e - "ndex", // 0x5f - "nde", // 0x60 - "ndep", // 0x61 - "ndut", // 0x62 - "ndux", // 0x63 - "ndu", // 0x64 - "ndup", // 0x65 - "ndurx", // 0x66 - "ndur", // 0x67 - "hnit", // 0x68 - "hnix", // 0x69 - "hni", // 0x6a - "hnip", // 0x6b - "hniet", // 0x6c - "hniex", // 0x6d - "hnie", // 0x6e - "hniep", // 0x6f - "hnat", // 0x70 - "hnax", // 0x71 - "hna", // 0x72 - "hnap", // 0x73 - "hnuox", // 0x74 - "hnuo", // 0x75 - "hnot", // 0x76 - "hnox", // 0x77 - "hnop", // 0x78 - "hnex", // 0x79 - "hne", // 0x7a - "hnep", // 0x7b - "hnut", // 0x7c - "nit", // 0x7d - "nix", // 0x7e - "ni", // 0x7f - "nip", // 0x80 - "niex", // 0x81 - "nie", // 0x82 - "niep", // 0x83 - "nax", // 0x84 - "na", // 0x85 - "nap", // 0x86 - "nuox", // 0x87 - "nuo", // 0x88 - "nuop", // 0x89 - "not", // 0x8a - "nox", // 0x8b - "no", // 0x8c - "nop", // 0x8d - "nex", // 0x8e - "ne", // 0x8f - "nep", // 0x90 - "nut", // 0x91 - "nux", // 0x92 - "nu", // 0x93 - "nup", // 0x94 - "nurx", // 0x95 - "nur", // 0x96 - "hlit", // 0x97 - "hlix", // 0x98 - "hli", // 0x99 - "hlip", // 0x9a - "hliex", // 0x9b - "hlie", // 0x9c - "hliep", // 0x9d - "hlat", // 0x9e - "hlax", // 0x9f - "hla", // 0xa0 - "hlap", // 0xa1 - "hluox", // 0xa2 - "hluo", // 0xa3 - "hluop", // 0xa4 - "hlox", // 0xa5 - "hlo", // 0xa6 - "hlop", // 0xa7 - "hlex", // 0xa8 - "hle", // 0xa9 - "hlep", // 0xaa - "hlut", // 0xab - "hlux", // 0xac - "hlu", // 0xad - "hlup", // 0xae - "hlurx", // 0xaf - "hlur", // 0xb0 - "hlyt", // 0xb1 - "hlyx", // 0xb2 - "hly", // 0xb3 - "hlyp", // 0xb4 - "hlyrx", // 0xb5 - "hlyr", // 0xb6 - "lit", // 0xb7 - "lix", // 0xb8 - "li", // 0xb9 - "lip", // 0xba - "liet", // 0xbb - "liex", // 0xbc - "lie", // 0xbd - "liep", // 0xbe - "lat", // 0xbf - "lax", // 0xc0 - "la", // 0xc1 - "lap", // 0xc2 - "luot", // 0xc3 - "luox", // 0xc4 - "luo", // 0xc5 - "luop", // 0xc6 - "lot", // 0xc7 - "lox", // 0xc8 - "lo", // 0xc9 - "lop", // 0xca - "lex", // 0xcb - "le", // 0xcc - "lep", // 0xcd - "lut", // 0xce - "lux", // 0xcf - "lu", // 0xd0 - "lup", // 0xd1 - "lurx", // 0xd2 - "lur", // 0xd3 - "lyt", // 0xd4 - "lyx", // 0xd5 - "ly", // 0xd6 - "lyp", // 0xd7 - "lyrx", // 0xd8 - "lyr", // 0xd9 - "git", // 0xda - "gix", // 0xdb - "gi", // 0xdc - "gip", // 0xdd - "giet", // 0xde - "giex", // 0xdf - "gie", // 0xe0 - "giep", // 0xe1 - "gat", // 0xe2 - "gax", // 0xe3 - "ga", // 0xe4 - "gap", // 0xe5 - "guot", // 0xe6 - "guox", // 0xe7 - "guo", // 0xe8 - "guop", // 0xe9 - "got", // 0xea - "gox", // 0xeb - "go", // 0xec - "gop", // 0xed - "get", // 0xee - "gex", // 0xef - "ge", // 0xf0 - "gep", // 0xf1 - "gut", // 0xf2 - "gux", // 0xf3 - "gu", // 0xf4 - "gup", // 0xf5 - "gurx", // 0xf6 - "gur", // 0xf7 - "kit", // 0xf8 - "kix", // 0xf9 - "ki", // 0xfa - "kip", // 0xfb - "kiex", // 0xfc - "kie", // 0xfd - "kiep", // 0xfe - "kat", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0a2.go b/vendor/github.com/mozillazg/go-unidecode/table/x0a2.go deleted file mode 100644 index eedc457..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0a2.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0a2 = []string{ - "kax", // 0x00 - "ka", // 0x01 - "kap", // 0x02 - "kuox", // 0x03 - "kuo", // 0x04 - "kuop", // 0x05 - "kot", // 0x06 - "kox", // 0x07 - "ko", // 0x08 - "kop", // 0x09 - "ket", // 0x0a - "kex", // 0x0b - "ke", // 0x0c - "kep", // 0x0d - "kut", // 0x0e - "kux", // 0x0f - "ku", // 0x10 - "kup", // 0x11 - "kurx", // 0x12 - "kur", // 0x13 - "ggit", // 0x14 - "ggix", // 0x15 - "ggi", // 0x16 - "ggiex", // 0x17 - "ggie", // 0x18 - "ggiep", // 0x19 - "ggat", // 0x1a - "ggax", // 0x1b - "gga", // 0x1c - "ggap", // 0x1d - "gguot", // 0x1e - "gguox", // 0x1f - "gguo", // 0x20 - "gguop", // 0x21 - "ggot", // 0x22 - "ggox", // 0x23 - "ggo", // 0x24 - "ggop", // 0x25 - "gget", // 0x26 - "ggex", // 0x27 - "gge", // 0x28 - "ggep", // 0x29 - "ggut", // 0x2a - "ggux", // 0x2b - "ggu", // 0x2c - "ggup", // 0x2d - "ggurx", // 0x2e - "ggur", // 0x2f - "mgiex", // 0x30 - "mgie", // 0x31 - "mgat", // 0x32 - "mgax", // 0x33 - "mga", // 0x34 - "mgap", // 0x35 - "mguox", // 0x36 - "mguo", // 0x37 - "mguop", // 0x38 - "mgot", // 0x39 - "mgox", // 0x3a - "mgo", // 0x3b - "mgop", // 0x3c - "mgex", // 0x3d - "mge", // 0x3e - "mgep", // 0x3f - "mgut", // 0x40 - "mgux", // 0x41 - "mgu", // 0x42 - "mgup", // 0x43 - "mgurx", // 0x44 - "mgur", // 0x45 - "hxit", // 0x46 - "hxix", // 0x47 - "hxi", // 0x48 - "hxip", // 0x49 - "hxiet", // 0x4a - "hxiex", // 0x4b - "hxie", // 0x4c - "hxiep", // 0x4d - "hxat", // 0x4e - "hxax", // 0x4f - "hxa", // 0x50 - "hxap", // 0x51 - "hxuot", // 0x52 - "hxuox", // 0x53 - "hxuo", // 0x54 - "hxuop", // 0x55 - "hxot", // 0x56 - "hxox", // 0x57 - "hxo", // 0x58 - "hxop", // 0x59 - "hxex", // 0x5a - "hxe", // 0x5b - "hxep", // 0x5c - "ngiex", // 0x5d - "ngie", // 0x5e - "ngiep", // 0x5f - "ngat", // 0x60 - "ngax", // 0x61 - "nga", // 0x62 - "ngap", // 0x63 - "nguot", // 0x64 - "nguox", // 0x65 - "nguo", // 0x66 - "ngot", // 0x67 - "ngox", // 0x68 - "ngo", // 0x69 - "ngop", // 0x6a - "ngex", // 0x6b - "nge", // 0x6c - "ngep", // 0x6d - "hit", // 0x6e - "hiex", // 0x6f - "hie", // 0x70 - "hat", // 0x71 - "hax", // 0x72 - "ha", // 0x73 - "hap", // 0x74 - "huot", // 0x75 - "huox", // 0x76 - "huo", // 0x77 - "huop", // 0x78 - "hot", // 0x79 - "hox", // 0x7a - "ho", // 0x7b - "hop", // 0x7c - "hex", // 0x7d - "he", // 0x7e - "hep", // 0x7f - "wat", // 0x80 - "wax", // 0x81 - "wa", // 0x82 - "wap", // 0x83 - "wuox", // 0x84 - "wuo", // 0x85 - "wuop", // 0x86 - "wox", // 0x87 - "wo", // 0x88 - "wop", // 0x89 - "wex", // 0x8a - "we", // 0x8b - "wep", // 0x8c - "zit", // 0x8d - "zix", // 0x8e - "zi", // 0x8f - "zip", // 0x90 - "ziex", // 0x91 - "zie", // 0x92 - "ziep", // 0x93 - "zat", // 0x94 - "zax", // 0x95 - "za", // 0x96 - "zap", // 0x97 - "zuox", // 0x98 - "zuo", // 0x99 - "zuop", // 0x9a - "zot", // 0x9b - "zox", // 0x9c - "zo", // 0x9d - "zop", // 0x9e - "zex", // 0x9f - "ze", // 0xa0 - "zep", // 0xa1 - "zut", // 0xa2 - "zux", // 0xa3 - "zu", // 0xa4 - "zup", // 0xa5 - "zurx", // 0xa6 - "zur", // 0xa7 - "zyt", // 0xa8 - "zyx", // 0xa9 - "zy", // 0xaa - "zyp", // 0xab - "zyrx", // 0xac - "zyr", // 0xad - "cit", // 0xae - "cix", // 0xaf - "ci", // 0xb0 - "cip", // 0xb1 - "ciet", // 0xb2 - "ciex", // 0xb3 - "cie", // 0xb4 - "ciep", // 0xb5 - "cat", // 0xb6 - "cax", // 0xb7 - "ca", // 0xb8 - "cap", // 0xb9 - "cuox", // 0xba - "cuo", // 0xbb - "cuop", // 0xbc - "cot", // 0xbd - "cox", // 0xbe - "co", // 0xbf - "cop", // 0xc0 - "cex", // 0xc1 - "ce", // 0xc2 - "cep", // 0xc3 - "cut", // 0xc4 - "cux", // 0xc5 - "cu", // 0xc6 - "cup", // 0xc7 - "curx", // 0xc8 - "cur", // 0xc9 - "cyt", // 0xca - "cyx", // 0xcb - "cy", // 0xcc - "cyp", // 0xcd - "cyrx", // 0xce - "cyr", // 0xcf - "zzit", // 0xd0 - "zzix", // 0xd1 - "zzi", // 0xd2 - "zzip", // 0xd3 - "zziet", // 0xd4 - "zziex", // 0xd5 - "zzie", // 0xd6 - "zziep", // 0xd7 - "zzat", // 0xd8 - "zzax", // 0xd9 - "zza", // 0xda - "zzap", // 0xdb - "zzox", // 0xdc - "zzo", // 0xdd - "zzop", // 0xde - "zzex", // 0xdf - "zze", // 0xe0 - "zzep", // 0xe1 - "zzux", // 0xe2 - "zzu", // 0xe3 - "zzup", // 0xe4 - "zzurx", // 0xe5 - "zzur", // 0xe6 - "zzyt", // 0xe7 - "zzyx", // 0xe8 - "zzy", // 0xe9 - "zzyp", // 0xea - "zzyrx", // 0xeb - "zzyr", // 0xec - "nzit", // 0xed - "nzix", // 0xee - "nzi", // 0xef - "nzip", // 0xf0 - "nziex", // 0xf1 - "nzie", // 0xf2 - "nziep", // 0xf3 - "nzat", // 0xf4 - "nzax", // 0xf5 - "nza", // 0xf6 - "nzap", // 0xf7 - "nzuox", // 0xf8 - "nzuo", // 0xf9 - "nzox", // 0xfa - "nzop", // 0xfb - "nzex", // 0xfc - "nze", // 0xfd - "nzux", // 0xfe - "nzu", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0a3.go b/vendor/github.com/mozillazg/go-unidecode/table/x0a3.go deleted file mode 100644 index ef717f5..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0a3.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0a3 = []string{ - "nzup", // 0x00 - "nzurx", // 0x01 - "nzur", // 0x02 - "nzyt", // 0x03 - "nzyx", // 0x04 - "nzy", // 0x05 - "nzyp", // 0x06 - "nzyrx", // 0x07 - "nzyr", // 0x08 - "sit", // 0x09 - "six", // 0x0a - "si", // 0x0b - "sip", // 0x0c - "siex", // 0x0d - "sie", // 0x0e - "siep", // 0x0f - "sat", // 0x10 - "sax", // 0x11 - "sa", // 0x12 - "sap", // 0x13 - "suox", // 0x14 - "suo", // 0x15 - "suop", // 0x16 - "sot", // 0x17 - "sox", // 0x18 - "so", // 0x19 - "sop", // 0x1a - "sex", // 0x1b - "se", // 0x1c - "sep", // 0x1d - "sut", // 0x1e - "sux", // 0x1f - "su", // 0x20 - "sup", // 0x21 - "surx", // 0x22 - "sur", // 0x23 - "syt", // 0x24 - "syx", // 0x25 - "sy", // 0x26 - "syp", // 0x27 - "syrx", // 0x28 - "syr", // 0x29 - "ssit", // 0x2a - "ssix", // 0x2b - "ssi", // 0x2c - "ssip", // 0x2d - "ssiex", // 0x2e - "ssie", // 0x2f - "ssiep", // 0x30 - "ssat", // 0x31 - "ssax", // 0x32 - "ssa", // 0x33 - "ssap", // 0x34 - "ssot", // 0x35 - "ssox", // 0x36 - "sso", // 0x37 - "ssop", // 0x38 - "ssex", // 0x39 - "sse", // 0x3a - "ssep", // 0x3b - "ssut", // 0x3c - "ssux", // 0x3d - "ssu", // 0x3e - "ssup", // 0x3f - "ssyt", // 0x40 - "ssyx", // 0x41 - "ssy", // 0x42 - "ssyp", // 0x43 - "ssyrx", // 0x44 - "ssyr", // 0x45 - "zhat", // 0x46 - "zhax", // 0x47 - "zha", // 0x48 - "zhap", // 0x49 - "zhuox", // 0x4a - "zhuo", // 0x4b - "zhuop", // 0x4c - "zhot", // 0x4d - "zhox", // 0x4e - "zho", // 0x4f - "zhop", // 0x50 - "zhet", // 0x51 - "zhex", // 0x52 - "zhe", // 0x53 - "zhep", // 0x54 - "zhut", // 0x55 - "zhux", // 0x56 - "zhu", // 0x57 - "zhup", // 0x58 - "zhurx", // 0x59 - "zhur", // 0x5a - "zhyt", // 0x5b - "zhyx", // 0x5c - "zhy", // 0x5d - "zhyp", // 0x5e - "zhyrx", // 0x5f - "zhyr", // 0x60 - "chat", // 0x61 - "chax", // 0x62 - "cha", // 0x63 - "chap", // 0x64 - "chuot", // 0x65 - "chuox", // 0x66 - "chuo", // 0x67 - "chuop", // 0x68 - "chot", // 0x69 - "chox", // 0x6a - "cho", // 0x6b - "chop", // 0x6c - "chet", // 0x6d - "chex", // 0x6e - "che", // 0x6f - "chep", // 0x70 - "chux", // 0x71 - "chu", // 0x72 - "chup", // 0x73 - "churx", // 0x74 - "chur", // 0x75 - "chyt", // 0x76 - "chyx", // 0x77 - "chy", // 0x78 - "chyp", // 0x79 - "chyrx", // 0x7a - "chyr", // 0x7b - "rrax", // 0x7c - "rra", // 0x7d - "rruox", // 0x7e - "rruo", // 0x7f - "rrot", // 0x80 - "rrox", // 0x81 - "rro", // 0x82 - "rrop", // 0x83 - "rret", // 0x84 - "rrex", // 0x85 - "rre", // 0x86 - "rrep", // 0x87 - "rrut", // 0x88 - "rrux", // 0x89 - "rru", // 0x8a - "rrup", // 0x8b - "rrurx", // 0x8c - "rrur", // 0x8d - "rryt", // 0x8e - "rryx", // 0x8f - "rry", // 0x90 - "rryp", // 0x91 - "rryrx", // 0x92 - "rryr", // 0x93 - "nrat", // 0x94 - "nrax", // 0x95 - "nra", // 0x96 - "nrap", // 0x97 - "nrox", // 0x98 - "nro", // 0x99 - "nrop", // 0x9a - "nret", // 0x9b - "nrex", // 0x9c - "nre", // 0x9d - "nrep", // 0x9e - "nrut", // 0x9f - "nrux", // 0xa0 - "nru", // 0xa1 - "nrup", // 0xa2 - "nrurx", // 0xa3 - "nrur", // 0xa4 - "nryt", // 0xa5 - "nryx", // 0xa6 - "nry", // 0xa7 - "nryp", // 0xa8 - "nryrx", // 0xa9 - "nryr", // 0xaa - "shat", // 0xab - "shax", // 0xac - "sha", // 0xad - "shap", // 0xae - "shuox", // 0xaf - "shuo", // 0xb0 - "shuop", // 0xb1 - "shot", // 0xb2 - "shox", // 0xb3 - "sho", // 0xb4 - "shop", // 0xb5 - "shet", // 0xb6 - "shex", // 0xb7 - "she", // 0xb8 - "shep", // 0xb9 - "shut", // 0xba - "shux", // 0xbb - "shu", // 0xbc - "shup", // 0xbd - "shurx", // 0xbe - "shur", // 0xbf - "shyt", // 0xc0 - "shyx", // 0xc1 - "shy", // 0xc2 - "shyp", // 0xc3 - "shyrx", // 0xc4 - "shyr", // 0xc5 - "rat", // 0xc6 - "rax", // 0xc7 - "ra", // 0xc8 - "rap", // 0xc9 - "ruox", // 0xca - "ruo", // 0xcb - "ruop", // 0xcc - "rot", // 0xcd - "rox", // 0xce - "ro", // 0xcf - "rop", // 0xd0 - "rex", // 0xd1 - "re", // 0xd2 - "rep", // 0xd3 - "rut", // 0xd4 - "rux", // 0xd5 - "ru", // 0xd6 - "rup", // 0xd7 - "rurx", // 0xd8 - "rur", // 0xd9 - "ryt", // 0xda - "ryx", // 0xdb - "ry", // 0xdc - "ryp", // 0xdd - "ryrx", // 0xde - "ryr", // 0xdf - "jit", // 0xe0 - "jix", // 0xe1 - "ji", // 0xe2 - "jip", // 0xe3 - "jiet", // 0xe4 - "jiex", // 0xe5 - "jie", // 0xe6 - "jiep", // 0xe7 - "juot", // 0xe8 - "juox", // 0xe9 - "juo", // 0xea - "juop", // 0xeb - "jot", // 0xec - "jox", // 0xed - "jo", // 0xee - "jop", // 0xef - "jut", // 0xf0 - "jux", // 0xf1 - "ju", // 0xf2 - "jup", // 0xf3 - "jurx", // 0xf4 - "jur", // 0xf5 - "jyt", // 0xf6 - "jyx", // 0xf7 - "jy", // 0xf8 - "jyp", // 0xf9 - "jyrx", // 0xfa - "jyr", // 0xfb - "qit", // 0xfc - "qix", // 0xfd - "qi", // 0xfe - "qip", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0a4.go b/vendor/github.com/mozillazg/go-unidecode/table/x0a4.go deleted file mode 100644 index b6cf5f1..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0a4.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x0a4 = []string{ - "qiet", // 0x00 - "qiex", // 0x01 - "qie", // 0x02 - "qiep", // 0x03 - "quot", // 0x04 - "quox", // 0x05 - "quo", // 0x06 - "quop", // 0x07 - "qot", // 0x08 - "qox", // 0x09 - "qo", // 0x0a - "qop", // 0x0b - "qut", // 0x0c - "qux", // 0x0d - "qu", // 0x0e - "qup", // 0x0f - "qurx", // 0x10 - "qur", // 0x11 - "qyt", // 0x12 - "qyx", // 0x13 - "qy", // 0x14 - "qyp", // 0x15 - "qyrx", // 0x16 - "qyr", // 0x17 - "jjit", // 0x18 - "jjix", // 0x19 - "jji", // 0x1a - "jjip", // 0x1b - "jjiet", // 0x1c - "jjiex", // 0x1d - "jjie", // 0x1e - "jjiep", // 0x1f - "jjuox", // 0x20 - "jjuo", // 0x21 - "jjuop", // 0x22 - "jjot", // 0x23 - "jjox", // 0x24 - "jjo", // 0x25 - "jjop", // 0x26 - "jjut", // 0x27 - "jjux", // 0x28 - "jju", // 0x29 - "jjup", // 0x2a - "jjurx", // 0x2b - "jjur", // 0x2c - "jjyt", // 0x2d - "jjyx", // 0x2e - "jjy", // 0x2f - "jjyp", // 0x30 - "njit", // 0x31 - "njix", // 0x32 - "nji", // 0x33 - "njip", // 0x34 - "njiet", // 0x35 - "njiex", // 0x36 - "njie", // 0x37 - "njiep", // 0x38 - "njuox", // 0x39 - "njuo", // 0x3a - "njot", // 0x3b - "njox", // 0x3c - "njo", // 0x3d - "njop", // 0x3e - "njux", // 0x3f - "nju", // 0x40 - "njup", // 0x41 - "njurx", // 0x42 - "njur", // 0x43 - "njyt", // 0x44 - "njyx", // 0x45 - "njy", // 0x46 - "njyp", // 0x47 - "njyrx", // 0x48 - "njyr", // 0x49 - "nyit", // 0x4a - "nyix", // 0x4b - "nyi", // 0x4c - "nyip", // 0x4d - "nyiet", // 0x4e - "nyiex", // 0x4f - "nyie", // 0x50 - "nyiep", // 0x51 - "nyuox", // 0x52 - "nyuo", // 0x53 - "nyuop", // 0x54 - "nyot", // 0x55 - "nyox", // 0x56 - "nyo", // 0x57 - "nyop", // 0x58 - "nyut", // 0x59 - "nyux", // 0x5a - "nyu", // 0x5b - "nyup", // 0x5c - "xit", // 0x5d - "xix", // 0x5e - "xi", // 0x5f - "xip", // 0x60 - "xiet", // 0x61 - "xiex", // 0x62 - "xie", // 0x63 - "xiep", // 0x64 - "xuox", // 0x65 - "xuo", // 0x66 - "xot", // 0x67 - "xox", // 0x68 - "xo", // 0x69 - "xop", // 0x6a - "xyt", // 0x6b - "xyx", // 0x6c - "xy", // 0x6d - "xyp", // 0x6e - "xyrx", // 0x6f - "xyr", // 0x70 - "yit", // 0x71 - "yix", // 0x72 - "yi", // 0x73 - "yip", // 0x74 - "yiet", // 0x75 - "yiex", // 0x76 - "yie", // 0x77 - "yiep", // 0x78 - "yuot", // 0x79 - "yuox", // 0x7a - "yuo", // 0x7b - "yuop", // 0x7c - "yot", // 0x7d - "yox", // 0x7e - "yo", // 0x7f - "yop", // 0x80 - "yut", // 0x81 - "yux", // 0x82 - "yu", // 0x83 - "yup", // 0x84 - "yurx", // 0x85 - "yur", // 0x86 - "yyt", // 0x87 - "yyx", // 0x88 - "yy", // 0x89 - "yyp", // 0x8a - "yyrx", // 0x8b - "yyr", // 0x8c - "[?]", // 0x8d - "[?]", // 0x8e - "[?]", // 0x8f - "Qot", // 0x90 - "Li", // 0x91 - "Kit", // 0x92 - "Nyip", // 0x93 - "Cyp", // 0x94 - "Ssi", // 0x95 - "Ggop", // 0x96 - "Gep", // 0x97 - "Mi", // 0x98 - "Hxit", // 0x99 - "Lyr", // 0x9a - "Bbut", // 0x9b - "Mop", // 0x9c - "Yo", // 0x9d - "Put", // 0x9e - "Hxuo", // 0x9f - "Tat", // 0xa0 - "Ga", // 0xa1 - "[?]", // 0xa2 - "[?]", // 0xa3 - "Ddur", // 0xa4 - "Bur", // 0xa5 - "Gguo", // 0xa6 - "Nyop", // 0xa7 - "Tu", // 0xa8 - "Op", // 0xa9 - "Jjut", // 0xaa - "Zot", // 0xab - "Pyt", // 0xac - "Hmo", // 0xad - "Yit", // 0xae - "Vur", // 0xaf - "Shy", // 0xb0 - "Vep", // 0xb1 - "Za", // 0xb2 - "Jo", // 0xb3 - "[?]", // 0xb4 - "Jjy", // 0xb5 - "Got", // 0xb6 - "Jjie", // 0xb7 - "Wo", // 0xb8 - "Du", // 0xb9 - "Shur", // 0xba - "Lie", // 0xbb - "Cy", // 0xbc - "Cuop", // 0xbd - "Cip", // 0xbe - "Hxop", // 0xbf - "Shat", // 0xc0 - "[?]", // 0xc1 - "Shop", // 0xc2 - "Che", // 0xc3 - "Zziet", // 0xc4 - "[?]", // 0xc5 - "Ke", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0ac.go b/vendor/github.com/mozillazg/go-unidecode/table/x0ac.go deleted file mode 100644 index 8bd067e..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0ac.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0ac = []string{ - "ga", // 0x00 - "gag", // 0x01 - "gagg", // 0x02 - "gags", // 0x03 - "gan", // 0x04 - "ganj", // 0x05 - "ganh", // 0x06 - "gad", // 0x07 - "gal", // 0x08 - "galg", // 0x09 - "galm", // 0x0a - "galb", // 0x0b - "gals", // 0x0c - "galt", // 0x0d - "galp", // 0x0e - "galh", // 0x0f - "gam", // 0x10 - "gab", // 0x11 - "gabs", // 0x12 - "gas", // 0x13 - "gass", // 0x14 - "gang", // 0x15 - "gaj", // 0x16 - "gac", // 0x17 - "gak", // 0x18 - "gat", // 0x19 - "gap", // 0x1a - "gah", // 0x1b - "gae", // 0x1c - "gaeg", // 0x1d - "gaegg", // 0x1e - "gaegs", // 0x1f - "gaen", // 0x20 - "gaenj", // 0x21 - "gaenh", // 0x22 - "gaed", // 0x23 - "gael", // 0x24 - "gaelg", // 0x25 - "gaelm", // 0x26 - "gaelb", // 0x27 - "gaels", // 0x28 - "gaelt", // 0x29 - "gaelp", // 0x2a - "gaelh", // 0x2b - "gaem", // 0x2c - "gaeb", // 0x2d - "gaebs", // 0x2e - "gaes", // 0x2f - "gaess", // 0x30 - "gaeng", // 0x31 - "gaej", // 0x32 - "gaec", // 0x33 - "gaek", // 0x34 - "gaet", // 0x35 - "gaep", // 0x36 - "gaeh", // 0x37 - "gya", // 0x38 - "gyag", // 0x39 - "gyagg", // 0x3a - "gyags", // 0x3b - "gyan", // 0x3c - "gyanj", // 0x3d - "gyanh", // 0x3e - "gyad", // 0x3f - "gyal", // 0x40 - "gyalg", // 0x41 - "gyalm", // 0x42 - "gyalb", // 0x43 - "gyals", // 0x44 - "gyalt", // 0x45 - "gyalp", // 0x46 - "gyalh", // 0x47 - "gyam", // 0x48 - "gyab", // 0x49 - "gyabs", // 0x4a - "gyas", // 0x4b - "gyass", // 0x4c - "gyang", // 0x4d - "gyaj", // 0x4e - "gyac", // 0x4f - "gyak", // 0x50 - "gyat", // 0x51 - "gyap", // 0x52 - "gyah", // 0x53 - "gyae", // 0x54 - "gyaeg", // 0x55 - "gyaegg", // 0x56 - "gyaegs", // 0x57 - "gyaen", // 0x58 - "gyaenj", // 0x59 - "gyaenh", // 0x5a - "gyaed", // 0x5b - "gyael", // 0x5c - "gyaelg", // 0x5d - "gyaelm", // 0x5e - "gyaelb", // 0x5f - "gyaels", // 0x60 - "gyaelt", // 0x61 - "gyaelp", // 0x62 - "gyaelh", // 0x63 - "gyaem", // 0x64 - "gyaeb", // 0x65 - "gyaebs", // 0x66 - "gyaes", // 0x67 - "gyaess", // 0x68 - "gyaeng", // 0x69 - "gyaej", // 0x6a - "gyaec", // 0x6b - "gyaek", // 0x6c - "gyaet", // 0x6d - "gyaep", // 0x6e - "gyaeh", // 0x6f - "geo", // 0x70 - "geog", // 0x71 - "geogg", // 0x72 - "geogs", // 0x73 - "geon", // 0x74 - "geonj", // 0x75 - "geonh", // 0x76 - "geod", // 0x77 - "geol", // 0x78 - "geolg", // 0x79 - "geolm", // 0x7a - "geolb", // 0x7b - "geols", // 0x7c - "geolt", // 0x7d - "geolp", // 0x7e - "geolh", // 0x7f - "geom", // 0x80 - "geob", // 0x81 - "geobs", // 0x82 - "geos", // 0x83 - "geoss", // 0x84 - "geong", // 0x85 - "geoj", // 0x86 - "geoc", // 0x87 - "geok", // 0x88 - "geot", // 0x89 - "geop", // 0x8a - "geoh", // 0x8b - "ge", // 0x8c - "geg", // 0x8d - "gegg", // 0x8e - "gegs", // 0x8f - "gen", // 0x90 - "genj", // 0x91 - "genh", // 0x92 - "ged", // 0x93 - "gel", // 0x94 - "gelg", // 0x95 - "gelm", // 0x96 - "gelb", // 0x97 - "gels", // 0x98 - "gelt", // 0x99 - "gelp", // 0x9a - "gelh", // 0x9b - "gem", // 0x9c - "geb", // 0x9d - "gebs", // 0x9e - "ges", // 0x9f - "gess", // 0xa0 - "geng", // 0xa1 - "gej", // 0xa2 - "gec", // 0xa3 - "gek", // 0xa4 - "get", // 0xa5 - "gep", // 0xa6 - "geh", // 0xa7 - "gyeo", // 0xa8 - "gyeog", // 0xa9 - "gyeogg", // 0xaa - "gyeogs", // 0xab - "gyeon", // 0xac - "gyeonj", // 0xad - "gyeonh", // 0xae - "gyeod", // 0xaf - "gyeol", // 0xb0 - "gyeolg", // 0xb1 - "gyeolm", // 0xb2 - "gyeolb", // 0xb3 - "gyeols", // 0xb4 - "gyeolt", // 0xb5 - "gyeolp", // 0xb6 - "gyeolh", // 0xb7 - "gyeom", // 0xb8 - "gyeob", // 0xb9 - "gyeobs", // 0xba - "gyeos", // 0xbb - "gyeoss", // 0xbc - "gyeong", // 0xbd - "gyeoj", // 0xbe - "gyeoc", // 0xbf - "gyeok", // 0xc0 - "gyeot", // 0xc1 - "gyeop", // 0xc2 - "gyeoh", // 0xc3 - "gye", // 0xc4 - "gyeg", // 0xc5 - "gyegg", // 0xc6 - "gyegs", // 0xc7 - "gyen", // 0xc8 - "gyenj", // 0xc9 - "gyenh", // 0xca - "gyed", // 0xcb - "gyel", // 0xcc - "gyelg", // 0xcd - "gyelm", // 0xce - "gyelb", // 0xcf - "gyels", // 0xd0 - "gyelt", // 0xd1 - "gyelp", // 0xd2 - "gyelh", // 0xd3 - "gyem", // 0xd4 - "gyeb", // 0xd5 - "gyebs", // 0xd6 - "gyes", // 0xd7 - "gyess", // 0xd8 - "gyeng", // 0xd9 - "gyej", // 0xda - "gyec", // 0xdb - "gyek", // 0xdc - "gyet", // 0xdd - "gyep", // 0xde - "gyeh", // 0xdf - "go", // 0xe0 - "gog", // 0xe1 - "gogg", // 0xe2 - "gogs", // 0xe3 - "gon", // 0xe4 - "gonj", // 0xe5 - "gonh", // 0xe6 - "god", // 0xe7 - "gol", // 0xe8 - "golg", // 0xe9 - "golm", // 0xea - "golb", // 0xeb - "gols", // 0xec - "golt", // 0xed - "golp", // 0xee - "golh", // 0xef - "gom", // 0xf0 - "gob", // 0xf1 - "gobs", // 0xf2 - "gos", // 0xf3 - "goss", // 0xf4 - "gong", // 0xf5 - "goj", // 0xf6 - "goc", // 0xf7 - "gok", // 0xf8 - "got", // 0xf9 - "gop", // 0xfa - "goh", // 0xfb - "gwa", // 0xfc - "gwag", // 0xfd - "gwagg", // 0xfe - "gwags", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0ad.go b/vendor/github.com/mozillazg/go-unidecode/table/x0ad.go deleted file mode 100644 index 3fd9a47..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0ad.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0ad = []string{ - "gwan", // 0x00 - "gwanj", // 0x01 - "gwanh", // 0x02 - "gwad", // 0x03 - "gwal", // 0x04 - "gwalg", // 0x05 - "gwalm", // 0x06 - "gwalb", // 0x07 - "gwals", // 0x08 - "gwalt", // 0x09 - "gwalp", // 0x0a - "gwalh", // 0x0b - "gwam", // 0x0c - "gwab", // 0x0d - "gwabs", // 0x0e - "gwas", // 0x0f - "gwass", // 0x10 - "gwang", // 0x11 - "gwaj", // 0x12 - "gwac", // 0x13 - "gwak", // 0x14 - "gwat", // 0x15 - "gwap", // 0x16 - "gwah", // 0x17 - "gwae", // 0x18 - "gwaeg", // 0x19 - "gwaegg", // 0x1a - "gwaegs", // 0x1b - "gwaen", // 0x1c - "gwaenj", // 0x1d - "gwaenh", // 0x1e - "gwaed", // 0x1f - "gwael", // 0x20 - "gwaelg", // 0x21 - "gwaelm", // 0x22 - "gwaelb", // 0x23 - "gwaels", // 0x24 - "gwaelt", // 0x25 - "gwaelp", // 0x26 - "gwaelh", // 0x27 - "gwaem", // 0x28 - "gwaeb", // 0x29 - "gwaebs", // 0x2a - "gwaes", // 0x2b - "gwaess", // 0x2c - "gwaeng", // 0x2d - "gwaej", // 0x2e - "gwaec", // 0x2f - "gwaek", // 0x30 - "gwaet", // 0x31 - "gwaep", // 0x32 - "gwaeh", // 0x33 - "goe", // 0x34 - "goeg", // 0x35 - "goegg", // 0x36 - "goegs", // 0x37 - "goen", // 0x38 - "goenj", // 0x39 - "goenh", // 0x3a - "goed", // 0x3b - "goel", // 0x3c - "goelg", // 0x3d - "goelm", // 0x3e - "goelb", // 0x3f - "goels", // 0x40 - "goelt", // 0x41 - "goelp", // 0x42 - "goelh", // 0x43 - "goem", // 0x44 - "goeb", // 0x45 - "goebs", // 0x46 - "goes", // 0x47 - "goess", // 0x48 - "goeng", // 0x49 - "goej", // 0x4a - "goec", // 0x4b - "goek", // 0x4c - "goet", // 0x4d - "goep", // 0x4e - "goeh", // 0x4f - "gyo", // 0x50 - "gyog", // 0x51 - "gyogg", // 0x52 - "gyogs", // 0x53 - "gyon", // 0x54 - "gyonj", // 0x55 - "gyonh", // 0x56 - "gyod", // 0x57 - "gyol", // 0x58 - "gyolg", // 0x59 - "gyolm", // 0x5a - "gyolb", // 0x5b - "gyols", // 0x5c - "gyolt", // 0x5d - "gyolp", // 0x5e - "gyolh", // 0x5f - "gyom", // 0x60 - "gyob", // 0x61 - "gyobs", // 0x62 - "gyos", // 0x63 - "gyoss", // 0x64 - "gyong", // 0x65 - "gyoj", // 0x66 - "gyoc", // 0x67 - "gyok", // 0x68 - "gyot", // 0x69 - "gyop", // 0x6a - "gyoh", // 0x6b - "gu", // 0x6c - "gug", // 0x6d - "gugg", // 0x6e - "gugs", // 0x6f - "gun", // 0x70 - "gunj", // 0x71 - "gunh", // 0x72 - "gud", // 0x73 - "gul", // 0x74 - "gulg", // 0x75 - "gulm", // 0x76 - "gulb", // 0x77 - "guls", // 0x78 - "gult", // 0x79 - "gulp", // 0x7a - "gulh", // 0x7b - "gum", // 0x7c - "gub", // 0x7d - "gubs", // 0x7e - "gus", // 0x7f - "guss", // 0x80 - "gung", // 0x81 - "guj", // 0x82 - "guc", // 0x83 - "guk", // 0x84 - "gut", // 0x85 - "gup", // 0x86 - "guh", // 0x87 - "gweo", // 0x88 - "gweog", // 0x89 - "gweogg", // 0x8a - "gweogs", // 0x8b - "gweon", // 0x8c - "gweonj", // 0x8d - "gweonh", // 0x8e - "gweod", // 0x8f - "gweol", // 0x90 - "gweolg", // 0x91 - "gweolm", // 0x92 - "gweolb", // 0x93 - "gweols", // 0x94 - "gweolt", // 0x95 - "gweolp", // 0x96 - "gweolh", // 0x97 - "gweom", // 0x98 - "gweob", // 0x99 - "gweobs", // 0x9a - "gweos", // 0x9b - "gweoss", // 0x9c - "gweong", // 0x9d - "gweoj", // 0x9e - "gweoc", // 0x9f - "gweok", // 0xa0 - "gweot", // 0xa1 - "gweop", // 0xa2 - "gweoh", // 0xa3 - "gwe", // 0xa4 - "gweg", // 0xa5 - "gwegg", // 0xa6 - "gwegs", // 0xa7 - "gwen", // 0xa8 - "gwenj", // 0xa9 - "gwenh", // 0xaa - "gwed", // 0xab - "gwel", // 0xac - "gwelg", // 0xad - "gwelm", // 0xae - "gwelb", // 0xaf - "gwels", // 0xb0 - "gwelt", // 0xb1 - "gwelp", // 0xb2 - "gwelh", // 0xb3 - "gwem", // 0xb4 - "gweb", // 0xb5 - "gwebs", // 0xb6 - "gwes", // 0xb7 - "gwess", // 0xb8 - "gweng", // 0xb9 - "gwej", // 0xba - "gwec", // 0xbb - "gwek", // 0xbc - "gwet", // 0xbd - "gwep", // 0xbe - "gweh", // 0xbf - "gwi", // 0xc0 - "gwig", // 0xc1 - "gwigg", // 0xc2 - "gwigs", // 0xc3 - "gwin", // 0xc4 - "gwinj", // 0xc5 - "gwinh", // 0xc6 - "gwid", // 0xc7 - "gwil", // 0xc8 - "gwilg", // 0xc9 - "gwilm", // 0xca - "gwilb", // 0xcb - "gwils", // 0xcc - "gwilt", // 0xcd - "gwilp", // 0xce - "gwilh", // 0xcf - "gwim", // 0xd0 - "gwib", // 0xd1 - "gwibs", // 0xd2 - "gwis", // 0xd3 - "gwiss", // 0xd4 - "gwing", // 0xd5 - "gwij", // 0xd6 - "gwic", // 0xd7 - "gwik", // 0xd8 - "gwit", // 0xd9 - "gwip", // 0xda - "gwih", // 0xdb - "gyu", // 0xdc - "gyug", // 0xdd - "gyugg", // 0xde - "gyugs", // 0xdf - "gyun", // 0xe0 - "gyunj", // 0xe1 - "gyunh", // 0xe2 - "gyud", // 0xe3 - "gyul", // 0xe4 - "gyulg", // 0xe5 - "gyulm", // 0xe6 - "gyulb", // 0xe7 - "gyuls", // 0xe8 - "gyult", // 0xe9 - "gyulp", // 0xea - "gyulh", // 0xeb - "gyum", // 0xec - "gyub", // 0xed - "gyubs", // 0xee - "gyus", // 0xef - "gyuss", // 0xf0 - "gyung", // 0xf1 - "gyuj", // 0xf2 - "gyuc", // 0xf3 - "gyuk", // 0xf4 - "gyut", // 0xf5 - "gyup", // 0xf6 - "gyuh", // 0xf7 - "geu", // 0xf8 - "geug", // 0xf9 - "geugg", // 0xfa - "geugs", // 0xfb - "geun", // 0xfc - "geunj", // 0xfd - "geunh", // 0xfe - "geud", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0ae.go b/vendor/github.com/mozillazg/go-unidecode/table/x0ae.go deleted file mode 100644 index 4956990..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0ae.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0ae = []string{ - "geul", // 0x00 - "geulg", // 0x01 - "geulm", // 0x02 - "geulb", // 0x03 - "geuls", // 0x04 - "geult", // 0x05 - "geulp", // 0x06 - "geulh", // 0x07 - "geum", // 0x08 - "geub", // 0x09 - "geubs", // 0x0a - "geus", // 0x0b - "geuss", // 0x0c - "geung", // 0x0d - "geuj", // 0x0e - "geuc", // 0x0f - "geuk", // 0x10 - "geut", // 0x11 - "geup", // 0x12 - "geuh", // 0x13 - "gyi", // 0x14 - "gyig", // 0x15 - "gyigg", // 0x16 - "gyigs", // 0x17 - "gyin", // 0x18 - "gyinj", // 0x19 - "gyinh", // 0x1a - "gyid", // 0x1b - "gyil", // 0x1c - "gyilg", // 0x1d - "gyilm", // 0x1e - "gyilb", // 0x1f - "gyils", // 0x20 - "gyilt", // 0x21 - "gyilp", // 0x22 - "gyilh", // 0x23 - "gyim", // 0x24 - "gyib", // 0x25 - "gyibs", // 0x26 - "gyis", // 0x27 - "gyiss", // 0x28 - "gying", // 0x29 - "gyij", // 0x2a - "gyic", // 0x2b - "gyik", // 0x2c - "gyit", // 0x2d - "gyip", // 0x2e - "gyih", // 0x2f - "gi", // 0x30 - "gig", // 0x31 - "gigg", // 0x32 - "gigs", // 0x33 - "gin", // 0x34 - "ginj", // 0x35 - "ginh", // 0x36 - "gid", // 0x37 - "gil", // 0x38 - "gilg", // 0x39 - "gilm", // 0x3a - "gilb", // 0x3b - "gils", // 0x3c - "gilt", // 0x3d - "gilp", // 0x3e - "gilh", // 0x3f - "gim", // 0x40 - "gib", // 0x41 - "gibs", // 0x42 - "gis", // 0x43 - "giss", // 0x44 - "ging", // 0x45 - "gij", // 0x46 - "gic", // 0x47 - "gik", // 0x48 - "git", // 0x49 - "gip", // 0x4a - "gih", // 0x4b - "gga", // 0x4c - "ggag", // 0x4d - "ggagg", // 0x4e - "ggags", // 0x4f - "ggan", // 0x50 - "gganj", // 0x51 - "gganh", // 0x52 - "ggad", // 0x53 - "ggal", // 0x54 - "ggalg", // 0x55 - "ggalm", // 0x56 - "ggalb", // 0x57 - "ggals", // 0x58 - "ggalt", // 0x59 - "ggalp", // 0x5a - "ggalh", // 0x5b - "ggam", // 0x5c - "ggab", // 0x5d - "ggabs", // 0x5e - "ggas", // 0x5f - "ggass", // 0x60 - "ggang", // 0x61 - "ggaj", // 0x62 - "ggac", // 0x63 - "ggak", // 0x64 - "ggat", // 0x65 - "ggap", // 0x66 - "ggah", // 0x67 - "ggae", // 0x68 - "ggaeg", // 0x69 - "ggaegg", // 0x6a - "ggaegs", // 0x6b - "ggaen", // 0x6c - "ggaenj", // 0x6d - "ggaenh", // 0x6e - "ggaed", // 0x6f - "ggael", // 0x70 - "ggaelg", // 0x71 - "ggaelm", // 0x72 - "ggaelb", // 0x73 - "ggaels", // 0x74 - "ggaelt", // 0x75 - "ggaelp", // 0x76 - "ggaelh", // 0x77 - "ggaem", // 0x78 - "ggaeb", // 0x79 - "ggaebs", // 0x7a - "ggaes", // 0x7b - "ggaess", // 0x7c - "ggaeng", // 0x7d - "ggaej", // 0x7e - "ggaec", // 0x7f - "ggaek", // 0x80 - "ggaet", // 0x81 - "ggaep", // 0x82 - "ggaeh", // 0x83 - "ggya", // 0x84 - "ggyag", // 0x85 - "ggyagg", // 0x86 - "ggyags", // 0x87 - "ggyan", // 0x88 - "ggyanj", // 0x89 - "ggyanh", // 0x8a - "ggyad", // 0x8b - "ggyal", // 0x8c - "ggyalg", // 0x8d - "ggyalm", // 0x8e - "ggyalb", // 0x8f - "ggyals", // 0x90 - "ggyalt", // 0x91 - "ggyalp", // 0x92 - "ggyalh", // 0x93 - "ggyam", // 0x94 - "ggyab", // 0x95 - "ggyabs", // 0x96 - "ggyas", // 0x97 - "ggyass", // 0x98 - "ggyang", // 0x99 - "ggyaj", // 0x9a - "ggyac", // 0x9b - "ggyak", // 0x9c - "ggyat", // 0x9d - "ggyap", // 0x9e - "ggyah", // 0x9f - "ggyae", // 0xa0 - "ggyaeg", // 0xa1 - "ggyaegg", // 0xa2 - "ggyaegs", // 0xa3 - "ggyaen", // 0xa4 - "ggyaenj", // 0xa5 - "ggyaenh", // 0xa6 - "ggyaed", // 0xa7 - "ggyael", // 0xa8 - "ggyaelg", // 0xa9 - "ggyaelm", // 0xaa - "ggyaelb", // 0xab - "ggyaels", // 0xac - "ggyaelt", // 0xad - "ggyaelp", // 0xae - "ggyaelh", // 0xaf - "ggyaem", // 0xb0 - "ggyaeb", // 0xb1 - "ggyaebs", // 0xb2 - "ggyaes", // 0xb3 - "ggyaess", // 0xb4 - "ggyaeng", // 0xb5 - "ggyaej", // 0xb6 - "ggyaec", // 0xb7 - "ggyaek", // 0xb8 - "ggyaet", // 0xb9 - "ggyaep", // 0xba - "ggyaeh", // 0xbb - "ggeo", // 0xbc - "ggeog", // 0xbd - "ggeogg", // 0xbe - "ggeogs", // 0xbf - "ggeon", // 0xc0 - "ggeonj", // 0xc1 - "ggeonh", // 0xc2 - "ggeod", // 0xc3 - "ggeol", // 0xc4 - "ggeolg", // 0xc5 - "ggeolm", // 0xc6 - "ggeolb", // 0xc7 - "ggeols", // 0xc8 - "ggeolt", // 0xc9 - "ggeolp", // 0xca - "ggeolh", // 0xcb - "ggeom", // 0xcc - "ggeob", // 0xcd - "ggeobs", // 0xce - "ggeos", // 0xcf - "ggeoss", // 0xd0 - "ggeong", // 0xd1 - "ggeoj", // 0xd2 - "ggeoc", // 0xd3 - "ggeok", // 0xd4 - "ggeot", // 0xd5 - "ggeop", // 0xd6 - "ggeoh", // 0xd7 - "gge", // 0xd8 - "ggeg", // 0xd9 - "ggegg", // 0xda - "ggegs", // 0xdb - "ggen", // 0xdc - "ggenj", // 0xdd - "ggenh", // 0xde - "gged", // 0xdf - "ggel", // 0xe0 - "ggelg", // 0xe1 - "ggelm", // 0xe2 - "ggelb", // 0xe3 - "ggels", // 0xe4 - "ggelt", // 0xe5 - "ggelp", // 0xe6 - "ggelh", // 0xe7 - "ggem", // 0xe8 - "ggeb", // 0xe9 - "ggebs", // 0xea - "gges", // 0xeb - "ggess", // 0xec - "ggeng", // 0xed - "ggej", // 0xee - "ggec", // 0xef - "ggek", // 0xf0 - "gget", // 0xf1 - "ggep", // 0xf2 - "ggeh", // 0xf3 - "ggyeo", // 0xf4 - "ggyeog", // 0xf5 - "ggyeogg", // 0xf6 - "ggyeogs", // 0xf7 - "ggyeon", // 0xf8 - "ggyeonj", // 0xf9 - "ggyeonh", // 0xfa - "ggyeod", // 0xfb - "ggyeol", // 0xfc - "ggyeolg", // 0xfd - "ggyeolm", // 0xfe - "ggyeolb", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0af.go b/vendor/github.com/mozillazg/go-unidecode/table/x0af.go deleted file mode 100644 index 204ad06..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0af.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0af = []string{ - "ggyeols", // 0x00 - "ggyeolt", // 0x01 - "ggyeolp", // 0x02 - "ggyeolh", // 0x03 - "ggyeom", // 0x04 - "ggyeob", // 0x05 - "ggyeobs", // 0x06 - "ggyeos", // 0x07 - "ggyeoss", // 0x08 - "ggyeong", // 0x09 - "ggyeoj", // 0x0a - "ggyeoc", // 0x0b - "ggyeok", // 0x0c - "ggyeot", // 0x0d - "ggyeop", // 0x0e - "ggyeoh", // 0x0f - "ggye", // 0x10 - "ggyeg", // 0x11 - "ggyegg", // 0x12 - "ggyegs", // 0x13 - "ggyen", // 0x14 - "ggyenj", // 0x15 - "ggyenh", // 0x16 - "ggyed", // 0x17 - "ggyel", // 0x18 - "ggyelg", // 0x19 - "ggyelm", // 0x1a - "ggyelb", // 0x1b - "ggyels", // 0x1c - "ggyelt", // 0x1d - "ggyelp", // 0x1e - "ggyelh", // 0x1f - "ggyem", // 0x20 - "ggyeb", // 0x21 - "ggyebs", // 0x22 - "ggyes", // 0x23 - "ggyess", // 0x24 - "ggyeng", // 0x25 - "ggyej", // 0x26 - "ggyec", // 0x27 - "ggyek", // 0x28 - "ggyet", // 0x29 - "ggyep", // 0x2a - "ggyeh", // 0x2b - "ggo", // 0x2c - "ggog", // 0x2d - "ggogg", // 0x2e - "ggogs", // 0x2f - "ggon", // 0x30 - "ggonj", // 0x31 - "ggonh", // 0x32 - "ggod", // 0x33 - "ggol", // 0x34 - "ggolg", // 0x35 - "ggolm", // 0x36 - "ggolb", // 0x37 - "ggols", // 0x38 - "ggolt", // 0x39 - "ggolp", // 0x3a - "ggolh", // 0x3b - "ggom", // 0x3c - "ggob", // 0x3d - "ggobs", // 0x3e - "ggos", // 0x3f - "ggoss", // 0x40 - "ggong", // 0x41 - "ggoj", // 0x42 - "ggoc", // 0x43 - "ggok", // 0x44 - "ggot", // 0x45 - "ggop", // 0x46 - "ggoh", // 0x47 - "ggwa", // 0x48 - "ggwag", // 0x49 - "ggwagg", // 0x4a - "ggwags", // 0x4b - "ggwan", // 0x4c - "ggwanj", // 0x4d - "ggwanh", // 0x4e - "ggwad", // 0x4f - "ggwal", // 0x50 - "ggwalg", // 0x51 - "ggwalm", // 0x52 - "ggwalb", // 0x53 - "ggwals", // 0x54 - "ggwalt", // 0x55 - "ggwalp", // 0x56 - "ggwalh", // 0x57 - "ggwam", // 0x58 - "ggwab", // 0x59 - "ggwabs", // 0x5a - "ggwas", // 0x5b - "ggwass", // 0x5c - "ggwang", // 0x5d - "ggwaj", // 0x5e - "ggwac", // 0x5f - "ggwak", // 0x60 - "ggwat", // 0x61 - "ggwap", // 0x62 - "ggwah", // 0x63 - "ggwae", // 0x64 - "ggwaeg", // 0x65 - "ggwaegg", // 0x66 - "ggwaegs", // 0x67 - "ggwaen", // 0x68 - "ggwaenj", // 0x69 - "ggwaenh", // 0x6a - "ggwaed", // 0x6b - "ggwael", // 0x6c - "ggwaelg", // 0x6d - "ggwaelm", // 0x6e - "ggwaelb", // 0x6f - "ggwaels", // 0x70 - "ggwaelt", // 0x71 - "ggwaelp", // 0x72 - "ggwaelh", // 0x73 - "ggwaem", // 0x74 - "ggwaeb", // 0x75 - "ggwaebs", // 0x76 - "ggwaes", // 0x77 - "ggwaess", // 0x78 - "ggwaeng", // 0x79 - "ggwaej", // 0x7a - "ggwaec", // 0x7b - "ggwaek", // 0x7c - "ggwaet", // 0x7d - "ggwaep", // 0x7e - "ggwaeh", // 0x7f - "ggoe", // 0x80 - "ggoeg", // 0x81 - "ggoegg", // 0x82 - "ggoegs", // 0x83 - "ggoen", // 0x84 - "ggoenj", // 0x85 - "ggoenh", // 0x86 - "ggoed", // 0x87 - "ggoel", // 0x88 - "ggoelg", // 0x89 - "ggoelm", // 0x8a - "ggoelb", // 0x8b - "ggoels", // 0x8c - "ggoelt", // 0x8d - "ggoelp", // 0x8e - "ggoelh", // 0x8f - "ggoem", // 0x90 - "ggoeb", // 0x91 - "ggoebs", // 0x92 - "ggoes", // 0x93 - "ggoess", // 0x94 - "ggoeng", // 0x95 - "ggoej", // 0x96 - "ggoec", // 0x97 - "ggoek", // 0x98 - "ggoet", // 0x99 - "ggoep", // 0x9a - "ggoeh", // 0x9b - "ggyo", // 0x9c - "ggyog", // 0x9d - "ggyogg", // 0x9e - "ggyogs", // 0x9f - "ggyon", // 0xa0 - "ggyonj", // 0xa1 - "ggyonh", // 0xa2 - "ggyod", // 0xa3 - "ggyol", // 0xa4 - "ggyolg", // 0xa5 - "ggyolm", // 0xa6 - "ggyolb", // 0xa7 - "ggyols", // 0xa8 - "ggyolt", // 0xa9 - "ggyolp", // 0xaa - "ggyolh", // 0xab - "ggyom", // 0xac - "ggyob", // 0xad - "ggyobs", // 0xae - "ggyos", // 0xaf - "ggyoss", // 0xb0 - "ggyong", // 0xb1 - "ggyoj", // 0xb2 - "ggyoc", // 0xb3 - "ggyok", // 0xb4 - "ggyot", // 0xb5 - "ggyop", // 0xb6 - "ggyoh", // 0xb7 - "ggu", // 0xb8 - "ggug", // 0xb9 - "ggugg", // 0xba - "ggugs", // 0xbb - "ggun", // 0xbc - "ggunj", // 0xbd - "ggunh", // 0xbe - "ggud", // 0xbf - "ggul", // 0xc0 - "ggulg", // 0xc1 - "ggulm", // 0xc2 - "ggulb", // 0xc3 - "gguls", // 0xc4 - "ggult", // 0xc5 - "ggulp", // 0xc6 - "ggulh", // 0xc7 - "ggum", // 0xc8 - "ggub", // 0xc9 - "ggubs", // 0xca - "ggus", // 0xcb - "gguss", // 0xcc - "ggung", // 0xcd - "gguj", // 0xce - "gguc", // 0xcf - "gguk", // 0xd0 - "ggut", // 0xd1 - "ggup", // 0xd2 - "gguh", // 0xd3 - "ggweo", // 0xd4 - "ggweog", // 0xd5 - "ggweogg", // 0xd6 - "ggweogs", // 0xd7 - "ggweon", // 0xd8 - "ggweonj", // 0xd9 - "ggweonh", // 0xda - "ggweod", // 0xdb - "ggweol", // 0xdc - "ggweolg", // 0xdd - "ggweolm", // 0xde - "ggweolb", // 0xdf - "ggweols", // 0xe0 - "ggweolt", // 0xe1 - "ggweolp", // 0xe2 - "ggweolh", // 0xe3 - "ggweom", // 0xe4 - "ggweob", // 0xe5 - "ggweobs", // 0xe6 - "ggweos", // 0xe7 - "ggweoss", // 0xe8 - "ggweong", // 0xe9 - "ggweoj", // 0xea - "ggweoc", // 0xeb - "ggweok", // 0xec - "ggweot", // 0xed - "ggweop", // 0xee - "ggweoh", // 0xef - "ggwe", // 0xf0 - "ggweg", // 0xf1 - "ggwegg", // 0xf2 - "ggwegs", // 0xf3 - "ggwen", // 0xf4 - "ggwenj", // 0xf5 - "ggwenh", // 0xf6 - "ggwed", // 0xf7 - "ggwel", // 0xf8 - "ggwelg", // 0xf9 - "ggwelm", // 0xfa - "ggwelb", // 0xfb - "ggwels", // 0xfc - "ggwelt", // 0xfd - "ggwelp", // 0xfe - "ggwelh", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0b0.go b/vendor/github.com/mozillazg/go-unidecode/table/x0b0.go deleted file mode 100644 index 43db17a..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0b0.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0b0 = []string{ - "ggwem", // 0x00 - "ggweb", // 0x01 - "ggwebs", // 0x02 - "ggwes", // 0x03 - "ggwess", // 0x04 - "ggweng", // 0x05 - "ggwej", // 0x06 - "ggwec", // 0x07 - "ggwek", // 0x08 - "ggwet", // 0x09 - "ggwep", // 0x0a - "ggweh", // 0x0b - "ggwi", // 0x0c - "ggwig", // 0x0d - "ggwigg", // 0x0e - "ggwigs", // 0x0f - "ggwin", // 0x10 - "ggwinj", // 0x11 - "ggwinh", // 0x12 - "ggwid", // 0x13 - "ggwil", // 0x14 - "ggwilg", // 0x15 - "ggwilm", // 0x16 - "ggwilb", // 0x17 - "ggwils", // 0x18 - "ggwilt", // 0x19 - "ggwilp", // 0x1a - "ggwilh", // 0x1b - "ggwim", // 0x1c - "ggwib", // 0x1d - "ggwibs", // 0x1e - "ggwis", // 0x1f - "ggwiss", // 0x20 - "ggwing", // 0x21 - "ggwij", // 0x22 - "ggwic", // 0x23 - "ggwik", // 0x24 - "ggwit", // 0x25 - "ggwip", // 0x26 - "ggwih", // 0x27 - "ggyu", // 0x28 - "ggyug", // 0x29 - "ggyugg", // 0x2a - "ggyugs", // 0x2b - "ggyun", // 0x2c - "ggyunj", // 0x2d - "ggyunh", // 0x2e - "ggyud", // 0x2f - "ggyul", // 0x30 - "ggyulg", // 0x31 - "ggyulm", // 0x32 - "ggyulb", // 0x33 - "ggyuls", // 0x34 - "ggyult", // 0x35 - "ggyulp", // 0x36 - "ggyulh", // 0x37 - "ggyum", // 0x38 - "ggyub", // 0x39 - "ggyubs", // 0x3a - "ggyus", // 0x3b - "ggyuss", // 0x3c - "ggyung", // 0x3d - "ggyuj", // 0x3e - "ggyuc", // 0x3f - "ggyuk", // 0x40 - "ggyut", // 0x41 - "ggyup", // 0x42 - "ggyuh", // 0x43 - "ggeu", // 0x44 - "ggeug", // 0x45 - "ggeugg", // 0x46 - "ggeugs", // 0x47 - "ggeun", // 0x48 - "ggeunj", // 0x49 - "ggeunh", // 0x4a - "ggeud", // 0x4b - "ggeul", // 0x4c - "ggeulg", // 0x4d - "ggeulm", // 0x4e - "ggeulb", // 0x4f - "ggeuls", // 0x50 - "ggeult", // 0x51 - "ggeulp", // 0x52 - "ggeulh", // 0x53 - "ggeum", // 0x54 - "ggeub", // 0x55 - "ggeubs", // 0x56 - "ggeus", // 0x57 - "ggeuss", // 0x58 - "ggeung", // 0x59 - "ggeuj", // 0x5a - "ggeuc", // 0x5b - "ggeuk", // 0x5c - "ggeut", // 0x5d - "ggeup", // 0x5e - "ggeuh", // 0x5f - "ggyi", // 0x60 - "ggyig", // 0x61 - "ggyigg", // 0x62 - "ggyigs", // 0x63 - "ggyin", // 0x64 - "ggyinj", // 0x65 - "ggyinh", // 0x66 - "ggyid", // 0x67 - "ggyil", // 0x68 - "ggyilg", // 0x69 - "ggyilm", // 0x6a - "ggyilb", // 0x6b - "ggyils", // 0x6c - "ggyilt", // 0x6d - "ggyilp", // 0x6e - "ggyilh", // 0x6f - "ggyim", // 0x70 - "ggyib", // 0x71 - "ggyibs", // 0x72 - "ggyis", // 0x73 - "ggyiss", // 0x74 - "ggying", // 0x75 - "ggyij", // 0x76 - "ggyic", // 0x77 - "ggyik", // 0x78 - "ggyit", // 0x79 - "ggyip", // 0x7a - "ggyih", // 0x7b - "ggi", // 0x7c - "ggig", // 0x7d - "ggigg", // 0x7e - "ggigs", // 0x7f - "ggin", // 0x80 - "gginj", // 0x81 - "gginh", // 0x82 - "ggid", // 0x83 - "ggil", // 0x84 - "ggilg", // 0x85 - "ggilm", // 0x86 - "ggilb", // 0x87 - "ggils", // 0x88 - "ggilt", // 0x89 - "ggilp", // 0x8a - "ggilh", // 0x8b - "ggim", // 0x8c - "ggib", // 0x8d - "ggibs", // 0x8e - "ggis", // 0x8f - "ggiss", // 0x90 - "gging", // 0x91 - "ggij", // 0x92 - "ggic", // 0x93 - "ggik", // 0x94 - "ggit", // 0x95 - "ggip", // 0x96 - "ggih", // 0x97 - "na", // 0x98 - "nag", // 0x99 - "nagg", // 0x9a - "nags", // 0x9b - "nan", // 0x9c - "nanj", // 0x9d - "nanh", // 0x9e - "nad", // 0x9f - "nal", // 0xa0 - "nalg", // 0xa1 - "nalm", // 0xa2 - "nalb", // 0xa3 - "nals", // 0xa4 - "nalt", // 0xa5 - "nalp", // 0xa6 - "nalh", // 0xa7 - "nam", // 0xa8 - "nab", // 0xa9 - "nabs", // 0xaa - "nas", // 0xab - "nass", // 0xac - "nang", // 0xad - "naj", // 0xae - "nac", // 0xaf - "nak", // 0xb0 - "nat", // 0xb1 - "nap", // 0xb2 - "nah", // 0xb3 - "nae", // 0xb4 - "naeg", // 0xb5 - "naegg", // 0xb6 - "naegs", // 0xb7 - "naen", // 0xb8 - "naenj", // 0xb9 - "naenh", // 0xba - "naed", // 0xbb - "nael", // 0xbc - "naelg", // 0xbd - "naelm", // 0xbe - "naelb", // 0xbf - "naels", // 0xc0 - "naelt", // 0xc1 - "naelp", // 0xc2 - "naelh", // 0xc3 - "naem", // 0xc4 - "naeb", // 0xc5 - "naebs", // 0xc6 - "naes", // 0xc7 - "naess", // 0xc8 - "naeng", // 0xc9 - "naej", // 0xca - "naec", // 0xcb - "naek", // 0xcc - "naet", // 0xcd - "naep", // 0xce - "naeh", // 0xcf - "nya", // 0xd0 - "nyag", // 0xd1 - "nyagg", // 0xd2 - "nyags", // 0xd3 - "nyan", // 0xd4 - "nyanj", // 0xd5 - "nyanh", // 0xd6 - "nyad", // 0xd7 - "nyal", // 0xd8 - "nyalg", // 0xd9 - "nyalm", // 0xda - "nyalb", // 0xdb - "nyals", // 0xdc - "nyalt", // 0xdd - "nyalp", // 0xde - "nyalh", // 0xdf - "nyam", // 0xe0 - "nyab", // 0xe1 - "nyabs", // 0xe2 - "nyas", // 0xe3 - "nyass", // 0xe4 - "nyang", // 0xe5 - "nyaj", // 0xe6 - "nyac", // 0xe7 - "nyak", // 0xe8 - "nyat", // 0xe9 - "nyap", // 0xea - "nyah", // 0xeb - "nyae", // 0xec - "nyaeg", // 0xed - "nyaegg", // 0xee - "nyaegs", // 0xef - "nyaen", // 0xf0 - "nyaenj", // 0xf1 - "nyaenh", // 0xf2 - "nyaed", // 0xf3 - "nyael", // 0xf4 - "nyaelg", // 0xf5 - "nyaelm", // 0xf6 - "nyaelb", // 0xf7 - "nyaels", // 0xf8 - "nyaelt", // 0xf9 - "nyaelp", // 0xfa - "nyaelh", // 0xfb - "nyaem", // 0xfc - "nyaeb", // 0xfd - "nyaebs", // 0xfe - "nyaes", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0b1.go b/vendor/github.com/mozillazg/go-unidecode/table/x0b1.go deleted file mode 100644 index 2e89669..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0b1.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0b1 = []string{ - "nyaess", // 0x00 - "nyaeng", // 0x01 - "nyaej", // 0x02 - "nyaec", // 0x03 - "nyaek", // 0x04 - "nyaet", // 0x05 - "nyaep", // 0x06 - "nyaeh", // 0x07 - "neo", // 0x08 - "neog", // 0x09 - "neogg", // 0x0a - "neogs", // 0x0b - "neon", // 0x0c - "neonj", // 0x0d - "neonh", // 0x0e - "neod", // 0x0f - "neol", // 0x10 - "neolg", // 0x11 - "neolm", // 0x12 - "neolb", // 0x13 - "neols", // 0x14 - "neolt", // 0x15 - "neolp", // 0x16 - "neolh", // 0x17 - "neom", // 0x18 - "neob", // 0x19 - "neobs", // 0x1a - "neos", // 0x1b - "neoss", // 0x1c - "neong", // 0x1d - "neoj", // 0x1e - "neoc", // 0x1f - "neok", // 0x20 - "neot", // 0x21 - "neop", // 0x22 - "neoh", // 0x23 - "ne", // 0x24 - "neg", // 0x25 - "negg", // 0x26 - "negs", // 0x27 - "nen", // 0x28 - "nenj", // 0x29 - "nenh", // 0x2a - "ned", // 0x2b - "nel", // 0x2c - "nelg", // 0x2d - "nelm", // 0x2e - "nelb", // 0x2f - "nels", // 0x30 - "nelt", // 0x31 - "nelp", // 0x32 - "nelh", // 0x33 - "nem", // 0x34 - "neb", // 0x35 - "nebs", // 0x36 - "nes", // 0x37 - "ness", // 0x38 - "neng", // 0x39 - "nej", // 0x3a - "nec", // 0x3b - "nek", // 0x3c - "net", // 0x3d - "nep", // 0x3e - "neh", // 0x3f - "nyeo", // 0x40 - "nyeog", // 0x41 - "nyeogg", // 0x42 - "nyeogs", // 0x43 - "nyeon", // 0x44 - "nyeonj", // 0x45 - "nyeonh", // 0x46 - "nyeod", // 0x47 - "nyeol", // 0x48 - "nyeolg", // 0x49 - "nyeolm", // 0x4a - "nyeolb", // 0x4b - "nyeols", // 0x4c - "nyeolt", // 0x4d - "nyeolp", // 0x4e - "nyeolh", // 0x4f - "nyeom", // 0x50 - "nyeob", // 0x51 - "nyeobs", // 0x52 - "nyeos", // 0x53 - "nyeoss", // 0x54 - "nyeong", // 0x55 - "nyeoj", // 0x56 - "nyeoc", // 0x57 - "nyeok", // 0x58 - "nyeot", // 0x59 - "nyeop", // 0x5a - "nyeoh", // 0x5b - "nye", // 0x5c - "nyeg", // 0x5d - "nyegg", // 0x5e - "nyegs", // 0x5f - "nyen", // 0x60 - "nyenj", // 0x61 - "nyenh", // 0x62 - "nyed", // 0x63 - "nyel", // 0x64 - "nyelg", // 0x65 - "nyelm", // 0x66 - "nyelb", // 0x67 - "nyels", // 0x68 - "nyelt", // 0x69 - "nyelp", // 0x6a - "nyelh", // 0x6b - "nyem", // 0x6c - "nyeb", // 0x6d - "nyebs", // 0x6e - "nyes", // 0x6f - "nyess", // 0x70 - "nyeng", // 0x71 - "nyej", // 0x72 - "nyec", // 0x73 - "nyek", // 0x74 - "nyet", // 0x75 - "nyep", // 0x76 - "nyeh", // 0x77 - "no", // 0x78 - "nog", // 0x79 - "nogg", // 0x7a - "nogs", // 0x7b - "non", // 0x7c - "nonj", // 0x7d - "nonh", // 0x7e - "nod", // 0x7f - "nol", // 0x80 - "nolg", // 0x81 - "nolm", // 0x82 - "nolb", // 0x83 - "nols", // 0x84 - "nolt", // 0x85 - "nolp", // 0x86 - "nolh", // 0x87 - "nom", // 0x88 - "nob", // 0x89 - "nobs", // 0x8a - "nos", // 0x8b - "noss", // 0x8c - "nong", // 0x8d - "noj", // 0x8e - "noc", // 0x8f - "nok", // 0x90 - "not", // 0x91 - "nop", // 0x92 - "noh", // 0x93 - "nwa", // 0x94 - "nwag", // 0x95 - "nwagg", // 0x96 - "nwags", // 0x97 - "nwan", // 0x98 - "nwanj", // 0x99 - "nwanh", // 0x9a - "nwad", // 0x9b - "nwal", // 0x9c - "nwalg", // 0x9d - "nwalm", // 0x9e - "nwalb", // 0x9f - "nwals", // 0xa0 - "nwalt", // 0xa1 - "nwalp", // 0xa2 - "nwalh", // 0xa3 - "nwam", // 0xa4 - "nwab", // 0xa5 - "nwabs", // 0xa6 - "nwas", // 0xa7 - "nwass", // 0xa8 - "nwang", // 0xa9 - "nwaj", // 0xaa - "nwac", // 0xab - "nwak", // 0xac - "nwat", // 0xad - "nwap", // 0xae - "nwah", // 0xaf - "nwae", // 0xb0 - "nwaeg", // 0xb1 - "nwaegg", // 0xb2 - "nwaegs", // 0xb3 - "nwaen", // 0xb4 - "nwaenj", // 0xb5 - "nwaenh", // 0xb6 - "nwaed", // 0xb7 - "nwael", // 0xb8 - "nwaelg", // 0xb9 - "nwaelm", // 0xba - "nwaelb", // 0xbb - "nwaels", // 0xbc - "nwaelt", // 0xbd - "nwaelp", // 0xbe - "nwaelh", // 0xbf - "nwaem", // 0xc0 - "nwaeb", // 0xc1 - "nwaebs", // 0xc2 - "nwaes", // 0xc3 - "nwaess", // 0xc4 - "nwaeng", // 0xc5 - "nwaej", // 0xc6 - "nwaec", // 0xc7 - "nwaek", // 0xc8 - "nwaet", // 0xc9 - "nwaep", // 0xca - "nwaeh", // 0xcb - "noe", // 0xcc - "noeg", // 0xcd - "noegg", // 0xce - "noegs", // 0xcf - "noen", // 0xd0 - "noenj", // 0xd1 - "noenh", // 0xd2 - "noed", // 0xd3 - "noel", // 0xd4 - "noelg", // 0xd5 - "noelm", // 0xd6 - "noelb", // 0xd7 - "noels", // 0xd8 - "noelt", // 0xd9 - "noelp", // 0xda - "noelh", // 0xdb - "noem", // 0xdc - "noeb", // 0xdd - "noebs", // 0xde - "noes", // 0xdf - "noess", // 0xe0 - "noeng", // 0xe1 - "noej", // 0xe2 - "noec", // 0xe3 - "noek", // 0xe4 - "noet", // 0xe5 - "noep", // 0xe6 - "noeh", // 0xe7 - "nyo", // 0xe8 - "nyog", // 0xe9 - "nyogg", // 0xea - "nyogs", // 0xeb - "nyon", // 0xec - "nyonj", // 0xed - "nyonh", // 0xee - "nyod", // 0xef - "nyol", // 0xf0 - "nyolg", // 0xf1 - "nyolm", // 0xf2 - "nyolb", // 0xf3 - "nyols", // 0xf4 - "nyolt", // 0xf5 - "nyolp", // 0xf6 - "nyolh", // 0xf7 - "nyom", // 0xf8 - "nyob", // 0xf9 - "nyobs", // 0xfa - "nyos", // 0xfb - "nyoss", // 0xfc - "nyong", // 0xfd - "nyoj", // 0xfe - "nyoc", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0b2.go b/vendor/github.com/mozillazg/go-unidecode/table/x0b2.go deleted file mode 100644 index 2d8553c..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0b2.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0b2 = []string{ - "nyok", // 0x00 - "nyot", // 0x01 - "nyop", // 0x02 - "nyoh", // 0x03 - "nu", // 0x04 - "nug", // 0x05 - "nugg", // 0x06 - "nugs", // 0x07 - "nun", // 0x08 - "nunj", // 0x09 - "nunh", // 0x0a - "nud", // 0x0b - "nul", // 0x0c - "nulg", // 0x0d - "nulm", // 0x0e - "nulb", // 0x0f - "nuls", // 0x10 - "nult", // 0x11 - "nulp", // 0x12 - "nulh", // 0x13 - "num", // 0x14 - "nub", // 0x15 - "nubs", // 0x16 - "nus", // 0x17 - "nuss", // 0x18 - "nung", // 0x19 - "nuj", // 0x1a - "nuc", // 0x1b - "nuk", // 0x1c - "nut", // 0x1d - "nup", // 0x1e - "nuh", // 0x1f - "nweo", // 0x20 - "nweog", // 0x21 - "nweogg", // 0x22 - "nweogs", // 0x23 - "nweon", // 0x24 - "nweonj", // 0x25 - "nweonh", // 0x26 - "nweod", // 0x27 - "nweol", // 0x28 - "nweolg", // 0x29 - "nweolm", // 0x2a - "nweolb", // 0x2b - "nweols", // 0x2c - "nweolt", // 0x2d - "nweolp", // 0x2e - "nweolh", // 0x2f - "nweom", // 0x30 - "nweob", // 0x31 - "nweobs", // 0x32 - "nweos", // 0x33 - "nweoss", // 0x34 - "nweong", // 0x35 - "nweoj", // 0x36 - "nweoc", // 0x37 - "nweok", // 0x38 - "nweot", // 0x39 - "nweop", // 0x3a - "nweoh", // 0x3b - "nwe", // 0x3c - "nweg", // 0x3d - "nwegg", // 0x3e - "nwegs", // 0x3f - "nwen", // 0x40 - "nwenj", // 0x41 - "nwenh", // 0x42 - "nwed", // 0x43 - "nwel", // 0x44 - "nwelg", // 0x45 - "nwelm", // 0x46 - "nwelb", // 0x47 - "nwels", // 0x48 - "nwelt", // 0x49 - "nwelp", // 0x4a - "nwelh", // 0x4b - "nwem", // 0x4c - "nweb", // 0x4d - "nwebs", // 0x4e - "nwes", // 0x4f - "nwess", // 0x50 - "nweng", // 0x51 - "nwej", // 0x52 - "nwec", // 0x53 - "nwek", // 0x54 - "nwet", // 0x55 - "nwep", // 0x56 - "nweh", // 0x57 - "nwi", // 0x58 - "nwig", // 0x59 - "nwigg", // 0x5a - "nwigs", // 0x5b - "nwin", // 0x5c - "nwinj", // 0x5d - "nwinh", // 0x5e - "nwid", // 0x5f - "nwil", // 0x60 - "nwilg", // 0x61 - "nwilm", // 0x62 - "nwilb", // 0x63 - "nwils", // 0x64 - "nwilt", // 0x65 - "nwilp", // 0x66 - "nwilh", // 0x67 - "nwim", // 0x68 - "nwib", // 0x69 - "nwibs", // 0x6a - "nwis", // 0x6b - "nwiss", // 0x6c - "nwing", // 0x6d - "nwij", // 0x6e - "nwic", // 0x6f - "nwik", // 0x70 - "nwit", // 0x71 - "nwip", // 0x72 - "nwih", // 0x73 - "nyu", // 0x74 - "nyug", // 0x75 - "nyugg", // 0x76 - "nyugs", // 0x77 - "nyun", // 0x78 - "nyunj", // 0x79 - "nyunh", // 0x7a - "nyud", // 0x7b - "nyul", // 0x7c - "nyulg", // 0x7d - "nyulm", // 0x7e - "nyulb", // 0x7f - "nyuls", // 0x80 - "nyult", // 0x81 - "nyulp", // 0x82 - "nyulh", // 0x83 - "nyum", // 0x84 - "nyub", // 0x85 - "nyubs", // 0x86 - "nyus", // 0x87 - "nyuss", // 0x88 - "nyung", // 0x89 - "nyuj", // 0x8a - "nyuc", // 0x8b - "nyuk", // 0x8c - "nyut", // 0x8d - "nyup", // 0x8e - "nyuh", // 0x8f - "neu", // 0x90 - "neug", // 0x91 - "neugg", // 0x92 - "neugs", // 0x93 - "neun", // 0x94 - "neunj", // 0x95 - "neunh", // 0x96 - "neud", // 0x97 - "neul", // 0x98 - "neulg", // 0x99 - "neulm", // 0x9a - "neulb", // 0x9b - "neuls", // 0x9c - "neult", // 0x9d - "neulp", // 0x9e - "neulh", // 0x9f - "neum", // 0xa0 - "neub", // 0xa1 - "neubs", // 0xa2 - "neus", // 0xa3 - "neuss", // 0xa4 - "neung", // 0xa5 - "neuj", // 0xa6 - "neuc", // 0xa7 - "neuk", // 0xa8 - "neut", // 0xa9 - "neup", // 0xaa - "neuh", // 0xab - "nyi", // 0xac - "nyig", // 0xad - "nyigg", // 0xae - "nyigs", // 0xaf - "nyin", // 0xb0 - "nyinj", // 0xb1 - "nyinh", // 0xb2 - "nyid", // 0xb3 - "nyil", // 0xb4 - "nyilg", // 0xb5 - "nyilm", // 0xb6 - "nyilb", // 0xb7 - "nyils", // 0xb8 - "nyilt", // 0xb9 - "nyilp", // 0xba - "nyilh", // 0xbb - "nyim", // 0xbc - "nyib", // 0xbd - "nyibs", // 0xbe - "nyis", // 0xbf - "nyiss", // 0xc0 - "nying", // 0xc1 - "nyij", // 0xc2 - "nyic", // 0xc3 - "nyik", // 0xc4 - "nyit", // 0xc5 - "nyip", // 0xc6 - "nyih", // 0xc7 - "ni", // 0xc8 - "nig", // 0xc9 - "nigg", // 0xca - "nigs", // 0xcb - "nin", // 0xcc - "ninj", // 0xcd - "ninh", // 0xce - "nid", // 0xcf - "nil", // 0xd0 - "nilg", // 0xd1 - "nilm", // 0xd2 - "nilb", // 0xd3 - "nils", // 0xd4 - "nilt", // 0xd5 - "nilp", // 0xd6 - "nilh", // 0xd7 - "nim", // 0xd8 - "nib", // 0xd9 - "nibs", // 0xda - "nis", // 0xdb - "niss", // 0xdc - "ning", // 0xdd - "nij", // 0xde - "nic", // 0xdf - "nik", // 0xe0 - "nit", // 0xe1 - "nip", // 0xe2 - "nih", // 0xe3 - "da", // 0xe4 - "dag", // 0xe5 - "dagg", // 0xe6 - "dags", // 0xe7 - "dan", // 0xe8 - "danj", // 0xe9 - "danh", // 0xea - "dad", // 0xeb - "dal", // 0xec - "dalg", // 0xed - "dalm", // 0xee - "dalb", // 0xef - "dals", // 0xf0 - "dalt", // 0xf1 - "dalp", // 0xf2 - "dalh", // 0xf3 - "dam", // 0xf4 - "dab", // 0xf5 - "dabs", // 0xf6 - "das", // 0xf7 - "dass", // 0xf8 - "dang", // 0xf9 - "daj", // 0xfa - "dac", // 0xfb - "dak", // 0xfc - "dat", // 0xfd - "dap", // 0xfe - "dah", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0b3.go b/vendor/github.com/mozillazg/go-unidecode/table/x0b3.go deleted file mode 100644 index 8588a20..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0b3.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0b3 = []string{ - "dae", // 0x00 - "daeg", // 0x01 - "daegg", // 0x02 - "daegs", // 0x03 - "daen", // 0x04 - "daenj", // 0x05 - "daenh", // 0x06 - "daed", // 0x07 - "dael", // 0x08 - "daelg", // 0x09 - "daelm", // 0x0a - "daelb", // 0x0b - "daels", // 0x0c - "daelt", // 0x0d - "daelp", // 0x0e - "daelh", // 0x0f - "daem", // 0x10 - "daeb", // 0x11 - "daebs", // 0x12 - "daes", // 0x13 - "daess", // 0x14 - "daeng", // 0x15 - "daej", // 0x16 - "daec", // 0x17 - "daek", // 0x18 - "daet", // 0x19 - "daep", // 0x1a - "daeh", // 0x1b - "dya", // 0x1c - "dyag", // 0x1d - "dyagg", // 0x1e - "dyags", // 0x1f - "dyan", // 0x20 - "dyanj", // 0x21 - "dyanh", // 0x22 - "dyad", // 0x23 - "dyal", // 0x24 - "dyalg", // 0x25 - "dyalm", // 0x26 - "dyalb", // 0x27 - "dyals", // 0x28 - "dyalt", // 0x29 - "dyalp", // 0x2a - "dyalh", // 0x2b - "dyam", // 0x2c - "dyab", // 0x2d - "dyabs", // 0x2e - "dyas", // 0x2f - "dyass", // 0x30 - "dyang", // 0x31 - "dyaj", // 0x32 - "dyac", // 0x33 - "dyak", // 0x34 - "dyat", // 0x35 - "dyap", // 0x36 - "dyah", // 0x37 - "dyae", // 0x38 - "dyaeg", // 0x39 - "dyaegg", // 0x3a - "dyaegs", // 0x3b - "dyaen", // 0x3c - "dyaenj", // 0x3d - "dyaenh", // 0x3e - "dyaed", // 0x3f - "dyael", // 0x40 - "dyaelg", // 0x41 - "dyaelm", // 0x42 - "dyaelb", // 0x43 - "dyaels", // 0x44 - "dyaelt", // 0x45 - "dyaelp", // 0x46 - "dyaelh", // 0x47 - "dyaem", // 0x48 - "dyaeb", // 0x49 - "dyaebs", // 0x4a - "dyaes", // 0x4b - "dyaess", // 0x4c - "dyaeng", // 0x4d - "dyaej", // 0x4e - "dyaec", // 0x4f - "dyaek", // 0x50 - "dyaet", // 0x51 - "dyaep", // 0x52 - "dyaeh", // 0x53 - "deo", // 0x54 - "deog", // 0x55 - "deogg", // 0x56 - "deogs", // 0x57 - "deon", // 0x58 - "deonj", // 0x59 - "deonh", // 0x5a - "deod", // 0x5b - "deol", // 0x5c - "deolg", // 0x5d - "deolm", // 0x5e - "deolb", // 0x5f - "deols", // 0x60 - "deolt", // 0x61 - "deolp", // 0x62 - "deolh", // 0x63 - "deom", // 0x64 - "deob", // 0x65 - "deobs", // 0x66 - "deos", // 0x67 - "deoss", // 0x68 - "deong", // 0x69 - "deoj", // 0x6a - "deoc", // 0x6b - "deok", // 0x6c - "deot", // 0x6d - "deop", // 0x6e - "deoh", // 0x6f - "de", // 0x70 - "deg", // 0x71 - "degg", // 0x72 - "degs", // 0x73 - "den", // 0x74 - "denj", // 0x75 - "denh", // 0x76 - "ded", // 0x77 - "del", // 0x78 - "delg", // 0x79 - "delm", // 0x7a - "delb", // 0x7b - "dels", // 0x7c - "delt", // 0x7d - "delp", // 0x7e - "delh", // 0x7f - "dem", // 0x80 - "deb", // 0x81 - "debs", // 0x82 - "des", // 0x83 - "dess", // 0x84 - "deng", // 0x85 - "dej", // 0x86 - "dec", // 0x87 - "dek", // 0x88 - "det", // 0x89 - "dep", // 0x8a - "deh", // 0x8b - "dyeo", // 0x8c - "dyeog", // 0x8d - "dyeogg", // 0x8e - "dyeogs", // 0x8f - "dyeon", // 0x90 - "dyeonj", // 0x91 - "dyeonh", // 0x92 - "dyeod", // 0x93 - "dyeol", // 0x94 - "dyeolg", // 0x95 - "dyeolm", // 0x96 - "dyeolb", // 0x97 - "dyeols", // 0x98 - "dyeolt", // 0x99 - "dyeolp", // 0x9a - "dyeolh", // 0x9b - "dyeom", // 0x9c - "dyeob", // 0x9d - "dyeobs", // 0x9e - "dyeos", // 0x9f - "dyeoss", // 0xa0 - "dyeong", // 0xa1 - "dyeoj", // 0xa2 - "dyeoc", // 0xa3 - "dyeok", // 0xa4 - "dyeot", // 0xa5 - "dyeop", // 0xa6 - "dyeoh", // 0xa7 - "dye", // 0xa8 - "dyeg", // 0xa9 - "dyegg", // 0xaa - "dyegs", // 0xab - "dyen", // 0xac - "dyenj", // 0xad - "dyenh", // 0xae - "dyed", // 0xaf - "dyel", // 0xb0 - "dyelg", // 0xb1 - "dyelm", // 0xb2 - "dyelb", // 0xb3 - "dyels", // 0xb4 - "dyelt", // 0xb5 - "dyelp", // 0xb6 - "dyelh", // 0xb7 - "dyem", // 0xb8 - "dyeb", // 0xb9 - "dyebs", // 0xba - "dyes", // 0xbb - "dyess", // 0xbc - "dyeng", // 0xbd - "dyej", // 0xbe - "dyec", // 0xbf - "dyek", // 0xc0 - "dyet", // 0xc1 - "dyep", // 0xc2 - "dyeh", // 0xc3 - "do", // 0xc4 - "dog", // 0xc5 - "dogg", // 0xc6 - "dogs", // 0xc7 - "don", // 0xc8 - "donj", // 0xc9 - "donh", // 0xca - "dod", // 0xcb - "dol", // 0xcc - "dolg", // 0xcd - "dolm", // 0xce - "dolb", // 0xcf - "dols", // 0xd0 - "dolt", // 0xd1 - "dolp", // 0xd2 - "dolh", // 0xd3 - "dom", // 0xd4 - "dob", // 0xd5 - "dobs", // 0xd6 - "dos", // 0xd7 - "doss", // 0xd8 - "dong", // 0xd9 - "doj", // 0xda - "doc", // 0xdb - "dok", // 0xdc - "dot", // 0xdd - "dop", // 0xde - "doh", // 0xdf - "dwa", // 0xe0 - "dwag", // 0xe1 - "dwagg", // 0xe2 - "dwags", // 0xe3 - "dwan", // 0xe4 - "dwanj", // 0xe5 - "dwanh", // 0xe6 - "dwad", // 0xe7 - "dwal", // 0xe8 - "dwalg", // 0xe9 - "dwalm", // 0xea - "dwalb", // 0xeb - "dwals", // 0xec - "dwalt", // 0xed - "dwalp", // 0xee - "dwalh", // 0xef - "dwam", // 0xf0 - "dwab", // 0xf1 - "dwabs", // 0xf2 - "dwas", // 0xf3 - "dwass", // 0xf4 - "dwang", // 0xf5 - "dwaj", // 0xf6 - "dwac", // 0xf7 - "dwak", // 0xf8 - "dwat", // 0xf9 - "dwap", // 0xfa - "dwah", // 0xfb - "dwae", // 0xfc - "dwaeg", // 0xfd - "dwaegg", // 0xfe - "dwaegs", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0b4.go b/vendor/github.com/mozillazg/go-unidecode/table/x0b4.go deleted file mode 100644 index 7e37fb2..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0b4.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0b4 = []string{ - "dwaen", // 0x00 - "dwaenj", // 0x01 - "dwaenh", // 0x02 - "dwaed", // 0x03 - "dwael", // 0x04 - "dwaelg", // 0x05 - "dwaelm", // 0x06 - "dwaelb", // 0x07 - "dwaels", // 0x08 - "dwaelt", // 0x09 - "dwaelp", // 0x0a - "dwaelh", // 0x0b - "dwaem", // 0x0c - "dwaeb", // 0x0d - "dwaebs", // 0x0e - "dwaes", // 0x0f - "dwaess", // 0x10 - "dwaeng", // 0x11 - "dwaej", // 0x12 - "dwaec", // 0x13 - "dwaek", // 0x14 - "dwaet", // 0x15 - "dwaep", // 0x16 - "dwaeh", // 0x17 - "doe", // 0x18 - "doeg", // 0x19 - "doegg", // 0x1a - "doegs", // 0x1b - "doen", // 0x1c - "doenj", // 0x1d - "doenh", // 0x1e - "doed", // 0x1f - "doel", // 0x20 - "doelg", // 0x21 - "doelm", // 0x22 - "doelb", // 0x23 - "doels", // 0x24 - "doelt", // 0x25 - "doelp", // 0x26 - "doelh", // 0x27 - "doem", // 0x28 - "doeb", // 0x29 - "doebs", // 0x2a - "does", // 0x2b - "doess", // 0x2c - "doeng", // 0x2d - "doej", // 0x2e - "doec", // 0x2f - "doek", // 0x30 - "doet", // 0x31 - "doep", // 0x32 - "doeh", // 0x33 - "dyo", // 0x34 - "dyog", // 0x35 - "dyogg", // 0x36 - "dyogs", // 0x37 - "dyon", // 0x38 - "dyonj", // 0x39 - "dyonh", // 0x3a - "dyod", // 0x3b - "dyol", // 0x3c - "dyolg", // 0x3d - "dyolm", // 0x3e - "dyolb", // 0x3f - "dyols", // 0x40 - "dyolt", // 0x41 - "dyolp", // 0x42 - "dyolh", // 0x43 - "dyom", // 0x44 - "dyob", // 0x45 - "dyobs", // 0x46 - "dyos", // 0x47 - "dyoss", // 0x48 - "dyong", // 0x49 - "dyoj", // 0x4a - "dyoc", // 0x4b - "dyok", // 0x4c - "dyot", // 0x4d - "dyop", // 0x4e - "dyoh", // 0x4f - "du", // 0x50 - "dug", // 0x51 - "dugg", // 0x52 - "dugs", // 0x53 - "dun", // 0x54 - "dunj", // 0x55 - "dunh", // 0x56 - "dud", // 0x57 - "dul", // 0x58 - "dulg", // 0x59 - "dulm", // 0x5a - "dulb", // 0x5b - "duls", // 0x5c - "dult", // 0x5d - "dulp", // 0x5e - "dulh", // 0x5f - "dum", // 0x60 - "dub", // 0x61 - "dubs", // 0x62 - "dus", // 0x63 - "duss", // 0x64 - "dung", // 0x65 - "duj", // 0x66 - "duc", // 0x67 - "duk", // 0x68 - "dut", // 0x69 - "dup", // 0x6a - "duh", // 0x6b - "dweo", // 0x6c - "dweog", // 0x6d - "dweogg", // 0x6e - "dweogs", // 0x6f - "dweon", // 0x70 - "dweonj", // 0x71 - "dweonh", // 0x72 - "dweod", // 0x73 - "dweol", // 0x74 - "dweolg", // 0x75 - "dweolm", // 0x76 - "dweolb", // 0x77 - "dweols", // 0x78 - "dweolt", // 0x79 - "dweolp", // 0x7a - "dweolh", // 0x7b - "dweom", // 0x7c - "dweob", // 0x7d - "dweobs", // 0x7e - "dweos", // 0x7f - "dweoss", // 0x80 - "dweong", // 0x81 - "dweoj", // 0x82 - "dweoc", // 0x83 - "dweok", // 0x84 - "dweot", // 0x85 - "dweop", // 0x86 - "dweoh", // 0x87 - "dwe", // 0x88 - "dweg", // 0x89 - "dwegg", // 0x8a - "dwegs", // 0x8b - "dwen", // 0x8c - "dwenj", // 0x8d - "dwenh", // 0x8e - "dwed", // 0x8f - "dwel", // 0x90 - "dwelg", // 0x91 - "dwelm", // 0x92 - "dwelb", // 0x93 - "dwels", // 0x94 - "dwelt", // 0x95 - "dwelp", // 0x96 - "dwelh", // 0x97 - "dwem", // 0x98 - "dweb", // 0x99 - "dwebs", // 0x9a - "dwes", // 0x9b - "dwess", // 0x9c - "dweng", // 0x9d - "dwej", // 0x9e - "dwec", // 0x9f - "dwek", // 0xa0 - "dwet", // 0xa1 - "dwep", // 0xa2 - "dweh", // 0xa3 - "dwi", // 0xa4 - "dwig", // 0xa5 - "dwigg", // 0xa6 - "dwigs", // 0xa7 - "dwin", // 0xa8 - "dwinj", // 0xa9 - "dwinh", // 0xaa - "dwid", // 0xab - "dwil", // 0xac - "dwilg", // 0xad - "dwilm", // 0xae - "dwilb", // 0xaf - "dwils", // 0xb0 - "dwilt", // 0xb1 - "dwilp", // 0xb2 - "dwilh", // 0xb3 - "dwim", // 0xb4 - "dwib", // 0xb5 - "dwibs", // 0xb6 - "dwis", // 0xb7 - "dwiss", // 0xb8 - "dwing", // 0xb9 - "dwij", // 0xba - "dwic", // 0xbb - "dwik", // 0xbc - "dwit", // 0xbd - "dwip", // 0xbe - "dwih", // 0xbf - "dyu", // 0xc0 - "dyug", // 0xc1 - "dyugg", // 0xc2 - "dyugs", // 0xc3 - "dyun", // 0xc4 - "dyunj", // 0xc5 - "dyunh", // 0xc6 - "dyud", // 0xc7 - "dyul", // 0xc8 - "dyulg", // 0xc9 - "dyulm", // 0xca - "dyulb", // 0xcb - "dyuls", // 0xcc - "dyult", // 0xcd - "dyulp", // 0xce - "dyulh", // 0xcf - "dyum", // 0xd0 - "dyub", // 0xd1 - "dyubs", // 0xd2 - "dyus", // 0xd3 - "dyuss", // 0xd4 - "dyung", // 0xd5 - "dyuj", // 0xd6 - "dyuc", // 0xd7 - "dyuk", // 0xd8 - "dyut", // 0xd9 - "dyup", // 0xda - "dyuh", // 0xdb - "deu", // 0xdc - "deug", // 0xdd - "deugg", // 0xde - "deugs", // 0xdf - "deun", // 0xe0 - "deunj", // 0xe1 - "deunh", // 0xe2 - "deud", // 0xe3 - "deul", // 0xe4 - "deulg", // 0xe5 - "deulm", // 0xe6 - "deulb", // 0xe7 - "deuls", // 0xe8 - "deult", // 0xe9 - "deulp", // 0xea - "deulh", // 0xeb - "deum", // 0xec - "deub", // 0xed - "deubs", // 0xee - "deus", // 0xef - "deuss", // 0xf0 - "deung", // 0xf1 - "deuj", // 0xf2 - "deuc", // 0xf3 - "deuk", // 0xf4 - "deut", // 0xf5 - "deup", // 0xf6 - "deuh", // 0xf7 - "dyi", // 0xf8 - "dyig", // 0xf9 - "dyigg", // 0xfa - "dyigs", // 0xfb - "dyin", // 0xfc - "dyinj", // 0xfd - "dyinh", // 0xfe - "dyid", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0b5.go b/vendor/github.com/mozillazg/go-unidecode/table/x0b5.go deleted file mode 100644 index c5d0e6b..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0b5.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0b5 = []string{ - "dyil", // 0x00 - "dyilg", // 0x01 - "dyilm", // 0x02 - "dyilb", // 0x03 - "dyils", // 0x04 - "dyilt", // 0x05 - "dyilp", // 0x06 - "dyilh", // 0x07 - "dyim", // 0x08 - "dyib", // 0x09 - "dyibs", // 0x0a - "dyis", // 0x0b - "dyiss", // 0x0c - "dying", // 0x0d - "dyij", // 0x0e - "dyic", // 0x0f - "dyik", // 0x10 - "dyit", // 0x11 - "dyip", // 0x12 - "dyih", // 0x13 - "di", // 0x14 - "dig", // 0x15 - "digg", // 0x16 - "digs", // 0x17 - "din", // 0x18 - "dinj", // 0x19 - "dinh", // 0x1a - "did", // 0x1b - "dil", // 0x1c - "dilg", // 0x1d - "dilm", // 0x1e - "dilb", // 0x1f - "dils", // 0x20 - "dilt", // 0x21 - "dilp", // 0x22 - "dilh", // 0x23 - "dim", // 0x24 - "dib", // 0x25 - "dibs", // 0x26 - "dis", // 0x27 - "diss", // 0x28 - "ding", // 0x29 - "dij", // 0x2a - "dic", // 0x2b - "dik", // 0x2c - "dit", // 0x2d - "dip", // 0x2e - "dih", // 0x2f - "dda", // 0x30 - "ddag", // 0x31 - "ddagg", // 0x32 - "ddags", // 0x33 - "ddan", // 0x34 - "ddanj", // 0x35 - "ddanh", // 0x36 - "ddad", // 0x37 - "ddal", // 0x38 - "ddalg", // 0x39 - "ddalm", // 0x3a - "ddalb", // 0x3b - "ddals", // 0x3c - "ddalt", // 0x3d - "ddalp", // 0x3e - "ddalh", // 0x3f - "ddam", // 0x40 - "ddab", // 0x41 - "ddabs", // 0x42 - "ddas", // 0x43 - "ddass", // 0x44 - "ddang", // 0x45 - "ddaj", // 0x46 - "ddac", // 0x47 - "ddak", // 0x48 - "ddat", // 0x49 - "ddap", // 0x4a - "ddah", // 0x4b - "ddae", // 0x4c - "ddaeg", // 0x4d - "ddaegg", // 0x4e - "ddaegs", // 0x4f - "ddaen", // 0x50 - "ddaenj", // 0x51 - "ddaenh", // 0x52 - "ddaed", // 0x53 - "ddael", // 0x54 - "ddaelg", // 0x55 - "ddaelm", // 0x56 - "ddaelb", // 0x57 - "ddaels", // 0x58 - "ddaelt", // 0x59 - "ddaelp", // 0x5a - "ddaelh", // 0x5b - "ddaem", // 0x5c - "ddaeb", // 0x5d - "ddaebs", // 0x5e - "ddaes", // 0x5f - "ddaess", // 0x60 - "ddaeng", // 0x61 - "ddaej", // 0x62 - "ddaec", // 0x63 - "ddaek", // 0x64 - "ddaet", // 0x65 - "ddaep", // 0x66 - "ddaeh", // 0x67 - "ddya", // 0x68 - "ddyag", // 0x69 - "ddyagg", // 0x6a - "ddyags", // 0x6b - "ddyan", // 0x6c - "ddyanj", // 0x6d - "ddyanh", // 0x6e - "ddyad", // 0x6f - "ddyal", // 0x70 - "ddyalg", // 0x71 - "ddyalm", // 0x72 - "ddyalb", // 0x73 - "ddyals", // 0x74 - "ddyalt", // 0x75 - "ddyalp", // 0x76 - "ddyalh", // 0x77 - "ddyam", // 0x78 - "ddyab", // 0x79 - "ddyabs", // 0x7a - "ddyas", // 0x7b - "ddyass", // 0x7c - "ddyang", // 0x7d - "ddyaj", // 0x7e - "ddyac", // 0x7f - "ddyak", // 0x80 - "ddyat", // 0x81 - "ddyap", // 0x82 - "ddyah", // 0x83 - "ddyae", // 0x84 - "ddyaeg", // 0x85 - "ddyaegg", // 0x86 - "ddyaegs", // 0x87 - "ddyaen", // 0x88 - "ddyaenj", // 0x89 - "ddyaenh", // 0x8a - "ddyaed", // 0x8b - "ddyael", // 0x8c - "ddyaelg", // 0x8d - "ddyaelm", // 0x8e - "ddyaelb", // 0x8f - "ddyaels", // 0x90 - "ddyaelt", // 0x91 - "ddyaelp", // 0x92 - "ddyaelh", // 0x93 - "ddyaem", // 0x94 - "ddyaeb", // 0x95 - "ddyaebs", // 0x96 - "ddyaes", // 0x97 - "ddyaess", // 0x98 - "ddyaeng", // 0x99 - "ddyaej", // 0x9a - "ddyaec", // 0x9b - "ddyaek", // 0x9c - "ddyaet", // 0x9d - "ddyaep", // 0x9e - "ddyaeh", // 0x9f - "ddeo", // 0xa0 - "ddeog", // 0xa1 - "ddeogg", // 0xa2 - "ddeogs", // 0xa3 - "ddeon", // 0xa4 - "ddeonj", // 0xa5 - "ddeonh", // 0xa6 - "ddeod", // 0xa7 - "ddeol", // 0xa8 - "ddeolg", // 0xa9 - "ddeolm", // 0xaa - "ddeolb", // 0xab - "ddeols", // 0xac - "ddeolt", // 0xad - "ddeolp", // 0xae - "ddeolh", // 0xaf - "ddeom", // 0xb0 - "ddeob", // 0xb1 - "ddeobs", // 0xb2 - "ddeos", // 0xb3 - "ddeoss", // 0xb4 - "ddeong", // 0xb5 - "ddeoj", // 0xb6 - "ddeoc", // 0xb7 - "ddeok", // 0xb8 - "ddeot", // 0xb9 - "ddeop", // 0xba - "ddeoh", // 0xbb - "dde", // 0xbc - "ddeg", // 0xbd - "ddegg", // 0xbe - "ddegs", // 0xbf - "dden", // 0xc0 - "ddenj", // 0xc1 - "ddenh", // 0xc2 - "dded", // 0xc3 - "ddel", // 0xc4 - "ddelg", // 0xc5 - "ddelm", // 0xc6 - "ddelb", // 0xc7 - "ddels", // 0xc8 - "ddelt", // 0xc9 - "ddelp", // 0xca - "ddelh", // 0xcb - "ddem", // 0xcc - "ddeb", // 0xcd - "ddebs", // 0xce - "ddes", // 0xcf - "ddess", // 0xd0 - "ddeng", // 0xd1 - "ddej", // 0xd2 - "ddec", // 0xd3 - "ddek", // 0xd4 - "ddet", // 0xd5 - "ddep", // 0xd6 - "ddeh", // 0xd7 - "ddyeo", // 0xd8 - "ddyeog", // 0xd9 - "ddyeogg", // 0xda - "ddyeogs", // 0xdb - "ddyeon", // 0xdc - "ddyeonj", // 0xdd - "ddyeonh", // 0xde - "ddyeod", // 0xdf - "ddyeol", // 0xe0 - "ddyeolg", // 0xe1 - "ddyeolm", // 0xe2 - "ddyeolb", // 0xe3 - "ddyeols", // 0xe4 - "ddyeolt", // 0xe5 - "ddyeolp", // 0xe6 - "ddyeolh", // 0xe7 - "ddyeom", // 0xe8 - "ddyeob", // 0xe9 - "ddyeobs", // 0xea - "ddyeos", // 0xeb - "ddyeoss", // 0xec - "ddyeong", // 0xed - "ddyeoj", // 0xee - "ddyeoc", // 0xef - "ddyeok", // 0xf0 - "ddyeot", // 0xf1 - "ddyeop", // 0xf2 - "ddyeoh", // 0xf3 - "ddye", // 0xf4 - "ddyeg", // 0xf5 - "ddyegg", // 0xf6 - "ddyegs", // 0xf7 - "ddyen", // 0xf8 - "ddyenj", // 0xf9 - "ddyenh", // 0xfa - "ddyed", // 0xfb - "ddyel", // 0xfc - "ddyelg", // 0xfd - "ddyelm", // 0xfe - "ddyelb", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0b6.go b/vendor/github.com/mozillazg/go-unidecode/table/x0b6.go deleted file mode 100644 index dedf89f..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0b6.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0b6 = []string{ - "ddyels", // 0x00 - "ddyelt", // 0x01 - "ddyelp", // 0x02 - "ddyelh", // 0x03 - "ddyem", // 0x04 - "ddyeb", // 0x05 - "ddyebs", // 0x06 - "ddyes", // 0x07 - "ddyess", // 0x08 - "ddyeng", // 0x09 - "ddyej", // 0x0a - "ddyec", // 0x0b - "ddyek", // 0x0c - "ddyet", // 0x0d - "ddyep", // 0x0e - "ddyeh", // 0x0f - "ddo", // 0x10 - "ddog", // 0x11 - "ddogg", // 0x12 - "ddogs", // 0x13 - "ddon", // 0x14 - "ddonj", // 0x15 - "ddonh", // 0x16 - "ddod", // 0x17 - "ddol", // 0x18 - "ddolg", // 0x19 - "ddolm", // 0x1a - "ddolb", // 0x1b - "ddols", // 0x1c - "ddolt", // 0x1d - "ddolp", // 0x1e - "ddolh", // 0x1f - "ddom", // 0x20 - "ddob", // 0x21 - "ddobs", // 0x22 - "ddos", // 0x23 - "ddoss", // 0x24 - "ddong", // 0x25 - "ddoj", // 0x26 - "ddoc", // 0x27 - "ddok", // 0x28 - "ddot", // 0x29 - "ddop", // 0x2a - "ddoh", // 0x2b - "ddwa", // 0x2c - "ddwag", // 0x2d - "ddwagg", // 0x2e - "ddwags", // 0x2f - "ddwan", // 0x30 - "ddwanj", // 0x31 - "ddwanh", // 0x32 - "ddwad", // 0x33 - "ddwal", // 0x34 - "ddwalg", // 0x35 - "ddwalm", // 0x36 - "ddwalb", // 0x37 - "ddwals", // 0x38 - "ddwalt", // 0x39 - "ddwalp", // 0x3a - "ddwalh", // 0x3b - "ddwam", // 0x3c - "ddwab", // 0x3d - "ddwabs", // 0x3e - "ddwas", // 0x3f - "ddwass", // 0x40 - "ddwang", // 0x41 - "ddwaj", // 0x42 - "ddwac", // 0x43 - "ddwak", // 0x44 - "ddwat", // 0x45 - "ddwap", // 0x46 - "ddwah", // 0x47 - "ddwae", // 0x48 - "ddwaeg", // 0x49 - "ddwaegg", // 0x4a - "ddwaegs", // 0x4b - "ddwaen", // 0x4c - "ddwaenj", // 0x4d - "ddwaenh", // 0x4e - "ddwaed", // 0x4f - "ddwael", // 0x50 - "ddwaelg", // 0x51 - "ddwaelm", // 0x52 - "ddwaelb", // 0x53 - "ddwaels", // 0x54 - "ddwaelt", // 0x55 - "ddwaelp", // 0x56 - "ddwaelh", // 0x57 - "ddwaem", // 0x58 - "ddwaeb", // 0x59 - "ddwaebs", // 0x5a - "ddwaes", // 0x5b - "ddwaess", // 0x5c - "ddwaeng", // 0x5d - "ddwaej", // 0x5e - "ddwaec", // 0x5f - "ddwaek", // 0x60 - "ddwaet", // 0x61 - "ddwaep", // 0x62 - "ddwaeh", // 0x63 - "ddoe", // 0x64 - "ddoeg", // 0x65 - "ddoegg", // 0x66 - "ddoegs", // 0x67 - "ddoen", // 0x68 - "ddoenj", // 0x69 - "ddoenh", // 0x6a - "ddoed", // 0x6b - "ddoel", // 0x6c - "ddoelg", // 0x6d - "ddoelm", // 0x6e - "ddoelb", // 0x6f - "ddoels", // 0x70 - "ddoelt", // 0x71 - "ddoelp", // 0x72 - "ddoelh", // 0x73 - "ddoem", // 0x74 - "ddoeb", // 0x75 - "ddoebs", // 0x76 - "ddoes", // 0x77 - "ddoess", // 0x78 - "ddoeng", // 0x79 - "ddoej", // 0x7a - "ddoec", // 0x7b - "ddoek", // 0x7c - "ddoet", // 0x7d - "ddoep", // 0x7e - "ddoeh", // 0x7f - "ddyo", // 0x80 - "ddyog", // 0x81 - "ddyogg", // 0x82 - "ddyogs", // 0x83 - "ddyon", // 0x84 - "ddyonj", // 0x85 - "ddyonh", // 0x86 - "ddyod", // 0x87 - "ddyol", // 0x88 - "ddyolg", // 0x89 - "ddyolm", // 0x8a - "ddyolb", // 0x8b - "ddyols", // 0x8c - "ddyolt", // 0x8d - "ddyolp", // 0x8e - "ddyolh", // 0x8f - "ddyom", // 0x90 - "ddyob", // 0x91 - "ddyobs", // 0x92 - "ddyos", // 0x93 - "ddyoss", // 0x94 - "ddyong", // 0x95 - "ddyoj", // 0x96 - "ddyoc", // 0x97 - "ddyok", // 0x98 - "ddyot", // 0x99 - "ddyop", // 0x9a - "ddyoh", // 0x9b - "ddu", // 0x9c - "ddug", // 0x9d - "ddugg", // 0x9e - "ddugs", // 0x9f - "ddun", // 0xa0 - "ddunj", // 0xa1 - "ddunh", // 0xa2 - "ddud", // 0xa3 - "ddul", // 0xa4 - "ddulg", // 0xa5 - "ddulm", // 0xa6 - "ddulb", // 0xa7 - "dduls", // 0xa8 - "ddult", // 0xa9 - "ddulp", // 0xaa - "ddulh", // 0xab - "ddum", // 0xac - "ddub", // 0xad - "ddubs", // 0xae - "ddus", // 0xaf - "dduss", // 0xb0 - "ddung", // 0xb1 - "dduj", // 0xb2 - "dduc", // 0xb3 - "dduk", // 0xb4 - "ddut", // 0xb5 - "ddup", // 0xb6 - "dduh", // 0xb7 - "ddweo", // 0xb8 - "ddweog", // 0xb9 - "ddweogg", // 0xba - "ddweogs", // 0xbb - "ddweon", // 0xbc - "ddweonj", // 0xbd - "ddweonh", // 0xbe - "ddweod", // 0xbf - "ddweol", // 0xc0 - "ddweolg", // 0xc1 - "ddweolm", // 0xc2 - "ddweolb", // 0xc3 - "ddweols", // 0xc4 - "ddweolt", // 0xc5 - "ddweolp", // 0xc6 - "ddweolh", // 0xc7 - "ddweom", // 0xc8 - "ddweob", // 0xc9 - "ddweobs", // 0xca - "ddweos", // 0xcb - "ddweoss", // 0xcc - "ddweong", // 0xcd - "ddweoj", // 0xce - "ddweoc", // 0xcf - "ddweok", // 0xd0 - "ddweot", // 0xd1 - "ddweop", // 0xd2 - "ddweoh", // 0xd3 - "ddwe", // 0xd4 - "ddweg", // 0xd5 - "ddwegg", // 0xd6 - "ddwegs", // 0xd7 - "ddwen", // 0xd8 - "ddwenj", // 0xd9 - "ddwenh", // 0xda - "ddwed", // 0xdb - "ddwel", // 0xdc - "ddwelg", // 0xdd - "ddwelm", // 0xde - "ddwelb", // 0xdf - "ddwels", // 0xe0 - "ddwelt", // 0xe1 - "ddwelp", // 0xe2 - "ddwelh", // 0xe3 - "ddwem", // 0xe4 - "ddweb", // 0xe5 - "ddwebs", // 0xe6 - "ddwes", // 0xe7 - "ddwess", // 0xe8 - "ddweng", // 0xe9 - "ddwej", // 0xea - "ddwec", // 0xeb - "ddwek", // 0xec - "ddwet", // 0xed - "ddwep", // 0xee - "ddweh", // 0xef - "ddwi", // 0xf0 - "ddwig", // 0xf1 - "ddwigg", // 0xf2 - "ddwigs", // 0xf3 - "ddwin", // 0xf4 - "ddwinj", // 0xf5 - "ddwinh", // 0xf6 - "ddwid", // 0xf7 - "ddwil", // 0xf8 - "ddwilg", // 0xf9 - "ddwilm", // 0xfa - "ddwilb", // 0xfb - "ddwils", // 0xfc - "ddwilt", // 0xfd - "ddwilp", // 0xfe - "ddwilh", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0b7.go b/vendor/github.com/mozillazg/go-unidecode/table/x0b7.go deleted file mode 100644 index 06f94bf..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0b7.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0b7 = []string{ - "ddwim", // 0x00 - "ddwib", // 0x01 - "ddwibs", // 0x02 - "ddwis", // 0x03 - "ddwiss", // 0x04 - "ddwing", // 0x05 - "ddwij", // 0x06 - "ddwic", // 0x07 - "ddwik", // 0x08 - "ddwit", // 0x09 - "ddwip", // 0x0a - "ddwih", // 0x0b - "ddyu", // 0x0c - "ddyug", // 0x0d - "ddyugg", // 0x0e - "ddyugs", // 0x0f - "ddyun", // 0x10 - "ddyunj", // 0x11 - "ddyunh", // 0x12 - "ddyud", // 0x13 - "ddyul", // 0x14 - "ddyulg", // 0x15 - "ddyulm", // 0x16 - "ddyulb", // 0x17 - "ddyuls", // 0x18 - "ddyult", // 0x19 - "ddyulp", // 0x1a - "ddyulh", // 0x1b - "ddyum", // 0x1c - "ddyub", // 0x1d - "ddyubs", // 0x1e - "ddyus", // 0x1f - "ddyuss", // 0x20 - "ddyung", // 0x21 - "ddyuj", // 0x22 - "ddyuc", // 0x23 - "ddyuk", // 0x24 - "ddyut", // 0x25 - "ddyup", // 0x26 - "ddyuh", // 0x27 - "ddeu", // 0x28 - "ddeug", // 0x29 - "ddeugg", // 0x2a - "ddeugs", // 0x2b - "ddeun", // 0x2c - "ddeunj", // 0x2d - "ddeunh", // 0x2e - "ddeud", // 0x2f - "ddeul", // 0x30 - "ddeulg", // 0x31 - "ddeulm", // 0x32 - "ddeulb", // 0x33 - "ddeuls", // 0x34 - "ddeult", // 0x35 - "ddeulp", // 0x36 - "ddeulh", // 0x37 - "ddeum", // 0x38 - "ddeub", // 0x39 - "ddeubs", // 0x3a - "ddeus", // 0x3b - "ddeuss", // 0x3c - "ddeung", // 0x3d - "ddeuj", // 0x3e - "ddeuc", // 0x3f - "ddeuk", // 0x40 - "ddeut", // 0x41 - "ddeup", // 0x42 - "ddeuh", // 0x43 - "ddyi", // 0x44 - "ddyig", // 0x45 - "ddyigg", // 0x46 - "ddyigs", // 0x47 - "ddyin", // 0x48 - "ddyinj", // 0x49 - "ddyinh", // 0x4a - "ddyid", // 0x4b - "ddyil", // 0x4c - "ddyilg", // 0x4d - "ddyilm", // 0x4e - "ddyilb", // 0x4f - "ddyils", // 0x50 - "ddyilt", // 0x51 - "ddyilp", // 0x52 - "ddyilh", // 0x53 - "ddyim", // 0x54 - "ddyib", // 0x55 - "ddyibs", // 0x56 - "ddyis", // 0x57 - "ddyiss", // 0x58 - "ddying", // 0x59 - "ddyij", // 0x5a - "ddyic", // 0x5b - "ddyik", // 0x5c - "ddyit", // 0x5d - "ddyip", // 0x5e - "ddyih", // 0x5f - "ddi", // 0x60 - "ddig", // 0x61 - "ddigg", // 0x62 - "ddigs", // 0x63 - "ddin", // 0x64 - "ddinj", // 0x65 - "ddinh", // 0x66 - "ddid", // 0x67 - "ddil", // 0x68 - "ddilg", // 0x69 - "ddilm", // 0x6a - "ddilb", // 0x6b - "ddils", // 0x6c - "ddilt", // 0x6d - "ddilp", // 0x6e - "ddilh", // 0x6f - "ddim", // 0x70 - "ddib", // 0x71 - "ddibs", // 0x72 - "ddis", // 0x73 - "ddiss", // 0x74 - "dding", // 0x75 - "ddij", // 0x76 - "ddic", // 0x77 - "ddik", // 0x78 - "ddit", // 0x79 - "ddip", // 0x7a - "ddih", // 0x7b - "ra", // 0x7c - "rag", // 0x7d - "ragg", // 0x7e - "rags", // 0x7f - "ran", // 0x80 - "ranj", // 0x81 - "ranh", // 0x82 - "rad", // 0x83 - "ral", // 0x84 - "ralg", // 0x85 - "ralm", // 0x86 - "ralb", // 0x87 - "rals", // 0x88 - "ralt", // 0x89 - "ralp", // 0x8a - "ralh", // 0x8b - "ram", // 0x8c - "rab", // 0x8d - "rabs", // 0x8e - "ras", // 0x8f - "rass", // 0x90 - "rang", // 0x91 - "raj", // 0x92 - "rac", // 0x93 - "rak", // 0x94 - "rat", // 0x95 - "rap", // 0x96 - "rah", // 0x97 - "rae", // 0x98 - "raeg", // 0x99 - "raegg", // 0x9a - "raegs", // 0x9b - "raen", // 0x9c - "raenj", // 0x9d - "raenh", // 0x9e - "raed", // 0x9f - "rael", // 0xa0 - "raelg", // 0xa1 - "raelm", // 0xa2 - "raelb", // 0xa3 - "raels", // 0xa4 - "raelt", // 0xa5 - "raelp", // 0xa6 - "raelh", // 0xa7 - "raem", // 0xa8 - "raeb", // 0xa9 - "raebs", // 0xaa - "raes", // 0xab - "raess", // 0xac - "raeng", // 0xad - "raej", // 0xae - "raec", // 0xaf - "raek", // 0xb0 - "raet", // 0xb1 - "raep", // 0xb2 - "raeh", // 0xb3 - "rya", // 0xb4 - "ryag", // 0xb5 - "ryagg", // 0xb6 - "ryags", // 0xb7 - "ryan", // 0xb8 - "ryanj", // 0xb9 - "ryanh", // 0xba - "ryad", // 0xbb - "ryal", // 0xbc - "ryalg", // 0xbd - "ryalm", // 0xbe - "ryalb", // 0xbf - "ryals", // 0xc0 - "ryalt", // 0xc1 - "ryalp", // 0xc2 - "ryalh", // 0xc3 - "ryam", // 0xc4 - "ryab", // 0xc5 - "ryabs", // 0xc6 - "ryas", // 0xc7 - "ryass", // 0xc8 - "ryang", // 0xc9 - "ryaj", // 0xca - "ryac", // 0xcb - "ryak", // 0xcc - "ryat", // 0xcd - "ryap", // 0xce - "ryah", // 0xcf - "ryae", // 0xd0 - "ryaeg", // 0xd1 - "ryaegg", // 0xd2 - "ryaegs", // 0xd3 - "ryaen", // 0xd4 - "ryaenj", // 0xd5 - "ryaenh", // 0xd6 - "ryaed", // 0xd7 - "ryael", // 0xd8 - "ryaelg", // 0xd9 - "ryaelm", // 0xda - "ryaelb", // 0xdb - "ryaels", // 0xdc - "ryaelt", // 0xdd - "ryaelp", // 0xde - "ryaelh", // 0xdf - "ryaem", // 0xe0 - "ryaeb", // 0xe1 - "ryaebs", // 0xe2 - "ryaes", // 0xe3 - "ryaess", // 0xe4 - "ryaeng", // 0xe5 - "ryaej", // 0xe6 - "ryaec", // 0xe7 - "ryaek", // 0xe8 - "ryaet", // 0xe9 - "ryaep", // 0xea - "ryaeh", // 0xeb - "reo", // 0xec - "reog", // 0xed - "reogg", // 0xee - "reogs", // 0xef - "reon", // 0xf0 - "reonj", // 0xf1 - "reonh", // 0xf2 - "reod", // 0xf3 - "reol", // 0xf4 - "reolg", // 0xf5 - "reolm", // 0xf6 - "reolb", // 0xf7 - "reols", // 0xf8 - "reolt", // 0xf9 - "reolp", // 0xfa - "reolh", // 0xfb - "reom", // 0xfc - "reob", // 0xfd - "reobs", // 0xfe - "reos", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0b8.go b/vendor/github.com/mozillazg/go-unidecode/table/x0b8.go deleted file mode 100644 index 18b6dfb..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0b8.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0b8 = []string{ - "reoss", // 0x00 - "reong", // 0x01 - "reoj", // 0x02 - "reoc", // 0x03 - "reok", // 0x04 - "reot", // 0x05 - "reop", // 0x06 - "reoh", // 0x07 - "re", // 0x08 - "reg", // 0x09 - "regg", // 0x0a - "regs", // 0x0b - "ren", // 0x0c - "renj", // 0x0d - "renh", // 0x0e - "red", // 0x0f - "rel", // 0x10 - "relg", // 0x11 - "relm", // 0x12 - "relb", // 0x13 - "rels", // 0x14 - "relt", // 0x15 - "relp", // 0x16 - "relh", // 0x17 - "rem", // 0x18 - "reb", // 0x19 - "rebs", // 0x1a - "res", // 0x1b - "ress", // 0x1c - "reng", // 0x1d - "rej", // 0x1e - "rec", // 0x1f - "rek", // 0x20 - "ret", // 0x21 - "rep", // 0x22 - "reh", // 0x23 - "ryeo", // 0x24 - "ryeog", // 0x25 - "ryeogg", // 0x26 - "ryeogs", // 0x27 - "ryeon", // 0x28 - "ryeonj", // 0x29 - "ryeonh", // 0x2a - "ryeod", // 0x2b - "ryeol", // 0x2c - "ryeolg", // 0x2d - "ryeolm", // 0x2e - "ryeolb", // 0x2f - "ryeols", // 0x30 - "ryeolt", // 0x31 - "ryeolp", // 0x32 - "ryeolh", // 0x33 - "ryeom", // 0x34 - "ryeob", // 0x35 - "ryeobs", // 0x36 - "ryeos", // 0x37 - "ryeoss", // 0x38 - "ryeong", // 0x39 - "ryeoj", // 0x3a - "ryeoc", // 0x3b - "ryeok", // 0x3c - "ryeot", // 0x3d - "ryeop", // 0x3e - "ryeoh", // 0x3f - "rye", // 0x40 - "ryeg", // 0x41 - "ryegg", // 0x42 - "ryegs", // 0x43 - "ryen", // 0x44 - "ryenj", // 0x45 - "ryenh", // 0x46 - "ryed", // 0x47 - "ryel", // 0x48 - "ryelg", // 0x49 - "ryelm", // 0x4a - "ryelb", // 0x4b - "ryels", // 0x4c - "ryelt", // 0x4d - "ryelp", // 0x4e - "ryelh", // 0x4f - "ryem", // 0x50 - "ryeb", // 0x51 - "ryebs", // 0x52 - "ryes", // 0x53 - "ryess", // 0x54 - "ryeng", // 0x55 - "ryej", // 0x56 - "ryec", // 0x57 - "ryek", // 0x58 - "ryet", // 0x59 - "ryep", // 0x5a - "ryeh", // 0x5b - "ro", // 0x5c - "rog", // 0x5d - "rogg", // 0x5e - "rogs", // 0x5f - "ron", // 0x60 - "ronj", // 0x61 - "ronh", // 0x62 - "rod", // 0x63 - "rol", // 0x64 - "rolg", // 0x65 - "rolm", // 0x66 - "rolb", // 0x67 - "rols", // 0x68 - "rolt", // 0x69 - "rolp", // 0x6a - "rolh", // 0x6b - "rom", // 0x6c - "rob", // 0x6d - "robs", // 0x6e - "ros", // 0x6f - "ross", // 0x70 - "rong", // 0x71 - "roj", // 0x72 - "roc", // 0x73 - "rok", // 0x74 - "rot", // 0x75 - "rop", // 0x76 - "roh", // 0x77 - "rwa", // 0x78 - "rwag", // 0x79 - "rwagg", // 0x7a - "rwags", // 0x7b - "rwan", // 0x7c - "rwanj", // 0x7d - "rwanh", // 0x7e - "rwad", // 0x7f - "rwal", // 0x80 - "rwalg", // 0x81 - "rwalm", // 0x82 - "rwalb", // 0x83 - "rwals", // 0x84 - "rwalt", // 0x85 - "rwalp", // 0x86 - "rwalh", // 0x87 - "rwam", // 0x88 - "rwab", // 0x89 - "rwabs", // 0x8a - "rwas", // 0x8b - "rwass", // 0x8c - "rwang", // 0x8d - "rwaj", // 0x8e - "rwac", // 0x8f - "rwak", // 0x90 - "rwat", // 0x91 - "rwap", // 0x92 - "rwah", // 0x93 - "rwae", // 0x94 - "rwaeg", // 0x95 - "rwaegg", // 0x96 - "rwaegs", // 0x97 - "rwaen", // 0x98 - "rwaenj", // 0x99 - "rwaenh", // 0x9a - "rwaed", // 0x9b - "rwael", // 0x9c - "rwaelg", // 0x9d - "rwaelm", // 0x9e - "rwaelb", // 0x9f - "rwaels", // 0xa0 - "rwaelt", // 0xa1 - "rwaelp", // 0xa2 - "rwaelh", // 0xa3 - "rwaem", // 0xa4 - "rwaeb", // 0xa5 - "rwaebs", // 0xa6 - "rwaes", // 0xa7 - "rwaess", // 0xa8 - "rwaeng", // 0xa9 - "rwaej", // 0xaa - "rwaec", // 0xab - "rwaek", // 0xac - "rwaet", // 0xad - "rwaep", // 0xae - "rwaeh", // 0xaf - "roe", // 0xb0 - "roeg", // 0xb1 - "roegg", // 0xb2 - "roegs", // 0xb3 - "roen", // 0xb4 - "roenj", // 0xb5 - "roenh", // 0xb6 - "roed", // 0xb7 - "roel", // 0xb8 - "roelg", // 0xb9 - "roelm", // 0xba - "roelb", // 0xbb - "roels", // 0xbc - "roelt", // 0xbd - "roelp", // 0xbe - "roelh", // 0xbf - "roem", // 0xc0 - "roeb", // 0xc1 - "roebs", // 0xc2 - "roes", // 0xc3 - "roess", // 0xc4 - "roeng", // 0xc5 - "roej", // 0xc6 - "roec", // 0xc7 - "roek", // 0xc8 - "roet", // 0xc9 - "roep", // 0xca - "roeh", // 0xcb - "ryo", // 0xcc - "ryog", // 0xcd - "ryogg", // 0xce - "ryogs", // 0xcf - "ryon", // 0xd0 - "ryonj", // 0xd1 - "ryonh", // 0xd2 - "ryod", // 0xd3 - "ryol", // 0xd4 - "ryolg", // 0xd5 - "ryolm", // 0xd6 - "ryolb", // 0xd7 - "ryols", // 0xd8 - "ryolt", // 0xd9 - "ryolp", // 0xda - "ryolh", // 0xdb - "ryom", // 0xdc - "ryob", // 0xdd - "ryobs", // 0xde - "ryos", // 0xdf - "ryoss", // 0xe0 - "ryong", // 0xe1 - "ryoj", // 0xe2 - "ryoc", // 0xe3 - "ryok", // 0xe4 - "ryot", // 0xe5 - "ryop", // 0xe6 - "ryoh", // 0xe7 - "ru", // 0xe8 - "rug", // 0xe9 - "rugg", // 0xea - "rugs", // 0xeb - "run", // 0xec - "runj", // 0xed - "runh", // 0xee - "rud", // 0xef - "rul", // 0xf0 - "rulg", // 0xf1 - "rulm", // 0xf2 - "rulb", // 0xf3 - "ruls", // 0xf4 - "rult", // 0xf5 - "rulp", // 0xf6 - "rulh", // 0xf7 - "rum", // 0xf8 - "rub", // 0xf9 - "rubs", // 0xfa - "rus", // 0xfb - "russ", // 0xfc - "rung", // 0xfd - "ruj", // 0xfe - "ruc", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0b9.go b/vendor/github.com/mozillazg/go-unidecode/table/x0b9.go deleted file mode 100644 index 647a50d..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0b9.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0b9 = []string{ - "ruk", // 0x00 - "rut", // 0x01 - "rup", // 0x02 - "ruh", // 0x03 - "rweo", // 0x04 - "rweog", // 0x05 - "rweogg", // 0x06 - "rweogs", // 0x07 - "rweon", // 0x08 - "rweonj", // 0x09 - "rweonh", // 0x0a - "rweod", // 0x0b - "rweol", // 0x0c - "rweolg", // 0x0d - "rweolm", // 0x0e - "rweolb", // 0x0f - "rweols", // 0x10 - "rweolt", // 0x11 - "rweolp", // 0x12 - "rweolh", // 0x13 - "rweom", // 0x14 - "rweob", // 0x15 - "rweobs", // 0x16 - "rweos", // 0x17 - "rweoss", // 0x18 - "rweong", // 0x19 - "rweoj", // 0x1a - "rweoc", // 0x1b - "rweok", // 0x1c - "rweot", // 0x1d - "rweop", // 0x1e - "rweoh", // 0x1f - "rwe", // 0x20 - "rweg", // 0x21 - "rwegg", // 0x22 - "rwegs", // 0x23 - "rwen", // 0x24 - "rwenj", // 0x25 - "rwenh", // 0x26 - "rwed", // 0x27 - "rwel", // 0x28 - "rwelg", // 0x29 - "rwelm", // 0x2a - "rwelb", // 0x2b - "rwels", // 0x2c - "rwelt", // 0x2d - "rwelp", // 0x2e - "rwelh", // 0x2f - "rwem", // 0x30 - "rweb", // 0x31 - "rwebs", // 0x32 - "rwes", // 0x33 - "rwess", // 0x34 - "rweng", // 0x35 - "rwej", // 0x36 - "rwec", // 0x37 - "rwek", // 0x38 - "rwet", // 0x39 - "rwep", // 0x3a - "rweh", // 0x3b - "rwi", // 0x3c - "rwig", // 0x3d - "rwigg", // 0x3e - "rwigs", // 0x3f - "rwin", // 0x40 - "rwinj", // 0x41 - "rwinh", // 0x42 - "rwid", // 0x43 - "rwil", // 0x44 - "rwilg", // 0x45 - "rwilm", // 0x46 - "rwilb", // 0x47 - "rwils", // 0x48 - "rwilt", // 0x49 - "rwilp", // 0x4a - "rwilh", // 0x4b - "rwim", // 0x4c - "rwib", // 0x4d - "rwibs", // 0x4e - "rwis", // 0x4f - "rwiss", // 0x50 - "rwing", // 0x51 - "rwij", // 0x52 - "rwic", // 0x53 - "rwik", // 0x54 - "rwit", // 0x55 - "rwip", // 0x56 - "rwih", // 0x57 - "ryu", // 0x58 - "ryug", // 0x59 - "ryugg", // 0x5a - "ryugs", // 0x5b - "ryun", // 0x5c - "ryunj", // 0x5d - "ryunh", // 0x5e - "ryud", // 0x5f - "ryul", // 0x60 - "ryulg", // 0x61 - "ryulm", // 0x62 - "ryulb", // 0x63 - "ryuls", // 0x64 - "ryult", // 0x65 - "ryulp", // 0x66 - "ryulh", // 0x67 - "ryum", // 0x68 - "ryub", // 0x69 - "ryubs", // 0x6a - "ryus", // 0x6b - "ryuss", // 0x6c - "ryung", // 0x6d - "ryuj", // 0x6e - "ryuc", // 0x6f - "ryuk", // 0x70 - "ryut", // 0x71 - "ryup", // 0x72 - "ryuh", // 0x73 - "reu", // 0x74 - "reug", // 0x75 - "reugg", // 0x76 - "reugs", // 0x77 - "reun", // 0x78 - "reunj", // 0x79 - "reunh", // 0x7a - "reud", // 0x7b - "reul", // 0x7c - "reulg", // 0x7d - "reulm", // 0x7e - "reulb", // 0x7f - "reuls", // 0x80 - "reult", // 0x81 - "reulp", // 0x82 - "reulh", // 0x83 - "reum", // 0x84 - "reub", // 0x85 - "reubs", // 0x86 - "reus", // 0x87 - "reuss", // 0x88 - "reung", // 0x89 - "reuj", // 0x8a - "reuc", // 0x8b - "reuk", // 0x8c - "reut", // 0x8d - "reup", // 0x8e - "reuh", // 0x8f - "ryi", // 0x90 - "ryig", // 0x91 - "ryigg", // 0x92 - "ryigs", // 0x93 - "ryin", // 0x94 - "ryinj", // 0x95 - "ryinh", // 0x96 - "ryid", // 0x97 - "ryil", // 0x98 - "ryilg", // 0x99 - "ryilm", // 0x9a - "ryilb", // 0x9b - "ryils", // 0x9c - "ryilt", // 0x9d - "ryilp", // 0x9e - "ryilh", // 0x9f - "ryim", // 0xa0 - "ryib", // 0xa1 - "ryibs", // 0xa2 - "ryis", // 0xa3 - "ryiss", // 0xa4 - "rying", // 0xa5 - "ryij", // 0xa6 - "ryic", // 0xa7 - "ryik", // 0xa8 - "ryit", // 0xa9 - "ryip", // 0xaa - "ryih", // 0xab - "ri", // 0xac - "rig", // 0xad - "rigg", // 0xae - "rigs", // 0xaf - "rin", // 0xb0 - "rinj", // 0xb1 - "rinh", // 0xb2 - "rid", // 0xb3 - "ril", // 0xb4 - "rilg", // 0xb5 - "rilm", // 0xb6 - "rilb", // 0xb7 - "rils", // 0xb8 - "rilt", // 0xb9 - "rilp", // 0xba - "rilh", // 0xbb - "rim", // 0xbc - "rib", // 0xbd - "ribs", // 0xbe - "ris", // 0xbf - "riss", // 0xc0 - "ring", // 0xc1 - "rij", // 0xc2 - "ric", // 0xc3 - "rik", // 0xc4 - "rit", // 0xc5 - "rip", // 0xc6 - "rih", // 0xc7 - "ma", // 0xc8 - "mag", // 0xc9 - "magg", // 0xca - "mags", // 0xcb - "man", // 0xcc - "manj", // 0xcd - "manh", // 0xce - "mad", // 0xcf - "mal", // 0xd0 - "malg", // 0xd1 - "malm", // 0xd2 - "malb", // 0xd3 - "mals", // 0xd4 - "malt", // 0xd5 - "malp", // 0xd6 - "malh", // 0xd7 - "mam", // 0xd8 - "mab", // 0xd9 - "mabs", // 0xda - "mas", // 0xdb - "mass", // 0xdc - "mang", // 0xdd - "maj", // 0xde - "mac", // 0xdf - "mak", // 0xe0 - "mat", // 0xe1 - "map", // 0xe2 - "mah", // 0xe3 - "mae", // 0xe4 - "maeg", // 0xe5 - "maegg", // 0xe6 - "maegs", // 0xe7 - "maen", // 0xe8 - "maenj", // 0xe9 - "maenh", // 0xea - "maed", // 0xeb - "mael", // 0xec - "maelg", // 0xed - "maelm", // 0xee - "maelb", // 0xef - "maels", // 0xf0 - "maelt", // 0xf1 - "maelp", // 0xf2 - "maelh", // 0xf3 - "maem", // 0xf4 - "maeb", // 0xf5 - "maebs", // 0xf6 - "maes", // 0xf7 - "maess", // 0xf8 - "maeng", // 0xf9 - "maej", // 0xfa - "maec", // 0xfb - "maek", // 0xfc - "maet", // 0xfd - "maep", // 0xfe - "maeh", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0ba.go b/vendor/github.com/mozillazg/go-unidecode/table/x0ba.go deleted file mode 100644 index 60ce58e..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0ba.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0ba = []string{ - "mya", // 0x00 - "myag", // 0x01 - "myagg", // 0x02 - "myags", // 0x03 - "myan", // 0x04 - "myanj", // 0x05 - "myanh", // 0x06 - "myad", // 0x07 - "myal", // 0x08 - "myalg", // 0x09 - "myalm", // 0x0a - "myalb", // 0x0b - "myals", // 0x0c - "myalt", // 0x0d - "myalp", // 0x0e - "myalh", // 0x0f - "myam", // 0x10 - "myab", // 0x11 - "myabs", // 0x12 - "myas", // 0x13 - "myass", // 0x14 - "myang", // 0x15 - "myaj", // 0x16 - "myac", // 0x17 - "myak", // 0x18 - "myat", // 0x19 - "myap", // 0x1a - "myah", // 0x1b - "myae", // 0x1c - "myaeg", // 0x1d - "myaegg", // 0x1e - "myaegs", // 0x1f - "myaen", // 0x20 - "myaenj", // 0x21 - "myaenh", // 0x22 - "myaed", // 0x23 - "myael", // 0x24 - "myaelg", // 0x25 - "myaelm", // 0x26 - "myaelb", // 0x27 - "myaels", // 0x28 - "myaelt", // 0x29 - "myaelp", // 0x2a - "myaelh", // 0x2b - "myaem", // 0x2c - "myaeb", // 0x2d - "myaebs", // 0x2e - "myaes", // 0x2f - "myaess", // 0x30 - "myaeng", // 0x31 - "myaej", // 0x32 - "myaec", // 0x33 - "myaek", // 0x34 - "myaet", // 0x35 - "myaep", // 0x36 - "myaeh", // 0x37 - "meo", // 0x38 - "meog", // 0x39 - "meogg", // 0x3a - "meogs", // 0x3b - "meon", // 0x3c - "meonj", // 0x3d - "meonh", // 0x3e - "meod", // 0x3f - "meol", // 0x40 - "meolg", // 0x41 - "meolm", // 0x42 - "meolb", // 0x43 - "meols", // 0x44 - "meolt", // 0x45 - "meolp", // 0x46 - "meolh", // 0x47 - "meom", // 0x48 - "meob", // 0x49 - "meobs", // 0x4a - "meos", // 0x4b - "meoss", // 0x4c - "meong", // 0x4d - "meoj", // 0x4e - "meoc", // 0x4f - "meok", // 0x50 - "meot", // 0x51 - "meop", // 0x52 - "meoh", // 0x53 - "me", // 0x54 - "meg", // 0x55 - "megg", // 0x56 - "megs", // 0x57 - "men", // 0x58 - "menj", // 0x59 - "menh", // 0x5a - "med", // 0x5b - "mel", // 0x5c - "melg", // 0x5d - "melm", // 0x5e - "melb", // 0x5f - "mels", // 0x60 - "melt", // 0x61 - "melp", // 0x62 - "melh", // 0x63 - "mem", // 0x64 - "meb", // 0x65 - "mebs", // 0x66 - "mes", // 0x67 - "mess", // 0x68 - "meng", // 0x69 - "mej", // 0x6a - "mec", // 0x6b - "mek", // 0x6c - "met", // 0x6d - "mep", // 0x6e - "meh", // 0x6f - "myeo", // 0x70 - "myeog", // 0x71 - "myeogg", // 0x72 - "myeogs", // 0x73 - "myeon", // 0x74 - "myeonj", // 0x75 - "myeonh", // 0x76 - "myeod", // 0x77 - "myeol", // 0x78 - "myeolg", // 0x79 - "myeolm", // 0x7a - "myeolb", // 0x7b - "myeols", // 0x7c - "myeolt", // 0x7d - "myeolp", // 0x7e - "myeolh", // 0x7f - "myeom", // 0x80 - "myeob", // 0x81 - "myeobs", // 0x82 - "myeos", // 0x83 - "myeoss", // 0x84 - "myeong", // 0x85 - "myeoj", // 0x86 - "myeoc", // 0x87 - "myeok", // 0x88 - "myeot", // 0x89 - "myeop", // 0x8a - "myeoh", // 0x8b - "mye", // 0x8c - "myeg", // 0x8d - "myegg", // 0x8e - "myegs", // 0x8f - "myen", // 0x90 - "myenj", // 0x91 - "myenh", // 0x92 - "myed", // 0x93 - "myel", // 0x94 - "myelg", // 0x95 - "myelm", // 0x96 - "myelb", // 0x97 - "myels", // 0x98 - "myelt", // 0x99 - "myelp", // 0x9a - "myelh", // 0x9b - "myem", // 0x9c - "myeb", // 0x9d - "myebs", // 0x9e - "myes", // 0x9f - "myess", // 0xa0 - "myeng", // 0xa1 - "myej", // 0xa2 - "myec", // 0xa3 - "myek", // 0xa4 - "myet", // 0xa5 - "myep", // 0xa6 - "myeh", // 0xa7 - "mo", // 0xa8 - "mog", // 0xa9 - "mogg", // 0xaa - "mogs", // 0xab - "mon", // 0xac - "monj", // 0xad - "monh", // 0xae - "mod", // 0xaf - "mol", // 0xb0 - "molg", // 0xb1 - "molm", // 0xb2 - "molb", // 0xb3 - "mols", // 0xb4 - "molt", // 0xb5 - "molp", // 0xb6 - "molh", // 0xb7 - "mom", // 0xb8 - "mob", // 0xb9 - "mobs", // 0xba - "mos", // 0xbb - "moss", // 0xbc - "mong", // 0xbd - "moj", // 0xbe - "moc", // 0xbf - "mok", // 0xc0 - "mot", // 0xc1 - "mop", // 0xc2 - "moh", // 0xc3 - "mwa", // 0xc4 - "mwag", // 0xc5 - "mwagg", // 0xc6 - "mwags", // 0xc7 - "mwan", // 0xc8 - "mwanj", // 0xc9 - "mwanh", // 0xca - "mwad", // 0xcb - "mwal", // 0xcc - "mwalg", // 0xcd - "mwalm", // 0xce - "mwalb", // 0xcf - "mwals", // 0xd0 - "mwalt", // 0xd1 - "mwalp", // 0xd2 - "mwalh", // 0xd3 - "mwam", // 0xd4 - "mwab", // 0xd5 - "mwabs", // 0xd6 - "mwas", // 0xd7 - "mwass", // 0xd8 - "mwang", // 0xd9 - "mwaj", // 0xda - "mwac", // 0xdb - "mwak", // 0xdc - "mwat", // 0xdd - "mwap", // 0xde - "mwah", // 0xdf - "mwae", // 0xe0 - "mwaeg", // 0xe1 - "mwaegg", // 0xe2 - "mwaegs", // 0xe3 - "mwaen", // 0xe4 - "mwaenj", // 0xe5 - "mwaenh", // 0xe6 - "mwaed", // 0xe7 - "mwael", // 0xe8 - "mwaelg", // 0xe9 - "mwaelm", // 0xea - "mwaelb", // 0xeb - "mwaels", // 0xec - "mwaelt", // 0xed - "mwaelp", // 0xee - "mwaelh", // 0xef - "mwaem", // 0xf0 - "mwaeb", // 0xf1 - "mwaebs", // 0xf2 - "mwaes", // 0xf3 - "mwaess", // 0xf4 - "mwaeng", // 0xf5 - "mwaej", // 0xf6 - "mwaec", // 0xf7 - "mwaek", // 0xf8 - "mwaet", // 0xf9 - "mwaep", // 0xfa - "mwaeh", // 0xfb - "moe", // 0xfc - "moeg", // 0xfd - "moegg", // 0xfe - "moegs", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0bb.go b/vendor/github.com/mozillazg/go-unidecode/table/x0bb.go deleted file mode 100644 index b414aee..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0bb.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0bb = []string{ - "moen", // 0x00 - "moenj", // 0x01 - "moenh", // 0x02 - "moed", // 0x03 - "moel", // 0x04 - "moelg", // 0x05 - "moelm", // 0x06 - "moelb", // 0x07 - "moels", // 0x08 - "moelt", // 0x09 - "moelp", // 0x0a - "moelh", // 0x0b - "moem", // 0x0c - "moeb", // 0x0d - "moebs", // 0x0e - "moes", // 0x0f - "moess", // 0x10 - "moeng", // 0x11 - "moej", // 0x12 - "moec", // 0x13 - "moek", // 0x14 - "moet", // 0x15 - "moep", // 0x16 - "moeh", // 0x17 - "myo", // 0x18 - "myog", // 0x19 - "myogg", // 0x1a - "myogs", // 0x1b - "myon", // 0x1c - "myonj", // 0x1d - "myonh", // 0x1e - "myod", // 0x1f - "myol", // 0x20 - "myolg", // 0x21 - "myolm", // 0x22 - "myolb", // 0x23 - "myols", // 0x24 - "myolt", // 0x25 - "myolp", // 0x26 - "myolh", // 0x27 - "myom", // 0x28 - "myob", // 0x29 - "myobs", // 0x2a - "myos", // 0x2b - "myoss", // 0x2c - "myong", // 0x2d - "myoj", // 0x2e - "myoc", // 0x2f - "myok", // 0x30 - "myot", // 0x31 - "myop", // 0x32 - "myoh", // 0x33 - "mu", // 0x34 - "mug", // 0x35 - "mugg", // 0x36 - "mugs", // 0x37 - "mun", // 0x38 - "munj", // 0x39 - "munh", // 0x3a - "mud", // 0x3b - "mul", // 0x3c - "mulg", // 0x3d - "mulm", // 0x3e - "mulb", // 0x3f - "muls", // 0x40 - "mult", // 0x41 - "mulp", // 0x42 - "mulh", // 0x43 - "mum", // 0x44 - "mub", // 0x45 - "mubs", // 0x46 - "mus", // 0x47 - "muss", // 0x48 - "mung", // 0x49 - "muj", // 0x4a - "muc", // 0x4b - "muk", // 0x4c - "mut", // 0x4d - "mup", // 0x4e - "muh", // 0x4f - "mweo", // 0x50 - "mweog", // 0x51 - "mweogg", // 0x52 - "mweogs", // 0x53 - "mweon", // 0x54 - "mweonj", // 0x55 - "mweonh", // 0x56 - "mweod", // 0x57 - "mweol", // 0x58 - "mweolg", // 0x59 - "mweolm", // 0x5a - "mweolb", // 0x5b - "mweols", // 0x5c - "mweolt", // 0x5d - "mweolp", // 0x5e - "mweolh", // 0x5f - "mweom", // 0x60 - "mweob", // 0x61 - "mweobs", // 0x62 - "mweos", // 0x63 - "mweoss", // 0x64 - "mweong", // 0x65 - "mweoj", // 0x66 - "mweoc", // 0x67 - "mweok", // 0x68 - "mweot", // 0x69 - "mweop", // 0x6a - "mweoh", // 0x6b - "mwe", // 0x6c - "mweg", // 0x6d - "mwegg", // 0x6e - "mwegs", // 0x6f - "mwen", // 0x70 - "mwenj", // 0x71 - "mwenh", // 0x72 - "mwed", // 0x73 - "mwel", // 0x74 - "mwelg", // 0x75 - "mwelm", // 0x76 - "mwelb", // 0x77 - "mwels", // 0x78 - "mwelt", // 0x79 - "mwelp", // 0x7a - "mwelh", // 0x7b - "mwem", // 0x7c - "mweb", // 0x7d - "mwebs", // 0x7e - "mwes", // 0x7f - "mwess", // 0x80 - "mweng", // 0x81 - "mwej", // 0x82 - "mwec", // 0x83 - "mwek", // 0x84 - "mwet", // 0x85 - "mwep", // 0x86 - "mweh", // 0x87 - "mwi", // 0x88 - "mwig", // 0x89 - "mwigg", // 0x8a - "mwigs", // 0x8b - "mwin", // 0x8c - "mwinj", // 0x8d - "mwinh", // 0x8e - "mwid", // 0x8f - "mwil", // 0x90 - "mwilg", // 0x91 - "mwilm", // 0x92 - "mwilb", // 0x93 - "mwils", // 0x94 - "mwilt", // 0x95 - "mwilp", // 0x96 - "mwilh", // 0x97 - "mwim", // 0x98 - "mwib", // 0x99 - "mwibs", // 0x9a - "mwis", // 0x9b - "mwiss", // 0x9c - "mwing", // 0x9d - "mwij", // 0x9e - "mwic", // 0x9f - "mwik", // 0xa0 - "mwit", // 0xa1 - "mwip", // 0xa2 - "mwih", // 0xa3 - "myu", // 0xa4 - "myug", // 0xa5 - "myugg", // 0xa6 - "myugs", // 0xa7 - "myun", // 0xa8 - "myunj", // 0xa9 - "myunh", // 0xaa - "myud", // 0xab - "myul", // 0xac - "myulg", // 0xad - "myulm", // 0xae - "myulb", // 0xaf - "myuls", // 0xb0 - "myult", // 0xb1 - "myulp", // 0xb2 - "myulh", // 0xb3 - "myum", // 0xb4 - "myub", // 0xb5 - "myubs", // 0xb6 - "myus", // 0xb7 - "myuss", // 0xb8 - "myung", // 0xb9 - "myuj", // 0xba - "myuc", // 0xbb - "myuk", // 0xbc - "myut", // 0xbd - "myup", // 0xbe - "myuh", // 0xbf - "meu", // 0xc0 - "meug", // 0xc1 - "meugg", // 0xc2 - "meugs", // 0xc3 - "meun", // 0xc4 - "meunj", // 0xc5 - "meunh", // 0xc6 - "meud", // 0xc7 - "meul", // 0xc8 - "meulg", // 0xc9 - "meulm", // 0xca - "meulb", // 0xcb - "meuls", // 0xcc - "meult", // 0xcd - "meulp", // 0xce - "meulh", // 0xcf - "meum", // 0xd0 - "meub", // 0xd1 - "meubs", // 0xd2 - "meus", // 0xd3 - "meuss", // 0xd4 - "meung", // 0xd5 - "meuj", // 0xd6 - "meuc", // 0xd7 - "meuk", // 0xd8 - "meut", // 0xd9 - "meup", // 0xda - "meuh", // 0xdb - "myi", // 0xdc - "myig", // 0xdd - "myigg", // 0xde - "myigs", // 0xdf - "myin", // 0xe0 - "myinj", // 0xe1 - "myinh", // 0xe2 - "myid", // 0xe3 - "myil", // 0xe4 - "myilg", // 0xe5 - "myilm", // 0xe6 - "myilb", // 0xe7 - "myils", // 0xe8 - "myilt", // 0xe9 - "myilp", // 0xea - "myilh", // 0xeb - "myim", // 0xec - "myib", // 0xed - "myibs", // 0xee - "myis", // 0xef - "myiss", // 0xf0 - "mying", // 0xf1 - "myij", // 0xf2 - "myic", // 0xf3 - "myik", // 0xf4 - "myit", // 0xf5 - "myip", // 0xf6 - "myih", // 0xf7 - "mi", // 0xf8 - "mig", // 0xf9 - "migg", // 0xfa - "migs", // 0xfb - "min", // 0xfc - "minj", // 0xfd - "minh", // 0xfe - "mid", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0bc.go b/vendor/github.com/mozillazg/go-unidecode/table/x0bc.go deleted file mode 100644 index 31afef0..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0bc.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0bc = []string{ - "mil", // 0x00 - "milg", // 0x01 - "milm", // 0x02 - "milb", // 0x03 - "mils", // 0x04 - "milt", // 0x05 - "milp", // 0x06 - "milh", // 0x07 - "mim", // 0x08 - "mib", // 0x09 - "mibs", // 0x0a - "mis", // 0x0b - "miss", // 0x0c - "ming", // 0x0d - "mij", // 0x0e - "mic", // 0x0f - "mik", // 0x10 - "mit", // 0x11 - "mip", // 0x12 - "mih", // 0x13 - "ba", // 0x14 - "bag", // 0x15 - "bagg", // 0x16 - "bags", // 0x17 - "ban", // 0x18 - "banj", // 0x19 - "banh", // 0x1a - "bad", // 0x1b - "bal", // 0x1c - "balg", // 0x1d - "balm", // 0x1e - "balb", // 0x1f - "bals", // 0x20 - "balt", // 0x21 - "balp", // 0x22 - "balh", // 0x23 - "bam", // 0x24 - "bab", // 0x25 - "babs", // 0x26 - "bas", // 0x27 - "bass", // 0x28 - "bang", // 0x29 - "baj", // 0x2a - "bac", // 0x2b - "bak", // 0x2c - "bat", // 0x2d - "bap", // 0x2e - "bah", // 0x2f - "bae", // 0x30 - "baeg", // 0x31 - "baegg", // 0x32 - "baegs", // 0x33 - "baen", // 0x34 - "baenj", // 0x35 - "baenh", // 0x36 - "baed", // 0x37 - "bael", // 0x38 - "baelg", // 0x39 - "baelm", // 0x3a - "baelb", // 0x3b - "baels", // 0x3c - "baelt", // 0x3d - "baelp", // 0x3e - "baelh", // 0x3f - "baem", // 0x40 - "baeb", // 0x41 - "baebs", // 0x42 - "baes", // 0x43 - "baess", // 0x44 - "baeng", // 0x45 - "baej", // 0x46 - "baec", // 0x47 - "baek", // 0x48 - "baet", // 0x49 - "baep", // 0x4a - "baeh", // 0x4b - "bya", // 0x4c - "byag", // 0x4d - "byagg", // 0x4e - "byags", // 0x4f - "byan", // 0x50 - "byanj", // 0x51 - "byanh", // 0x52 - "byad", // 0x53 - "byal", // 0x54 - "byalg", // 0x55 - "byalm", // 0x56 - "byalb", // 0x57 - "byals", // 0x58 - "byalt", // 0x59 - "byalp", // 0x5a - "byalh", // 0x5b - "byam", // 0x5c - "byab", // 0x5d - "byabs", // 0x5e - "byas", // 0x5f - "byass", // 0x60 - "byang", // 0x61 - "byaj", // 0x62 - "byac", // 0x63 - "byak", // 0x64 - "byat", // 0x65 - "byap", // 0x66 - "byah", // 0x67 - "byae", // 0x68 - "byaeg", // 0x69 - "byaegg", // 0x6a - "byaegs", // 0x6b - "byaen", // 0x6c - "byaenj", // 0x6d - "byaenh", // 0x6e - "byaed", // 0x6f - "byael", // 0x70 - "byaelg", // 0x71 - "byaelm", // 0x72 - "byaelb", // 0x73 - "byaels", // 0x74 - "byaelt", // 0x75 - "byaelp", // 0x76 - "byaelh", // 0x77 - "byaem", // 0x78 - "byaeb", // 0x79 - "byaebs", // 0x7a - "byaes", // 0x7b - "byaess", // 0x7c - "byaeng", // 0x7d - "byaej", // 0x7e - "byaec", // 0x7f - "byaek", // 0x80 - "byaet", // 0x81 - "byaep", // 0x82 - "byaeh", // 0x83 - "beo", // 0x84 - "beog", // 0x85 - "beogg", // 0x86 - "beogs", // 0x87 - "beon", // 0x88 - "beonj", // 0x89 - "beonh", // 0x8a - "beod", // 0x8b - "beol", // 0x8c - "beolg", // 0x8d - "beolm", // 0x8e - "beolb", // 0x8f - "beols", // 0x90 - "beolt", // 0x91 - "beolp", // 0x92 - "beolh", // 0x93 - "beom", // 0x94 - "beob", // 0x95 - "beobs", // 0x96 - "beos", // 0x97 - "beoss", // 0x98 - "beong", // 0x99 - "beoj", // 0x9a - "beoc", // 0x9b - "beok", // 0x9c - "beot", // 0x9d - "beop", // 0x9e - "beoh", // 0x9f - "be", // 0xa0 - "beg", // 0xa1 - "begg", // 0xa2 - "begs", // 0xa3 - "ben", // 0xa4 - "benj", // 0xa5 - "benh", // 0xa6 - "bed", // 0xa7 - "bel", // 0xa8 - "belg", // 0xa9 - "belm", // 0xaa - "belb", // 0xab - "bels", // 0xac - "belt", // 0xad - "belp", // 0xae - "belh", // 0xaf - "bem", // 0xb0 - "beb", // 0xb1 - "bebs", // 0xb2 - "bes", // 0xb3 - "bess", // 0xb4 - "beng", // 0xb5 - "bej", // 0xb6 - "bec", // 0xb7 - "bek", // 0xb8 - "bet", // 0xb9 - "bep", // 0xba - "beh", // 0xbb - "byeo", // 0xbc - "byeog", // 0xbd - "byeogg", // 0xbe - "byeogs", // 0xbf - "byeon", // 0xc0 - "byeonj", // 0xc1 - "byeonh", // 0xc2 - "byeod", // 0xc3 - "byeol", // 0xc4 - "byeolg", // 0xc5 - "byeolm", // 0xc6 - "byeolb", // 0xc7 - "byeols", // 0xc8 - "byeolt", // 0xc9 - "byeolp", // 0xca - "byeolh", // 0xcb - "byeom", // 0xcc - "byeob", // 0xcd - "byeobs", // 0xce - "byeos", // 0xcf - "byeoss", // 0xd0 - "byeong", // 0xd1 - "byeoj", // 0xd2 - "byeoc", // 0xd3 - "byeok", // 0xd4 - "byeot", // 0xd5 - "byeop", // 0xd6 - "byeoh", // 0xd7 - "bye", // 0xd8 - "byeg", // 0xd9 - "byegg", // 0xda - "byegs", // 0xdb - "byen", // 0xdc - "byenj", // 0xdd - "byenh", // 0xde - "byed", // 0xdf - "byel", // 0xe0 - "byelg", // 0xe1 - "byelm", // 0xe2 - "byelb", // 0xe3 - "byels", // 0xe4 - "byelt", // 0xe5 - "byelp", // 0xe6 - "byelh", // 0xe7 - "byem", // 0xe8 - "byeb", // 0xe9 - "byebs", // 0xea - "byes", // 0xeb - "byess", // 0xec - "byeng", // 0xed - "byej", // 0xee - "byec", // 0xef - "byek", // 0xf0 - "byet", // 0xf1 - "byep", // 0xf2 - "byeh", // 0xf3 - "bo", // 0xf4 - "bog", // 0xf5 - "bogg", // 0xf6 - "bogs", // 0xf7 - "bon", // 0xf8 - "bonj", // 0xf9 - "bonh", // 0xfa - "bod", // 0xfb - "bol", // 0xfc - "bolg", // 0xfd - "bolm", // 0xfe - "bolb", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0bd.go b/vendor/github.com/mozillazg/go-unidecode/table/x0bd.go deleted file mode 100644 index 5629ba2..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0bd.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0bd = []string{ - "bols", // 0x00 - "bolt", // 0x01 - "bolp", // 0x02 - "bolh", // 0x03 - "bom", // 0x04 - "bob", // 0x05 - "bobs", // 0x06 - "bos", // 0x07 - "boss", // 0x08 - "bong", // 0x09 - "boj", // 0x0a - "boc", // 0x0b - "bok", // 0x0c - "bot", // 0x0d - "bop", // 0x0e - "boh", // 0x0f - "bwa", // 0x10 - "bwag", // 0x11 - "bwagg", // 0x12 - "bwags", // 0x13 - "bwan", // 0x14 - "bwanj", // 0x15 - "bwanh", // 0x16 - "bwad", // 0x17 - "bwal", // 0x18 - "bwalg", // 0x19 - "bwalm", // 0x1a - "bwalb", // 0x1b - "bwals", // 0x1c - "bwalt", // 0x1d - "bwalp", // 0x1e - "bwalh", // 0x1f - "bwam", // 0x20 - "bwab", // 0x21 - "bwabs", // 0x22 - "bwas", // 0x23 - "bwass", // 0x24 - "bwang", // 0x25 - "bwaj", // 0x26 - "bwac", // 0x27 - "bwak", // 0x28 - "bwat", // 0x29 - "bwap", // 0x2a - "bwah", // 0x2b - "bwae", // 0x2c - "bwaeg", // 0x2d - "bwaegg", // 0x2e - "bwaegs", // 0x2f - "bwaen", // 0x30 - "bwaenj", // 0x31 - "bwaenh", // 0x32 - "bwaed", // 0x33 - "bwael", // 0x34 - "bwaelg", // 0x35 - "bwaelm", // 0x36 - "bwaelb", // 0x37 - "bwaels", // 0x38 - "bwaelt", // 0x39 - "bwaelp", // 0x3a - "bwaelh", // 0x3b - "bwaem", // 0x3c - "bwaeb", // 0x3d - "bwaebs", // 0x3e - "bwaes", // 0x3f - "bwaess", // 0x40 - "bwaeng", // 0x41 - "bwaej", // 0x42 - "bwaec", // 0x43 - "bwaek", // 0x44 - "bwaet", // 0x45 - "bwaep", // 0x46 - "bwaeh", // 0x47 - "boe", // 0x48 - "boeg", // 0x49 - "boegg", // 0x4a - "boegs", // 0x4b - "boen", // 0x4c - "boenj", // 0x4d - "boenh", // 0x4e - "boed", // 0x4f - "boel", // 0x50 - "boelg", // 0x51 - "boelm", // 0x52 - "boelb", // 0x53 - "boels", // 0x54 - "boelt", // 0x55 - "boelp", // 0x56 - "boelh", // 0x57 - "boem", // 0x58 - "boeb", // 0x59 - "boebs", // 0x5a - "boes", // 0x5b - "boess", // 0x5c - "boeng", // 0x5d - "boej", // 0x5e - "boec", // 0x5f - "boek", // 0x60 - "boet", // 0x61 - "boep", // 0x62 - "boeh", // 0x63 - "byo", // 0x64 - "byog", // 0x65 - "byogg", // 0x66 - "byogs", // 0x67 - "byon", // 0x68 - "byonj", // 0x69 - "byonh", // 0x6a - "byod", // 0x6b - "byol", // 0x6c - "byolg", // 0x6d - "byolm", // 0x6e - "byolb", // 0x6f - "byols", // 0x70 - "byolt", // 0x71 - "byolp", // 0x72 - "byolh", // 0x73 - "byom", // 0x74 - "byob", // 0x75 - "byobs", // 0x76 - "byos", // 0x77 - "byoss", // 0x78 - "byong", // 0x79 - "byoj", // 0x7a - "byoc", // 0x7b - "byok", // 0x7c - "byot", // 0x7d - "byop", // 0x7e - "byoh", // 0x7f - "bu", // 0x80 - "bug", // 0x81 - "bugg", // 0x82 - "bugs", // 0x83 - "bun", // 0x84 - "bunj", // 0x85 - "bunh", // 0x86 - "bud", // 0x87 - "bul", // 0x88 - "bulg", // 0x89 - "bulm", // 0x8a - "bulb", // 0x8b - "buls", // 0x8c - "bult", // 0x8d - "bulp", // 0x8e - "bulh", // 0x8f - "bum", // 0x90 - "bub", // 0x91 - "bubs", // 0x92 - "bus", // 0x93 - "buss", // 0x94 - "bung", // 0x95 - "buj", // 0x96 - "buc", // 0x97 - "buk", // 0x98 - "but", // 0x99 - "bup", // 0x9a - "buh", // 0x9b - "bweo", // 0x9c - "bweog", // 0x9d - "bweogg", // 0x9e - "bweogs", // 0x9f - "bweon", // 0xa0 - "bweonj", // 0xa1 - "bweonh", // 0xa2 - "bweod", // 0xa3 - "bweol", // 0xa4 - "bweolg", // 0xa5 - "bweolm", // 0xa6 - "bweolb", // 0xa7 - "bweols", // 0xa8 - "bweolt", // 0xa9 - "bweolp", // 0xaa - "bweolh", // 0xab - "bweom", // 0xac - "bweob", // 0xad - "bweobs", // 0xae - "bweos", // 0xaf - "bweoss", // 0xb0 - "bweong", // 0xb1 - "bweoj", // 0xb2 - "bweoc", // 0xb3 - "bweok", // 0xb4 - "bweot", // 0xb5 - "bweop", // 0xb6 - "bweoh", // 0xb7 - "bwe", // 0xb8 - "bweg", // 0xb9 - "bwegg", // 0xba - "bwegs", // 0xbb - "bwen", // 0xbc - "bwenj", // 0xbd - "bwenh", // 0xbe - "bwed", // 0xbf - "bwel", // 0xc0 - "bwelg", // 0xc1 - "bwelm", // 0xc2 - "bwelb", // 0xc3 - "bwels", // 0xc4 - "bwelt", // 0xc5 - "bwelp", // 0xc6 - "bwelh", // 0xc7 - "bwem", // 0xc8 - "bweb", // 0xc9 - "bwebs", // 0xca - "bwes", // 0xcb - "bwess", // 0xcc - "bweng", // 0xcd - "bwej", // 0xce - "bwec", // 0xcf - "bwek", // 0xd0 - "bwet", // 0xd1 - "bwep", // 0xd2 - "bweh", // 0xd3 - "bwi", // 0xd4 - "bwig", // 0xd5 - "bwigg", // 0xd6 - "bwigs", // 0xd7 - "bwin", // 0xd8 - "bwinj", // 0xd9 - "bwinh", // 0xda - "bwid", // 0xdb - "bwil", // 0xdc - "bwilg", // 0xdd - "bwilm", // 0xde - "bwilb", // 0xdf - "bwils", // 0xe0 - "bwilt", // 0xe1 - "bwilp", // 0xe2 - "bwilh", // 0xe3 - "bwim", // 0xe4 - "bwib", // 0xe5 - "bwibs", // 0xe6 - "bwis", // 0xe7 - "bwiss", // 0xe8 - "bwing", // 0xe9 - "bwij", // 0xea - "bwic", // 0xeb - "bwik", // 0xec - "bwit", // 0xed - "bwip", // 0xee - "bwih", // 0xef - "byu", // 0xf0 - "byug", // 0xf1 - "byugg", // 0xf2 - "byugs", // 0xf3 - "byun", // 0xf4 - "byunj", // 0xf5 - "byunh", // 0xf6 - "byud", // 0xf7 - "byul", // 0xf8 - "byulg", // 0xf9 - "byulm", // 0xfa - "byulb", // 0xfb - "byuls", // 0xfc - "byult", // 0xfd - "byulp", // 0xfe - "byulh", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0be.go b/vendor/github.com/mozillazg/go-unidecode/table/x0be.go deleted file mode 100644 index e1ca221..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0be.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0be = []string{ - "byum", // 0x00 - "byub", // 0x01 - "byubs", // 0x02 - "byus", // 0x03 - "byuss", // 0x04 - "byung", // 0x05 - "byuj", // 0x06 - "byuc", // 0x07 - "byuk", // 0x08 - "byut", // 0x09 - "byup", // 0x0a - "byuh", // 0x0b - "beu", // 0x0c - "beug", // 0x0d - "beugg", // 0x0e - "beugs", // 0x0f - "beun", // 0x10 - "beunj", // 0x11 - "beunh", // 0x12 - "beud", // 0x13 - "beul", // 0x14 - "beulg", // 0x15 - "beulm", // 0x16 - "beulb", // 0x17 - "beuls", // 0x18 - "beult", // 0x19 - "beulp", // 0x1a - "beulh", // 0x1b - "beum", // 0x1c - "beub", // 0x1d - "beubs", // 0x1e - "beus", // 0x1f - "beuss", // 0x20 - "beung", // 0x21 - "beuj", // 0x22 - "beuc", // 0x23 - "beuk", // 0x24 - "beut", // 0x25 - "beup", // 0x26 - "beuh", // 0x27 - "byi", // 0x28 - "byig", // 0x29 - "byigg", // 0x2a - "byigs", // 0x2b - "byin", // 0x2c - "byinj", // 0x2d - "byinh", // 0x2e - "byid", // 0x2f - "byil", // 0x30 - "byilg", // 0x31 - "byilm", // 0x32 - "byilb", // 0x33 - "byils", // 0x34 - "byilt", // 0x35 - "byilp", // 0x36 - "byilh", // 0x37 - "byim", // 0x38 - "byib", // 0x39 - "byibs", // 0x3a - "byis", // 0x3b - "byiss", // 0x3c - "bying", // 0x3d - "byij", // 0x3e - "byic", // 0x3f - "byik", // 0x40 - "byit", // 0x41 - "byip", // 0x42 - "byih", // 0x43 - "bi", // 0x44 - "big", // 0x45 - "bigg", // 0x46 - "bigs", // 0x47 - "bin", // 0x48 - "binj", // 0x49 - "binh", // 0x4a - "bid", // 0x4b - "bil", // 0x4c - "bilg", // 0x4d - "bilm", // 0x4e - "bilb", // 0x4f - "bils", // 0x50 - "bilt", // 0x51 - "bilp", // 0x52 - "bilh", // 0x53 - "bim", // 0x54 - "bib", // 0x55 - "bibs", // 0x56 - "bis", // 0x57 - "biss", // 0x58 - "bing", // 0x59 - "bij", // 0x5a - "bic", // 0x5b - "bik", // 0x5c - "bit", // 0x5d - "bip", // 0x5e - "bih", // 0x5f - "bba", // 0x60 - "bbag", // 0x61 - "bbagg", // 0x62 - "bbags", // 0x63 - "bban", // 0x64 - "bbanj", // 0x65 - "bbanh", // 0x66 - "bbad", // 0x67 - "bbal", // 0x68 - "bbalg", // 0x69 - "bbalm", // 0x6a - "bbalb", // 0x6b - "bbals", // 0x6c - "bbalt", // 0x6d - "bbalp", // 0x6e - "bbalh", // 0x6f - "bbam", // 0x70 - "bbab", // 0x71 - "bbabs", // 0x72 - "bbas", // 0x73 - "bbass", // 0x74 - "bbang", // 0x75 - "bbaj", // 0x76 - "bbac", // 0x77 - "bbak", // 0x78 - "bbat", // 0x79 - "bbap", // 0x7a - "bbah", // 0x7b - "bbae", // 0x7c - "bbaeg", // 0x7d - "bbaegg", // 0x7e - "bbaegs", // 0x7f - "bbaen", // 0x80 - "bbaenj", // 0x81 - "bbaenh", // 0x82 - "bbaed", // 0x83 - "bbael", // 0x84 - "bbaelg", // 0x85 - "bbaelm", // 0x86 - "bbaelb", // 0x87 - "bbaels", // 0x88 - "bbaelt", // 0x89 - "bbaelp", // 0x8a - "bbaelh", // 0x8b - "bbaem", // 0x8c - "bbaeb", // 0x8d - "bbaebs", // 0x8e - "bbaes", // 0x8f - "bbaess", // 0x90 - "bbaeng", // 0x91 - "bbaej", // 0x92 - "bbaec", // 0x93 - "bbaek", // 0x94 - "bbaet", // 0x95 - "bbaep", // 0x96 - "bbaeh", // 0x97 - "bbya", // 0x98 - "bbyag", // 0x99 - "bbyagg", // 0x9a - "bbyags", // 0x9b - "bbyan", // 0x9c - "bbyanj", // 0x9d - "bbyanh", // 0x9e - "bbyad", // 0x9f - "bbyal", // 0xa0 - "bbyalg", // 0xa1 - "bbyalm", // 0xa2 - "bbyalb", // 0xa3 - "bbyals", // 0xa4 - "bbyalt", // 0xa5 - "bbyalp", // 0xa6 - "bbyalh", // 0xa7 - "bbyam", // 0xa8 - "bbyab", // 0xa9 - "bbyabs", // 0xaa - "bbyas", // 0xab - "bbyass", // 0xac - "bbyang", // 0xad - "bbyaj", // 0xae - "bbyac", // 0xaf - "bbyak", // 0xb0 - "bbyat", // 0xb1 - "bbyap", // 0xb2 - "bbyah", // 0xb3 - "bbyae", // 0xb4 - "bbyaeg", // 0xb5 - "bbyaegg", // 0xb6 - "bbyaegs", // 0xb7 - "bbyaen", // 0xb8 - "bbyaenj", // 0xb9 - "bbyaenh", // 0xba - "bbyaed", // 0xbb - "bbyael", // 0xbc - "bbyaelg", // 0xbd - "bbyaelm", // 0xbe - "bbyaelb", // 0xbf - "bbyaels", // 0xc0 - "bbyaelt", // 0xc1 - "bbyaelp", // 0xc2 - "bbyaelh", // 0xc3 - "bbyaem", // 0xc4 - "bbyaeb", // 0xc5 - "bbyaebs", // 0xc6 - "bbyaes", // 0xc7 - "bbyaess", // 0xc8 - "bbyaeng", // 0xc9 - "bbyaej", // 0xca - "bbyaec", // 0xcb - "bbyaek", // 0xcc - "bbyaet", // 0xcd - "bbyaep", // 0xce - "bbyaeh", // 0xcf - "bbeo", // 0xd0 - "bbeog", // 0xd1 - "bbeogg", // 0xd2 - "bbeogs", // 0xd3 - "bbeon", // 0xd4 - "bbeonj", // 0xd5 - "bbeonh", // 0xd6 - "bbeod", // 0xd7 - "bbeol", // 0xd8 - "bbeolg", // 0xd9 - "bbeolm", // 0xda - "bbeolb", // 0xdb - "bbeols", // 0xdc - "bbeolt", // 0xdd - "bbeolp", // 0xde - "bbeolh", // 0xdf - "bbeom", // 0xe0 - "bbeob", // 0xe1 - "bbeobs", // 0xe2 - "bbeos", // 0xe3 - "bbeoss", // 0xe4 - "bbeong", // 0xe5 - "bbeoj", // 0xe6 - "bbeoc", // 0xe7 - "bbeok", // 0xe8 - "bbeot", // 0xe9 - "bbeop", // 0xea - "bbeoh", // 0xeb - "bbe", // 0xec - "bbeg", // 0xed - "bbegg", // 0xee - "bbegs", // 0xef - "bben", // 0xf0 - "bbenj", // 0xf1 - "bbenh", // 0xf2 - "bbed", // 0xf3 - "bbel", // 0xf4 - "bbelg", // 0xf5 - "bbelm", // 0xf6 - "bbelb", // 0xf7 - "bbels", // 0xf8 - "bbelt", // 0xf9 - "bbelp", // 0xfa - "bbelh", // 0xfb - "bbem", // 0xfc - "bbeb", // 0xfd - "bbebs", // 0xfe - "bbes", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0bf.go b/vendor/github.com/mozillazg/go-unidecode/table/x0bf.go deleted file mode 100644 index d22e05e..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0bf.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0bf = []string{ - "bbess", // 0x00 - "bbeng", // 0x01 - "bbej", // 0x02 - "bbec", // 0x03 - "bbek", // 0x04 - "bbet", // 0x05 - "bbep", // 0x06 - "bbeh", // 0x07 - "bbyeo", // 0x08 - "bbyeog", // 0x09 - "bbyeogg", // 0x0a - "bbyeogs", // 0x0b - "bbyeon", // 0x0c - "bbyeonj", // 0x0d - "bbyeonh", // 0x0e - "bbyeod", // 0x0f - "bbyeol", // 0x10 - "bbyeolg", // 0x11 - "bbyeolm", // 0x12 - "bbyeolb", // 0x13 - "bbyeols", // 0x14 - "bbyeolt", // 0x15 - "bbyeolp", // 0x16 - "bbyeolh", // 0x17 - "bbyeom", // 0x18 - "bbyeob", // 0x19 - "bbyeobs", // 0x1a - "bbyeos", // 0x1b - "bbyeoss", // 0x1c - "bbyeong", // 0x1d - "bbyeoj", // 0x1e - "bbyeoc", // 0x1f - "bbyeok", // 0x20 - "bbyeot", // 0x21 - "bbyeop", // 0x22 - "bbyeoh", // 0x23 - "bbye", // 0x24 - "bbyeg", // 0x25 - "bbyegg", // 0x26 - "bbyegs", // 0x27 - "bbyen", // 0x28 - "bbyenj", // 0x29 - "bbyenh", // 0x2a - "bbyed", // 0x2b - "bbyel", // 0x2c - "bbyelg", // 0x2d - "bbyelm", // 0x2e - "bbyelb", // 0x2f - "bbyels", // 0x30 - "bbyelt", // 0x31 - "bbyelp", // 0x32 - "bbyelh", // 0x33 - "bbyem", // 0x34 - "bbyeb", // 0x35 - "bbyebs", // 0x36 - "bbyes", // 0x37 - "bbyess", // 0x38 - "bbyeng", // 0x39 - "bbyej", // 0x3a - "bbyec", // 0x3b - "bbyek", // 0x3c - "bbyet", // 0x3d - "bbyep", // 0x3e - "bbyeh", // 0x3f - "bbo", // 0x40 - "bbog", // 0x41 - "bbogg", // 0x42 - "bbogs", // 0x43 - "bbon", // 0x44 - "bbonj", // 0x45 - "bbonh", // 0x46 - "bbod", // 0x47 - "bbol", // 0x48 - "bbolg", // 0x49 - "bbolm", // 0x4a - "bbolb", // 0x4b - "bbols", // 0x4c - "bbolt", // 0x4d - "bbolp", // 0x4e - "bbolh", // 0x4f - "bbom", // 0x50 - "bbob", // 0x51 - "bbobs", // 0x52 - "bbos", // 0x53 - "bboss", // 0x54 - "bbong", // 0x55 - "bboj", // 0x56 - "bboc", // 0x57 - "bbok", // 0x58 - "bbot", // 0x59 - "bbop", // 0x5a - "bboh", // 0x5b - "bbwa", // 0x5c - "bbwag", // 0x5d - "bbwagg", // 0x5e - "bbwags", // 0x5f - "bbwan", // 0x60 - "bbwanj", // 0x61 - "bbwanh", // 0x62 - "bbwad", // 0x63 - "bbwal", // 0x64 - "bbwalg", // 0x65 - "bbwalm", // 0x66 - "bbwalb", // 0x67 - "bbwals", // 0x68 - "bbwalt", // 0x69 - "bbwalp", // 0x6a - "bbwalh", // 0x6b - "bbwam", // 0x6c - "bbwab", // 0x6d - "bbwabs", // 0x6e - "bbwas", // 0x6f - "bbwass", // 0x70 - "bbwang", // 0x71 - "bbwaj", // 0x72 - "bbwac", // 0x73 - "bbwak", // 0x74 - "bbwat", // 0x75 - "bbwap", // 0x76 - "bbwah", // 0x77 - "bbwae", // 0x78 - "bbwaeg", // 0x79 - "bbwaegg", // 0x7a - "bbwaegs", // 0x7b - "bbwaen", // 0x7c - "bbwaenj", // 0x7d - "bbwaenh", // 0x7e - "bbwaed", // 0x7f - "bbwael", // 0x80 - "bbwaelg", // 0x81 - "bbwaelm", // 0x82 - "bbwaelb", // 0x83 - "bbwaels", // 0x84 - "bbwaelt", // 0x85 - "bbwaelp", // 0x86 - "bbwaelh", // 0x87 - "bbwaem", // 0x88 - "bbwaeb", // 0x89 - "bbwaebs", // 0x8a - "bbwaes", // 0x8b - "bbwaess", // 0x8c - "bbwaeng", // 0x8d - "bbwaej", // 0x8e - "bbwaec", // 0x8f - "bbwaek", // 0x90 - "bbwaet", // 0x91 - "bbwaep", // 0x92 - "bbwaeh", // 0x93 - "bboe", // 0x94 - "bboeg", // 0x95 - "bboegg", // 0x96 - "bboegs", // 0x97 - "bboen", // 0x98 - "bboenj", // 0x99 - "bboenh", // 0x9a - "bboed", // 0x9b - "bboel", // 0x9c - "bboelg", // 0x9d - "bboelm", // 0x9e - "bboelb", // 0x9f - "bboels", // 0xa0 - "bboelt", // 0xa1 - "bboelp", // 0xa2 - "bboelh", // 0xa3 - "bboem", // 0xa4 - "bboeb", // 0xa5 - "bboebs", // 0xa6 - "bboes", // 0xa7 - "bboess", // 0xa8 - "bboeng", // 0xa9 - "bboej", // 0xaa - "bboec", // 0xab - "bboek", // 0xac - "bboet", // 0xad - "bboep", // 0xae - "bboeh", // 0xaf - "bbyo", // 0xb0 - "bbyog", // 0xb1 - "bbyogg", // 0xb2 - "bbyogs", // 0xb3 - "bbyon", // 0xb4 - "bbyonj", // 0xb5 - "bbyonh", // 0xb6 - "bbyod", // 0xb7 - "bbyol", // 0xb8 - "bbyolg", // 0xb9 - "bbyolm", // 0xba - "bbyolb", // 0xbb - "bbyols", // 0xbc - "bbyolt", // 0xbd - "bbyolp", // 0xbe - "bbyolh", // 0xbf - "bbyom", // 0xc0 - "bbyob", // 0xc1 - "bbyobs", // 0xc2 - "bbyos", // 0xc3 - "bbyoss", // 0xc4 - "bbyong", // 0xc5 - "bbyoj", // 0xc6 - "bbyoc", // 0xc7 - "bbyok", // 0xc8 - "bbyot", // 0xc9 - "bbyop", // 0xca - "bbyoh", // 0xcb - "bbu", // 0xcc - "bbug", // 0xcd - "bbugg", // 0xce - "bbugs", // 0xcf - "bbun", // 0xd0 - "bbunj", // 0xd1 - "bbunh", // 0xd2 - "bbud", // 0xd3 - "bbul", // 0xd4 - "bbulg", // 0xd5 - "bbulm", // 0xd6 - "bbulb", // 0xd7 - "bbuls", // 0xd8 - "bbult", // 0xd9 - "bbulp", // 0xda - "bbulh", // 0xdb - "bbum", // 0xdc - "bbub", // 0xdd - "bbubs", // 0xde - "bbus", // 0xdf - "bbuss", // 0xe0 - "bbung", // 0xe1 - "bbuj", // 0xe2 - "bbuc", // 0xe3 - "bbuk", // 0xe4 - "bbut", // 0xe5 - "bbup", // 0xe6 - "bbuh", // 0xe7 - "bbweo", // 0xe8 - "bbweog", // 0xe9 - "bbweogg", // 0xea - "bbweogs", // 0xeb - "bbweon", // 0xec - "bbweonj", // 0xed - "bbweonh", // 0xee - "bbweod", // 0xef - "bbweol", // 0xf0 - "bbweolg", // 0xf1 - "bbweolm", // 0xf2 - "bbweolb", // 0xf3 - "bbweols", // 0xf4 - "bbweolt", // 0xf5 - "bbweolp", // 0xf6 - "bbweolh", // 0xf7 - "bbweom", // 0xf8 - "bbweob", // 0xf9 - "bbweobs", // 0xfa - "bbweos", // 0xfb - "bbweoss", // 0xfc - "bbweong", // 0xfd - "bbweoj", // 0xfe - "bbweoc", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0c0.go b/vendor/github.com/mozillazg/go-unidecode/table/x0c0.go deleted file mode 100644 index 9ce9675..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0c0.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0c0 = []string{ - "bbweok", // 0x00 - "bbweot", // 0x01 - "bbweop", // 0x02 - "bbweoh", // 0x03 - "bbwe", // 0x04 - "bbweg", // 0x05 - "bbwegg", // 0x06 - "bbwegs", // 0x07 - "bbwen", // 0x08 - "bbwenj", // 0x09 - "bbwenh", // 0x0a - "bbwed", // 0x0b - "bbwel", // 0x0c - "bbwelg", // 0x0d - "bbwelm", // 0x0e - "bbwelb", // 0x0f - "bbwels", // 0x10 - "bbwelt", // 0x11 - "bbwelp", // 0x12 - "bbwelh", // 0x13 - "bbwem", // 0x14 - "bbweb", // 0x15 - "bbwebs", // 0x16 - "bbwes", // 0x17 - "bbwess", // 0x18 - "bbweng", // 0x19 - "bbwej", // 0x1a - "bbwec", // 0x1b - "bbwek", // 0x1c - "bbwet", // 0x1d - "bbwep", // 0x1e - "bbweh", // 0x1f - "bbwi", // 0x20 - "bbwig", // 0x21 - "bbwigg", // 0x22 - "bbwigs", // 0x23 - "bbwin", // 0x24 - "bbwinj", // 0x25 - "bbwinh", // 0x26 - "bbwid", // 0x27 - "bbwil", // 0x28 - "bbwilg", // 0x29 - "bbwilm", // 0x2a - "bbwilb", // 0x2b - "bbwils", // 0x2c - "bbwilt", // 0x2d - "bbwilp", // 0x2e - "bbwilh", // 0x2f - "bbwim", // 0x30 - "bbwib", // 0x31 - "bbwibs", // 0x32 - "bbwis", // 0x33 - "bbwiss", // 0x34 - "bbwing", // 0x35 - "bbwij", // 0x36 - "bbwic", // 0x37 - "bbwik", // 0x38 - "bbwit", // 0x39 - "bbwip", // 0x3a - "bbwih", // 0x3b - "bbyu", // 0x3c - "bbyug", // 0x3d - "bbyugg", // 0x3e - "bbyugs", // 0x3f - "bbyun", // 0x40 - "bbyunj", // 0x41 - "bbyunh", // 0x42 - "bbyud", // 0x43 - "bbyul", // 0x44 - "bbyulg", // 0x45 - "bbyulm", // 0x46 - "bbyulb", // 0x47 - "bbyuls", // 0x48 - "bbyult", // 0x49 - "bbyulp", // 0x4a - "bbyulh", // 0x4b - "bbyum", // 0x4c - "bbyub", // 0x4d - "bbyubs", // 0x4e - "bbyus", // 0x4f - "bbyuss", // 0x50 - "bbyung", // 0x51 - "bbyuj", // 0x52 - "bbyuc", // 0x53 - "bbyuk", // 0x54 - "bbyut", // 0x55 - "bbyup", // 0x56 - "bbyuh", // 0x57 - "bbeu", // 0x58 - "bbeug", // 0x59 - "bbeugg", // 0x5a - "bbeugs", // 0x5b - "bbeun", // 0x5c - "bbeunj", // 0x5d - "bbeunh", // 0x5e - "bbeud", // 0x5f - "bbeul", // 0x60 - "bbeulg", // 0x61 - "bbeulm", // 0x62 - "bbeulb", // 0x63 - "bbeuls", // 0x64 - "bbeult", // 0x65 - "bbeulp", // 0x66 - "bbeulh", // 0x67 - "bbeum", // 0x68 - "bbeub", // 0x69 - "bbeubs", // 0x6a - "bbeus", // 0x6b - "bbeuss", // 0x6c - "bbeung", // 0x6d - "bbeuj", // 0x6e - "bbeuc", // 0x6f - "bbeuk", // 0x70 - "bbeut", // 0x71 - "bbeup", // 0x72 - "bbeuh", // 0x73 - "bbyi", // 0x74 - "bbyig", // 0x75 - "bbyigg", // 0x76 - "bbyigs", // 0x77 - "bbyin", // 0x78 - "bbyinj", // 0x79 - "bbyinh", // 0x7a - "bbyid", // 0x7b - "bbyil", // 0x7c - "bbyilg", // 0x7d - "bbyilm", // 0x7e - "bbyilb", // 0x7f - "bbyils", // 0x80 - "bbyilt", // 0x81 - "bbyilp", // 0x82 - "bbyilh", // 0x83 - "bbyim", // 0x84 - "bbyib", // 0x85 - "bbyibs", // 0x86 - "bbyis", // 0x87 - "bbyiss", // 0x88 - "bbying", // 0x89 - "bbyij", // 0x8a - "bbyic", // 0x8b - "bbyik", // 0x8c - "bbyit", // 0x8d - "bbyip", // 0x8e - "bbyih", // 0x8f - "bbi", // 0x90 - "bbig", // 0x91 - "bbigg", // 0x92 - "bbigs", // 0x93 - "bbin", // 0x94 - "bbinj", // 0x95 - "bbinh", // 0x96 - "bbid", // 0x97 - "bbil", // 0x98 - "bbilg", // 0x99 - "bbilm", // 0x9a - "bbilb", // 0x9b - "bbils", // 0x9c - "bbilt", // 0x9d - "bbilp", // 0x9e - "bbilh", // 0x9f - "bbim", // 0xa0 - "bbib", // 0xa1 - "bbibs", // 0xa2 - "bbis", // 0xa3 - "bbiss", // 0xa4 - "bbing", // 0xa5 - "bbij", // 0xa6 - "bbic", // 0xa7 - "bbik", // 0xa8 - "bbit", // 0xa9 - "bbip", // 0xaa - "bbih", // 0xab - "sa", // 0xac - "sag", // 0xad - "sagg", // 0xae - "sags", // 0xaf - "san", // 0xb0 - "sanj", // 0xb1 - "sanh", // 0xb2 - "sad", // 0xb3 - "sal", // 0xb4 - "salg", // 0xb5 - "salm", // 0xb6 - "salb", // 0xb7 - "sals", // 0xb8 - "salt", // 0xb9 - "salp", // 0xba - "salh", // 0xbb - "sam", // 0xbc - "sab", // 0xbd - "sabs", // 0xbe - "sas", // 0xbf - "sass", // 0xc0 - "sang", // 0xc1 - "saj", // 0xc2 - "sac", // 0xc3 - "sak", // 0xc4 - "sat", // 0xc5 - "sap", // 0xc6 - "sah", // 0xc7 - "sae", // 0xc8 - "saeg", // 0xc9 - "saegg", // 0xca - "saegs", // 0xcb - "saen", // 0xcc - "saenj", // 0xcd - "saenh", // 0xce - "saed", // 0xcf - "sael", // 0xd0 - "saelg", // 0xd1 - "saelm", // 0xd2 - "saelb", // 0xd3 - "saels", // 0xd4 - "saelt", // 0xd5 - "saelp", // 0xd6 - "saelh", // 0xd7 - "saem", // 0xd8 - "saeb", // 0xd9 - "saebs", // 0xda - "saes", // 0xdb - "saess", // 0xdc - "saeng", // 0xdd - "saej", // 0xde - "saec", // 0xdf - "saek", // 0xe0 - "saet", // 0xe1 - "saep", // 0xe2 - "saeh", // 0xe3 - "sya", // 0xe4 - "syag", // 0xe5 - "syagg", // 0xe6 - "syags", // 0xe7 - "syan", // 0xe8 - "syanj", // 0xe9 - "syanh", // 0xea - "syad", // 0xeb - "syal", // 0xec - "syalg", // 0xed - "syalm", // 0xee - "syalb", // 0xef - "syals", // 0xf0 - "syalt", // 0xf1 - "syalp", // 0xf2 - "syalh", // 0xf3 - "syam", // 0xf4 - "syab", // 0xf5 - "syabs", // 0xf6 - "syas", // 0xf7 - "syass", // 0xf8 - "syang", // 0xf9 - "syaj", // 0xfa - "syac", // 0xfb - "syak", // 0xfc - "syat", // 0xfd - "syap", // 0xfe - "syah", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0c1.go b/vendor/github.com/mozillazg/go-unidecode/table/x0c1.go deleted file mode 100644 index 225e264..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0c1.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0c1 = []string{ - "syae", // 0x00 - "syaeg", // 0x01 - "syaegg", // 0x02 - "syaegs", // 0x03 - "syaen", // 0x04 - "syaenj", // 0x05 - "syaenh", // 0x06 - "syaed", // 0x07 - "syael", // 0x08 - "syaelg", // 0x09 - "syaelm", // 0x0a - "syaelb", // 0x0b - "syaels", // 0x0c - "syaelt", // 0x0d - "syaelp", // 0x0e - "syaelh", // 0x0f - "syaem", // 0x10 - "syaeb", // 0x11 - "syaebs", // 0x12 - "syaes", // 0x13 - "syaess", // 0x14 - "syaeng", // 0x15 - "syaej", // 0x16 - "syaec", // 0x17 - "syaek", // 0x18 - "syaet", // 0x19 - "syaep", // 0x1a - "syaeh", // 0x1b - "seo", // 0x1c - "seog", // 0x1d - "seogg", // 0x1e - "seogs", // 0x1f - "seon", // 0x20 - "seonj", // 0x21 - "seonh", // 0x22 - "seod", // 0x23 - "seol", // 0x24 - "seolg", // 0x25 - "seolm", // 0x26 - "seolb", // 0x27 - "seols", // 0x28 - "seolt", // 0x29 - "seolp", // 0x2a - "seolh", // 0x2b - "seom", // 0x2c - "seob", // 0x2d - "seobs", // 0x2e - "seos", // 0x2f - "seoss", // 0x30 - "seong", // 0x31 - "seoj", // 0x32 - "seoc", // 0x33 - "seok", // 0x34 - "seot", // 0x35 - "seop", // 0x36 - "seoh", // 0x37 - "se", // 0x38 - "seg", // 0x39 - "segg", // 0x3a - "segs", // 0x3b - "sen", // 0x3c - "senj", // 0x3d - "senh", // 0x3e - "sed", // 0x3f - "sel", // 0x40 - "selg", // 0x41 - "selm", // 0x42 - "selb", // 0x43 - "sels", // 0x44 - "selt", // 0x45 - "selp", // 0x46 - "selh", // 0x47 - "sem", // 0x48 - "seb", // 0x49 - "sebs", // 0x4a - "ses", // 0x4b - "sess", // 0x4c - "seng", // 0x4d - "sej", // 0x4e - "sec", // 0x4f - "sek", // 0x50 - "set", // 0x51 - "sep", // 0x52 - "seh", // 0x53 - "syeo", // 0x54 - "syeog", // 0x55 - "syeogg", // 0x56 - "syeogs", // 0x57 - "syeon", // 0x58 - "syeonj", // 0x59 - "syeonh", // 0x5a - "syeod", // 0x5b - "syeol", // 0x5c - "syeolg", // 0x5d - "syeolm", // 0x5e - "syeolb", // 0x5f - "syeols", // 0x60 - "syeolt", // 0x61 - "syeolp", // 0x62 - "syeolh", // 0x63 - "syeom", // 0x64 - "syeob", // 0x65 - "syeobs", // 0x66 - "syeos", // 0x67 - "syeoss", // 0x68 - "syeong", // 0x69 - "syeoj", // 0x6a - "syeoc", // 0x6b - "syeok", // 0x6c - "syeot", // 0x6d - "syeop", // 0x6e - "syeoh", // 0x6f - "sye", // 0x70 - "syeg", // 0x71 - "syegg", // 0x72 - "syegs", // 0x73 - "syen", // 0x74 - "syenj", // 0x75 - "syenh", // 0x76 - "syed", // 0x77 - "syel", // 0x78 - "syelg", // 0x79 - "syelm", // 0x7a - "syelb", // 0x7b - "syels", // 0x7c - "syelt", // 0x7d - "syelp", // 0x7e - "syelh", // 0x7f - "syem", // 0x80 - "syeb", // 0x81 - "syebs", // 0x82 - "syes", // 0x83 - "syess", // 0x84 - "syeng", // 0x85 - "syej", // 0x86 - "syec", // 0x87 - "syek", // 0x88 - "syet", // 0x89 - "syep", // 0x8a - "syeh", // 0x8b - "so", // 0x8c - "sog", // 0x8d - "sogg", // 0x8e - "sogs", // 0x8f - "son", // 0x90 - "sonj", // 0x91 - "sonh", // 0x92 - "sod", // 0x93 - "sol", // 0x94 - "solg", // 0x95 - "solm", // 0x96 - "solb", // 0x97 - "sols", // 0x98 - "solt", // 0x99 - "solp", // 0x9a - "solh", // 0x9b - "som", // 0x9c - "sob", // 0x9d - "sobs", // 0x9e - "sos", // 0x9f - "soss", // 0xa0 - "song", // 0xa1 - "soj", // 0xa2 - "soc", // 0xa3 - "sok", // 0xa4 - "sot", // 0xa5 - "sop", // 0xa6 - "soh", // 0xa7 - "swa", // 0xa8 - "swag", // 0xa9 - "swagg", // 0xaa - "swags", // 0xab - "swan", // 0xac - "swanj", // 0xad - "swanh", // 0xae - "swad", // 0xaf - "swal", // 0xb0 - "swalg", // 0xb1 - "swalm", // 0xb2 - "swalb", // 0xb3 - "swals", // 0xb4 - "swalt", // 0xb5 - "swalp", // 0xb6 - "swalh", // 0xb7 - "swam", // 0xb8 - "swab", // 0xb9 - "swabs", // 0xba - "swas", // 0xbb - "swass", // 0xbc - "swang", // 0xbd - "swaj", // 0xbe - "swac", // 0xbf - "swak", // 0xc0 - "swat", // 0xc1 - "swap", // 0xc2 - "swah", // 0xc3 - "swae", // 0xc4 - "swaeg", // 0xc5 - "swaegg", // 0xc6 - "swaegs", // 0xc7 - "swaen", // 0xc8 - "swaenj", // 0xc9 - "swaenh", // 0xca - "swaed", // 0xcb - "swael", // 0xcc - "swaelg", // 0xcd - "swaelm", // 0xce - "swaelb", // 0xcf - "swaels", // 0xd0 - "swaelt", // 0xd1 - "swaelp", // 0xd2 - "swaelh", // 0xd3 - "swaem", // 0xd4 - "swaeb", // 0xd5 - "swaebs", // 0xd6 - "swaes", // 0xd7 - "swaess", // 0xd8 - "swaeng", // 0xd9 - "swaej", // 0xda - "swaec", // 0xdb - "swaek", // 0xdc - "swaet", // 0xdd - "swaep", // 0xde - "swaeh", // 0xdf - "soe", // 0xe0 - "soeg", // 0xe1 - "soegg", // 0xe2 - "soegs", // 0xe3 - "soen", // 0xe4 - "soenj", // 0xe5 - "soenh", // 0xe6 - "soed", // 0xe7 - "soel", // 0xe8 - "soelg", // 0xe9 - "soelm", // 0xea - "soelb", // 0xeb - "soels", // 0xec - "soelt", // 0xed - "soelp", // 0xee - "soelh", // 0xef - "soem", // 0xf0 - "soeb", // 0xf1 - "soebs", // 0xf2 - "soes", // 0xf3 - "soess", // 0xf4 - "soeng", // 0xf5 - "soej", // 0xf6 - "soec", // 0xf7 - "soek", // 0xf8 - "soet", // 0xf9 - "soep", // 0xfa - "soeh", // 0xfb - "syo", // 0xfc - "syog", // 0xfd - "syogg", // 0xfe - "syogs", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0c2.go b/vendor/github.com/mozillazg/go-unidecode/table/x0c2.go deleted file mode 100644 index 9457c8f..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0c2.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0c2 = []string{ - "syon", // 0x00 - "syonj", // 0x01 - "syonh", // 0x02 - "syod", // 0x03 - "syol", // 0x04 - "syolg", // 0x05 - "syolm", // 0x06 - "syolb", // 0x07 - "syols", // 0x08 - "syolt", // 0x09 - "syolp", // 0x0a - "syolh", // 0x0b - "syom", // 0x0c - "syob", // 0x0d - "syobs", // 0x0e - "syos", // 0x0f - "syoss", // 0x10 - "syong", // 0x11 - "syoj", // 0x12 - "syoc", // 0x13 - "syok", // 0x14 - "syot", // 0x15 - "syop", // 0x16 - "syoh", // 0x17 - "su", // 0x18 - "sug", // 0x19 - "sugg", // 0x1a - "sugs", // 0x1b - "sun", // 0x1c - "sunj", // 0x1d - "sunh", // 0x1e - "sud", // 0x1f - "sul", // 0x20 - "sulg", // 0x21 - "sulm", // 0x22 - "sulb", // 0x23 - "suls", // 0x24 - "sult", // 0x25 - "sulp", // 0x26 - "sulh", // 0x27 - "sum", // 0x28 - "sub", // 0x29 - "subs", // 0x2a - "sus", // 0x2b - "suss", // 0x2c - "sung", // 0x2d - "suj", // 0x2e - "suc", // 0x2f - "suk", // 0x30 - "sut", // 0x31 - "sup", // 0x32 - "suh", // 0x33 - "sweo", // 0x34 - "sweog", // 0x35 - "sweogg", // 0x36 - "sweogs", // 0x37 - "sweon", // 0x38 - "sweonj", // 0x39 - "sweonh", // 0x3a - "sweod", // 0x3b - "sweol", // 0x3c - "sweolg", // 0x3d - "sweolm", // 0x3e - "sweolb", // 0x3f - "sweols", // 0x40 - "sweolt", // 0x41 - "sweolp", // 0x42 - "sweolh", // 0x43 - "sweom", // 0x44 - "sweob", // 0x45 - "sweobs", // 0x46 - "sweos", // 0x47 - "sweoss", // 0x48 - "sweong", // 0x49 - "sweoj", // 0x4a - "sweoc", // 0x4b - "sweok", // 0x4c - "sweot", // 0x4d - "sweop", // 0x4e - "sweoh", // 0x4f - "swe", // 0x50 - "sweg", // 0x51 - "swegg", // 0x52 - "swegs", // 0x53 - "swen", // 0x54 - "swenj", // 0x55 - "swenh", // 0x56 - "swed", // 0x57 - "swel", // 0x58 - "swelg", // 0x59 - "swelm", // 0x5a - "swelb", // 0x5b - "swels", // 0x5c - "swelt", // 0x5d - "swelp", // 0x5e - "swelh", // 0x5f - "swem", // 0x60 - "sweb", // 0x61 - "swebs", // 0x62 - "swes", // 0x63 - "swess", // 0x64 - "sweng", // 0x65 - "swej", // 0x66 - "swec", // 0x67 - "swek", // 0x68 - "swet", // 0x69 - "swep", // 0x6a - "sweh", // 0x6b - "swi", // 0x6c - "swig", // 0x6d - "swigg", // 0x6e - "swigs", // 0x6f - "swin", // 0x70 - "swinj", // 0x71 - "swinh", // 0x72 - "swid", // 0x73 - "swil", // 0x74 - "swilg", // 0x75 - "swilm", // 0x76 - "swilb", // 0x77 - "swils", // 0x78 - "swilt", // 0x79 - "swilp", // 0x7a - "swilh", // 0x7b - "swim", // 0x7c - "swib", // 0x7d - "swibs", // 0x7e - "swis", // 0x7f - "swiss", // 0x80 - "swing", // 0x81 - "swij", // 0x82 - "swic", // 0x83 - "swik", // 0x84 - "swit", // 0x85 - "swip", // 0x86 - "swih", // 0x87 - "syu", // 0x88 - "syug", // 0x89 - "syugg", // 0x8a - "syugs", // 0x8b - "syun", // 0x8c - "syunj", // 0x8d - "syunh", // 0x8e - "syud", // 0x8f - "syul", // 0x90 - "syulg", // 0x91 - "syulm", // 0x92 - "syulb", // 0x93 - "syuls", // 0x94 - "syult", // 0x95 - "syulp", // 0x96 - "syulh", // 0x97 - "syum", // 0x98 - "syub", // 0x99 - "syubs", // 0x9a - "syus", // 0x9b - "syuss", // 0x9c - "syung", // 0x9d - "syuj", // 0x9e - "syuc", // 0x9f - "syuk", // 0xa0 - "syut", // 0xa1 - "syup", // 0xa2 - "syuh", // 0xa3 - "seu", // 0xa4 - "seug", // 0xa5 - "seugg", // 0xa6 - "seugs", // 0xa7 - "seun", // 0xa8 - "seunj", // 0xa9 - "seunh", // 0xaa - "seud", // 0xab - "seul", // 0xac - "seulg", // 0xad - "seulm", // 0xae - "seulb", // 0xaf - "seuls", // 0xb0 - "seult", // 0xb1 - "seulp", // 0xb2 - "seulh", // 0xb3 - "seum", // 0xb4 - "seub", // 0xb5 - "seubs", // 0xb6 - "seus", // 0xb7 - "seuss", // 0xb8 - "seung", // 0xb9 - "seuj", // 0xba - "seuc", // 0xbb - "seuk", // 0xbc - "seut", // 0xbd - "seup", // 0xbe - "seuh", // 0xbf - "syi", // 0xc0 - "syig", // 0xc1 - "syigg", // 0xc2 - "syigs", // 0xc3 - "syin", // 0xc4 - "syinj", // 0xc5 - "syinh", // 0xc6 - "syid", // 0xc7 - "syil", // 0xc8 - "syilg", // 0xc9 - "syilm", // 0xca - "syilb", // 0xcb - "syils", // 0xcc - "syilt", // 0xcd - "syilp", // 0xce - "syilh", // 0xcf - "syim", // 0xd0 - "syib", // 0xd1 - "syibs", // 0xd2 - "syis", // 0xd3 - "syiss", // 0xd4 - "sying", // 0xd5 - "syij", // 0xd6 - "syic", // 0xd7 - "syik", // 0xd8 - "syit", // 0xd9 - "syip", // 0xda - "syih", // 0xdb - "si", // 0xdc - "sig", // 0xdd - "sigg", // 0xde - "sigs", // 0xdf - "sin", // 0xe0 - "sinj", // 0xe1 - "sinh", // 0xe2 - "sid", // 0xe3 - "sil", // 0xe4 - "silg", // 0xe5 - "silm", // 0xe6 - "silb", // 0xe7 - "sils", // 0xe8 - "silt", // 0xe9 - "silp", // 0xea - "silh", // 0xeb - "sim", // 0xec - "sib", // 0xed - "sibs", // 0xee - "sis", // 0xef - "siss", // 0xf0 - "sing", // 0xf1 - "sij", // 0xf2 - "sic", // 0xf3 - "sik", // 0xf4 - "sit", // 0xf5 - "sip", // 0xf6 - "sih", // 0xf7 - "ssa", // 0xf8 - "ssag", // 0xf9 - "ssagg", // 0xfa - "ssags", // 0xfb - "ssan", // 0xfc - "ssanj", // 0xfd - "ssanh", // 0xfe - "ssad", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0c3.go b/vendor/github.com/mozillazg/go-unidecode/table/x0c3.go deleted file mode 100644 index d7c378d..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0c3.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0c3 = []string{ - "ssal", // 0x00 - "ssalg", // 0x01 - "ssalm", // 0x02 - "ssalb", // 0x03 - "ssals", // 0x04 - "ssalt", // 0x05 - "ssalp", // 0x06 - "ssalh", // 0x07 - "ssam", // 0x08 - "ssab", // 0x09 - "ssabs", // 0x0a - "ssas", // 0x0b - "ssass", // 0x0c - "ssang", // 0x0d - "ssaj", // 0x0e - "ssac", // 0x0f - "ssak", // 0x10 - "ssat", // 0x11 - "ssap", // 0x12 - "ssah", // 0x13 - "ssae", // 0x14 - "ssaeg", // 0x15 - "ssaegg", // 0x16 - "ssaegs", // 0x17 - "ssaen", // 0x18 - "ssaenj", // 0x19 - "ssaenh", // 0x1a - "ssaed", // 0x1b - "ssael", // 0x1c - "ssaelg", // 0x1d - "ssaelm", // 0x1e - "ssaelb", // 0x1f - "ssaels", // 0x20 - "ssaelt", // 0x21 - "ssaelp", // 0x22 - "ssaelh", // 0x23 - "ssaem", // 0x24 - "ssaeb", // 0x25 - "ssaebs", // 0x26 - "ssaes", // 0x27 - "ssaess", // 0x28 - "ssaeng", // 0x29 - "ssaej", // 0x2a - "ssaec", // 0x2b - "ssaek", // 0x2c - "ssaet", // 0x2d - "ssaep", // 0x2e - "ssaeh", // 0x2f - "ssya", // 0x30 - "ssyag", // 0x31 - "ssyagg", // 0x32 - "ssyags", // 0x33 - "ssyan", // 0x34 - "ssyanj", // 0x35 - "ssyanh", // 0x36 - "ssyad", // 0x37 - "ssyal", // 0x38 - "ssyalg", // 0x39 - "ssyalm", // 0x3a - "ssyalb", // 0x3b - "ssyals", // 0x3c - "ssyalt", // 0x3d - "ssyalp", // 0x3e - "ssyalh", // 0x3f - "ssyam", // 0x40 - "ssyab", // 0x41 - "ssyabs", // 0x42 - "ssyas", // 0x43 - "ssyass", // 0x44 - "ssyang", // 0x45 - "ssyaj", // 0x46 - "ssyac", // 0x47 - "ssyak", // 0x48 - "ssyat", // 0x49 - "ssyap", // 0x4a - "ssyah", // 0x4b - "ssyae", // 0x4c - "ssyaeg", // 0x4d - "ssyaegg", // 0x4e - "ssyaegs", // 0x4f - "ssyaen", // 0x50 - "ssyaenj", // 0x51 - "ssyaenh", // 0x52 - "ssyaed", // 0x53 - "ssyael", // 0x54 - "ssyaelg", // 0x55 - "ssyaelm", // 0x56 - "ssyaelb", // 0x57 - "ssyaels", // 0x58 - "ssyaelt", // 0x59 - "ssyaelp", // 0x5a - "ssyaelh", // 0x5b - "ssyaem", // 0x5c - "ssyaeb", // 0x5d - "ssyaebs", // 0x5e - "ssyaes", // 0x5f - "ssyaess", // 0x60 - "ssyaeng", // 0x61 - "ssyaej", // 0x62 - "ssyaec", // 0x63 - "ssyaek", // 0x64 - "ssyaet", // 0x65 - "ssyaep", // 0x66 - "ssyaeh", // 0x67 - "sseo", // 0x68 - "sseog", // 0x69 - "sseogg", // 0x6a - "sseogs", // 0x6b - "sseon", // 0x6c - "sseonj", // 0x6d - "sseonh", // 0x6e - "sseod", // 0x6f - "sseol", // 0x70 - "sseolg", // 0x71 - "sseolm", // 0x72 - "sseolb", // 0x73 - "sseols", // 0x74 - "sseolt", // 0x75 - "sseolp", // 0x76 - "sseolh", // 0x77 - "sseom", // 0x78 - "sseob", // 0x79 - "sseobs", // 0x7a - "sseos", // 0x7b - "sseoss", // 0x7c - "sseong", // 0x7d - "sseoj", // 0x7e - "sseoc", // 0x7f - "sseok", // 0x80 - "sseot", // 0x81 - "sseop", // 0x82 - "sseoh", // 0x83 - "sse", // 0x84 - "sseg", // 0x85 - "ssegg", // 0x86 - "ssegs", // 0x87 - "ssen", // 0x88 - "ssenj", // 0x89 - "ssenh", // 0x8a - "ssed", // 0x8b - "ssel", // 0x8c - "sselg", // 0x8d - "sselm", // 0x8e - "sselb", // 0x8f - "ssels", // 0x90 - "sselt", // 0x91 - "sselp", // 0x92 - "sselh", // 0x93 - "ssem", // 0x94 - "sseb", // 0x95 - "ssebs", // 0x96 - "sses", // 0x97 - "ssess", // 0x98 - "sseng", // 0x99 - "ssej", // 0x9a - "ssec", // 0x9b - "ssek", // 0x9c - "sset", // 0x9d - "ssep", // 0x9e - "sseh", // 0x9f - "ssyeo", // 0xa0 - "ssyeog", // 0xa1 - "ssyeogg", // 0xa2 - "ssyeogs", // 0xa3 - "ssyeon", // 0xa4 - "ssyeonj", // 0xa5 - "ssyeonh", // 0xa6 - "ssyeod", // 0xa7 - "ssyeol", // 0xa8 - "ssyeolg", // 0xa9 - "ssyeolm", // 0xaa - "ssyeolb", // 0xab - "ssyeols", // 0xac - "ssyeolt", // 0xad - "ssyeolp", // 0xae - "ssyeolh", // 0xaf - "ssyeom", // 0xb0 - "ssyeob", // 0xb1 - "ssyeobs", // 0xb2 - "ssyeos", // 0xb3 - "ssyeoss", // 0xb4 - "ssyeong", // 0xb5 - "ssyeoj", // 0xb6 - "ssyeoc", // 0xb7 - "ssyeok", // 0xb8 - "ssyeot", // 0xb9 - "ssyeop", // 0xba - "ssyeoh", // 0xbb - "ssye", // 0xbc - "ssyeg", // 0xbd - "ssyegg", // 0xbe - "ssyegs", // 0xbf - "ssyen", // 0xc0 - "ssyenj", // 0xc1 - "ssyenh", // 0xc2 - "ssyed", // 0xc3 - "ssyel", // 0xc4 - "ssyelg", // 0xc5 - "ssyelm", // 0xc6 - "ssyelb", // 0xc7 - "ssyels", // 0xc8 - "ssyelt", // 0xc9 - "ssyelp", // 0xca - "ssyelh", // 0xcb - "ssyem", // 0xcc - "ssyeb", // 0xcd - "ssyebs", // 0xce - "ssyes", // 0xcf - "ssyess", // 0xd0 - "ssyeng", // 0xd1 - "ssyej", // 0xd2 - "ssyec", // 0xd3 - "ssyek", // 0xd4 - "ssyet", // 0xd5 - "ssyep", // 0xd6 - "ssyeh", // 0xd7 - "sso", // 0xd8 - "ssog", // 0xd9 - "ssogg", // 0xda - "ssogs", // 0xdb - "sson", // 0xdc - "ssonj", // 0xdd - "ssonh", // 0xde - "ssod", // 0xdf - "ssol", // 0xe0 - "ssolg", // 0xe1 - "ssolm", // 0xe2 - "ssolb", // 0xe3 - "ssols", // 0xe4 - "ssolt", // 0xe5 - "ssolp", // 0xe6 - "ssolh", // 0xe7 - "ssom", // 0xe8 - "ssob", // 0xe9 - "ssobs", // 0xea - "ssos", // 0xeb - "ssoss", // 0xec - "ssong", // 0xed - "ssoj", // 0xee - "ssoc", // 0xef - "ssok", // 0xf0 - "ssot", // 0xf1 - "ssop", // 0xf2 - "ssoh", // 0xf3 - "sswa", // 0xf4 - "sswag", // 0xf5 - "sswagg", // 0xf6 - "sswags", // 0xf7 - "sswan", // 0xf8 - "sswanj", // 0xf9 - "sswanh", // 0xfa - "sswad", // 0xfb - "sswal", // 0xfc - "sswalg", // 0xfd - "sswalm", // 0xfe - "sswalb", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0c4.go b/vendor/github.com/mozillazg/go-unidecode/table/x0c4.go deleted file mode 100644 index 4498bb1..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0c4.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0c4 = []string{ - "sswals", // 0x00 - "sswalt", // 0x01 - "sswalp", // 0x02 - "sswalh", // 0x03 - "sswam", // 0x04 - "sswab", // 0x05 - "sswabs", // 0x06 - "sswas", // 0x07 - "sswass", // 0x08 - "sswang", // 0x09 - "sswaj", // 0x0a - "sswac", // 0x0b - "sswak", // 0x0c - "sswat", // 0x0d - "sswap", // 0x0e - "sswah", // 0x0f - "sswae", // 0x10 - "sswaeg", // 0x11 - "sswaegg", // 0x12 - "sswaegs", // 0x13 - "sswaen", // 0x14 - "sswaenj", // 0x15 - "sswaenh", // 0x16 - "sswaed", // 0x17 - "sswael", // 0x18 - "sswaelg", // 0x19 - "sswaelm", // 0x1a - "sswaelb", // 0x1b - "sswaels", // 0x1c - "sswaelt", // 0x1d - "sswaelp", // 0x1e - "sswaelh", // 0x1f - "sswaem", // 0x20 - "sswaeb", // 0x21 - "sswaebs", // 0x22 - "sswaes", // 0x23 - "sswaess", // 0x24 - "sswaeng", // 0x25 - "sswaej", // 0x26 - "sswaec", // 0x27 - "sswaek", // 0x28 - "sswaet", // 0x29 - "sswaep", // 0x2a - "sswaeh", // 0x2b - "ssoe", // 0x2c - "ssoeg", // 0x2d - "ssoegg", // 0x2e - "ssoegs", // 0x2f - "ssoen", // 0x30 - "ssoenj", // 0x31 - "ssoenh", // 0x32 - "ssoed", // 0x33 - "ssoel", // 0x34 - "ssoelg", // 0x35 - "ssoelm", // 0x36 - "ssoelb", // 0x37 - "ssoels", // 0x38 - "ssoelt", // 0x39 - "ssoelp", // 0x3a - "ssoelh", // 0x3b - "ssoem", // 0x3c - "ssoeb", // 0x3d - "ssoebs", // 0x3e - "ssoes", // 0x3f - "ssoess", // 0x40 - "ssoeng", // 0x41 - "ssoej", // 0x42 - "ssoec", // 0x43 - "ssoek", // 0x44 - "ssoet", // 0x45 - "ssoep", // 0x46 - "ssoeh", // 0x47 - "ssyo", // 0x48 - "ssyog", // 0x49 - "ssyogg", // 0x4a - "ssyogs", // 0x4b - "ssyon", // 0x4c - "ssyonj", // 0x4d - "ssyonh", // 0x4e - "ssyod", // 0x4f - "ssyol", // 0x50 - "ssyolg", // 0x51 - "ssyolm", // 0x52 - "ssyolb", // 0x53 - "ssyols", // 0x54 - "ssyolt", // 0x55 - "ssyolp", // 0x56 - "ssyolh", // 0x57 - "ssyom", // 0x58 - "ssyob", // 0x59 - "ssyobs", // 0x5a - "ssyos", // 0x5b - "ssyoss", // 0x5c - "ssyong", // 0x5d - "ssyoj", // 0x5e - "ssyoc", // 0x5f - "ssyok", // 0x60 - "ssyot", // 0x61 - "ssyop", // 0x62 - "ssyoh", // 0x63 - "ssu", // 0x64 - "ssug", // 0x65 - "ssugg", // 0x66 - "ssugs", // 0x67 - "ssun", // 0x68 - "ssunj", // 0x69 - "ssunh", // 0x6a - "ssud", // 0x6b - "ssul", // 0x6c - "ssulg", // 0x6d - "ssulm", // 0x6e - "ssulb", // 0x6f - "ssuls", // 0x70 - "ssult", // 0x71 - "ssulp", // 0x72 - "ssulh", // 0x73 - "ssum", // 0x74 - "ssub", // 0x75 - "ssubs", // 0x76 - "ssus", // 0x77 - "ssuss", // 0x78 - "ssung", // 0x79 - "ssuj", // 0x7a - "ssuc", // 0x7b - "ssuk", // 0x7c - "ssut", // 0x7d - "ssup", // 0x7e - "ssuh", // 0x7f - "ssweo", // 0x80 - "ssweog", // 0x81 - "ssweogg", // 0x82 - "ssweogs", // 0x83 - "ssweon", // 0x84 - "ssweonj", // 0x85 - "ssweonh", // 0x86 - "ssweod", // 0x87 - "ssweol", // 0x88 - "ssweolg", // 0x89 - "ssweolm", // 0x8a - "ssweolb", // 0x8b - "ssweols", // 0x8c - "ssweolt", // 0x8d - "ssweolp", // 0x8e - "ssweolh", // 0x8f - "ssweom", // 0x90 - "ssweob", // 0x91 - "ssweobs", // 0x92 - "ssweos", // 0x93 - "ssweoss", // 0x94 - "ssweong", // 0x95 - "ssweoj", // 0x96 - "ssweoc", // 0x97 - "ssweok", // 0x98 - "ssweot", // 0x99 - "ssweop", // 0x9a - "ssweoh", // 0x9b - "sswe", // 0x9c - "ssweg", // 0x9d - "sswegg", // 0x9e - "sswegs", // 0x9f - "sswen", // 0xa0 - "sswenj", // 0xa1 - "sswenh", // 0xa2 - "sswed", // 0xa3 - "sswel", // 0xa4 - "sswelg", // 0xa5 - "sswelm", // 0xa6 - "sswelb", // 0xa7 - "sswels", // 0xa8 - "sswelt", // 0xa9 - "sswelp", // 0xaa - "sswelh", // 0xab - "sswem", // 0xac - "ssweb", // 0xad - "sswebs", // 0xae - "sswes", // 0xaf - "sswess", // 0xb0 - "ssweng", // 0xb1 - "sswej", // 0xb2 - "sswec", // 0xb3 - "sswek", // 0xb4 - "sswet", // 0xb5 - "sswep", // 0xb6 - "ssweh", // 0xb7 - "sswi", // 0xb8 - "sswig", // 0xb9 - "sswigg", // 0xba - "sswigs", // 0xbb - "sswin", // 0xbc - "sswinj", // 0xbd - "sswinh", // 0xbe - "sswid", // 0xbf - "sswil", // 0xc0 - "sswilg", // 0xc1 - "sswilm", // 0xc2 - "sswilb", // 0xc3 - "sswils", // 0xc4 - "sswilt", // 0xc5 - "sswilp", // 0xc6 - "sswilh", // 0xc7 - "sswim", // 0xc8 - "sswib", // 0xc9 - "sswibs", // 0xca - "sswis", // 0xcb - "sswiss", // 0xcc - "sswing", // 0xcd - "sswij", // 0xce - "sswic", // 0xcf - "sswik", // 0xd0 - "sswit", // 0xd1 - "sswip", // 0xd2 - "sswih", // 0xd3 - "ssyu", // 0xd4 - "ssyug", // 0xd5 - "ssyugg", // 0xd6 - "ssyugs", // 0xd7 - "ssyun", // 0xd8 - "ssyunj", // 0xd9 - "ssyunh", // 0xda - "ssyud", // 0xdb - "ssyul", // 0xdc - "ssyulg", // 0xdd - "ssyulm", // 0xde - "ssyulb", // 0xdf - "ssyuls", // 0xe0 - "ssyult", // 0xe1 - "ssyulp", // 0xe2 - "ssyulh", // 0xe3 - "ssyum", // 0xe4 - "ssyub", // 0xe5 - "ssyubs", // 0xe6 - "ssyus", // 0xe7 - "ssyuss", // 0xe8 - "ssyung", // 0xe9 - "ssyuj", // 0xea - "ssyuc", // 0xeb - "ssyuk", // 0xec - "ssyut", // 0xed - "ssyup", // 0xee - "ssyuh", // 0xef - "sseu", // 0xf0 - "sseug", // 0xf1 - "sseugg", // 0xf2 - "sseugs", // 0xf3 - "sseun", // 0xf4 - "sseunj", // 0xf5 - "sseunh", // 0xf6 - "sseud", // 0xf7 - "sseul", // 0xf8 - "sseulg", // 0xf9 - "sseulm", // 0xfa - "sseulb", // 0xfb - "sseuls", // 0xfc - "sseult", // 0xfd - "sseulp", // 0xfe - "sseulh", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0c5.go b/vendor/github.com/mozillazg/go-unidecode/table/x0c5.go deleted file mode 100644 index a6b556e..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0c5.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0c5 = []string{ - "sseum", // 0x00 - "sseub", // 0x01 - "sseubs", // 0x02 - "sseus", // 0x03 - "sseuss", // 0x04 - "sseung", // 0x05 - "sseuj", // 0x06 - "sseuc", // 0x07 - "sseuk", // 0x08 - "sseut", // 0x09 - "sseup", // 0x0a - "sseuh", // 0x0b - "ssyi", // 0x0c - "ssyig", // 0x0d - "ssyigg", // 0x0e - "ssyigs", // 0x0f - "ssyin", // 0x10 - "ssyinj", // 0x11 - "ssyinh", // 0x12 - "ssyid", // 0x13 - "ssyil", // 0x14 - "ssyilg", // 0x15 - "ssyilm", // 0x16 - "ssyilb", // 0x17 - "ssyils", // 0x18 - "ssyilt", // 0x19 - "ssyilp", // 0x1a - "ssyilh", // 0x1b - "ssyim", // 0x1c - "ssyib", // 0x1d - "ssyibs", // 0x1e - "ssyis", // 0x1f - "ssyiss", // 0x20 - "ssying", // 0x21 - "ssyij", // 0x22 - "ssyic", // 0x23 - "ssyik", // 0x24 - "ssyit", // 0x25 - "ssyip", // 0x26 - "ssyih", // 0x27 - "ssi", // 0x28 - "ssig", // 0x29 - "ssigg", // 0x2a - "ssigs", // 0x2b - "ssin", // 0x2c - "ssinj", // 0x2d - "ssinh", // 0x2e - "ssid", // 0x2f - "ssil", // 0x30 - "ssilg", // 0x31 - "ssilm", // 0x32 - "ssilb", // 0x33 - "ssils", // 0x34 - "ssilt", // 0x35 - "ssilp", // 0x36 - "ssilh", // 0x37 - "ssim", // 0x38 - "ssib", // 0x39 - "ssibs", // 0x3a - "ssis", // 0x3b - "ssiss", // 0x3c - "ssing", // 0x3d - "ssij", // 0x3e - "ssic", // 0x3f - "ssik", // 0x40 - "ssit", // 0x41 - "ssip", // 0x42 - "ssih", // 0x43 - "a", // 0x44 - "ag", // 0x45 - "agg", // 0x46 - "ags", // 0x47 - "an", // 0x48 - "anj", // 0x49 - "anh", // 0x4a - "ad", // 0x4b - "al", // 0x4c - "alg", // 0x4d - "alm", // 0x4e - "alb", // 0x4f - "als", // 0x50 - "alt", // 0x51 - "alp", // 0x52 - "alh", // 0x53 - "am", // 0x54 - "ab", // 0x55 - "abs", // 0x56 - "as", // 0x57 - "ass", // 0x58 - "ang", // 0x59 - "aj", // 0x5a - "ac", // 0x5b - "ak", // 0x5c - "at", // 0x5d - "ap", // 0x5e - "ah", // 0x5f - "ae", // 0x60 - "aeg", // 0x61 - "aegg", // 0x62 - "aegs", // 0x63 - "aen", // 0x64 - "aenj", // 0x65 - "aenh", // 0x66 - "aed", // 0x67 - "ael", // 0x68 - "aelg", // 0x69 - "aelm", // 0x6a - "aelb", // 0x6b - "aels", // 0x6c - "aelt", // 0x6d - "aelp", // 0x6e - "aelh", // 0x6f - "aem", // 0x70 - "aeb", // 0x71 - "aebs", // 0x72 - "aes", // 0x73 - "aess", // 0x74 - "aeng", // 0x75 - "aej", // 0x76 - "aec", // 0x77 - "aek", // 0x78 - "aet", // 0x79 - "aep", // 0x7a - "aeh", // 0x7b - "ya", // 0x7c - "yag", // 0x7d - "yagg", // 0x7e - "yags", // 0x7f - "yan", // 0x80 - "yanj", // 0x81 - "yanh", // 0x82 - "yad", // 0x83 - "yal", // 0x84 - "yalg", // 0x85 - "yalm", // 0x86 - "yalb", // 0x87 - "yals", // 0x88 - "yalt", // 0x89 - "yalp", // 0x8a - "yalh", // 0x8b - "yam", // 0x8c - "yab", // 0x8d - "yabs", // 0x8e - "yas", // 0x8f - "yass", // 0x90 - "yang", // 0x91 - "yaj", // 0x92 - "yac", // 0x93 - "yak", // 0x94 - "yat", // 0x95 - "yap", // 0x96 - "yah", // 0x97 - "yae", // 0x98 - "yaeg", // 0x99 - "yaegg", // 0x9a - "yaegs", // 0x9b - "yaen", // 0x9c - "yaenj", // 0x9d - "yaenh", // 0x9e - "yaed", // 0x9f - "yael", // 0xa0 - "yaelg", // 0xa1 - "yaelm", // 0xa2 - "yaelb", // 0xa3 - "yaels", // 0xa4 - "yaelt", // 0xa5 - "yaelp", // 0xa6 - "yaelh", // 0xa7 - "yaem", // 0xa8 - "yaeb", // 0xa9 - "yaebs", // 0xaa - "yaes", // 0xab - "yaess", // 0xac - "yaeng", // 0xad - "yaej", // 0xae - "yaec", // 0xaf - "yaek", // 0xb0 - "yaet", // 0xb1 - "yaep", // 0xb2 - "yaeh", // 0xb3 - "eo", // 0xb4 - "eog", // 0xb5 - "eogg", // 0xb6 - "eogs", // 0xb7 - "eon", // 0xb8 - "eonj", // 0xb9 - "eonh", // 0xba - "eod", // 0xbb - "eol", // 0xbc - "eolg", // 0xbd - "eolm", // 0xbe - "eolb", // 0xbf - "eols", // 0xc0 - "eolt", // 0xc1 - "eolp", // 0xc2 - "eolh", // 0xc3 - "eom", // 0xc4 - "eob", // 0xc5 - "eobs", // 0xc6 - "eos", // 0xc7 - "eoss", // 0xc8 - "eong", // 0xc9 - "eoj", // 0xca - "eoc", // 0xcb - "eok", // 0xcc - "eot", // 0xcd - "eop", // 0xce - "eoh", // 0xcf - "e", // 0xd0 - "eg", // 0xd1 - "egg", // 0xd2 - "egs", // 0xd3 - "en", // 0xd4 - "enj", // 0xd5 - "enh", // 0xd6 - "ed", // 0xd7 - "el", // 0xd8 - "elg", // 0xd9 - "elm", // 0xda - "elb", // 0xdb - "els", // 0xdc - "elt", // 0xdd - "elp", // 0xde - "elh", // 0xdf - "em", // 0xe0 - "eb", // 0xe1 - "ebs", // 0xe2 - "es", // 0xe3 - "ess", // 0xe4 - "eng", // 0xe5 - "ej", // 0xe6 - "ec", // 0xe7 - "ek", // 0xe8 - "et", // 0xe9 - "ep", // 0xea - "eh", // 0xeb - "yeo", // 0xec - "yeog", // 0xed - "yeogg", // 0xee - "yeogs", // 0xef - "yeon", // 0xf0 - "yeonj", // 0xf1 - "yeonh", // 0xf2 - "yeod", // 0xf3 - "yeol", // 0xf4 - "yeolg", // 0xf5 - "yeolm", // 0xf6 - "yeolb", // 0xf7 - "yeols", // 0xf8 - "yeolt", // 0xf9 - "yeolp", // 0xfa - "yeolh", // 0xfb - "yeom", // 0xfc - "yeob", // 0xfd - "yeobs", // 0xfe - "yeos", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0c6.go b/vendor/github.com/mozillazg/go-unidecode/table/x0c6.go deleted file mode 100644 index a3103c3..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0c6.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0c6 = []string{ - "yeoss", // 0x00 - "yeong", // 0x01 - "yeoj", // 0x02 - "yeoc", // 0x03 - "yeok", // 0x04 - "yeot", // 0x05 - "yeop", // 0x06 - "yeoh", // 0x07 - "ye", // 0x08 - "yeg", // 0x09 - "yegg", // 0x0a - "yegs", // 0x0b - "yen", // 0x0c - "yenj", // 0x0d - "yenh", // 0x0e - "yed", // 0x0f - "yel", // 0x10 - "yelg", // 0x11 - "yelm", // 0x12 - "yelb", // 0x13 - "yels", // 0x14 - "yelt", // 0x15 - "yelp", // 0x16 - "yelh", // 0x17 - "yem", // 0x18 - "yeb", // 0x19 - "yebs", // 0x1a - "yes", // 0x1b - "yess", // 0x1c - "yeng", // 0x1d - "yej", // 0x1e - "yec", // 0x1f - "yek", // 0x20 - "yet", // 0x21 - "yep", // 0x22 - "yeh", // 0x23 - "o", // 0x24 - "og", // 0x25 - "ogg", // 0x26 - "ogs", // 0x27 - "on", // 0x28 - "onj", // 0x29 - "onh", // 0x2a - "od", // 0x2b - "ol", // 0x2c - "olg", // 0x2d - "olm", // 0x2e - "olb", // 0x2f - "ols", // 0x30 - "olt", // 0x31 - "olp", // 0x32 - "olh", // 0x33 - "om", // 0x34 - "ob", // 0x35 - "obs", // 0x36 - "os", // 0x37 - "oss", // 0x38 - "ong", // 0x39 - "oj", // 0x3a - "oc", // 0x3b - "ok", // 0x3c - "ot", // 0x3d - "op", // 0x3e - "oh", // 0x3f - "wa", // 0x40 - "wag", // 0x41 - "wagg", // 0x42 - "wags", // 0x43 - "wan", // 0x44 - "wanj", // 0x45 - "wanh", // 0x46 - "wad", // 0x47 - "wal", // 0x48 - "walg", // 0x49 - "walm", // 0x4a - "walb", // 0x4b - "wals", // 0x4c - "walt", // 0x4d - "walp", // 0x4e - "walh", // 0x4f - "wam", // 0x50 - "wab", // 0x51 - "wabs", // 0x52 - "was", // 0x53 - "wass", // 0x54 - "wang", // 0x55 - "waj", // 0x56 - "wac", // 0x57 - "wak", // 0x58 - "wat", // 0x59 - "wap", // 0x5a - "wah", // 0x5b - "wae", // 0x5c - "waeg", // 0x5d - "waegg", // 0x5e - "waegs", // 0x5f - "waen", // 0x60 - "waenj", // 0x61 - "waenh", // 0x62 - "waed", // 0x63 - "wael", // 0x64 - "waelg", // 0x65 - "waelm", // 0x66 - "waelb", // 0x67 - "waels", // 0x68 - "waelt", // 0x69 - "waelp", // 0x6a - "waelh", // 0x6b - "waem", // 0x6c - "waeb", // 0x6d - "waebs", // 0x6e - "waes", // 0x6f - "waess", // 0x70 - "waeng", // 0x71 - "waej", // 0x72 - "waec", // 0x73 - "waek", // 0x74 - "waet", // 0x75 - "waep", // 0x76 - "waeh", // 0x77 - "oe", // 0x78 - "oeg", // 0x79 - "oegg", // 0x7a - "oegs", // 0x7b - "oen", // 0x7c - "oenj", // 0x7d - "oenh", // 0x7e - "oed", // 0x7f - "oel", // 0x80 - "oelg", // 0x81 - "oelm", // 0x82 - "oelb", // 0x83 - "oels", // 0x84 - "oelt", // 0x85 - "oelp", // 0x86 - "oelh", // 0x87 - "oem", // 0x88 - "oeb", // 0x89 - "oebs", // 0x8a - "oes", // 0x8b - "oess", // 0x8c - "oeng", // 0x8d - "oej", // 0x8e - "oec", // 0x8f - "oek", // 0x90 - "oet", // 0x91 - "oep", // 0x92 - "oeh", // 0x93 - "yo", // 0x94 - "yog", // 0x95 - "yogg", // 0x96 - "yogs", // 0x97 - "yon", // 0x98 - "yonj", // 0x99 - "yonh", // 0x9a - "yod", // 0x9b - "yol", // 0x9c - "yolg", // 0x9d - "yolm", // 0x9e - "yolb", // 0x9f - "yols", // 0xa0 - "yolt", // 0xa1 - "yolp", // 0xa2 - "yolh", // 0xa3 - "yom", // 0xa4 - "yob", // 0xa5 - "yobs", // 0xa6 - "yos", // 0xa7 - "yoss", // 0xa8 - "yong", // 0xa9 - "yoj", // 0xaa - "yoc", // 0xab - "yok", // 0xac - "yot", // 0xad - "yop", // 0xae - "yoh", // 0xaf - "u", // 0xb0 - "ug", // 0xb1 - "ugg", // 0xb2 - "ugs", // 0xb3 - "un", // 0xb4 - "unj", // 0xb5 - "unh", // 0xb6 - "ud", // 0xb7 - "ul", // 0xb8 - "ulg", // 0xb9 - "ulm", // 0xba - "ulb", // 0xbb - "uls", // 0xbc - "ult", // 0xbd - "ulp", // 0xbe - "ulh", // 0xbf - "um", // 0xc0 - "ub", // 0xc1 - "ubs", // 0xc2 - "us", // 0xc3 - "uss", // 0xc4 - "ung", // 0xc5 - "uj", // 0xc6 - "uc", // 0xc7 - "uk", // 0xc8 - "ut", // 0xc9 - "up", // 0xca - "uh", // 0xcb - "weo", // 0xcc - "weog", // 0xcd - "weogg", // 0xce - "weogs", // 0xcf - "weon", // 0xd0 - "weonj", // 0xd1 - "weonh", // 0xd2 - "weod", // 0xd3 - "weol", // 0xd4 - "weolg", // 0xd5 - "weolm", // 0xd6 - "weolb", // 0xd7 - "weols", // 0xd8 - "weolt", // 0xd9 - "weolp", // 0xda - "weolh", // 0xdb - "weom", // 0xdc - "weob", // 0xdd - "weobs", // 0xde - "weos", // 0xdf - "weoss", // 0xe0 - "weong", // 0xe1 - "weoj", // 0xe2 - "weoc", // 0xe3 - "weok", // 0xe4 - "weot", // 0xe5 - "weop", // 0xe6 - "weoh", // 0xe7 - "we", // 0xe8 - "weg", // 0xe9 - "wegg", // 0xea - "wegs", // 0xeb - "wen", // 0xec - "wenj", // 0xed - "wenh", // 0xee - "wed", // 0xef - "wel", // 0xf0 - "welg", // 0xf1 - "welm", // 0xf2 - "welb", // 0xf3 - "wels", // 0xf4 - "welt", // 0xf5 - "welp", // 0xf6 - "welh", // 0xf7 - "wem", // 0xf8 - "web", // 0xf9 - "webs", // 0xfa - "wes", // 0xfb - "wess", // 0xfc - "weng", // 0xfd - "wej", // 0xfe - "wec", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0c7.go b/vendor/github.com/mozillazg/go-unidecode/table/x0c7.go deleted file mode 100644 index 0781590..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0c7.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0c7 = []string{ - "wek", // 0x00 - "wet", // 0x01 - "wep", // 0x02 - "weh", // 0x03 - "wi", // 0x04 - "wig", // 0x05 - "wigg", // 0x06 - "wigs", // 0x07 - "win", // 0x08 - "winj", // 0x09 - "winh", // 0x0a - "wid", // 0x0b - "wil", // 0x0c - "wilg", // 0x0d - "wilm", // 0x0e - "wilb", // 0x0f - "wils", // 0x10 - "wilt", // 0x11 - "wilp", // 0x12 - "wilh", // 0x13 - "wim", // 0x14 - "wib", // 0x15 - "wibs", // 0x16 - "wis", // 0x17 - "wiss", // 0x18 - "wing", // 0x19 - "wij", // 0x1a - "wic", // 0x1b - "wik", // 0x1c - "wit", // 0x1d - "wip", // 0x1e - "wih", // 0x1f - "yu", // 0x20 - "yug", // 0x21 - "yugg", // 0x22 - "yugs", // 0x23 - "yun", // 0x24 - "yunj", // 0x25 - "yunh", // 0x26 - "yud", // 0x27 - "yul", // 0x28 - "yulg", // 0x29 - "yulm", // 0x2a - "yulb", // 0x2b - "yuls", // 0x2c - "yult", // 0x2d - "yulp", // 0x2e - "yulh", // 0x2f - "yum", // 0x30 - "yub", // 0x31 - "yubs", // 0x32 - "yus", // 0x33 - "yuss", // 0x34 - "yung", // 0x35 - "yuj", // 0x36 - "yuc", // 0x37 - "yuk", // 0x38 - "yut", // 0x39 - "yup", // 0x3a - "yuh", // 0x3b - "eu", // 0x3c - "eug", // 0x3d - "eugg", // 0x3e - "eugs", // 0x3f - "eun", // 0x40 - "eunj", // 0x41 - "eunh", // 0x42 - "eud", // 0x43 - "eul", // 0x44 - "eulg", // 0x45 - "eulm", // 0x46 - "eulb", // 0x47 - "euls", // 0x48 - "eult", // 0x49 - "eulp", // 0x4a - "eulh", // 0x4b - "eum", // 0x4c - "eub", // 0x4d - "eubs", // 0x4e - "eus", // 0x4f - "euss", // 0x50 - "eung", // 0x51 - "euj", // 0x52 - "euc", // 0x53 - "euk", // 0x54 - "eut", // 0x55 - "eup", // 0x56 - "euh", // 0x57 - "yi", // 0x58 - "yig", // 0x59 - "yigg", // 0x5a - "yigs", // 0x5b - "yin", // 0x5c - "yinj", // 0x5d - "yinh", // 0x5e - "yid", // 0x5f - "yil", // 0x60 - "yilg", // 0x61 - "yilm", // 0x62 - "yilb", // 0x63 - "yils", // 0x64 - "yilt", // 0x65 - "yilp", // 0x66 - "yilh", // 0x67 - "yim", // 0x68 - "yib", // 0x69 - "yibs", // 0x6a - "yis", // 0x6b - "yiss", // 0x6c - "ying", // 0x6d - "yij", // 0x6e - "yic", // 0x6f - "yik", // 0x70 - "yit", // 0x71 - "yip", // 0x72 - "yih", // 0x73 - "i", // 0x74 - "ig", // 0x75 - "igg", // 0x76 - "igs", // 0x77 - "in", // 0x78 - "inj", // 0x79 - "inh", // 0x7a - "id", // 0x7b - "il", // 0x7c - "ilg", // 0x7d - "ilm", // 0x7e - "ilb", // 0x7f - "ils", // 0x80 - "ilt", // 0x81 - "ilp", // 0x82 - "ilh", // 0x83 - "im", // 0x84 - "ib", // 0x85 - "ibs", // 0x86 - "is", // 0x87 - "iss", // 0x88 - "ing", // 0x89 - "ij", // 0x8a - "ic", // 0x8b - "ik", // 0x8c - "it", // 0x8d - "ip", // 0x8e - "ih", // 0x8f - "ja", // 0x90 - "jag", // 0x91 - "jagg", // 0x92 - "jags", // 0x93 - "jan", // 0x94 - "janj", // 0x95 - "janh", // 0x96 - "jad", // 0x97 - "jal", // 0x98 - "jalg", // 0x99 - "jalm", // 0x9a - "jalb", // 0x9b - "jals", // 0x9c - "jalt", // 0x9d - "jalp", // 0x9e - "jalh", // 0x9f - "jam", // 0xa0 - "jab", // 0xa1 - "jabs", // 0xa2 - "jas", // 0xa3 - "jass", // 0xa4 - "jang", // 0xa5 - "jaj", // 0xa6 - "jac", // 0xa7 - "jak", // 0xa8 - "jat", // 0xa9 - "jap", // 0xaa - "jah", // 0xab - "jae", // 0xac - "jaeg", // 0xad - "jaegg", // 0xae - "jaegs", // 0xaf - "jaen", // 0xb0 - "jaenj", // 0xb1 - "jaenh", // 0xb2 - "jaed", // 0xb3 - "jael", // 0xb4 - "jaelg", // 0xb5 - "jaelm", // 0xb6 - "jaelb", // 0xb7 - "jaels", // 0xb8 - "jaelt", // 0xb9 - "jaelp", // 0xba - "jaelh", // 0xbb - "jaem", // 0xbc - "jaeb", // 0xbd - "jaebs", // 0xbe - "jaes", // 0xbf - "jaess", // 0xc0 - "jaeng", // 0xc1 - "jaej", // 0xc2 - "jaec", // 0xc3 - "jaek", // 0xc4 - "jaet", // 0xc5 - "jaep", // 0xc6 - "jaeh", // 0xc7 - "jya", // 0xc8 - "jyag", // 0xc9 - "jyagg", // 0xca - "jyags", // 0xcb - "jyan", // 0xcc - "jyanj", // 0xcd - "jyanh", // 0xce - "jyad", // 0xcf - "jyal", // 0xd0 - "jyalg", // 0xd1 - "jyalm", // 0xd2 - "jyalb", // 0xd3 - "jyals", // 0xd4 - "jyalt", // 0xd5 - "jyalp", // 0xd6 - "jyalh", // 0xd7 - "jyam", // 0xd8 - "jyab", // 0xd9 - "jyabs", // 0xda - "jyas", // 0xdb - "jyass", // 0xdc - "jyang", // 0xdd - "jyaj", // 0xde - "jyac", // 0xdf - "jyak", // 0xe0 - "jyat", // 0xe1 - "jyap", // 0xe2 - "jyah", // 0xe3 - "jyae", // 0xe4 - "jyaeg", // 0xe5 - "jyaegg", // 0xe6 - "jyaegs", // 0xe7 - "jyaen", // 0xe8 - "jyaenj", // 0xe9 - "jyaenh", // 0xea - "jyaed", // 0xeb - "jyael", // 0xec - "jyaelg", // 0xed - "jyaelm", // 0xee - "jyaelb", // 0xef - "jyaels", // 0xf0 - "jyaelt", // 0xf1 - "jyaelp", // 0xf2 - "jyaelh", // 0xf3 - "jyaem", // 0xf4 - "jyaeb", // 0xf5 - "jyaebs", // 0xf6 - "jyaes", // 0xf7 - "jyaess", // 0xf8 - "jyaeng", // 0xf9 - "jyaej", // 0xfa - "jyaec", // 0xfb - "jyaek", // 0xfc - "jyaet", // 0xfd - "jyaep", // 0xfe - "jyaeh", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0c8.go b/vendor/github.com/mozillazg/go-unidecode/table/x0c8.go deleted file mode 100644 index 6b97ee1..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0c8.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0c8 = []string{ - "jeo", // 0x00 - "jeog", // 0x01 - "jeogg", // 0x02 - "jeogs", // 0x03 - "jeon", // 0x04 - "jeonj", // 0x05 - "jeonh", // 0x06 - "jeod", // 0x07 - "jeol", // 0x08 - "jeolg", // 0x09 - "jeolm", // 0x0a - "jeolb", // 0x0b - "jeols", // 0x0c - "jeolt", // 0x0d - "jeolp", // 0x0e - "jeolh", // 0x0f - "jeom", // 0x10 - "jeob", // 0x11 - "jeobs", // 0x12 - "jeos", // 0x13 - "jeoss", // 0x14 - "jeong", // 0x15 - "jeoj", // 0x16 - "jeoc", // 0x17 - "jeok", // 0x18 - "jeot", // 0x19 - "jeop", // 0x1a - "jeoh", // 0x1b - "je", // 0x1c - "jeg", // 0x1d - "jegg", // 0x1e - "jegs", // 0x1f - "jen", // 0x20 - "jenj", // 0x21 - "jenh", // 0x22 - "jed", // 0x23 - "jel", // 0x24 - "jelg", // 0x25 - "jelm", // 0x26 - "jelb", // 0x27 - "jels", // 0x28 - "jelt", // 0x29 - "jelp", // 0x2a - "jelh", // 0x2b - "jem", // 0x2c - "jeb", // 0x2d - "jebs", // 0x2e - "jes", // 0x2f - "jess", // 0x30 - "jeng", // 0x31 - "jej", // 0x32 - "jec", // 0x33 - "jek", // 0x34 - "jet", // 0x35 - "jep", // 0x36 - "jeh", // 0x37 - "jyeo", // 0x38 - "jyeog", // 0x39 - "jyeogg", // 0x3a - "jyeogs", // 0x3b - "jyeon", // 0x3c - "jyeonj", // 0x3d - "jyeonh", // 0x3e - "jyeod", // 0x3f - "jyeol", // 0x40 - "jyeolg", // 0x41 - "jyeolm", // 0x42 - "jyeolb", // 0x43 - "jyeols", // 0x44 - "jyeolt", // 0x45 - "jyeolp", // 0x46 - "jyeolh", // 0x47 - "jyeom", // 0x48 - "jyeob", // 0x49 - "jyeobs", // 0x4a - "jyeos", // 0x4b - "jyeoss", // 0x4c - "jyeong", // 0x4d - "jyeoj", // 0x4e - "jyeoc", // 0x4f - "jyeok", // 0x50 - "jyeot", // 0x51 - "jyeop", // 0x52 - "jyeoh", // 0x53 - "jye", // 0x54 - "jyeg", // 0x55 - "jyegg", // 0x56 - "jyegs", // 0x57 - "jyen", // 0x58 - "jyenj", // 0x59 - "jyenh", // 0x5a - "jyed", // 0x5b - "jyel", // 0x5c - "jyelg", // 0x5d - "jyelm", // 0x5e - "jyelb", // 0x5f - "jyels", // 0x60 - "jyelt", // 0x61 - "jyelp", // 0x62 - "jyelh", // 0x63 - "jyem", // 0x64 - "jyeb", // 0x65 - "jyebs", // 0x66 - "jyes", // 0x67 - "jyess", // 0x68 - "jyeng", // 0x69 - "jyej", // 0x6a - "jyec", // 0x6b - "jyek", // 0x6c - "jyet", // 0x6d - "jyep", // 0x6e - "jyeh", // 0x6f - "jo", // 0x70 - "jog", // 0x71 - "jogg", // 0x72 - "jogs", // 0x73 - "jon", // 0x74 - "jonj", // 0x75 - "jonh", // 0x76 - "jod", // 0x77 - "jol", // 0x78 - "jolg", // 0x79 - "jolm", // 0x7a - "jolb", // 0x7b - "jols", // 0x7c - "jolt", // 0x7d - "jolp", // 0x7e - "jolh", // 0x7f - "jom", // 0x80 - "job", // 0x81 - "jobs", // 0x82 - "jos", // 0x83 - "joss", // 0x84 - "jong", // 0x85 - "joj", // 0x86 - "joc", // 0x87 - "jok", // 0x88 - "jot", // 0x89 - "jop", // 0x8a - "joh", // 0x8b - "jwa", // 0x8c - "jwag", // 0x8d - "jwagg", // 0x8e - "jwags", // 0x8f - "jwan", // 0x90 - "jwanj", // 0x91 - "jwanh", // 0x92 - "jwad", // 0x93 - "jwal", // 0x94 - "jwalg", // 0x95 - "jwalm", // 0x96 - "jwalb", // 0x97 - "jwals", // 0x98 - "jwalt", // 0x99 - "jwalp", // 0x9a - "jwalh", // 0x9b - "jwam", // 0x9c - "jwab", // 0x9d - "jwabs", // 0x9e - "jwas", // 0x9f - "jwass", // 0xa0 - "jwang", // 0xa1 - "jwaj", // 0xa2 - "jwac", // 0xa3 - "jwak", // 0xa4 - "jwat", // 0xa5 - "jwap", // 0xa6 - "jwah", // 0xa7 - "jwae", // 0xa8 - "jwaeg", // 0xa9 - "jwaegg", // 0xaa - "jwaegs", // 0xab - "jwaen", // 0xac - "jwaenj", // 0xad - "jwaenh", // 0xae - "jwaed", // 0xaf - "jwael", // 0xb0 - "jwaelg", // 0xb1 - "jwaelm", // 0xb2 - "jwaelb", // 0xb3 - "jwaels", // 0xb4 - "jwaelt", // 0xb5 - "jwaelp", // 0xb6 - "jwaelh", // 0xb7 - "jwaem", // 0xb8 - "jwaeb", // 0xb9 - "jwaebs", // 0xba - "jwaes", // 0xbb - "jwaess", // 0xbc - "jwaeng", // 0xbd - "jwaej", // 0xbe - "jwaec", // 0xbf - "jwaek", // 0xc0 - "jwaet", // 0xc1 - "jwaep", // 0xc2 - "jwaeh", // 0xc3 - "joe", // 0xc4 - "joeg", // 0xc5 - "joegg", // 0xc6 - "joegs", // 0xc7 - "joen", // 0xc8 - "joenj", // 0xc9 - "joenh", // 0xca - "joed", // 0xcb - "joel", // 0xcc - "joelg", // 0xcd - "joelm", // 0xce - "joelb", // 0xcf - "joels", // 0xd0 - "joelt", // 0xd1 - "joelp", // 0xd2 - "joelh", // 0xd3 - "joem", // 0xd4 - "joeb", // 0xd5 - "joebs", // 0xd6 - "joes", // 0xd7 - "joess", // 0xd8 - "joeng", // 0xd9 - "joej", // 0xda - "joec", // 0xdb - "joek", // 0xdc - "joet", // 0xdd - "joep", // 0xde - "joeh", // 0xdf - "jyo", // 0xe0 - "jyog", // 0xe1 - "jyogg", // 0xe2 - "jyogs", // 0xe3 - "jyon", // 0xe4 - "jyonj", // 0xe5 - "jyonh", // 0xe6 - "jyod", // 0xe7 - "jyol", // 0xe8 - "jyolg", // 0xe9 - "jyolm", // 0xea - "jyolb", // 0xeb - "jyols", // 0xec - "jyolt", // 0xed - "jyolp", // 0xee - "jyolh", // 0xef - "jyom", // 0xf0 - "jyob", // 0xf1 - "jyobs", // 0xf2 - "jyos", // 0xf3 - "jyoss", // 0xf4 - "jyong", // 0xf5 - "jyoj", // 0xf6 - "jyoc", // 0xf7 - "jyok", // 0xf8 - "jyot", // 0xf9 - "jyop", // 0xfa - "jyoh", // 0xfb - "ju", // 0xfc - "jug", // 0xfd - "jugg", // 0xfe - "jugs", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0c9.go b/vendor/github.com/mozillazg/go-unidecode/table/x0c9.go deleted file mode 100644 index 566e9e6..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0c9.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0c9 = []string{ - "jun", // 0x00 - "junj", // 0x01 - "junh", // 0x02 - "jud", // 0x03 - "jul", // 0x04 - "julg", // 0x05 - "julm", // 0x06 - "julb", // 0x07 - "juls", // 0x08 - "jult", // 0x09 - "julp", // 0x0a - "julh", // 0x0b - "jum", // 0x0c - "jub", // 0x0d - "jubs", // 0x0e - "jus", // 0x0f - "juss", // 0x10 - "jung", // 0x11 - "juj", // 0x12 - "juc", // 0x13 - "juk", // 0x14 - "jut", // 0x15 - "jup", // 0x16 - "juh", // 0x17 - "jweo", // 0x18 - "jweog", // 0x19 - "jweogg", // 0x1a - "jweogs", // 0x1b - "jweon", // 0x1c - "jweonj", // 0x1d - "jweonh", // 0x1e - "jweod", // 0x1f - "jweol", // 0x20 - "jweolg", // 0x21 - "jweolm", // 0x22 - "jweolb", // 0x23 - "jweols", // 0x24 - "jweolt", // 0x25 - "jweolp", // 0x26 - "jweolh", // 0x27 - "jweom", // 0x28 - "jweob", // 0x29 - "jweobs", // 0x2a - "jweos", // 0x2b - "jweoss", // 0x2c - "jweong", // 0x2d - "jweoj", // 0x2e - "jweoc", // 0x2f - "jweok", // 0x30 - "jweot", // 0x31 - "jweop", // 0x32 - "jweoh", // 0x33 - "jwe", // 0x34 - "jweg", // 0x35 - "jwegg", // 0x36 - "jwegs", // 0x37 - "jwen", // 0x38 - "jwenj", // 0x39 - "jwenh", // 0x3a - "jwed", // 0x3b - "jwel", // 0x3c - "jwelg", // 0x3d - "jwelm", // 0x3e - "jwelb", // 0x3f - "jwels", // 0x40 - "jwelt", // 0x41 - "jwelp", // 0x42 - "jwelh", // 0x43 - "jwem", // 0x44 - "jweb", // 0x45 - "jwebs", // 0x46 - "jwes", // 0x47 - "jwess", // 0x48 - "jweng", // 0x49 - "jwej", // 0x4a - "jwec", // 0x4b - "jwek", // 0x4c - "jwet", // 0x4d - "jwep", // 0x4e - "jweh", // 0x4f - "jwi", // 0x50 - "jwig", // 0x51 - "jwigg", // 0x52 - "jwigs", // 0x53 - "jwin", // 0x54 - "jwinj", // 0x55 - "jwinh", // 0x56 - "jwid", // 0x57 - "jwil", // 0x58 - "jwilg", // 0x59 - "jwilm", // 0x5a - "jwilb", // 0x5b - "jwils", // 0x5c - "jwilt", // 0x5d - "jwilp", // 0x5e - "jwilh", // 0x5f - "jwim", // 0x60 - "jwib", // 0x61 - "jwibs", // 0x62 - "jwis", // 0x63 - "jwiss", // 0x64 - "jwing", // 0x65 - "jwij", // 0x66 - "jwic", // 0x67 - "jwik", // 0x68 - "jwit", // 0x69 - "jwip", // 0x6a - "jwih", // 0x6b - "jyu", // 0x6c - "jyug", // 0x6d - "jyugg", // 0x6e - "jyugs", // 0x6f - "jyun", // 0x70 - "jyunj", // 0x71 - "jyunh", // 0x72 - "jyud", // 0x73 - "jyul", // 0x74 - "jyulg", // 0x75 - "jyulm", // 0x76 - "jyulb", // 0x77 - "jyuls", // 0x78 - "jyult", // 0x79 - "jyulp", // 0x7a - "jyulh", // 0x7b - "jyum", // 0x7c - "jyub", // 0x7d - "jyubs", // 0x7e - "jyus", // 0x7f - "jyuss", // 0x80 - "jyung", // 0x81 - "jyuj", // 0x82 - "jyuc", // 0x83 - "jyuk", // 0x84 - "jyut", // 0x85 - "jyup", // 0x86 - "jyuh", // 0x87 - "jeu", // 0x88 - "jeug", // 0x89 - "jeugg", // 0x8a - "jeugs", // 0x8b - "jeun", // 0x8c - "jeunj", // 0x8d - "jeunh", // 0x8e - "jeud", // 0x8f - "jeul", // 0x90 - "jeulg", // 0x91 - "jeulm", // 0x92 - "jeulb", // 0x93 - "jeuls", // 0x94 - "jeult", // 0x95 - "jeulp", // 0x96 - "jeulh", // 0x97 - "jeum", // 0x98 - "jeub", // 0x99 - "jeubs", // 0x9a - "jeus", // 0x9b - "jeuss", // 0x9c - "jeung", // 0x9d - "jeuj", // 0x9e - "jeuc", // 0x9f - "jeuk", // 0xa0 - "jeut", // 0xa1 - "jeup", // 0xa2 - "jeuh", // 0xa3 - "jyi", // 0xa4 - "jyig", // 0xa5 - "jyigg", // 0xa6 - "jyigs", // 0xa7 - "jyin", // 0xa8 - "jyinj", // 0xa9 - "jyinh", // 0xaa - "jyid", // 0xab - "jyil", // 0xac - "jyilg", // 0xad - "jyilm", // 0xae - "jyilb", // 0xaf - "jyils", // 0xb0 - "jyilt", // 0xb1 - "jyilp", // 0xb2 - "jyilh", // 0xb3 - "jyim", // 0xb4 - "jyib", // 0xb5 - "jyibs", // 0xb6 - "jyis", // 0xb7 - "jyiss", // 0xb8 - "jying", // 0xb9 - "jyij", // 0xba - "jyic", // 0xbb - "jyik", // 0xbc - "jyit", // 0xbd - "jyip", // 0xbe - "jyih", // 0xbf - "ji", // 0xc0 - "jig", // 0xc1 - "jigg", // 0xc2 - "jigs", // 0xc3 - "jin", // 0xc4 - "jinj", // 0xc5 - "jinh", // 0xc6 - "jid", // 0xc7 - "jil", // 0xc8 - "jilg", // 0xc9 - "jilm", // 0xca - "jilb", // 0xcb - "jils", // 0xcc - "jilt", // 0xcd - "jilp", // 0xce - "jilh", // 0xcf - "jim", // 0xd0 - "jib", // 0xd1 - "jibs", // 0xd2 - "jis", // 0xd3 - "jiss", // 0xd4 - "jing", // 0xd5 - "jij", // 0xd6 - "jic", // 0xd7 - "jik", // 0xd8 - "jit", // 0xd9 - "jip", // 0xda - "jih", // 0xdb - "jja", // 0xdc - "jjag", // 0xdd - "jjagg", // 0xde - "jjags", // 0xdf - "jjan", // 0xe0 - "jjanj", // 0xe1 - "jjanh", // 0xe2 - "jjad", // 0xe3 - "jjal", // 0xe4 - "jjalg", // 0xe5 - "jjalm", // 0xe6 - "jjalb", // 0xe7 - "jjals", // 0xe8 - "jjalt", // 0xe9 - "jjalp", // 0xea - "jjalh", // 0xeb - "jjam", // 0xec - "jjab", // 0xed - "jjabs", // 0xee - "jjas", // 0xef - "jjass", // 0xf0 - "jjang", // 0xf1 - "jjaj", // 0xf2 - "jjac", // 0xf3 - "jjak", // 0xf4 - "jjat", // 0xf5 - "jjap", // 0xf6 - "jjah", // 0xf7 - "jjae", // 0xf8 - "jjaeg", // 0xf9 - "jjaegg", // 0xfa - "jjaegs", // 0xfb - "jjaen", // 0xfc - "jjaenj", // 0xfd - "jjaenh", // 0xfe - "jjaed", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0ca.go b/vendor/github.com/mozillazg/go-unidecode/table/x0ca.go deleted file mode 100644 index 974ea5e..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0ca.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0ca = []string{ - "jjael", // 0x00 - "jjaelg", // 0x01 - "jjaelm", // 0x02 - "jjaelb", // 0x03 - "jjaels", // 0x04 - "jjaelt", // 0x05 - "jjaelp", // 0x06 - "jjaelh", // 0x07 - "jjaem", // 0x08 - "jjaeb", // 0x09 - "jjaebs", // 0x0a - "jjaes", // 0x0b - "jjaess", // 0x0c - "jjaeng", // 0x0d - "jjaej", // 0x0e - "jjaec", // 0x0f - "jjaek", // 0x10 - "jjaet", // 0x11 - "jjaep", // 0x12 - "jjaeh", // 0x13 - "jjya", // 0x14 - "jjyag", // 0x15 - "jjyagg", // 0x16 - "jjyags", // 0x17 - "jjyan", // 0x18 - "jjyanj", // 0x19 - "jjyanh", // 0x1a - "jjyad", // 0x1b - "jjyal", // 0x1c - "jjyalg", // 0x1d - "jjyalm", // 0x1e - "jjyalb", // 0x1f - "jjyals", // 0x20 - "jjyalt", // 0x21 - "jjyalp", // 0x22 - "jjyalh", // 0x23 - "jjyam", // 0x24 - "jjyab", // 0x25 - "jjyabs", // 0x26 - "jjyas", // 0x27 - "jjyass", // 0x28 - "jjyang", // 0x29 - "jjyaj", // 0x2a - "jjyac", // 0x2b - "jjyak", // 0x2c - "jjyat", // 0x2d - "jjyap", // 0x2e - "jjyah", // 0x2f - "jjyae", // 0x30 - "jjyaeg", // 0x31 - "jjyaegg", // 0x32 - "jjyaegs", // 0x33 - "jjyaen", // 0x34 - "jjyaenj", // 0x35 - "jjyaenh", // 0x36 - "jjyaed", // 0x37 - "jjyael", // 0x38 - "jjyaelg", // 0x39 - "jjyaelm", // 0x3a - "jjyaelb", // 0x3b - "jjyaels", // 0x3c - "jjyaelt", // 0x3d - "jjyaelp", // 0x3e - "jjyaelh", // 0x3f - "jjyaem", // 0x40 - "jjyaeb", // 0x41 - "jjyaebs", // 0x42 - "jjyaes", // 0x43 - "jjyaess", // 0x44 - "jjyaeng", // 0x45 - "jjyaej", // 0x46 - "jjyaec", // 0x47 - "jjyaek", // 0x48 - "jjyaet", // 0x49 - "jjyaep", // 0x4a - "jjyaeh", // 0x4b - "jjeo", // 0x4c - "jjeog", // 0x4d - "jjeogg", // 0x4e - "jjeogs", // 0x4f - "jjeon", // 0x50 - "jjeonj", // 0x51 - "jjeonh", // 0x52 - "jjeod", // 0x53 - "jjeol", // 0x54 - "jjeolg", // 0x55 - "jjeolm", // 0x56 - "jjeolb", // 0x57 - "jjeols", // 0x58 - "jjeolt", // 0x59 - "jjeolp", // 0x5a - "jjeolh", // 0x5b - "jjeom", // 0x5c - "jjeob", // 0x5d - "jjeobs", // 0x5e - "jjeos", // 0x5f - "jjeoss", // 0x60 - "jjeong", // 0x61 - "jjeoj", // 0x62 - "jjeoc", // 0x63 - "jjeok", // 0x64 - "jjeot", // 0x65 - "jjeop", // 0x66 - "jjeoh", // 0x67 - "jje", // 0x68 - "jjeg", // 0x69 - "jjegg", // 0x6a - "jjegs", // 0x6b - "jjen", // 0x6c - "jjenj", // 0x6d - "jjenh", // 0x6e - "jjed", // 0x6f - "jjel", // 0x70 - "jjelg", // 0x71 - "jjelm", // 0x72 - "jjelb", // 0x73 - "jjels", // 0x74 - "jjelt", // 0x75 - "jjelp", // 0x76 - "jjelh", // 0x77 - "jjem", // 0x78 - "jjeb", // 0x79 - "jjebs", // 0x7a - "jjes", // 0x7b - "jjess", // 0x7c - "jjeng", // 0x7d - "jjej", // 0x7e - "jjec", // 0x7f - "jjek", // 0x80 - "jjet", // 0x81 - "jjep", // 0x82 - "jjeh", // 0x83 - "jjyeo", // 0x84 - "jjyeog", // 0x85 - "jjyeogg", // 0x86 - "jjyeogs", // 0x87 - "jjyeon", // 0x88 - "jjyeonj", // 0x89 - "jjyeonh", // 0x8a - "jjyeod", // 0x8b - "jjyeol", // 0x8c - "jjyeolg", // 0x8d - "jjyeolm", // 0x8e - "jjyeolb", // 0x8f - "jjyeols", // 0x90 - "jjyeolt", // 0x91 - "jjyeolp", // 0x92 - "jjyeolh", // 0x93 - "jjyeom", // 0x94 - "jjyeob", // 0x95 - "jjyeobs", // 0x96 - "jjyeos", // 0x97 - "jjyeoss", // 0x98 - "jjyeong", // 0x99 - "jjyeoj", // 0x9a - "jjyeoc", // 0x9b - "jjyeok", // 0x9c - "jjyeot", // 0x9d - "jjyeop", // 0x9e - "jjyeoh", // 0x9f - "jjye", // 0xa0 - "jjyeg", // 0xa1 - "jjyegg", // 0xa2 - "jjyegs", // 0xa3 - "jjyen", // 0xa4 - "jjyenj", // 0xa5 - "jjyenh", // 0xa6 - "jjyed", // 0xa7 - "jjyel", // 0xa8 - "jjyelg", // 0xa9 - "jjyelm", // 0xaa - "jjyelb", // 0xab - "jjyels", // 0xac - "jjyelt", // 0xad - "jjyelp", // 0xae - "jjyelh", // 0xaf - "jjyem", // 0xb0 - "jjyeb", // 0xb1 - "jjyebs", // 0xb2 - "jjyes", // 0xb3 - "jjyess", // 0xb4 - "jjyeng", // 0xb5 - "jjyej", // 0xb6 - "jjyec", // 0xb7 - "jjyek", // 0xb8 - "jjyet", // 0xb9 - "jjyep", // 0xba - "jjyeh", // 0xbb - "jjo", // 0xbc - "jjog", // 0xbd - "jjogg", // 0xbe - "jjogs", // 0xbf - "jjon", // 0xc0 - "jjonj", // 0xc1 - "jjonh", // 0xc2 - "jjod", // 0xc3 - "jjol", // 0xc4 - "jjolg", // 0xc5 - "jjolm", // 0xc6 - "jjolb", // 0xc7 - "jjols", // 0xc8 - "jjolt", // 0xc9 - "jjolp", // 0xca - "jjolh", // 0xcb - "jjom", // 0xcc - "jjob", // 0xcd - "jjobs", // 0xce - "jjos", // 0xcf - "jjoss", // 0xd0 - "jjong", // 0xd1 - "jjoj", // 0xd2 - "jjoc", // 0xd3 - "jjok", // 0xd4 - "jjot", // 0xd5 - "jjop", // 0xd6 - "jjoh", // 0xd7 - "jjwa", // 0xd8 - "jjwag", // 0xd9 - "jjwagg", // 0xda - "jjwags", // 0xdb - "jjwan", // 0xdc - "jjwanj", // 0xdd - "jjwanh", // 0xde - "jjwad", // 0xdf - "jjwal", // 0xe0 - "jjwalg", // 0xe1 - "jjwalm", // 0xe2 - "jjwalb", // 0xe3 - "jjwals", // 0xe4 - "jjwalt", // 0xe5 - "jjwalp", // 0xe6 - "jjwalh", // 0xe7 - "jjwam", // 0xe8 - "jjwab", // 0xe9 - "jjwabs", // 0xea - "jjwas", // 0xeb - "jjwass", // 0xec - "jjwang", // 0xed - "jjwaj", // 0xee - "jjwac", // 0xef - "jjwak", // 0xf0 - "jjwat", // 0xf1 - "jjwap", // 0xf2 - "jjwah", // 0xf3 - "jjwae", // 0xf4 - "jjwaeg", // 0xf5 - "jjwaegg", // 0xf6 - "jjwaegs", // 0xf7 - "jjwaen", // 0xf8 - "jjwaenj", // 0xf9 - "jjwaenh", // 0xfa - "jjwaed", // 0xfb - "jjwael", // 0xfc - "jjwaelg", // 0xfd - "jjwaelm", // 0xfe - "jjwaelb", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0cb.go b/vendor/github.com/mozillazg/go-unidecode/table/x0cb.go deleted file mode 100644 index 62530e8..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0cb.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0cb = []string{ - "jjwaels", // 0x00 - "jjwaelt", // 0x01 - "jjwaelp", // 0x02 - "jjwaelh", // 0x03 - "jjwaem", // 0x04 - "jjwaeb", // 0x05 - "jjwaebs", // 0x06 - "jjwaes", // 0x07 - "jjwaess", // 0x08 - "jjwaeng", // 0x09 - "jjwaej", // 0x0a - "jjwaec", // 0x0b - "jjwaek", // 0x0c - "jjwaet", // 0x0d - "jjwaep", // 0x0e - "jjwaeh", // 0x0f - "jjoe", // 0x10 - "jjoeg", // 0x11 - "jjoegg", // 0x12 - "jjoegs", // 0x13 - "jjoen", // 0x14 - "jjoenj", // 0x15 - "jjoenh", // 0x16 - "jjoed", // 0x17 - "jjoel", // 0x18 - "jjoelg", // 0x19 - "jjoelm", // 0x1a - "jjoelb", // 0x1b - "jjoels", // 0x1c - "jjoelt", // 0x1d - "jjoelp", // 0x1e - "jjoelh", // 0x1f - "jjoem", // 0x20 - "jjoeb", // 0x21 - "jjoebs", // 0x22 - "jjoes", // 0x23 - "jjoess", // 0x24 - "jjoeng", // 0x25 - "jjoej", // 0x26 - "jjoec", // 0x27 - "jjoek", // 0x28 - "jjoet", // 0x29 - "jjoep", // 0x2a - "jjoeh", // 0x2b - "jjyo", // 0x2c - "jjyog", // 0x2d - "jjyogg", // 0x2e - "jjyogs", // 0x2f - "jjyon", // 0x30 - "jjyonj", // 0x31 - "jjyonh", // 0x32 - "jjyod", // 0x33 - "jjyol", // 0x34 - "jjyolg", // 0x35 - "jjyolm", // 0x36 - "jjyolb", // 0x37 - "jjyols", // 0x38 - "jjyolt", // 0x39 - "jjyolp", // 0x3a - "jjyolh", // 0x3b - "jjyom", // 0x3c - "jjyob", // 0x3d - "jjyobs", // 0x3e - "jjyos", // 0x3f - "jjyoss", // 0x40 - "jjyong", // 0x41 - "jjyoj", // 0x42 - "jjyoc", // 0x43 - "jjyok", // 0x44 - "jjyot", // 0x45 - "jjyop", // 0x46 - "jjyoh", // 0x47 - "jju", // 0x48 - "jjug", // 0x49 - "jjugg", // 0x4a - "jjugs", // 0x4b - "jjun", // 0x4c - "jjunj", // 0x4d - "jjunh", // 0x4e - "jjud", // 0x4f - "jjul", // 0x50 - "jjulg", // 0x51 - "jjulm", // 0x52 - "jjulb", // 0x53 - "jjuls", // 0x54 - "jjult", // 0x55 - "jjulp", // 0x56 - "jjulh", // 0x57 - "jjum", // 0x58 - "jjub", // 0x59 - "jjubs", // 0x5a - "jjus", // 0x5b - "jjuss", // 0x5c - "jjung", // 0x5d - "jjuj", // 0x5e - "jjuc", // 0x5f - "jjuk", // 0x60 - "jjut", // 0x61 - "jjup", // 0x62 - "jjuh", // 0x63 - "jjweo", // 0x64 - "jjweog", // 0x65 - "jjweogg", // 0x66 - "jjweogs", // 0x67 - "jjweon", // 0x68 - "jjweonj", // 0x69 - "jjweonh", // 0x6a - "jjweod", // 0x6b - "jjweol", // 0x6c - "jjweolg", // 0x6d - "jjweolm", // 0x6e - "jjweolb", // 0x6f - "jjweols", // 0x70 - "jjweolt", // 0x71 - "jjweolp", // 0x72 - "jjweolh", // 0x73 - "jjweom", // 0x74 - "jjweob", // 0x75 - "jjweobs", // 0x76 - "jjweos", // 0x77 - "jjweoss", // 0x78 - "jjweong", // 0x79 - "jjweoj", // 0x7a - "jjweoc", // 0x7b - "jjweok", // 0x7c - "jjweot", // 0x7d - "jjweop", // 0x7e - "jjweoh", // 0x7f - "jjwe", // 0x80 - "jjweg", // 0x81 - "jjwegg", // 0x82 - "jjwegs", // 0x83 - "jjwen", // 0x84 - "jjwenj", // 0x85 - "jjwenh", // 0x86 - "jjwed", // 0x87 - "jjwel", // 0x88 - "jjwelg", // 0x89 - "jjwelm", // 0x8a - "jjwelb", // 0x8b - "jjwels", // 0x8c - "jjwelt", // 0x8d - "jjwelp", // 0x8e - "jjwelh", // 0x8f - "jjwem", // 0x90 - "jjweb", // 0x91 - "jjwebs", // 0x92 - "jjwes", // 0x93 - "jjwess", // 0x94 - "jjweng", // 0x95 - "jjwej", // 0x96 - "jjwec", // 0x97 - "jjwek", // 0x98 - "jjwet", // 0x99 - "jjwep", // 0x9a - "jjweh", // 0x9b - "jjwi", // 0x9c - "jjwig", // 0x9d - "jjwigg", // 0x9e - "jjwigs", // 0x9f - "jjwin", // 0xa0 - "jjwinj", // 0xa1 - "jjwinh", // 0xa2 - "jjwid", // 0xa3 - "jjwil", // 0xa4 - "jjwilg", // 0xa5 - "jjwilm", // 0xa6 - "jjwilb", // 0xa7 - "jjwils", // 0xa8 - "jjwilt", // 0xa9 - "jjwilp", // 0xaa - "jjwilh", // 0xab - "jjwim", // 0xac - "jjwib", // 0xad - "jjwibs", // 0xae - "jjwis", // 0xaf - "jjwiss", // 0xb0 - "jjwing", // 0xb1 - "jjwij", // 0xb2 - "jjwic", // 0xb3 - "jjwik", // 0xb4 - "jjwit", // 0xb5 - "jjwip", // 0xb6 - "jjwih", // 0xb7 - "jjyu", // 0xb8 - "jjyug", // 0xb9 - "jjyugg", // 0xba - "jjyugs", // 0xbb - "jjyun", // 0xbc - "jjyunj", // 0xbd - "jjyunh", // 0xbe - "jjyud", // 0xbf - "jjyul", // 0xc0 - "jjyulg", // 0xc1 - "jjyulm", // 0xc2 - "jjyulb", // 0xc3 - "jjyuls", // 0xc4 - "jjyult", // 0xc5 - "jjyulp", // 0xc6 - "jjyulh", // 0xc7 - "jjyum", // 0xc8 - "jjyub", // 0xc9 - "jjyubs", // 0xca - "jjyus", // 0xcb - "jjyuss", // 0xcc - "jjyung", // 0xcd - "jjyuj", // 0xce - "jjyuc", // 0xcf - "jjyuk", // 0xd0 - "jjyut", // 0xd1 - "jjyup", // 0xd2 - "jjyuh", // 0xd3 - "jjeu", // 0xd4 - "jjeug", // 0xd5 - "jjeugg", // 0xd6 - "jjeugs", // 0xd7 - "jjeun", // 0xd8 - "jjeunj", // 0xd9 - "jjeunh", // 0xda - "jjeud", // 0xdb - "jjeul", // 0xdc - "jjeulg", // 0xdd - "jjeulm", // 0xde - "jjeulb", // 0xdf - "jjeuls", // 0xe0 - "jjeult", // 0xe1 - "jjeulp", // 0xe2 - "jjeulh", // 0xe3 - "jjeum", // 0xe4 - "jjeub", // 0xe5 - "jjeubs", // 0xe6 - "jjeus", // 0xe7 - "jjeuss", // 0xe8 - "jjeung", // 0xe9 - "jjeuj", // 0xea - "jjeuc", // 0xeb - "jjeuk", // 0xec - "jjeut", // 0xed - "jjeup", // 0xee - "jjeuh", // 0xef - "jjyi", // 0xf0 - "jjyig", // 0xf1 - "jjyigg", // 0xf2 - "jjyigs", // 0xf3 - "jjyin", // 0xf4 - "jjyinj", // 0xf5 - "jjyinh", // 0xf6 - "jjyid", // 0xf7 - "jjyil", // 0xf8 - "jjyilg", // 0xf9 - "jjyilm", // 0xfa - "jjyilb", // 0xfb - "jjyils", // 0xfc - "jjyilt", // 0xfd - "jjyilp", // 0xfe - "jjyilh", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0cc.go b/vendor/github.com/mozillazg/go-unidecode/table/x0cc.go deleted file mode 100644 index a2485b2..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0cc.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0cc = []string{ - "jjyim", // 0x00 - "jjyib", // 0x01 - "jjyibs", // 0x02 - "jjyis", // 0x03 - "jjyiss", // 0x04 - "jjying", // 0x05 - "jjyij", // 0x06 - "jjyic", // 0x07 - "jjyik", // 0x08 - "jjyit", // 0x09 - "jjyip", // 0x0a - "jjyih", // 0x0b - "jji", // 0x0c - "jjig", // 0x0d - "jjigg", // 0x0e - "jjigs", // 0x0f - "jjin", // 0x10 - "jjinj", // 0x11 - "jjinh", // 0x12 - "jjid", // 0x13 - "jjil", // 0x14 - "jjilg", // 0x15 - "jjilm", // 0x16 - "jjilb", // 0x17 - "jjils", // 0x18 - "jjilt", // 0x19 - "jjilp", // 0x1a - "jjilh", // 0x1b - "jjim", // 0x1c - "jjib", // 0x1d - "jjibs", // 0x1e - "jjis", // 0x1f - "jjiss", // 0x20 - "jjing", // 0x21 - "jjij", // 0x22 - "jjic", // 0x23 - "jjik", // 0x24 - "jjit", // 0x25 - "jjip", // 0x26 - "jjih", // 0x27 - "ca", // 0x28 - "cag", // 0x29 - "cagg", // 0x2a - "cags", // 0x2b - "can", // 0x2c - "canj", // 0x2d - "canh", // 0x2e - "cad", // 0x2f - "cal", // 0x30 - "calg", // 0x31 - "calm", // 0x32 - "calb", // 0x33 - "cals", // 0x34 - "calt", // 0x35 - "calp", // 0x36 - "calh", // 0x37 - "cam", // 0x38 - "cab", // 0x39 - "cabs", // 0x3a - "cas", // 0x3b - "cass", // 0x3c - "cang", // 0x3d - "caj", // 0x3e - "cac", // 0x3f - "cak", // 0x40 - "cat", // 0x41 - "cap", // 0x42 - "cah", // 0x43 - "cae", // 0x44 - "caeg", // 0x45 - "caegg", // 0x46 - "caegs", // 0x47 - "caen", // 0x48 - "caenj", // 0x49 - "caenh", // 0x4a - "caed", // 0x4b - "cael", // 0x4c - "caelg", // 0x4d - "caelm", // 0x4e - "caelb", // 0x4f - "caels", // 0x50 - "caelt", // 0x51 - "caelp", // 0x52 - "caelh", // 0x53 - "caem", // 0x54 - "caeb", // 0x55 - "caebs", // 0x56 - "caes", // 0x57 - "caess", // 0x58 - "caeng", // 0x59 - "caej", // 0x5a - "caec", // 0x5b - "caek", // 0x5c - "caet", // 0x5d - "caep", // 0x5e - "caeh", // 0x5f - "cya", // 0x60 - "cyag", // 0x61 - "cyagg", // 0x62 - "cyags", // 0x63 - "cyan", // 0x64 - "cyanj", // 0x65 - "cyanh", // 0x66 - "cyad", // 0x67 - "cyal", // 0x68 - "cyalg", // 0x69 - "cyalm", // 0x6a - "cyalb", // 0x6b - "cyals", // 0x6c - "cyalt", // 0x6d - "cyalp", // 0x6e - "cyalh", // 0x6f - "cyam", // 0x70 - "cyab", // 0x71 - "cyabs", // 0x72 - "cyas", // 0x73 - "cyass", // 0x74 - "cyang", // 0x75 - "cyaj", // 0x76 - "cyac", // 0x77 - "cyak", // 0x78 - "cyat", // 0x79 - "cyap", // 0x7a - "cyah", // 0x7b - "cyae", // 0x7c - "cyaeg", // 0x7d - "cyaegg", // 0x7e - "cyaegs", // 0x7f - "cyaen", // 0x80 - "cyaenj", // 0x81 - "cyaenh", // 0x82 - "cyaed", // 0x83 - "cyael", // 0x84 - "cyaelg", // 0x85 - "cyaelm", // 0x86 - "cyaelb", // 0x87 - "cyaels", // 0x88 - "cyaelt", // 0x89 - "cyaelp", // 0x8a - "cyaelh", // 0x8b - "cyaem", // 0x8c - "cyaeb", // 0x8d - "cyaebs", // 0x8e - "cyaes", // 0x8f - "cyaess", // 0x90 - "cyaeng", // 0x91 - "cyaej", // 0x92 - "cyaec", // 0x93 - "cyaek", // 0x94 - "cyaet", // 0x95 - "cyaep", // 0x96 - "cyaeh", // 0x97 - "ceo", // 0x98 - "ceog", // 0x99 - "ceogg", // 0x9a - "ceogs", // 0x9b - "ceon", // 0x9c - "ceonj", // 0x9d - "ceonh", // 0x9e - "ceod", // 0x9f - "ceol", // 0xa0 - "ceolg", // 0xa1 - "ceolm", // 0xa2 - "ceolb", // 0xa3 - "ceols", // 0xa4 - "ceolt", // 0xa5 - "ceolp", // 0xa6 - "ceolh", // 0xa7 - "ceom", // 0xa8 - "ceob", // 0xa9 - "ceobs", // 0xaa - "ceos", // 0xab - "ceoss", // 0xac - "ceong", // 0xad - "ceoj", // 0xae - "ceoc", // 0xaf - "ceok", // 0xb0 - "ceot", // 0xb1 - "ceop", // 0xb2 - "ceoh", // 0xb3 - "ce", // 0xb4 - "ceg", // 0xb5 - "cegg", // 0xb6 - "cegs", // 0xb7 - "cen", // 0xb8 - "cenj", // 0xb9 - "cenh", // 0xba - "ced", // 0xbb - "cel", // 0xbc - "celg", // 0xbd - "celm", // 0xbe - "celb", // 0xbf - "cels", // 0xc0 - "celt", // 0xc1 - "celp", // 0xc2 - "celh", // 0xc3 - "cem", // 0xc4 - "ceb", // 0xc5 - "cebs", // 0xc6 - "ces", // 0xc7 - "cess", // 0xc8 - "ceng", // 0xc9 - "cej", // 0xca - "cec", // 0xcb - "cek", // 0xcc - "cet", // 0xcd - "cep", // 0xce - "ceh", // 0xcf - "cyeo", // 0xd0 - "cyeog", // 0xd1 - "cyeogg", // 0xd2 - "cyeogs", // 0xd3 - "cyeon", // 0xd4 - "cyeonj", // 0xd5 - "cyeonh", // 0xd6 - "cyeod", // 0xd7 - "cyeol", // 0xd8 - "cyeolg", // 0xd9 - "cyeolm", // 0xda - "cyeolb", // 0xdb - "cyeols", // 0xdc - "cyeolt", // 0xdd - "cyeolp", // 0xde - "cyeolh", // 0xdf - "cyeom", // 0xe0 - "cyeob", // 0xe1 - "cyeobs", // 0xe2 - "cyeos", // 0xe3 - "cyeoss", // 0xe4 - "cyeong", // 0xe5 - "cyeoj", // 0xe6 - "cyeoc", // 0xe7 - "cyeok", // 0xe8 - "cyeot", // 0xe9 - "cyeop", // 0xea - "cyeoh", // 0xeb - "cye", // 0xec - "cyeg", // 0xed - "cyegg", // 0xee - "cyegs", // 0xef - "cyen", // 0xf0 - "cyenj", // 0xf1 - "cyenh", // 0xf2 - "cyed", // 0xf3 - "cyel", // 0xf4 - "cyelg", // 0xf5 - "cyelm", // 0xf6 - "cyelb", // 0xf7 - "cyels", // 0xf8 - "cyelt", // 0xf9 - "cyelp", // 0xfa - "cyelh", // 0xfb - "cyem", // 0xfc - "cyeb", // 0xfd - "cyebs", // 0xfe - "cyes", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0cd.go b/vendor/github.com/mozillazg/go-unidecode/table/x0cd.go deleted file mode 100644 index e3b8573..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0cd.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0cd = []string{ - "cyess", // 0x00 - "cyeng", // 0x01 - "cyej", // 0x02 - "cyec", // 0x03 - "cyek", // 0x04 - "cyet", // 0x05 - "cyep", // 0x06 - "cyeh", // 0x07 - "co", // 0x08 - "cog", // 0x09 - "cogg", // 0x0a - "cogs", // 0x0b - "con", // 0x0c - "conj", // 0x0d - "conh", // 0x0e - "cod", // 0x0f - "col", // 0x10 - "colg", // 0x11 - "colm", // 0x12 - "colb", // 0x13 - "cols", // 0x14 - "colt", // 0x15 - "colp", // 0x16 - "colh", // 0x17 - "com", // 0x18 - "cob", // 0x19 - "cobs", // 0x1a - "cos", // 0x1b - "coss", // 0x1c - "cong", // 0x1d - "coj", // 0x1e - "coc", // 0x1f - "cok", // 0x20 - "cot", // 0x21 - "cop", // 0x22 - "coh", // 0x23 - "cwa", // 0x24 - "cwag", // 0x25 - "cwagg", // 0x26 - "cwags", // 0x27 - "cwan", // 0x28 - "cwanj", // 0x29 - "cwanh", // 0x2a - "cwad", // 0x2b - "cwal", // 0x2c - "cwalg", // 0x2d - "cwalm", // 0x2e - "cwalb", // 0x2f - "cwals", // 0x30 - "cwalt", // 0x31 - "cwalp", // 0x32 - "cwalh", // 0x33 - "cwam", // 0x34 - "cwab", // 0x35 - "cwabs", // 0x36 - "cwas", // 0x37 - "cwass", // 0x38 - "cwang", // 0x39 - "cwaj", // 0x3a - "cwac", // 0x3b - "cwak", // 0x3c - "cwat", // 0x3d - "cwap", // 0x3e - "cwah", // 0x3f - "cwae", // 0x40 - "cwaeg", // 0x41 - "cwaegg", // 0x42 - "cwaegs", // 0x43 - "cwaen", // 0x44 - "cwaenj", // 0x45 - "cwaenh", // 0x46 - "cwaed", // 0x47 - "cwael", // 0x48 - "cwaelg", // 0x49 - "cwaelm", // 0x4a - "cwaelb", // 0x4b - "cwaels", // 0x4c - "cwaelt", // 0x4d - "cwaelp", // 0x4e - "cwaelh", // 0x4f - "cwaem", // 0x50 - "cwaeb", // 0x51 - "cwaebs", // 0x52 - "cwaes", // 0x53 - "cwaess", // 0x54 - "cwaeng", // 0x55 - "cwaej", // 0x56 - "cwaec", // 0x57 - "cwaek", // 0x58 - "cwaet", // 0x59 - "cwaep", // 0x5a - "cwaeh", // 0x5b - "coe", // 0x5c - "coeg", // 0x5d - "coegg", // 0x5e - "coegs", // 0x5f - "coen", // 0x60 - "coenj", // 0x61 - "coenh", // 0x62 - "coed", // 0x63 - "coel", // 0x64 - "coelg", // 0x65 - "coelm", // 0x66 - "coelb", // 0x67 - "coels", // 0x68 - "coelt", // 0x69 - "coelp", // 0x6a - "coelh", // 0x6b - "coem", // 0x6c - "coeb", // 0x6d - "coebs", // 0x6e - "coes", // 0x6f - "coess", // 0x70 - "coeng", // 0x71 - "coej", // 0x72 - "coec", // 0x73 - "coek", // 0x74 - "coet", // 0x75 - "coep", // 0x76 - "coeh", // 0x77 - "cyo", // 0x78 - "cyog", // 0x79 - "cyogg", // 0x7a - "cyogs", // 0x7b - "cyon", // 0x7c - "cyonj", // 0x7d - "cyonh", // 0x7e - "cyod", // 0x7f - "cyol", // 0x80 - "cyolg", // 0x81 - "cyolm", // 0x82 - "cyolb", // 0x83 - "cyols", // 0x84 - "cyolt", // 0x85 - "cyolp", // 0x86 - "cyolh", // 0x87 - "cyom", // 0x88 - "cyob", // 0x89 - "cyobs", // 0x8a - "cyos", // 0x8b - "cyoss", // 0x8c - "cyong", // 0x8d - "cyoj", // 0x8e - "cyoc", // 0x8f - "cyok", // 0x90 - "cyot", // 0x91 - "cyop", // 0x92 - "cyoh", // 0x93 - "cu", // 0x94 - "cug", // 0x95 - "cugg", // 0x96 - "cugs", // 0x97 - "cun", // 0x98 - "cunj", // 0x99 - "cunh", // 0x9a - "cud", // 0x9b - "cul", // 0x9c - "culg", // 0x9d - "culm", // 0x9e - "culb", // 0x9f - "culs", // 0xa0 - "cult", // 0xa1 - "culp", // 0xa2 - "culh", // 0xa3 - "cum", // 0xa4 - "cub", // 0xa5 - "cubs", // 0xa6 - "cus", // 0xa7 - "cuss", // 0xa8 - "cung", // 0xa9 - "cuj", // 0xaa - "cuc", // 0xab - "cuk", // 0xac - "cut", // 0xad - "cup", // 0xae - "cuh", // 0xaf - "cweo", // 0xb0 - "cweog", // 0xb1 - "cweogg", // 0xb2 - "cweogs", // 0xb3 - "cweon", // 0xb4 - "cweonj", // 0xb5 - "cweonh", // 0xb6 - "cweod", // 0xb7 - "cweol", // 0xb8 - "cweolg", // 0xb9 - "cweolm", // 0xba - "cweolb", // 0xbb - "cweols", // 0xbc - "cweolt", // 0xbd - "cweolp", // 0xbe - "cweolh", // 0xbf - "cweom", // 0xc0 - "cweob", // 0xc1 - "cweobs", // 0xc2 - "cweos", // 0xc3 - "cweoss", // 0xc4 - "cweong", // 0xc5 - "cweoj", // 0xc6 - "cweoc", // 0xc7 - "cweok", // 0xc8 - "cweot", // 0xc9 - "cweop", // 0xca - "cweoh", // 0xcb - "cwe", // 0xcc - "cweg", // 0xcd - "cwegg", // 0xce - "cwegs", // 0xcf - "cwen", // 0xd0 - "cwenj", // 0xd1 - "cwenh", // 0xd2 - "cwed", // 0xd3 - "cwel", // 0xd4 - "cwelg", // 0xd5 - "cwelm", // 0xd6 - "cwelb", // 0xd7 - "cwels", // 0xd8 - "cwelt", // 0xd9 - "cwelp", // 0xda - "cwelh", // 0xdb - "cwem", // 0xdc - "cweb", // 0xdd - "cwebs", // 0xde - "cwes", // 0xdf - "cwess", // 0xe0 - "cweng", // 0xe1 - "cwej", // 0xe2 - "cwec", // 0xe3 - "cwek", // 0xe4 - "cwet", // 0xe5 - "cwep", // 0xe6 - "cweh", // 0xe7 - "cwi", // 0xe8 - "cwig", // 0xe9 - "cwigg", // 0xea - "cwigs", // 0xeb - "cwin", // 0xec - "cwinj", // 0xed - "cwinh", // 0xee - "cwid", // 0xef - "cwil", // 0xf0 - "cwilg", // 0xf1 - "cwilm", // 0xf2 - "cwilb", // 0xf3 - "cwils", // 0xf4 - "cwilt", // 0xf5 - "cwilp", // 0xf6 - "cwilh", // 0xf7 - "cwim", // 0xf8 - "cwib", // 0xf9 - "cwibs", // 0xfa - "cwis", // 0xfb - "cwiss", // 0xfc - "cwing", // 0xfd - "cwij", // 0xfe - "cwic", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0ce.go b/vendor/github.com/mozillazg/go-unidecode/table/x0ce.go deleted file mode 100644 index 9cc2132..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0ce.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0ce = []string{ - "cwik", // 0x00 - "cwit", // 0x01 - "cwip", // 0x02 - "cwih", // 0x03 - "cyu", // 0x04 - "cyug", // 0x05 - "cyugg", // 0x06 - "cyugs", // 0x07 - "cyun", // 0x08 - "cyunj", // 0x09 - "cyunh", // 0x0a - "cyud", // 0x0b - "cyul", // 0x0c - "cyulg", // 0x0d - "cyulm", // 0x0e - "cyulb", // 0x0f - "cyuls", // 0x10 - "cyult", // 0x11 - "cyulp", // 0x12 - "cyulh", // 0x13 - "cyum", // 0x14 - "cyub", // 0x15 - "cyubs", // 0x16 - "cyus", // 0x17 - "cyuss", // 0x18 - "cyung", // 0x19 - "cyuj", // 0x1a - "cyuc", // 0x1b - "cyuk", // 0x1c - "cyut", // 0x1d - "cyup", // 0x1e - "cyuh", // 0x1f - "ceu", // 0x20 - "ceug", // 0x21 - "ceugg", // 0x22 - "ceugs", // 0x23 - "ceun", // 0x24 - "ceunj", // 0x25 - "ceunh", // 0x26 - "ceud", // 0x27 - "ceul", // 0x28 - "ceulg", // 0x29 - "ceulm", // 0x2a - "ceulb", // 0x2b - "ceuls", // 0x2c - "ceult", // 0x2d - "ceulp", // 0x2e - "ceulh", // 0x2f - "ceum", // 0x30 - "ceub", // 0x31 - "ceubs", // 0x32 - "ceus", // 0x33 - "ceuss", // 0x34 - "ceung", // 0x35 - "ceuj", // 0x36 - "ceuc", // 0x37 - "ceuk", // 0x38 - "ceut", // 0x39 - "ceup", // 0x3a - "ceuh", // 0x3b - "cyi", // 0x3c - "cyig", // 0x3d - "cyigg", // 0x3e - "cyigs", // 0x3f - "cyin", // 0x40 - "cyinj", // 0x41 - "cyinh", // 0x42 - "cyid", // 0x43 - "cyil", // 0x44 - "cyilg", // 0x45 - "cyilm", // 0x46 - "cyilb", // 0x47 - "cyils", // 0x48 - "cyilt", // 0x49 - "cyilp", // 0x4a - "cyilh", // 0x4b - "cyim", // 0x4c - "cyib", // 0x4d - "cyibs", // 0x4e - "cyis", // 0x4f - "cyiss", // 0x50 - "cying", // 0x51 - "cyij", // 0x52 - "cyic", // 0x53 - "cyik", // 0x54 - "cyit", // 0x55 - "cyip", // 0x56 - "cyih", // 0x57 - "ci", // 0x58 - "cig", // 0x59 - "cigg", // 0x5a - "cigs", // 0x5b - "cin", // 0x5c - "cinj", // 0x5d - "cinh", // 0x5e - "cid", // 0x5f - "cil", // 0x60 - "cilg", // 0x61 - "cilm", // 0x62 - "cilb", // 0x63 - "cils", // 0x64 - "cilt", // 0x65 - "cilp", // 0x66 - "cilh", // 0x67 - "cim", // 0x68 - "cib", // 0x69 - "cibs", // 0x6a - "cis", // 0x6b - "ciss", // 0x6c - "cing", // 0x6d - "cij", // 0x6e - "cic", // 0x6f - "cik", // 0x70 - "cit", // 0x71 - "cip", // 0x72 - "cih", // 0x73 - "ka", // 0x74 - "kag", // 0x75 - "kagg", // 0x76 - "kags", // 0x77 - "kan", // 0x78 - "kanj", // 0x79 - "kanh", // 0x7a - "kad", // 0x7b - "kal", // 0x7c - "kalg", // 0x7d - "kalm", // 0x7e - "kalb", // 0x7f - "kals", // 0x80 - "kalt", // 0x81 - "kalp", // 0x82 - "kalh", // 0x83 - "kam", // 0x84 - "kab", // 0x85 - "kabs", // 0x86 - "kas", // 0x87 - "kass", // 0x88 - "kang", // 0x89 - "kaj", // 0x8a - "kac", // 0x8b - "kak", // 0x8c - "kat", // 0x8d - "kap", // 0x8e - "kah", // 0x8f - "kae", // 0x90 - "kaeg", // 0x91 - "kaegg", // 0x92 - "kaegs", // 0x93 - "kaen", // 0x94 - "kaenj", // 0x95 - "kaenh", // 0x96 - "kaed", // 0x97 - "kael", // 0x98 - "kaelg", // 0x99 - "kaelm", // 0x9a - "kaelb", // 0x9b - "kaels", // 0x9c - "kaelt", // 0x9d - "kaelp", // 0x9e - "kaelh", // 0x9f - "kaem", // 0xa0 - "kaeb", // 0xa1 - "kaebs", // 0xa2 - "kaes", // 0xa3 - "kaess", // 0xa4 - "kaeng", // 0xa5 - "kaej", // 0xa6 - "kaec", // 0xa7 - "kaek", // 0xa8 - "kaet", // 0xa9 - "kaep", // 0xaa - "kaeh", // 0xab - "kya", // 0xac - "kyag", // 0xad - "kyagg", // 0xae - "kyags", // 0xaf - "kyan", // 0xb0 - "kyanj", // 0xb1 - "kyanh", // 0xb2 - "kyad", // 0xb3 - "kyal", // 0xb4 - "kyalg", // 0xb5 - "kyalm", // 0xb6 - "kyalb", // 0xb7 - "kyals", // 0xb8 - "kyalt", // 0xb9 - "kyalp", // 0xba - "kyalh", // 0xbb - "kyam", // 0xbc - "kyab", // 0xbd - "kyabs", // 0xbe - "kyas", // 0xbf - "kyass", // 0xc0 - "kyang", // 0xc1 - "kyaj", // 0xc2 - "kyac", // 0xc3 - "kyak", // 0xc4 - "kyat", // 0xc5 - "kyap", // 0xc6 - "kyah", // 0xc7 - "kyae", // 0xc8 - "kyaeg", // 0xc9 - "kyaegg", // 0xca - "kyaegs", // 0xcb - "kyaen", // 0xcc - "kyaenj", // 0xcd - "kyaenh", // 0xce - "kyaed", // 0xcf - "kyael", // 0xd0 - "kyaelg", // 0xd1 - "kyaelm", // 0xd2 - "kyaelb", // 0xd3 - "kyaels", // 0xd4 - "kyaelt", // 0xd5 - "kyaelp", // 0xd6 - "kyaelh", // 0xd7 - "kyaem", // 0xd8 - "kyaeb", // 0xd9 - "kyaebs", // 0xda - "kyaes", // 0xdb - "kyaess", // 0xdc - "kyaeng", // 0xdd - "kyaej", // 0xde - "kyaec", // 0xdf - "kyaek", // 0xe0 - "kyaet", // 0xe1 - "kyaep", // 0xe2 - "kyaeh", // 0xe3 - "keo", // 0xe4 - "keog", // 0xe5 - "keogg", // 0xe6 - "keogs", // 0xe7 - "keon", // 0xe8 - "keonj", // 0xe9 - "keonh", // 0xea - "keod", // 0xeb - "keol", // 0xec - "keolg", // 0xed - "keolm", // 0xee - "keolb", // 0xef - "keols", // 0xf0 - "keolt", // 0xf1 - "keolp", // 0xf2 - "keolh", // 0xf3 - "keom", // 0xf4 - "keob", // 0xf5 - "keobs", // 0xf6 - "keos", // 0xf7 - "keoss", // 0xf8 - "keong", // 0xf9 - "keoj", // 0xfa - "keoc", // 0xfb - "keok", // 0xfc - "keot", // 0xfd - "keop", // 0xfe - "keoh", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0cf.go b/vendor/github.com/mozillazg/go-unidecode/table/x0cf.go deleted file mode 100644 index dfdfa7b..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0cf.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0cf = []string{ - "ke", // 0x00 - "keg", // 0x01 - "kegg", // 0x02 - "kegs", // 0x03 - "ken", // 0x04 - "kenj", // 0x05 - "kenh", // 0x06 - "ked", // 0x07 - "kel", // 0x08 - "kelg", // 0x09 - "kelm", // 0x0a - "kelb", // 0x0b - "kels", // 0x0c - "kelt", // 0x0d - "kelp", // 0x0e - "kelh", // 0x0f - "kem", // 0x10 - "keb", // 0x11 - "kebs", // 0x12 - "kes", // 0x13 - "kess", // 0x14 - "keng", // 0x15 - "kej", // 0x16 - "kec", // 0x17 - "kek", // 0x18 - "ket", // 0x19 - "kep", // 0x1a - "keh", // 0x1b - "kyeo", // 0x1c - "kyeog", // 0x1d - "kyeogg", // 0x1e - "kyeogs", // 0x1f - "kyeon", // 0x20 - "kyeonj", // 0x21 - "kyeonh", // 0x22 - "kyeod", // 0x23 - "kyeol", // 0x24 - "kyeolg", // 0x25 - "kyeolm", // 0x26 - "kyeolb", // 0x27 - "kyeols", // 0x28 - "kyeolt", // 0x29 - "kyeolp", // 0x2a - "kyeolh", // 0x2b - "kyeom", // 0x2c - "kyeob", // 0x2d - "kyeobs", // 0x2e - "kyeos", // 0x2f - "kyeoss", // 0x30 - "kyeong", // 0x31 - "kyeoj", // 0x32 - "kyeoc", // 0x33 - "kyeok", // 0x34 - "kyeot", // 0x35 - "kyeop", // 0x36 - "kyeoh", // 0x37 - "kye", // 0x38 - "kyeg", // 0x39 - "kyegg", // 0x3a - "kyegs", // 0x3b - "kyen", // 0x3c - "kyenj", // 0x3d - "kyenh", // 0x3e - "kyed", // 0x3f - "kyel", // 0x40 - "kyelg", // 0x41 - "kyelm", // 0x42 - "kyelb", // 0x43 - "kyels", // 0x44 - "kyelt", // 0x45 - "kyelp", // 0x46 - "kyelh", // 0x47 - "kyem", // 0x48 - "kyeb", // 0x49 - "kyebs", // 0x4a - "kyes", // 0x4b - "kyess", // 0x4c - "kyeng", // 0x4d - "kyej", // 0x4e - "kyec", // 0x4f - "kyek", // 0x50 - "kyet", // 0x51 - "kyep", // 0x52 - "kyeh", // 0x53 - "ko", // 0x54 - "kog", // 0x55 - "kogg", // 0x56 - "kogs", // 0x57 - "kon", // 0x58 - "konj", // 0x59 - "konh", // 0x5a - "kod", // 0x5b - "kol", // 0x5c - "kolg", // 0x5d - "kolm", // 0x5e - "kolb", // 0x5f - "kols", // 0x60 - "kolt", // 0x61 - "kolp", // 0x62 - "kolh", // 0x63 - "kom", // 0x64 - "kob", // 0x65 - "kobs", // 0x66 - "kos", // 0x67 - "koss", // 0x68 - "kong", // 0x69 - "koj", // 0x6a - "koc", // 0x6b - "kok", // 0x6c - "kot", // 0x6d - "kop", // 0x6e - "koh", // 0x6f - "kwa", // 0x70 - "kwag", // 0x71 - "kwagg", // 0x72 - "kwags", // 0x73 - "kwan", // 0x74 - "kwanj", // 0x75 - "kwanh", // 0x76 - "kwad", // 0x77 - "kwal", // 0x78 - "kwalg", // 0x79 - "kwalm", // 0x7a - "kwalb", // 0x7b - "kwals", // 0x7c - "kwalt", // 0x7d - "kwalp", // 0x7e - "kwalh", // 0x7f - "kwam", // 0x80 - "kwab", // 0x81 - "kwabs", // 0x82 - "kwas", // 0x83 - "kwass", // 0x84 - "kwang", // 0x85 - "kwaj", // 0x86 - "kwac", // 0x87 - "kwak", // 0x88 - "kwat", // 0x89 - "kwap", // 0x8a - "kwah", // 0x8b - "kwae", // 0x8c - "kwaeg", // 0x8d - "kwaegg", // 0x8e - "kwaegs", // 0x8f - "kwaen", // 0x90 - "kwaenj", // 0x91 - "kwaenh", // 0x92 - "kwaed", // 0x93 - "kwael", // 0x94 - "kwaelg", // 0x95 - "kwaelm", // 0x96 - "kwaelb", // 0x97 - "kwaels", // 0x98 - "kwaelt", // 0x99 - "kwaelp", // 0x9a - "kwaelh", // 0x9b - "kwaem", // 0x9c - "kwaeb", // 0x9d - "kwaebs", // 0x9e - "kwaes", // 0x9f - "kwaess", // 0xa0 - "kwaeng", // 0xa1 - "kwaej", // 0xa2 - "kwaec", // 0xa3 - "kwaek", // 0xa4 - "kwaet", // 0xa5 - "kwaep", // 0xa6 - "kwaeh", // 0xa7 - "koe", // 0xa8 - "koeg", // 0xa9 - "koegg", // 0xaa - "koegs", // 0xab - "koen", // 0xac - "koenj", // 0xad - "koenh", // 0xae - "koed", // 0xaf - "koel", // 0xb0 - "koelg", // 0xb1 - "koelm", // 0xb2 - "koelb", // 0xb3 - "koels", // 0xb4 - "koelt", // 0xb5 - "koelp", // 0xb6 - "koelh", // 0xb7 - "koem", // 0xb8 - "koeb", // 0xb9 - "koebs", // 0xba - "koes", // 0xbb - "koess", // 0xbc - "koeng", // 0xbd - "koej", // 0xbe - "koec", // 0xbf - "koek", // 0xc0 - "koet", // 0xc1 - "koep", // 0xc2 - "koeh", // 0xc3 - "kyo", // 0xc4 - "kyog", // 0xc5 - "kyogg", // 0xc6 - "kyogs", // 0xc7 - "kyon", // 0xc8 - "kyonj", // 0xc9 - "kyonh", // 0xca - "kyod", // 0xcb - "kyol", // 0xcc - "kyolg", // 0xcd - "kyolm", // 0xce - "kyolb", // 0xcf - "kyols", // 0xd0 - "kyolt", // 0xd1 - "kyolp", // 0xd2 - "kyolh", // 0xd3 - "kyom", // 0xd4 - "kyob", // 0xd5 - "kyobs", // 0xd6 - "kyos", // 0xd7 - "kyoss", // 0xd8 - "kyong", // 0xd9 - "kyoj", // 0xda - "kyoc", // 0xdb - "kyok", // 0xdc - "kyot", // 0xdd - "kyop", // 0xde - "kyoh", // 0xdf - "ku", // 0xe0 - "kug", // 0xe1 - "kugg", // 0xe2 - "kugs", // 0xe3 - "kun", // 0xe4 - "kunj", // 0xe5 - "kunh", // 0xe6 - "kud", // 0xe7 - "kul", // 0xe8 - "kulg", // 0xe9 - "kulm", // 0xea - "kulb", // 0xeb - "kuls", // 0xec - "kult", // 0xed - "kulp", // 0xee - "kulh", // 0xef - "kum", // 0xf0 - "kub", // 0xf1 - "kubs", // 0xf2 - "kus", // 0xf3 - "kuss", // 0xf4 - "kung", // 0xf5 - "kuj", // 0xf6 - "kuc", // 0xf7 - "kuk", // 0xf8 - "kut", // 0xf9 - "kup", // 0xfa - "kuh", // 0xfb - "kweo", // 0xfc - "kweog", // 0xfd - "kweogg", // 0xfe - "kweogs", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0d0.go b/vendor/github.com/mozillazg/go-unidecode/table/x0d0.go deleted file mode 100644 index 2753c6c..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0d0.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0d0 = []string{ - "kweon", // 0x00 - "kweonj", // 0x01 - "kweonh", // 0x02 - "kweod", // 0x03 - "kweol", // 0x04 - "kweolg", // 0x05 - "kweolm", // 0x06 - "kweolb", // 0x07 - "kweols", // 0x08 - "kweolt", // 0x09 - "kweolp", // 0x0a - "kweolh", // 0x0b - "kweom", // 0x0c - "kweob", // 0x0d - "kweobs", // 0x0e - "kweos", // 0x0f - "kweoss", // 0x10 - "kweong", // 0x11 - "kweoj", // 0x12 - "kweoc", // 0x13 - "kweok", // 0x14 - "kweot", // 0x15 - "kweop", // 0x16 - "kweoh", // 0x17 - "kwe", // 0x18 - "kweg", // 0x19 - "kwegg", // 0x1a - "kwegs", // 0x1b - "kwen", // 0x1c - "kwenj", // 0x1d - "kwenh", // 0x1e - "kwed", // 0x1f - "kwel", // 0x20 - "kwelg", // 0x21 - "kwelm", // 0x22 - "kwelb", // 0x23 - "kwels", // 0x24 - "kwelt", // 0x25 - "kwelp", // 0x26 - "kwelh", // 0x27 - "kwem", // 0x28 - "kweb", // 0x29 - "kwebs", // 0x2a - "kwes", // 0x2b - "kwess", // 0x2c - "kweng", // 0x2d - "kwej", // 0x2e - "kwec", // 0x2f - "kwek", // 0x30 - "kwet", // 0x31 - "kwep", // 0x32 - "kweh", // 0x33 - "kwi", // 0x34 - "kwig", // 0x35 - "kwigg", // 0x36 - "kwigs", // 0x37 - "kwin", // 0x38 - "kwinj", // 0x39 - "kwinh", // 0x3a - "kwid", // 0x3b - "kwil", // 0x3c - "kwilg", // 0x3d - "kwilm", // 0x3e - "kwilb", // 0x3f - "kwils", // 0x40 - "kwilt", // 0x41 - "kwilp", // 0x42 - "kwilh", // 0x43 - "kwim", // 0x44 - "kwib", // 0x45 - "kwibs", // 0x46 - "kwis", // 0x47 - "kwiss", // 0x48 - "kwing", // 0x49 - "kwij", // 0x4a - "kwic", // 0x4b - "kwik", // 0x4c - "kwit", // 0x4d - "kwip", // 0x4e - "kwih", // 0x4f - "kyu", // 0x50 - "kyug", // 0x51 - "kyugg", // 0x52 - "kyugs", // 0x53 - "kyun", // 0x54 - "kyunj", // 0x55 - "kyunh", // 0x56 - "kyud", // 0x57 - "kyul", // 0x58 - "kyulg", // 0x59 - "kyulm", // 0x5a - "kyulb", // 0x5b - "kyuls", // 0x5c - "kyult", // 0x5d - "kyulp", // 0x5e - "kyulh", // 0x5f - "kyum", // 0x60 - "kyub", // 0x61 - "kyubs", // 0x62 - "kyus", // 0x63 - "kyuss", // 0x64 - "kyung", // 0x65 - "kyuj", // 0x66 - "kyuc", // 0x67 - "kyuk", // 0x68 - "kyut", // 0x69 - "kyup", // 0x6a - "kyuh", // 0x6b - "keu", // 0x6c - "keug", // 0x6d - "keugg", // 0x6e - "keugs", // 0x6f - "keun", // 0x70 - "keunj", // 0x71 - "keunh", // 0x72 - "keud", // 0x73 - "keul", // 0x74 - "keulg", // 0x75 - "keulm", // 0x76 - "keulb", // 0x77 - "keuls", // 0x78 - "keult", // 0x79 - "keulp", // 0x7a - "keulh", // 0x7b - "keum", // 0x7c - "keub", // 0x7d - "keubs", // 0x7e - "keus", // 0x7f - "keuss", // 0x80 - "keung", // 0x81 - "keuj", // 0x82 - "keuc", // 0x83 - "keuk", // 0x84 - "keut", // 0x85 - "keup", // 0x86 - "keuh", // 0x87 - "kyi", // 0x88 - "kyig", // 0x89 - "kyigg", // 0x8a - "kyigs", // 0x8b - "kyin", // 0x8c - "kyinj", // 0x8d - "kyinh", // 0x8e - "kyid", // 0x8f - "kyil", // 0x90 - "kyilg", // 0x91 - "kyilm", // 0x92 - "kyilb", // 0x93 - "kyils", // 0x94 - "kyilt", // 0x95 - "kyilp", // 0x96 - "kyilh", // 0x97 - "kyim", // 0x98 - "kyib", // 0x99 - "kyibs", // 0x9a - "kyis", // 0x9b - "kyiss", // 0x9c - "kying", // 0x9d - "kyij", // 0x9e - "kyic", // 0x9f - "kyik", // 0xa0 - "kyit", // 0xa1 - "kyip", // 0xa2 - "kyih", // 0xa3 - "ki", // 0xa4 - "kig", // 0xa5 - "kigg", // 0xa6 - "kigs", // 0xa7 - "kin", // 0xa8 - "kinj", // 0xa9 - "kinh", // 0xaa - "kid", // 0xab - "kil", // 0xac - "kilg", // 0xad - "kilm", // 0xae - "kilb", // 0xaf - "kils", // 0xb0 - "kilt", // 0xb1 - "kilp", // 0xb2 - "kilh", // 0xb3 - "kim", // 0xb4 - "kib", // 0xb5 - "kibs", // 0xb6 - "kis", // 0xb7 - "kiss", // 0xb8 - "king", // 0xb9 - "kij", // 0xba - "kic", // 0xbb - "kik", // 0xbc - "kit", // 0xbd - "kip", // 0xbe - "kih", // 0xbf - "ta", // 0xc0 - "tag", // 0xc1 - "tagg", // 0xc2 - "tags", // 0xc3 - "tan", // 0xc4 - "tanj", // 0xc5 - "tanh", // 0xc6 - "tad", // 0xc7 - "tal", // 0xc8 - "talg", // 0xc9 - "talm", // 0xca - "talb", // 0xcb - "tals", // 0xcc - "talt", // 0xcd - "talp", // 0xce - "talh", // 0xcf - "tam", // 0xd0 - "tab", // 0xd1 - "tabs", // 0xd2 - "tas", // 0xd3 - "tass", // 0xd4 - "tang", // 0xd5 - "taj", // 0xd6 - "tac", // 0xd7 - "tak", // 0xd8 - "tat", // 0xd9 - "tap", // 0xda - "tah", // 0xdb - "tae", // 0xdc - "taeg", // 0xdd - "taegg", // 0xde - "taegs", // 0xdf - "taen", // 0xe0 - "taenj", // 0xe1 - "taenh", // 0xe2 - "taed", // 0xe3 - "tael", // 0xe4 - "taelg", // 0xe5 - "taelm", // 0xe6 - "taelb", // 0xe7 - "taels", // 0xe8 - "taelt", // 0xe9 - "taelp", // 0xea - "taelh", // 0xeb - "taem", // 0xec - "taeb", // 0xed - "taebs", // 0xee - "taes", // 0xef - "taess", // 0xf0 - "taeng", // 0xf1 - "taej", // 0xf2 - "taec", // 0xf3 - "taek", // 0xf4 - "taet", // 0xf5 - "taep", // 0xf6 - "taeh", // 0xf7 - "tya", // 0xf8 - "tyag", // 0xf9 - "tyagg", // 0xfa - "tyags", // 0xfb - "tyan", // 0xfc - "tyanj", // 0xfd - "tyanh", // 0xfe - "tyad", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0d1.go b/vendor/github.com/mozillazg/go-unidecode/table/x0d1.go deleted file mode 100644 index fcf28e4..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0d1.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0d1 = []string{ - "tyal", // 0x00 - "tyalg", // 0x01 - "tyalm", // 0x02 - "tyalb", // 0x03 - "tyals", // 0x04 - "tyalt", // 0x05 - "tyalp", // 0x06 - "tyalh", // 0x07 - "tyam", // 0x08 - "tyab", // 0x09 - "tyabs", // 0x0a - "tyas", // 0x0b - "tyass", // 0x0c - "tyang", // 0x0d - "tyaj", // 0x0e - "tyac", // 0x0f - "tyak", // 0x10 - "tyat", // 0x11 - "tyap", // 0x12 - "tyah", // 0x13 - "tyae", // 0x14 - "tyaeg", // 0x15 - "tyaegg", // 0x16 - "tyaegs", // 0x17 - "tyaen", // 0x18 - "tyaenj", // 0x19 - "tyaenh", // 0x1a - "tyaed", // 0x1b - "tyael", // 0x1c - "tyaelg", // 0x1d - "tyaelm", // 0x1e - "tyaelb", // 0x1f - "tyaels", // 0x20 - "tyaelt", // 0x21 - "tyaelp", // 0x22 - "tyaelh", // 0x23 - "tyaem", // 0x24 - "tyaeb", // 0x25 - "tyaebs", // 0x26 - "tyaes", // 0x27 - "tyaess", // 0x28 - "tyaeng", // 0x29 - "tyaej", // 0x2a - "tyaec", // 0x2b - "tyaek", // 0x2c - "tyaet", // 0x2d - "tyaep", // 0x2e - "tyaeh", // 0x2f - "teo", // 0x30 - "teog", // 0x31 - "teogg", // 0x32 - "teogs", // 0x33 - "teon", // 0x34 - "teonj", // 0x35 - "teonh", // 0x36 - "teod", // 0x37 - "teol", // 0x38 - "teolg", // 0x39 - "teolm", // 0x3a - "teolb", // 0x3b - "teols", // 0x3c - "teolt", // 0x3d - "teolp", // 0x3e - "teolh", // 0x3f - "teom", // 0x40 - "teob", // 0x41 - "teobs", // 0x42 - "teos", // 0x43 - "teoss", // 0x44 - "teong", // 0x45 - "teoj", // 0x46 - "teoc", // 0x47 - "teok", // 0x48 - "teot", // 0x49 - "teop", // 0x4a - "teoh", // 0x4b - "te", // 0x4c - "teg", // 0x4d - "tegg", // 0x4e - "tegs", // 0x4f - "ten", // 0x50 - "tenj", // 0x51 - "tenh", // 0x52 - "ted", // 0x53 - "tel", // 0x54 - "telg", // 0x55 - "telm", // 0x56 - "telb", // 0x57 - "tels", // 0x58 - "telt", // 0x59 - "telp", // 0x5a - "telh", // 0x5b - "tem", // 0x5c - "teb", // 0x5d - "tebs", // 0x5e - "tes", // 0x5f - "tess", // 0x60 - "teng", // 0x61 - "tej", // 0x62 - "tec", // 0x63 - "tek", // 0x64 - "tet", // 0x65 - "tep", // 0x66 - "teh", // 0x67 - "tyeo", // 0x68 - "tyeog", // 0x69 - "tyeogg", // 0x6a - "tyeogs", // 0x6b - "tyeon", // 0x6c - "tyeonj", // 0x6d - "tyeonh", // 0x6e - "tyeod", // 0x6f - "tyeol", // 0x70 - "tyeolg", // 0x71 - "tyeolm", // 0x72 - "tyeolb", // 0x73 - "tyeols", // 0x74 - "tyeolt", // 0x75 - "tyeolp", // 0x76 - "tyeolh", // 0x77 - "tyeom", // 0x78 - "tyeob", // 0x79 - "tyeobs", // 0x7a - "tyeos", // 0x7b - "tyeoss", // 0x7c - "tyeong", // 0x7d - "tyeoj", // 0x7e - "tyeoc", // 0x7f - "tyeok", // 0x80 - "tyeot", // 0x81 - "tyeop", // 0x82 - "tyeoh", // 0x83 - "tye", // 0x84 - "tyeg", // 0x85 - "tyegg", // 0x86 - "tyegs", // 0x87 - "tyen", // 0x88 - "tyenj", // 0x89 - "tyenh", // 0x8a - "tyed", // 0x8b - "tyel", // 0x8c - "tyelg", // 0x8d - "tyelm", // 0x8e - "tyelb", // 0x8f - "tyels", // 0x90 - "tyelt", // 0x91 - "tyelp", // 0x92 - "tyelh", // 0x93 - "tyem", // 0x94 - "tyeb", // 0x95 - "tyebs", // 0x96 - "tyes", // 0x97 - "tyess", // 0x98 - "tyeng", // 0x99 - "tyej", // 0x9a - "tyec", // 0x9b - "tyek", // 0x9c - "tyet", // 0x9d - "tyep", // 0x9e - "tyeh", // 0x9f - "to", // 0xa0 - "tog", // 0xa1 - "togg", // 0xa2 - "togs", // 0xa3 - "ton", // 0xa4 - "tonj", // 0xa5 - "tonh", // 0xa6 - "tod", // 0xa7 - "tol", // 0xa8 - "tolg", // 0xa9 - "tolm", // 0xaa - "tolb", // 0xab - "tols", // 0xac - "tolt", // 0xad - "tolp", // 0xae - "tolh", // 0xaf - "tom", // 0xb0 - "tob", // 0xb1 - "tobs", // 0xb2 - "tos", // 0xb3 - "toss", // 0xb4 - "tong", // 0xb5 - "toj", // 0xb6 - "toc", // 0xb7 - "tok", // 0xb8 - "tot", // 0xb9 - "top", // 0xba - "toh", // 0xbb - "twa", // 0xbc - "twag", // 0xbd - "twagg", // 0xbe - "twags", // 0xbf - "twan", // 0xc0 - "twanj", // 0xc1 - "twanh", // 0xc2 - "twad", // 0xc3 - "twal", // 0xc4 - "twalg", // 0xc5 - "twalm", // 0xc6 - "twalb", // 0xc7 - "twals", // 0xc8 - "twalt", // 0xc9 - "twalp", // 0xca - "twalh", // 0xcb - "twam", // 0xcc - "twab", // 0xcd - "twabs", // 0xce - "twas", // 0xcf - "twass", // 0xd0 - "twang", // 0xd1 - "twaj", // 0xd2 - "twac", // 0xd3 - "twak", // 0xd4 - "twat", // 0xd5 - "twap", // 0xd6 - "twah", // 0xd7 - "twae", // 0xd8 - "twaeg", // 0xd9 - "twaegg", // 0xda - "twaegs", // 0xdb - "twaen", // 0xdc - "twaenj", // 0xdd - "twaenh", // 0xde - "twaed", // 0xdf - "twael", // 0xe0 - "twaelg", // 0xe1 - "twaelm", // 0xe2 - "twaelb", // 0xe3 - "twaels", // 0xe4 - "twaelt", // 0xe5 - "twaelp", // 0xe6 - "twaelh", // 0xe7 - "twaem", // 0xe8 - "twaeb", // 0xe9 - "twaebs", // 0xea - "twaes", // 0xeb - "twaess", // 0xec - "twaeng", // 0xed - "twaej", // 0xee - "twaec", // 0xef - "twaek", // 0xf0 - "twaet", // 0xf1 - "twaep", // 0xf2 - "twaeh", // 0xf3 - "toe", // 0xf4 - "toeg", // 0xf5 - "toegg", // 0xf6 - "toegs", // 0xf7 - "toen", // 0xf8 - "toenj", // 0xf9 - "toenh", // 0xfa - "toed", // 0xfb - "toel", // 0xfc - "toelg", // 0xfd - "toelm", // 0xfe - "toelb", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0d2.go b/vendor/github.com/mozillazg/go-unidecode/table/x0d2.go deleted file mode 100644 index 6530797..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0d2.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0d2 = []string{ - "toels", // 0x00 - "toelt", // 0x01 - "toelp", // 0x02 - "toelh", // 0x03 - "toem", // 0x04 - "toeb", // 0x05 - "toebs", // 0x06 - "toes", // 0x07 - "toess", // 0x08 - "toeng", // 0x09 - "toej", // 0x0a - "toec", // 0x0b - "toek", // 0x0c - "toet", // 0x0d - "toep", // 0x0e - "toeh", // 0x0f - "tyo", // 0x10 - "tyog", // 0x11 - "tyogg", // 0x12 - "tyogs", // 0x13 - "tyon", // 0x14 - "tyonj", // 0x15 - "tyonh", // 0x16 - "tyod", // 0x17 - "tyol", // 0x18 - "tyolg", // 0x19 - "tyolm", // 0x1a - "tyolb", // 0x1b - "tyols", // 0x1c - "tyolt", // 0x1d - "tyolp", // 0x1e - "tyolh", // 0x1f - "tyom", // 0x20 - "tyob", // 0x21 - "tyobs", // 0x22 - "tyos", // 0x23 - "tyoss", // 0x24 - "tyong", // 0x25 - "tyoj", // 0x26 - "tyoc", // 0x27 - "tyok", // 0x28 - "tyot", // 0x29 - "tyop", // 0x2a - "tyoh", // 0x2b - "tu", // 0x2c - "tug", // 0x2d - "tugg", // 0x2e - "tugs", // 0x2f - "tun", // 0x30 - "tunj", // 0x31 - "tunh", // 0x32 - "tud", // 0x33 - "tul", // 0x34 - "tulg", // 0x35 - "tulm", // 0x36 - "tulb", // 0x37 - "tuls", // 0x38 - "tult", // 0x39 - "tulp", // 0x3a - "tulh", // 0x3b - "tum", // 0x3c - "tub", // 0x3d - "tubs", // 0x3e - "tus", // 0x3f - "tuss", // 0x40 - "tung", // 0x41 - "tuj", // 0x42 - "tuc", // 0x43 - "tuk", // 0x44 - "tut", // 0x45 - "tup", // 0x46 - "tuh", // 0x47 - "tweo", // 0x48 - "tweog", // 0x49 - "tweogg", // 0x4a - "tweogs", // 0x4b - "tweon", // 0x4c - "tweonj", // 0x4d - "tweonh", // 0x4e - "tweod", // 0x4f - "tweol", // 0x50 - "tweolg", // 0x51 - "tweolm", // 0x52 - "tweolb", // 0x53 - "tweols", // 0x54 - "tweolt", // 0x55 - "tweolp", // 0x56 - "tweolh", // 0x57 - "tweom", // 0x58 - "tweob", // 0x59 - "tweobs", // 0x5a - "tweos", // 0x5b - "tweoss", // 0x5c - "tweong", // 0x5d - "tweoj", // 0x5e - "tweoc", // 0x5f - "tweok", // 0x60 - "tweot", // 0x61 - "tweop", // 0x62 - "tweoh", // 0x63 - "twe", // 0x64 - "tweg", // 0x65 - "twegg", // 0x66 - "twegs", // 0x67 - "twen", // 0x68 - "twenj", // 0x69 - "twenh", // 0x6a - "twed", // 0x6b - "twel", // 0x6c - "twelg", // 0x6d - "twelm", // 0x6e - "twelb", // 0x6f - "twels", // 0x70 - "twelt", // 0x71 - "twelp", // 0x72 - "twelh", // 0x73 - "twem", // 0x74 - "tweb", // 0x75 - "twebs", // 0x76 - "twes", // 0x77 - "twess", // 0x78 - "tweng", // 0x79 - "twej", // 0x7a - "twec", // 0x7b - "twek", // 0x7c - "twet", // 0x7d - "twep", // 0x7e - "tweh", // 0x7f - "twi", // 0x80 - "twig", // 0x81 - "twigg", // 0x82 - "twigs", // 0x83 - "twin", // 0x84 - "twinj", // 0x85 - "twinh", // 0x86 - "twid", // 0x87 - "twil", // 0x88 - "twilg", // 0x89 - "twilm", // 0x8a - "twilb", // 0x8b - "twils", // 0x8c - "twilt", // 0x8d - "twilp", // 0x8e - "twilh", // 0x8f - "twim", // 0x90 - "twib", // 0x91 - "twibs", // 0x92 - "twis", // 0x93 - "twiss", // 0x94 - "twing", // 0x95 - "twij", // 0x96 - "twic", // 0x97 - "twik", // 0x98 - "twit", // 0x99 - "twip", // 0x9a - "twih", // 0x9b - "tyu", // 0x9c - "tyug", // 0x9d - "tyugg", // 0x9e - "tyugs", // 0x9f - "tyun", // 0xa0 - "tyunj", // 0xa1 - "tyunh", // 0xa2 - "tyud", // 0xa3 - "tyul", // 0xa4 - "tyulg", // 0xa5 - "tyulm", // 0xa6 - "tyulb", // 0xa7 - "tyuls", // 0xa8 - "tyult", // 0xa9 - "tyulp", // 0xaa - "tyulh", // 0xab - "tyum", // 0xac - "tyub", // 0xad - "tyubs", // 0xae - "tyus", // 0xaf - "tyuss", // 0xb0 - "tyung", // 0xb1 - "tyuj", // 0xb2 - "tyuc", // 0xb3 - "tyuk", // 0xb4 - "tyut", // 0xb5 - "tyup", // 0xb6 - "tyuh", // 0xb7 - "teu", // 0xb8 - "teug", // 0xb9 - "teugg", // 0xba - "teugs", // 0xbb - "teun", // 0xbc - "teunj", // 0xbd - "teunh", // 0xbe - "teud", // 0xbf - "teul", // 0xc0 - "teulg", // 0xc1 - "teulm", // 0xc2 - "teulb", // 0xc3 - "teuls", // 0xc4 - "teult", // 0xc5 - "teulp", // 0xc6 - "teulh", // 0xc7 - "teum", // 0xc8 - "teub", // 0xc9 - "teubs", // 0xca - "teus", // 0xcb - "teuss", // 0xcc - "teung", // 0xcd - "teuj", // 0xce - "teuc", // 0xcf - "teuk", // 0xd0 - "teut", // 0xd1 - "teup", // 0xd2 - "teuh", // 0xd3 - "tyi", // 0xd4 - "tyig", // 0xd5 - "tyigg", // 0xd6 - "tyigs", // 0xd7 - "tyin", // 0xd8 - "tyinj", // 0xd9 - "tyinh", // 0xda - "tyid", // 0xdb - "tyil", // 0xdc - "tyilg", // 0xdd - "tyilm", // 0xde - "tyilb", // 0xdf - "tyils", // 0xe0 - "tyilt", // 0xe1 - "tyilp", // 0xe2 - "tyilh", // 0xe3 - "tyim", // 0xe4 - "tyib", // 0xe5 - "tyibs", // 0xe6 - "tyis", // 0xe7 - "tyiss", // 0xe8 - "tying", // 0xe9 - "tyij", // 0xea - "tyic", // 0xeb - "tyik", // 0xec - "tyit", // 0xed - "tyip", // 0xee - "tyih", // 0xef - "ti", // 0xf0 - "tig", // 0xf1 - "tigg", // 0xf2 - "tigs", // 0xf3 - "tin", // 0xf4 - "tinj", // 0xf5 - "tinh", // 0xf6 - "tid", // 0xf7 - "til", // 0xf8 - "tilg", // 0xf9 - "tilm", // 0xfa - "tilb", // 0xfb - "tils", // 0xfc - "tilt", // 0xfd - "tilp", // 0xfe - "tilh", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0d3.go b/vendor/github.com/mozillazg/go-unidecode/table/x0d3.go deleted file mode 100644 index a29fbd5..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0d3.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0d3 = []string{ - "tim", // 0x00 - "tib", // 0x01 - "tibs", // 0x02 - "tis", // 0x03 - "tiss", // 0x04 - "ting", // 0x05 - "tij", // 0x06 - "tic", // 0x07 - "tik", // 0x08 - "tit", // 0x09 - "tip", // 0x0a - "tih", // 0x0b - "pa", // 0x0c - "pag", // 0x0d - "pagg", // 0x0e - "pags", // 0x0f - "pan", // 0x10 - "panj", // 0x11 - "panh", // 0x12 - "pad", // 0x13 - "pal", // 0x14 - "palg", // 0x15 - "palm", // 0x16 - "palb", // 0x17 - "pals", // 0x18 - "palt", // 0x19 - "palp", // 0x1a - "palh", // 0x1b - "pam", // 0x1c - "pab", // 0x1d - "pabs", // 0x1e - "pas", // 0x1f - "pass", // 0x20 - "pang", // 0x21 - "paj", // 0x22 - "pac", // 0x23 - "pak", // 0x24 - "pat", // 0x25 - "pap", // 0x26 - "pah", // 0x27 - "pae", // 0x28 - "paeg", // 0x29 - "paegg", // 0x2a - "paegs", // 0x2b - "paen", // 0x2c - "paenj", // 0x2d - "paenh", // 0x2e - "paed", // 0x2f - "pael", // 0x30 - "paelg", // 0x31 - "paelm", // 0x32 - "paelb", // 0x33 - "paels", // 0x34 - "paelt", // 0x35 - "paelp", // 0x36 - "paelh", // 0x37 - "paem", // 0x38 - "paeb", // 0x39 - "paebs", // 0x3a - "paes", // 0x3b - "paess", // 0x3c - "paeng", // 0x3d - "paej", // 0x3e - "paec", // 0x3f - "paek", // 0x40 - "paet", // 0x41 - "paep", // 0x42 - "paeh", // 0x43 - "pya", // 0x44 - "pyag", // 0x45 - "pyagg", // 0x46 - "pyags", // 0x47 - "pyan", // 0x48 - "pyanj", // 0x49 - "pyanh", // 0x4a - "pyad", // 0x4b - "pyal", // 0x4c - "pyalg", // 0x4d - "pyalm", // 0x4e - "pyalb", // 0x4f - "pyals", // 0x50 - "pyalt", // 0x51 - "pyalp", // 0x52 - "pyalh", // 0x53 - "pyam", // 0x54 - "pyab", // 0x55 - "pyabs", // 0x56 - "pyas", // 0x57 - "pyass", // 0x58 - "pyang", // 0x59 - "pyaj", // 0x5a - "pyac", // 0x5b - "pyak", // 0x5c - "pyat", // 0x5d - "pyap", // 0x5e - "pyah", // 0x5f - "pyae", // 0x60 - "pyaeg", // 0x61 - "pyaegg", // 0x62 - "pyaegs", // 0x63 - "pyaen", // 0x64 - "pyaenj", // 0x65 - "pyaenh", // 0x66 - "pyaed", // 0x67 - "pyael", // 0x68 - "pyaelg", // 0x69 - "pyaelm", // 0x6a - "pyaelb", // 0x6b - "pyaels", // 0x6c - "pyaelt", // 0x6d - "pyaelp", // 0x6e - "pyaelh", // 0x6f - "pyaem", // 0x70 - "pyaeb", // 0x71 - "pyaebs", // 0x72 - "pyaes", // 0x73 - "pyaess", // 0x74 - "pyaeng", // 0x75 - "pyaej", // 0x76 - "pyaec", // 0x77 - "pyaek", // 0x78 - "pyaet", // 0x79 - "pyaep", // 0x7a - "pyaeh", // 0x7b - "peo", // 0x7c - "peog", // 0x7d - "peogg", // 0x7e - "peogs", // 0x7f - "peon", // 0x80 - "peonj", // 0x81 - "peonh", // 0x82 - "peod", // 0x83 - "peol", // 0x84 - "peolg", // 0x85 - "peolm", // 0x86 - "peolb", // 0x87 - "peols", // 0x88 - "peolt", // 0x89 - "peolp", // 0x8a - "peolh", // 0x8b - "peom", // 0x8c - "peob", // 0x8d - "peobs", // 0x8e - "peos", // 0x8f - "peoss", // 0x90 - "peong", // 0x91 - "peoj", // 0x92 - "peoc", // 0x93 - "peok", // 0x94 - "peot", // 0x95 - "peop", // 0x96 - "peoh", // 0x97 - "pe", // 0x98 - "peg", // 0x99 - "pegg", // 0x9a - "pegs", // 0x9b - "pen", // 0x9c - "penj", // 0x9d - "penh", // 0x9e - "ped", // 0x9f - "pel", // 0xa0 - "pelg", // 0xa1 - "pelm", // 0xa2 - "pelb", // 0xa3 - "pels", // 0xa4 - "pelt", // 0xa5 - "pelp", // 0xa6 - "pelh", // 0xa7 - "pem", // 0xa8 - "peb", // 0xa9 - "pebs", // 0xaa - "pes", // 0xab - "pess", // 0xac - "peng", // 0xad - "pej", // 0xae - "pec", // 0xaf - "pek", // 0xb0 - "pet", // 0xb1 - "pep", // 0xb2 - "peh", // 0xb3 - "pyeo", // 0xb4 - "pyeog", // 0xb5 - "pyeogg", // 0xb6 - "pyeogs", // 0xb7 - "pyeon", // 0xb8 - "pyeonj", // 0xb9 - "pyeonh", // 0xba - "pyeod", // 0xbb - "pyeol", // 0xbc - "pyeolg", // 0xbd - "pyeolm", // 0xbe - "pyeolb", // 0xbf - "pyeols", // 0xc0 - "pyeolt", // 0xc1 - "pyeolp", // 0xc2 - "pyeolh", // 0xc3 - "pyeom", // 0xc4 - "pyeob", // 0xc5 - "pyeobs", // 0xc6 - "pyeos", // 0xc7 - "pyeoss", // 0xc8 - "pyeong", // 0xc9 - "pyeoj", // 0xca - "pyeoc", // 0xcb - "pyeok", // 0xcc - "pyeot", // 0xcd - "pyeop", // 0xce - "pyeoh", // 0xcf - "pye", // 0xd0 - "pyeg", // 0xd1 - "pyegg", // 0xd2 - "pyegs", // 0xd3 - "pyen", // 0xd4 - "pyenj", // 0xd5 - "pyenh", // 0xd6 - "pyed", // 0xd7 - "pyel", // 0xd8 - "pyelg", // 0xd9 - "pyelm", // 0xda - "pyelb", // 0xdb - "pyels", // 0xdc - "pyelt", // 0xdd - "pyelp", // 0xde - "pyelh", // 0xdf - "pyem", // 0xe0 - "pyeb", // 0xe1 - "pyebs", // 0xe2 - "pyes", // 0xe3 - "pyess", // 0xe4 - "pyeng", // 0xe5 - "pyej", // 0xe6 - "pyec", // 0xe7 - "pyek", // 0xe8 - "pyet", // 0xe9 - "pyep", // 0xea - "pyeh", // 0xeb - "po", // 0xec - "pog", // 0xed - "pogg", // 0xee - "pogs", // 0xef - "pon", // 0xf0 - "ponj", // 0xf1 - "ponh", // 0xf2 - "pod", // 0xf3 - "pol", // 0xf4 - "polg", // 0xf5 - "polm", // 0xf6 - "polb", // 0xf7 - "pols", // 0xf8 - "polt", // 0xf9 - "polp", // 0xfa - "polh", // 0xfb - "pom", // 0xfc - "pob", // 0xfd - "pobs", // 0xfe - "pos", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0d4.go b/vendor/github.com/mozillazg/go-unidecode/table/x0d4.go deleted file mode 100644 index acd11ff..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0d4.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0d4 = []string{ - "poss", // 0x00 - "pong", // 0x01 - "poj", // 0x02 - "poc", // 0x03 - "pok", // 0x04 - "pot", // 0x05 - "pop", // 0x06 - "poh", // 0x07 - "pwa", // 0x08 - "pwag", // 0x09 - "pwagg", // 0x0a - "pwags", // 0x0b - "pwan", // 0x0c - "pwanj", // 0x0d - "pwanh", // 0x0e - "pwad", // 0x0f - "pwal", // 0x10 - "pwalg", // 0x11 - "pwalm", // 0x12 - "pwalb", // 0x13 - "pwals", // 0x14 - "pwalt", // 0x15 - "pwalp", // 0x16 - "pwalh", // 0x17 - "pwam", // 0x18 - "pwab", // 0x19 - "pwabs", // 0x1a - "pwas", // 0x1b - "pwass", // 0x1c - "pwang", // 0x1d - "pwaj", // 0x1e - "pwac", // 0x1f - "pwak", // 0x20 - "pwat", // 0x21 - "pwap", // 0x22 - "pwah", // 0x23 - "pwae", // 0x24 - "pwaeg", // 0x25 - "pwaegg", // 0x26 - "pwaegs", // 0x27 - "pwaen", // 0x28 - "pwaenj", // 0x29 - "pwaenh", // 0x2a - "pwaed", // 0x2b - "pwael", // 0x2c - "pwaelg", // 0x2d - "pwaelm", // 0x2e - "pwaelb", // 0x2f - "pwaels", // 0x30 - "pwaelt", // 0x31 - "pwaelp", // 0x32 - "pwaelh", // 0x33 - "pwaem", // 0x34 - "pwaeb", // 0x35 - "pwaebs", // 0x36 - "pwaes", // 0x37 - "pwaess", // 0x38 - "pwaeng", // 0x39 - "pwaej", // 0x3a - "pwaec", // 0x3b - "pwaek", // 0x3c - "pwaet", // 0x3d - "pwaep", // 0x3e - "pwaeh", // 0x3f - "poe", // 0x40 - "poeg", // 0x41 - "poegg", // 0x42 - "poegs", // 0x43 - "poen", // 0x44 - "poenj", // 0x45 - "poenh", // 0x46 - "poed", // 0x47 - "poel", // 0x48 - "poelg", // 0x49 - "poelm", // 0x4a - "poelb", // 0x4b - "poels", // 0x4c - "poelt", // 0x4d - "poelp", // 0x4e - "poelh", // 0x4f - "poem", // 0x50 - "poeb", // 0x51 - "poebs", // 0x52 - "poes", // 0x53 - "poess", // 0x54 - "poeng", // 0x55 - "poej", // 0x56 - "poec", // 0x57 - "poek", // 0x58 - "poet", // 0x59 - "poep", // 0x5a - "poeh", // 0x5b - "pyo", // 0x5c - "pyog", // 0x5d - "pyogg", // 0x5e - "pyogs", // 0x5f - "pyon", // 0x60 - "pyonj", // 0x61 - "pyonh", // 0x62 - "pyod", // 0x63 - "pyol", // 0x64 - "pyolg", // 0x65 - "pyolm", // 0x66 - "pyolb", // 0x67 - "pyols", // 0x68 - "pyolt", // 0x69 - "pyolp", // 0x6a - "pyolh", // 0x6b - "pyom", // 0x6c - "pyob", // 0x6d - "pyobs", // 0x6e - "pyos", // 0x6f - "pyoss", // 0x70 - "pyong", // 0x71 - "pyoj", // 0x72 - "pyoc", // 0x73 - "pyok", // 0x74 - "pyot", // 0x75 - "pyop", // 0x76 - "pyoh", // 0x77 - "pu", // 0x78 - "pug", // 0x79 - "pugg", // 0x7a - "pugs", // 0x7b - "pun", // 0x7c - "punj", // 0x7d - "punh", // 0x7e - "pud", // 0x7f - "pul", // 0x80 - "pulg", // 0x81 - "pulm", // 0x82 - "pulb", // 0x83 - "puls", // 0x84 - "pult", // 0x85 - "pulp", // 0x86 - "pulh", // 0x87 - "pum", // 0x88 - "pub", // 0x89 - "pubs", // 0x8a - "pus", // 0x8b - "puss", // 0x8c - "pung", // 0x8d - "puj", // 0x8e - "puc", // 0x8f - "puk", // 0x90 - "put", // 0x91 - "pup", // 0x92 - "puh", // 0x93 - "pweo", // 0x94 - "pweog", // 0x95 - "pweogg", // 0x96 - "pweogs", // 0x97 - "pweon", // 0x98 - "pweonj", // 0x99 - "pweonh", // 0x9a - "pweod", // 0x9b - "pweol", // 0x9c - "pweolg", // 0x9d - "pweolm", // 0x9e - "pweolb", // 0x9f - "pweols", // 0xa0 - "pweolt", // 0xa1 - "pweolp", // 0xa2 - "pweolh", // 0xa3 - "pweom", // 0xa4 - "pweob", // 0xa5 - "pweobs", // 0xa6 - "pweos", // 0xa7 - "pweoss", // 0xa8 - "pweong", // 0xa9 - "pweoj", // 0xaa - "pweoc", // 0xab - "pweok", // 0xac - "pweot", // 0xad - "pweop", // 0xae - "pweoh", // 0xaf - "pwe", // 0xb0 - "pweg", // 0xb1 - "pwegg", // 0xb2 - "pwegs", // 0xb3 - "pwen", // 0xb4 - "pwenj", // 0xb5 - "pwenh", // 0xb6 - "pwed", // 0xb7 - "pwel", // 0xb8 - "pwelg", // 0xb9 - "pwelm", // 0xba - "pwelb", // 0xbb - "pwels", // 0xbc - "pwelt", // 0xbd - "pwelp", // 0xbe - "pwelh", // 0xbf - "pwem", // 0xc0 - "pweb", // 0xc1 - "pwebs", // 0xc2 - "pwes", // 0xc3 - "pwess", // 0xc4 - "pweng", // 0xc5 - "pwej", // 0xc6 - "pwec", // 0xc7 - "pwek", // 0xc8 - "pwet", // 0xc9 - "pwep", // 0xca - "pweh", // 0xcb - "pwi", // 0xcc - "pwig", // 0xcd - "pwigg", // 0xce - "pwigs", // 0xcf - "pwin", // 0xd0 - "pwinj", // 0xd1 - "pwinh", // 0xd2 - "pwid", // 0xd3 - "pwil", // 0xd4 - "pwilg", // 0xd5 - "pwilm", // 0xd6 - "pwilb", // 0xd7 - "pwils", // 0xd8 - "pwilt", // 0xd9 - "pwilp", // 0xda - "pwilh", // 0xdb - "pwim", // 0xdc - "pwib", // 0xdd - "pwibs", // 0xde - "pwis", // 0xdf - "pwiss", // 0xe0 - "pwing", // 0xe1 - "pwij", // 0xe2 - "pwic", // 0xe3 - "pwik", // 0xe4 - "pwit", // 0xe5 - "pwip", // 0xe6 - "pwih", // 0xe7 - "pyu", // 0xe8 - "pyug", // 0xe9 - "pyugg", // 0xea - "pyugs", // 0xeb - "pyun", // 0xec - "pyunj", // 0xed - "pyunh", // 0xee - "pyud", // 0xef - "pyul", // 0xf0 - "pyulg", // 0xf1 - "pyulm", // 0xf2 - "pyulb", // 0xf3 - "pyuls", // 0xf4 - "pyult", // 0xf5 - "pyulp", // 0xf6 - "pyulh", // 0xf7 - "pyum", // 0xf8 - "pyub", // 0xf9 - "pyubs", // 0xfa - "pyus", // 0xfb - "pyuss", // 0xfc - "pyung", // 0xfd - "pyuj", // 0xfe - "pyuc", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0d5.go b/vendor/github.com/mozillazg/go-unidecode/table/x0d5.go deleted file mode 100644 index 654bafa..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0d5.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0d5 = []string{ - "pyuk", // 0x00 - "pyut", // 0x01 - "pyup", // 0x02 - "pyuh", // 0x03 - "peu", // 0x04 - "peug", // 0x05 - "peugg", // 0x06 - "peugs", // 0x07 - "peun", // 0x08 - "peunj", // 0x09 - "peunh", // 0x0a - "peud", // 0x0b - "peul", // 0x0c - "peulg", // 0x0d - "peulm", // 0x0e - "peulb", // 0x0f - "peuls", // 0x10 - "peult", // 0x11 - "peulp", // 0x12 - "peulh", // 0x13 - "peum", // 0x14 - "peub", // 0x15 - "peubs", // 0x16 - "peus", // 0x17 - "peuss", // 0x18 - "peung", // 0x19 - "peuj", // 0x1a - "peuc", // 0x1b - "peuk", // 0x1c - "peut", // 0x1d - "peup", // 0x1e - "peuh", // 0x1f - "pyi", // 0x20 - "pyig", // 0x21 - "pyigg", // 0x22 - "pyigs", // 0x23 - "pyin", // 0x24 - "pyinj", // 0x25 - "pyinh", // 0x26 - "pyid", // 0x27 - "pyil", // 0x28 - "pyilg", // 0x29 - "pyilm", // 0x2a - "pyilb", // 0x2b - "pyils", // 0x2c - "pyilt", // 0x2d - "pyilp", // 0x2e - "pyilh", // 0x2f - "pyim", // 0x30 - "pyib", // 0x31 - "pyibs", // 0x32 - "pyis", // 0x33 - "pyiss", // 0x34 - "pying", // 0x35 - "pyij", // 0x36 - "pyic", // 0x37 - "pyik", // 0x38 - "pyit", // 0x39 - "pyip", // 0x3a - "pyih", // 0x3b - "pi", // 0x3c - "pig", // 0x3d - "pigg", // 0x3e - "pigs", // 0x3f - "pin", // 0x40 - "pinj", // 0x41 - "pinh", // 0x42 - "pid", // 0x43 - "pil", // 0x44 - "pilg", // 0x45 - "pilm", // 0x46 - "pilb", // 0x47 - "pils", // 0x48 - "pilt", // 0x49 - "pilp", // 0x4a - "pilh", // 0x4b - "pim", // 0x4c - "pib", // 0x4d - "pibs", // 0x4e - "pis", // 0x4f - "piss", // 0x50 - "ping", // 0x51 - "pij", // 0x52 - "pic", // 0x53 - "pik", // 0x54 - "pit", // 0x55 - "pip", // 0x56 - "pih", // 0x57 - "ha", // 0x58 - "hag", // 0x59 - "hagg", // 0x5a - "hags", // 0x5b - "han", // 0x5c - "hanj", // 0x5d - "hanh", // 0x5e - "had", // 0x5f - "hal", // 0x60 - "halg", // 0x61 - "halm", // 0x62 - "halb", // 0x63 - "hals", // 0x64 - "halt", // 0x65 - "halp", // 0x66 - "halh", // 0x67 - "ham", // 0x68 - "hab", // 0x69 - "habs", // 0x6a - "has", // 0x6b - "hass", // 0x6c - "hang", // 0x6d - "haj", // 0x6e - "hac", // 0x6f - "hak", // 0x70 - "hat", // 0x71 - "hap", // 0x72 - "hah", // 0x73 - "hae", // 0x74 - "haeg", // 0x75 - "haegg", // 0x76 - "haegs", // 0x77 - "haen", // 0x78 - "haenj", // 0x79 - "haenh", // 0x7a - "haed", // 0x7b - "hael", // 0x7c - "haelg", // 0x7d - "haelm", // 0x7e - "haelb", // 0x7f - "haels", // 0x80 - "haelt", // 0x81 - "haelp", // 0x82 - "haelh", // 0x83 - "haem", // 0x84 - "haeb", // 0x85 - "haebs", // 0x86 - "haes", // 0x87 - "haess", // 0x88 - "haeng", // 0x89 - "haej", // 0x8a - "haec", // 0x8b - "haek", // 0x8c - "haet", // 0x8d - "haep", // 0x8e - "haeh", // 0x8f - "hya", // 0x90 - "hyag", // 0x91 - "hyagg", // 0x92 - "hyags", // 0x93 - "hyan", // 0x94 - "hyanj", // 0x95 - "hyanh", // 0x96 - "hyad", // 0x97 - "hyal", // 0x98 - "hyalg", // 0x99 - "hyalm", // 0x9a - "hyalb", // 0x9b - "hyals", // 0x9c - "hyalt", // 0x9d - "hyalp", // 0x9e - "hyalh", // 0x9f - "hyam", // 0xa0 - "hyab", // 0xa1 - "hyabs", // 0xa2 - "hyas", // 0xa3 - "hyass", // 0xa4 - "hyang", // 0xa5 - "hyaj", // 0xa6 - "hyac", // 0xa7 - "hyak", // 0xa8 - "hyat", // 0xa9 - "hyap", // 0xaa - "hyah", // 0xab - "hyae", // 0xac - "hyaeg", // 0xad - "hyaegg", // 0xae - "hyaegs", // 0xaf - "hyaen", // 0xb0 - "hyaenj", // 0xb1 - "hyaenh", // 0xb2 - "hyaed", // 0xb3 - "hyael", // 0xb4 - "hyaelg", // 0xb5 - "hyaelm", // 0xb6 - "hyaelb", // 0xb7 - "hyaels", // 0xb8 - "hyaelt", // 0xb9 - "hyaelp", // 0xba - "hyaelh", // 0xbb - "hyaem", // 0xbc - "hyaeb", // 0xbd - "hyaebs", // 0xbe - "hyaes", // 0xbf - "hyaess", // 0xc0 - "hyaeng", // 0xc1 - "hyaej", // 0xc2 - "hyaec", // 0xc3 - "hyaek", // 0xc4 - "hyaet", // 0xc5 - "hyaep", // 0xc6 - "hyaeh", // 0xc7 - "heo", // 0xc8 - "heog", // 0xc9 - "heogg", // 0xca - "heogs", // 0xcb - "heon", // 0xcc - "heonj", // 0xcd - "heonh", // 0xce - "heod", // 0xcf - "heol", // 0xd0 - "heolg", // 0xd1 - "heolm", // 0xd2 - "heolb", // 0xd3 - "heols", // 0xd4 - "heolt", // 0xd5 - "heolp", // 0xd6 - "heolh", // 0xd7 - "heom", // 0xd8 - "heob", // 0xd9 - "heobs", // 0xda - "heos", // 0xdb - "heoss", // 0xdc - "heong", // 0xdd - "heoj", // 0xde - "heoc", // 0xdf - "heok", // 0xe0 - "heot", // 0xe1 - "heop", // 0xe2 - "heoh", // 0xe3 - "he", // 0xe4 - "heg", // 0xe5 - "hegg", // 0xe6 - "hegs", // 0xe7 - "hen", // 0xe8 - "henj", // 0xe9 - "henh", // 0xea - "hed", // 0xeb - "hel", // 0xec - "helg", // 0xed - "helm", // 0xee - "helb", // 0xef - "hels", // 0xf0 - "helt", // 0xf1 - "help", // 0xf2 - "helh", // 0xf3 - "hem", // 0xf4 - "heb", // 0xf5 - "hebs", // 0xf6 - "hes", // 0xf7 - "hess", // 0xf8 - "heng", // 0xf9 - "hej", // 0xfa - "hec", // 0xfb - "hek", // 0xfc - "het", // 0xfd - "hep", // 0xfe - "heh", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0d6.go b/vendor/github.com/mozillazg/go-unidecode/table/x0d6.go deleted file mode 100644 index 8f4676b..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0d6.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0d6 = []string{ - "hyeo", // 0x00 - "hyeog", // 0x01 - "hyeogg", // 0x02 - "hyeogs", // 0x03 - "hyeon", // 0x04 - "hyeonj", // 0x05 - "hyeonh", // 0x06 - "hyeod", // 0x07 - "hyeol", // 0x08 - "hyeolg", // 0x09 - "hyeolm", // 0x0a - "hyeolb", // 0x0b - "hyeols", // 0x0c - "hyeolt", // 0x0d - "hyeolp", // 0x0e - "hyeolh", // 0x0f - "hyeom", // 0x10 - "hyeob", // 0x11 - "hyeobs", // 0x12 - "hyeos", // 0x13 - "hyeoss", // 0x14 - "hyeong", // 0x15 - "hyeoj", // 0x16 - "hyeoc", // 0x17 - "hyeok", // 0x18 - "hyeot", // 0x19 - "hyeop", // 0x1a - "hyeoh", // 0x1b - "hye", // 0x1c - "hyeg", // 0x1d - "hyegg", // 0x1e - "hyegs", // 0x1f - "hyen", // 0x20 - "hyenj", // 0x21 - "hyenh", // 0x22 - "hyed", // 0x23 - "hyel", // 0x24 - "hyelg", // 0x25 - "hyelm", // 0x26 - "hyelb", // 0x27 - "hyels", // 0x28 - "hyelt", // 0x29 - "hyelp", // 0x2a - "hyelh", // 0x2b - "hyem", // 0x2c - "hyeb", // 0x2d - "hyebs", // 0x2e - "hyes", // 0x2f - "hyess", // 0x30 - "hyeng", // 0x31 - "hyej", // 0x32 - "hyec", // 0x33 - "hyek", // 0x34 - "hyet", // 0x35 - "hyep", // 0x36 - "hyeh", // 0x37 - "ho", // 0x38 - "hog", // 0x39 - "hogg", // 0x3a - "hogs", // 0x3b - "hon", // 0x3c - "honj", // 0x3d - "honh", // 0x3e - "hod", // 0x3f - "hol", // 0x40 - "holg", // 0x41 - "holm", // 0x42 - "holb", // 0x43 - "hols", // 0x44 - "holt", // 0x45 - "holp", // 0x46 - "holh", // 0x47 - "hom", // 0x48 - "hob", // 0x49 - "hobs", // 0x4a - "hos", // 0x4b - "hoss", // 0x4c - "hong", // 0x4d - "hoj", // 0x4e - "hoc", // 0x4f - "hok", // 0x50 - "hot", // 0x51 - "hop", // 0x52 - "hoh", // 0x53 - "hwa", // 0x54 - "hwag", // 0x55 - "hwagg", // 0x56 - "hwags", // 0x57 - "hwan", // 0x58 - "hwanj", // 0x59 - "hwanh", // 0x5a - "hwad", // 0x5b - "hwal", // 0x5c - "hwalg", // 0x5d - "hwalm", // 0x5e - "hwalb", // 0x5f - "hwals", // 0x60 - "hwalt", // 0x61 - "hwalp", // 0x62 - "hwalh", // 0x63 - "hwam", // 0x64 - "hwab", // 0x65 - "hwabs", // 0x66 - "hwas", // 0x67 - "hwass", // 0x68 - "hwang", // 0x69 - "hwaj", // 0x6a - "hwac", // 0x6b - "hwak", // 0x6c - "hwat", // 0x6d - "hwap", // 0x6e - "hwah", // 0x6f - "hwae", // 0x70 - "hwaeg", // 0x71 - "hwaegg", // 0x72 - "hwaegs", // 0x73 - "hwaen", // 0x74 - "hwaenj", // 0x75 - "hwaenh", // 0x76 - "hwaed", // 0x77 - "hwael", // 0x78 - "hwaelg", // 0x79 - "hwaelm", // 0x7a - "hwaelb", // 0x7b - "hwaels", // 0x7c - "hwaelt", // 0x7d - "hwaelp", // 0x7e - "hwaelh", // 0x7f - "hwaem", // 0x80 - "hwaeb", // 0x81 - "hwaebs", // 0x82 - "hwaes", // 0x83 - "hwaess", // 0x84 - "hwaeng", // 0x85 - "hwaej", // 0x86 - "hwaec", // 0x87 - "hwaek", // 0x88 - "hwaet", // 0x89 - "hwaep", // 0x8a - "hwaeh", // 0x8b - "hoe", // 0x8c - "hoeg", // 0x8d - "hoegg", // 0x8e - "hoegs", // 0x8f - "hoen", // 0x90 - "hoenj", // 0x91 - "hoenh", // 0x92 - "hoed", // 0x93 - "hoel", // 0x94 - "hoelg", // 0x95 - "hoelm", // 0x96 - "hoelb", // 0x97 - "hoels", // 0x98 - "hoelt", // 0x99 - "hoelp", // 0x9a - "hoelh", // 0x9b - "hoem", // 0x9c - "hoeb", // 0x9d - "hoebs", // 0x9e - "hoes", // 0x9f - "hoess", // 0xa0 - "hoeng", // 0xa1 - "hoej", // 0xa2 - "hoec", // 0xa3 - "hoek", // 0xa4 - "hoet", // 0xa5 - "hoep", // 0xa6 - "hoeh", // 0xa7 - "hyo", // 0xa8 - "hyog", // 0xa9 - "hyogg", // 0xaa - "hyogs", // 0xab - "hyon", // 0xac - "hyonj", // 0xad - "hyonh", // 0xae - "hyod", // 0xaf - "hyol", // 0xb0 - "hyolg", // 0xb1 - "hyolm", // 0xb2 - "hyolb", // 0xb3 - "hyols", // 0xb4 - "hyolt", // 0xb5 - "hyolp", // 0xb6 - "hyolh", // 0xb7 - "hyom", // 0xb8 - "hyob", // 0xb9 - "hyobs", // 0xba - "hyos", // 0xbb - "hyoss", // 0xbc - "hyong", // 0xbd - "hyoj", // 0xbe - "hyoc", // 0xbf - "hyok", // 0xc0 - "hyot", // 0xc1 - "hyop", // 0xc2 - "hyoh", // 0xc3 - "hu", // 0xc4 - "hug", // 0xc5 - "hugg", // 0xc6 - "hugs", // 0xc7 - "hun", // 0xc8 - "hunj", // 0xc9 - "hunh", // 0xca - "hud", // 0xcb - "hul", // 0xcc - "hulg", // 0xcd - "hulm", // 0xce - "hulb", // 0xcf - "huls", // 0xd0 - "hult", // 0xd1 - "hulp", // 0xd2 - "hulh", // 0xd3 - "hum", // 0xd4 - "hub", // 0xd5 - "hubs", // 0xd6 - "hus", // 0xd7 - "huss", // 0xd8 - "hung", // 0xd9 - "huj", // 0xda - "huc", // 0xdb - "huk", // 0xdc - "hut", // 0xdd - "hup", // 0xde - "huh", // 0xdf - "hweo", // 0xe0 - "hweog", // 0xe1 - "hweogg", // 0xe2 - "hweogs", // 0xe3 - "hweon", // 0xe4 - "hweonj", // 0xe5 - "hweonh", // 0xe6 - "hweod", // 0xe7 - "hweol", // 0xe8 - "hweolg", // 0xe9 - "hweolm", // 0xea - "hweolb", // 0xeb - "hweols", // 0xec - "hweolt", // 0xed - "hweolp", // 0xee - "hweolh", // 0xef - "hweom", // 0xf0 - "hweob", // 0xf1 - "hweobs", // 0xf2 - "hweos", // 0xf3 - "hweoss", // 0xf4 - "hweong", // 0xf5 - "hweoj", // 0xf6 - "hweoc", // 0xf7 - "hweok", // 0xf8 - "hweot", // 0xf9 - "hweop", // 0xfa - "hweoh", // 0xfb - "hwe", // 0xfc - "hweg", // 0xfd - "hwegg", // 0xfe - "hwegs", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0d7.go b/vendor/github.com/mozillazg/go-unidecode/table/x0d7.go deleted file mode 100644 index 3ecb308..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0d7.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x0d7 = []string{ - "hwen", // 0x00 - "hwenj", // 0x01 - "hwenh", // 0x02 - "hwed", // 0x03 - "hwel", // 0x04 - "hwelg", // 0x05 - "hwelm", // 0x06 - "hwelb", // 0x07 - "hwels", // 0x08 - "hwelt", // 0x09 - "hwelp", // 0x0a - "hwelh", // 0x0b - "hwem", // 0x0c - "hweb", // 0x0d - "hwebs", // 0x0e - "hwes", // 0x0f - "hwess", // 0x10 - "hweng", // 0x11 - "hwej", // 0x12 - "hwec", // 0x13 - "hwek", // 0x14 - "hwet", // 0x15 - "hwep", // 0x16 - "hweh", // 0x17 - "hwi", // 0x18 - "hwig", // 0x19 - "hwigg", // 0x1a - "hwigs", // 0x1b - "hwin", // 0x1c - "hwinj", // 0x1d - "hwinh", // 0x1e - "hwid", // 0x1f - "hwil", // 0x20 - "hwilg", // 0x21 - "hwilm", // 0x22 - "hwilb", // 0x23 - "hwils", // 0x24 - "hwilt", // 0x25 - "hwilp", // 0x26 - "hwilh", // 0x27 - "hwim", // 0x28 - "hwib", // 0x29 - "hwibs", // 0x2a - "hwis", // 0x2b - "hwiss", // 0x2c - "hwing", // 0x2d - "hwij", // 0x2e - "hwic", // 0x2f - "hwik", // 0x30 - "hwit", // 0x31 - "hwip", // 0x32 - "hwih", // 0x33 - "hyu", // 0x34 - "hyug", // 0x35 - "hyugg", // 0x36 - "hyugs", // 0x37 - "hyun", // 0x38 - "hyunj", // 0x39 - "hyunh", // 0x3a - "hyud", // 0x3b - "hyul", // 0x3c - "hyulg", // 0x3d - "hyulm", // 0x3e - "hyulb", // 0x3f - "hyuls", // 0x40 - "hyult", // 0x41 - "hyulp", // 0x42 - "hyulh", // 0x43 - "hyum", // 0x44 - "hyub", // 0x45 - "hyubs", // 0x46 - "hyus", // 0x47 - "hyuss", // 0x48 - "hyung", // 0x49 - "hyuj", // 0x4a - "hyuc", // 0x4b - "hyuk", // 0x4c - "hyut", // 0x4d - "hyup", // 0x4e - "hyuh", // 0x4f - "heu", // 0x50 - "heug", // 0x51 - "heugg", // 0x52 - "heugs", // 0x53 - "heun", // 0x54 - "heunj", // 0x55 - "heunh", // 0x56 - "heud", // 0x57 - "heul", // 0x58 - "heulg", // 0x59 - "heulm", // 0x5a - "heulb", // 0x5b - "heuls", // 0x5c - "heult", // 0x5d - "heulp", // 0x5e - "heulh", // 0x5f - "heum", // 0x60 - "heub", // 0x61 - "heubs", // 0x62 - "heus", // 0x63 - "heuss", // 0x64 - "heung", // 0x65 - "heuj", // 0x66 - "heuc", // 0x67 - "heuk", // 0x68 - "heut", // 0x69 - "heup", // 0x6a - "heuh", // 0x6b - "hyi", // 0x6c - "hyig", // 0x6d - "hyigg", // 0x6e - "hyigs", // 0x6f - "hyin", // 0x70 - "hyinj", // 0x71 - "hyinh", // 0x72 - "hyid", // 0x73 - "hyil", // 0x74 - "hyilg", // 0x75 - "hyilm", // 0x76 - "hyilb", // 0x77 - "hyils", // 0x78 - "hyilt", // 0x79 - "hyilp", // 0x7a - "hyilh", // 0x7b - "hyim", // 0x7c - "hyib", // 0x7d - "hyibs", // 0x7e - "hyis", // 0x7f - "hyiss", // 0x80 - "hying", // 0x81 - "hyij", // 0x82 - "hyic", // 0x83 - "hyik", // 0x84 - "hyit", // 0x85 - "hyip", // 0x86 - "hyih", // 0x87 - "hi", // 0x88 - "hig", // 0x89 - "higg", // 0x8a - "higs", // 0x8b - "hin", // 0x8c - "hinj", // 0x8d - "hinh", // 0x8e - "hid", // 0x8f - "hil", // 0x90 - "hilg", // 0x91 - "hilm", // 0x92 - "hilb", // 0x93 - "hils", // 0x94 - "hilt", // 0x95 - "hilp", // 0x96 - "hilh", // 0x97 - "him", // 0x98 - "hib", // 0x99 - "hibs", // 0x9a - "his", // 0x9b - "hiss", // 0x9c - "hing", // 0x9d - "hij", // 0x9e - "hic", // 0x9f - "hik", // 0xa0 - "hit", // 0xa1 - "hip", // 0xa2 - "hih", // 0xa3 - "[?]", // 0xa4 - "[?]", // 0xa5 - "[?]", // 0xa6 - "[?]", // 0xa7 - "[?]", // 0xa8 - "[?]", // 0xa9 - "[?]", // 0xaa - "[?]", // 0xab - "[?]", // 0xac - "[?]", // 0xad - "[?]", // 0xae - "[?]", // 0xaf - "[?]", // 0xb0 - "[?]", // 0xb1 - "[?]", // 0xb2 - "[?]", // 0xb3 - "[?]", // 0xb4 - "[?]", // 0xb5 - "[?]", // 0xb6 - "[?]", // 0xb7 - "[?]", // 0xb8 - "[?]", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "[?]", // 0xbc - "[?]", // 0xbd - "[?]", // 0xbe - "[?]", // 0xbf - "[?]", // 0xc0 - "[?]", // 0xc1 - "[?]", // 0xc2 - "[?]", // 0xc3 - "[?]", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0f9.go b/vendor/github.com/mozillazg/go-unidecode/table/x0f9.go deleted file mode 100644 index ff2c966..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0f9.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0f9 = []string{ - "Kay ", // 0x00 - "Kayng ", // 0x01 - "Ke ", // 0x02 - "Ko ", // 0x03 - "Kol ", // 0x04 - "Koc ", // 0x05 - "Kwi ", // 0x06 - "Kwi ", // 0x07 - "Kyun ", // 0x08 - "Kul ", // 0x09 - "Kum ", // 0x0a - "Na ", // 0x0b - "Na ", // 0x0c - "Na ", // 0x0d - "La ", // 0x0e - "Na ", // 0x0f - "Na ", // 0x10 - "Na ", // 0x11 - "Na ", // 0x12 - "Na ", // 0x13 - "Nak ", // 0x14 - "Nak ", // 0x15 - "Nak ", // 0x16 - "Nak ", // 0x17 - "Nak ", // 0x18 - "Nak ", // 0x19 - "Nak ", // 0x1a - "Nan ", // 0x1b - "Nan ", // 0x1c - "Nan ", // 0x1d - "Nan ", // 0x1e - "Nan ", // 0x1f - "Nan ", // 0x20 - "Nam ", // 0x21 - "Nam ", // 0x22 - "Nam ", // 0x23 - "Nam ", // 0x24 - "Nap ", // 0x25 - "Nap ", // 0x26 - "Nap ", // 0x27 - "Nang ", // 0x28 - "Nang ", // 0x29 - "Nang ", // 0x2a - "Nang ", // 0x2b - "Nang ", // 0x2c - "Nay ", // 0x2d - "Nayng ", // 0x2e - "No ", // 0x2f - "No ", // 0x30 - "No ", // 0x31 - "No ", // 0x32 - "No ", // 0x33 - "No ", // 0x34 - "No ", // 0x35 - "No ", // 0x36 - "No ", // 0x37 - "No ", // 0x38 - "No ", // 0x39 - "No ", // 0x3a - "Nok ", // 0x3b - "Nok ", // 0x3c - "Nok ", // 0x3d - "Nok ", // 0x3e - "Nok ", // 0x3f - "Nok ", // 0x40 - "Non ", // 0x41 - "Nong ", // 0x42 - "Nong ", // 0x43 - "Nong ", // 0x44 - "Nong ", // 0x45 - "Noy ", // 0x46 - "Noy ", // 0x47 - "Noy ", // 0x48 - "Noy ", // 0x49 - "Nwu ", // 0x4a - "Nwu ", // 0x4b - "Nwu ", // 0x4c - "Nwu ", // 0x4d - "Nwu ", // 0x4e - "Nwu ", // 0x4f - "Nwu ", // 0x50 - "Nwu ", // 0x51 - "Nuk ", // 0x52 - "Nuk ", // 0x53 - "Num ", // 0x54 - "Nung ", // 0x55 - "Nung ", // 0x56 - "Nung ", // 0x57 - "Nung ", // 0x58 - "Nung ", // 0x59 - "Twu ", // 0x5a - "La ", // 0x5b - "Lak ", // 0x5c - "Lak ", // 0x5d - "Lan ", // 0x5e - "Lyeng ", // 0x5f - "Lo ", // 0x60 - "Lyul ", // 0x61 - "Li ", // 0x62 - "Pey ", // 0x63 - "Pen ", // 0x64 - "Pyen ", // 0x65 - "Pwu ", // 0x66 - "Pwul ", // 0x67 - "Pi ", // 0x68 - "Sak ", // 0x69 - "Sak ", // 0x6a - "Sam ", // 0x6b - "Sayk ", // 0x6c - "Sayng ", // 0x6d - "Sep ", // 0x6e - "Sey ", // 0x6f - "Sway ", // 0x70 - "Sin ", // 0x71 - "Sim ", // 0x72 - "Sip ", // 0x73 - "Ya ", // 0x74 - "Yak ", // 0x75 - "Yak ", // 0x76 - "Yang ", // 0x77 - "Yang ", // 0x78 - "Yang ", // 0x79 - "Yang ", // 0x7a - "Yang ", // 0x7b - "Yang ", // 0x7c - "Yang ", // 0x7d - "Yang ", // 0x7e - "Ye ", // 0x7f - "Ye ", // 0x80 - "Ye ", // 0x81 - "Ye ", // 0x82 - "Ye ", // 0x83 - "Ye ", // 0x84 - "Ye ", // 0x85 - "Ye ", // 0x86 - "Ye ", // 0x87 - "Ye ", // 0x88 - "Ye ", // 0x89 - "Yek ", // 0x8a - "Yek ", // 0x8b - "Yek ", // 0x8c - "Yek ", // 0x8d - "Yen ", // 0x8e - "Yen ", // 0x8f - "Yen ", // 0x90 - "Yen ", // 0x91 - "Yen ", // 0x92 - "Yen ", // 0x93 - "Yen ", // 0x94 - "Yen ", // 0x95 - "Yen ", // 0x96 - "Yen ", // 0x97 - "Yen ", // 0x98 - "Yen ", // 0x99 - "Yen ", // 0x9a - "Yen ", // 0x9b - "Yel ", // 0x9c - "Yel ", // 0x9d - "Yel ", // 0x9e - "Yel ", // 0x9f - "Yel ", // 0xa0 - "Yel ", // 0xa1 - "Yem ", // 0xa2 - "Yem ", // 0xa3 - "Yem ", // 0xa4 - "Yem ", // 0xa5 - "Yem ", // 0xa6 - "Yep ", // 0xa7 - "Yeng ", // 0xa8 - "Yeng ", // 0xa9 - "Yeng ", // 0xaa - "Yeng ", // 0xab - "Yeng ", // 0xac - "Yeng ", // 0xad - "Yeng ", // 0xae - "Yeng ", // 0xaf - "Yeng ", // 0xb0 - "Yeng ", // 0xb1 - "Yeng ", // 0xb2 - "Yeng ", // 0xb3 - "Yeng ", // 0xb4 - "Yey ", // 0xb5 - "Yey ", // 0xb6 - "Yey ", // 0xb7 - "Yey ", // 0xb8 - "O ", // 0xb9 - "Yo ", // 0xba - "Yo ", // 0xbb - "Yo ", // 0xbc - "Yo ", // 0xbd - "Yo ", // 0xbe - "Yo ", // 0xbf - "Yo ", // 0xc0 - "Yo ", // 0xc1 - "Yo ", // 0xc2 - "Yo ", // 0xc3 - "Yong ", // 0xc4 - "Wun ", // 0xc5 - "Wen ", // 0xc6 - "Yu ", // 0xc7 - "Yu ", // 0xc8 - "Yu ", // 0xc9 - "Yu ", // 0xca - "Yu ", // 0xcb - "Yu ", // 0xcc - "Yu ", // 0xcd - "Yu ", // 0xce - "Yu ", // 0xcf - "Yu ", // 0xd0 - "Yuk ", // 0xd1 - "Yuk ", // 0xd2 - "Yuk ", // 0xd3 - "Yun ", // 0xd4 - "Yun ", // 0xd5 - "Yun ", // 0xd6 - "Yun ", // 0xd7 - "Yul ", // 0xd8 - "Yul ", // 0xd9 - "Yul ", // 0xda - "Yul ", // 0xdb - "Yung ", // 0xdc - "I ", // 0xdd - "I ", // 0xde - "I ", // 0xdf - "I ", // 0xe0 - "I ", // 0xe1 - "I ", // 0xe2 - "I ", // 0xe3 - "I ", // 0xe4 - "I ", // 0xe5 - "I ", // 0xe6 - "I ", // 0xe7 - "I ", // 0xe8 - "I ", // 0xe9 - "I ", // 0xea - "Ik ", // 0xeb - "Ik ", // 0xec - "In ", // 0xed - "In ", // 0xee - "In ", // 0xef - "In ", // 0xf0 - "In ", // 0xf1 - "In ", // 0xf2 - "In ", // 0xf3 - "Im ", // 0xf4 - "Im ", // 0xf5 - "Im ", // 0xf6 - "Ip ", // 0xf7 - "Ip ", // 0xf8 - "Ip ", // 0xf9 - "Cang ", // 0xfa - "Cek ", // 0xfb - "Ci ", // 0xfc - "Cip ", // 0xfd - "Cha ", // 0xfe - "Chek ", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0fa.go b/vendor/github.com/mozillazg/go-unidecode/table/x0fa.go deleted file mode 100644 index 7b72969..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0fa.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x0fa = []string{ - "Chey ", // 0x00 - "Thak ", // 0x01 - "Thak ", // 0x02 - "Thang ", // 0x03 - "Thayk ", // 0x04 - "Thong ", // 0x05 - "Pho ", // 0x06 - "Phok ", // 0x07 - "Hang ", // 0x08 - "Hang ", // 0x09 - "Hyen ", // 0x0a - "Hwak ", // 0x0b - "Wu ", // 0x0c - "Huo ", // 0x0d - "[?] ", // 0x0e - "[?] ", // 0x0f - "Zhong ", // 0x10 - "[?] ", // 0x11 - "Qing ", // 0x12 - "[?] ", // 0x13 - "[?] ", // 0x14 - "Xi ", // 0x15 - "Zhu ", // 0x16 - "Yi ", // 0x17 - "Li ", // 0x18 - "Shen ", // 0x19 - "Xiang ", // 0x1a - "Fu ", // 0x1b - "Jing ", // 0x1c - "Jing ", // 0x1d - "Yu ", // 0x1e - "[?] ", // 0x1f - "Hagi ", // 0x20 - "[?] ", // 0x21 - "Zhu ", // 0x22 - "[?] ", // 0x23 - "[?] ", // 0x24 - "Yi ", // 0x25 - "Du ", // 0x26 - "[?] ", // 0x27 - "[?] ", // 0x28 - "[?] ", // 0x29 - "Fan ", // 0x2a - "Si ", // 0x2b - "Guan ", // 0x2c - "[?]", // 0x2d - "[?]", // 0x2e - "[?]", // 0x2f - "[?]", // 0x30 - "[?]", // 0x31 - "[?]", // 0x32 - "[?]", // 0x33 - "[?]", // 0x34 - "[?]", // 0x35 - "[?]", // 0x36 - "[?]", // 0x37 - "[?]", // 0x38 - "[?]", // 0x39 - "[?]", // 0x3a - "[?]", // 0x3b - "[?]", // 0x3c - "[?]", // 0x3d - "[?]", // 0x3e - "[?]", // 0x3f - "[?]", // 0x40 - "[?]", // 0x41 - "[?]", // 0x42 - "[?]", // 0x43 - "[?]", // 0x44 - "[?]", // 0x45 - "[?]", // 0x46 - "[?]", // 0x47 - "[?]", // 0x48 - "[?]", // 0x49 - "[?]", // 0x4a - "[?]", // 0x4b - "[?]", // 0x4c - "[?]", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "[?]", // 0x50 - "[?]", // 0x51 - "[?]", // 0x52 - "[?]", // 0x53 - "[?]", // 0x54 - "[?]", // 0x55 - "[?]", // 0x56 - "[?]", // 0x57 - "[?]", // 0x58 - "[?]", // 0x59 - "[?]", // 0x5a - "[?]", // 0x5b - "[?]", // 0x5c - "[?]", // 0x5d - "[?]", // 0x5e - "[?]", // 0x5f - "[?]", // 0x60 - "[?]", // 0x61 - "[?]", // 0x62 - "[?]", // 0x63 - "[?]", // 0x64 - "[?]", // 0x65 - "[?]", // 0x66 - "[?]", // 0x67 - "[?]", // 0x68 - "[?]", // 0x69 - "[?]", // 0x6a - "[?]", // 0x6b - "[?]", // 0x6c - "[?]", // 0x6d - "[?]", // 0x6e - "[?]", // 0x6f - "[?]", // 0x70 - "[?]", // 0x71 - "[?]", // 0x72 - "[?]", // 0x73 - "[?]", // 0x74 - "[?]", // 0x75 - "[?]", // 0x76 - "[?]", // 0x77 - "[?]", // 0x78 - "[?]", // 0x79 - "[?]", // 0x7a - "[?]", // 0x7b - "[?]", // 0x7c - "[?]", // 0x7d - "[?]", // 0x7e - "[?]", // 0x7f - "[?]", // 0x80 - "[?]", // 0x81 - "[?]", // 0x82 - "[?]", // 0x83 - "[?]", // 0x84 - "[?]", // 0x85 - "[?]", // 0x86 - "[?]", // 0x87 - "[?]", // 0x88 - "[?]", // 0x89 - "[?]", // 0x8a - "[?]", // 0x8b - "[?]", // 0x8c - "[?]", // 0x8d - "[?]", // 0x8e - "[?]", // 0x8f - "[?]", // 0x90 - "[?]", // 0x91 - "[?]", // 0x92 - "[?]", // 0x93 - "[?]", // 0x94 - "[?]", // 0x95 - "[?]", // 0x96 - "[?]", // 0x97 - "[?]", // 0x98 - "[?]", // 0x99 - "[?]", // 0x9a - "[?]", // 0x9b - "[?]", // 0x9c - "[?]", // 0x9d - "[?]", // 0x9e - "[?]", // 0x9f - "[?]", // 0xa0 - "[?]", // 0xa1 - "[?]", // 0xa2 - "[?]", // 0xa3 - "[?]", // 0xa4 - "[?]", // 0xa5 - "[?]", // 0xa6 - "[?]", // 0xa7 - "[?]", // 0xa8 - "[?]", // 0xa9 - "[?]", // 0xaa - "[?]", // 0xab - "[?]", // 0xac - "[?]", // 0xad - "[?]", // 0xae - "[?]", // 0xaf - "[?]", // 0xb0 - "[?]", // 0xb1 - "[?]", // 0xb2 - "[?]", // 0xb3 - "[?]", // 0xb4 - "[?]", // 0xb5 - "[?]", // 0xb6 - "[?]", // 0xb7 - "[?]", // 0xb8 - "[?]", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "[?]", // 0xbc - "[?]", // 0xbd - "[?]", // 0xbe - "[?]", // 0xbf - "[?]", // 0xc0 - "[?]", // 0xc1 - "[?]", // 0xc2 - "[?]", // 0xc3 - "[?]", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "[?]", // 0xf9 - "[?]", // 0xfa - "[?]", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0fb.go b/vendor/github.com/mozillazg/go-unidecode/table/x0fb.go deleted file mode 100644 index 3482e4d..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0fb.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0fb = []string{ - "ff", // 0x00 - "fi", // 0x01 - "fl", // 0x02 - "ffi", // 0x03 - "ffl", // 0x04 - "st", // 0x05 - "st", // 0x06 - "[?]", // 0x07 - "[?]", // 0x08 - "[?]", // 0x09 - "[?]", // 0x0a - "[?]", // 0x0b - "[?]", // 0x0c - "[?]", // 0x0d - "[?]", // 0x0e - "[?]", // 0x0f - "[?]", // 0x10 - "[?]", // 0x11 - "[?]", // 0x12 - "mn", // 0x13 - "me", // 0x14 - "mi", // 0x15 - "vn", // 0x16 - "mkh", // 0x17 - "[?]", // 0x18 - "[?]", // 0x19 - "[?]", // 0x1a - "[?]", // 0x1b - "[?]", // 0x1c - "yi", // 0x1d - "", // 0x1e - "ay", // 0x1f - "`", // 0x20 - "", // 0x21 - "d", // 0x22 - "h", // 0x23 - "k", // 0x24 - "l", // 0x25 - "m", // 0x26 - "m", // 0x27 - "t", // 0x28 - "+", // 0x29 - "sh", // 0x2a - "s", // 0x2b - "sh", // 0x2c - "s", // 0x2d - "a", // 0x2e - "a", // 0x2f - "", // 0x30 - "b", // 0x31 - "g", // 0x32 - "d", // 0x33 - "h", // 0x34 - "v", // 0x35 - "z", // 0x36 - "[?]", // 0x37 - "t", // 0x38 - "y", // 0x39 - "k", // 0x3a - "k", // 0x3b - "l", // 0x3c - "[?]", // 0x3d - "l", // 0x3e - "[?]", // 0x3f - "n", // 0x40 - "n", // 0x41 - "[?]", // 0x42 - "p", // 0x43 - "p", // 0x44 - "[?]", // 0x45 - "ts", // 0x46 - "ts", // 0x47 - "r", // 0x48 - "sh", // 0x49 - "t", // 0x4a - "vo", // 0x4b - "b", // 0x4c - "k", // 0x4d - "p", // 0x4e - "l", // 0x4f - "", // 0x50 - "", // 0x51 - "", // 0x52 - "", // 0x53 - "", // 0x54 - "", // 0x55 - "", // 0x56 - "", // 0x57 - "", // 0x58 - "", // 0x59 - "", // 0x5a - "", // 0x5b - "", // 0x5c - "", // 0x5d - "", // 0x5e - "", // 0x5f - "", // 0x60 - "", // 0x61 - "", // 0x62 - "", // 0x63 - "", // 0x64 - "", // 0x65 - "", // 0x66 - "", // 0x67 - "", // 0x68 - "", // 0x69 - "", // 0x6a - "", // 0x6b - "", // 0x6c - "", // 0x6d - "", // 0x6e - "", // 0x6f - "", // 0x70 - "", // 0x71 - "", // 0x72 - "", // 0x73 - "", // 0x74 - "", // 0x75 - "", // 0x76 - "", // 0x77 - "", // 0x78 - "", // 0x79 - "", // 0x7a - "", // 0x7b - "", // 0x7c - "", // 0x7d - "", // 0x7e - "", // 0x7f - "", // 0x80 - "", // 0x81 - "", // 0x82 - "", // 0x83 - "", // 0x84 - "", // 0x85 - "", // 0x86 - "", // 0x87 - "", // 0x88 - "", // 0x89 - "", // 0x8a - "", // 0x8b - "", // 0x8c - "", // 0x8d - "", // 0x8e - "", // 0x8f - "", // 0x90 - "", // 0x91 - "", // 0x92 - "", // 0x93 - "", // 0x94 - "", // 0x95 - "", // 0x96 - "", // 0x97 - "", // 0x98 - "", // 0x99 - "", // 0x9a - "", // 0x9b - "", // 0x9c - "", // 0x9d - "", // 0x9e - "", // 0x9f - "", // 0xa0 - "", // 0xa1 - "", // 0xa2 - "", // 0xa3 - "", // 0xa4 - "", // 0xa5 - "", // 0xa6 - "", // 0xa7 - "", // 0xa8 - "", // 0xa9 - "", // 0xaa - "", // 0xab - "", // 0xac - "", // 0xad - "", // 0xae - "", // 0xaf - "", // 0xb0 - "", // 0xb1 - "[?]", // 0xb2 - "[?]", // 0xb3 - "[?]", // 0xb4 - "[?]", // 0xb5 - "[?]", // 0xb6 - "[?]", // 0xb7 - "[?]", // 0xb8 - "[?]", // 0xb9 - "[?]", // 0xba - "[?]", // 0xbb - "[?]", // 0xbc - "[?]", // 0xbd - "[?]", // 0xbe - "[?]", // 0xbf - "[?]", // 0xc0 - "[?]", // 0xc1 - "[?]", // 0xc2 - "[?]", // 0xc3 - "[?]", // 0xc4 - "[?]", // 0xc5 - "[?]", // 0xc6 - "[?]", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "", // 0xd3 - "", // 0xd4 - "", // 0xd5 - "", // 0xd6 - "", // 0xd7 - "", // 0xd8 - "", // 0xd9 - "", // 0xda - "", // 0xdb - "", // 0xdc - "", // 0xdd - "", // 0xde - "", // 0xdf - "", // 0xe0 - "", // 0xe1 - "", // 0xe2 - "", // 0xe3 - "", // 0xe4 - "", // 0xe5 - "", // 0xe6 - "", // 0xe7 - "", // 0xe8 - "", // 0xe9 - "", // 0xea - "", // 0xeb - "", // 0xec - "", // 0xed - "", // 0xee - "", // 0xef - "", // 0xf0 - "", // 0xf1 - "", // 0xf2 - "", // 0xf3 - "", // 0xf4 - "", // 0xf5 - "", // 0xf6 - "", // 0xf7 - "", // 0xf8 - "", // 0xf9 - "", // 0xfa - "", // 0xfb - "", // 0xfc - "", // 0xfd - "", // 0xfe - "", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0fc.go b/vendor/github.com/mozillazg/go-unidecode/table/x0fc.go deleted file mode 100644 index 8ef9739..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0fc.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0fc = []string{ - "", // 0x00 - "", // 0x01 - "", // 0x02 - "", // 0x03 - "", // 0x04 - "", // 0x05 - "", // 0x06 - "", // 0x07 - "", // 0x08 - "", // 0x09 - "", // 0x0a - "", // 0x0b - "", // 0x0c - "", // 0x0d - "", // 0x0e - "", // 0x0f - "", // 0x10 - "", // 0x11 - "", // 0x12 - "", // 0x13 - "", // 0x14 - "", // 0x15 - "", // 0x16 - "", // 0x17 - "", // 0x18 - "", // 0x19 - "", // 0x1a - "", // 0x1b - "", // 0x1c - "", // 0x1d - "", // 0x1e - "", // 0x1f - "", // 0x20 - "", // 0x21 - "", // 0x22 - "", // 0x23 - "", // 0x24 - "", // 0x25 - "", // 0x26 - "", // 0x27 - "", // 0x28 - "", // 0x29 - "", // 0x2a - "", // 0x2b - "", // 0x2c - "", // 0x2d - "", // 0x2e - "", // 0x2f - "", // 0x30 - "", // 0x31 - "", // 0x32 - "", // 0x33 - "", // 0x34 - "", // 0x35 - "", // 0x36 - "", // 0x37 - "", // 0x38 - "", // 0x39 - "", // 0x3a - "", // 0x3b - "", // 0x3c - "", // 0x3d - "", // 0x3e - "", // 0x3f - "", // 0x40 - "", // 0x41 - "", // 0x42 - "", // 0x43 - "", // 0x44 - "", // 0x45 - "", // 0x46 - "", // 0x47 - "", // 0x48 - "", // 0x49 - "", // 0x4a - "", // 0x4b - "", // 0x4c - "", // 0x4d - "", // 0x4e - "", // 0x4f - "", // 0x50 - "", // 0x51 - "", // 0x52 - "", // 0x53 - "", // 0x54 - "", // 0x55 - "", // 0x56 - "", // 0x57 - "", // 0x58 - "", // 0x59 - "", // 0x5a - "", // 0x5b - "", // 0x5c - "", // 0x5d - "", // 0x5e - "", // 0x5f - "", // 0x60 - "", // 0x61 - "", // 0x62 - "", // 0x63 - "", // 0x64 - "", // 0x65 - "", // 0x66 - "", // 0x67 - "", // 0x68 - "", // 0x69 - "", // 0x6a - "", // 0x6b - "", // 0x6c - "", // 0x6d - "", // 0x6e - "", // 0x6f - "", // 0x70 - "", // 0x71 - "", // 0x72 - "", // 0x73 - "", // 0x74 - "", // 0x75 - "", // 0x76 - "", // 0x77 - "", // 0x78 - "", // 0x79 - "", // 0x7a - "", // 0x7b - "", // 0x7c - "", // 0x7d - "", // 0x7e - "", // 0x7f - "", // 0x80 - "", // 0x81 - "", // 0x82 - "", // 0x83 - "", // 0x84 - "", // 0x85 - "", // 0x86 - "", // 0x87 - "", // 0x88 - "", // 0x89 - "", // 0x8a - "", // 0x8b - "", // 0x8c - "", // 0x8d - "", // 0x8e - "", // 0x8f - "", // 0x90 - "", // 0x91 - "", // 0x92 - "", // 0x93 - "", // 0x94 - "", // 0x95 - "", // 0x96 - "", // 0x97 - "", // 0x98 - "", // 0x99 - "", // 0x9a - "", // 0x9b - "", // 0x9c - "", // 0x9d - "", // 0x9e - "", // 0x9f - "", // 0xa0 - "", // 0xa1 - "", // 0xa2 - "", // 0xa3 - "", // 0xa4 - "", // 0xa5 - "", // 0xa6 - "", // 0xa7 - "", // 0xa8 - "", // 0xa9 - "", // 0xaa - "", // 0xab - "", // 0xac - "", // 0xad - "", // 0xae - "", // 0xaf - "", // 0xb0 - "", // 0xb1 - "", // 0xb2 - "", // 0xb3 - "", // 0xb4 - "", // 0xb5 - "", // 0xb6 - "", // 0xb7 - "", // 0xb8 - "", // 0xb9 - "", // 0xba - "", // 0xbb - "", // 0xbc - "", // 0xbd - "", // 0xbe - "", // 0xbf - "", // 0xc0 - "", // 0xc1 - "", // 0xc2 - "", // 0xc3 - "", // 0xc4 - "", // 0xc5 - "", // 0xc6 - "", // 0xc7 - "", // 0xc8 - "", // 0xc9 - "", // 0xca - "", // 0xcb - "", // 0xcc - "", // 0xcd - "", // 0xce - "", // 0xcf - "", // 0xd0 - "", // 0xd1 - "", // 0xd2 - "", // 0xd3 - "", // 0xd4 - "", // 0xd5 - "", // 0xd6 - "", // 0xd7 - "", // 0xd8 - "", // 0xd9 - "", // 0xda - "", // 0xdb - "", // 0xdc - "", // 0xdd - "", // 0xde - "", // 0xdf - "", // 0xe0 - "", // 0xe1 - "", // 0xe2 - "", // 0xe3 - "", // 0xe4 - "", // 0xe5 - "", // 0xe6 - "", // 0xe7 - "", // 0xe8 - "", // 0xe9 - "", // 0xea - "", // 0xeb - "", // 0xec - "", // 0xed - "", // 0xee - "", // 0xef - "", // 0xf0 - "", // 0xf1 - "", // 0xf2 - "", // 0xf3 - "", // 0xf4 - "", // 0xf5 - "", // 0xf6 - "", // 0xf7 - "", // 0xf8 - "", // 0xf9 - "", // 0xfa - "", // 0xfb - "", // 0xfc - "", // 0xfd - "", // 0xfe - "", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0fd.go b/vendor/github.com/mozillazg/go-unidecode/table/x0fd.go deleted file mode 100644 index 41f9d0a..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0fd.go +++ /dev/null @@ -1,259 +0,0 @@ -package table - -var x0fd = []string{ - "", // 0x00 - "", // 0x01 - "", // 0x02 - "", // 0x03 - "", // 0x04 - "", // 0x05 - "", // 0x06 - "", // 0x07 - "", // 0x08 - "", // 0x09 - "", // 0x0a - "", // 0x0b - "", // 0x0c - "", // 0x0d - "", // 0x0e - "", // 0x0f - "", // 0x10 - "", // 0x11 - "", // 0x12 - "", // 0x13 - "", // 0x14 - "", // 0x15 - "", // 0x16 - "", // 0x17 - "", // 0x18 - "", // 0x19 - "", // 0x1a - "", // 0x1b - "", // 0x1c - "", // 0x1d - "", // 0x1e - "", // 0x1f - "", // 0x20 - "", // 0x21 - "", // 0x22 - "", // 0x23 - "", // 0x24 - "", // 0x25 - "", // 0x26 - "", // 0x27 - "", // 0x28 - "", // 0x29 - "", // 0x2a - "", // 0x2b - "", // 0x2c - "", // 0x2d - "", // 0x2e - "", // 0x2f - "", // 0x30 - "", // 0x31 - "", // 0x32 - "", // 0x33 - "", // 0x34 - "", // 0x35 - "", // 0x36 - "", // 0x37 - "", // 0x38 - "", // 0x39 - "", // 0x3a - "", // 0x3b - "", // 0x3c - "", // 0x3d - "", // 0x3e - "", // 0x3f - "[?]", // 0x40 - "[?]", // 0x41 - "[?]", // 0x42 - "[?]", // 0x43 - "[?]", // 0x44 - "[?]", // 0x45 - "[?]", // 0x46 - "[?]", // 0x47 - "[?]", // 0x48 - "[?]", // 0x49 - "[?]", // 0x4a - "[?]", // 0x4b - "[?]", // 0x4c - "[?]", // 0x4d - "[?]", // 0x4e - "[?]", // 0x4f - "", // 0x50 - "", // 0x51 - "", // 0x52 - "", // 0x53 - "", // 0x54 - "", // 0x55 - "", // 0x56 - "", // 0x57 - "", // 0x58 - "", // 0x59 - "", // 0x5a - "", // 0x5b - "", // 0x5c - "", // 0x5d - "", // 0x5e - "", // 0x5f - "", // 0x60 - "", // 0x61 - "", // 0x62 - "", // 0x63 - "", // 0x64 - "", // 0x65 - "", // 0x66 - "", // 0x67 - "", // 0x68 - "", // 0x69 - "", // 0x6a - "", // 0x6b - "", // 0x6c - "", // 0x6d - "", // 0x6e - "", // 0x6f - "", // 0x70 - "", // 0x71 - "", // 0x72 - "", // 0x73 - "", // 0x74 - "", // 0x75 - "", // 0x76 - "", // 0x77 - "", // 0x78 - "", // 0x79 - "", // 0x7a - "", // 0x7b - "", // 0x7c - "", // 0x7d - "", // 0x7e - "", // 0x7f - "", // 0x80 - "", // 0x81 - "", // 0x82 - "", // 0x83 - "", // 0x84 - "", // 0x85 - "", // 0x86 - "", // 0x87 - "", // 0x88 - "", // 0x89 - "", // 0x8a - "", // 0x8b - "", // 0x8c - "", // 0x8d - "", // 0x8e - "", // 0x8f - "[?]", // 0x90 - "[?]", // 0x91 - "", // 0x92 - "", // 0x93 - "", // 0x94 - "", // 0x95 - "", // 0x96 - "", // 0x97 - "", // 0x98 - "", // 0x99 - "", // 0x9a - "", // 0x9b - "", // 0x9c - "", // 0x9d - "", // 0x9e - "", // 0x9f - "", // 0xa0 - "", // 0xa1 - "", // 0xa2 - "", // 0xa3 - "", // 0xa4 - "", // 0xa5 - "", // 0xa6 - "", // 0xa7 - "", // 0xa8 - "", // 0xa9 - "", // 0xaa - "", // 0xab - "", // 0xac - "", // 0xad - "", // 0xae - "", // 0xaf - "", // 0xb0 - "", // 0xb1 - "", // 0xb2 - "", // 0xb3 - "", // 0xb4 - "", // 0xb5 - "", // 0xb6 - "", // 0xb7 - "", // 0xb8 - "", // 0xb9 - "", // 0xba - "", // 0xbb - "", // 0xbc - "", // 0xbd - "", // 0xbe - "", // 0xbf - "", // 0xc0 - "", // 0xc1 - "", // 0xc2 - "", // 0xc3 - "", // 0xc4 - "", // 0xc5 - "", // 0xc6 - "", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "[?]", // 0xca - "[?]", // 0xcb - "[?]", // 0xcc - "[?]", // 0xcd - "[?]", // 0xce - "[?]", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "[?]", // 0xd2 - "[?]", // 0xd3 - "[?]", // 0xd4 - "[?]", // 0xd5 - "[?]", // 0xd6 - "[?]", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "[?]", // 0xda - "[?]", // 0xdb - "[?]", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "[?]", // 0xe0 - "[?]", // 0xe1 - "[?]", // 0xe2 - "[?]", // 0xe3 - "[?]", // 0xe4 - "[?]", // 0xe5 - "[?]", // 0xe6 - "[?]", // 0xe7 - "[?]", // 0xe8 - "[?]", // 0xe9 - "[?]", // 0xea - "[?]", // 0xeb - "[?]", // 0xec - "[?]", // 0xed - "[?]", // 0xee - "[?]", // 0xef - "", // 0xf0 - "", // 0xf1 - "", // 0xf2 - "", // 0xf3 - "", // 0xf4 - "", // 0xf5 - "", // 0xf6 - "", // 0xf7 - "", // 0xf8 - "", // 0xf9 - "", // 0xfa - "", // 0xfb - "[?]", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0fe.go b/vendor/github.com/mozillazg/go-unidecode/table/x0fe.go deleted file mode 100644 index 4596c50..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0fe.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0fe = []string{ - "[?]", // 0x00 - "[?]", // 0x01 - "[?]", // 0x02 - "[?]", // 0x03 - "[?]", // 0x04 - "[?]", // 0x05 - "[?]", // 0x06 - "[?]", // 0x07 - "[?]", // 0x08 - "[?]", // 0x09 - "[?]", // 0x0a - "[?]", // 0x0b - "[?]", // 0x0c - "[?]", // 0x0d - "[?]", // 0x0e - "[?]", // 0x0f - "[?]", // 0x10 - "[?]", // 0x11 - "[?]", // 0x12 - "[?]", // 0x13 - "[?]", // 0x14 - "[?]", // 0x15 - "[?]", // 0x16 - "[?]", // 0x17 - "[?]", // 0x18 - "[?]", // 0x19 - "[?]", // 0x1a - "[?]", // 0x1b - "[?]", // 0x1c - "[?]", // 0x1d - "[?]", // 0x1e - "[?]", // 0x1f - "", // 0x20 - "", // 0x21 - "", // 0x22 - "~", // 0x23 - "[?]", // 0x24 - "[?]", // 0x25 - "[?]", // 0x26 - "[?]", // 0x27 - "[?]", // 0x28 - "[?]", // 0x29 - "[?]", // 0x2a - "[?]", // 0x2b - "[?]", // 0x2c - "[?]", // 0x2d - "[?]", // 0x2e - "[?]", // 0x2f - "..", // 0x30 - "--", // 0x31 - "-", // 0x32 - "_", // 0x33 - "_", // 0x34 - "(", // 0x35 - ") ", // 0x36 - "{", // 0x37 - "} ", // 0x38 - "[", // 0x39 - "] ", // 0x3a - "[(", // 0x3b - ")] ", // 0x3c - "<<", // 0x3d - ">> ", // 0x3e - "<", // 0x3f - "> ", // 0x40 - "[", // 0x41 - "] ", // 0x42 - "{", // 0x43 - "}", // 0x44 - "[?]", // 0x45 - "[?]", // 0x46 - "[?]", // 0x47 - "[?]", // 0x48 - "", // 0x49 - "", // 0x4a - "", // 0x4b - "", // 0x4c - "", // 0x4d - "", // 0x4e - "", // 0x4f - ",", // 0x50 - ",", // 0x51 - ".", // 0x52 - "", // 0x53 - ";", // 0x54 - ":", // 0x55 - "?", // 0x56 - "!", // 0x57 - "-", // 0x58 - "(", // 0x59 - ")", // 0x5a - "{", // 0x5b - "}", // 0x5c - "{", // 0x5d - "}", // 0x5e - "#", // 0x5f - "&", // 0x60 - "*", // 0x61 - "+", // 0x62 - "-", // 0x63 - "<", // 0x64 - ">", // 0x65 - "=", // 0x66 - "", // 0x67 - "\\", // 0x68 - "$", // 0x69 - "%", // 0x6a - "@", // 0x6b - "[?]", // 0x6c - "[?]", // 0x6d - "[?]", // 0x6e - "[?]", // 0x6f - "", // 0x70 - "", // 0x71 - "", // 0x72 - "[?]", // 0x73 - "", // 0x74 - "[?]", // 0x75 - "", // 0x76 - "", // 0x77 - "", // 0x78 - "", // 0x79 - "", // 0x7a - "", // 0x7b - "", // 0x7c - "", // 0x7d - "", // 0x7e - "", // 0x7f - "", // 0x80 - "", // 0x81 - "", // 0x82 - "", // 0x83 - "", // 0x84 - "", // 0x85 - "", // 0x86 - "", // 0x87 - "", // 0x88 - "", // 0x89 - "", // 0x8a - "", // 0x8b - "", // 0x8c - "", // 0x8d - "", // 0x8e - "", // 0x8f - "", // 0x90 - "", // 0x91 - "", // 0x92 - "", // 0x93 - "", // 0x94 - "", // 0x95 - "", // 0x96 - "", // 0x97 - "", // 0x98 - "", // 0x99 - "", // 0x9a - "", // 0x9b - "", // 0x9c - "", // 0x9d - "", // 0x9e - "", // 0x9f - "", // 0xa0 - "", // 0xa1 - "", // 0xa2 - "", // 0xa3 - "", // 0xa4 - "", // 0xa5 - "", // 0xa6 - "", // 0xa7 - "", // 0xa8 - "", // 0xa9 - "", // 0xaa - "", // 0xab - "", // 0xac - "", // 0xad - "", // 0xae - "", // 0xaf - "", // 0xb0 - "", // 0xb1 - "", // 0xb2 - "", // 0xb3 - "", // 0xb4 - "", // 0xb5 - "", // 0xb6 - "", // 0xb7 - "", // 0xb8 - "", // 0xb9 - "", // 0xba - "", // 0xbb - "", // 0xbc - "", // 0xbd - "", // 0xbe - "", // 0xbf - "", // 0xc0 - "", // 0xc1 - "", // 0xc2 - "", // 0xc3 - "", // 0xc4 - "", // 0xc5 - "", // 0xc6 - "", // 0xc7 - "", // 0xc8 - "", // 0xc9 - "", // 0xca - "", // 0xcb - "", // 0xcc - "", // 0xcd - "", // 0xce - "", // 0xcf - "", // 0xd0 - "", // 0xd1 - "", // 0xd2 - "", // 0xd3 - "", // 0xd4 - "", // 0xd5 - "", // 0xd6 - "", // 0xd7 - "", // 0xd8 - "", // 0xd9 - "", // 0xda - "", // 0xdb - "", // 0xdc - "", // 0xdd - "", // 0xde - "", // 0xdf - "", // 0xe0 - "", // 0xe1 - "", // 0xe2 - "", // 0xe3 - "", // 0xe4 - "", // 0xe5 - "", // 0xe6 - "", // 0xe7 - "", // 0xe8 - "", // 0xe9 - "", // 0xea - "", // 0xeb - "", // 0xec - "", // 0xed - "", // 0xee - "", // 0xef - "", // 0xf0 - "", // 0xf1 - "", // 0xf2 - "", // 0xf3 - "", // 0xf4 - "", // 0xf5 - "", // 0xf6 - "", // 0xf7 - "", // 0xf8 - "", // 0xf9 - "", // 0xfa - "", // 0xfb - "", // 0xfc - "[?]", // 0xfd - "[?]", // 0xfe - "", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x0ff.go b/vendor/github.com/mozillazg/go-unidecode/table/x0ff.go deleted file mode 100644 index 56a067b..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x0ff.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x0ff = []string{ - "[?]", // 0x00 - "!", // 0x01 - "\"", // 0x02 - "#", // 0x03 - "$", // 0x04 - "%", // 0x05 - "&", // 0x06 - "'", // 0x07 - "(", // 0x08 - ")", // 0x09 - "*", // 0x0a - "+", // 0x0b - ",", // 0x0c - "-", // 0x0d - ".", // 0x0e - "/", // 0x0f - "0", // 0x10 - "1", // 0x11 - "2", // 0x12 - "3", // 0x13 - "4", // 0x14 - "5", // 0x15 - "6", // 0x16 - "7", // 0x17 - "8", // 0x18 - "9", // 0x19 - ":", // 0x1a - ";", // 0x1b - "<", // 0x1c - "=", // 0x1d - ">", // 0x1e - "?", // 0x1f - "@", // 0x20 - "A", // 0x21 - "B", // 0x22 - "C", // 0x23 - "D", // 0x24 - "E", // 0x25 - "F", // 0x26 - "G", // 0x27 - "H", // 0x28 - "I", // 0x29 - "J", // 0x2a - "K", // 0x2b - "L", // 0x2c - "M", // 0x2d - "N", // 0x2e - "O", // 0x2f - "P", // 0x30 - "Q", // 0x31 - "R", // 0x32 - "S", // 0x33 - "T", // 0x34 - "U", // 0x35 - "V", // 0x36 - "W", // 0x37 - "X", // 0x38 - "Y", // 0x39 - "Z", // 0x3a - "[", // 0x3b - "\\", // 0x3c - "]", // 0x3d - "^", // 0x3e - "_", // 0x3f - "`", // 0x40 - "a", // 0x41 - "b", // 0x42 - "c", // 0x43 - "d", // 0x44 - "e", // 0x45 - "f", // 0x46 - "g", // 0x47 - "h", // 0x48 - "i", // 0x49 - "j", // 0x4a - "k", // 0x4b - "l", // 0x4c - "m", // 0x4d - "n", // 0x4e - "o", // 0x4f - "p", // 0x50 - "q", // 0x51 - "r", // 0x52 - "s", // 0x53 - "t", // 0x54 - "u", // 0x55 - "v", // 0x56 - "w", // 0x57 - "x", // 0x58 - "y", // 0x59 - "z", // 0x5a - "{", // 0x5b - "|", // 0x5c - "}", // 0x5d - "~", // 0x5e - "[?]", // 0x5f - "[?]", // 0x60 - ".", // 0x61 - "[", // 0x62 - "]", // 0x63 - ",", // 0x64 - "*", // 0x65 - "wo", // 0x66 - "a", // 0x67 - "i", // 0x68 - "u", // 0x69 - "e", // 0x6a - "o", // 0x6b - "ya", // 0x6c - "yu", // 0x6d - "yo", // 0x6e - "tu", // 0x6f - "+", // 0x70 - "a", // 0x71 - "i", // 0x72 - "u", // 0x73 - "e", // 0x74 - "o", // 0x75 - "ka", // 0x76 - "ki", // 0x77 - "ku", // 0x78 - "ke", // 0x79 - "ko", // 0x7a - "sa", // 0x7b - "si", // 0x7c - "su", // 0x7d - "se", // 0x7e - "so", // 0x7f - "ta", // 0x80 - "ti", // 0x81 - "tu", // 0x82 - "te", // 0x83 - "to", // 0x84 - "na", // 0x85 - "ni", // 0x86 - "nu", // 0x87 - "ne", // 0x88 - "no", // 0x89 - "ha", // 0x8a - "hi", // 0x8b - "hu", // 0x8c - "he", // 0x8d - "ho", // 0x8e - "ma", // 0x8f - "mi", // 0x90 - "mu", // 0x91 - "me", // 0x92 - "mo", // 0x93 - "ya", // 0x94 - "yu", // 0x95 - "yo", // 0x96 - "ra", // 0x97 - "ri", // 0x98 - "ru", // 0x99 - "re", // 0x9a - "ro", // 0x9b - "wa", // 0x9c - "n", // 0x9d - ":", // 0x9e - ";", // 0x9f - "", // 0xa0 - "g", // 0xa1 - "gg", // 0xa2 - "gs", // 0xa3 - "n", // 0xa4 - "nj", // 0xa5 - "nh", // 0xa6 - "d", // 0xa7 - "dd", // 0xa8 - "r", // 0xa9 - "lg", // 0xaa - "lm", // 0xab - "lb", // 0xac - "ls", // 0xad - "lt", // 0xae - "lp", // 0xaf - "rh", // 0xb0 - "m", // 0xb1 - "b", // 0xb2 - "bb", // 0xb3 - "bs", // 0xb4 - "s", // 0xb5 - "ss", // 0xb6 - "", // 0xb7 - "j", // 0xb8 - "jj", // 0xb9 - "c", // 0xba - "k", // 0xbb - "t", // 0xbc - "p", // 0xbd - "h", // 0xbe - "[?]", // 0xbf - "[?]", // 0xc0 - "[?]", // 0xc1 - "a", // 0xc2 - "ae", // 0xc3 - "ya", // 0xc4 - "yae", // 0xc5 - "eo", // 0xc6 - "e", // 0xc7 - "[?]", // 0xc8 - "[?]", // 0xc9 - "yeo", // 0xca - "ye", // 0xcb - "o", // 0xcc - "wa", // 0xcd - "wae", // 0xce - "oe", // 0xcf - "[?]", // 0xd0 - "[?]", // 0xd1 - "yo", // 0xd2 - "u", // 0xd3 - "weo", // 0xd4 - "we", // 0xd5 - "wi", // 0xd6 - "yu", // 0xd7 - "[?]", // 0xd8 - "[?]", // 0xd9 - "eu", // 0xda - "yi", // 0xdb - "i", // 0xdc - "[?]", // 0xdd - "[?]", // 0xde - "[?]", // 0xdf - "/C", // 0xe0 - "PS", // 0xe1 - "!", // 0xe2 - "-", // 0xe3 - "|", // 0xe4 - "Y=", // 0xe5 - "W=", // 0xe6 - "[?]", // 0xe7 - "|", // 0xe8 - "-", // 0xe9 - "|", // 0xea - "-", // 0xeb - "|", // 0xec - "#", // 0xed - "O", // 0xee - "[?]", // 0xef - "[?]", // 0xf0 - "[?]", // 0xf1 - "[?]", // 0xf2 - "[?]", // 0xf3 - "[?]", // 0xf4 - "[?]", // 0xf5 - "[?]", // 0xf6 - "[?]", // 0xf7 - "[?]", // 0xf8 - "{", // 0xf9 - "|", // 0xfa - "}", // 0xfb - "", // 0xfc - "", // 0xfd - "", // 0xfe - "", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x1d4.go b/vendor/github.com/mozillazg/go-unidecode/table/x1d4.go deleted file mode 100644 index 58a5cb1..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x1d4.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x1d4 = []string{ - "A", // 0x00 - "B", // 0x01 - "C", // 0x02 - "D", // 0x03 - "E", // 0x04 - "F", // 0x05 - "G", // 0x06 - "H", // 0x07 - "I", // 0x08 - "J", // 0x09 - "K", // 0x0a - "L", // 0x0b - "M", // 0x0c - "N", // 0x0d - "O", // 0x0e - "P", // 0x0f - "Q", // 0x10 - "R", // 0x11 - "S", // 0x12 - "T", // 0x13 - "U", // 0x14 - "V", // 0x15 - "W", // 0x16 - "X", // 0x17 - "Y", // 0x18 - "Z", // 0x19 - "a", // 0x1a - "b", // 0x1b - "c", // 0x1c - "d", // 0x1d - "e", // 0x1e - "f", // 0x1f - "g", // 0x20 - "h", // 0x21 - "i", // 0x22 - "j", // 0x23 - "k", // 0x24 - "l", // 0x25 - "m", // 0x26 - "n", // 0x27 - "o", // 0x28 - "p", // 0x29 - "q", // 0x2a - "r", // 0x2b - "s", // 0x2c - "t", // 0x2d - "u", // 0x2e - "v", // 0x2f - "w", // 0x30 - "x", // 0x31 - "y", // 0x32 - "z", // 0x33 - "A", // 0x34 - "B", // 0x35 - "C", // 0x36 - "D", // 0x37 - "E", // 0x38 - "F", // 0x39 - "G", // 0x3a - "H", // 0x3b - "I", // 0x3c - "J", // 0x3d - "K", // 0x3e - "L", // 0x3f - "M", // 0x40 - "N", // 0x41 - "O", // 0x42 - "P", // 0x43 - "Q", // 0x44 - "R", // 0x45 - "S", // 0x46 - "T", // 0x47 - "U", // 0x48 - "V", // 0x49 - "W", // 0x4a - "X", // 0x4b - "Y", // 0x4c - "Z", // 0x4d - "a", // 0x4e - "b", // 0x4f - "c", // 0x50 - "d", // 0x51 - "e", // 0x52 - "f", // 0x53 - "g", // 0x54 - "", // 0x55 - "i", // 0x56 - "j", // 0x57 - "k", // 0x58 - "l", // 0x59 - "m", // 0x5a - "n", // 0x5b - "o", // 0x5c - "p", // 0x5d - "q", // 0x5e - "r", // 0x5f - "s", // 0x60 - "t", // 0x61 - "u", // 0x62 - "v", // 0x63 - "w", // 0x64 - "x", // 0x65 - "y", // 0x66 - "z", // 0x67 - "A", // 0x68 - "B", // 0x69 - "C", // 0x6a - "D", // 0x6b - "E", // 0x6c - "F", // 0x6d - "G", // 0x6e - "H", // 0x6f - "I", // 0x70 - "J", // 0x71 - "K", // 0x72 - "L", // 0x73 - "M", // 0x74 - "N", // 0x75 - "O", // 0x76 - "P", // 0x77 - "Q", // 0x78 - "R", // 0x79 - "S", // 0x7a - "T", // 0x7b - "U", // 0x7c - "V", // 0x7d - "W", // 0x7e - "X", // 0x7f - "Y", // 0x80 - "Z", // 0x81 - "a", // 0x82 - "b", // 0x83 - "c", // 0x84 - "d", // 0x85 - "e", // 0x86 - "f", // 0x87 - "g", // 0x88 - "h", // 0x89 - "i", // 0x8a - "j", // 0x8b - "k", // 0x8c - "l", // 0x8d - "m", // 0x8e - "n", // 0x8f - "o", // 0x90 - "p", // 0x91 - "q", // 0x92 - "r", // 0x93 - "s", // 0x94 - "t", // 0x95 - "u", // 0x96 - "v", // 0x97 - "w", // 0x98 - "x", // 0x99 - "y", // 0x9a - "z", // 0x9b - "A", // 0x9c - "", // 0x9d - "C", // 0x9e - "D", // 0x9f - "", // 0xa0 - "", // 0xa1 - "G", // 0xa2 - "", // 0xa3 - "", // 0xa4 - "J", // 0xa5 - "K", // 0xa6 - "", // 0xa7 - "", // 0xa8 - "N", // 0xa9 - "O", // 0xaa - "P", // 0xab - "Q", // 0xac - "", // 0xad - "S", // 0xae - "T", // 0xaf - "U", // 0xb0 - "V", // 0xb1 - "W", // 0xb2 - "X", // 0xb3 - "Y", // 0xb4 - "Z", // 0xb5 - "a", // 0xb6 - "b", // 0xb7 - "c", // 0xb8 - "d", // 0xb9 - "", // 0xba - "f", // 0xbb - "", // 0xbc - "h", // 0xbd - "i", // 0xbe - "j", // 0xbf - "k", // 0xc0 - "l", // 0xc1 - "m", // 0xc2 - "n", // 0xc3 - "", // 0xc4 - "p", // 0xc5 - "q", // 0xc6 - "r", // 0xc7 - "s", // 0xc8 - "t", // 0xc9 - "u", // 0xca - "v", // 0xcb - "w", // 0xcc - "x", // 0xcd - "y", // 0xce - "z", // 0xcf - "A", // 0xd0 - "B", // 0xd1 - "C", // 0xd2 - "D", // 0xd3 - "E", // 0xd4 - "F", // 0xd5 - "G", // 0xd6 - "H", // 0xd7 - "I", // 0xd8 - "J", // 0xd9 - "K", // 0xda - "L", // 0xdb - "M", // 0xdc - "N", // 0xdd - "O", // 0xde - "P", // 0xdf - "Q", // 0xe0 - "R", // 0xe1 - "S", // 0xe2 - "T", // 0xe3 - "U", // 0xe4 - "V", // 0xe5 - "W", // 0xe6 - "X", // 0xe7 - "Y", // 0xe8 - "Z", // 0xe9 - "a", // 0xea - "b", // 0xeb - "c", // 0xec - "d", // 0xed - "e", // 0xee - "f", // 0xef - "g", // 0xf0 - "h", // 0xf1 - "i", // 0xf2 - "j", // 0xf3 - "k", // 0xf4 - "l", // 0xf5 - "m", // 0xf6 - "n", // 0xf7 - "o", // 0xf8 - "p", // 0xf9 - "q", // 0xfa - "r", // 0xfb - "s", // 0xfc - "t", // 0xfd - "u", // 0xfe - "v", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x1d5.go b/vendor/github.com/mozillazg/go-unidecode/table/x1d5.go deleted file mode 100644 index 31e628b..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x1d5.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x1d5 = []string{ - "w", // 0x00 - "x", // 0x01 - "y", // 0x02 - "z", // 0x03 - "A", // 0x04 - "B", // 0x05 - "", // 0x06 - "D", // 0x07 - "E", // 0x08 - "F", // 0x09 - "G", // 0x0a - "", // 0x0b - "", // 0x0c - "J", // 0x0d - "K", // 0x0e - "L", // 0x0f - "M", // 0x10 - "N", // 0x11 - "O", // 0x12 - "P", // 0x13 - "Q", // 0x14 - "", // 0x15 - "S", // 0x16 - "T", // 0x17 - "U", // 0x18 - "V", // 0x19 - "W", // 0x1a - "X", // 0x1b - "Y", // 0x1c - "", // 0x1d - "a", // 0x1e - "b", // 0x1f - "c", // 0x20 - "d", // 0x21 - "e", // 0x22 - "f", // 0x23 - "g", // 0x24 - "h", // 0x25 - "i", // 0x26 - "j", // 0x27 - "k", // 0x28 - "l", // 0x29 - "m", // 0x2a - "n", // 0x2b - "o", // 0x2c - "p", // 0x2d - "q", // 0x2e - "r", // 0x2f - "s", // 0x30 - "t", // 0x31 - "u", // 0x32 - "v", // 0x33 - "w", // 0x34 - "x", // 0x35 - "y", // 0x36 - "z", // 0x37 - "A", // 0x38 - "B", // 0x39 - "", // 0x3a - "D", // 0x3b - "E", // 0x3c - "F", // 0x3d - "G", // 0x3e - "", // 0x3f - "I", // 0x40 - "J", // 0x41 - "K", // 0x42 - "L", // 0x43 - "M", // 0x44 - "", // 0x45 - "O", // 0x46 - "", // 0x47 - "", // 0x48 - "", // 0x49 - "S", // 0x4a - "T", // 0x4b - "U", // 0x4c - "V", // 0x4d - "W", // 0x4e - "X", // 0x4f - "Y", // 0x50 - "", // 0x51 - "a", // 0x52 - "b", // 0x53 - "c", // 0x54 - "d", // 0x55 - "e", // 0x56 - "f", // 0x57 - "g", // 0x58 - "h", // 0x59 - "i", // 0x5a - "j", // 0x5b - "k", // 0x5c - "l", // 0x5d - "m", // 0x5e - "n", // 0x5f - "o", // 0x60 - "p", // 0x61 - "q", // 0x62 - "r", // 0x63 - "s", // 0x64 - "t", // 0x65 - "u", // 0x66 - "v", // 0x67 - "w", // 0x68 - "x", // 0x69 - "y", // 0x6a - "z", // 0x6b - "A", // 0x6c - "B", // 0x6d - "C", // 0x6e - "D", // 0x6f - "E", // 0x70 - "F", // 0x71 - "G", // 0x72 - "H", // 0x73 - "I", // 0x74 - "J", // 0x75 - "K", // 0x76 - "L", // 0x77 - "M", // 0x78 - "N", // 0x79 - "O", // 0x7a - "P", // 0x7b - "Q", // 0x7c - "R", // 0x7d - "S", // 0x7e - "T", // 0x7f - "U", // 0x80 - "V", // 0x81 - "W", // 0x82 - "X", // 0x83 - "Y", // 0x84 - "Z", // 0x85 - "a", // 0x86 - "b", // 0x87 - "c", // 0x88 - "d", // 0x89 - "e", // 0x8a - "f", // 0x8b - "g", // 0x8c - "h", // 0x8d - "i", // 0x8e - "j", // 0x8f - "k", // 0x90 - "l", // 0x91 - "m", // 0x92 - "n", // 0x93 - "o", // 0x94 - "p", // 0x95 - "q", // 0x96 - "r", // 0x97 - "s", // 0x98 - "t", // 0x99 - "u", // 0x9a - "v", // 0x9b - "w", // 0x9c - "x", // 0x9d - "y", // 0x9e - "z", // 0x9f - "A", // 0xa0 - "B", // 0xa1 - "C", // 0xa2 - "D", // 0xa3 - "E", // 0xa4 - "F", // 0xa5 - "G", // 0xa6 - "H", // 0xa7 - "I", // 0xa8 - "J", // 0xa9 - "K", // 0xaa - "L", // 0xab - "M", // 0xac - "N", // 0xad - "O", // 0xae - "P", // 0xaf - "Q", // 0xb0 - "R", // 0xb1 - "S", // 0xb2 - "T", // 0xb3 - "U", // 0xb4 - "V", // 0xb5 - "W", // 0xb6 - "X", // 0xb7 - "Y", // 0xb8 - "Z", // 0xb9 - "a", // 0xba - "b", // 0xbb - "c", // 0xbc - "d", // 0xbd - "e", // 0xbe - "f", // 0xbf - "g", // 0xc0 - "h", // 0xc1 - "i", // 0xc2 - "j", // 0xc3 - "k", // 0xc4 - "l", // 0xc5 - "m", // 0xc6 - "n", // 0xc7 - "o", // 0xc8 - "p", // 0xc9 - "q", // 0xca - "r", // 0xcb - "s", // 0xcc - "t", // 0xcd - "u", // 0xce - "v", // 0xcf - "w", // 0xd0 - "x", // 0xd1 - "y", // 0xd2 - "z", // 0xd3 - "A", // 0xd4 - "B", // 0xd5 - "C", // 0xd6 - "D", // 0xd7 - "E", // 0xd8 - "F", // 0xd9 - "G", // 0xda - "H", // 0xdb - "I", // 0xdc - "J", // 0xdd - "K", // 0xde - "L", // 0xdf - "M", // 0xe0 - "N", // 0xe1 - "O", // 0xe2 - "P", // 0xe3 - "Q", // 0xe4 - "R", // 0xe5 - "S", // 0xe6 - "T", // 0xe7 - "U", // 0xe8 - "V", // 0xe9 - "W", // 0xea - "X", // 0xeb - "Y", // 0xec - "Z", // 0xed - "a", // 0xee - "b", // 0xef - "c", // 0xf0 - "d", // 0xf1 - "e", // 0xf2 - "f", // 0xf3 - "g", // 0xf4 - "h", // 0xf5 - "i", // 0xf6 - "j", // 0xf7 - "k", // 0xf8 - "l", // 0xf9 - "m", // 0xfa - "n", // 0xfb - "o", // 0xfc - "p", // 0xfd - "q", // 0xfe - "r", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x1d6.go b/vendor/github.com/mozillazg/go-unidecode/table/x1d6.go deleted file mode 100644 index 5ebe676..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x1d6.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x1d6 = []string{ - "s", // 0x00 - "t", // 0x01 - "u", // 0x02 - "v", // 0x03 - "w", // 0x04 - "x", // 0x05 - "y", // 0x06 - "z", // 0x07 - "A", // 0x08 - "B", // 0x09 - "C", // 0x0a - "D", // 0x0b - "E", // 0x0c - "F", // 0x0d - "G", // 0x0e - "H", // 0x0f - "I", // 0x10 - "J", // 0x11 - "K", // 0x12 - "L", // 0x13 - "M", // 0x14 - "N", // 0x15 - "O", // 0x16 - "P", // 0x17 - "Q", // 0x18 - "R", // 0x19 - "S", // 0x1a - "T", // 0x1b - "U", // 0x1c - "V", // 0x1d - "W", // 0x1e - "X", // 0x1f - "Y", // 0x20 - "Z", // 0x21 - "a", // 0x22 - "b", // 0x23 - "c", // 0x24 - "d", // 0x25 - "e", // 0x26 - "f", // 0x27 - "g", // 0x28 - "h", // 0x29 - "i", // 0x2a - "j", // 0x2b - "k", // 0x2c - "l", // 0x2d - "m", // 0x2e - "n", // 0x2f - "o", // 0x30 - "p", // 0x31 - "q", // 0x32 - "r", // 0x33 - "s", // 0x34 - "t", // 0x35 - "u", // 0x36 - "v", // 0x37 - "w", // 0x38 - "x", // 0x39 - "y", // 0x3a - "z", // 0x3b - "A", // 0x3c - "B", // 0x3d - "C", // 0x3e - "D", // 0x3f - "E", // 0x40 - "F", // 0x41 - "G", // 0x42 - "H", // 0x43 - "I", // 0x44 - "J", // 0x45 - "K", // 0x46 - "L", // 0x47 - "M", // 0x48 - "N", // 0x49 - "O", // 0x4a - "P", // 0x4b - "Q", // 0x4c - "R", // 0x4d - "S", // 0x4e - "T", // 0x4f - "U", // 0x50 - "V", // 0x51 - "W", // 0x52 - "X", // 0x53 - "Y", // 0x54 - "Z", // 0x55 - "a", // 0x56 - "b", // 0x57 - "c", // 0x58 - "d", // 0x59 - "e", // 0x5a - "f", // 0x5b - "g", // 0x5c - "h", // 0x5d - "i", // 0x5e - "j", // 0x5f - "k", // 0x60 - "l", // 0x61 - "m", // 0x62 - "n", // 0x63 - "o", // 0x64 - "p", // 0x65 - "q", // 0x66 - "r", // 0x67 - "s", // 0x68 - "t", // 0x69 - "u", // 0x6a - "v", // 0x6b - "w", // 0x6c - "x", // 0x6d - "y", // 0x6e - "z", // 0x6f - "A", // 0x70 - "B", // 0x71 - "C", // 0x72 - "D", // 0x73 - "E", // 0x74 - "F", // 0x75 - "G", // 0x76 - "H", // 0x77 - "I", // 0x78 - "J", // 0x79 - "K", // 0x7a - "L", // 0x7b - "M", // 0x7c - "N", // 0x7d - "O", // 0x7e - "P", // 0x7f - "Q", // 0x80 - "R", // 0x81 - "S", // 0x82 - "T", // 0x83 - "U", // 0x84 - "V", // 0x85 - "W", // 0x86 - "X", // 0x87 - "Y", // 0x88 - "Z", // 0x89 - "a", // 0x8a - "b", // 0x8b - "c", // 0x8c - "d", // 0x8d - "e", // 0x8e - "f", // 0x8f - "g", // 0x90 - "h", // 0x91 - "i", // 0x92 - "j", // 0x93 - "k", // 0x94 - "l", // 0x95 - "m", // 0x96 - "n", // 0x97 - "o", // 0x98 - "p", // 0x99 - "q", // 0x9a - "r", // 0x9b - "s", // 0x9c - "t", // 0x9d - "u", // 0x9e - "v", // 0x9f - "w", // 0xa0 - "x", // 0xa1 - "y", // 0xa2 - "z", // 0xa3 - "i", // 0xa4 - "j", // 0xa5 - "", // 0xa6 - "", // 0xa7 - "Alpha", // 0xa8 - "Beta", // 0xa9 - "Gamma", // 0xaa - "Delta", // 0xab - "Epsilon", // 0xac - "Zeta", // 0xad - "Eta", // 0xae - "Theta", // 0xaf - "Iota", // 0xb0 - "Kappa", // 0xb1 - "Lamda", // 0xb2 - "Mu", // 0xb3 - "Nu", // 0xb4 - "Xi", // 0xb5 - "Omicron", // 0xb6 - "Pi", // 0xb7 - "Rho", // 0xb8 - "Theta", // 0xb9 - "Sigma", // 0xba - "Tau", // 0xbb - "Upsilon", // 0xbc - "Phi", // 0xbd - "Chi", // 0xbe - "Psi", // 0xbf - "Omega", // 0xc0 - "nabla", // 0xc1 - "alpha", // 0xc2 - "beta", // 0xc3 - "gamma", // 0xc4 - "delta", // 0xc5 - "epsilon", // 0xc6 - "zeta", // 0xc7 - "eta", // 0xc8 - "theta", // 0xc9 - "iota", // 0xca - "kappa", // 0xcb - "lamda", // 0xcc - "mu", // 0xcd - "nu", // 0xce - "xi", // 0xcf - "omicron", // 0xd0 - "pi", // 0xd1 - "rho", // 0xd2 - "sigma", // 0xd3 - "sigma", // 0xd4 - "tai", // 0xd5 - "upsilon", // 0xd6 - "phi", // 0xd7 - "chi", // 0xd8 - "psi", // 0xd9 - "omega", // 0xda - "", // 0xdb - "", // 0xdc - "", // 0xdd - "", // 0xde - "", // 0xdf - "", // 0xe0 - "", // 0xe1 - "", // 0xe2 - "", // 0xe3 - "", // 0xe4 - "", // 0xe5 - "", // 0xe6 - "", // 0xe7 - "", // 0xe8 - "", // 0xe9 - "", // 0xea - "", // 0xeb - "", // 0xec - "", // 0xed - "", // 0xee - "", // 0xef - "", // 0xf0 - "", // 0xf1 - "", // 0xf2 - "", // 0xf3 - "", // 0xf4 - "", // 0xf5 - "", // 0xf6 - "", // 0xf7 - "", // 0xf8 - "", // 0xf9 - "", // 0xfa - "", // 0xfb - "", // 0xfc - "", // 0xfd - "", // 0xfe - "", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/table/x1d7.go b/vendor/github.com/mozillazg/go-unidecode/table/x1d7.go deleted file mode 100644 index 7245fda..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/table/x1d7.go +++ /dev/null @@ -1,260 +0,0 @@ -package table - -var x1d7 = []string{ - "", // 0x00 - "", // 0x01 - "", // 0x02 - "", // 0x03 - "", // 0x04 - "", // 0x05 - "", // 0x06 - "", // 0x07 - "", // 0x08 - "", // 0x09 - "", // 0x0a - "", // 0x0b - "", // 0x0c - "", // 0x0d - "", // 0x0e - "", // 0x0f - "", // 0x10 - "", // 0x11 - "", // 0x12 - "", // 0x13 - "", // 0x14 - "", // 0x15 - "", // 0x16 - "", // 0x17 - "", // 0x18 - "", // 0x19 - "", // 0x1a - "", // 0x1b - "", // 0x1c - "", // 0x1d - "", // 0x1e - "", // 0x1f - "", // 0x20 - "", // 0x21 - "", // 0x22 - "", // 0x23 - "", // 0x24 - "", // 0x25 - "", // 0x26 - "", // 0x27 - "", // 0x28 - "", // 0x29 - "", // 0x2a - "", // 0x2b - "", // 0x2c - "", // 0x2d - "", // 0x2e - "", // 0x2f - "", // 0x30 - "", // 0x31 - "", // 0x32 - "", // 0x33 - "", // 0x34 - "", // 0x35 - "", // 0x36 - "", // 0x37 - "", // 0x38 - "", // 0x39 - "", // 0x3a - "", // 0x3b - "", // 0x3c - "", // 0x3d - "", // 0x3e - "", // 0x3f - "", // 0x40 - "", // 0x41 - "", // 0x42 - "", // 0x43 - "", // 0x44 - "", // 0x45 - "", // 0x46 - "", // 0x47 - "", // 0x48 - "", // 0x49 - "", // 0x4a - "", // 0x4b - "", // 0x4c - "", // 0x4d - "", // 0x4e - "", // 0x4f - "", // 0x50 - "", // 0x51 - "", // 0x52 - "", // 0x53 - "", // 0x54 - "", // 0x55 - "", // 0x56 - "", // 0x57 - "", // 0x58 - "", // 0x59 - "", // 0x5a - "", // 0x5b - "", // 0x5c - "", // 0x5d - "", // 0x5e - "", // 0x5f - "", // 0x60 - "", // 0x61 - "", // 0x62 - "", // 0x63 - "", // 0x64 - "", // 0x65 - "", // 0x66 - "", // 0x67 - "", // 0x68 - "", // 0x69 - "", // 0x6a - "", // 0x6b - "", // 0x6c - "", // 0x6d - "", // 0x6e - "", // 0x6f - "", // 0x70 - "", // 0x71 - "", // 0x72 - "", // 0x73 - "", // 0x74 - "", // 0x75 - "", // 0x76 - "", // 0x77 - "", // 0x78 - "", // 0x79 - "", // 0x7a - "", // 0x7b - "", // 0x7c - "", // 0x7d - "", // 0x7e - "", // 0x7f - "", // 0x80 - "", // 0x81 - "", // 0x82 - "", // 0x83 - "", // 0x84 - "", // 0x85 - "", // 0x86 - "", // 0x87 - "", // 0x88 - "", // 0x89 - "", // 0x8a - "", // 0x8b - "", // 0x8c - "", // 0x8d - "", // 0x8e - "", // 0x8f - "", // 0x90 - "", // 0x91 - "", // 0x92 - "", // 0x93 - "", // 0x94 - "", // 0x95 - "", // 0x96 - "", // 0x97 - "", // 0x98 - "", // 0x99 - "", // 0x9a - "", // 0x9b - "", // 0x9c - "", // 0x9d - "", // 0x9e - "", // 0x9f - "", // 0xa0 - "", // 0xa1 - "", // 0xa2 - "", // 0xa3 - "", // 0xa4 - "", // 0xa5 - "", // 0xa6 - "", // 0xa7 - "", // 0xa8 - "", // 0xa9 - "", // 0xaa - "", // 0xab - "", // 0xac - "", // 0xad - "", // 0xae - "", // 0xaf - "", // 0xb0 - "", // 0xb1 - "", // 0xb2 - "", // 0xb3 - "", // 0xb4 - "", // 0xb5 - "", // 0xb6 - "", // 0xb7 - "", // 0xb8 - "", // 0xb9 - "", // 0xba - "", // 0xbb - "", // 0xbc - "", // 0xbd - "", // 0xbe - "", // 0xbf - "", // 0xc0 - "", // 0xc1 - "", // 0xc2 - "", // 0xc3 - "", // 0xc4 - "", // 0xc5 - "", // 0xc6 - "", // 0xc7 - "", // 0xc8 - "", // 0xc9 - "", // 0xca - "", // 0xcb - "", // 0xcc - "", // 0xcd - "0", // 0xce - "1", // 0xcf - "2", // 0xd0 - "3", // 0xd1 - "4", // 0xd2 - "5", // 0xd3 - "6", // 0xd4 - "7", // 0xd5 - "8", // 0xd6 - "9", // 0xd7 - "0", // 0xd8 - "1", // 0xd9 - "2", // 0xda - "3", // 0xdb - "4", // 0xdc - "5", // 0xdd - "6", // 0xde - "7", // 0xdf - "8", // 0xe0 - "9", // 0xe1 - "0", // 0xe2 - "1", // 0xe3 - "2", // 0xe4 - "3", // 0xe5 - "4", // 0xe6 - "5", // 0xe7 - "6", // 0xe8 - "7", // 0xe9 - "8", // 0xea - "9", // 0xeb - "0", // 0xec - "1", // 0xed - "2", // 0xee - "3", // 0xef - "4", // 0xf0 - "5", // 0xf1 - "6", // 0xf2 - "7", // 0xf3 - "8", // 0xf4 - "9", // 0xf5 - "0", // 0xf6 - "1", // 0xf7 - "2", // 0xf8 - "3", // 0xf9 - "4", // 0xfa - "5", // 0xfb - "6", // 0xfc - "7", // 0xfd - "8", // 0xfe - "9", // 0xff -} diff --git a/vendor/github.com/mozillazg/go-unidecode/unidecode.go b/vendor/github.com/mozillazg/go-unidecode/unidecode.go deleted file mode 100644 index f9b781b..0000000 --- a/vendor/github.com/mozillazg/go-unidecode/unidecode.go +++ /dev/null @@ -1,42 +0,0 @@ -package unidecode - -import ( - "strings" - "unicode" - - "github.com/mozillazg/go-unidecode/table" -) - -// Version return version -func Version() string { - return "0.1.1" -} - -// Unidecode implements transliterate Unicode text into plain 7-bit ASCII. -// e.g. Unidecode("kožušček") => "kozuscek" -func Unidecode(s string) string { - return unidecode(s) -} - -func unidecode(s string) string { - ret := []string{} - for _, r := range s { - if r < unicode.MaxASCII { - v := string(r) - ret = append(ret, v) - continue - } - if r > 0xeffff { - continue - } - - section := r >> 8 // Chop off the last two hex digits - position := r % 256 // Last two hex digits - if tb, ok := table.Tables[section]; ok { - if len(tb) > int(position) { - ret = append(ret, tb[position]) - } - } - } - return strings.Join(ret, "") -} diff --git a/vendor/github.com/pkg/errors/.gitignore b/vendor/github.com/pkg/errors/.gitignore deleted file mode 100644 index daf913b..0000000 --- a/vendor/github.com/pkg/errors/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.test -*.prof diff --git a/vendor/github.com/pkg/errors/.travis.yml b/vendor/github.com/pkg/errors/.travis.yml deleted file mode 100644 index 9159de0..0000000 --- a/vendor/github.com/pkg/errors/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -language: go -go_import_path: github.com/pkg/errors -go: - - 1.11.x - - 1.12.x - - 1.13.x - - tip - -script: - - make check diff --git a/vendor/github.com/pkg/errors/LICENSE b/vendor/github.com/pkg/errors/LICENSE deleted file mode 100644 index 835ba3e..0000000 --- a/vendor/github.com/pkg/errors/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2015, Dave Cheney -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/pkg/errors/Makefile b/vendor/github.com/pkg/errors/Makefile deleted file mode 100644 index ce9d7cd..0000000 --- a/vendor/github.com/pkg/errors/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -PKGS := github.com/pkg/errors -SRCDIRS := $(shell go list -f '{{.Dir}}' $(PKGS)) -GO := go - -check: test vet gofmt misspell unconvert staticcheck ineffassign unparam - -test: - $(GO) test $(PKGS) - -vet: | test - $(GO) vet $(PKGS) - -staticcheck: - $(GO) get honnef.co/go/tools/cmd/staticcheck - staticcheck -checks all $(PKGS) - -misspell: - $(GO) get github.com/client9/misspell/cmd/misspell - misspell \ - -locale GB \ - -error \ - *.md *.go - -unconvert: - $(GO) get github.com/mdempsky/unconvert - unconvert -v $(PKGS) - -ineffassign: - $(GO) get github.com/gordonklaus/ineffassign - find $(SRCDIRS) -name '*.go' | xargs ineffassign - -pedantic: check errcheck - -unparam: - $(GO) get mvdan.cc/unparam - unparam ./... - -errcheck: - $(GO) get github.com/kisielk/errcheck - errcheck $(PKGS) - -gofmt: - @echo Checking code is gofmted - @test -z "$(shell gofmt -s -l -d -e $(SRCDIRS) | tee /dev/stderr)" diff --git a/vendor/github.com/pkg/errors/README.md b/vendor/github.com/pkg/errors/README.md deleted file mode 100644 index 54dfdcb..0000000 --- a/vendor/github.com/pkg/errors/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# errors [![Travis-CI](https://travis-ci.org/pkg/errors.svg)](https://travis-ci.org/pkg/errors) [![AppVeyor](https://ci.appveyor.com/api/projects/status/b98mptawhudj53ep/branch/master?svg=true)](https://ci.appveyor.com/project/davecheney/errors/branch/master) [![GoDoc](https://godoc.org/github.com/pkg/errors?status.svg)](http://godoc.org/github.com/pkg/errors) [![Report card](https://goreportcard.com/badge/github.com/pkg/errors)](https://goreportcard.com/report/github.com/pkg/errors) [![Sourcegraph](https://sourcegraph.com/github.com/pkg/errors/-/badge.svg)](https://sourcegraph.com/github.com/pkg/errors?badge) - -Package errors provides simple error handling primitives. - -`go get github.com/pkg/errors` - -The traditional error handling idiom in Go is roughly akin to -```go -if err != nil { - return err -} -``` -which applied recursively up the call stack results in error reports without context or debugging information. The errors package allows programmers to add context to the failure path in their code in a way that does not destroy the original value of the error. - -## Adding context to an error - -The errors.Wrap function returns a new error that adds context to the original error. For example -```go -_, err := ioutil.ReadAll(r) -if err != nil { - return errors.Wrap(err, "read failed") -} -``` -## Retrieving the cause of an error - -Using `errors.Wrap` constructs a stack of errors, adding context to the preceding error. Depending on the nature of the error it may be necessary to reverse the operation of errors.Wrap to retrieve the original error for inspection. Any error value which implements this interface can be inspected by `errors.Cause`. -```go -type causer interface { - Cause() error -} -``` -`errors.Cause` will recursively retrieve the topmost error which does not implement `causer`, which is assumed to be the original cause. For example: -```go -switch err := errors.Cause(err).(type) { -case *MyError: - // handle specifically -default: - // unknown error -} -``` - -[Read the package documentation for more information](https://godoc.org/github.com/pkg/errors). - -## Roadmap - -With the upcoming [Go2 error proposals](https://go.googlesource.com/proposal/+/master/design/go2draft.md) this package is moving into maintenance mode. The roadmap for a 1.0 release is as follows: - -- 0.9. Remove pre Go 1.9 and Go 1.10 support, address outstanding pull requests (if possible) -- 1.0. Final release. - -## Contributing - -Because of the Go2 errors changes, this package is not accepting proposals for new functionality. With that said, we welcome pull requests, bug fixes and issue reports. - -Before sending a PR, please discuss your change by raising an issue. - -## License - -BSD-2-Clause diff --git a/vendor/github.com/pkg/errors/appveyor.yml b/vendor/github.com/pkg/errors/appveyor.yml deleted file mode 100644 index a932ead..0000000 --- a/vendor/github.com/pkg/errors/appveyor.yml +++ /dev/null @@ -1,32 +0,0 @@ -version: build-{build}.{branch} - -clone_folder: C:\gopath\src\github.com\pkg\errors -shallow_clone: true # for startup speed - -environment: - GOPATH: C:\gopath - -platform: - - x64 - -# http://www.appveyor.com/docs/installed-software -install: - # some helpful output for debugging builds - - go version - - go env - # pre-installed MinGW at C:\MinGW is 32bit only - # but MSYS2 at C:\msys64 has mingw64 - - set PATH=C:\msys64\mingw64\bin;%PATH% - - gcc --version - - g++ --version - -build_script: - - go install -v ./... - -test_script: - - set PATH=C:\gopath\bin;%PATH% - - go test -v ./... - -#artifacts: -# - path: '%GOPATH%\bin\*.exe' -deploy: off diff --git a/vendor/github.com/pkg/errors/errors.go b/vendor/github.com/pkg/errors/errors.go deleted file mode 100644 index 161aea2..0000000 --- a/vendor/github.com/pkg/errors/errors.go +++ /dev/null @@ -1,288 +0,0 @@ -// Package errors provides simple error handling primitives. -// -// The traditional error handling idiom in Go is roughly akin to -// -// if err != nil { -// return err -// } -// -// which when applied recursively up the call stack results in error reports -// without context or debugging information. The errors package allows -// programmers to add context to the failure path in their code in a way -// that does not destroy the original value of the error. -// -// Adding context to an error -// -// The errors.Wrap function returns a new error that adds context to the -// original error by recording a stack trace at the point Wrap is called, -// together with the supplied message. For example -// -// _, err := ioutil.ReadAll(r) -// if err != nil { -// return errors.Wrap(err, "read failed") -// } -// -// If additional control is required, the errors.WithStack and -// errors.WithMessage functions destructure errors.Wrap into its component -// operations: annotating an error with a stack trace and with a message, -// respectively. -// -// Retrieving the cause of an error -// -// Using errors.Wrap constructs a stack of errors, adding context to the -// preceding error. Depending on the nature of the error it may be necessary -// to reverse the operation of errors.Wrap to retrieve the original error -// for inspection. Any error value which implements this interface -// -// type causer interface { -// Cause() error -// } -// -// can be inspected by errors.Cause. errors.Cause will recursively retrieve -// the topmost error that does not implement causer, which is assumed to be -// the original cause. For example: -// -// switch err := errors.Cause(err).(type) { -// case *MyError: -// // handle specifically -// default: -// // unknown error -// } -// -// Although the causer interface is not exported by this package, it is -// considered a part of its stable public interface. -// -// Formatted printing of errors -// -// All error values returned from this package implement fmt.Formatter and can -// be formatted by the fmt package. The following verbs are supported: -// -// %s print the error. If the error has a Cause it will be -// printed recursively. -// %v see %s -// %+v extended format. Each Frame of the error's StackTrace will -// be printed in detail. -// -// Retrieving the stack trace of an error or wrapper -// -// New, Errorf, Wrap, and Wrapf record a stack trace at the point they are -// invoked. This information can be retrieved with the following interface: -// -// type stackTracer interface { -// StackTrace() errors.StackTrace -// } -// -// The returned errors.StackTrace type is defined as -// -// type StackTrace []Frame -// -// The Frame type represents a call site in the stack trace. Frame supports -// the fmt.Formatter interface that can be used for printing information about -// the stack trace of this error. For example: -// -// if err, ok := err.(stackTracer); ok { -// for _, f := range err.StackTrace() { -// fmt.Printf("%+s:%d\n", f, f) -// } -// } -// -// Although the stackTracer interface is not exported by this package, it is -// considered a part of its stable public interface. -// -// See the documentation for Frame.Format for more details. -package errors - -import ( - "fmt" - "io" -) - -// New returns an error with the supplied message. -// New also records the stack trace at the point it was called. -func New(message string) error { - return &fundamental{ - msg: message, - stack: callers(), - } -} - -// Errorf formats according to a format specifier and returns the string -// as a value that satisfies error. -// Errorf also records the stack trace at the point it was called. -func Errorf(format string, args ...interface{}) error { - return &fundamental{ - msg: fmt.Sprintf(format, args...), - stack: callers(), - } -} - -// fundamental is an error that has a message and a stack, but no caller. -type fundamental struct { - msg string - *stack -} - -func (f *fundamental) Error() string { return f.msg } - -func (f *fundamental) Format(s fmt.State, verb rune) { - switch verb { - case 'v': - if s.Flag('+') { - io.WriteString(s, f.msg) - f.stack.Format(s, verb) - return - } - fallthrough - case 's': - io.WriteString(s, f.msg) - case 'q': - fmt.Fprintf(s, "%q", f.msg) - } -} - -// WithStack annotates err with a stack trace at the point WithStack was called. -// If err is nil, WithStack returns nil. -func WithStack(err error) error { - if err == nil { - return nil - } - return &withStack{ - err, - callers(), - } -} - -type withStack struct { - error - *stack -} - -func (w *withStack) Cause() error { return w.error } - -// Unwrap provides compatibility for Go 1.13 error chains. -func (w *withStack) Unwrap() error { return w.error } - -func (w *withStack) Format(s fmt.State, verb rune) { - switch verb { - case 'v': - if s.Flag('+') { - fmt.Fprintf(s, "%+v", w.Cause()) - w.stack.Format(s, verb) - return - } - fallthrough - case 's': - io.WriteString(s, w.Error()) - case 'q': - fmt.Fprintf(s, "%q", w.Error()) - } -} - -// Wrap returns an error annotating err with a stack trace -// at the point Wrap is called, and the supplied message. -// If err is nil, Wrap returns nil. -func Wrap(err error, message string) error { - if err == nil { - return nil - } - err = &withMessage{ - cause: err, - msg: message, - } - return &withStack{ - err, - callers(), - } -} - -// Wrapf returns an error annotating err with a stack trace -// at the point Wrapf is called, and the format specifier. -// If err is nil, Wrapf returns nil. -func Wrapf(err error, format string, args ...interface{}) error { - if err == nil { - return nil - } - err = &withMessage{ - cause: err, - msg: fmt.Sprintf(format, args...), - } - return &withStack{ - err, - callers(), - } -} - -// WithMessage annotates err with a new message. -// If err is nil, WithMessage returns nil. -func WithMessage(err error, message string) error { - if err == nil { - return nil - } - return &withMessage{ - cause: err, - msg: message, - } -} - -// WithMessagef annotates err with the format specifier. -// If err is nil, WithMessagef returns nil. -func WithMessagef(err error, format string, args ...interface{}) error { - if err == nil { - return nil - } - return &withMessage{ - cause: err, - msg: fmt.Sprintf(format, args...), - } -} - -type withMessage struct { - cause error - msg string -} - -func (w *withMessage) Error() string { return w.msg + ": " + w.cause.Error() } -func (w *withMessage) Cause() error { return w.cause } - -// Unwrap provides compatibility for Go 1.13 error chains. -func (w *withMessage) Unwrap() error { return w.cause } - -func (w *withMessage) Format(s fmt.State, verb rune) { - switch verb { - case 'v': - if s.Flag('+') { - fmt.Fprintf(s, "%+v\n", w.Cause()) - io.WriteString(s, w.msg) - return - } - fallthrough - case 's', 'q': - io.WriteString(s, w.Error()) - } -} - -// Cause returns the underlying cause of the error, if possible. -// An error value has a cause if it implements the following -// interface: -// -// type causer interface { -// Cause() error -// } -// -// If the error does not implement Cause, the original error will -// be returned. If the error is nil, nil will be returned without further -// investigation. -func Cause(err error) error { - type causer interface { - Cause() error - } - - for err != nil { - cause, ok := err.(causer) - if !ok { - break - } - err = cause.Cause() - } - return err -} diff --git a/vendor/github.com/pkg/errors/go113.go b/vendor/github.com/pkg/errors/go113.go deleted file mode 100644 index be0d10d..0000000 --- a/vendor/github.com/pkg/errors/go113.go +++ /dev/null @@ -1,38 +0,0 @@ -// +build go1.13 - -package errors - -import ( - stderrors "errors" -) - -// Is reports whether any error in err's chain matches target. -// -// The chain consists of err itself followed by the sequence of errors obtained by -// repeatedly calling Unwrap. -// -// An error is considered to match a target if it is equal to that target or if -// it implements a method Is(error) bool such that Is(target) returns true. -func Is(err, target error) bool { return stderrors.Is(err, target) } - -// As finds the first error in err's chain that matches target, and if so, sets -// target to that error value and returns true. -// -// The chain consists of err itself followed by the sequence of errors obtained by -// repeatedly calling Unwrap. -// -// An error matches target if the error's concrete value is assignable to the value -// pointed to by target, or if the error has a method As(interface{}) bool such that -// As(target) returns true. In the latter case, the As method is responsible for -// setting target. -// -// As will panic if target is not a non-nil pointer to either a type that implements -// error, or to any interface type. As returns false if err is nil. -func As(err error, target interface{}) bool { return stderrors.As(err, target) } - -// Unwrap returns the result of calling the Unwrap method on err, if err's -// type contains an Unwrap method returning error. -// Otherwise, Unwrap returns nil. -func Unwrap(err error) error { - return stderrors.Unwrap(err) -} diff --git a/vendor/github.com/pkg/errors/stack.go b/vendor/github.com/pkg/errors/stack.go deleted file mode 100644 index 779a834..0000000 --- a/vendor/github.com/pkg/errors/stack.go +++ /dev/null @@ -1,177 +0,0 @@ -package errors - -import ( - "fmt" - "io" - "path" - "runtime" - "strconv" - "strings" -) - -// Frame represents a program counter inside a stack frame. -// For historical reasons if Frame is interpreted as a uintptr -// its value represents the program counter + 1. -type Frame uintptr - -// pc returns the program counter for this frame; -// multiple frames may have the same PC value. -func (f Frame) pc() uintptr { return uintptr(f) - 1 } - -// file returns the full path to the file that contains the -// function for this Frame's pc. -func (f Frame) file() string { - fn := runtime.FuncForPC(f.pc()) - if fn == nil { - return "unknown" - } - file, _ := fn.FileLine(f.pc()) - return file -} - -// line returns the line number of source code of the -// function for this Frame's pc. -func (f Frame) line() int { - fn := runtime.FuncForPC(f.pc()) - if fn == nil { - return 0 - } - _, line := fn.FileLine(f.pc()) - return line -} - -// name returns the name of this function, if known. -func (f Frame) name() string { - fn := runtime.FuncForPC(f.pc()) - if fn == nil { - return "unknown" - } - return fn.Name() -} - -// Format formats the frame according to the fmt.Formatter interface. -// -// %s source file -// %d source line -// %n function name -// %v equivalent to %s:%d -// -// Format accepts flags that alter the printing of some verbs, as follows: -// -// %+s function name and path of source file relative to the compile time -// GOPATH separated by \n\t (\n\t) -// %+v equivalent to %+s:%d -func (f Frame) Format(s fmt.State, verb rune) { - switch verb { - case 's': - switch { - case s.Flag('+'): - io.WriteString(s, f.name()) - io.WriteString(s, "\n\t") - io.WriteString(s, f.file()) - default: - io.WriteString(s, path.Base(f.file())) - } - case 'd': - io.WriteString(s, strconv.Itoa(f.line())) - case 'n': - io.WriteString(s, funcname(f.name())) - case 'v': - f.Format(s, 's') - io.WriteString(s, ":") - f.Format(s, 'd') - } -} - -// MarshalText formats a stacktrace Frame as a text string. The output is the -// same as that of fmt.Sprintf("%+v", f), but without newlines or tabs. -func (f Frame) MarshalText() ([]byte, error) { - name := f.name() - if name == "unknown" { - return []byte(name), nil - } - return []byte(fmt.Sprintf("%s %s:%d", name, f.file(), f.line())), nil -} - -// StackTrace is stack of Frames from innermost (newest) to outermost (oldest). -type StackTrace []Frame - -// Format formats the stack of Frames according to the fmt.Formatter interface. -// -// %s lists source files for each Frame in the stack -// %v lists the source file and line number for each Frame in the stack -// -// Format accepts flags that alter the printing of some verbs, as follows: -// -// %+v Prints filename, function, and line number for each Frame in the stack. -func (st StackTrace) Format(s fmt.State, verb rune) { - switch verb { - case 'v': - switch { - case s.Flag('+'): - for _, f := range st { - io.WriteString(s, "\n") - f.Format(s, verb) - } - case s.Flag('#'): - fmt.Fprintf(s, "%#v", []Frame(st)) - default: - st.formatSlice(s, verb) - } - case 's': - st.formatSlice(s, verb) - } -} - -// formatSlice will format this StackTrace into the given buffer as a slice of -// Frame, only valid when called with '%s' or '%v'. -func (st StackTrace) formatSlice(s fmt.State, verb rune) { - io.WriteString(s, "[") - for i, f := range st { - if i > 0 { - io.WriteString(s, " ") - } - f.Format(s, verb) - } - io.WriteString(s, "]") -} - -// stack represents a stack of program counters. -type stack []uintptr - -func (s *stack) Format(st fmt.State, verb rune) { - switch verb { - case 'v': - switch { - case st.Flag('+'): - for _, pc := range *s { - f := Frame(pc) - fmt.Fprintf(st, "\n%+v", f) - } - } - } -} - -func (s *stack) StackTrace() StackTrace { - f := make([]Frame, len(*s)) - for i := 0; i < len(f); i++ { - f[i] = Frame((*s)[i]) - } - return f -} - -func callers() *stack { - const depth = 32 - var pcs [depth]uintptr - n := runtime.Callers(3, pcs[:]) - var st stack = pcs[0:n] - return &st -} - -// funcname removes the path prefix component of a function's name reported by func.Name(). -func funcname(name string) string { - i := strings.LastIndex(name, "/") - name = name[i+1:] - i = strings.Index(name, ".") - return name[i+1:] -} diff --git a/vendor/github.com/robfig/cron/v3/.gitignore b/vendor/github.com/robfig/cron/v3/.gitignore deleted file mode 100644 index 0026861..0000000 --- a/vendor/github.com/robfig/cron/v3/.gitignore +++ /dev/null @@ -1,22 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe diff --git a/vendor/github.com/robfig/cron/v3/.travis.yml b/vendor/github.com/robfig/cron/v3/.travis.yml deleted file mode 100644 index 4f2ee4d..0000000 --- a/vendor/github.com/robfig/cron/v3/.travis.yml +++ /dev/null @@ -1 +0,0 @@ -language: go diff --git a/vendor/github.com/robfig/cron/v3/LICENSE b/vendor/github.com/robfig/cron/v3/LICENSE deleted file mode 100644 index 3a0f627..0000000 --- a/vendor/github.com/robfig/cron/v3/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (C) 2012 Rob Figueiredo -All Rights Reserved. - -MIT LICENSE - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/robfig/cron/v3/README.md b/vendor/github.com/robfig/cron/v3/README.md deleted file mode 100644 index 8db4f55..0000000 --- a/vendor/github.com/robfig/cron/v3/README.md +++ /dev/null @@ -1,125 +0,0 @@ -[![GoDoc](http://godoc.org/github.com/robfig/cron?status.png)](http://godoc.org/github.com/robfig/cron) -[![Build Status](https://travis-ci.org/robfig/cron.svg?branch=master)](https://travis-ci.org/robfig/cron) - -# cron - -Cron V3 has been released! - -To download the specific tagged release, run: - - go get github.com/robfig/cron/v3@v3.0.0 - -Import it in your program as: - - import "github.com/robfig/cron/v3" - -It requires Go 1.11 or later due to usage of Go Modules. - -Refer to the documentation here: -http://godoc.org/github.com/robfig/cron - -The rest of this document describes the the advances in v3 and a list of -breaking changes for users that wish to upgrade from an earlier version. - -## Upgrading to v3 (June 2019) - -cron v3 is a major upgrade to the library that addresses all outstanding bugs, -feature requests, and rough edges. It is based on a merge of master which -contains various fixes to issues found over the years and the v2 branch which -contains some backwards-incompatible features like the ability to remove cron -jobs. In addition, v3 adds support for Go Modules, cleans up rough edges like -the timezone support, and fixes a number of bugs. - -New features: - -- Support for Go modules. Callers must now import this library as - `github.com/robfig/cron/v3`, instead of `gopkg.in/...` - -- Fixed bugs: - - 0f01e6b parser: fix combining of Dow and Dom (#70) - - dbf3220 adjust times when rolling the clock forward to handle non-existent midnight (#157) - - eeecf15 spec_test.go: ensure an error is returned on 0 increment (#144) - - 70971dc cron.Entries(): update request for snapshot to include a reply channel (#97) - - 1cba5e6 cron: fix: removing a job causes the next scheduled job to run too late (#206) - -- Standard cron spec parsing by default (first field is "minute"), with an easy - way to opt into the seconds field (quartz-compatible). Although, note that the - year field (optional in Quartz) is not supported. - -- Extensible, key/value logging via an interface that complies with - the https://github.com/go-logr/logr project. - -- The new Chain & JobWrapper types allow you to install "interceptors" to add - cross-cutting behavior like the following: - - Recover any panics from jobs - - Delay a job's execution if the previous run hasn't completed yet - - Skip a job's execution if the previous run hasn't completed yet - - Log each job's invocations - - Notification when jobs are completed - -It is backwards incompatible with both v1 and v2. These updates are required: - -- The v1 branch accepted an optional seconds field at the beginning of the cron - spec. This is non-standard and has led to a lot of confusion. The new default - parser conforms to the standard as described by [the Cron wikipedia page]. - - UPDATING: To retain the old behavior, construct your Cron with a custom - parser: - - // Seconds field, required - cron.New(cron.WithSeconds()) - - // Seconds field, optional - cron.New( - cron.WithParser( - cron.SecondOptional | cron.Hour | cron.Dom | cron.Month | cron.Dow | cron.Descriptor)) - -- The Cron type now accepts functional options on construction rather than the - previous ad-hoc behavior modification mechanisms (setting a field, calling a setter). - - UPDATING: Code that sets Cron.ErrorLogger or calls Cron.SetLocation must be - updated to provide those values on construction. - -- CRON_TZ is now the recommended way to specify the timezone of a single - schedule, which is sanctioned by the specification. The legacy "TZ=" prefix - will continue to be supported since it is unambiguous and easy to do so. - - UPDATING: No update is required. - -- By default, cron will no longer recover panics in jobs that it runs. - Recovering can be surprising (see issue #192) and seems to be at odds with - typical behavior of libraries. Relatedly, the `cron.WithPanicLogger` option - has been removed to accommodate the more general JobWrapper type. - - UPDATING: To opt into panic recovery and configure the panic logger: - - cron.New(cron.WithChain( - cron.Recover(logger), // or use cron.DefaultLogger - )) - -- In adding support for https://github.com/go-logr/logr, `cron.WithVerboseLogger` was - removed, since it is duplicative with the leveled logging. - - UPDATING: Callers should use `WithLogger` and specify a logger that does not - discard `Info` logs. For convenience, one is provided that wraps `*log.Logger`: - - cron.New( - cron.WithLogger(cron.VerbosePrintfLogger(logger))) - - -### Background - Cron spec format - -There are two cron spec formats in common usage: - -- The "standard" cron format, described on [the Cron wikipedia page] and used by - the cron Linux system utility. - -- The cron format used by [the Quartz Scheduler], commonly used for scheduled - jobs in Java software - -[the Cron wikipedia page]: https://en.wikipedia.org/wiki/Cron -[the Quartz Scheduler]: http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger.html - -The original version of this package included an optional "seconds" field, which -made it incompatible with both of these formats. Now, the "standard" format is -the default format accepted, and the Quartz format is opt-in. diff --git a/vendor/github.com/robfig/cron/v3/chain.go b/vendor/github.com/robfig/cron/v3/chain.go deleted file mode 100644 index 118e5bb..0000000 --- a/vendor/github.com/robfig/cron/v3/chain.go +++ /dev/null @@ -1,92 +0,0 @@ -package cron - -import ( - "fmt" - "runtime" - "sync" - "time" -) - -// JobWrapper decorates the given Job with some behavior. -type JobWrapper func(Job) Job - -// Chain is a sequence of JobWrappers that decorates submitted jobs with -// cross-cutting behaviors like logging or synchronization. -type Chain struct { - wrappers []JobWrapper -} - -// NewChain returns a Chain consisting of the given JobWrappers. -func NewChain(c ...JobWrapper) Chain { - return Chain{c} -} - -// Then decorates the given job with all JobWrappers in the chain. -// -// This: -// NewChain(m1, m2, m3).Then(job) -// is equivalent to: -// m1(m2(m3(job))) -func (c Chain) Then(j Job) Job { - for i := range c.wrappers { - j = c.wrappers[len(c.wrappers)-i-1](j) - } - return j -} - -// Recover panics in wrapped jobs and log them with the provided logger. -func Recover(logger Logger) JobWrapper { - return func(j Job) Job { - return FuncJob(func() { - defer func() { - if r := recover(); r != nil { - const size = 64 << 10 - buf := make([]byte, size) - buf = buf[:runtime.Stack(buf, false)] - err, ok := r.(error) - if !ok { - err = fmt.Errorf("%v", r) - } - logger.Error(err, "panic", "stack", "...\n"+string(buf)) - } - }() - j.Run() - }) - } -} - -// DelayIfStillRunning serializes jobs, delaying subsequent runs until the -// previous one is complete. Jobs running after a delay of more than a minute -// have the delay logged at Info. -func DelayIfStillRunning(logger Logger) JobWrapper { - return func(j Job) Job { - var mu sync.Mutex - return FuncJob(func() { - start := time.Now() - mu.Lock() - defer mu.Unlock() - if dur := time.Since(start); dur > time.Minute { - logger.Info("delay", "duration", dur) - } - j.Run() - }) - } -} - -// SkipIfStillRunning skips an invocation of the Job if a previous invocation is -// still running. It logs skips to the given logger at Info level. -func SkipIfStillRunning(logger Logger) JobWrapper { - var ch = make(chan struct{}, 1) - ch <- struct{}{} - return func(j Job) Job { - return FuncJob(func() { - select { - case v := <-ch: - j.Run() - ch <- v - default: - logger.Info("skip") - } - }) - } -} diff --git a/vendor/github.com/robfig/cron/v3/constantdelay.go b/vendor/github.com/robfig/cron/v3/constantdelay.go deleted file mode 100644 index cd6e7b1..0000000 --- a/vendor/github.com/robfig/cron/v3/constantdelay.go +++ /dev/null @@ -1,27 +0,0 @@ -package cron - -import "time" - -// ConstantDelaySchedule represents a simple recurring duty cycle, e.g. "Every 5 minutes". -// It does not support jobs more frequent than once a second. -type ConstantDelaySchedule struct { - Delay time.Duration -} - -// Every returns a crontab Schedule that activates once every duration. -// Delays of less than a second are not supported (will round up to 1 second). -// Any fields less than a Second are truncated. -func Every(duration time.Duration) ConstantDelaySchedule { - if duration < time.Second { - duration = time.Second - } - return ConstantDelaySchedule{ - Delay: duration - time.Duration(duration.Nanoseconds())%time.Second, - } -} - -// Next returns the next time this should be run. -// This rounds so that the next activation time will be on the second. -func (schedule ConstantDelaySchedule) Next(t time.Time) time.Time { - return t.Add(schedule.Delay - time.Duration(t.Nanosecond())*time.Nanosecond) -} diff --git a/vendor/github.com/robfig/cron/v3/cron.go b/vendor/github.com/robfig/cron/v3/cron.go deleted file mode 100644 index f6e451d..0000000 --- a/vendor/github.com/robfig/cron/v3/cron.go +++ /dev/null @@ -1,350 +0,0 @@ -package cron - -import ( - "context" - "sort" - "sync" - "time" -) - -// Cron keeps track of any number of entries, invoking the associated func as -// specified by the schedule. It may be started, stopped, and the entries may -// be inspected while running. -type Cron struct { - entries []*Entry - chain Chain - stop chan struct{} - add chan *Entry - remove chan EntryID - snapshot chan chan []Entry - running bool - logger Logger - runningMu sync.Mutex - location *time.Location - parser Parser - nextID EntryID - jobWaiter sync.WaitGroup -} - -// Job is an interface for submitted cron jobs. -type Job interface { - Run() -} - -// Schedule describes a job's duty cycle. -type Schedule interface { - // Next returns the next activation time, later than the given time. - // Next is invoked initially, and then each time the job is run. - Next(time.Time) time.Time -} - -// EntryID identifies an entry within a Cron instance -type EntryID int - -// Entry consists of a schedule and the func to execute on that schedule. -type Entry struct { - // ID is the cron-assigned ID of this entry, which may be used to look up a - // snapshot or remove it. - ID EntryID - - // Schedule on which this job should be run. - Schedule Schedule - - // Next time the job will run, or the zero time if Cron has not been - // started or this entry's schedule is unsatisfiable - Next time.Time - - // Prev is the last time this job was run, or the zero time if never. - Prev time.Time - - // WrappedJob is the thing to run when the Schedule is activated. - WrappedJob Job - - // Job is the thing that was submitted to cron. - // It is kept around so that user code that needs to get at the job later, - // e.g. via Entries() can do so. - Job Job -} - -// Valid returns true if this is not the zero entry. -func (e Entry) Valid() bool { return e.ID != 0 } - -// byTime is a wrapper for sorting the entry array by time -// (with zero time at the end). -type byTime []*Entry - -func (s byTime) Len() int { return len(s) } -func (s byTime) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s byTime) Less(i, j int) bool { - // Two zero times should return false. - // Otherwise, zero is "greater" than any other time. - // (To sort it at the end of the list.) - if s[i].Next.IsZero() { - return false - } - if s[j].Next.IsZero() { - return true - } - return s[i].Next.Before(s[j].Next) -} - -// New returns a new Cron job runner, modified by the given options. -// -// Available Settings -// -// Time Zone -// Description: The time zone in which schedules are interpreted -// Default: time.Local -// -// Parser -// Description: Parser converts cron spec strings into cron.Schedules. -// Default: Accepts this spec: https://en.wikipedia.org/wiki/Cron -// -// Chain -// Description: Wrap submitted jobs to customize behavior. -// Default: A chain that recovers panics and logs them to stderr. -// -// See "cron.With*" to modify the default behavior. -func New(opts ...Option) *Cron { - c := &Cron{ - entries: nil, - chain: NewChain(), - add: make(chan *Entry), - stop: make(chan struct{}), - snapshot: make(chan chan []Entry), - remove: make(chan EntryID), - running: false, - runningMu: sync.Mutex{}, - logger: DefaultLogger, - location: time.Local, - parser: standardParser, - } - for _, opt := range opts { - opt(c) - } - return c -} - -// FuncJob is a wrapper that turns a func() into a cron.Job -type FuncJob func() - -func (f FuncJob) Run() { f() } - -// AddFunc adds a func to the Cron to be run on the given schedule. -// The spec is parsed using the time zone of this Cron instance as the default. -// An opaque ID is returned that can be used to later remove it. -func (c *Cron) AddFunc(spec string, cmd func()) (EntryID, error) { - return c.AddJob(spec, FuncJob(cmd)) -} - -// AddJob adds a Job to the Cron to be run on the given schedule. -// The spec is parsed using the time zone of this Cron instance as the default. -// An opaque ID is returned that can be used to later remove it. -func (c *Cron) AddJob(spec string, cmd Job) (EntryID, error) { - schedule, err := c.parser.Parse(spec) - if err != nil { - return 0, err - } - return c.Schedule(schedule, cmd), nil -} - -// Schedule adds a Job to the Cron to be run on the given schedule. -// The job is wrapped with the configured Chain. -func (c *Cron) Schedule(schedule Schedule, cmd Job) EntryID { - c.runningMu.Lock() - defer c.runningMu.Unlock() - c.nextID++ - entry := &Entry{ - ID: c.nextID, - Schedule: schedule, - WrappedJob: c.chain.Then(cmd), - Job: cmd, - } - if !c.running { - c.entries = append(c.entries, entry) - } else { - c.add <- entry - } - return entry.ID -} - -// Entries returns a snapshot of the cron entries. -func (c *Cron) Entries() []Entry { - c.runningMu.Lock() - defer c.runningMu.Unlock() - if c.running { - replyChan := make(chan []Entry, 1) - c.snapshot <- replyChan - return <-replyChan - } - return c.entrySnapshot() -} - -// Location gets the time zone location -func (c *Cron) Location() *time.Location { - return c.location -} - -// Entry returns a snapshot of the given entry, or nil if it couldn't be found. -func (c *Cron) Entry(id EntryID) Entry { - for _, entry := range c.Entries() { - if id == entry.ID { - return entry - } - } - return Entry{} -} - -// Remove an entry from being run in the future. -func (c *Cron) Remove(id EntryID) { - c.runningMu.Lock() - defer c.runningMu.Unlock() - if c.running { - c.remove <- id - } else { - c.removeEntry(id) - } -} - -// Start the cron scheduler in its own goroutine, or no-op if already started. -func (c *Cron) Start() { - c.runningMu.Lock() - defer c.runningMu.Unlock() - if c.running { - return - } - c.running = true - go c.run() -} - -// Run the cron scheduler, or no-op if already running. -func (c *Cron) Run() { - c.runningMu.Lock() - if c.running { - c.runningMu.Unlock() - return - } - c.running = true - c.runningMu.Unlock() - c.run() -} - -// run the scheduler.. this is private just due to the need to synchronize -// access to the 'running' state variable. -func (c *Cron) run() { - c.logger.Info("start") - - // Figure out the next activation times for each entry. - now := c.now() - for _, entry := range c.entries { - entry.Next = entry.Schedule.Next(now) - c.logger.Info("schedule", "now", now, "entry", entry.ID, "next", entry.Next) - } - - for { - // Determine the next entry to run. - sort.Sort(byTime(c.entries)) - - var timer *time.Timer - if len(c.entries) == 0 || c.entries[0].Next.IsZero() { - // If there are no entries yet, just sleep - it still handles new entries - // and stop requests. - timer = time.NewTimer(100000 * time.Hour) - } else { - timer = time.NewTimer(c.entries[0].Next.Sub(now)) - } - - for { - select { - case now = <-timer.C: - now = now.In(c.location) - c.logger.Info("wake", "now", now) - - // Run every entry whose next time was less than now - for _, e := range c.entries { - if e.Next.After(now) || e.Next.IsZero() { - break - } - c.startJob(e.WrappedJob) - e.Prev = e.Next - e.Next = e.Schedule.Next(now) - c.logger.Info("run", "now", now, "entry", e.ID, "next", e.Next) - } - - case newEntry := <-c.add: - timer.Stop() - now = c.now() - newEntry.Next = newEntry.Schedule.Next(now) - c.entries = append(c.entries, newEntry) - c.logger.Info("added", "now", now, "entry", newEntry.ID, "next", newEntry.Next) - - case replyChan := <-c.snapshot: - replyChan <- c.entrySnapshot() - continue - - case <-c.stop: - timer.Stop() - c.logger.Info("stop") - return - - case id := <-c.remove: - timer.Stop() - now = c.now() - c.removeEntry(id) - c.logger.Info("removed", "entry", id) - } - - break - } - } -} - -// startJob runs the given job in a new goroutine. -func (c *Cron) startJob(j Job) { - c.jobWaiter.Add(1) - go func() { - defer c.jobWaiter.Done() - j.Run() - }() -} - -// now returns current time in c location -func (c *Cron) now() time.Time { - return time.Now().In(c.location) -} - -// Stop stops the cron scheduler if it is running; otherwise it does nothing. -// A context is returned so the caller can wait for running jobs to complete. -func (c *Cron) Stop() context.Context { - c.runningMu.Lock() - defer c.runningMu.Unlock() - if c.running { - c.stop <- struct{}{} - c.running = false - } - ctx, cancel := context.WithCancel(context.Background()) - go func() { - c.jobWaiter.Wait() - cancel() - }() - return ctx -} - -// entrySnapshot returns a copy of the current cron entry list. -func (c *Cron) entrySnapshot() []Entry { - var entries = make([]Entry, len(c.entries)) - for i, e := range c.entries { - entries[i] = *e - } - return entries -} - -func (c *Cron) removeEntry(id EntryID) { - var entries []*Entry - for _, e := range c.entries { - if e.ID != id { - entries = append(entries, e) - } - } - c.entries = entries -} diff --git a/vendor/github.com/robfig/cron/v3/doc.go b/vendor/github.com/robfig/cron/v3/doc.go deleted file mode 100644 index ac6b4b0..0000000 --- a/vendor/github.com/robfig/cron/v3/doc.go +++ /dev/null @@ -1,212 +0,0 @@ -/* -Package cron implements a cron spec parser and job runner. - -Usage - -Callers may register Funcs to be invoked on a given schedule. Cron will run -them in their own goroutines. - - c := cron.New() - c.AddFunc("30 * * * *", func() { fmt.Println("Every hour on the half hour") }) - c.AddFunc("30 3-6,20-23 * * *", func() { fmt.Println(".. in the range 3-6am, 8-11pm") }) - c.AddFunc("CRON_TZ=Asia/Tokyo 30 04 * * * *", func() { fmt.Println("Runs at 04:30 Tokyo time every day") }) - c.AddFunc("@hourly", func() { fmt.Println("Every hour, starting an hour from now") }) - c.AddFunc("@every 1h30m", func() { fmt.Println("Every hour thirty, starting an hour thirty from now") }) - c.Start() - .. - // Funcs are invoked in their own goroutine, asynchronously. - ... - // Funcs may also be added to a running Cron - c.AddFunc("@daily", func() { fmt.Println("Every day") }) - .. - // Inspect the cron job entries' next and previous run times. - inspect(c.Entries()) - .. - c.Stop() // Stop the scheduler (does not stop any jobs already running). - -CRON Expression Format - -A cron expression represents a set of times, using 5 space-separated fields. - - Field name | Mandatory? | Allowed values | Allowed special characters - ---------- | ---------- | -------------- | -------------------------- - Minutes | Yes | 0-59 | * / , - - Hours | Yes | 0-23 | * / , - - Day of month | Yes | 1-31 | * / , - ? - Month | Yes | 1-12 or JAN-DEC | * / , - - Day of week | Yes | 0-6 or SUN-SAT | * / , - ? - -Month and Day-of-week field values are case insensitive. "SUN", "Sun", and -"sun" are equally accepted. - -The specific interpretation of the format is based on the Cron Wikipedia page: -https://en.wikipedia.org/wiki/Cron - -Alternative Formats - -Alternative Cron expression formats support other fields like seconds. You can -implement that by creating a custom Parser as follows. - - cron.New( - cron.WithParser( - cron.SecondOptional | cron.Hour | cron.Dom | cron.Month | cron.Dow | cron.Descriptor)) - -The most popular alternative Cron expression format is Quartz: -http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger.html - -Special Characters - -Asterisk ( * ) - -The asterisk indicates that the cron expression will match for all values of the -field; e.g., using an asterisk in the 5th field (month) would indicate every -month. - -Slash ( / ) - -Slashes are used to describe increments of ranges. For example 3-59/15 in the -1st field (minutes) would indicate the 3rd minute of the hour and every 15 -minutes thereafter. The form "*\/..." is equivalent to the form "first-last/...", -that is, an increment over the largest possible range of the field. The form -"N/..." is accepted as meaning "N-MAX/...", that is, starting at N, use the -increment until the end of that specific range. It does not wrap around. - -Comma ( , ) - -Commas are used to separate items of a list. For example, using "MON,WED,FRI" in -the 5th field (day of week) would mean Mondays, Wednesdays and Fridays. - -Hyphen ( - ) - -Hyphens are used to define ranges. For example, 9-17 would indicate every -hour between 9am and 5pm inclusive. - -Question mark ( ? ) - -Question mark may be used instead of '*' for leaving either day-of-month or -day-of-week blank. - -Predefined schedules - -You may use one of several pre-defined schedules in place of a cron expression. - - Entry | Description | Equivalent To - ----- | ----------- | ------------- - @yearly (or @annually) | Run once a year, midnight, Jan. 1st | 0 0 1 1 * - @monthly | Run once a month, midnight, first of month | 0 0 1 * * - @weekly | Run once a week, midnight between Sat/Sun | 0 0 * * 0 - @daily (or @midnight) | Run once a day, midnight | 0 0 * * * - @hourly | Run once an hour, beginning of hour | 0 * * * * - -Intervals - -You may also schedule a job to execute at fixed intervals, starting at the time it's added -or cron is run. This is supported by formatting the cron spec like this: - - @every - -where "duration" is a string accepted by time.ParseDuration -(http://golang.org/pkg/time/#ParseDuration). - -For example, "@every 1h30m10s" would indicate a schedule that activates after -1 hour, 30 minutes, 10 seconds, and then every interval after that. - -Note: The interval does not take the job runtime into account. For example, -if a job takes 3 minutes to run, and it is scheduled to run every 5 minutes, -it will have only 2 minutes of idle time between each run. - -Time zones - -By default, all interpretation and scheduling is done in the machine's local -time zone (time.Local). You can specify a different time zone on construction: - - cron.New( - cron.WithLocation(time.UTC)) - -Individual cron schedules may also override the time zone they are to be -interpreted in by providing an additional space-separated field at the beginning -of the cron spec, of the form "CRON_TZ=Asia/Tokyo". - -For example: - - # Runs at 6am in time.Local - cron.New().AddFunc("0 6 * * ?", ...) - - # Runs at 6am in America/New_York - nyc, _ := time.LoadLocation("America/New_York") - c := cron.New(cron.WithLocation(nyc)) - c.AddFunc("0 6 * * ?", ...) - - # Runs at 6am in Asia/Tokyo - cron.New().AddFunc("CRON_TZ=Asia/Tokyo 0 6 * * ?", ...) - - # Runs at 6am in Asia/Tokyo - c := cron.New(cron.WithLocation(nyc)) - c.SetLocation("America/New_York") - c.AddFunc("CRON_TZ=Asia/Tokyo 0 6 * * ?", ...) - -The prefix "TZ=(TIME ZONE)" is also supported for legacy compatibility. - -Be aware that jobs scheduled during daylight-savings leap-ahead transitions will -not be run! - -Job Wrappers / Chain - -A Cron runner may be configured with a chain of job wrappers to add -cross-cutting functionality to all submitted jobs. For example, they may be used -to achieve the following effects: - - - Recover any panics from jobs (activated by default) - - Delay a job's execution if the previous run hasn't completed yet - - Skip a job's execution if the previous run hasn't completed yet - - Log each job's invocations - -Install wrappers for all jobs added to a cron using the `cron.WithChain` option: - - cron.New(cron.WithChain( - cron.SkipIfStillRunning(logger), - )) - -Install wrappers for individual jobs by explicitly wrapping them: - - job = cron.NewChain( - cron.SkipIfStillRunning(logger), - ).Then(job) - -Thread safety - -Since the Cron service runs concurrently with the calling code, some amount of -care must be taken to ensure proper synchronization. - -All cron methods are designed to be correctly synchronized as long as the caller -ensures that invocations have a clear happens-before ordering between them. - -Logging - -Cron defines a Logger interface that is a subset of the one defined in -github.com/go-logr/logr. It has two logging levels (Info and Error), and -parameters are key/value pairs. This makes it possible for cron logging to plug -into structured logging systems. An adapter, [Verbose]PrintfLogger, is provided -to wrap the standard library *log.Logger. - -For additional insight into Cron operations, verbose logging may be activated -which will record job runs, scheduling decisions, and added or removed jobs. -Activate it with a one-off logger as follows: - - cron.New( - cron.WithLogger( - cron.VerbosePrintfLogger(log.New(os.Stdout, "cron: ", log.LstdFlags)))) - - -Implementation - -Cron entries are stored in an array, sorted by their next activation time. Cron -sleeps until the next job is due to be run. - -Upon waking: - - it runs each entry that is active on that second - - it calculates the next run times for the jobs that were run - - it re-sorts the array of entries by next activation time. - - it goes to sleep until the soonest job. -*/ -package cron diff --git a/vendor/github.com/robfig/cron/v3/go.mod b/vendor/github.com/robfig/cron/v3/go.mod deleted file mode 100644 index 8c95bf4..0000000 --- a/vendor/github.com/robfig/cron/v3/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/robfig/cron/v3 - -go 1.12 diff --git a/vendor/github.com/robfig/cron/v3/logger.go b/vendor/github.com/robfig/cron/v3/logger.go deleted file mode 100644 index b4efcc0..0000000 --- a/vendor/github.com/robfig/cron/v3/logger.go +++ /dev/null @@ -1,86 +0,0 @@ -package cron - -import ( - "io/ioutil" - "log" - "os" - "strings" - "time" -) - -// DefaultLogger is used by Cron if none is specified. -var DefaultLogger Logger = PrintfLogger(log.New(os.Stdout, "cron: ", log.LstdFlags)) - -// DiscardLogger can be used by callers to discard all log messages. -var DiscardLogger Logger = PrintfLogger(log.New(ioutil.Discard, "", 0)) - -// Logger is the interface used in this package for logging, so that any backend -// can be plugged in. It is a subset of the github.com/go-logr/logr interface. -type Logger interface { - // Info logs routine messages about cron's operation. - Info(msg string, keysAndValues ...interface{}) - // Error logs an error condition. - Error(err error, msg string, keysAndValues ...interface{}) -} - -// PrintfLogger wraps a Printf-based logger (such as the standard library "log") -// into an implementation of the Logger interface which logs errors only. -func PrintfLogger(l interface{ Printf(string, ...interface{}) }) Logger { - return printfLogger{l, false} -} - -// VerbosePrintfLogger wraps a Printf-based logger (such as the standard library -// "log") into an implementation of the Logger interface which logs everything. -func VerbosePrintfLogger(l interface{ Printf(string, ...interface{}) }) Logger { - return printfLogger{l, true} -} - -type printfLogger struct { - logger interface{ Printf(string, ...interface{}) } - logInfo bool -} - -func (pl printfLogger) Info(msg string, keysAndValues ...interface{}) { - if pl.logInfo { - keysAndValues = formatTimes(keysAndValues) - pl.logger.Printf( - formatString(len(keysAndValues)), - append([]interface{}{msg}, keysAndValues...)...) - } -} - -func (pl printfLogger) Error(err error, msg string, keysAndValues ...interface{}) { - keysAndValues = formatTimes(keysAndValues) - pl.logger.Printf( - formatString(len(keysAndValues)+2), - append([]interface{}{msg, "error", err}, keysAndValues...)...) -} - -// formatString returns a logfmt-like format string for the number of -// key/values. -func formatString(numKeysAndValues int) string { - var sb strings.Builder - sb.WriteString("%s") - if numKeysAndValues > 0 { - sb.WriteString(", ") - } - for i := 0; i < numKeysAndValues/2; i++ { - if i > 0 { - sb.WriteString(", ") - } - sb.WriteString("%v=%v") - } - return sb.String() -} - -// formatTimes formats any time.Time values as RFC3339. -func formatTimes(keysAndValues []interface{}) []interface{} { - var formattedArgs []interface{} - for _, arg := range keysAndValues { - if t, ok := arg.(time.Time); ok { - arg = t.Format(time.RFC3339) - } - formattedArgs = append(formattedArgs, arg) - } - return formattedArgs -} diff --git a/vendor/github.com/robfig/cron/v3/option.go b/vendor/github.com/robfig/cron/v3/option.go deleted file mode 100644 index 0763820..0000000 --- a/vendor/github.com/robfig/cron/v3/option.go +++ /dev/null @@ -1,45 +0,0 @@ -package cron - -import ( - "time" -) - -// Option represents a modification to the default behavior of a Cron. -type Option func(*Cron) - -// WithLocation overrides the timezone of the cron instance. -func WithLocation(loc *time.Location) Option { - return func(c *Cron) { - c.location = loc - } -} - -// WithSeconds overrides the parser used for interpreting job schedules to -// include a seconds field as the first one. -func WithSeconds() Option { - return WithParser(NewParser( - Second | Minute | Hour | Dom | Month | Dow | Descriptor, - )) -} - -// WithParser overrides the parser used for interpreting job schedules. -func WithParser(p Parser) Option { - return func(c *Cron) { - c.parser = p - } -} - -// WithChain specifies Job wrappers to apply to all jobs added to this cron. -// Refer to the Chain* functions in this package for provided wrappers. -func WithChain(wrappers ...JobWrapper) Option { - return func(c *Cron) { - c.chain = NewChain(wrappers...) - } -} - -// WithLogger uses the provided logger. -func WithLogger(logger Logger) Option { - return func(c *Cron) { - c.logger = logger - } -} diff --git a/vendor/github.com/robfig/cron/v3/parser.go b/vendor/github.com/robfig/cron/v3/parser.go deleted file mode 100644 index 3cf8879..0000000 --- a/vendor/github.com/robfig/cron/v3/parser.go +++ /dev/null @@ -1,434 +0,0 @@ -package cron - -import ( - "fmt" - "math" - "strconv" - "strings" - "time" -) - -// Configuration options for creating a parser. Most options specify which -// fields should be included, while others enable features. If a field is not -// included the parser will assume a default value. These options do not change -// the order fields are parse in. -type ParseOption int - -const ( - Second ParseOption = 1 << iota // Seconds field, default 0 - SecondOptional // Optional seconds field, default 0 - Minute // Minutes field, default 0 - Hour // Hours field, default 0 - Dom // Day of month field, default * - Month // Month field, default * - Dow // Day of week field, default * - DowOptional // Optional day of week field, default * - Descriptor // Allow descriptors such as @monthly, @weekly, etc. -) - -var places = []ParseOption{ - Second, - Minute, - Hour, - Dom, - Month, - Dow, -} - -var defaults = []string{ - "0", - "0", - "0", - "*", - "*", - "*", -} - -// A custom Parser that can be configured. -type Parser struct { - options ParseOption -} - -// NewParser creates a Parser with custom options. -// -// It panics if more than one Optional is given, since it would be impossible to -// correctly infer which optional is provided or missing in general. -// -// Examples -// -// // Standard parser without descriptors -// specParser := NewParser(Minute | Hour | Dom | Month | Dow) -// sched, err := specParser.Parse("0 0 15 */3 *") -// -// // Same as above, just excludes time fields -// subsParser := NewParser(Dom | Month | Dow) -// sched, err := specParser.Parse("15 */3 *") -// -// // Same as above, just makes Dow optional -// subsParser := NewParser(Dom | Month | DowOptional) -// sched, err := specParser.Parse("15 */3") -// -func NewParser(options ParseOption) Parser { - optionals := 0 - if options&DowOptional > 0 { - optionals++ - } - if options&SecondOptional > 0 { - optionals++ - } - if optionals > 1 { - panic("multiple optionals may not be configured") - } - return Parser{options} -} - -// Parse returns a new crontab schedule representing the given spec. -// It returns a descriptive error if the spec is not valid. -// It accepts crontab specs and features configured by NewParser. -func (p Parser) Parse(spec string) (Schedule, error) { - if len(spec) == 0 { - return nil, fmt.Errorf("empty spec string") - } - - // Extract timezone if present - var loc = time.Local - if strings.HasPrefix(spec, "TZ=") || strings.HasPrefix(spec, "CRON_TZ=") { - var err error - i := strings.Index(spec, " ") - eq := strings.Index(spec, "=") - if loc, err = time.LoadLocation(spec[eq+1 : i]); err != nil { - return nil, fmt.Errorf("provided bad location %s: %v", spec[eq+1:i], err) - } - spec = strings.TrimSpace(spec[i:]) - } - - // Handle named schedules (descriptors), if configured - if strings.HasPrefix(spec, "@") { - if p.options&Descriptor == 0 { - return nil, fmt.Errorf("parser does not accept descriptors: %v", spec) - } - return parseDescriptor(spec, loc) - } - - // Split on whitespace. - fields := strings.Fields(spec) - - // Validate & fill in any omitted or optional fields - var err error - fields, err = normalizeFields(fields, p.options) - if err != nil { - return nil, err - } - - field := func(field string, r bounds) uint64 { - if err != nil { - return 0 - } - var bits uint64 - bits, err = getField(field, r) - return bits - } - - var ( - second = field(fields[0], seconds) - minute = field(fields[1], minutes) - hour = field(fields[2], hours) - dayofmonth = field(fields[3], dom) - month = field(fields[4], months) - dayofweek = field(fields[5], dow) - ) - if err != nil { - return nil, err - } - - return &SpecSchedule{ - Second: second, - Minute: minute, - Hour: hour, - Dom: dayofmonth, - Month: month, - Dow: dayofweek, - Location: loc, - }, nil -} - -// normalizeFields takes a subset set of the time fields and returns the full set -// with defaults (zeroes) populated for unset fields. -// -// As part of performing this function, it also validates that the provided -// fields are compatible with the configured options. -func normalizeFields(fields []string, options ParseOption) ([]string, error) { - // Validate optionals & add their field to options - optionals := 0 - if options&SecondOptional > 0 { - options |= Second - optionals++ - } - if options&DowOptional > 0 { - options |= Dow - optionals++ - } - if optionals > 1 { - return nil, fmt.Errorf("multiple optionals may not be configured") - } - - // Figure out how many fields we need - max := 0 - for _, place := range places { - if options&place > 0 { - max++ - } - } - min := max - optionals - - // Validate number of fields - if count := len(fields); count < min || count > max { - if min == max { - return nil, fmt.Errorf("expected exactly %d fields, found %d: %s", min, count, fields) - } - return nil, fmt.Errorf("expected %d to %d fields, found %d: %s", min, max, count, fields) - } - - // Populate the optional field if not provided - if min < max && len(fields) == min { - switch { - case options&DowOptional > 0: - fields = append(fields, defaults[5]) // TODO: improve access to default - case options&SecondOptional > 0: - fields = append([]string{defaults[0]}, fields...) - default: - return nil, fmt.Errorf("unknown optional field") - } - } - - // Populate all fields not part of options with their defaults - n := 0 - expandedFields := make([]string, len(places)) - copy(expandedFields, defaults) - for i, place := range places { - if options&place > 0 { - expandedFields[i] = fields[n] - n++ - } - } - return expandedFields, nil -} - -var standardParser = NewParser( - Minute | Hour | Dom | Month | Dow | Descriptor, -) - -// ParseStandard returns a new crontab schedule representing the given -// standardSpec (https://en.wikipedia.org/wiki/Cron). It requires 5 entries -// representing: minute, hour, day of month, month and day of week, in that -// order. It returns a descriptive error if the spec is not valid. -// -// It accepts -// - Standard crontab specs, e.g. "* * * * ?" -// - Descriptors, e.g. "@midnight", "@every 1h30m" -func ParseStandard(standardSpec string) (Schedule, error) { - return standardParser.Parse(standardSpec) -} - -// getField returns an Int with the bits set representing all of the times that -// the field represents or error parsing field value. A "field" is a comma-separated -// list of "ranges". -func getField(field string, r bounds) (uint64, error) { - var bits uint64 - ranges := strings.FieldsFunc(field, func(r rune) bool { return r == ',' }) - for _, expr := range ranges { - bit, err := getRange(expr, r) - if err != nil { - return bits, err - } - bits |= bit - } - return bits, nil -} - -// getRange returns the bits indicated by the given expression: -// number | number "-" number [ "/" number ] -// or error parsing range. -func getRange(expr string, r bounds) (uint64, error) { - var ( - start, end, step uint - rangeAndStep = strings.Split(expr, "/") - lowAndHigh = strings.Split(rangeAndStep[0], "-") - singleDigit = len(lowAndHigh) == 1 - err error - ) - - var extra uint64 - if lowAndHigh[0] == "*" || lowAndHigh[0] == "?" { - start = r.min - end = r.max - extra = starBit - } else { - start, err = parseIntOrName(lowAndHigh[0], r.names) - if err != nil { - return 0, err - } - switch len(lowAndHigh) { - case 1: - end = start - case 2: - end, err = parseIntOrName(lowAndHigh[1], r.names) - if err != nil { - return 0, err - } - default: - return 0, fmt.Errorf("too many hyphens: %s", expr) - } - } - - switch len(rangeAndStep) { - case 1: - step = 1 - case 2: - step, err = mustParseInt(rangeAndStep[1]) - if err != nil { - return 0, err - } - - // Special handling: "N/step" means "N-max/step". - if singleDigit { - end = r.max - } - if step > 1 { - extra = 0 - } - default: - return 0, fmt.Errorf("too many slashes: %s", expr) - } - - if start < r.min { - return 0, fmt.Errorf("beginning of range (%d) below minimum (%d): %s", start, r.min, expr) - } - if end > r.max { - return 0, fmt.Errorf("end of range (%d) above maximum (%d): %s", end, r.max, expr) - } - if start > end { - return 0, fmt.Errorf("beginning of range (%d) beyond end of range (%d): %s", start, end, expr) - } - if step == 0 { - return 0, fmt.Errorf("step of range should be a positive number: %s", expr) - } - - return getBits(start, end, step) | extra, nil -} - -// parseIntOrName returns the (possibly-named) integer contained in expr. -func parseIntOrName(expr string, names map[string]uint) (uint, error) { - if names != nil { - if namedInt, ok := names[strings.ToLower(expr)]; ok { - return namedInt, nil - } - } - return mustParseInt(expr) -} - -// mustParseInt parses the given expression as an int or returns an error. -func mustParseInt(expr string) (uint, error) { - num, err := strconv.Atoi(expr) - if err != nil { - return 0, fmt.Errorf("failed to parse int from %s: %s", expr, err) - } - if num < 0 { - return 0, fmt.Errorf("negative number (%d) not allowed: %s", num, expr) - } - - return uint(num), nil -} - -// getBits sets all bits in the range [min, max], modulo the given step size. -func getBits(min, max, step uint) uint64 { - var bits uint64 - - // If step is 1, use shifts. - if step == 1 { - return ^(math.MaxUint64 << (max + 1)) & (math.MaxUint64 << min) - } - - // Else, use a simple loop. - for i := min; i <= max; i += step { - bits |= 1 << i - } - return bits -} - -// all returns all bits within the given bounds. (plus the star bit) -func all(r bounds) uint64 { - return getBits(r.min, r.max, 1) | starBit -} - -// parseDescriptor returns a predefined schedule for the expression, or error if none matches. -func parseDescriptor(descriptor string, loc *time.Location) (Schedule, error) { - switch descriptor { - case "@yearly", "@annually": - return &SpecSchedule{ - Second: 1 << seconds.min, - Minute: 1 << minutes.min, - Hour: 1 << hours.min, - Dom: 1 << dom.min, - Month: 1 << months.min, - Dow: all(dow), - Location: loc, - }, nil - - case "@monthly": - return &SpecSchedule{ - Second: 1 << seconds.min, - Minute: 1 << minutes.min, - Hour: 1 << hours.min, - Dom: 1 << dom.min, - Month: all(months), - Dow: all(dow), - Location: loc, - }, nil - - case "@weekly": - return &SpecSchedule{ - Second: 1 << seconds.min, - Minute: 1 << minutes.min, - Hour: 1 << hours.min, - Dom: all(dom), - Month: all(months), - Dow: 1 << dow.min, - Location: loc, - }, nil - - case "@daily", "@midnight": - return &SpecSchedule{ - Second: 1 << seconds.min, - Minute: 1 << minutes.min, - Hour: 1 << hours.min, - Dom: all(dom), - Month: all(months), - Dow: all(dow), - Location: loc, - }, nil - - case "@hourly": - return &SpecSchedule{ - Second: 1 << seconds.min, - Minute: 1 << minutes.min, - Hour: all(hours), - Dom: all(dom), - Month: all(months), - Dow: all(dow), - Location: loc, - }, nil - - } - - const every = "@every " - if strings.HasPrefix(descriptor, every) { - duration, err := time.ParseDuration(descriptor[len(every):]) - if err != nil { - return nil, fmt.Errorf("failed to parse duration %s: %s", descriptor, err) - } - return Every(duration), nil - } - - return nil, fmt.Errorf("unrecognized descriptor: %s", descriptor) -} diff --git a/vendor/github.com/robfig/cron/v3/spec.go b/vendor/github.com/robfig/cron/v3/spec.go deleted file mode 100644 index fa1e241..0000000 --- a/vendor/github.com/robfig/cron/v3/spec.go +++ /dev/null @@ -1,188 +0,0 @@ -package cron - -import "time" - -// SpecSchedule specifies a duty cycle (to the second granularity), based on a -// traditional crontab specification. It is computed initially and stored as bit sets. -type SpecSchedule struct { - Second, Minute, Hour, Dom, Month, Dow uint64 - - // Override location for this schedule. - Location *time.Location -} - -// bounds provides a range of acceptable values (plus a map of name to value). -type bounds struct { - min, max uint - names map[string]uint -} - -// The bounds for each field. -var ( - seconds = bounds{0, 59, nil} - minutes = bounds{0, 59, nil} - hours = bounds{0, 23, nil} - dom = bounds{1, 31, nil} - months = bounds{1, 12, map[string]uint{ - "jan": 1, - "feb": 2, - "mar": 3, - "apr": 4, - "may": 5, - "jun": 6, - "jul": 7, - "aug": 8, - "sep": 9, - "oct": 10, - "nov": 11, - "dec": 12, - }} - dow = bounds{0, 6, map[string]uint{ - "sun": 0, - "mon": 1, - "tue": 2, - "wed": 3, - "thu": 4, - "fri": 5, - "sat": 6, - }} -) - -const ( - // Set the top bit if a star was included in the expression. - starBit = 1 << 63 -) - -// Next returns the next time this schedule is activated, greater than the given -// time. If no time can be found to satisfy the schedule, return the zero time. -func (s *SpecSchedule) Next(t time.Time) time.Time { - // General approach - // - // For Month, Day, Hour, Minute, Second: - // Check if the time value matches. If yes, continue to the next field. - // If the field doesn't match the schedule, then increment the field until it matches. - // While incrementing the field, a wrap-around brings it back to the beginning - // of the field list (since it is necessary to re-verify previous field - // values) - - // Convert the given time into the schedule's timezone, if one is specified. - // Save the original timezone so we can convert back after we find a time. - // Note that schedules without a time zone specified (time.Local) are treated - // as local to the time provided. - origLocation := t.Location() - loc := s.Location - if loc == time.Local { - loc = t.Location() - } - if s.Location != time.Local { - t = t.In(s.Location) - } - - // Start at the earliest possible time (the upcoming second). - t = t.Add(1*time.Second - time.Duration(t.Nanosecond())*time.Nanosecond) - - // This flag indicates whether a field has been incremented. - added := false - - // If no time is found within five years, return zero. - yearLimit := t.Year() + 5 - -WRAP: - if t.Year() > yearLimit { - return time.Time{} - } - - // Find the first applicable month. - // If it's this month, then do nothing. - for 1< 12 { - t = t.Add(time.Duration(24-t.Hour()) * time.Hour) - } else { - t = t.Add(time.Duration(-t.Hour()) * time.Hour) - } - } - - if t.Day() == 1 { - goto WRAP - } - } - - for 1< 0 - dowMatch bool = 1< 0 - ) - if s.Dom&starBit > 0 || s.Dow&starBit > 0 { - return domMatch && dowMatch - } - return domMatch || dowMatch -} diff --git a/vendor/github.com/slack-go/slack/.gitignore b/vendor/github.com/slack-go/slack/.gitignore deleted file mode 100644 index ac6f3ee..0000000 --- a/vendor/github.com/slack-go/slack/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.test -*~ -.idea/ diff --git a/vendor/github.com/slack-go/slack/.golangci.yml b/vendor/github.com/slack-go/slack/.golangci.yml deleted file mode 100644 index c16f538..0000000 --- a/vendor/github.com/slack-go/slack/.golangci.yml +++ /dev/null @@ -1,14 +0,0 @@ -run: - timeout: 6m - issues-exit-code: 1 -linters: - disable-all: true - enable: - - goimports - - govet - - interfacer - - misspell - - structcheck - - unconvert -issues: - new: true diff --git a/vendor/github.com/slack-go/slack/CHANGELOG.md b/vendor/github.com/slack-go/slack/CHANGELOG.md deleted file mode 100644 index 657c2b0..0000000 --- a/vendor/github.com/slack-go/slack/CHANGELOG.md +++ /dev/null @@ -1,103 +0,0 @@ -### v0.7.0 - October 2, 2020 -full differences can be viewed using `git log --oneline --decorate --color v0.6.6..v0.7.0` -Thank you for many contributions! - -#### Breaking Changes -- Add ScheduledMessage type ([#753]) -- Add description field to option block object ([#783]) -- Fix wrong conditional branch ([#782]) - - The behavior of the user's application may change.(The current behavior is incorrect) - -#### Highlights -- example: fix to start up a server ([#773]) -- example: Add explanation how the message could be sent in a proper way ([#787]) -- example: fix typo in error log ([#779]) -- refactor: Make GetConversationsParameters.ExcludeArchived optional ([#791]) -- refactor: Unify variables to "config" ([#800]) -- refactor: Rename wrong file name ([#810]) -- feature: Add SetUserRealName for change user's realName([#755]) -- feature: Add response metadata to slack response ([#772]) -- feature: Add response metadata to slack response ([#778]) -- feature: Add select block element conversations filter field ([#790]) -- feature: Add Root field to MessageEvent to support thread_broadcast subtype ([#793]) -- feature: Add bot_profile to messages ([#794]) -- doc: Add logo to README ([#813]) -- doc: Update current project status and Add changelog for v0.7.0 ([#814]) - -[#753]: https://github.com/slack-go/slack/pull/753 -[#755]: https://github.com/slack-go/slack/pull/755 -[#772]: https://github.com/slack-go/slack/pull/772 -[#773]: https://github.com/slack-go/slack/pull/773 -[#778]: https://github.com/slack-go/slack/pull/778 -[#779]: https://github.com/slack-go/slack/pull/779 -[#782]: https://github.com/slack-go/slack/pull/782 -[#783]: https://github.com/slack-go/slack/pull/783 -[#787]: https://github.com/slack-go/slack/pull/787 -[#790]: https://github.com/slack-go/slack/pull/790 -[#791]: https://github.com/slack-go/slack/pull/791 -[#793]: https://github.com/slack-go/slack/pull/793 -[#794]: https://github.com/slack-go/slack/pull/794 -[#800]: https://github.com/slack-go/slack/pull/800 -[#810]: https://github.com/slack-go/slack/pull/810 -[#813]: https://github.com/slack-go/slack/pull/813 -[#814]: https://github.com/slack-go/slack/pull/814 - -### v0.6.0 - August 31, 2019 -full differences can be viewed using `git log --oneline --decorate --color v0.5.0..v0.6.0` -thanks to everyone who has contributed since January! - - -#### Breaking Changes: -- Info struct has had fields removed related to deprecated functionality by slack. -- minor adjustments to some structs. -- some internal default values have changed, usually to be more inline with slack defaults or to correct inability to set a particular value. (Message Parse for example.) - -##### Highlights: -- new slacktest package easy mocking for slack client. use, enjoy, please submit PRs for improvements and default behaviours! shamelessly taken from the [slack-test repo](https://github.com/lusis/slack-test) thank you lusis for letting us use it and bring it into the slack repo. -- blocks, blocks, blocks. -- RTM ManagedConnection has undergone a significant cleanup. -in particular handles backoffs gracefully, removed many deadlocks, -and Disconnect is now much more responsive. - -### v0.5.0 - January 20, 2019 -full differences can be viewed using `git log --oneline --decorate --color v0.4.0..v0.5.0` -- Breaking changes: various old struct fields have been removed or updated to match slack's api. -- deadlock fix in RTM disconnect. - -### v0.4.0 - October 06, 2018 -full differences can be viewed using `git log --oneline --decorate --color v0.3.0..v0.4.0` -- Breaking Change: renamed ApplyMessageOption, to mark it as unsafe, -this means it may break without warning in the future. -- Breaking: Msg structure files field changed to an array. -- General: implementation for new security headers. -- RTM: deadlock fix between connect/disconnect. -- Events: various new fields added. -- Web: various fixes, new fields exposed, new methods added. -- Interactions: minor additions expect breaking changes in next release for dialogs/button clicks. -- Utils: new methods added. - -### v0.3.0 - July 30, 2018 -full differences can be viewed using `git log --oneline --decorate --color v0.2.0..v0.3.0` -- slack events initial support added. (still considered experimental and undergoing changes, stability not promised) -- vendored depedencies using dep, ensure using up to date tooling before filing issues. -- RTM has improved its ability to identify dead connections and reconnect automatically (worth calling out in case it has unintended side effects). -- bug fixes (various timestamp handling, error handling, RTM locking, etc). - -### v0.2.0 - Feb 10, 2018 - -Release adds a bunch of functionality and improvements, mainly to give people a recent version to vendor against. - -Please check [0.2.0](https://github.com/nlopes/slack/releases/tag/v0.2.0) - -### v0.1.0 - May 28, 2017 - -This is released before adding context support. -As the used context package is the one from Go 1.7 this will be the last -compatible with Go < 1.7. - -Please check [0.1.0](https://github.com/nlopes/slack/releases/tag/v0.1.0) - -### v0.0.1 - Jul 26, 2015 - -If you just updated from master and it broke your implementation, please -check [0.0.1](https://github.com/nlopes/slack/releases/tag/v0.0.1) diff --git a/vendor/github.com/slack-go/slack/LICENSE b/vendor/github.com/slack-go/slack/LICENSE deleted file mode 100644 index 5145171..0000000 --- a/vendor/github.com/slack-go/slack/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2015, Norberto Lopes -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation and/or -other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/slack-go/slack/Makefile b/vendor/github.com/slack-go/slack/Makefile deleted file mode 100644 index 7279640..0000000 --- a/vendor/github.com/slack-go/slack/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -.PHONY: help deps fmt lint test test-race test-integration - -help: - @echo "" - @echo "Welcome to slack-go/slack make." - @echo "The following commands are available:" - @echo "" - @echo " make deps : Fetch all dependencies" - @echo " make fmt : Run go fmt to fix any formatting issues" - @echo " make lint : Use go vet to check for linting issues" - @echo " make test : Run all short tests" - @echo " make test-race : Run all tests with race condition checking" - @echo " make test-integration : Run all tests without limiting to short" - @echo "" - @echo " make pr-prep : Run this before making a PR to run fmt, lint and tests" - @echo "" - -deps: - @go mod tidy - -fmt: - @go fmt . - -lint: - @go vet . - -test: - @go test -v -count=1 -timeout 300s -short ./... - -test-race: - @go test -v -count=1 -timeout 300s -short -race ./... - -test-integration: - @go test -v -count=1 -timeout 600s ./... - -pr-prep: fmt lint test-race test-integration diff --git a/vendor/github.com/slack-go/slack/README.md b/vendor/github.com/slack-go/slack/README.md deleted file mode 100644 index cebbf48..0000000 --- a/vendor/github.com/slack-go/slack/README.md +++ /dev/null @@ -1,97 +0,0 @@ -Slack API in Go [![GoDoc](https://godoc.org/github.com/slack-go/slack?status.svg)](https://godoc.org/github.com/slack-go/slack) [![Build Status](https://travis-ci.org/slack-go/slack.svg)](https://travis-ci.org/slack-go/slack) -=============== -This is the original Slack library for Go created by Norberto Lopez, transferred to a Github organization. - -[![Join the chat at https://gitter.im/go-slack/Lobby](https://badges.gitter.im/go-slack/Lobby.svg)](https://gitter.im/go-slack/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -![logo](logo.png "icon") - -This library supports most if not all of the `api.slack.com` REST -calls, as well as the Real-Time Messaging protocol over websocket, in -a fully managed way. - -## Project Status -There is currently no major version released. -Therefore, minor version releases may include backward incompatible changes. - -See [CHANGELOG.md](https://github.com/slack-go/slack/blob/master/CHANGELOG.md) for more information about the changes. - -## Installing - -### *go get* - - $ go get -u github.com/slack-go/slack - -## Example - -### Getting all groups - -```golang -import ( - "fmt" - - "github.com/slack-go/slack" -) - -func main() { - api := slack.New("YOUR_TOKEN_HERE") - // If you set debugging, it will log all requests to the console - // Useful when encountering issues - // slack.New("YOUR_TOKEN_HERE", slack.OptionDebug(true)) - groups, err := api.GetGroups(false) - if err != nil { - fmt.Printf("%s\n", err) - return - } - for _, group := range groups { - fmt.Printf("ID: %s, Name: %s\n", group.ID, group.Name) - } -} -``` - -### Getting User Information - -```golang -import ( - "fmt" - - "github.com/slack-go/slack" -) - -func main() { - api := slack.New("YOUR_TOKEN_HERE") - user, err := api.GetUserInfo("U023BECGF") - if err != nil { - fmt.Printf("%s\n", err) - return - } - fmt.Printf("ID: %s, Fullname: %s, Email: %s\n", user.ID, user.Profile.RealName, user.Profile.Email) -} -``` - -## Minimal RTM usage: - -See https://github.com/slack-go/slack/blob/master/examples/websocket/websocket.go - - -## Minimal EventsAPI usage: - -See https://github.com/slack-go/slack/blob/master/examples/eventsapi/events.go - - -## Contributing - -You are more than welcome to contribute to this project. Fork and -make a Pull Request, or create an Issue if you see any problem. - -Before making any Pull Request please run the following: - -``` -make pr-prep -``` - -This will check/update code formatting, linting and then run all tests - -## License - -BSD 2 Clause license diff --git a/vendor/github.com/slack-go/slack/TODO.txt b/vendor/github.com/slack-go/slack/TODO.txt deleted file mode 100644 index 8607960..0000000 --- a/vendor/github.com/slack-go/slack/TODO.txt +++ /dev/null @@ -1,3 +0,0 @@ -- Add more tests!!! -- Add support to have markdown hints - - See section Message Formatting at https://api.slack.com/docs/formatting diff --git a/vendor/github.com/slack-go/slack/admin.go b/vendor/github.com/slack-go/slack/admin.go deleted file mode 100644 index d51426b..0000000 --- a/vendor/github.com/slack-go/slack/admin.go +++ /dev/null @@ -1,207 +0,0 @@ -package slack - -import ( - "context" - "fmt" - "net/url" - "strings" -) - -func (api *Client) adminRequest(ctx context.Context, method string, teamName string, values url.Values) error { - resp := &SlackResponse{} - err := parseAdminResponse(ctx, api.httpclient, method, teamName, values, resp, api) - if err != nil { - return err - } - - return resp.Err() -} - -// DisableUser disabled a user account, given a user ID -func (api *Client) DisableUser(teamName string, uid string) error { - return api.DisableUserContext(context.Background(), teamName, uid) -} - -// DisableUserContext disabled a user account, given a user ID with a custom context -func (api *Client) DisableUserContext(ctx context.Context, teamName string, uid string) error { - values := url.Values{ - "user": {uid}, - "token": {api.token}, - "set_active": {"true"}, - "_attempts": {"1"}, - } - - if err := api.adminRequest(ctx, "setInactive", teamName, values); err != nil { - return fmt.Errorf("failed to disable user with id '%s': %s", uid, err) - } - - return nil -} - -// InviteGuest invites a user to Slack as a single-channel guest -func (api *Client) InviteGuest(teamName, channel, firstName, lastName, emailAddress string) error { - return api.InviteGuestContext(context.Background(), teamName, channel, firstName, lastName, emailAddress) -} - -// InviteGuestContext invites a user to Slack as a single-channel guest with a custom context -func (api *Client) InviteGuestContext(ctx context.Context, teamName, channel, firstName, lastName, emailAddress string) error { - values := url.Values{ - "email": {emailAddress}, - "channels": {channel}, - "first_name": {firstName}, - "last_name": {lastName}, - "ultra_restricted": {"1"}, - "token": {api.token}, - "resend": {"true"}, - "set_active": {"true"}, - "_attempts": {"1"}, - } - - err := api.adminRequest(ctx, "invite", teamName, values) - if err != nil { - return fmt.Errorf("Failed to invite single-channel guest: %s", err) - } - - return nil -} - -// InviteRestricted invites a user to Slack as a restricted account -func (api *Client) InviteRestricted(teamName, channel, firstName, lastName, emailAddress string) error { - return api.InviteRestrictedContext(context.Background(), teamName, channel, firstName, lastName, emailAddress) -} - -// InviteRestrictedContext invites a user to Slack as a restricted account with a custom context -func (api *Client) InviteRestrictedContext(ctx context.Context, teamName, channel, firstName, lastName, emailAddress string) error { - values := url.Values{ - "email": {emailAddress}, - "channels": {channel}, - "first_name": {firstName}, - "last_name": {lastName}, - "restricted": {"1"}, - "token": {api.token}, - "resend": {"true"}, - "set_active": {"true"}, - "_attempts": {"1"}, - } - - err := api.adminRequest(ctx, "invite", teamName, values) - if err != nil { - return fmt.Errorf("Failed to restricted account: %s", err) - } - - return nil -} - -// InviteToTeam invites a user to a Slack team -func (api *Client) InviteToTeam(teamName, firstName, lastName, emailAddress string) error { - return api.InviteToTeamContext(context.Background(), teamName, firstName, lastName, emailAddress) -} - -// InviteToTeamContext invites a user to a Slack team with a custom context -func (api *Client) InviteToTeamContext(ctx context.Context, teamName, firstName, lastName, emailAddress string) error { - values := url.Values{ - "email": {emailAddress}, - "first_name": {firstName}, - "last_name": {lastName}, - "token": {api.token}, - "set_active": {"true"}, - "_attempts": {"1"}, - } - - err := api.adminRequest(ctx, "invite", teamName, values) - if err != nil { - return fmt.Errorf("Failed to invite to team: %s", err) - } - - return nil -} - -// SetRegular enables the specified user -func (api *Client) SetRegular(teamName, user string) error { - return api.SetRegularContext(context.Background(), teamName, user) -} - -// SetRegularContext enables the specified user with a custom context -func (api *Client) SetRegularContext(ctx context.Context, teamName, user string) error { - values := url.Values{ - "user": {user}, - "token": {api.token}, - "set_active": {"true"}, - "_attempts": {"1"}, - } - - err := api.adminRequest(ctx, "setRegular", teamName, values) - if err != nil { - return fmt.Errorf("Failed to change the user (%s) to a regular user: %s", user, err) - } - - return nil -} - -// SendSSOBindingEmail sends an SSO binding email to the specified user -func (api *Client) SendSSOBindingEmail(teamName, user string) error { - return api.SendSSOBindingEmailContext(context.Background(), teamName, user) -} - -// SendSSOBindingEmailContext sends an SSO binding email to the specified user with a custom context -func (api *Client) SendSSOBindingEmailContext(ctx context.Context, teamName, user string) error { - values := url.Values{ - "user": {user}, - "token": {api.token}, - "set_active": {"true"}, - "_attempts": {"1"}, - } - - err := api.adminRequest(ctx, "sendSSOBind", teamName, values) - if err != nil { - return fmt.Errorf("Failed to send SSO binding email for user (%s): %s", user, err) - } - - return nil -} - -// SetUltraRestricted converts a user into a single-channel guest -func (api *Client) SetUltraRestricted(teamName, uid, channel string) error { - return api.SetUltraRestrictedContext(context.Background(), teamName, uid, channel) -} - -// SetUltraRestrictedContext converts a user into a single-channel guest with a custom context -func (api *Client) SetUltraRestrictedContext(ctx context.Context, teamName, uid, channel string) error { - values := url.Values{ - "user": {uid}, - "channel": {channel}, - "token": {api.token}, - "set_active": {"true"}, - "_attempts": {"1"}, - } - - err := api.adminRequest(ctx, "setUltraRestricted", teamName, values) - if err != nil { - return fmt.Errorf("Failed to ultra-restrict account: %s", err) - } - - return nil -} - -// SetRestricted converts a user into a restricted account -func (api *Client) SetRestricted(teamName, uid string, channelIds ...string) error { - return api.SetRestrictedContext(context.Background(), teamName, uid, channelIds...) -} - -// SetRestrictedContext converts a user into a restricted account with a custom context -func (api *Client) SetRestrictedContext(ctx context.Context, teamName, uid string, channelIds ...string) error { - values := url.Values{ - "user": {uid}, - "token": {api.token}, - "set_active": {"true"}, - "_attempts": {"1"}, - "channels": {strings.Join(channelIds, ",")}, - } - - err := api.adminRequest(ctx, "setRestricted", teamName, values) - if err != nil { - return fmt.Errorf("failed to restrict account: %s", err) - } - - return nil -} diff --git a/vendor/github.com/slack-go/slack/apps.go b/vendor/github.com/slack-go/slack/apps.go deleted file mode 100644 index d974943..0000000 --- a/vendor/github.com/slack-go/slack/apps.go +++ /dev/null @@ -1,61 +0,0 @@ -package slack - -import ( - "context" - "encoding/json" - "net/url" -) - -type listEventAuthorizationsResponse struct { - SlackResponse - Authorizations []EventAuthorization `json:"authorizations"` -} - -type EventAuthorization struct { - EnterpriseID string `json:"enterprise_id"` - TeamID string `json:"team_id"` - UserID string `json:"user_id"` - IsBot bool `json:"is_bot"` - IsEnterpriseInstall bool `json:"is_enterprise_install"` -} - -func (api *Client) ListEventAuthorizations(eventContext string) ([]EventAuthorization, error) { - return api.ListEventAuthorizationsContext(context.Background(), eventContext) -} - -// ListEventAuthorizationsContext lists authed users and teams for the given event_context. You must provide an app-level token to the client using OptionAppLevelToken. More info: https://api.slack.com/methods/apps.event.authorizations.list -func (api *Client) ListEventAuthorizationsContext(ctx context.Context, eventContext string) ([]EventAuthorization, error) { - resp := &listEventAuthorizationsResponse{} - - request, _ := json.Marshal(map[string]string{ - "event_context": eventContext, - }) - - err := postJSON(ctx, api.httpclient, api.endpoint+"apps.event.authorizations.list", api.appLevelToken, request, &resp, api) - - if err != nil { - return nil, err - } - if !resp.Ok { - return nil, resp.Err() - } - - return resp.Authorizations, nil -} - -func (api *Client) UninstallApp(clientID, clientSecret string) error { - values := url.Values{ - "token": {api.token}, - "client_id": {clientID}, - "client_secret": {clientSecret}, - } - - response := SlackResponse{} - - err := api.getMethod(context.Background(), "apps.uninstall", values, &response) - if err != nil { - return err - } - - return response.Err() -} diff --git a/vendor/github.com/slack-go/slack/attachments.go b/vendor/github.com/slack-go/slack/attachments.go deleted file mode 100644 index b5b79f9..0000000 --- a/vendor/github.com/slack-go/slack/attachments.go +++ /dev/null @@ -1,93 +0,0 @@ -package slack - -import "encoding/json" - -// AttachmentField contains information for an attachment field -// An Attachment can contain multiple of these -type AttachmentField struct { - Title string `json:"title"` - Value string `json:"value"` - Short bool `json:"short"` -} - -// AttachmentAction is a button or menu to be included in the attachment. Required when -// using message buttons or menus and otherwise not useful. A maximum of 5 actions may be -// provided per attachment. -type AttachmentAction struct { - Name string `json:"name"` // Required. - Text string `json:"text"` // Required. - Style string `json:"style,omitempty"` // Optional. Allowed values: "default", "primary", "danger". - Type actionType `json:"type"` // Required. Must be set to "button" or "select". - Value string `json:"value,omitempty"` // Optional. - DataSource string `json:"data_source,omitempty"` // Optional. - MinQueryLength int `json:"min_query_length,omitempty"` // Optional. Default value is 1. - Options []AttachmentActionOption `json:"options,omitempty"` // Optional. Maximum of 100 options can be provided in each menu. - SelectedOptions []AttachmentActionOption `json:"selected_options,omitempty"` // Optional. The first element of this array will be set as the pre-selected option for this menu. - OptionGroups []AttachmentActionOptionGroup `json:"option_groups,omitempty"` // Optional. - Confirm *ConfirmationField `json:"confirm,omitempty"` // Optional. - URL string `json:"url,omitempty"` // Optional. -} - -// actionType returns the type of the action -func (a AttachmentAction) actionType() actionType { - return a.Type -} - -// AttachmentActionOption the individual option to appear in action menu. -type AttachmentActionOption struct { - Text string `json:"text"` // Required. - Value string `json:"value"` // Required. - Description string `json:"description,omitempty"` // Optional. Up to 30 characters. -} - -// AttachmentActionOptionGroup is a semi-hierarchal way to list available options to appear in action menu. -type AttachmentActionOptionGroup struct { - Text string `json:"text"` // Required. - Options []AttachmentActionOption `json:"options"` // Required. -} - -// AttachmentActionCallback is sent from Slack when a user clicks a button in an interactive message (aka AttachmentAction) -// DEPRECATED: use InteractionCallback -type AttachmentActionCallback InteractionCallback - -// ConfirmationField are used to ask users to confirm actions -type ConfirmationField struct { - Title string `json:"title,omitempty"` // Optional. - Text string `json:"text"` // Required. - OkText string `json:"ok_text,omitempty"` // Optional. Defaults to "Okay" - DismissText string `json:"dismiss_text,omitempty"` // Optional. Defaults to "Cancel" -} - -// Attachment contains all the information for an attachment -type Attachment struct { - Color string `json:"color,omitempty"` - Fallback string `json:"fallback,omitempty"` - - CallbackID string `json:"callback_id,omitempty"` - ID int `json:"id,omitempty"` - - AuthorID string `json:"author_id,omitempty"` - AuthorName string `json:"author_name,omitempty"` - AuthorSubname string `json:"author_subname,omitempty"` - AuthorLink string `json:"author_link,omitempty"` - AuthorIcon string `json:"author_icon,omitempty"` - - Title string `json:"title,omitempty"` - TitleLink string `json:"title_link,omitempty"` - Pretext string `json:"pretext,omitempty"` - Text string `json:"text,omitempty"` - - ImageURL string `json:"image_url,omitempty"` - ThumbURL string `json:"thumb_url,omitempty"` - - Fields []AttachmentField `json:"fields,omitempty"` - Actions []AttachmentAction `json:"actions,omitempty"` - MarkdownIn []string `json:"mrkdwn_in,omitempty"` - - Blocks Blocks `json:"blocks,omitempty"` - - Footer string `json:"footer,omitempty"` - FooterIcon string `json:"footer_icon,omitempty"` - - Ts json.Number `json:"ts,omitempty"` -} diff --git a/vendor/github.com/slack-go/slack/auth.go b/vendor/github.com/slack-go/slack/auth.go deleted file mode 100644 index f4f7f00..0000000 --- a/vendor/github.com/slack-go/slack/auth.go +++ /dev/null @@ -1,40 +0,0 @@ -package slack - -import ( - "context" - "net/url" -) - -// AuthRevokeResponse contains our Auth response from the auth.revoke endpoint -type AuthRevokeResponse struct { - SlackResponse // Contains the "ok", and "Error", if any - Revoked bool `json:"revoked,omitempty"` -} - -// authRequest sends the actual request, and unmarshals the response -func (api *Client) authRequest(ctx context.Context, path string, values url.Values) (*AuthRevokeResponse, error) { - response := &AuthRevokeResponse{} - err := api.postMethod(ctx, path, values, response) - if err != nil { - return nil, err - } - - return response, response.Err() -} - -// SendAuthRevoke will send a revocation for our token -func (api *Client) SendAuthRevoke(token string) (*AuthRevokeResponse, error) { - return api.SendAuthRevokeContext(context.Background(), token) -} - -// SendAuthRevokeContext will send a revocation request for our token to api.revoke with context -func (api *Client) SendAuthRevokeContext(ctx context.Context, token string) (*AuthRevokeResponse, error) { - if token == "" { - token = api.token - } - values := url.Values{ - "token": {token}, - } - - return api.authRequest(ctx, "auth.revoke", values) -} diff --git a/vendor/github.com/slack-go/slack/block.go b/vendor/github.com/slack-go/slack/block.go deleted file mode 100644 index 9946a29..0000000 --- a/vendor/github.com/slack-go/slack/block.go +++ /dev/null @@ -1,80 +0,0 @@ -package slack - -// @NOTE: Blocks are in beta and subject to change. - -// More Information: https://api.slack.com/block-kit - -// MessageBlockType defines a named string type to define each block type -// as a constant for use within the package. -type MessageBlockType string - -const ( - MBTSection MessageBlockType = "section" - MBTDivider MessageBlockType = "divider" - MBTImage MessageBlockType = "image" - MBTAction MessageBlockType = "actions" - MBTContext MessageBlockType = "context" - MBTFile MessageBlockType = "file" - MBTInput MessageBlockType = "input" - MBTHeader MessageBlockType = "header" -) - -// Block defines an interface all block types should implement -// to ensure consistency between blocks. -type Block interface { - BlockType() MessageBlockType -} - -// Blocks is a convenience struct defined to allow dynamic unmarshalling of -// the "blocks" value in Slack's JSON response, which varies depending on block type -type Blocks struct { - BlockSet []Block `json:"blocks,omitempty"` -} - -// BlockAction is the action callback sent when a block is interacted with -type BlockAction struct { - ActionID string `json:"action_id"` - BlockID string `json:"block_id"` - Type actionType `json:"type"` - Text TextBlockObject `json:"text"` - Value string `json:"value"` - ActionTs string `json:"action_ts"` - SelectedOption OptionBlockObject `json:"selected_option"` - SelectedOptions []OptionBlockObject `json:"selected_options"` - SelectedUser string `json:"selected_user"` - SelectedUsers []string `json:"selected_users"` - SelectedChannel string `json:"selected_channel"` - SelectedChannels []string `json:"selected_channels"` - SelectedConversation string `json:"selected_conversation"` - SelectedConversations []string `json:"selected_conversations"` - SelectedDate string `json:"selected_date"` - SelectedTime string `json:"selected_time"` - InitialOption OptionBlockObject `json:"initial_option"` - InitialUser string `json:"initial_user"` - InitialChannel string `json:"initial_channel"` - InitialConversation string `json:"initial_conversation"` - InitialDate string `json:"initial_date"` - InitialTime string `json:"initial_time"` -} - -// actionType returns the type of the action -func (b BlockAction) actionType() actionType { - return b.Type -} - -// NewBlockMessage creates a new Message that contains one or more blocks to be displayed -func NewBlockMessage(blocks ...Block) Message { - return Message{ - Msg: Msg{ - Blocks: Blocks{ - BlockSet: blocks, - }, - }, - } -} - -// AddBlockMessage appends a block to the end of the existing list of blocks -func AddBlockMessage(message Message, newBlk Block) Message { - message.Msg.Blocks.BlockSet = append(message.Msg.Blocks.BlockSet, newBlk) - return message -} diff --git a/vendor/github.com/slack-go/slack/block_action.go b/vendor/github.com/slack-go/slack/block_action.go deleted file mode 100644 index c15e4a3..0000000 --- a/vendor/github.com/slack-go/slack/block_action.go +++ /dev/null @@ -1,26 +0,0 @@ -package slack - -// ActionBlock defines data that is used to hold interactive elements. -// -// More Information: https://api.slack.com/reference/messaging/blocks#actions -type ActionBlock struct { - Type MessageBlockType `json:"type"` - BlockID string `json:"block_id,omitempty"` - Elements *BlockElements `json:"elements"` -} - -// BlockType returns the type of the block -func (s ActionBlock) BlockType() MessageBlockType { - return s.Type -} - -// NewActionBlock returns a new instance of an Action Block -func NewActionBlock(blockID string, elements ...BlockElement) *ActionBlock { - return &ActionBlock{ - Type: MBTAction, - BlockID: blockID, - Elements: &BlockElements{ - ElementSet: elements, - }, - } -} diff --git a/vendor/github.com/slack-go/slack/block_context.go b/vendor/github.com/slack-go/slack/block_context.go deleted file mode 100644 index c37bf27..0000000 --- a/vendor/github.com/slack-go/slack/block_context.go +++ /dev/null @@ -1,32 +0,0 @@ -package slack - -// ContextBlock defines data that is used to display message context, which can -// include both images and text. -// -// More Information: https://api.slack.com/reference/messaging/blocks#actions -type ContextBlock struct { - Type MessageBlockType `json:"type"` - BlockID string `json:"block_id,omitempty"` - ContextElements ContextElements `json:"elements"` -} - -// BlockType returns the type of the block -func (s ContextBlock) BlockType() MessageBlockType { - return s.Type -} - -type ContextElements struct { - Elements []MixedElement -} - -// NewContextBlock returns a new instance of a context block -func NewContextBlock(blockID string, mixedElements ...MixedElement) *ContextBlock { - elements := ContextElements{ - Elements: mixedElements, - } - return &ContextBlock{ - Type: MBTContext, - BlockID: blockID, - ContextElements: elements, - } -} diff --git a/vendor/github.com/slack-go/slack/block_conv.go b/vendor/github.com/slack-go/slack/block_conv.go deleted file mode 100644 index f2d744c..0000000 --- a/vendor/github.com/slack-go/slack/block_conv.go +++ /dev/null @@ -1,417 +0,0 @@ -package slack - -import ( - "encoding/json" - "fmt" - - "github.com/pkg/errors" -) - -type sumtype struct { - TypeVal string `json:"type"` -} - -// MarshalJSON implements the Marshaller interface for Blocks so that any JSON -// marshalling is delegated and proper type determination can be made before marshal -func (b Blocks) MarshalJSON() ([]byte, error) { - bytes, err := json.Marshal(b.BlockSet) - if err != nil { - return nil, err - } - - return bytes, nil -} - -// UnmarshalJSON implements the Unmarshaller interface for Blocks, so that any JSON -// unmarshalling is delegated and proper type determination can be made before unmarshal -func (b *Blocks) UnmarshalJSON(data []byte) error { - var raw []json.RawMessage - - if string(data) == "{}" { - return nil - } - - err := json.Unmarshal(data, &raw) - if err != nil { - return err - } - - var blocks Blocks - for _, r := range raw { - s := sumtype{} - err := json.Unmarshal(r, &s) - if err != nil { - return err - } - - var blockType string - if s.TypeVal != "" { - blockType = s.TypeVal - } - - var block Block - switch blockType { - case "actions": - block = &ActionBlock{} - case "context": - block = &ContextBlock{} - case "divider": - block = &DividerBlock{} - case "file": - block = &FileBlock{} - case "header": - block = &HeaderBlock{} - case "image": - block = &ImageBlock{} - case "input": - block = &InputBlock{} - case "section": - block = &SectionBlock{} - default: - block = &UnknownBlock{} - } - - err = json.Unmarshal(r, block) - if err != nil { - return err - } - - blocks.BlockSet = append(blocks.BlockSet, block) - } - - *b = blocks - return nil -} - -// UnmarshalJSON implements the Unmarshaller interface for InputBlock, so that any JSON -// unmarshalling is delegated and proper type determination can be made before unmarshal -func (b *InputBlock) UnmarshalJSON(data []byte) error { - type alias InputBlock - a := struct { - Element json.RawMessage `json:"element"` - *alias - }{ - alias: (*alias)(b), - } - - if err := json.Unmarshal(data, &a); err != nil { - return err - } - - s := sumtype{} - if err := json.Unmarshal(a.Element, &s); err != nil { - return nil - } - - var e BlockElement - switch s.TypeVal { - case "datepicker": - e = &DatePickerBlockElement{} - case "timepicker": - e = &TimePickerBlockElement{} - case "plain_text_input": - e = &PlainTextInputBlockElement{} - case "static_select", "external_select", "users_select", "conversations_select", "channels_select": - e = &SelectBlockElement{} - case "multi_static_select", "multi_external_select", "multi_users_select", "multi_conversations_select", "multi_channels_select": - e = &MultiSelectBlockElement{} - case "checkboxes": - e = &CheckboxGroupsBlockElement{} - case "overflow": - e = &OverflowBlockElement{} - case "radio_buttons": - e = &RadioButtonsBlockElement{} - default: - return errors.New("unsupported block element type") - } - - if err := json.Unmarshal(a.Element, e); err != nil { - return err - } - b.Element = e - - return nil -} - -// MarshalJSON implements the Marshaller interface for BlockElements so that any JSON -// marshalling is delegated and proper type determination can be made before marshal -func (b *BlockElements) MarshalJSON() ([]byte, error) { - bytes, err := json.Marshal(b.ElementSet) - if err != nil { - return nil, err - } - - return bytes, nil -} - -// UnmarshalJSON implements the Unmarshaller interface for BlockElements, so that any JSON -// unmarshalling is delegated and proper type determination can be made before unmarshal -func (b *BlockElements) UnmarshalJSON(data []byte) error { - var raw []json.RawMessage - - if string(data) == "{}" { - return nil - } - - err := json.Unmarshal(data, &raw) - if err != nil { - return err - } - - var blockElements BlockElements - for _, r := range raw { - s := sumtype{} - err := json.Unmarshal(r, &s) - if err != nil { - return err - } - - var blockElementType string - if s.TypeVal != "" { - blockElementType = s.TypeVal - } - - var blockElement BlockElement - switch blockElementType { - case "image": - blockElement = &ImageBlockElement{} - case "button": - blockElement = &ButtonBlockElement{} - case "overflow": - blockElement = &OverflowBlockElement{} - case "datepicker": - blockElement = &DatePickerBlockElement{} - case "plain_text_input": - blockElement = &PlainTextInputBlockElement{} - case "checkboxes": - blockElement = &CheckboxGroupsBlockElement{} - case "radio_buttons": - blockElement = &RadioButtonsBlockElement{} - case "static_select", "external_select", "users_select", "conversations_select", "channels_select": - blockElement = &SelectBlockElement{} - default: - return fmt.Errorf("unsupported block element type %v", blockElementType) - } - - err = json.Unmarshal(r, blockElement) - if err != nil { - return err - } - - blockElements.ElementSet = append(blockElements.ElementSet, blockElement) - } - - *b = blockElements - return nil -} - -// MarshalJSON implements the Marshaller interface for Accessory so that any JSON -// marshalling is delegated and proper type determination can be made before marshal -func (a *Accessory) MarshalJSON() ([]byte, error) { - bytes, err := json.Marshal(toBlockElement(a)) - if err != nil { - return nil, err - } - - return bytes, nil -} - -// UnmarshalJSON implements the Unmarshaller interface for Accessory, so that any JSON -// unmarshalling is delegated and proper type determination can be made before unmarshal -func (a *Accessory) UnmarshalJSON(data []byte) error { - var r json.RawMessage - - if string(data) == "{\"accessory\":null}" { - return nil - } - - err := json.Unmarshal(data, &r) - if err != nil { - return err - } - - s := sumtype{} - err = json.Unmarshal(r, &s) - if err != nil { - return err - } - - var blockElementType string - if s.TypeVal != "" { - blockElementType = s.TypeVal - } - - switch blockElementType { - case "image": - element, err := unmarshalBlockElement(r, &ImageBlockElement{}) - if err != nil { - return err - } - a.ImageElement = element.(*ImageBlockElement) - case "button": - element, err := unmarshalBlockElement(r, &ButtonBlockElement{}) - if err != nil { - return err - } - a.ButtonElement = element.(*ButtonBlockElement) - case "overflow": - element, err := unmarshalBlockElement(r, &OverflowBlockElement{}) - if err != nil { - return err - } - a.OverflowElement = element.(*OverflowBlockElement) - case "datepicker": - element, err := unmarshalBlockElement(r, &DatePickerBlockElement{}) - if err != nil { - return err - } - a.DatePickerElement = element.(*DatePickerBlockElement) - case "timepicker": - element, err := unmarshalBlockElement(r, &TimePickerBlockElement{}) - if err != nil { - return err - } - a.TimePickerElement = element.(*TimePickerBlockElement) - case "plain_text_input": - element, err := unmarshalBlockElement(r, &PlainTextInputBlockElement{}) - if err != nil { - return err - } - a.PlainTextInputElement = element.(*PlainTextInputBlockElement) - case "radio_buttons": - element, err := unmarshalBlockElement(r, &RadioButtonsBlockElement{}) - if err != nil { - return err - } - a.RadioButtonsElement = element.(*RadioButtonsBlockElement) - case "static_select", "external_select", "users_select", "conversations_select", "channels_select": - element, err := unmarshalBlockElement(r, &SelectBlockElement{}) - if err != nil { - return err - } - a.SelectElement = element.(*SelectBlockElement) - case "multi_static_select", "multi_external_select", "multi_users_select", "multi_conversations_select", "multi_channels_select": - element, err := unmarshalBlockElement(r, &MultiSelectBlockElement{}) - if err != nil { - return err - } - a.MultiSelectElement = element.(*MultiSelectBlockElement) - case "checkboxes": - element, err := unmarshalBlockElement(r, &CheckboxGroupsBlockElement{}) - if err != nil { - return err - } - a.CheckboxGroupsBlockElement = element.(*CheckboxGroupsBlockElement) - default: - element, err := unmarshalBlockElement(r, &UnknownBlockElement{}) - if err != nil { - return err - } - a.UnknownElement = element.(*UnknownBlockElement) - } - - return nil -} - -func unmarshalBlockElement(r json.RawMessage, element BlockElement) (BlockElement, error) { - err := json.Unmarshal(r, element) - if err != nil { - return nil, err - } - return element, nil -} - -func toBlockElement(element *Accessory) BlockElement { - if element.ImageElement != nil { - return element.ImageElement - } - if element.ButtonElement != nil { - return element.ButtonElement - } - if element.OverflowElement != nil { - return element.OverflowElement - } - if element.DatePickerElement != nil { - return element.DatePickerElement - } - if element.TimePickerElement != nil { - return element.TimePickerElement - } - if element.PlainTextInputElement != nil { - return element.PlainTextInputElement - } - if element.RadioButtonsElement != nil { - return element.RadioButtonsElement - } - if element.CheckboxGroupsBlockElement != nil { - return element.CheckboxGroupsBlockElement - } - if element.SelectElement != nil { - return element.SelectElement - } - if element.MultiSelectElement != nil { - return element.MultiSelectElement - } - - return nil -} - -// MarshalJSON implements the Marshaller interface for ContextElements so that any JSON -// marshalling is delegated and proper type determination can be made before marshal -func (e *ContextElements) MarshalJSON() ([]byte, error) { - bytes, err := json.Marshal(e.Elements) - if err != nil { - return nil, err - } - - return bytes, nil -} - -// UnmarshalJSON implements the Unmarshaller interface for ContextElements, so that any JSON -// unmarshalling is delegated and proper type determination can be made before unmarshal -func (e *ContextElements) UnmarshalJSON(data []byte) error { - var raw []json.RawMessage - - if string(data) == "{\"elements\":null}" { - return nil - } - - err := json.Unmarshal(data, &raw) - if err != nil { - return err - } - - for _, r := range raw { - s := sumtype{} - err := json.Unmarshal(r, &s) - if err != nil { - return err - } - - var contextElementType string - if s.TypeVal != "" { - contextElementType = s.TypeVal - } - - switch contextElementType { - case PlainTextType, MarkdownType: - elem, err := unmarshalBlockObject(r, &TextBlockObject{}) - if err != nil { - return err - } - - e.Elements = append(e.Elements, elem.(*TextBlockObject)) - case "image": - elem, err := unmarshalBlockElement(r, &ImageBlockElement{}) - if err != nil { - return err - } - - e.Elements = append(e.Elements, elem.(*ImageBlockElement)) - default: - return errors.New("unsupported context element type") - } - } - - return nil -} diff --git a/vendor/github.com/slack-go/slack/block_divider.go b/vendor/github.com/slack-go/slack/block_divider.go deleted file mode 100644 index 2d442ba..0000000 --- a/vendor/github.com/slack-go/slack/block_divider.go +++ /dev/null @@ -1,22 +0,0 @@ -package slack - -// DividerBlock for displaying a divider line between blocks (similar to
tag in html) -// -// More Information: https://api.slack.com/reference/messaging/blocks#divider -type DividerBlock struct { - Type MessageBlockType `json:"type"` - BlockID string `json:"block_id,omitempty"` -} - -// BlockType returns the type of the block -func (s DividerBlock) BlockType() MessageBlockType { - return s.Type -} - -// NewDividerBlock returns a new instance of a divider block -func NewDividerBlock() *DividerBlock { - return &DividerBlock{ - Type: MBTDivider, - } - -} diff --git a/vendor/github.com/slack-go/slack/block_element.go b/vendor/github.com/slack-go/slack/block_element.go deleted file mode 100644 index bf06844..0000000 --- a/vendor/github.com/slack-go/slack/block_element.go +++ /dev/null @@ -1,466 +0,0 @@ -package slack - -// https://api.slack.com/reference/messaging/block-elements - -const ( - METCheckboxGroups MessageElementType = "checkboxes" - METImage MessageElementType = "image" - METButton MessageElementType = "button" - METOverflow MessageElementType = "overflow" - METDatepicker MessageElementType = "datepicker" - METTimepicker MessageElementType = "timepicker" - METPlainTextInput MessageElementType = "plain_text_input" - METRadioButtons MessageElementType = "radio_buttons" - - MixedElementImage MixedElementType = "mixed_image" - MixedElementText MixedElementType = "mixed_text" - - OptTypeStatic string = "static_select" - OptTypeExternal string = "external_select" - OptTypeUser string = "users_select" - OptTypeConversations string = "conversations_select" - OptTypeChannels string = "channels_select" - - MultiOptTypeStatic string = "multi_static_select" - MultiOptTypeExternal string = "multi_external_select" - MultiOptTypeUser string = "multi_users_select" - MultiOptTypeConversations string = "multi_conversations_select" - MultiOptTypeChannels string = "multi_channels_select" -) - -type MessageElementType string -type MixedElementType string - -// BlockElement defines an interface that all block element types should implement. -type BlockElement interface { - ElementType() MessageElementType -} - -type MixedElement interface { - MixedElementType() MixedElementType -} - -type Accessory struct { - ImageElement *ImageBlockElement - ButtonElement *ButtonBlockElement - OverflowElement *OverflowBlockElement - DatePickerElement *DatePickerBlockElement - TimePickerElement *TimePickerBlockElement - PlainTextInputElement *PlainTextInputBlockElement - RadioButtonsElement *RadioButtonsBlockElement - SelectElement *SelectBlockElement - MultiSelectElement *MultiSelectBlockElement - CheckboxGroupsBlockElement *CheckboxGroupsBlockElement - UnknownElement *UnknownBlockElement -} - -// NewAccessory returns a new Accessory for a given block element -func NewAccessory(element BlockElement) *Accessory { - switch element.(type) { - case *ImageBlockElement: - return &Accessory{ImageElement: element.(*ImageBlockElement)} - case *ButtonBlockElement: - return &Accessory{ButtonElement: element.(*ButtonBlockElement)} - case *OverflowBlockElement: - return &Accessory{OverflowElement: element.(*OverflowBlockElement)} - case *DatePickerBlockElement: - return &Accessory{DatePickerElement: element.(*DatePickerBlockElement)} - case *TimePickerBlockElement: - return &Accessory{TimePickerElement: element.(*TimePickerBlockElement)} - case *PlainTextInputBlockElement: - return &Accessory{PlainTextInputElement: element.(*PlainTextInputBlockElement)} - case *RadioButtonsBlockElement: - return &Accessory{RadioButtonsElement: element.(*RadioButtonsBlockElement)} - case *SelectBlockElement: - return &Accessory{SelectElement: element.(*SelectBlockElement)} - case *MultiSelectBlockElement: - return &Accessory{MultiSelectElement: element.(*MultiSelectBlockElement)} - case *CheckboxGroupsBlockElement: - return &Accessory{CheckboxGroupsBlockElement: element.(*CheckboxGroupsBlockElement)} - default: - return &Accessory{UnknownElement: element.(*UnknownBlockElement)} - } -} - -// BlockElements is a convenience struct defined to allow dynamic unmarshalling of -// the "elements" value in Slack's JSON response, which varies depending on BlockElement type -type BlockElements struct { - ElementSet []BlockElement `json:"elements,omitempty"` -} - -// UnknownBlockElement any block element that this library does not directly support. -// See the "Rich Elements" section at the following URL: -// https://api.slack.com/changelog/2019-09-what-they-see-is-what-you-get-and-more-and-less -// New block element types may be introduced by Slack at any time; this is a catch-all for any such block elements. -type UnknownBlockElement struct { - Type MessageElementType `json:"type"` - Elements BlockElements -} - -// ElementType returns the type of the Element -func (s UnknownBlockElement) ElementType() MessageElementType { - return s.Type -} - -// ImageBlockElement An element to insert an image - this element can be used -// in section and context blocks only. If you want a block with only an image -// in it, you're looking for the image block. -// -// More Information: https://api.slack.com/reference/messaging/block-elements#image -type ImageBlockElement struct { - Type MessageElementType `json:"type"` - ImageURL string `json:"image_url"` - AltText string `json:"alt_text"` -} - -// ElementType returns the type of the Element -func (s ImageBlockElement) ElementType() MessageElementType { - return s.Type -} - -func (s ImageBlockElement) MixedElementType() MixedElementType { - return MixedElementImage -} - -// NewImageBlockElement returns a new instance of an image block element -func NewImageBlockElement(imageURL, altText string) *ImageBlockElement { - return &ImageBlockElement{ - Type: METImage, - ImageURL: imageURL, - AltText: altText, - } -} - -// Style is a style of Button element -// https://api.slack.com/reference/block-kit/block-elements#button__fields -type Style string - -const ( - StyleDefault Style = "" - StylePrimary Style = "primary" - StyleDanger Style = "danger" -) - -// ButtonBlockElement defines an interactive element that inserts a button. The -// button can be a trigger for anything from opening a simple link to starting -// a complex workflow. -// -// More Information: https://api.slack.com/reference/messaging/block-elements#button -type ButtonBlockElement struct { - Type MessageElementType `json:"type,omitempty"` - Text *TextBlockObject `json:"text"` - ActionID string `json:"action_id,omitempty"` - URL string `json:"url,omitempty"` - Value string `json:"value,omitempty"` - Confirm *ConfirmationBlockObject `json:"confirm,omitempty"` - Style Style `json:"style,omitempty"` -} - -// ElementType returns the type of the element -func (s ButtonBlockElement) ElementType() MessageElementType { - return s.Type -} - -// WithStyle adds styling to the button object and returns the modified ButtonBlockElement -func (s *ButtonBlockElement) WithStyle(style Style) *ButtonBlockElement { - s.Style = style - return s -} - -// NewButtonBlockElement returns an instance of a new button element to be used within a block -func NewButtonBlockElement(actionID, value string, text *TextBlockObject) *ButtonBlockElement { - return &ButtonBlockElement{ - Type: METButton, - ActionID: actionID, - Text: text, - Value: value, - } -} - -// OptionsResponse defines the response used for select block typahead. -// -// More Information: https://api.slack.com/reference/block-kit/block-elements#external_multi_select -type OptionsResponse struct { - Options []*OptionBlockObject `json:"options,omitempty"` -} - -// OptionGroupsResponse defines the response used for select block typahead. -// -// More Information: https://api.slack.com/reference/block-kit/block-elements#external_multi_select -type OptionGroupsResponse struct { - OptionGroups []*OptionGroupBlockObject `json:"option_groups,omitempty"` -} - -// SelectBlockElement defines the simplest form of select menu, with a static list -// of options passed in when defining the element. -// -// More Information: https://api.slack.com/reference/messaging/block-elements#select -type SelectBlockElement struct { - Type string `json:"type,omitempty"` - Placeholder *TextBlockObject `json:"placeholder,omitempty"` - ActionID string `json:"action_id,omitempty"` - Options []*OptionBlockObject `json:"options,omitempty"` - OptionGroups []*OptionGroupBlockObject `json:"option_groups,omitempty"` - InitialOption *OptionBlockObject `json:"initial_option,omitempty"` - InitialUser string `json:"initial_user,omitempty"` - InitialConversation string `json:"initial_conversation,omitempty"` - InitialChannel string `json:"initial_channel,omitempty"` - DefaultToCurrentConversation bool `json:"default_to_current_conversation,omitempty"` - ResponseURLEnabled bool `json:"response_url_enabled,omitempty"` - Filter *SelectBlockElementFilter `json:"filter,omitempty"` - MinQueryLength *int `json:"min_query_length,omitempty"` - Confirm *ConfirmationBlockObject `json:"confirm,omitempty"` -} - -// SelectBlockElementFilter allows to filter select element conversation options by type. -// -// More Information: https://api.slack.com/reference/block-kit/composition-objects#filter_conversations -type SelectBlockElementFilter struct { - Include []string `json:"include,omitempty"` - ExcludeExternalSharedChannels bool `json:"exclude_external_shared_channels,omitempty"` - ExcludeBotUsers bool `json:"exclude_bot_users,omitempty"` -} - -// ElementType returns the type of the Element -func (s SelectBlockElement) ElementType() MessageElementType { - return MessageElementType(s.Type) -} - -// NewOptionsSelectBlockElement returns a new instance of SelectBlockElement for use with -// the Options object only. -func NewOptionsSelectBlockElement(optType string, placeholder *TextBlockObject, actionID string, options ...*OptionBlockObject) *SelectBlockElement { - return &SelectBlockElement{ - Type: optType, - Placeholder: placeholder, - ActionID: actionID, - Options: options, - } -} - -// NewOptionsGroupSelectBlockElement returns a new instance of SelectBlockElement for use with -// the Options object only. -func NewOptionsGroupSelectBlockElement( - optType string, - placeholder *TextBlockObject, - actionID string, - optGroups ...*OptionGroupBlockObject, -) *SelectBlockElement { - return &SelectBlockElement{ - Type: optType, - Placeholder: placeholder, - ActionID: actionID, - OptionGroups: optGroups, - } -} - -// MultiSelectBlockElement defines a multiselect menu, with a static list -// of options passed in when defining the element. -// -// More Information: https://api.slack.com/reference/messaging/block-elements#multi_select -type MultiSelectBlockElement struct { - Type string `json:"type,omitempty"` - Placeholder *TextBlockObject `json:"placeholder,omitempty"` - ActionID string `json:"action_id,omitempty"` - Options []*OptionBlockObject `json:"options,omitempty"` - OptionGroups []*OptionGroupBlockObject `json:"option_groups,omitempty"` - InitialOptions []*OptionBlockObject `json:"initial_options,omitempty"` - InitialUsers []string `json:"initial_users,omitempty"` - InitialConversations []string `json:"initial_conversations,omitempty"` - InitialChannels []string `json:"initial_channels,omitempty"` - MinQueryLength *int `json:"min_query_length,omitempty"` - MaxSelectedItems *int `json:"max_selected_items,omitempty"` - Confirm *ConfirmationBlockObject `json:"confirm,omitempty"` -} - -// ElementType returns the type of the Element -func (s MultiSelectBlockElement) ElementType() MessageElementType { - return MessageElementType(s.Type) -} - -// NewOptionsMultiSelectBlockElement returns a new instance of SelectBlockElement for use with -// the Options object only. -func NewOptionsMultiSelectBlockElement(optType string, placeholder *TextBlockObject, actionID string, options ...*OptionBlockObject) *MultiSelectBlockElement { - return &MultiSelectBlockElement{ - Type: optType, - Placeholder: placeholder, - ActionID: actionID, - Options: options, - } -} - -// NewOptionsGroupMultiSelectBlockElement returns a new instance of MultiSelectBlockElement for use with -// the Options object only. -func NewOptionsGroupMultiSelectBlockElement( - optType string, - placeholder *TextBlockObject, - actionID string, - optGroups ...*OptionGroupBlockObject, -) *MultiSelectBlockElement { - return &MultiSelectBlockElement{ - Type: optType, - Placeholder: placeholder, - ActionID: actionID, - OptionGroups: optGroups, - } -} - -// OverflowBlockElement defines the fields needed to use an overflow element. -// And Overflow Element is like a cross between a button and a select menu - -// when a user clicks on this overflow button, they will be presented with a -// list of options to choose from. -// -// More Information: https://api.slack.com/reference/messaging/block-elements#overflow -type OverflowBlockElement struct { - Type MessageElementType `json:"type"` - ActionID string `json:"action_id,omitempty"` - Options []*OptionBlockObject `json:"options"` - Confirm *ConfirmationBlockObject `json:"confirm,omitempty"` -} - -// ElementType returns the type of the Element -func (s OverflowBlockElement) ElementType() MessageElementType { - return s.Type -} - -// NewOverflowBlockElement returns an instance of a new Overflow Block Element -func NewOverflowBlockElement(actionID string, options ...*OptionBlockObject) *OverflowBlockElement { - return &OverflowBlockElement{ - Type: METOverflow, - ActionID: actionID, - Options: options, - } -} - -// DatePickerBlockElement defines an element which lets users easily select a -// date from a calendar style UI. Date picker elements can be used inside of -// section and actions blocks. -// -// More Information: https://api.slack.com/reference/messaging/block-elements#datepicker -type DatePickerBlockElement struct { - Type MessageElementType `json:"type"` - ActionID string `json:"action_id,omitempty"` - Placeholder *TextBlockObject `json:"placeholder,omitempty"` - InitialDate string `json:"initial_date,omitempty"` - Confirm *ConfirmationBlockObject `json:"confirm,omitempty"` -} - -// ElementType returns the type of the Element -func (s DatePickerBlockElement) ElementType() MessageElementType { - return s.Type -} - -// NewDatePickerBlockElement returns an instance of a date picker element -func NewDatePickerBlockElement(actionID string) *DatePickerBlockElement { - return &DatePickerBlockElement{ - Type: METDatepicker, - ActionID: actionID, - } -} - -// TimePickerBlockElement defines an element which lets users easily select a -// time from nice UI. Time picker elements can be used inside of -// section and actions blocks. -// -// More Information: https://api.slack.com/reference/messaging/block-elements#timepicker -type TimePickerBlockElement struct { - Type MessageElementType `json:"type"` - ActionID string `json:"action_id,omitempty"` - Placeholder *TextBlockObject `json:"placeholder,omitempty"` - InitialTime string `json:"initial_time,omitempty"` - Confirm *ConfirmationBlockObject `json:"confirm,omitempty"` -} - -// ElementType returns the type of the Element -func (s TimePickerBlockElement) ElementType() MessageElementType { - return s.Type -} - -// NewTimePickerBlockElement returns an instance of a date picker element -func NewTimePickerBlockElement(actionID string) *TimePickerBlockElement { - return &TimePickerBlockElement{ - Type: METTimepicker, - ActionID: actionID, - } -} - -// PlainTextInputBlockElement creates a field where a user can enter freeform -// data. -// Plain-text input elements are currently only available in modals. -// -// More Information: https://api.slack.com/reference/block-kit/block-elements#input -type PlainTextInputBlockElement struct { - Type MessageElementType `json:"type"` - ActionID string `json:"action_id,omitempty"` - Placeholder *TextBlockObject `json:"placeholder,omitempty"` - InitialValue string `json:"initial_value,omitempty"` - Multiline bool `json:"multiline,omitempty"` - MinLength int `json:"min_length,omitempty"` - MaxLength int `json:"max_length,omitempty"` -} - -// ElementType returns the type of the Element -func (s PlainTextInputBlockElement) ElementType() MessageElementType { - return s.Type -} - -// NewPlainTextInputBlockElement returns an instance of a plain-text input -// element -func NewPlainTextInputBlockElement(placeholder *TextBlockObject, actionID string) *PlainTextInputBlockElement { - return &PlainTextInputBlockElement{ - Type: METPlainTextInput, - ActionID: actionID, - Placeholder: placeholder, - } -} - -// CheckboxGroupsBlockElement defines an element which allows users to choose -// one or more items from a list of possible options. -// -// More Information: https://api.slack.com/reference/block-kit/block-elements#checkboxes -type CheckboxGroupsBlockElement struct { - Type MessageElementType `json:"type"` - ActionID string `json:"action_id,omitempty"` - Options []*OptionBlockObject `json:"options"` - InitialOptions []*OptionBlockObject `json:"initial_options,omitempty"` - Confirm *ConfirmationBlockObject `json:"confirm,omitempty"` -} - -// ElementType returns the type of the Element -func (c CheckboxGroupsBlockElement) ElementType() MessageElementType { - return c.Type -} - -// NewCheckboxGroupsBlockElement returns an instance of a checkbox-group block element -func NewCheckboxGroupsBlockElement(actionID string, options ...*OptionBlockObject) *CheckboxGroupsBlockElement { - return &CheckboxGroupsBlockElement{ - Type: METCheckboxGroups, - ActionID: actionID, - Options: options, - } -} - -// RadioButtonsBlockElement defines an element which lets users choose one item -// from a list of possible options. -// -// More Information: https://api.slack.com/reference/block-kit/block-elements#radio -type RadioButtonsBlockElement struct { - Type MessageElementType `json:"type"` - ActionID string `json:"action_id,omitempty"` - Options []*OptionBlockObject `json:"options"` - InitialOption *OptionBlockObject `json:"initial_option,omitempty"` - Confirm *ConfirmationBlockObject `json:"confirm,omitempty"` -} - -// ElementType returns the type of the Element -func (s RadioButtonsBlockElement) ElementType() MessageElementType { - return s.Type -} - -// NewRadioButtonsBlockElement returns an instance of a radio buttons element. -func NewRadioButtonsBlockElement(actionID string, options ...*OptionBlockObject) *RadioButtonsBlockElement { - return &RadioButtonsBlockElement{ - Type: METRadioButtons, - ActionID: actionID, - Options: options, - } -} diff --git a/vendor/github.com/slack-go/slack/block_file.go b/vendor/github.com/slack-go/slack/block_file.go deleted file mode 100644 index ac4453f..0000000 --- a/vendor/github.com/slack-go/slack/block_file.go +++ /dev/null @@ -1,26 +0,0 @@ -package slack - -// FileBlock defines data that is used to display a remote file. -// -// More Information: https://api.slack.com/reference/block-kit/blocks#file -type FileBlock struct { - Type MessageBlockType `json:"type"` - BlockID string `json:"block_id,omitempty"` - ExternalID string `json:"external_id"` - Source string `json:"source"` -} - -// BlockType returns the type of the block -func (s FileBlock) BlockType() MessageBlockType { - return s.Type -} - -// NewFileBlock returns a new instance of a file block -func NewFileBlock(blockID string, externalID string, source string) *FileBlock { - return &FileBlock{ - Type: MBTFile, - BlockID: blockID, - ExternalID: externalID, - Source: source, - } -} diff --git a/vendor/github.com/slack-go/slack/block_header.go b/vendor/github.com/slack-go/slack/block_header.go deleted file mode 100644 index 6dff4b8..0000000 --- a/vendor/github.com/slack-go/slack/block_header.go +++ /dev/null @@ -1,38 +0,0 @@ -package slack - -// HeaderBlock defines a new block of type header -// -// More Information: https://api.slack.com/reference/messaging/blocks#header -type HeaderBlock struct { - Type MessageBlockType `json:"type"` - Text *TextBlockObject `json:"text,omitempty"` - BlockID string `json:"block_id,omitempty"` -} - -// BlockType returns the type of the block -func (s HeaderBlock) BlockType() MessageBlockType { - return s.Type -} - -// HeaderBlockOption allows configuration of options for a new header block -type HeaderBlockOption func(*HeaderBlock) - -func HeaderBlockOptionBlockID(blockID string) HeaderBlockOption { - return func(block *HeaderBlock) { - block.BlockID = blockID - } -} - -// NewHeaderBlock returns a new instance of a header block to be rendered -func NewHeaderBlock(textObj *TextBlockObject, options ...HeaderBlockOption) *HeaderBlock { - block := HeaderBlock{ - Type: MBTHeader, - Text: textObj, - } - - for _, option := range options { - option(&block) - } - - return &block -} diff --git a/vendor/github.com/slack-go/slack/block_image.go b/vendor/github.com/slack-go/slack/block_image.go deleted file mode 100644 index 90cbd14..0000000 --- a/vendor/github.com/slack-go/slack/block_image.go +++ /dev/null @@ -1,28 +0,0 @@ -package slack - -// ImageBlock defines data required to display an image as a block element -// -// More Information: https://api.slack.com/reference/messaging/blocks#image -type ImageBlock struct { - Type MessageBlockType `json:"type"` - ImageURL string `json:"image_url"` - AltText string `json:"alt_text"` - BlockID string `json:"block_id,omitempty"` - Title *TextBlockObject `json:"title,omitempty"` -} - -// BlockType returns the type of the block -func (s ImageBlock) BlockType() MessageBlockType { - return s.Type -} - -// NewImageBlock returns an instance of a new Image Block type -func NewImageBlock(imageURL, altText, blockID string, title *TextBlockObject) *ImageBlock { - return &ImageBlock{ - Type: MBTImage, - ImageURL: imageURL, - AltText: altText, - BlockID: blockID, - Title: title, - } -} diff --git a/vendor/github.com/slack-go/slack/block_input.go b/vendor/github.com/slack-go/slack/block_input.go deleted file mode 100644 index 087571a..0000000 --- a/vendor/github.com/slack-go/slack/block_input.go +++ /dev/null @@ -1,29 +0,0 @@ -package slack - -// InputBlock defines data that is used to display user input fields. -// -// More Information: https://api.slack.com/reference/block-kit/blocks#input -type InputBlock struct { - Type MessageBlockType `json:"type"` - BlockID string `json:"block_id,omitempty"` - Label *TextBlockObject `json:"label"` - Element BlockElement `json:"element"` - Hint *TextBlockObject `json:"hint,omitempty"` - Optional bool `json:"optional,omitempty"` - DispatchAction bool `json:"dispatch_action,omitempty"` -} - -// BlockType returns the type of the block -func (s InputBlock) BlockType() MessageBlockType { - return s.Type -} - -// NewInputBlock returns a new instance of an input block -func NewInputBlock(blockID string, label *TextBlockObject, element BlockElement) *InputBlock { - return &InputBlock{ - Type: MBTInput, - BlockID: blockID, - Label: label, - Element: element, - } -} diff --git a/vendor/github.com/slack-go/slack/block_object.go b/vendor/github.com/slack-go/slack/block_object.go deleted file mode 100644 index eae177f..0000000 --- a/vendor/github.com/slack-go/slack/block_object.go +++ /dev/null @@ -1,243 +0,0 @@ -package slack - -import ( - "encoding/json" - "errors" -) - -// Block Objects are also known as Composition Objects -// -// For more information: https://api.slack.com/reference/messaging/composition-objects - -// BlockObject defines an interface that all block object types should -// implement. -// @TODO: Is this interface needed? - -// blockObject object types -const ( - MarkdownType = "mrkdwn" - PlainTextType = "plain_text" - // The following objects don't actually have types and their corresponding - // const values are just for internal use - motConfirmation = "confirm" - motOption = "option" - motOptionGroup = "option_group" -) - -type MessageObjectType string - -type blockObject interface { - validateType() MessageObjectType -} - -type BlockObjects struct { - TextObjects []*TextBlockObject - ConfirmationObjects []*ConfirmationBlockObject - OptionObjects []*OptionBlockObject - OptionGroupObjects []*OptionGroupBlockObject -} - -// UnmarshalJSON implements the Unmarshaller interface for BlockObjects, so that any JSON -// unmarshalling is delegated and proper type determination can be made before unmarshal -func (b *BlockObjects) UnmarshalJSON(data []byte) error { - var raw []json.RawMessage - err := json.Unmarshal(data, &raw) - if err != nil { - return err - } - - for _, r := range raw { - var obj map[string]interface{} - err := json.Unmarshal(r, &obj) - if err != nil { - return err - } - - blockObjectType := getBlockObjectType(obj) - - switch blockObjectType { - case PlainTextType, MarkdownType: - object, err := unmarshalBlockObject(r, &TextBlockObject{}) - if err != nil { - return err - } - b.TextObjects = append(b.TextObjects, object.(*TextBlockObject)) - case motConfirmation: - object, err := unmarshalBlockObject(r, &ConfirmationBlockObject{}) - if err != nil { - return err - } - b.ConfirmationObjects = append(b.ConfirmationObjects, object.(*ConfirmationBlockObject)) - case motOption: - object, err := unmarshalBlockObject(r, &OptionBlockObject{}) - if err != nil { - return err - } - b.OptionObjects = append(b.OptionObjects, object.(*OptionBlockObject)) - case motOptionGroup: - object, err := unmarshalBlockObject(r, &OptionGroupBlockObject{}) - if err != nil { - return err - } - b.OptionGroupObjects = append(b.OptionGroupObjects, object.(*OptionGroupBlockObject)) - - } - } - - return nil -} - -// Ideally would have a better way to identify the block objects for -// type casting at time of unmarshalling, should be adapted if possible -// to accomplish in a more reliable manner. -func getBlockObjectType(obj map[string]interface{}) string { - if t, ok := obj["type"].(string); ok { - return t - } - if _, ok := obj["confirm"].(string); ok { - return "confirm" - } - if _, ok := obj["options"].(string); ok { - return "option_group" - } - if _, ok := obj["text"].(string); ok { - if _, ok := obj["value"].(string); ok { - return "option" - } - } - return "" -} - -func unmarshalBlockObject(r json.RawMessage, object blockObject) (blockObject, error) { - err := json.Unmarshal(r, object) - if err != nil { - return nil, err - } - return object, nil -} - -// TextBlockObject defines a text element object to be used with blocks -// -// More Information: https://api.slack.com/reference/messaging/composition-objects#text -type TextBlockObject struct { - Type string `json:"type"` - Text string `json:"text"` - Emoji bool `json:"emoji,omitempty"` - Verbatim bool `json:"verbatim,omitempty"` -} - -// validateType enforces block objects for element and block parameters -func (s TextBlockObject) validateType() MessageObjectType { - return MessageObjectType(s.Type) -} - -// validateType enforces block objects for element and block parameters -func (s TextBlockObject) MixedElementType() MixedElementType { - return MixedElementText -} - -// Validate checks if TextBlockObject has valid values -func (s TextBlockObject) Validate() error { - // https://github.com/slack-go/slack/issues/881 - if s.Type == "mrkdwn" && s.Emoji { - return errors.New("emoji cannot be true in mrkdown") - } - - return nil -} - -// NewTextBlockObject returns an instance of a new Text Block Object -func NewTextBlockObject(elementType, text string, emoji, verbatim bool) *TextBlockObject { - return &TextBlockObject{ - Type: elementType, - Text: text, - Emoji: emoji, - Verbatim: verbatim, - } -} - -// BlockType returns the type of the block -func (t TextBlockObject) BlockType() MessageBlockType { - if t.Type == "mrkdwn" { - return MarkdownType - } - return PlainTextType -} - -// ConfirmationBlockObject defines a dialog that provides a confirmation step to -// any interactive element. This dialog will ask the user to confirm their action by -// offering a confirm and deny buttons. -// -// More Information: https://api.slack.com/reference/messaging/composition-objects#confirm -type ConfirmationBlockObject struct { - Title *TextBlockObject `json:"title"` - Text *TextBlockObject `json:"text"` - Confirm *TextBlockObject `json:"confirm"` - Deny *TextBlockObject `json:"deny"` - Style Style `json:"style,omitempty"` -} - -// validateType enforces block objects for element and block parameters -func (s ConfirmationBlockObject) validateType() MessageObjectType { - return motConfirmation -} - -// WithStyle add styling to confirmation object -func (s *ConfirmationBlockObject) WithStyle(style Style) { - s.Style = style -} - -// NewConfirmationBlockObject returns an instance of a new Confirmation Block Object -func NewConfirmationBlockObject(title, text, confirm, deny *TextBlockObject) *ConfirmationBlockObject { - return &ConfirmationBlockObject{ - Title: title, - Text: text, - Confirm: confirm, - Deny: deny, - } -} - -// OptionBlockObject represents a single selectable item in a select menu -// -// More Information: https://api.slack.com/reference/messaging/composition-objects#option -type OptionBlockObject struct { - Text *TextBlockObject `json:"text"` - Value string `json:"value"` - Description *TextBlockObject `json:"description,omitempty"` - URL string `json:"url,omitempty"` -} - -// NewOptionBlockObject returns an instance of a new Option Block Element -func NewOptionBlockObject(value string, text, description *TextBlockObject) *OptionBlockObject { - return &OptionBlockObject{ - Text: text, - Value: value, - Description: description, - } -} - -// validateType enforces block objects for element and block parameters -func (s OptionBlockObject) validateType() MessageObjectType { - return motOption -} - -// OptionGroupBlockObject Provides a way to group options in a select menu. -// -// More Information: https://api.slack.com/reference/messaging/composition-objects#option-group -type OptionGroupBlockObject struct { - Label *TextBlockObject `json:"label,omitempty"` - Options []*OptionBlockObject `json:"options"` -} - -// validateType enforces block objects for element and block parameters -func (s OptionGroupBlockObject) validateType() MessageObjectType { - return motOptionGroup -} - -// NewOptionGroupBlockElement returns an instance of a new option group block element -func NewOptionGroupBlockElement(label *TextBlockObject, options ...*OptionBlockObject) *OptionGroupBlockObject { - return &OptionGroupBlockObject{ - Label: label, - Options: options, - } -} diff --git a/vendor/github.com/slack-go/slack/block_section.go b/vendor/github.com/slack-go/slack/block_section.go deleted file mode 100644 index 01ffd5a..0000000 --- a/vendor/github.com/slack-go/slack/block_section.go +++ /dev/null @@ -1,42 +0,0 @@ -package slack - -// SectionBlock defines a new block of type section -// -// More Information: https://api.slack.com/reference/messaging/blocks#section -type SectionBlock struct { - Type MessageBlockType `json:"type"` - Text *TextBlockObject `json:"text,omitempty"` - BlockID string `json:"block_id,omitempty"` - Fields []*TextBlockObject `json:"fields,omitempty"` - Accessory *Accessory `json:"accessory,omitempty"` -} - -// BlockType returns the type of the block -func (s SectionBlock) BlockType() MessageBlockType { - return s.Type -} - -// SectionBlockOption allows configuration of options for a new section block -type SectionBlockOption func(*SectionBlock) - -func SectionBlockOptionBlockID(blockID string) SectionBlockOption { - return func(block *SectionBlock) { - block.BlockID = blockID - } -} - -// NewSectionBlock returns a new instance of a section block to be rendered -func NewSectionBlock(textObj *TextBlockObject, fields []*TextBlockObject, accessory *Accessory, options ...SectionBlockOption) *SectionBlock { - block := SectionBlock{ - Type: MBTSection, - Text: textObj, - Fields: fields, - Accessory: accessory, - } - - for _, option := range options { - option(&block) - } - - return &block -} diff --git a/vendor/github.com/slack-go/slack/block_unknown.go b/vendor/github.com/slack-go/slack/block_unknown.go deleted file mode 100644 index 97054c7..0000000 --- a/vendor/github.com/slack-go/slack/block_unknown.go +++ /dev/null @@ -1,13 +0,0 @@ -package slack - -// UnknownBlock represents a block type that is not yet known. This block type exists to prevent Slack from introducing -// new and unknown block types that break this library. -type UnknownBlock struct { - Type MessageBlockType `json:"type"` - BlockID string `json:"block_id,omitempty"` -} - -// BlockType returns the type of the block -func (b UnknownBlock) BlockType() MessageBlockType { - return b.Type -} diff --git a/vendor/github.com/slack-go/slack/bots.go b/vendor/github.com/slack-go/slack/bots.go deleted file mode 100644 index da21ba0..0000000 --- a/vendor/github.com/slack-go/slack/bots.go +++ /dev/null @@ -1,58 +0,0 @@ -package slack - -import ( - "context" - "net/url" -) - -// Bot contains information about a bot -type Bot struct { - ID string `json:"id"` - Name string `json:"name"` - Deleted bool `json:"deleted"` - UserID string `json:"user_id"` - AppID string `json:"app_id"` - Updated JSONTime `json:"updated"` - Icons Icons `json:"icons"` -} - -type botResponseFull struct { - Bot `json:"bot,omitempty"` // GetBotInfo - SlackResponse -} - -func (api *Client) botRequest(ctx context.Context, path string, values url.Values) (*botResponseFull, error) { - response := &botResponseFull{} - err := api.postMethod(ctx, path, values, response) - if err != nil { - return nil, err - } - - if err := response.Err(); err != nil { - return nil, err - } - - return response, nil -} - -// GetBotInfo will retrieve the complete bot information -func (api *Client) GetBotInfo(bot string) (*Bot, error) { - return api.GetBotInfoContext(context.Background(), bot) -} - -// GetBotInfoContext will retrieve the complete bot information using a custom context -func (api *Client) GetBotInfoContext(ctx context.Context, bot string) (*Bot, error) { - values := url.Values{ - "token": {api.token}, - } - - if bot != "" { - values.Add("bot", bot) - } - - response, err := api.botRequest(ctx, "bots.info", values) - if err != nil { - return nil, err - } - return &response.Bot, nil -} diff --git a/vendor/github.com/slack-go/slack/channels.go b/vendor/github.com/slack-go/slack/channels.go deleted file mode 100644 index c05521d..0000000 --- a/vendor/github.com/slack-go/slack/channels.go +++ /dev/null @@ -1,714 +0,0 @@ -package slack - -import ( - "context" - "net/url" - "strconv" - "time" -) - -type channelResponseFull struct { - Channel Channel `json:"channel"` - Channels []Channel `json:"channels"` - Purpose string `json:"purpose"` - Topic string `json:"topic"` - NotInChannel bool `json:"not_in_channel"` - History - SlackResponse - Metadata ResponseMetadata `json:"response_metadata"` -} - -// Channel contains information about the channel -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -type Channel struct { - GroupConversation - IsChannel bool `json:"is_channel"` - IsGeneral bool `json:"is_general"` - IsMember bool `json:"is_member"` - Locale string `json:"locale"` -} - -func (api *Client) channelRequest(ctx context.Context, path string, values url.Values) (*channelResponseFull, error) { - response := &channelResponseFull{} - err := postForm(ctx, api.httpclient, api.endpoint+path, values, response, api) - if err != nil { - return nil, err - } - - return response, response.Err() -} - -// GetChannelsOption option provided when getting channels. -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -type GetChannelsOption func(*ChannelPagination) error - -// GetChannelsOptionExcludeMembers excludes the members collection from each channel. -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func GetChannelsOptionExcludeMembers() GetChannelsOption { - return func(p *ChannelPagination) error { - p.excludeMembers = true - return nil - } -} - -// GetChannelsOptionExcludeArchived excludes archived channels from results. -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func GetChannelsOptionExcludeArchived() GetChannelsOption { - return func(p *ChannelPagination) error { - p.excludeArchived = true - return nil - } -} - -// ArchiveChannel archives the given channel -// see https://api.slack.com/methods/channels.archive -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) ArchiveChannel(channelID string) error { - return api.ArchiveChannelContext(context.Background(), channelID) -} - -// ArchiveChannelContext archives the given channel with a custom context -// see https://api.slack.com/methods/channels.archive -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) ArchiveChannelContext(ctx context.Context, channelID string) (err error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - } - - _, err = api.channelRequest(ctx, "channels.archive", values) - return err -} - -// UnarchiveChannel unarchives the given channel -// see https://api.slack.com/methods/channels.unarchive -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) UnarchiveChannel(channelID string) error { - return api.UnarchiveChannelContext(context.Background(), channelID) -} - -// UnarchiveChannelContext unarchives the given channel with a custom context -// see https://api.slack.com/methods/channels.unarchive -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) UnarchiveChannelContext(ctx context.Context, channelID string) (err error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - } - - _, err = api.channelRequest(ctx, "channels.unarchive", values) - return err -} - -// CreateChannel creates a channel with the given name and returns a *Channel -// see https://api.slack.com/methods/channels.create -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) CreateChannel(channelName string) (*Channel, error) { - return api.CreateChannelContext(context.Background(), channelName) -} - -// CreateChannelContext creates a channel with the given name and returns a *Channel with a custom context -// see https://api.slack.com/methods/channels.create -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) CreateChannelContext(ctx context.Context, channelName string) (*Channel, error) { - values := url.Values{ - "token": {api.token}, - "name": {channelName}, - } - - response, err := api.channelRequest(ctx, "channels.create", values) - if err != nil { - return nil, err - } - return &response.Channel, nil -} - -// GetChannelHistory retrieves the channel history -// see https://api.slack.com/methods/channels.history -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetChannelHistory(channelID string, params HistoryParameters) (*History, error) { - return api.GetChannelHistoryContext(context.Background(), channelID, params) -} - -// GetChannelHistoryContext retrieves the channel history with a custom context -// see https://api.slack.com/methods/channels.history -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetChannelHistoryContext(ctx context.Context, channelID string, params HistoryParameters) (*History, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - } - if params.Latest != DEFAULT_HISTORY_LATEST { - values.Add("latest", params.Latest) - } - if params.Oldest != DEFAULT_HISTORY_OLDEST { - values.Add("oldest", params.Oldest) - } - if params.Count != DEFAULT_HISTORY_COUNT { - values.Add("count", strconv.Itoa(params.Count)) - } - if params.Inclusive != DEFAULT_HISTORY_INCLUSIVE { - if params.Inclusive { - values.Add("inclusive", "1") - } else { - values.Add("inclusive", "0") - } - } - - if params.Unreads != DEFAULT_HISTORY_UNREADS { - if params.Unreads { - values.Add("unreads", "1") - } else { - values.Add("unreads", "0") - } - } - - response, err := api.channelRequest(ctx, "channels.history", values) - if err != nil { - return nil, err - } - return &response.History, nil -} - -// GetChannelInfo retrieves the given channel -// see https://api.slack.com/methods/channels.info -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetChannelInfo(channelID string) (*Channel, error) { - return api.GetChannelInfoContext(context.Background(), channelID) -} - -// GetChannelInfoContext retrieves the given channel with a custom context -// see https://api.slack.com/methods/channels.info -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetChannelInfoContext(ctx context.Context, channelID string) (*Channel, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - "include_locale": {strconv.FormatBool(true)}, - } - - response, err := api.channelRequest(ctx, "channels.info", values) - if err != nil { - return nil, err - } - return &response.Channel, nil -} - -// InviteUserToChannel invites a user to a given channel and returns a *Channel -// see https://api.slack.com/methods/channels.invite -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) InviteUserToChannel(channelID, user string) (*Channel, error) { - return api.InviteUserToChannelContext(context.Background(), channelID, user) -} - -// InviteUserToChannelContext invites a user to a given channel and returns a *Channel with a custom context -// see https://api.slack.com/methods/channels.invite -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) InviteUserToChannelContext(ctx context.Context, channelID, user string) (*Channel, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - "user": {user}, - } - - response, err := api.channelRequest(ctx, "channels.invite", values) - if err != nil { - return nil, err - } - return &response.Channel, nil -} - -// JoinChannel joins the currently authenticated user to a channel -// see https://api.slack.com/methods/channels.join -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) JoinChannel(channelName string) (*Channel, error) { - return api.JoinChannelContext(context.Background(), channelName) -} - -// JoinChannelContext joins the currently authenticated user to a channel with a custom context -// see https://api.slack.com/methods/channels.join -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) JoinChannelContext(ctx context.Context, channelName string) (*Channel, error) { - values := url.Values{ - "token": {api.token}, - "name": {channelName}, - } - - response, err := api.channelRequest(ctx, "channels.join", values) - if err != nil { - return nil, err - } - return &response.Channel, nil -} - -// LeaveChannel makes the authenticated user leave the given channel -// see https://api.slack.com/methods/channels.leave -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) LeaveChannel(channelID string) (bool, error) { - return api.LeaveChannelContext(context.Background(), channelID) -} - -// LeaveChannelContext makes the authenticated user leave the given channel with a custom context -// see https://api.slack.com/methods/channels.leave -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) LeaveChannelContext(ctx context.Context, channelID string) (bool, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - } - - response, err := api.channelRequest(ctx, "channels.leave", values) - if err != nil { - return false, err - } - - return response.NotInChannel, nil -} - -// KickUserFromChannel kicks a user from a given channel -// see https://api.slack.com/methods/channels.kick -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) KickUserFromChannel(channelID, user string) error { - return api.KickUserFromChannelContext(context.Background(), channelID, user) -} - -// KickUserFromChannelContext kicks a user from a given channel with a custom context -// see https://api.slack.com/methods/channels.kick -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) KickUserFromChannelContext(ctx context.Context, channelID, user string) (err error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - "user": {user}, - } - - _, err = api.channelRequest(ctx, "channels.kick", values) - return err -} - -func newChannelPagination(c *Client, options ...GetChannelsOption) (cp ChannelPagination) { - cp = ChannelPagination{ - c: c, - limit: 200, // per slack api documentation. - } - - for _, opt := range options { - opt(&cp) - } - - return cp -} - -// ChannelPagination allows for paginating over the channels -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -type ChannelPagination struct { - Channels []Channel - limit int - excludeArchived bool - excludeMembers bool - previousResp *ResponseMetadata - c *Client -} - -// Done checks if the pagination has completed -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (ChannelPagination) Done(err error) bool { - return err == errPaginationComplete -} - -// Failure checks if pagination failed. -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (t ChannelPagination) Failure(err error) error { - if t.Done(err) { - return nil - } - - return err -} - -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (t ChannelPagination) Next(ctx context.Context) (_ ChannelPagination, err error) { - var ( - resp *channelResponseFull - ) - - if t.c == nil || (t.previousResp != nil && t.previousResp.Cursor == "") { - return t, errPaginationComplete - } - - t.previousResp = t.previousResp.initialize() - - values := url.Values{ - "limit": {strconv.Itoa(t.limit)}, - "exclude_archived": {strconv.FormatBool(t.excludeArchived)}, - "exclude_members": {strconv.FormatBool(t.excludeMembers)}, - "token": {t.c.token}, - "cursor": {t.previousResp.Cursor}, - } - - if resp, err = t.c.channelRequest(ctx, "channels.list", values); err != nil { - return t, err - } - - t.c.Debugf("GetChannelsContext: got %d channels; metadata %v", len(resp.Channels), resp.Metadata) - t.Channels = resp.Channels - t.previousResp = &resp.Metadata - - return t, nil -} - -// GetChannelsPaginated fetches channels in a paginated fashion, see GetChannelsContext for usage. -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetChannelsPaginated(options ...GetChannelsOption) ChannelPagination { - return newChannelPagination(api, options...) -} - -// GetChannels retrieves all the channels -// see https://api.slack.com/methods/channels.list -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetChannels(excludeArchived bool, options ...GetChannelsOption) ([]Channel, error) { - return api.GetChannelsContext(context.Background(), excludeArchived, options...) -} - -// GetChannelsContext retrieves all the channels with a custom context -// see https://api.slack.com/methods/channels.list -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetChannelsContext(ctx context.Context, excludeArchived bool, options ...GetChannelsOption) (results []Channel, err error) { - if excludeArchived { - options = append(options, GetChannelsOptionExcludeArchived()) - } - - p := api.GetChannelsPaginated(options...) - for err == nil { - p, err = p.Next(ctx) - if err == nil { - results = append(results, p.Channels...) - } else if rateLimitedError, ok := err.(*RateLimitedError); ok { - select { - case <-ctx.Done(): - err = ctx.Err() - case <-time.After(rateLimitedError.RetryAfter): - err = nil - } - } - } - - return results, p.Failure(err) -} - -// SetChannelReadMark sets the read mark of a given channel to a specific point -// Clients should try to avoid making this call too often. When needing to mark a read position, a client should set a -// timer before making the call. In this way, any further updates needed during the timeout will not generate extra calls -// (just one per channel). This is useful for when reading scroll-back history, or following a busy live channel. A -// timeout of 5 seconds is a good starting point. Be sure to flush these calls on shutdown/logout. -// see https://api.slack.com/methods/channels.mark -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) SetChannelReadMark(channelID, ts string) error { - return api.SetChannelReadMarkContext(context.Background(), channelID, ts) -} - -// SetChannelReadMarkContext sets the read mark of a given channel to a specific point with a custom context -// For more details see SetChannelReadMark documentation -// see https://api.slack.com/methods/channels.mark -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) SetChannelReadMarkContext(ctx context.Context, channelID, ts string) (err error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - "ts": {ts}, - } - - _, err = api.channelRequest(ctx, "channels.mark", values) - return err -} - -// RenameChannel renames a given channel -// see https://api.slack.com/methods/channels.rename -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) RenameChannel(channelID, name string) (*Channel, error) { - return api.RenameChannelContext(context.Background(), channelID, name) -} - -// RenameChannelContext renames a given channel with a custom context -// see https://api.slack.com/methods/channels.rename -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) RenameChannelContext(ctx context.Context, channelID, name string) (*Channel, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - "name": {name}, - } - - // XXX: the created entry in this call returns a string instead of a number - // so I may have to do some workaround to solve it. - response, err := api.channelRequest(ctx, "channels.rename", values) - if err != nil { - return nil, err - } - return &response.Channel, nil -} - -// SetChannelPurpose sets the channel purpose and returns the purpose that was successfully set -// see https://api.slack.com/methods/channels.setPurpose -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) SetChannelPurpose(channelID, purpose string) (string, error) { - return api.SetChannelPurposeContext(context.Background(), channelID, purpose) -} - -// SetChannelPurposeContext sets the channel purpose and returns the purpose that was successfully set with a custom context -// see https://api.slack.com/methods/channels.setPurpose -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) SetChannelPurposeContext(ctx context.Context, channelID, purpose string) (string, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - "purpose": {purpose}, - } - - response, err := api.channelRequest(ctx, "channels.setPurpose", values) - if err != nil { - return "", err - } - return response.Purpose, nil -} - -// SetChannelTopic sets the channel topic and returns the topic that was successfully set -// see https://api.slack.com/methods/channels.setTopic -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) SetChannelTopic(channelID, topic string) (string, error) { - return api.SetChannelTopicContext(context.Background(), channelID, topic) -} - -// SetChannelTopicContext sets the channel topic and returns the topic that was successfully set with a custom context -// see https://api.slack.com/methods/channels.setTopic -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) SetChannelTopicContext(ctx context.Context, channelID, topic string) (string, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - "topic": {topic}, - } - - response, err := api.channelRequest(ctx, "channels.setTopic", values) - if err != nil { - return "", err - } - return response.Topic, nil -} - -// GetChannelReplies gets an entire thread (a message plus all the messages in reply to it). -// see https://api.slack.com/methods/channels.replies -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetChannelReplies(channelID, thread_ts string) ([]Message, error) { - return api.GetChannelRepliesContext(context.Background(), channelID, thread_ts) -} - -// GetChannelRepliesContext gets an entire thread (a message plus all the messages in reply to it) with a custom context -// see https://api.slack.com/methods/channels.replies -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetChannelRepliesContext(ctx context.Context, channelID, thread_ts string) ([]Message, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - "thread_ts": {thread_ts}, - } - response, err := api.channelRequest(ctx, "channels.replies", values) - if err != nil { - return nil, err - } - return response.History.Messages, nil -} diff --git a/vendor/github.com/slack-go/slack/chat.go b/vendor/github.com/slack-go/slack/chat.go deleted file mode 100644 index f5b8034..0000000 --- a/vendor/github.com/slack-go/slack/chat.go +++ /dev/null @@ -1,840 +0,0 @@ -package slack - -import ( - "bytes" - "context" - "encoding/json" - "io/ioutil" - "net/http" - "net/url" - "strconv" - - "github.com/slack-go/slack/slackutilsx" -) - -const ( - DEFAULT_MESSAGE_USERNAME = "" - DEFAULT_MESSAGE_REPLY_BROADCAST = false - DEFAULT_MESSAGE_ASUSER = false - DEFAULT_MESSAGE_PARSE = "" - DEFAULT_MESSAGE_THREAD_TIMESTAMP = "" - DEFAULT_MESSAGE_LINK_NAMES = 0 - DEFAULT_MESSAGE_UNFURL_LINKS = false - DEFAULT_MESSAGE_UNFURL_MEDIA = true - DEFAULT_MESSAGE_ICON_URL = "" - DEFAULT_MESSAGE_ICON_EMOJI = "" - DEFAULT_MESSAGE_MARKDOWN = true - DEFAULT_MESSAGE_ESCAPE_TEXT = true -) - -type chatResponseFull struct { - Channel string `json:"channel"` - Timestamp string `json:"ts"` //Regular message timestamp - MessageTimeStamp string `json:"message_ts"` //Ephemeral message timestamp - ScheduledMessageID string `json:"scheduled_message_id,omitempty"` //Scheduled message id - Text string `json:"text"` - SlackResponse -} - -// getMessageTimestamp will inspect the `chatResponseFull` to ruturn a timestamp value -// in `chat.postMessage` its under `ts` -// in `chat.postEphemeral` its under `message_ts` -func (c chatResponseFull) getMessageTimestamp() string { - if len(c.Timestamp) > 0 { - return c.Timestamp - } - return c.MessageTimeStamp -} - -// PostMessageParameters contains all the parameters necessary (including the optional ones) for a PostMessage() request -type PostMessageParameters struct { - Username string `json:"username"` - AsUser bool `json:"as_user"` - Parse string `json:"parse"` - ThreadTimestamp string `json:"thread_ts"` - ReplyBroadcast bool `json:"reply_broadcast"` - LinkNames int `json:"link_names"` - UnfurlLinks bool `json:"unfurl_links"` - UnfurlMedia bool `json:"unfurl_media"` - IconURL string `json:"icon_url"` - IconEmoji string `json:"icon_emoji"` - Markdown bool `json:"mrkdwn,omitempty"` - EscapeText bool `json:"escape_text"` - - // chat.postEphemeral support - Channel string `json:"channel"` - User string `json:"user"` -} - -// NewPostMessageParameters provides an instance of PostMessageParameters with all the sane default values set -func NewPostMessageParameters() PostMessageParameters { - return PostMessageParameters{ - Username: DEFAULT_MESSAGE_USERNAME, - User: DEFAULT_MESSAGE_USERNAME, - AsUser: DEFAULT_MESSAGE_ASUSER, - Parse: DEFAULT_MESSAGE_PARSE, - ThreadTimestamp: DEFAULT_MESSAGE_THREAD_TIMESTAMP, - LinkNames: DEFAULT_MESSAGE_LINK_NAMES, - UnfurlLinks: DEFAULT_MESSAGE_UNFURL_LINKS, - UnfurlMedia: DEFAULT_MESSAGE_UNFURL_MEDIA, - IconURL: DEFAULT_MESSAGE_ICON_URL, - IconEmoji: DEFAULT_MESSAGE_ICON_EMOJI, - Markdown: DEFAULT_MESSAGE_MARKDOWN, - EscapeText: DEFAULT_MESSAGE_ESCAPE_TEXT, - } -} - -// DeleteMessage deletes a message in a channel -func (api *Client) DeleteMessage(channel, messageTimestamp string) (string, string, error) { - respChannel, respTimestamp, _, err := api.SendMessageContext( - context.Background(), - channel, - MsgOptionDelete(messageTimestamp), - ) - return respChannel, respTimestamp, err -} - -// DeleteMessageContext deletes a message in a channel with a custom context -func (api *Client) DeleteMessageContext(ctx context.Context, channel, messageTimestamp string) (string, string, error) { - respChannel, respTimestamp, _, err := api.SendMessageContext( - ctx, - channel, - MsgOptionDelete(messageTimestamp), - ) - return respChannel, respTimestamp, err -} - -// ScheduleMessage sends a message to a channel. -// Message is escaped by default according to https://api.slack.com/docs/formatting -// Use http://davestevens.github.io/slack-message-builder/ to help crafting your message. -func (api *Client) ScheduleMessage(channelID, postAt string, options ...MsgOption) (string, string, error) { - respChannel, respTimestamp, _, err := api.SendMessageContext( - context.Background(), - channelID, - MsgOptionSchedule(postAt), - MsgOptionCompose(options...), - ) - return respChannel, respTimestamp, err -} - -// PostMessage sends a message to a channel. -// Message is escaped by default according to https://api.slack.com/docs/formatting -// Use http://davestevens.github.io/slack-message-builder/ to help crafting your message. -func (api *Client) PostMessage(channelID string, options ...MsgOption) (string, string, error) { - respChannel, respTimestamp, _, err := api.SendMessageContext( - context.Background(), - channelID, - MsgOptionPost(), - MsgOptionCompose(options...), - ) - return respChannel, respTimestamp, err -} - -// PostMessageContext sends a message to a channel with a custom context -// For more details, see PostMessage documentation. -func (api *Client) PostMessageContext(ctx context.Context, channelID string, options ...MsgOption) (string, string, error) { - respChannel, respTimestamp, _, err := api.SendMessageContext( - ctx, - channelID, - MsgOptionPost(), - MsgOptionCompose(options...), - ) - return respChannel, respTimestamp, err -} - -// PostEphemeral sends an ephemeral message to a user in a channel. -// Message is escaped by default according to https://api.slack.com/docs/formatting -// Use http://davestevens.github.io/slack-message-builder/ to help crafting your message. -func (api *Client) PostEphemeral(channelID, userID string, options ...MsgOption) (string, error) { - return api.PostEphemeralContext( - context.Background(), - channelID, - userID, - options..., - ) -} - -// PostEphemeralContext sends an ephemeal message to a user in a channel with a custom context -// For more details, see PostEphemeral documentation -func (api *Client) PostEphemeralContext(ctx context.Context, channelID, userID string, options ...MsgOption) (timestamp string, err error) { - _, timestamp, _, err = api.SendMessageContext( - ctx, - channelID, - MsgOptionPostEphemeral(userID), - MsgOptionCompose(options...), - ) - return timestamp, err -} - -// UpdateMessage updates a message in a channel -func (api *Client) UpdateMessage(channelID, timestamp string, options ...MsgOption) (string, string, string, error) { - return api.SendMessageContext( - context.Background(), - channelID, - MsgOptionUpdate(timestamp), - MsgOptionCompose(options...), - ) -} - -// UpdateMessageContext updates a message in a channel -func (api *Client) UpdateMessageContext(ctx context.Context, channelID, timestamp string, options ...MsgOption) (string, string, string, error) { - return api.SendMessageContext( - ctx, - channelID, - MsgOptionUpdate(timestamp), - MsgOptionCompose(options...), - ) -} - -// UnfurlMessage unfurls a message in a channel -func (api *Client) UnfurlMessage(channelID, timestamp string, unfurls map[string]Attachment, options ...MsgOption) (string, string, string, error) { - return api.SendMessageContext(context.Background(), channelID, MsgOptionUnfurl(timestamp, unfurls), MsgOptionCompose(options...)) -} - -// UnfurlMessageWithAuthURL sends an unfurl request containing an -// authentication URL. -// For more details see: -// https://api.slack.com/reference/messaging/link-unfurling#authenticated_unfurls -func (api *Client) UnfurlMessageWithAuthURL(channelID, timestamp string, userAuthURL string, options ...MsgOption) (string, string, string, error) { - return api.UnfurlMessageWithAuthURLContext(context.Background(), channelID, timestamp, userAuthURL, options...) -} - -// UnfurlMessageWithAuthURLContext sends an unfurl request containing an -// authentication URL. -// For more details see: -// https://api.slack.com/reference/messaging/link-unfurling#authenticated_unfurls -func (api *Client) UnfurlMessageWithAuthURLContext(ctx context.Context, channelID, timestamp string, userAuthURL string, options ...MsgOption) (string, string, string, error) { - return api.SendMessageContext(ctx, channelID, MsgOptionUnfurlAuthURL(timestamp, userAuthURL), MsgOptionCompose(options...)) -} - -// SendMessage more flexible method for configuring messages. -func (api *Client) SendMessage(channel string, options ...MsgOption) (string, string, string, error) { - return api.SendMessageContext(context.Background(), channel, options...) -} - -// SendMessageContext more flexible method for configuring messages with a custom context. -func (api *Client) SendMessageContext(ctx context.Context, channelID string, options ...MsgOption) (_channel string, _timestamp string, _text string, err error) { - var ( - req *http.Request - parser func(*chatResponseFull) responseParser - response chatResponseFull - ) - - if req, parser, err = buildSender(api.endpoint, options...).BuildRequest(api.token, channelID); err != nil { - return "", "", "", err - } - - if api.Debug() { - reqBody, err := ioutil.ReadAll(req.Body) - if err != nil { - return "", "", "", err - } - req.Body = ioutil.NopCloser(bytes.NewBuffer(reqBody)) - api.Debugf("Sending request: %s", string(reqBody)) - } - - if err = doPost(ctx, api.httpclient, req, parser(&response), api); err != nil { - return "", "", "", err - } - - return response.Channel, response.getMessageTimestamp(), response.Text, response.Err() -} - -// UnsafeApplyMsgOptions utility function for debugging/testing chat requests. -// NOTE: USE AT YOUR OWN RISK: No issues relating to the use of this function -// will be supported by the library. -func UnsafeApplyMsgOptions(token, channel, apiurl string, options ...MsgOption) (string, url.Values, error) { - config, err := applyMsgOptions(token, channel, apiurl, options...) - return config.endpoint, config.values, err -} - -func applyMsgOptions(token, channel, apiurl string, options ...MsgOption) (sendConfig, error) { - config := sendConfig{ - apiurl: apiurl, - endpoint: apiurl + string(chatPostMessage), - values: url.Values{ - "token": {token}, - "channel": {channel}, - }, - } - - for _, opt := range options { - if err := opt(&config); err != nil { - return config, err - } - } - - return config, nil -} - -func buildSender(apiurl string, options ...MsgOption) sendConfig { - return sendConfig{ - apiurl: apiurl, - options: options, - } -} - -type sendMode string - -const ( - chatUpdate sendMode = "chat.update" - chatPostMessage sendMode = "chat.postMessage" - chatScheduleMessage sendMode = "chat.scheduleMessage" - chatDelete sendMode = "chat.delete" - chatPostEphemeral sendMode = "chat.postEphemeral" - chatResponse sendMode = "chat.responseURL" - chatMeMessage sendMode = "chat.meMessage" - chatUnfurl sendMode = "chat.unfurl" -) - -type sendConfig struct { - apiurl string - options []MsgOption - mode sendMode - endpoint string - values url.Values - attachments []Attachment - blocks Blocks - responseType string - replaceOriginal bool - deleteOriginal bool -} - -func (t sendConfig) BuildRequest(token, channelID string) (req *http.Request, _ func(*chatResponseFull) responseParser, err error) { - if t, err = applyMsgOptions(token, channelID, t.apiurl, t.options...); err != nil { - return nil, nil, err - } - - switch t.mode { - case chatResponse: - return responseURLSender{ - endpoint: t.endpoint, - values: t.values, - attachments: t.attachments, - blocks: t.blocks, - responseType: t.responseType, - replaceOriginal: t.replaceOriginal, - deleteOriginal: t.deleteOriginal, - }.BuildRequest() - default: - return formSender{endpoint: t.endpoint, values: t.values}.BuildRequest() - } -} - -type formSender struct { - endpoint string - values url.Values -} - -func (t formSender) BuildRequest() (*http.Request, func(*chatResponseFull) responseParser, error) { - req, err := formReq(t.endpoint, t.values) - return req, func(resp *chatResponseFull) responseParser { - return newJSONParser(resp) - }, err -} - -type responseURLSender struct { - endpoint string - values url.Values - attachments []Attachment - blocks Blocks - responseType string - replaceOriginal bool - deleteOriginal bool -} - -func (t responseURLSender) BuildRequest() (*http.Request, func(*chatResponseFull) responseParser, error) { - req, err := jsonReq(t.endpoint, Msg{ - Text: t.values.Get("text"), - Timestamp: t.values.Get("ts"), - Attachments: t.attachments, - Blocks: t.blocks, - ResponseType: t.responseType, - ReplaceOriginal: t.replaceOriginal, - DeleteOriginal: t.deleteOriginal, - }) - return req, func(resp *chatResponseFull) responseParser { - return newContentTypeParser(resp) - }, err -} - -// MsgOption option provided when sending a message. -type MsgOption func(*sendConfig) error - -// MsgOptionSchedule schedules a messages. -func MsgOptionSchedule(postAt string) MsgOption { - return func(config *sendConfig) error { - config.endpoint = config.apiurl + string(chatScheduleMessage) - config.values.Add("post_at", postAt) - return nil - } -} - -// MsgOptionPost posts a messages, this is the default. -func MsgOptionPost() MsgOption { - return func(config *sendConfig) error { - config.endpoint = config.apiurl + string(chatPostMessage) - config.values.Del("ts") - return nil - } -} - -// MsgOptionPostEphemeral - posts an ephemeral message to the provided user. -func MsgOptionPostEphemeral(userID string) MsgOption { - return func(config *sendConfig) error { - config.endpoint = config.apiurl + string(chatPostEphemeral) - MsgOptionUser(userID)(config) - config.values.Del("ts") - - return nil - } -} - -// MsgOptionMeMessage posts a "me message" type from the calling user -func MsgOptionMeMessage() MsgOption { - return func(config *sendConfig) error { - config.endpoint = config.apiurl + string(chatMeMessage) - return nil - } -} - -// MsgOptionUpdate updates a message based on the timestamp. -func MsgOptionUpdate(timestamp string) MsgOption { - return func(config *sendConfig) error { - config.endpoint = config.apiurl + string(chatUpdate) - config.values.Add("ts", timestamp) - return nil - } -} - -// MsgOptionDelete deletes a message based on the timestamp. -func MsgOptionDelete(timestamp string) MsgOption { - return func(config *sendConfig) error { - config.endpoint = config.apiurl + string(chatDelete) - config.values.Add("ts", timestamp) - return nil - } -} - -// MsgOptionUnfurl unfurls a message based on the timestamp. -func MsgOptionUnfurl(timestamp string, unfurls map[string]Attachment) MsgOption { - return func(config *sendConfig) error { - config.endpoint = config.apiurl + string(chatUnfurl) - config.values.Add("ts", timestamp) - unfurlsStr, err := json.Marshal(unfurls) - if err == nil { - config.values.Add("unfurls", string(unfurlsStr)) - } - return err - } -} - -// MsgOptionUnfurlAuthURL unfurls a message using an auth url based on the timestamp. -func MsgOptionUnfurlAuthURL(timestamp string, userAuthURL string) MsgOption { - return func(config *sendConfig) error { - config.endpoint = config.apiurl + string(chatUnfurl) - config.values.Add("ts", timestamp) - config.values.Add("user_auth_url", userAuthURL) - return nil - } -} - -// MsgOptionUnfurlAuthRequired requests that the user installs the -// Slack app for unfurling. -func MsgOptionUnfurlAuthRequired(timestamp string) MsgOption { - return func(config *sendConfig) error { - config.endpoint = config.apiurl + string(chatUnfurl) - config.values.Add("ts", timestamp) - config.values.Add("user_auth_required", "true") - return nil - } -} - -// MsgOptionUnfurlAuthMessage attaches a message inviting the user to -// authenticate. -func MsgOptionUnfurlAuthMessage(timestamp string, msg string) MsgOption { - return func(config *sendConfig) error { - config.endpoint = config.apiurl + string(chatUnfurl) - config.values.Add("ts", timestamp) - config.values.Add("user_auth_message", msg) - return nil - } -} - -// MsgOptionResponseURL supplies a url to use as the endpoint. -func MsgOptionResponseURL(url string, responseType string) MsgOption { - return func(config *sendConfig) error { - config.mode = chatResponse - config.endpoint = url - config.responseType = responseType - config.values.Del("ts") - return nil - } -} - -// MsgOptionReplaceOriginal replaces original message with response url -func MsgOptionReplaceOriginal(responseURL string) MsgOption { - return func(config *sendConfig) error { - config.mode = chatResponse - config.endpoint = responseURL - config.replaceOriginal = true - return nil - } -} - -// MsgOptionDeleteOriginal deletes original message with response url -func MsgOptionDeleteOriginal(responseURL string) MsgOption { - return func(config *sendConfig) error { - config.mode = chatResponse - config.endpoint = responseURL - config.deleteOriginal = true - return nil - } -} - -// MsgOptionAsUser whether or not to send the message as the user. -func MsgOptionAsUser(b bool) MsgOption { - return func(config *sendConfig) error { - if b != DEFAULT_MESSAGE_ASUSER { - config.values.Set("as_user", "true") - } - return nil - } -} - -// MsgOptionUser set the user for the message. -func MsgOptionUser(userID string) MsgOption { - return func(config *sendConfig) error { - config.values.Set("user", userID) - return nil - } -} - -// MsgOptionUsername set the username for the message. -func MsgOptionUsername(username string) MsgOption { - return func(config *sendConfig) error { - config.values.Set("username", username) - return nil - } -} - -// MsgOptionText provide the text for the message, optionally escape the provided -// text. -func MsgOptionText(text string, escape bool) MsgOption { - return func(config *sendConfig) error { - if escape { - text = slackutilsx.EscapeMessage(text) - } - config.values.Add("text", text) - return nil - } -} - -// MsgOptionAttachments provide attachments for the message. -func MsgOptionAttachments(attachments ...Attachment) MsgOption { - return func(config *sendConfig) error { - if attachments == nil { - return nil - } - - config.attachments = attachments - - // FIXME: We are setting the attachments on the message twice: above for - // the json version, and below for the html version. The marshalled bytes - // we put into config.values below don't work directly in the Msg version. - - attachmentBytes, err := json.Marshal(attachments) - if err == nil { - config.values.Set("attachments", string(attachmentBytes)) - } - - return err - } -} - -// MsgOptionBlocks sets blocks for the message -func MsgOptionBlocks(blocks ...Block) MsgOption { - return func(config *sendConfig) error { - if blocks == nil { - return nil - } - - config.blocks.BlockSet = append(config.blocks.BlockSet, blocks...) - - blocks, err := json.Marshal(blocks) - if err == nil { - config.values.Set("blocks", string(blocks)) - } - return err - } -} - -// MsgOptionEnableLinkUnfurl enables link unfurling -func MsgOptionEnableLinkUnfurl() MsgOption { - return func(config *sendConfig) error { - config.values.Set("unfurl_links", "true") - return nil - } -} - -// MsgOptionDisableLinkUnfurl disables link unfurling -func MsgOptionDisableLinkUnfurl() MsgOption { - return func(config *sendConfig) error { - config.values.Set("unfurl_links", "false") - return nil - } -} - -// MsgOptionDisableMediaUnfurl disables media unfurling. -func MsgOptionDisableMediaUnfurl() MsgOption { - return func(config *sendConfig) error { - config.values.Set("unfurl_media", "false") - return nil - } -} - -// MsgOptionDisableMarkdown disables markdown. -func MsgOptionDisableMarkdown() MsgOption { - return func(config *sendConfig) error { - config.values.Set("mrkdwn", "false") - return nil - } -} - -// MsgOptionTS sets the thread TS of the message to enable creating or replying to a thread -func MsgOptionTS(ts string) MsgOption { - return func(config *sendConfig) error { - config.values.Set("thread_ts", ts) - return nil - } -} - -// MsgOptionBroadcast sets reply_broadcast to true -func MsgOptionBroadcast() MsgOption { - return func(config *sendConfig) error { - config.values.Set("reply_broadcast", "true") - return nil - } -} - -// MsgOptionCompose combines multiple options into a single option. -func MsgOptionCompose(options ...MsgOption) MsgOption { - return func(config *sendConfig) error { - for _, opt := range options { - if err := opt(config); err != nil { - return err - } - } - return nil - } -} - -// MsgOptionParse set parse option. -func MsgOptionParse(b bool) MsgOption { - return func(config *sendConfig) error { - var v string - if b { - v = "full" - } else { - v = "none" - } - config.values.Set("parse", v) - return nil - } -} - -// MsgOptionIconURL sets an icon URL -func MsgOptionIconURL(iconURL string) MsgOption { - return func(config *sendConfig) error { - config.values.Set("icon_url", iconURL) - return nil - } -} - -// MsgOptionIconEmoji sets an icon emoji -func MsgOptionIconEmoji(iconEmoji string) MsgOption { - return func(config *sendConfig) error { - config.values.Set("icon_emoji", iconEmoji) - return nil - } -} - -// UnsafeMsgOptionEndpoint deliver the message to the specified endpoint. -// NOTE: USE AT YOUR OWN RISK: No issues relating to the use of this Option -// will be supported by the library, it is subject to change without notice that -// may result in compilation errors or runtime behaviour changes. -func UnsafeMsgOptionEndpoint(endpoint string, update func(url.Values)) MsgOption { - return func(config *sendConfig) error { - config.endpoint = endpoint - update(config.values) - return nil - } -} - -// MsgOptionPostMessageParameters maintain backwards compatibility. -func MsgOptionPostMessageParameters(params PostMessageParameters) MsgOption { - return func(config *sendConfig) error { - if params.Username != DEFAULT_MESSAGE_USERNAME { - config.values.Set("username", params.Username) - } - - // chat.postEphemeral support - if params.User != DEFAULT_MESSAGE_USERNAME { - config.values.Set("user", params.User) - } - - // never generates an error. - MsgOptionAsUser(params.AsUser)(config) - - if params.Parse != DEFAULT_MESSAGE_PARSE { - config.values.Set("parse", params.Parse) - } - if params.LinkNames != DEFAULT_MESSAGE_LINK_NAMES { - config.values.Set("link_names", "1") - } - - if params.UnfurlLinks != DEFAULT_MESSAGE_UNFURL_LINKS { - config.values.Set("unfurl_links", "true") - } - - // I want to send a message with explicit `as_user` `true` and `unfurl_links` `false` in request. - // Because setting `as_user` to `true` will change the default value for `unfurl_links` to `true` on Slack API side. - if params.AsUser != DEFAULT_MESSAGE_ASUSER && params.UnfurlLinks == DEFAULT_MESSAGE_UNFURL_LINKS { - config.values.Set("unfurl_links", "false") - } - if params.UnfurlMedia != DEFAULT_MESSAGE_UNFURL_MEDIA { - config.values.Set("unfurl_media", "false") - } - if params.IconURL != DEFAULT_MESSAGE_ICON_URL { - config.values.Set("icon_url", params.IconURL) - } - if params.IconEmoji != DEFAULT_MESSAGE_ICON_EMOJI { - config.values.Set("icon_emoji", params.IconEmoji) - } - if params.Markdown != DEFAULT_MESSAGE_MARKDOWN { - config.values.Set("mrkdwn", "false") - } - - if params.ThreadTimestamp != DEFAULT_MESSAGE_THREAD_TIMESTAMP { - config.values.Set("thread_ts", params.ThreadTimestamp) - } - if params.ReplyBroadcast != DEFAULT_MESSAGE_REPLY_BROADCAST { - config.values.Set("reply_broadcast", "true") - } - - return nil - } -} - -// PermalinkParameters are the parameters required to get a permalink to a -// message. Slack documentation can be found here: -// https://api.slack.com/methods/chat.getPermalink -type PermalinkParameters struct { - Channel string - Ts string -} - -// GetPermalink returns the permalink for a message. It takes -// PermalinkParameters and returns a string containing the permalink. It -// returns an error if unable to retrieve the permalink. -func (api *Client) GetPermalink(params *PermalinkParameters) (string, error) { - return api.GetPermalinkContext(context.Background(), params) -} - -// GetPermalinkContext returns the permalink for a message using a custom context. -func (api *Client) GetPermalinkContext(ctx context.Context, params *PermalinkParameters) (string, error) { - values := url.Values{ - "token": {api.token}, - "channel": {params.Channel}, - "message_ts": {params.Ts}, - } - - response := struct { - Channel string `json:"channel"` - Permalink string `json:"permalink"` - SlackResponse - }{} - err := api.getMethod(ctx, "chat.getPermalink", values, &response) - if err != nil { - return "", err - } - return response.Permalink, response.Err() -} - -type GetScheduledMessagesParameters struct { - Channel string - Cursor string - Latest string - Limit int - Oldest string -} - -// GetScheduledMessages returns the list of scheduled messages based on params -func (api *Client) GetScheduledMessages(params *GetScheduledMessagesParameters) (channels []ScheduledMessage, nextCursor string, err error) { - return api.GetScheduledMessagesContext(context.Background(), params) -} - -// GetScheduledMessagesContext returns the list of scheduled messages in a Slack team with a custom context -func (api *Client) GetScheduledMessagesContext(ctx context.Context, params *GetScheduledMessagesParameters) (channels []ScheduledMessage, nextCursor string, err error) { - values := url.Values{ - "token": {api.token}, - } - if params.Channel != "" { - values.Add("channel", params.Channel) - } - if params.Cursor != "" { - values.Add("cursor", params.Cursor) - } - if params.Limit != 0 { - values.Add("limit", strconv.Itoa(params.Limit)) - } - if params.Latest != "" { - values.Add("latest", params.Latest) - } - if params.Oldest != "" { - values.Add("oldest", params.Oldest) - } - response := struct { - Messages []ScheduledMessage `json:"scheduled_messages"` - ResponseMetaData responseMetaData `json:"response_metadata"` - SlackResponse - }{} - - err = api.postMethod(ctx, "chat.scheduledMessages.list", values, &response) - if err != nil { - return nil, "", err - } - - return response.Messages, response.ResponseMetaData.NextCursor, response.Err() -} - -type DeleteScheduledMessageParameters struct { - Channel string - ScheduledMessageID string - AsUser bool -} - -// DeleteScheduledMessage returns the list of scheduled messages based on params -func (api *Client) DeleteScheduledMessage(params *DeleteScheduledMessageParameters) (bool, error) { - return api.DeleteScheduledMessageContext(context.Background(), params) -} - -// DeleteScheduledMessageContext returns the list of scheduled messages in a Slack team with a custom context -func (api *Client) DeleteScheduledMessageContext(ctx context.Context, params *DeleteScheduledMessageParameters) (bool, error) { - values := url.Values{ - "token": {api.token}, - "channel": {params.Channel}, - "scheduled_message_id": {params.ScheduledMessageID}, - "as_user": {strconv.FormatBool(params.AsUser)}, - } - response := struct { - SlackResponse - }{} - - err := api.postMethod(ctx, "chat.deleteScheduledMessage", values, &response) - if err != nil { - return false, err - } - - return response.Ok, response.Err() -} diff --git a/vendor/github.com/slack-go/slack/comment.go b/vendor/github.com/slack-go/slack/comment.go deleted file mode 100644 index 7d1c0d4..0000000 --- a/vendor/github.com/slack-go/slack/comment.go +++ /dev/null @@ -1,10 +0,0 @@ -package slack - -// Comment contains all the information relative to a comment -type Comment struct { - ID string `json:"id,omitempty"` - Created JSONTime `json:"created,omitempty"` - Timestamp JSONTime `json:"timestamp,omitempty"` - User string `json:"user,omitempty"` - Comment string `json:"comment,omitempty"` -} diff --git a/vendor/github.com/slack-go/slack/conversation.go b/vendor/github.com/slack-go/slack/conversation.go deleted file mode 100644 index 6fc4a08..0000000 --- a/vendor/github.com/slack-go/slack/conversation.go +++ /dev/null @@ -1,645 +0,0 @@ -package slack - -import ( - "context" - "net/url" - "strconv" - "strings" -) - -// Conversation is the foundation for IM and BaseGroupConversation -type Conversation struct { - ID string `json:"id"` - Created JSONTime `json:"created"` - IsOpen bool `json:"is_open"` - LastRead string `json:"last_read,omitempty"` - Latest *Message `json:"latest,omitempty"` - UnreadCount int `json:"unread_count,omitempty"` - UnreadCountDisplay int `json:"unread_count_display,omitempty"` - IsGroup bool `json:"is_group"` - IsShared bool `json:"is_shared"` - IsIM bool `json:"is_im"` - IsExtShared bool `json:"is_ext_shared"` - IsOrgShared bool `json:"is_org_shared"` - IsPendingExtShared bool `json:"is_pending_ext_shared"` - IsPrivate bool `json:"is_private"` - IsMpIM bool `json:"is_mpim"` - Unlinked int `json:"unlinked"` - NameNormalized string `json:"name_normalized"` - NumMembers int `json:"num_members"` - Priority float64 `json:"priority"` - User string `json:"user"` - - // TODO support pending_shared - // TODO support previous_names -} - -// GroupConversation is the foundation for Group and Channel -type GroupConversation struct { - Conversation - Name string `json:"name"` - Creator string `json:"creator"` - IsArchived bool `json:"is_archived"` - Members []string `json:"members"` - Topic Topic `json:"topic"` - Purpose Purpose `json:"purpose"` -} - -// Topic contains information about the topic -type Topic struct { - Value string `json:"value"` - Creator string `json:"creator"` - LastSet JSONTime `json:"last_set"` -} - -// Purpose contains information about the purpose -type Purpose struct { - Value string `json:"value"` - Creator string `json:"creator"` - LastSet JSONTime `json:"last_set"` -} - -type GetUsersInConversationParameters struct { - ChannelID string - Cursor string - Limit int -} - -type GetConversationsForUserParameters struct { - UserID string - Cursor string - Types []string - Limit int - ExcludeArchived bool -} - -type responseMetaData struct { - NextCursor string `json:"next_cursor"` -} - -// GetUsersInConversation returns the list of users in a conversation -func (api *Client) GetUsersInConversation(params *GetUsersInConversationParameters) ([]string, string, error) { - return api.GetUsersInConversationContext(context.Background(), params) -} - -// GetUsersInConversationContext returns the list of users in a conversation with a custom context -func (api *Client) GetUsersInConversationContext(ctx context.Context, params *GetUsersInConversationParameters) ([]string, string, error) { - values := url.Values{ - "token": {api.token}, - "channel": {params.ChannelID}, - } - if params.Cursor != "" { - values.Add("cursor", params.Cursor) - } - if params.Limit != 0 { - values.Add("limit", strconv.Itoa(params.Limit)) - } - response := struct { - Members []string `json:"members"` - ResponseMetaData responseMetaData `json:"response_metadata"` - SlackResponse - }{} - - err := api.postMethod(ctx, "conversations.members", values, &response) - if err != nil { - return nil, "", err - } - - if err := response.Err(); err != nil { - return nil, "", err - } - - return response.Members, response.ResponseMetaData.NextCursor, nil -} - -// GetConversationsForUser returns the list conversations for a given user -func (api *Client) GetConversationsForUser(params *GetConversationsForUserParameters) (channels []Channel, nextCursor string, err error) { - return api.GetConversationsForUserContext(context.Background(), params) -} - -// GetConversationsForUserContext returns the list conversations for a given user with a custom context -func (api *Client) GetConversationsForUserContext(ctx context.Context, params *GetConversationsForUserParameters) (channels []Channel, nextCursor string, err error) { - values := url.Values{ - "token": {api.token}, - } - if params.UserID != "" { - values.Add("user", params.UserID) - } - if params.Cursor != "" { - values.Add("cursor", params.Cursor) - } - if params.Limit != 0 { - values.Add("limit", strconv.Itoa(params.Limit)) - } - if params.Types != nil { - values.Add("types", strings.Join(params.Types, ",")) - } - if params.ExcludeArchived { - values.Add("exclude_archived", "true") - } - response := struct { - Channels []Channel `json:"channels"` - ResponseMetaData responseMetaData `json:"response_metadata"` - SlackResponse - }{} - err = api.postMethod(ctx, "users.conversations", values, &response) - if err != nil { - return nil, "", err - } - - return response.Channels, response.ResponseMetaData.NextCursor, response.Err() -} - -// ArchiveConversation archives a conversation -func (api *Client) ArchiveConversation(channelID string) error { - return api.ArchiveConversationContext(context.Background(), channelID) -} - -// ArchiveConversationContext archives a conversation with a custom context -func (api *Client) ArchiveConversationContext(ctx context.Context, channelID string) error { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - } - - response := SlackResponse{} - err := api.postMethod(ctx, "conversations.archive", values, &response) - if err != nil { - return err - } - - return response.Err() -} - -// UnArchiveConversation reverses conversation archival -func (api *Client) UnArchiveConversation(channelID string) error { - return api.UnArchiveConversationContext(context.Background(), channelID) -} - -// UnArchiveConversationContext reverses conversation archival with a custom context -func (api *Client) UnArchiveConversationContext(ctx context.Context, channelID string) error { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - } - response := SlackResponse{} - err := api.postMethod(ctx, "conversations.unarchive", values, &response) - if err != nil { - return err - } - - return response.Err() -} - -// SetTopicOfConversation sets the topic for a conversation -func (api *Client) SetTopicOfConversation(channelID, topic string) (*Channel, error) { - return api.SetTopicOfConversationContext(context.Background(), channelID, topic) -} - -// SetTopicOfConversationContext sets the topic for a conversation with a custom context -func (api *Client) SetTopicOfConversationContext(ctx context.Context, channelID, topic string) (*Channel, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - "topic": {topic}, - } - response := struct { - SlackResponse - Channel *Channel `json:"channel"` - }{} - err := api.postMethod(ctx, "conversations.setTopic", values, &response) - if err != nil { - return nil, err - } - - return response.Channel, response.Err() -} - -// SetPurposeOfConversation sets the purpose for a conversation -func (api *Client) SetPurposeOfConversation(channelID, purpose string) (*Channel, error) { - return api.SetPurposeOfConversationContext(context.Background(), channelID, purpose) -} - -// SetPurposeOfConversationContext sets the purpose for a conversation with a custom context -func (api *Client) SetPurposeOfConversationContext(ctx context.Context, channelID, purpose string) (*Channel, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - "purpose": {purpose}, - } - response := struct { - SlackResponse - Channel *Channel `json:"channel"` - }{} - - err := api.postMethod(ctx, "conversations.setPurpose", values, &response) - if err != nil { - return nil, err - } - - return response.Channel, response.Err() -} - -// RenameConversation renames a conversation -func (api *Client) RenameConversation(channelID, channelName string) (*Channel, error) { - return api.RenameConversationContext(context.Background(), channelID, channelName) -} - -// RenameConversationContext renames a conversation with a custom context -func (api *Client) RenameConversationContext(ctx context.Context, channelID, channelName string) (*Channel, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - "name": {channelName}, - } - response := struct { - SlackResponse - Channel *Channel `json:"channel"` - }{} - - err := api.postMethod(ctx, "conversations.rename", values, &response) - if err != nil { - return nil, err - } - - return response.Channel, response.Err() -} - -// InviteUsersToConversation invites users to a channel -func (api *Client) InviteUsersToConversation(channelID string, users ...string) (*Channel, error) { - return api.InviteUsersToConversationContext(context.Background(), channelID, users...) -} - -// InviteUsersToConversationContext invites users to a channel with a custom context -func (api *Client) InviteUsersToConversationContext(ctx context.Context, channelID string, users ...string) (*Channel, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - "users": {strings.Join(users, ",")}, - } - response := struct { - SlackResponse - Channel *Channel `json:"channel"` - }{} - - err := api.postMethod(ctx, "conversations.invite", values, &response) - if err != nil { - return nil, err - } - - return response.Channel, response.Err() -} - -// KickUserFromConversation removes a user from a conversation -func (api *Client) KickUserFromConversation(channelID string, user string) error { - return api.KickUserFromConversationContext(context.Background(), channelID, user) -} - -// KickUserFromConversationContext removes a user from a conversation with a custom context -func (api *Client) KickUserFromConversationContext(ctx context.Context, channelID string, user string) error { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - "user": {user}, - } - - response := SlackResponse{} - err := api.postMethod(ctx, "conversations.kick", values, &response) - if err != nil { - return err - } - - return response.Err() -} - -// CloseConversation closes a direct message or multi-person direct message -func (api *Client) CloseConversation(channelID string) (noOp bool, alreadyClosed bool, err error) { - return api.CloseConversationContext(context.Background(), channelID) -} - -// CloseConversationContext closes a direct message or multi-person direct message with a custom context -func (api *Client) CloseConversationContext(ctx context.Context, channelID string) (noOp bool, alreadyClosed bool, err error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - } - response := struct { - SlackResponse - NoOp bool `json:"no_op"` - AlreadyClosed bool `json:"already_closed"` - }{} - - err = api.postMethod(ctx, "conversations.close", values, &response) - if err != nil { - return false, false, err - } - - return response.NoOp, response.AlreadyClosed, response.Err() -} - -// CreateConversation initiates a public or private channel-based conversation -func (api *Client) CreateConversation(channelName string, isPrivate bool) (*Channel, error) { - return api.CreateConversationContext(context.Background(), channelName, isPrivate) -} - -// CreateConversationContext initiates a public or private channel-based conversation with a custom context -func (api *Client) CreateConversationContext(ctx context.Context, channelName string, isPrivate bool) (*Channel, error) { - values := url.Values{ - "token": {api.token}, - "name": {channelName}, - "is_private": {strconv.FormatBool(isPrivate)}, - } - response, err := api.channelRequest(ctx, "conversations.create", values) - if err != nil { - return nil, err - } - - return &response.Channel, nil -} - -// GetConversationInfo retrieves information about a conversation -func (api *Client) GetConversationInfo(channelID string, includeLocale bool) (*Channel, error) { - return api.GetConversationInfoContext(context.Background(), channelID, includeLocale) -} - -// GetConversationInfoContext retrieves information about a conversation with a custom context -func (api *Client) GetConversationInfoContext(ctx context.Context, channelID string, includeLocale bool) (*Channel, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - "include_locale": {strconv.FormatBool(includeLocale)}, - } - response, err := api.channelRequest(ctx, "conversations.info", values) - if err != nil { - return nil, err - } - - return &response.Channel, response.Err() -} - -// LeaveConversation leaves a conversation -func (api *Client) LeaveConversation(channelID string) (bool, error) { - return api.LeaveConversationContext(context.Background(), channelID) -} - -// LeaveConversationContext leaves a conversation with a custom context -func (api *Client) LeaveConversationContext(ctx context.Context, channelID string) (bool, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - } - - response, err := api.channelRequest(ctx, "conversations.leave", values) - if err != nil { - return false, err - } - - return response.NotInChannel, err -} - -type GetConversationRepliesParameters struct { - ChannelID string - Timestamp string - Cursor string - Inclusive bool - Latest string - Limit int - Oldest string -} - -// GetConversationReplies retrieves a thread of messages posted to a conversation -func (api *Client) GetConversationReplies(params *GetConversationRepliesParameters) (msgs []Message, hasMore bool, nextCursor string, err error) { - return api.GetConversationRepliesContext(context.Background(), params) -} - -// GetConversationRepliesContext retrieves a thread of messages posted to a conversation with a custom context -func (api *Client) GetConversationRepliesContext(ctx context.Context, params *GetConversationRepliesParameters) (msgs []Message, hasMore bool, nextCursor string, err error) { - values := url.Values{ - "token": {api.token}, - "channel": {params.ChannelID}, - "ts": {params.Timestamp}, - } - if params.Cursor != "" { - values.Add("cursor", params.Cursor) - } - if params.Latest != "" { - values.Add("latest", params.Latest) - } - if params.Limit != 0 { - values.Add("limit", strconv.Itoa(params.Limit)) - } - if params.Oldest != "" { - values.Add("oldest", params.Oldest) - } - if params.Inclusive { - values.Add("inclusive", "1") - } else { - values.Add("inclusive", "0") - } - response := struct { - SlackResponse - HasMore bool `json:"has_more"` - ResponseMetaData struct { - NextCursor string `json:"next_cursor"` - } `json:"response_metadata"` - Messages []Message `json:"messages"` - }{} - - err = api.postMethod(ctx, "conversations.replies", values, &response) - if err != nil { - return nil, false, "", err - } - - return response.Messages, response.HasMore, response.ResponseMetaData.NextCursor, response.Err() -} - -type GetConversationsParameters struct { - Cursor string - ExcludeArchived string - Limit int - Types []string -} - -// GetConversations returns the list of channels in a Slack team -func (api *Client) GetConversations(params *GetConversationsParameters) (channels []Channel, nextCursor string, err error) { - return api.GetConversationsContext(context.Background(), params) -} - -// GetConversationsContext returns the list of channels in a Slack team with a custom context -func (api *Client) GetConversationsContext(ctx context.Context, params *GetConversationsParameters) (channels []Channel, nextCursor string, err error) { - values := url.Values{ - "token": {api.token}, - } - if params.Cursor != "" { - values.Add("cursor", params.Cursor) - } - if params.Limit != 0 { - values.Add("limit", strconv.Itoa(params.Limit)) - } - if params.Types != nil { - values.Add("types", strings.Join(params.Types, ",")) - } - if params.ExcludeArchived == "true" { - values.Add("exclude_archived", "true") - } - - response := struct { - Channels []Channel `json:"channels"` - ResponseMetaData responseMetaData `json:"response_metadata"` - SlackResponse - }{} - - err = api.postMethod(ctx, "conversations.list", values, &response) - if err != nil { - return nil, "", err - } - - return response.Channels, response.ResponseMetaData.NextCursor, response.Err() -} - -type OpenConversationParameters struct { - ChannelID string - ReturnIM bool - Users []string -} - -// OpenConversation opens or resumes a direct message or multi-person direct message -func (api *Client) OpenConversation(params *OpenConversationParameters) (*Channel, bool, bool, error) { - return api.OpenConversationContext(context.Background(), params) -} - -// OpenConversationContext opens or resumes a direct message or multi-person direct message with a custom context -func (api *Client) OpenConversationContext(ctx context.Context, params *OpenConversationParameters) (*Channel, bool, bool, error) { - values := url.Values{ - "token": {api.token}, - "return_im": {strconv.FormatBool(params.ReturnIM)}, - } - if params.ChannelID != "" { - values.Add("channel", params.ChannelID) - } - if params.Users != nil { - values.Add("users", strings.Join(params.Users, ",")) - } - response := struct { - Channel *Channel `json:"channel"` - NoOp bool `json:"no_op"` - AlreadyOpen bool `json:"already_open"` - SlackResponse - }{} - - err := api.postMethod(ctx, "conversations.open", values, &response) - if err != nil { - return nil, false, false, err - } - - return response.Channel, response.NoOp, response.AlreadyOpen, response.Err() -} - -// JoinConversation joins an existing conversation -func (api *Client) JoinConversation(channelID string) (*Channel, string, []string, error) { - return api.JoinConversationContext(context.Background(), channelID) -} - -// JoinConversationContext joins an existing conversation with a custom context -func (api *Client) JoinConversationContext(ctx context.Context, channelID string) (*Channel, string, []string, error) { - values := url.Values{"token": {api.token}, "channel": {channelID}} - response := struct { - Channel *Channel `json:"channel"` - Warning string `json:"warning"` - ResponseMetaData *struct { - Warnings []string `json:"warnings"` - } `json:"response_metadata"` - SlackResponse - }{} - - err := api.postMethod(ctx, "conversations.join", values, &response) - if err != nil { - return nil, "", nil, err - } - if response.Err() != nil { - return nil, "", nil, response.Err() - } - var warnings []string - if response.ResponseMetaData != nil { - warnings = response.ResponseMetaData.Warnings - } - return response.Channel, response.Warning, warnings, nil -} - -type GetConversationHistoryParameters struct { - ChannelID string - Cursor string - Inclusive bool - Latest string - Limit int - Oldest string -} - -type GetConversationHistoryResponse struct { - SlackResponse - HasMore bool `json:"has_more"` - PinCount int `json:"pin_count"` - Latest string `json:"latest"` - ResponseMetaData struct { - NextCursor string `json:"next_cursor"` - } `json:"response_metadata"` - Messages []Message `json:"messages"` -} - -// GetConversationHistory joins an existing conversation -func (api *Client) GetConversationHistory(params *GetConversationHistoryParameters) (*GetConversationHistoryResponse, error) { - return api.GetConversationHistoryContext(context.Background(), params) -} - -// GetConversationHistoryContext joins an existing conversation with a custom context -func (api *Client) GetConversationHistoryContext(ctx context.Context, params *GetConversationHistoryParameters) (*GetConversationHistoryResponse, error) { - values := url.Values{"token": {api.token}, "channel": {params.ChannelID}} - if params.Cursor != "" { - values.Add("cursor", params.Cursor) - } - if params.Inclusive { - values.Add("inclusive", "1") - } else { - values.Add("inclusive", "0") - } - if params.Latest != "" { - values.Add("latest", params.Latest) - } - if params.Limit != 0 { - values.Add("limit", strconv.Itoa(params.Limit)) - } - if params.Oldest != "" { - values.Add("oldest", params.Oldest) - } - - response := GetConversationHistoryResponse{} - - err := api.postMethod(ctx, "conversations.history", values, &response) - if err != nil { - return nil, err - } - - return &response, response.Err() -} - -// MarkConversation sets the read mark of a conversation to a specific point -func (api *Client) MarkConversation(channel, ts string) (err error) { - return api.MarkConversationContext(context.Background(), channel, ts) -} - -// MarkConversationContext sets the read mark of a conversation to a specific point with a custom context -func (api *Client) MarkConversationContext(ctx context.Context, channel, ts string) error { - values := url.Values{ - "token": {api.token}, - "channel": {channel}, - "ts": {ts}, - } - - response := &SlackResponse{} - - err := api.postMethod(ctx, "conversations.mark", values, response) - if err != nil { - return err - } - return response.Err() -} diff --git a/vendor/github.com/slack-go/slack/dialog.go b/vendor/github.com/slack-go/slack/dialog.go deleted file mode 100644 index f94113f..0000000 --- a/vendor/github.com/slack-go/slack/dialog.go +++ /dev/null @@ -1,120 +0,0 @@ -package slack - -import ( - "context" - "encoding/json" - "strings" -) - -// InputType is the type of the dialog input type -type InputType string - -const ( - // InputTypeText textfield input - InputTypeText InputType = "text" - // InputTypeTextArea textarea input - InputTypeTextArea InputType = "textarea" - // InputTypeSelect select menus input - InputTypeSelect InputType = "select" -) - -// DialogInput for dialogs input type text or menu -type DialogInput struct { - Type InputType `json:"type"` - Label string `json:"label"` - Name string `json:"name"` - Placeholder string `json:"placeholder"` - Optional bool `json:"optional"` - Hint string `json:"hint"` -} - -// DialogTrigger ... -type DialogTrigger struct { - TriggerID string `json:"trigger_id"` //Required. Must respond within 3 seconds. - Dialog Dialog `json:"dialog"` //Required. -} - -// Dialog as in Slack dialogs -// https://api.slack.com/dialogs#option_element_attributes#top-level_dialog_attributes -type Dialog struct { - TriggerID string `json:"trigger_id"` // Required - CallbackID string `json:"callback_id"` // Required - State string `json:"state,omitempty"` // Optional - Title string `json:"title"` - SubmitLabel string `json:"submit_label,omitempty"` - NotifyOnCancel bool `json:"notify_on_cancel"` - Elements []DialogElement `json:"elements"` -} - -// DialogElement abstract type for dialogs. -type DialogElement interface{} - -// DialogCallback DEPRECATED use InteractionCallback -type DialogCallback InteractionCallback - -// DialogSubmissionCallback is sent from Slack when a user submits a form from within a dialog -type DialogSubmissionCallback struct { - // NOTE: State is only used with the dialog_submission type. - // You should use InteractionCallback.BlockActionsState for block_actions type. - State string `json:"-"` - Submission map[string]string `json:"submission"` -} - -// DialogOpenResponse response from `dialog.open` -type DialogOpenResponse struct { - SlackResponse - DialogResponseMetadata DialogResponseMetadata `json:"response_metadata"` -} - -// DialogResponseMetadata lists the error messages -type DialogResponseMetadata struct { - Messages []string `json:"messages"` -} - -// DialogInputValidationError is an error when user inputs incorrect value to form from within a dialog -type DialogInputValidationError struct { - Name string `json:"name"` - Error string `json:"error"` -} - -// DialogInputValidationErrors lists the name of field and that error messages -type DialogInputValidationErrors struct { - Errors []DialogInputValidationError `json:"errors"` -} - -// OpenDialog opens a dialog window where the triggerID originated from. -// EXPERIMENTAL: dialog functionality is currently experimental, api is not considered stable. -func (api *Client) OpenDialog(triggerID string, dialog Dialog) (err error) { - return api.OpenDialogContext(context.Background(), triggerID, dialog) -} - -// OpenDialogContext opens a dialog window where the triggerId originated from with a custom context -// EXPERIMENTAL: dialog functionality is currently experimental, api is not considered stable. -func (api *Client) OpenDialogContext(ctx context.Context, triggerID string, dialog Dialog) (err error) { - if triggerID == "" { - return ErrParametersMissing - } - - req := DialogTrigger{ - TriggerID: triggerID, - Dialog: dialog, - } - - encoded, err := json.Marshal(req) - if err != nil { - return err - } - - response := &DialogOpenResponse{} - endpoint := api.endpoint + "dialog.open" - if err := postJSON(ctx, api.httpclient, endpoint, api.token, encoded, response, api); err != nil { - return err - } - - if len(response.DialogResponseMetadata.Messages) > 0 { - response.Ok = false - response.Error += "\n" + strings.Join(response.DialogResponseMetadata.Messages, "\n") - } - - return response.Err() -} diff --git a/vendor/github.com/slack-go/slack/dialog_select.go b/vendor/github.com/slack-go/slack/dialog_select.go deleted file mode 100644 index 385cef6..0000000 --- a/vendor/github.com/slack-go/slack/dialog_select.go +++ /dev/null @@ -1,101 +0,0 @@ -package slack - -// SelectDataSource types of select datasource -type SelectDataSource string - -const ( - // DialogDataSourceStatic menu with static Options/OptionGroups - DialogDataSourceStatic SelectDataSource = "static" - // DialogDataSourceExternal dynamic datasource - DialogDataSourceExternal SelectDataSource = "external" - // DialogDataSourceConversations provides a list of conversations - DialogDataSourceConversations SelectDataSource = "conversations" - // DialogDataSourceChannels provides a list of channels - DialogDataSourceChannels SelectDataSource = "channels" - // DialogDataSourceUsers provides a list of users - DialogDataSourceUsers SelectDataSource = "users" -) - -// DialogInputSelect dialog support for select boxes. -type DialogInputSelect struct { - DialogInput - Value string `json:"value,omitempty"` //Optional. - DataSource SelectDataSource `json:"data_source,omitempty"` //Optional. Allowed values: "users", "channels", "conversations", "external". - SelectedOptions []DialogSelectOption `json:"selected_options,omitempty"` //Optional. May hold at most one element, for use with "external" only. - Options []DialogSelectOption `json:"options,omitempty"` //One of options or option_groups is required. - OptionGroups []DialogOptionGroup `json:"option_groups,omitempty"` //Provide up to 100 options. - MinQueryLength int `json:"min_query_length,omitempty"` //Optional. minimum characters before query is sent. - Hint string `json:"hint,omitempty"` //Optional. Additional hint text. -} - -// DialogSelectOption is an option for the user to select from the menu -type DialogSelectOption struct { - Label string `json:"label"` - Value string `json:"value"` -} - -// DialogOptionGroup is a collection of options for creating a segmented table -type DialogOptionGroup struct { - Label string `json:"label"` - Options []DialogSelectOption `json:"options"` -} - -// NewStaticSelectDialogInput constructor for a `static` datasource menu input -func NewStaticSelectDialogInput(name, label string, options []DialogSelectOption) *DialogInputSelect { - return &DialogInputSelect{ - DialogInput: DialogInput{ - Type: InputTypeSelect, - Name: name, - Label: label, - Optional: true, - }, - DataSource: DialogDataSourceStatic, - Options: options, - } -} - -// NewGroupedSelectDialogInput creates grouped options select input for Dialogs. -func NewGroupedSelectDialogInput(name, label string, options []DialogOptionGroup) *DialogInputSelect { - return &DialogInputSelect{ - DialogInput: DialogInput{ - Type: InputTypeSelect, - Name: name, - Label: label, - }, - DataSource: DialogDataSourceStatic, - OptionGroups: options} -} - -// NewDialogOptionGroup creates a DialogOptionGroup from several select options -func NewDialogOptionGroup(label string, options ...DialogSelectOption) DialogOptionGroup { - return DialogOptionGroup{ - Label: label, - Options: options, - } -} - -// NewConversationsSelect returns a `Conversations` select -func NewConversationsSelect(name, label string) *DialogInputSelect { - return newPresetSelect(name, label, DialogDataSourceConversations) -} - -// NewChannelsSelect returns a `Channels` select -func NewChannelsSelect(name, label string) *DialogInputSelect { - return newPresetSelect(name, label, DialogDataSourceChannels) -} - -// NewUsersSelect returns a `Users` select -func NewUsersSelect(name, label string) *DialogInputSelect { - return newPresetSelect(name, label, DialogDataSourceUsers) -} - -func newPresetSelect(name, label string, dataSourceType SelectDataSource) *DialogInputSelect { - return &DialogInputSelect{ - DialogInput: DialogInput{ - Type: InputTypeSelect, - Label: label, - Name: name, - }, - DataSource: dataSourceType, - } -} diff --git a/vendor/github.com/slack-go/slack/dialog_text.go b/vendor/github.com/slack-go/slack/dialog_text.go deleted file mode 100644 index da06bd6..0000000 --- a/vendor/github.com/slack-go/slack/dialog_text.go +++ /dev/null @@ -1,59 +0,0 @@ -package slack - -// TextInputSubtype Accepts email, number, tel, or url. In some form factors, optimized input is provided for this subtype. -type TextInputSubtype string - -// TextInputOption handle to extra inputs options. -type TextInputOption func(*TextInputElement) - -const ( - // InputSubtypeEmail email keyboard - InputSubtypeEmail TextInputSubtype = "email" - // InputSubtypeNumber numeric keyboard - InputSubtypeNumber TextInputSubtype = "number" - // InputSubtypeTel Phone keyboard - InputSubtypeTel TextInputSubtype = "tel" - // InputSubtypeURL Phone keyboard - InputSubtypeURL TextInputSubtype = "url" -) - -// TextInputElement subtype of DialogInput -// https://api.slack.com/dialogs#option_element_attributes#text_element_attributes -type TextInputElement struct { - DialogInput - MaxLength int `json:"max_length,omitempty"` - MinLength int `json:"min_length,omitempty"` - Hint string `json:"hint,omitempty"` - Subtype TextInputSubtype `json:"subtype"` - Value string `json:"value"` -} - -// NewTextInput constructor for a `text` input -func NewTextInput(name, label, text string, options ...TextInputOption) *TextInputElement { - t := &TextInputElement{ - DialogInput: DialogInput{ - Type: InputTypeText, - Name: name, - Label: label, - }, - Value: text, - } - - for _, opt := range options { - opt(t) - } - - return t -} - -// NewTextAreaInput constructor for a `textarea` input -func NewTextAreaInput(name, label, text string) *TextInputElement { - return &TextInputElement{ - DialogInput: DialogInput{ - Type: InputTypeTextArea, - Name: name, - Label: label, - }, - Value: text, - } -} diff --git a/vendor/github.com/slack-go/slack/dnd.go b/vendor/github.com/slack-go/slack/dnd.go deleted file mode 100644 index a3aa680..0000000 --- a/vendor/github.com/slack-go/slack/dnd.go +++ /dev/null @@ -1,151 +0,0 @@ -package slack - -import ( - "context" - "net/url" - "strconv" - "strings" -) - -type SnoozeDebug struct { - SnoozeEndDate string `json:"snooze_end_date"` -} - -type SnoozeInfo struct { - SnoozeEnabled bool `json:"snooze_enabled,omitempty"` - SnoozeEndTime int `json:"snooze_endtime,omitempty"` - SnoozeRemaining int `json:"snooze_remaining,omitempty"` - SnoozeDebug SnoozeDebug `json:"snooze_debug,omitempty"` -} - -type DNDStatus struct { - Enabled bool `json:"dnd_enabled"` - NextStartTimestamp int `json:"next_dnd_start_ts"` - NextEndTimestamp int `json:"next_dnd_end_ts"` - SnoozeInfo -} - -type dndResponseFull struct { - DNDStatus - SlackResponse -} - -type dndTeamInfoResponse struct { - Users map[string]DNDStatus `json:"users"` - SlackResponse -} - -func (api *Client) dndRequest(ctx context.Context, path string, values url.Values) (*dndResponseFull, error) { - response := &dndResponseFull{} - err := api.postMethod(ctx, path, values, response) - if err != nil { - return nil, err - } - - return response, response.Err() -} - -// EndDND ends the user's scheduled Do Not Disturb session -func (api *Client) EndDND() error { - return api.EndDNDContext(context.Background()) -} - -// EndDNDContext ends the user's scheduled Do Not Disturb session with a custom context -func (api *Client) EndDNDContext(ctx context.Context) error { - values := url.Values{ - "token": {api.token}, - } - - response := &SlackResponse{} - - if err := api.postMethod(ctx, "dnd.endDnd", values, response); err != nil { - return err - } - - return response.Err() -} - -// EndSnooze ends the current user's snooze mode -func (api *Client) EndSnooze() (*DNDStatus, error) { - return api.EndSnoozeContext(context.Background()) -} - -// EndSnoozeContext ends the current user's snooze mode with a custom context -func (api *Client) EndSnoozeContext(ctx context.Context) (*DNDStatus, error) { - values := url.Values{ - "token": {api.token}, - } - - response, err := api.dndRequest(ctx, "dnd.endSnooze", values) - if err != nil { - return nil, err - } - return &response.DNDStatus, nil -} - -// GetDNDInfo provides information about a user's current Do Not Disturb settings. -func (api *Client) GetDNDInfo(user *string) (*DNDStatus, error) { - return api.GetDNDInfoContext(context.Background(), user) -} - -// GetDNDInfoContext provides information about a user's current Do Not Disturb settings with a custom context. -func (api *Client) GetDNDInfoContext(ctx context.Context, user *string) (*DNDStatus, error) { - values := url.Values{ - "token": {api.token}, - } - if user != nil { - values.Set("user", *user) - } - - response, err := api.dndRequest(ctx, "dnd.info", values) - if err != nil { - return nil, err - } - return &response.DNDStatus, nil -} - -// GetDNDTeamInfo provides information about a user's current Do Not Disturb settings. -func (api *Client) GetDNDTeamInfo(users []string) (map[string]DNDStatus, error) { - return api.GetDNDTeamInfoContext(context.Background(), users) -} - -// GetDNDTeamInfoContext provides information about a user's current Do Not Disturb settings with a custom context. -func (api *Client) GetDNDTeamInfoContext(ctx context.Context, users []string) (map[string]DNDStatus, error) { - values := url.Values{ - "token": {api.token}, - "users": {strings.Join(users, ",")}, - } - response := &dndTeamInfoResponse{} - - if err := api.postMethod(ctx, "dnd.teamInfo", values, response); err != nil { - return nil, err - } - - if response.Err() != nil { - return nil, response.Err() - } - - return response.Users, nil -} - -// SetSnooze adjusts the snooze duration for a user's Do Not Disturb -// settings. If a snooze session is not already active for the user, invoking -// this method will begin one for the specified duration. -func (api *Client) SetSnooze(minutes int) (*DNDStatus, error) { - return api.SetSnoozeContext(context.Background(), minutes) -} - -// SetSnoozeContext adjusts the snooze duration for a user's Do Not Disturb settings with a custom context. -// For more information see the SetSnooze docs -func (api *Client) SetSnoozeContext(ctx context.Context, minutes int) (*DNDStatus, error) { - values := url.Values{ - "token": {api.token}, - "num_minutes": {strconv.Itoa(minutes)}, - } - - response, err := api.dndRequest(ctx, "dnd.setSnooze", values) - if err != nil { - return nil, err - } - return &response.DNDStatus, nil -} diff --git a/vendor/github.com/slack-go/slack/emoji.go b/vendor/github.com/slack-go/slack/emoji.go deleted file mode 100644 index b2b0c6c..0000000 --- a/vendor/github.com/slack-go/slack/emoji.go +++ /dev/null @@ -1,35 +0,0 @@ -package slack - -import ( - "context" - "net/url" -) - -type emojiResponseFull struct { - Emoji map[string]string `json:"emoji"` - SlackResponse -} - -// GetEmoji retrieves all the emojis -func (api *Client) GetEmoji() (map[string]string, error) { - return api.GetEmojiContext(context.Background()) -} - -// GetEmojiContext retrieves all the emojis with a custom context -func (api *Client) GetEmojiContext(ctx context.Context) (map[string]string, error) { - values := url.Values{ - "token": {api.token}, - } - response := &emojiResponseFull{} - - err := api.postMethod(ctx, "emoji.list", values, response) - if err != nil { - return nil, err - } - - if response.Err() != nil { - return nil, response.Err() - } - - return response.Emoji, nil -} diff --git a/vendor/github.com/slack-go/slack/errors.go b/vendor/github.com/slack-go/slack/errors.go deleted file mode 100644 index 8be22a6..0000000 --- a/vendor/github.com/slack-go/slack/errors.go +++ /dev/null @@ -1,21 +0,0 @@ -package slack - -import "github.com/slack-go/slack/internal/errorsx" - -// Errors returned by various methods. -const ( - ErrAlreadyDisconnected = errorsx.String("Invalid call to Disconnect - Slack API is already disconnected") - ErrRTMDisconnected = errorsx.String("disconnect received while trying to connect") - ErrRTMGoodbye = errorsx.String("goodbye detected") - ErrRTMDeadman = errorsx.String("deadman switch triggered") - ErrParametersMissing = errorsx.String("received empty parameters") - ErrBlockIDNotUnique = errorsx.String("Block ID needs to be unique") - ErrInvalidConfiguration = errorsx.String("invalid configuration") - ErrMissingHeaders = errorsx.String("missing headers") - ErrExpiredTimestamp = errorsx.String("timestamp is too old") -) - -// internal errors -const ( - errPaginationComplete = errorsx.String("pagination complete") -) diff --git a/vendor/github.com/slack-go/slack/files.go b/vendor/github.com/slack-go/slack/files.go deleted file mode 100644 index 713038f..0000000 --- a/vendor/github.com/slack-go/slack/files.go +++ /dev/null @@ -1,410 +0,0 @@ -package slack - -import ( - "context" - "fmt" - "io" - "net/url" - "strconv" - "strings" -) - -const ( - // Add here the defaults in the siten - DEFAULT_FILES_USER = "" - DEFAULT_FILES_CHANNEL = "" - DEFAULT_FILES_TS_FROM = 0 - DEFAULT_FILES_TS_TO = -1 - DEFAULT_FILES_TYPES = "all" - DEFAULT_FILES_COUNT = 100 - DEFAULT_FILES_PAGE = 1 - DEFAULT_FILES_SHOW_HIDDEN = false -) - -// File contains all the information for a file -type File struct { - ID string `json:"id"` - Created JSONTime `json:"created"` - Timestamp JSONTime `json:"timestamp"` - - Name string `json:"name"` - Title string `json:"title"` - Mimetype string `json:"mimetype"` - ImageExifRotation int `json:"image_exif_rotation"` - Filetype string `json:"filetype"` - PrettyType string `json:"pretty_type"` - User string `json:"user"` - - Mode string `json:"mode"` - Editable bool `json:"editable"` - IsExternal bool `json:"is_external"` - ExternalType string `json:"external_type"` - - Size int `json:"size"` - - URL string `json:"url"` // Deprecated - never set - URLDownload string `json:"url_download"` // Deprecated - never set - URLPrivate string `json:"url_private"` - URLPrivateDownload string `json:"url_private_download"` - - OriginalH int `json:"original_h"` - OriginalW int `json:"original_w"` - Thumb64 string `json:"thumb_64"` - Thumb80 string `json:"thumb_80"` - Thumb160 string `json:"thumb_160"` - Thumb360 string `json:"thumb_360"` - Thumb360Gif string `json:"thumb_360_gif"` - Thumb360W int `json:"thumb_360_w"` - Thumb360H int `json:"thumb_360_h"` - Thumb480 string `json:"thumb_480"` - Thumb480W int `json:"thumb_480_w"` - Thumb480H int `json:"thumb_480_h"` - Thumb720 string `json:"thumb_720"` - Thumb720W int `json:"thumb_720_w"` - Thumb720H int `json:"thumb_720_h"` - Thumb960 string `json:"thumb_960"` - Thumb960W int `json:"thumb_960_w"` - Thumb960H int `json:"thumb_960_h"` - Thumb1024 string `json:"thumb_1024"` - Thumb1024W int `json:"thumb_1024_w"` - Thumb1024H int `json:"thumb_1024_h"` - - Permalink string `json:"permalink"` - PermalinkPublic string `json:"permalink_public"` - - EditLink string `json:"edit_link"` - Preview string `json:"preview"` - PreviewHighlight string `json:"preview_highlight"` - Lines int `json:"lines"` - LinesMore int `json:"lines_more"` - - IsPublic bool `json:"is_public"` - PublicURLShared bool `json:"public_url_shared"` - Channels []string `json:"channels"` - Groups []string `json:"groups"` - IMs []string `json:"ims"` - InitialComment Comment `json:"initial_comment"` - CommentsCount int `json:"comments_count"` - NumStars int `json:"num_stars"` - IsStarred bool `json:"is_starred"` - Shares Share `json:"shares"` -} - -type Share struct { - Public map[string][]ShareFileInfo `json:"public"` - Private map[string][]ShareFileInfo `json:"private"` -} - -type ShareFileInfo struct { - ReplyUsers []string `json:"reply_users"` - ReplyUsersCount int `json:"reply_users_count"` - ReplyCount int `json:"reply_count"` - Ts string `json:"ts"` - ThreadTs string `json:"thread_ts"` - LatestReply string `json:"latest_reply"` - ChannelName string `json:"channel_name"` - TeamID string `json:"team_id"` -} - -// FileUploadParameters contains all the parameters necessary (including the optional ones) for an UploadFile() request. -// -// There are three ways to upload a file. You can either set Content if file is small, set Reader if file is large, -// or provide a local file path in File to upload it from your filesystem. -// -// Note that when using the Reader option, you *must* specify the Filename, otherwise the Slack API isn't happy. -type FileUploadParameters struct { - File string - Content string - Reader io.Reader - Filetype string - Filename string - Title string - InitialComment string - Channels []string - ThreadTimestamp string -} - -// GetFilesParameters contains all the parameters necessary (including the optional ones) for a GetFiles() request -type GetFilesParameters struct { - User string - Channel string - TimestampFrom JSONTime - TimestampTo JSONTime - Types string - Count int - Page int - ShowHidden bool -} - -// ListFilesParameters contains all the parameters necessary (including the optional ones) for a ListFiles() request -type ListFilesParameters struct { - Limit int - User string - Channel string - Types string - Cursor string -} - -type fileResponseFull struct { - File `json:"file"` - Paging `json:"paging"` - Comments []Comment `json:"comments"` - Files []File `json:"files"` - Metadata ResponseMetadata `json:"response_metadata"` - - SlackResponse -} - -// NewGetFilesParameters provides an instance of GetFilesParameters with all the sane default values set -func NewGetFilesParameters() GetFilesParameters { - return GetFilesParameters{ - User: DEFAULT_FILES_USER, - Channel: DEFAULT_FILES_CHANNEL, - TimestampFrom: DEFAULT_FILES_TS_FROM, - TimestampTo: DEFAULT_FILES_TS_TO, - Types: DEFAULT_FILES_TYPES, - Count: DEFAULT_FILES_COUNT, - Page: DEFAULT_FILES_PAGE, - ShowHidden: DEFAULT_FILES_SHOW_HIDDEN, - } -} - -func (api *Client) fileRequest(ctx context.Context, path string, values url.Values) (*fileResponseFull, error) { - response := &fileResponseFull{} - err := api.postMethod(ctx, path, values, response) - if err != nil { - return nil, err - } - - return response, response.Err() -} - -// GetFileInfo retrieves a file and related comments -func (api *Client) GetFileInfo(fileID string, count, page int) (*File, []Comment, *Paging, error) { - return api.GetFileInfoContext(context.Background(), fileID, count, page) -} - -// GetFileInfoContext retrieves a file and related comments with a custom context -func (api *Client) GetFileInfoContext(ctx context.Context, fileID string, count, page int) (*File, []Comment, *Paging, error) { - values := url.Values{ - "token": {api.token}, - "file": {fileID}, - "count": {strconv.Itoa(count)}, - "page": {strconv.Itoa(page)}, - } - - response, err := api.fileRequest(ctx, "files.info", values) - if err != nil { - return nil, nil, nil, err - } - return &response.File, response.Comments, &response.Paging, nil -} - -// GetFile retreives a given file from its private download URL -func (api *Client) GetFile(downloadURL string, writer io.Writer) error { - return downloadFile(api.httpclient, api.token, downloadURL, writer, api) -} - -// GetFiles retrieves all files according to the parameters given -func (api *Client) GetFiles(params GetFilesParameters) ([]File, *Paging, error) { - return api.GetFilesContext(context.Background(), params) -} - -// ListFiles retrieves all files according to the parameters given. Uses cursor based pagination. -func (api *Client) ListFiles(params ListFilesParameters) ([]File, *ListFilesParameters, error) { - return api.ListFilesContext(context.Background(), params) -} - -// ListFilesContext retrieves all files according to the parameters given with a custom context. Uses cursor based pagination. -func (api *Client) ListFilesContext(ctx context.Context, params ListFilesParameters) ([]File, *ListFilesParameters, error) { - values := url.Values{ - "token": {api.token}, - } - - if params.User != DEFAULT_FILES_USER { - values.Add("user", params.User) - } - if params.Channel != DEFAULT_FILES_CHANNEL { - values.Add("channel", params.Channel) - } - if params.Limit != DEFAULT_FILES_COUNT { - values.Add("limit", strconv.Itoa(params.Limit)) - } - if params.Cursor != "" { - values.Add("cursor", params.Cursor) - } - - response, err := api.fileRequest(ctx, "files.list", values) - if err != nil { - return nil, nil, err - } - - params.Cursor = response.Metadata.Cursor - - return response.Files, ¶ms, nil -} - -// GetFilesContext retrieves all files according to the parameters given with a custom context -func (api *Client) GetFilesContext(ctx context.Context, params GetFilesParameters) ([]File, *Paging, error) { - values := url.Values{ - "token": {api.token}, - } - if params.User != DEFAULT_FILES_USER { - values.Add("user", params.User) - } - if params.Channel != DEFAULT_FILES_CHANNEL { - values.Add("channel", params.Channel) - } - if params.TimestampFrom != DEFAULT_FILES_TS_FROM { - values.Add("ts_from", strconv.FormatInt(int64(params.TimestampFrom), 10)) - } - if params.TimestampTo != DEFAULT_FILES_TS_TO { - values.Add("ts_to", strconv.FormatInt(int64(params.TimestampTo), 10)) - } - if params.Types != DEFAULT_FILES_TYPES { - values.Add("types", params.Types) - } - if params.Count != DEFAULT_FILES_COUNT { - values.Add("count", strconv.Itoa(params.Count)) - } - if params.Page != DEFAULT_FILES_PAGE { - values.Add("page", strconv.Itoa(params.Page)) - } - if params.ShowHidden != DEFAULT_FILES_SHOW_HIDDEN { - values.Add("show_files_hidden_by_limit", strconv.FormatBool(params.ShowHidden)) - } - - response, err := api.fileRequest(ctx, "files.list", values) - if err != nil { - return nil, nil, err - } - return response.Files, &response.Paging, nil -} - -// UploadFile uploads a file -func (api *Client) UploadFile(params FileUploadParameters) (file *File, err error) { - return api.UploadFileContext(context.Background(), params) -} - -// UploadFileContext uploads a file and setting a custom context -func (api *Client) UploadFileContext(ctx context.Context, params FileUploadParameters) (file *File, err error) { - // Test if user token is valid. This helps because client.Do doesn't like this for some reason. XXX: More - // investigation needed, but for now this will do. - _, err = api.AuthTest() - if err != nil { - return nil, err - } - response := &fileResponseFull{} - values := url.Values{ - "token": {api.token}, - } - if params.Filetype != "" { - values.Add("filetype", params.Filetype) - } - if params.Filename != "" { - values.Add("filename", params.Filename) - } - if params.Title != "" { - values.Add("title", params.Title) - } - if params.InitialComment != "" { - values.Add("initial_comment", params.InitialComment) - } - if params.ThreadTimestamp != "" { - values.Add("thread_ts", params.ThreadTimestamp) - } - if len(params.Channels) != 0 { - values.Add("channels", strings.Join(params.Channels, ",")) - } - if params.Content != "" { - values.Add("content", params.Content) - err = api.postMethod(ctx, "files.upload", values, response) - } else if params.File != "" { - err = postLocalWithMultipartResponse(ctx, api.httpclient, api.endpoint+"files.upload", params.File, "file", values, response, api) - } else if params.Reader != nil { - if params.Filename == "" { - return nil, fmt.Errorf("files.upload: FileUploadParameters.Filename is mandatory when using FileUploadParameters.Reader") - } - err = postWithMultipartResponse(ctx, api.httpclient, api.endpoint+"files.upload", params.Filename, "file", values, params.Reader, response, api) - } - - if err != nil { - return nil, err - } - - return &response.File, response.Err() -} - -// DeleteFileComment deletes a file's comment -func (api *Client) DeleteFileComment(commentID, fileID string) error { - return api.DeleteFileCommentContext(context.Background(), fileID, commentID) -} - -// DeleteFileCommentContext deletes a file's comment with a custom context -func (api *Client) DeleteFileCommentContext(ctx context.Context, fileID, commentID string) (err error) { - if fileID == "" || commentID == "" { - return ErrParametersMissing - } - - values := url.Values{ - "token": {api.token}, - "file": {fileID}, - "id": {commentID}, - } - _, err = api.fileRequest(ctx, "files.comments.delete", values) - return err -} - -// DeleteFile deletes a file -func (api *Client) DeleteFile(fileID string) error { - return api.DeleteFileContext(context.Background(), fileID) -} - -// DeleteFileContext deletes a file with a custom context -func (api *Client) DeleteFileContext(ctx context.Context, fileID string) (err error) { - values := url.Values{ - "token": {api.token}, - "file": {fileID}, - } - - _, err = api.fileRequest(ctx, "files.delete", values) - return err -} - -// RevokeFilePublicURL disables public/external sharing for a file -func (api *Client) RevokeFilePublicURL(fileID string) (*File, error) { - return api.RevokeFilePublicURLContext(context.Background(), fileID) -} - -// RevokeFilePublicURLContext disables public/external sharing for a file with a custom context -func (api *Client) RevokeFilePublicURLContext(ctx context.Context, fileID string) (*File, error) { - values := url.Values{ - "token": {api.token}, - "file": {fileID}, - } - - response, err := api.fileRequest(ctx, "files.revokePublicURL", values) - if err != nil { - return nil, err - } - return &response.File, nil -} - -// ShareFilePublicURL enabled public/external sharing for a file -func (api *Client) ShareFilePublicURL(fileID string) (*File, []Comment, *Paging, error) { - return api.ShareFilePublicURLContext(context.Background(), fileID) -} - -// ShareFilePublicURLContext enabled public/external sharing for a file with a custom context -func (api *Client) ShareFilePublicURLContext(ctx context.Context, fileID string) (*File, []Comment, *Paging, error) { - values := url.Values{ - "token": {api.token}, - "file": {fileID}, - } - - response, err := api.fileRequest(ctx, "files.sharedPublicURL", values) - if err != nil { - return nil, nil, nil, err - } - return &response.File, response.Comments, &response.Paging, nil -} diff --git a/vendor/github.com/slack-go/slack/go.mod b/vendor/github.com/slack-go/slack/go.mod deleted file mode 100644 index 32fc4b9..0000000 --- a/vendor/github.com/slack-go/slack/go.mod +++ /dev/null @@ -1,12 +0,0 @@ -module github.com/slack-go/slack - -require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/go-test/deep v1.0.4 - github.com/gorilla/websocket v1.4.2 - github.com/pkg/errors v0.8.0 - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/stretchr/testify v1.2.2 -) - -go 1.13 diff --git a/vendor/github.com/slack-go/slack/go.sum b/vendor/github.com/slack-go/slack/go.sum deleted file mode 100644 index d01bacb..0000000 --- a/vendor/github.com/slack-go/slack/go.sum +++ /dev/null @@ -1,12 +0,0 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-test/deep v1.0.4 h1:u2CU3YKy9I2pmu9pX0eq50wCgjfGIt539SqR7FbHiho= -github.com/go-test/deep v1.0.4/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= diff --git a/vendor/github.com/slack-go/slack/groups.go b/vendor/github.com/slack-go/slack/groups.go deleted file mode 100644 index 4c5793d..0000000 --- a/vendor/github.com/slack-go/slack/groups.go +++ /dev/null @@ -1,574 +0,0 @@ -package slack - -import ( - "context" - "net/url" - "strconv" -) - -// Group contains all the information for a group -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -type Group struct { - GroupConversation - IsGroup bool `json:"is_group"` -} - -type groupResponseFull struct { - Group Group `json:"group"` - Groups []Group `json:"groups"` - Purpose string `json:"purpose"` - Topic string `json:"topic"` - NotInGroup bool `json:"not_in_group"` - NoOp bool `json:"no_op"` - AlreadyClosed bool `json:"already_closed"` - AlreadyOpen bool `json:"already_open"` - AlreadyInGroup bool `json:"already_in_group"` - Channel Channel `json:"channel"` - History - SlackResponse -} - -func (api *Client) groupRequest(ctx context.Context, path string, values url.Values) (*groupResponseFull, error) { - response := &groupResponseFull{} - err := api.postMethod(ctx, path, values, response) - if err != nil { - return nil, err - } - - return response, response.Err() -} - -// ArchiveGroup archives a private group -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) ArchiveGroup(group string) error { - return api.ArchiveGroupContext(context.Background(), group) -} - -// ArchiveGroupContext archives a private group -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) ArchiveGroupContext(ctx context.Context, group string) error { - values := url.Values{ - "token": {api.token}, - "channel": {group}, - } - - _, err := api.groupRequest(ctx, "groups.archive", values) - return err -} - -// UnarchiveGroup unarchives a private group -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) UnarchiveGroup(group string) error { - return api.UnarchiveGroupContext(context.Background(), group) -} - -// UnarchiveGroupContext unarchives a private group -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) UnarchiveGroupContext(ctx context.Context, group string) error { - values := url.Values{ - "token": {api.token}, - "channel": {group}, - } - - _, err := api.groupRequest(ctx, "groups.unarchive", values) - return err -} - -// CreateGroup creates a private group -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) CreateGroup(group string) (*Group, error) { - return api.CreateGroupContext(context.Background(), group) -} - -// CreateGroupContext creates a private group -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) CreateGroupContext(ctx context.Context, group string) (*Group, error) { - values := url.Values{ - "token": {api.token}, - "name": {group}, - } - - response, err := api.groupRequest(ctx, "groups.create", values) - if err != nil { - return nil, err - } - return &response.Group, nil -} - -// CreateChildGroup creates a new private group archiving the old one -// This method takes an existing private group and performs the following steps: -// 1. Renames the existing group (from "example" to "example-archived"). -// 2. Archives the existing group. -// 3. Creates a new group with the name of the existing group. -// 4. Adds all members of the existing group to the new group. -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) CreateChildGroup(group string) (*Group, error) { - return api.CreateChildGroupContext(context.Background(), group) -} - -// CreateChildGroupContext creates a new private group archiving the old one with a custom context -// For more information see CreateChildGroup -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) CreateChildGroupContext(ctx context.Context, group string) (*Group, error) { - values := url.Values{ - "token": {api.token}, - "channel": {group}, - } - - response, err := api.groupRequest(ctx, "groups.createChild", values) - if err != nil { - return nil, err - } - return &response.Group, nil -} - -// GetGroupHistory fetches all the history for a private group -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetGroupHistory(group string, params HistoryParameters) (*History, error) { - return api.GetGroupHistoryContext(context.Background(), group, params) -} - -// GetGroupHistoryContext fetches all the history for a private group with a custom context -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetGroupHistoryContext(ctx context.Context, group string, params HistoryParameters) (*History, error) { - values := url.Values{ - "token": {api.token}, - "channel": {group}, - } - if params.Latest != DEFAULT_HISTORY_LATEST { - values.Add("latest", params.Latest) - } - if params.Oldest != DEFAULT_HISTORY_OLDEST { - values.Add("oldest", params.Oldest) - } - if params.Count != DEFAULT_HISTORY_COUNT { - values.Add("count", strconv.Itoa(params.Count)) - } - if params.Inclusive != DEFAULT_HISTORY_INCLUSIVE { - if params.Inclusive { - values.Add("inclusive", "1") - } else { - values.Add("inclusive", "0") - } - } - if params.Unreads != DEFAULT_HISTORY_UNREADS { - if params.Unreads { - values.Add("unreads", "1") - } else { - values.Add("unreads", "0") - } - } - - response, err := api.groupRequest(ctx, "groups.history", values) - if err != nil { - return nil, err - } - return &response.History, nil -} - -// InviteUserToGroup invites a specific user to a private group -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) InviteUserToGroup(group, user string) (*Group, bool, error) { - return api.InviteUserToGroupContext(context.Background(), group, user) -} - -// InviteUserToGroupContext invites a specific user to a private group with a custom context -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) InviteUserToGroupContext(ctx context.Context, group, user string) (*Group, bool, error) { - values := url.Values{ - "token": {api.token}, - "channel": {group}, - "user": {user}, - } - - response, err := api.groupRequest(ctx, "groups.invite", values) - if err != nil { - return nil, false, err - } - return &response.Group, response.AlreadyInGroup, nil -} - -// LeaveGroup makes authenticated user leave the group -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) LeaveGroup(group string) error { - return api.LeaveGroupContext(context.Background(), group) -} - -// LeaveGroupContext makes authenticated user leave the group with a custom context -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) LeaveGroupContext(ctx context.Context, group string) (err error) { - values := url.Values{ - "token": {api.token}, - "channel": {group}, - } - - _, err = api.groupRequest(ctx, "groups.leave", values) - return err -} - -// KickUserFromGroup kicks a user from a group -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) KickUserFromGroup(group, user string) error { - return api.KickUserFromGroupContext(context.Background(), group, user) -} - -// KickUserFromGroupContext kicks a user from a group with a custom context -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) KickUserFromGroupContext(ctx context.Context, group, user string) (err error) { - values := url.Values{ - "token": {api.token}, - "channel": {group}, - "user": {user}, - } - - _, err = api.groupRequest(ctx, "groups.kick", values) - return err -} - -// GetGroups retrieves all groups -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetGroups(excludeArchived bool) ([]Group, error) { - return api.GetGroupsContext(context.Background(), excludeArchived) -} - -// GetGroupsContext retrieves all groups with a custom context -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetGroupsContext(ctx context.Context, excludeArchived bool) ([]Group, error) { - values := url.Values{ - "token": {api.token}, - } - if excludeArchived { - values.Add("exclude_archived", "1") - } - - response, err := api.groupRequest(ctx, "groups.list", values) - if err != nil { - return nil, err - } - return response.Groups, nil -} - -// GetGroupInfo retrieves the given group -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetGroupInfo(group string) (*Group, error) { - return api.GetGroupInfoContext(context.Background(), group) -} - -// GetGroupInfoContext retrieves the given group with a custom context -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetGroupInfoContext(ctx context.Context, group string) (*Group, error) { - values := url.Values{ - "token": {api.token}, - "channel": {group}, - "include_locale": {strconv.FormatBool(true)}, - } - - response, err := api.groupRequest(ctx, "groups.info", values) - if err != nil { - return nil, err - } - return &response.Group, nil -} - -// SetGroupReadMark sets the read mark on a private group -// Clients should try to avoid making this call too often. When needing to mark a read position, a client should set a -// timer before making the call. In this way, any further updates needed during the timeout will not generate extra -// calls (just one per channel). This is useful for when reading scroll-back history, or following a busy live -// channel. A timeout of 5 seconds is a good starting point. Be sure to flush these calls on shutdown/logout. -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) SetGroupReadMark(group, ts string) error { - return api.SetGroupReadMarkContext(context.Background(), group, ts) -} - -// SetGroupReadMarkContext sets the read mark on a private group with a custom context -// For more details see SetGroupReadMark -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) SetGroupReadMarkContext(ctx context.Context, group, ts string) (err error) { - values := url.Values{ - "token": {api.token}, - "channel": {group}, - "ts": {ts}, - } - - _, err = api.groupRequest(ctx, "groups.mark", values) - return err -} - -// OpenGroup opens a private group -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) OpenGroup(group string) (bool, bool, error) { - return api.OpenGroupContext(context.Background(), group) -} - -// OpenGroupContext opens a private group with a custom context -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) OpenGroupContext(ctx context.Context, group string) (bool, bool, error) { - values := url.Values{ - "token": {api.token}, - "channel": {group}, - } - - response, err := api.groupRequest(ctx, "groups.open", values) - if err != nil { - return false, false, err - } - return response.NoOp, response.AlreadyOpen, nil -} - -// RenameGroup renames a group -// XXX: They return a channel, not a group. What is this crap? :( -// Inconsistent api it seems. -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) RenameGroup(group, name string) (*Channel, error) { - return api.RenameGroupContext(context.Background(), group, name) -} - -// RenameGroupContext renames a group with a custom context -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) RenameGroupContext(ctx context.Context, group, name string) (*Channel, error) { - values := url.Values{ - "token": {api.token}, - "channel": {group}, - "name": {name}, - } - - // XXX: the created entry in this call returns a string instead of a number - // so I may have to do some workaround to solve it. - response, err := api.groupRequest(ctx, "groups.rename", values) - if err != nil { - return nil, err - } - return &response.Channel, nil -} - -// SetGroupPurpose sets the group purpose -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) SetGroupPurpose(group, purpose string) (string, error) { - return api.SetGroupPurposeContext(context.Background(), group, purpose) -} - -// SetGroupPurposeContext sets the group purpose with a custom context -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) SetGroupPurposeContext(ctx context.Context, group, purpose string) (string, error) { - values := url.Values{ - "token": {api.token}, - "channel": {group}, - "purpose": {purpose}, - } - - response, err := api.groupRequest(ctx, "groups.setPurpose", values) - if err != nil { - return "", err - } - return response.Purpose, nil -} - -// SetGroupTopic sets the group topic -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) SetGroupTopic(group, topic string) (string, error) { - return api.SetGroupTopicContext(context.Background(), group, topic) -} - -// SetGroupTopicContext sets the group topic with a custom context -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) SetGroupTopicContext(ctx context.Context, group, topic string) (string, error) { - values := url.Values{ - "token": {api.token}, - "channel": {group}, - "topic": {topic}, - } - - response, err := api.groupRequest(ctx, "groups.setTopic", values) - if err != nil { - return "", err - } - return response.Topic, nil -} - -// GetGroupReplies gets an entire thread (a message plus all the messages in reply to it). -// see https://api.slack.com/methods/groups.replies -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetGroupReplies(channelID, thread_ts string) ([]Message, error) { - return api.GetGroupRepliesContext(context.Background(), channelID, thread_ts) -} - -// GetGroupRepliesContext gets an entire thread (a message plus all the messages in reply to it) with a custom context -// see https://api.slack.com/methods/groups.replies -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetGroupRepliesContext(ctx context.Context, channelID, thread_ts string) ([]Message, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channelID}, - "thread_ts": {thread_ts}, - } - response, err := api.groupRequest(ctx, "groups.replies", values) - if err != nil { - return nil, err - } - return response.History.Messages, nil -} diff --git a/vendor/github.com/slack-go/slack/history.go b/vendor/github.com/slack-go/slack/history.go deleted file mode 100644 index 49dfe35..0000000 --- a/vendor/github.com/slack-go/slack/history.go +++ /dev/null @@ -1,37 +0,0 @@ -package slack - -const ( - DEFAULT_HISTORY_LATEST = "" - DEFAULT_HISTORY_OLDEST = "0" - DEFAULT_HISTORY_COUNT = 100 - DEFAULT_HISTORY_INCLUSIVE = false - DEFAULT_HISTORY_UNREADS = false -) - -// HistoryParameters contains all the necessary information to help in the retrieval of history for Channels/Groups/DMs -type HistoryParameters struct { - Latest string - Oldest string - Count int - Inclusive bool - Unreads bool -} - -// History contains message history information needed to navigate a Channel / Group / DM history -type History struct { - Latest string `json:"latest"` - Messages []Message `json:"messages"` - HasMore bool `json:"has_more"` - Unread int `json:"unread_count_display"` -} - -// NewHistoryParameters provides an instance of HistoryParameters with all the sane default values set -func NewHistoryParameters() HistoryParameters { - return HistoryParameters{ - Latest: DEFAULT_HISTORY_LATEST, - Oldest: DEFAULT_HISTORY_OLDEST, - Count: DEFAULT_HISTORY_COUNT, - Inclusive: DEFAULT_HISTORY_INCLUSIVE, - Unreads: DEFAULT_HISTORY_UNREADS, - } -} diff --git a/vendor/github.com/slack-go/slack/im.go b/vendor/github.com/slack-go/slack/im.go deleted file mode 100644 index a884b29..0000000 --- a/vendor/github.com/slack-go/slack/im.go +++ /dev/null @@ -1,220 +0,0 @@ -package slack - -import ( - "context" - "net/url" - "strconv" -) - -type imChannel struct { - ID string `json:"id"` -} - -type imResponseFull struct { - NoOp bool `json:"no_op"` - AlreadyClosed bool `json:"already_closed"` - AlreadyOpen bool `json:"already_open"` - Channel imChannel `json:"channel"` - IMs []IM `json:"ims"` - History - SlackResponse -} - -// IM contains information related to the Direct Message channel -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -type IM struct { - Conversation - IsUserDeleted bool `json:"is_user_deleted"` -} - -func (api *Client) imRequest(ctx context.Context, path string, values url.Values) (*imResponseFull, error) { - response := &imResponseFull{} - err := api.postMethod(ctx, path, values, response) - if err != nil { - return nil, err - } - - return response, response.Err() -} - -// CloseIMChannel closes the direct message channel -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) CloseIMChannel(channel string) (bool, bool, error) { - return api.CloseIMChannelContext(context.Background(), channel) -} - -// CloseIMChannelContext closes the direct message channel with a custom context -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) CloseIMChannelContext(ctx context.Context, channel string) (bool, bool, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channel}, - } - - response, err := api.imRequest(ctx, "im.close", values) - if err != nil { - return false, false, err - } - return response.NoOp, response.AlreadyClosed, nil -} - -// OpenIMChannel opens a direct message channel to the user provided as argument -// Returns some status and the channel ID -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) OpenIMChannel(user string) (bool, bool, string, error) { - return api.OpenIMChannelContext(context.Background(), user) -} - -// OpenIMChannelContext opens a direct message channel to the user provided as argument with a custom context -// Returns some status and the channel ID -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) OpenIMChannelContext(ctx context.Context, user string) (bool, bool, string, error) { - values := url.Values{ - "token": {api.token}, - "user": {user}, - } - - response, err := api.imRequest(ctx, "im.open", values) - if err != nil { - return false, false, "", err - } - return response.NoOp, response.AlreadyOpen, response.Channel.ID, nil -} - -// MarkIMChannel sets the read mark of a direct message channel to a specific point -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) MarkIMChannel(channel, ts string) (err error) { - return api.MarkIMChannelContext(context.Background(), channel, ts) -} - -// MarkIMChannelContext sets the read mark of a direct message channel to a specific point with a custom context -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) MarkIMChannelContext(ctx context.Context, channel, ts string) error { - values := url.Values{ - "token": {api.token}, - "channel": {channel}, - "ts": {ts}, - } - - _, err := api.imRequest(ctx, "im.mark", values) - return err -} - -// GetIMHistory retrieves the direct message channel history -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetIMHistory(channel string, params HistoryParameters) (*History, error) { - return api.GetIMHistoryContext(context.Background(), channel, params) -} - -// GetIMHistoryContext retrieves the direct message channel history with a custom context -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetIMHistoryContext(ctx context.Context, channel string, params HistoryParameters) (*History, error) { - values := url.Values{ - "token": {api.token}, - "channel": {channel}, - } - if params.Latest != DEFAULT_HISTORY_LATEST { - values.Add("latest", params.Latest) - } - if params.Oldest != DEFAULT_HISTORY_OLDEST { - values.Add("oldest", params.Oldest) - } - if params.Count != DEFAULT_HISTORY_COUNT { - values.Add("count", strconv.Itoa(params.Count)) - } - if params.Inclusive != DEFAULT_HISTORY_INCLUSIVE { - if params.Inclusive { - values.Add("inclusive", "1") - } else { - values.Add("inclusive", "0") - } - } - if params.Unreads != DEFAULT_HISTORY_UNREADS { - if params.Unreads { - values.Add("unreads", "1") - } else { - values.Add("unreads", "0") - } - } - - response, err := api.imRequest(ctx, "im.history", values) - if err != nil { - return nil, err - } - return &response.History, nil -} - -// GetIMChannels returns the list of direct message channels -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetIMChannels() ([]IM, error) { - return api.GetIMChannelsContext(context.Background()) -} - -// GetIMChannelsContext returns the list of direct message channels with a custom context -// -// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version. -// In Slack, these API are no longer available for newly Apps created after June 10th, 2020. -// Also, existing applications will not be able to use these APIs after February 24th, 2021. -// -// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api -func (api *Client) GetIMChannelsContext(ctx context.Context) ([]IM, error) { - values := url.Values{ - "token": {api.token}, - } - - response, err := api.imRequest(ctx, "im.list", values) - if err != nil { - return nil, err - } - return response.IMs, nil -} diff --git a/vendor/github.com/slack-go/slack/info.go b/vendor/github.com/slack-go/slack/info.go deleted file mode 100644 index ec70624..0000000 --- a/vendor/github.com/slack-go/slack/info.go +++ /dev/null @@ -1,468 +0,0 @@ -package slack - -import ( - "bytes" - "context" - "fmt" - "net/url" - "strconv" - "strings" - "time" -) - -type UserPrefsCarrier struct { - SlackResponse - UserPrefs *UserPrefs `json:"prefs"` -} - -// UserPrefs carries a bunch of user settings including some unknown types -type UserPrefs struct { - UserColors string `json:"user_colors,omitempty"` - ColorNamesInList bool `json:"color_names_in_list,omitempty"` - // Keyboard UnknownType `json:"keyboard"` - EmailAlerts string `json:"email_alerts,omitempty"` - EmailAlertsSleepUntil int `json:"email_alerts_sleep_until,omitempty"` - EmailTips bool `json:"email_tips,omitempty"` - EmailWeekly bool `json:"email_weekly,omitempty"` - EmailOffers bool `json:"email_offers,omitempty"` - EmailResearch bool `json:"email_research,omitempty"` - EmailDeveloper bool `json:"email_developer,omitempty"` - WelcomeMessageHidden bool `json:"welcome_message_hidden,omitempty"` - SearchSort string `json:"search_sort,omitempty"` - SearchFileSort string `json:"search_file_sort,omitempty"` - SearchChannelSort string `json:"search_channel_sort,omitempty"` - SearchPeopleSort string `json:"search_people_sort,omitempty"` - ExpandInlineImages bool `json:"expand_inline_images,omitempty"` - ExpandInternalInlineImages bool `json:"expand_internal_inline_images,omitempty"` - ExpandSnippets bool `json:"expand_snippets,omitempty"` - PostsFormattingGuide bool `json:"posts_formatting_guide,omitempty"` - SeenWelcome2 bool `json:"seen_welcome_2,omitempty"` - SeenSSBPrompt bool `json:"seen_ssb_prompt,omitempty"` - SpacesNewXpBannerDismissed bool `json:"spaces_new_xp_banner_dismissed,omitempty"` - SearchOnlyMyChannels bool `json:"search_only_my_channels,omitempty"` - SearchOnlyCurrentTeam bool `json:"search_only_current_team,omitempty"` - SearchHideMyChannels bool `json:"search_hide_my_channels,omitempty"` - SearchOnlyShowOnline bool `json:"search_only_show_online,omitempty"` - SearchHideDeactivatedUsers bool `json:"search_hide_deactivated_users,omitempty"` - EmojiMode string `json:"emoji_mode,omitempty"` - EmojiUse string `json:"emoji_use,omitempty"` - HasInvited bool `json:"has_invited,omitempty"` - HasUploaded bool `json:"has_uploaded,omitempty"` - HasCreatedChannel bool `json:"has_created_channel,omitempty"` - HasSearched bool `json:"has_searched,omitempty"` - SearchExcludeChannels string `json:"search_exclude_channels,omitempty"` - MessagesTheme string `json:"messages_theme,omitempty"` - WebappSpellcheck bool `json:"webapp_spellcheck,omitempty"` - NoJoinedOverlays bool `json:"no_joined_overlays,omitempty"` - NoCreatedOverlays bool `json:"no_created_overlays,omitempty"` - DropboxEnabled bool `json:"dropbox_enabled,omitempty"` - SeenDomainInviteReminder bool `json:"seen_domain_invite_reminder,omitempty"` - SeenMemberInviteReminder bool `json:"seen_member_invite_reminder,omitempty"` - MuteSounds bool `json:"mute_sounds,omitempty"` - ArrowHistory bool `json:"arrow_history,omitempty"` - TabUIReturnSelects bool `json:"tab_ui_return_selects,omitempty"` - ObeyInlineImgLimit bool `json:"obey_inline_img_limit,omitempty"` - RequireAt bool `json:"require_at,omitempty"` - SsbSpaceWindow string `json:"ssb_space_window,omitempty"` - MacSsbBounce string `json:"mac_ssb_bounce,omitempty"` - MacSsbBullet bool `json:"mac_ssb_bullet,omitempty"` - ExpandNonMediaAttachments bool `json:"expand_non_media_attachments,omitempty"` - ShowTyping bool `json:"show_typing,omitempty"` - PagekeysHandled bool `json:"pagekeys_handled,omitempty"` - LastSnippetType string `json:"last_snippet_type,omitempty"` - DisplayRealNamesOverride int `json:"display_real_names_override,omitempty"` - DisplayDisplayNames bool `json:"display_display_names,omitempty"` - Time24 bool `json:"time24,omitempty"` - EnterIsSpecialInTbt bool `json:"enter_is_special_in_tbt,omitempty"` - MsgInputSendBtn bool `json:"msg_input_send_btn,omitempty"` - MsgInputSendBtnAutoSet bool `json:"msg_input_send_btn_auto_set,omitempty"` - MsgInputStickyComposer bool `json:"msg_input_sticky_composer,omitempty"` - GraphicEmoticons bool `json:"graphic_emoticons,omitempty"` - ConvertEmoticons bool `json:"convert_emoticons,omitempty"` - SsEmojis bool `json:"ss_emojis,omitempty"` - SeenOnboardingStart bool `json:"seen_onboarding_start,omitempty"` - OnboardingCancelled bool `json:"onboarding_cancelled,omitempty"` - SeenOnboardingSlackbotConversation bool `json:"seen_onboarding_slackbot_conversation,omitempty"` - SeenOnboardingChannels bool `json:"seen_onboarding_channels,omitempty"` - SeenOnboardingDirectMessages bool `json:"seen_onboarding_direct_messages,omitempty"` - SeenOnboardingInvites bool `json:"seen_onboarding_invites,omitempty"` - SeenOnboardingSearch bool `json:"seen_onboarding_search,omitempty"` - SeenOnboardingRecentMentions bool `json:"seen_onboarding_recent_mentions,omitempty"` - SeenOnboardingStarredItems bool `json:"seen_onboarding_starred_items,omitempty"` - SeenOnboardingPrivateGroups bool `json:"seen_onboarding_private_groups,omitempty"` - SeenOnboardingBanner bool `json:"seen_onboarding_banner,omitempty"` - OnboardingSlackbotConversationStep int `json:"onboarding_slackbot_conversation_step,omitempty"` - SetTzAutomatically bool `json:"set_tz_automatically,omitempty"` - SuppressLinkWarning bool `json:"suppress_link_warning,omitempty"` - DndEnabled bool `json:"dnd_enabled,omitempty"` - DndStartHour string `json:"dnd_start_hour,omitempty"` - DndEndHour string `json:"dnd_end_hour,omitempty"` - DndBeforeMonday string `json:"dnd_before_monday,omitempty"` - DndAfterMonday string `json:"dnd_after_monday,omitempty"` - DndEnabledMonday string `json:"dnd_enabled_monday,omitempty"` - DndBeforeTuesday string `json:"dnd_before_tuesday,omitempty"` - DndAfterTuesday string `json:"dnd_after_tuesday,omitempty"` - DndEnabledTuesday string `json:"dnd_enabled_tuesday,omitempty"` - DndBeforeWednesday string `json:"dnd_before_wednesday,omitempty"` - DndAfterWednesday string `json:"dnd_after_wednesday,omitempty"` - DndEnabledWednesday string `json:"dnd_enabled_wednesday,omitempty"` - DndBeforeThursday string `json:"dnd_before_thursday,omitempty"` - DndAfterThursday string `json:"dnd_after_thursday,omitempty"` - DndEnabledThursday string `json:"dnd_enabled_thursday,omitempty"` - DndBeforeFriday string `json:"dnd_before_friday,omitempty"` - DndAfterFriday string `json:"dnd_after_friday,omitempty"` - DndEnabledFriday string `json:"dnd_enabled_friday,omitempty"` - DndBeforeSaturday string `json:"dnd_before_saturday,omitempty"` - DndAfterSaturday string `json:"dnd_after_saturday,omitempty"` - DndEnabledSaturday string `json:"dnd_enabled_saturday,omitempty"` - DndBeforeSunday string `json:"dnd_before_sunday,omitempty"` - DndAfterSunday string `json:"dnd_after_sunday,omitempty"` - DndEnabledSunday string `json:"dnd_enabled_sunday,omitempty"` - DndDays string `json:"dnd_days,omitempty"` - DndCustomNewBadgeSeen bool `json:"dnd_custom_new_badge_seen,omitempty"` - DndNotificationScheduleNewBadgeSeen bool `json:"dnd_notification_schedule_new_badge_seen,omitempty"` - // UnreadCollapsedChannels unknownType `json:"unread_collapsed_channels,omitempty"` - SidebarBehavior string `json:"sidebar_behavior,omitempty"` - ChannelSort string `json:"channel_sort,omitempty"` - SeparatePrivateChannels bool `json:"separate_private_channels,omitempty"` - SeparateSharedChannels bool `json:"separate_shared_channels,omitempty"` - SidebarTheme string `json:"sidebar_theme,omitempty"` - SidebarThemeCustomValues string `json:"sidebar_theme_custom_values,omitempty"` - NoInvitesWidgetInSidebar bool `json:"no_invites_widget_in_sidebar,omitempty"` - NoOmniboxInChannels bool `json:"no_omnibox_in_channels,omitempty"` - - KKeyOmniboxAutoHideCount int `json:"k_key_omnibox_auto_hide_count,omitempty"` - ShowSidebarQuickswitcherButton bool `json:"show_sidebar_quickswitcher_button,omitempty"` - EntOrgWideChannelsSidebar bool `json:"ent_org_wide_channels_sidebar,omitempty"` - MarkMsgsReadImmediately bool `json:"mark_msgs_read_immediately,omitempty"` - StartScrollAtOldest bool `json:"start_scroll_at_oldest,omitempty"` - SnippetEditorWrapLongLines bool `json:"snippet_editor_wrap_long_lines,omitempty"` - LsDisabled bool `json:"ls_disabled,omitempty"` - FKeySearch bool `json:"f_key_search,omitempty"` - KKeyOmnibox bool `json:"k_key_omnibox,omitempty"` - PromptedForEmailDisabling bool `json:"prompted_for_email_disabling,omitempty"` - NoMacelectronBanner bool `json:"no_macelectron_banner,omitempty"` - NoMacssb1Banner bool `json:"no_macssb1_banner,omitempty"` - NoMacssb2Banner bool `json:"no_macssb2_banner,omitempty"` - NoWinssb1Banner bool `json:"no_winssb1_banner,omitempty"` - HideUserGroupInfoPane bool `json:"hide_user_group_info_pane,omitempty"` - MentionsExcludeAtUserGroups bool `json:"mentions_exclude_at_user_groups,omitempty"` - MentionsExcludeReactions bool `json:"mentions_exclude_reactions,omitempty"` - PrivacyPolicySeen bool `json:"privacy_policy_seen,omitempty"` - EnterpriseMigrationSeen bool `json:"enterprise_migration_seen,omitempty"` - LastTosAcknowledged string `json:"last_tos_acknowledged,omitempty"` - SearchExcludeBots bool `json:"search_exclude_bots,omitempty"` - LoadLato2 bool `json:"load_lato_2,omitempty"` - FullerTimestamps bool `json:"fuller_timestamps,omitempty"` - LastSeenAtChannelWarning int `json:"last_seen_at_channel_warning,omitempty"` - EmojiAutocompleteBig bool `json:"emoji_autocomplete_big,omitempty"` - TwoFactorAuthEnabled bool `json:"two_factor_auth_enabled,omitempty"` - // TwoFactorType unknownType `json:"two_factor_type,omitempty"` - // TwoFactorBackupType unknownType `json:"two_factor_backup_type,omitempty"` - HideHexSwatch bool `json:"hide_hex_swatch,omitempty"` - ShowJumperScores bool `json:"show_jumper_scores,omitempty"` - EnterpriseMdmCustomMsg string `json:"enterprise_mdm_custom_msg,omitempty"` - // EnterpriseExcludedAppTeams unknownType `json:"enterprise_excluded_app_teams,omitempty"` - ClientLogsPri string `json:"client_logs_pri,omitempty"` - FlannelServerPool string `json:"flannel_server_pool,omitempty"` - MentionsExcludeAtChannels bool `json:"mentions_exclude_at_channels,omitempty"` - ConfirmClearAllUnreads bool `json:"confirm_clear_all_unreads,omitempty"` - ConfirmUserMarkedAway bool `json:"confirm_user_marked_away,omitempty"` - BoxEnabled bool `json:"box_enabled,omitempty"` - SeenSingleEmojiMsg bool `json:"seen_single_emoji_msg,omitempty"` - ConfirmShCallStart bool `json:"confirm_sh_call_start,omitempty"` - PreferredSkinTone string `json:"preferred_skin_tone,omitempty"` - ShowAllSkinTones bool `json:"show_all_skin_tones,omitempty"` - WhatsNewRead int `json:"whats_new_read,omitempty"` - // FrecencyJumper unknownType `json:"frecency_jumper,omitempty"` - FrecencyEntJumper string `json:"frecency_ent_jumper,omitempty"` - FrecencyEntJumperBackup string `json:"frecency_ent_jumper_backup,omitempty"` - Jumbomoji bool `json:"jumbomoji,omitempty"` - NewxpSeenLastMessage int `json:"newxp_seen_last_message,omitempty"` - ShowMemoryInstrument bool `json:"show_memory_instrument,omitempty"` - EnableUnreadView bool `json:"enable_unread_view,omitempty"` - SeenUnreadViewCoachmark bool `json:"seen_unread_view_coachmark,omitempty"` - EnableReactEmojiPicker bool `json:"enable_react_emoji_picker,omitempty"` - SeenCustomStatusBadge bool `json:"seen_custom_status_badge,omitempty"` - SeenCustomStatusCallout bool `json:"seen_custom_status_callout,omitempty"` - SeenCustomStatusExpirationBadge bool `json:"seen_custom_status_expiration_badge,omitempty"` - UsedCustomStatusKbShortcut bool `json:"used_custom_status_kb_shortcut,omitempty"` - SeenGuestAdminSlackbotAnnouncement bool `json:"seen_guest_admin_slackbot_announcement,omitempty"` - SeenThreadsNotificationBanner bool `json:"seen_threads_notification_banner,omitempty"` - SeenNameTaggingCoachmark bool `json:"seen_name_tagging_coachmark,omitempty"` - AllUnreadsSortOrder string `json:"all_unreads_sort_order,omitempty"` - Locale string `json:"locale,omitempty"` - SeenIntlChannelNamesCoachmark bool `json:"seen_intl_channel_names_coachmark,omitempty"` - SeenP2LocaleChangeMessage int `json:"seen_p2_locale_change_message,omitempty"` - SeenLocaleChangeMessage int `json:"seen_locale_change_message,omitempty"` - SeenJapaneseLocaleChangeMessage bool `json:"seen_japanese_locale_change_message,omitempty"` - SeenSharedChannelsCoachmark bool `json:"seen_shared_channels_coachmark,omitempty"` - SeenSharedChannelsOptInChangeMessage bool `json:"seen_shared_channels_opt_in_change_message,omitempty"` - HasRecentlySharedaChannel bool `json:"has_recently_shared_a_channel,omitempty"` - SeenChannelBrowserAdminCoachmark bool `json:"seen_channel_browser_admin_coachmark,omitempty"` - SeenAdministrationMenu bool `json:"seen_administration_menu,omitempty"` - SeenDraftsSectionCoachmark bool `json:"seen_drafts_section_coachmark,omitempty"` - SeenEmojiUpdateOverlayCoachmark bool `json:"seen_emoji_update_overlay_coachmark,omitempty"` - SeenSonicDeluxeToast int `json:"seen_sonic_deluxe_toast,omitempty"` - SeenWysiwygDeluxeToast bool `json:"seen_wysiwyg_deluxe_toast,omitempty"` - SeenMarkdownPasteToast int `json:"seen_markdown_paste_toast,omitempty"` - SeenMarkdownPasteShortcut int `json:"seen_markdown_paste_shortcut,omitempty"` - SeenIaEducation bool `json:"seen_ia_education,omitempty"` - PlainTextMode bool `json:"plain_text_mode,omitempty"` - ShowSharedChannelsEducationBanner bool `json:"show_shared_channels_education_banner,omitempty"` - AllowCallsToSetCurrentStatus bool `json:"allow_calls_to_set_current_status,omitempty"` - InInteractiveMasMigrationFlow bool `json:"in_interactive_mas_migration_flow,omitempty"` - SunsetInteractiveMessageViews int `json:"sunset_interactive_message_views,omitempty"` - ShdepPromoCodeSubmitted bool `json:"shdep_promo_code_submitted,omitempty"` - SeenShdepSlackbotMessage bool `json:"seen_shdep_slackbot_message,omitempty"` - SeenCallsInteractiveCoachmark bool `json:"seen_calls_interactive_coachmark,omitempty"` - AllowCmdTabIss bool `json:"allow_cmd_tab_iss,omitempty"` - SeenWorkflowBuilderDeluxeToast bool `json:"seen_workflow_builder_deluxe_toast,omitempty"` - WorkflowBuilderIntroModalClickedThrough bool `json:"workflow_builder_intro_modal_clicked_through,omitempty"` - // WorkflowBuilderCoachmarks unknownType `json:"workflow_builder_coachmarks,omitempty"` - SeenGdriveCoachmark bool `json:"seen_gdrive_coachmark,omitempty"` - OverloadedMessageEnabled bool `json:"overloaded_message_enabled,omitempty"` - SeenHighlightsCoachmark bool `json:"seen_highlights_coachmark,omitempty"` - SeenHighlightsArrowsCoachmark bool `json:"seen_highlights_arrows_coachmark,omitempty"` - SeenHighlightsWarmWelcome bool `json:"seen_highlights_warm_welcome,omitempty"` - SeenNewSearchUi bool `json:"seen_new_search_ui,omitempty"` - SeenChannelSearch bool `json:"seen_channel_search,omitempty"` - SeenPeopleSearch bool `json:"seen_people_search,omitempty"` - SeenPeopleSearchCount int `json:"seen_people_search_count,omitempty"` - DismissedScrollSearchTooltipCount int `json:"dismissed_scroll_search_tooltip_count,omitempty"` - LastDismissedScrollSearchTooltipTimestamp int `json:"last_dismissed_scroll_search_tooltip_timestamp,omitempty"` - HasUsedQuickswitcherShortcut bool `json:"has_used_quickswitcher_shortcut,omitempty"` - SeenQuickswitcherShortcutTipCount int `json:"seen_quickswitcher_shortcut_tip_count,omitempty"` - BrowsersDismissedChannelsLowResultsEducation bool `json:"browsers_dismissed_channels_low_results_education,omitempty"` - BrowsersSeenInitialChannelsEducation bool `json:"browsers_seen_initial_channels_education,omitempty"` - BrowsersDismissedPeopleLowResultsEducation bool `json:"browsers_dismissed_people_low_results_education,omitempty"` - BrowsersSeenInitialPeopleEducation bool `json:"browsers_seen_initial_people_education,omitempty"` - BrowsersDismissedUserGroupsLowResultsEducation bool `json:"browsers_dismissed_user_groups_low_results_education,omitempty"` - BrowsersSeenInitialUserGroupsEducation bool `json:"browsers_seen_initial_user_groups_education,omitempty"` - BrowsersDismissedFilesLowResultsEducation bool `json:"browsers_dismissed_files_low_results_education,omitempty"` - BrowsersSeenInitialFilesEducation bool `json:"browsers_seen_initial_files_education,omitempty"` - A11yAnimations bool `json:"a11y_animations,omitempty"` - SeenKeyboardShortcutsCoachmark bool `json:"seen_keyboard_shortcuts_coachmark,omitempty"` - NeedsInitialPasswordSet bool `json:"needs_initial_password_set,omitempty"` - LessonsEnabled bool `json:"lessons_enabled,omitempty"` - TractorEnabled bool `json:"tractor_enabled,omitempty"` - TractorExperimentGroup string `json:"tractor_experiment_group,omitempty"` - OpenedSlackbotDm bool `json:"opened_slackbot_dm,omitempty"` - NewxpSuggestedChannels string `json:"newxp_suggested_channels,omitempty"` - OnboardingComplete bool `json:"onboarding_complete,omitempty"` - WelcomePlaceState string `json:"welcome_place_state,omitempty"` - // OnboardingRoleApps unknownType `json:"onboarding_role_apps,omitempty"` - HasReceivedThreadedMessage bool `json:"has_received_threaded_message,omitempty"` - SendYourFirstMessageBannerEnabled bool `json:"send_your_first_message_banner_enabled,omitempty"` - WhocanseethisDmMpdmBadge bool `json:"whocanseethis_dm_mpdm_badge,omitempty"` - HighlightWords string `json:"highlight_words,omitempty"` - ThreadsEverything bool `json:"threads_everything,omitempty"` - NoTextInNotifications bool `json:"no_text_in_notifications,omitempty"` - PushShowPreview bool `json:"push_show_preview,omitempty"` - GrowlsEnabled bool `json:"growls_enabled,omitempty"` - AllChannelsLoud bool `json:"all_channels_loud,omitempty"` - PushDmAlert bool `json:"push_dm_alert,omitempty"` - PushMentionAlert bool `json:"push_mention_alert,omitempty"` - PushEverything bool `json:"push_everything,omitempty"` - PushIdleWait int `json:"push_idle_wait,omitempty"` - PushSound string `json:"push_sound,omitempty"` - NewMsgSnd string `json:"new_msg_snd,omitempty"` - PushLoudChannels string `json:"push_loud_channels,omitempty"` - PushMentionChannels string `json:"push_mention_channels,omitempty"` - PushLoudChannelsSet string `json:"push_loud_channels_set,omitempty"` - LoudChannels string `json:"loud_channels,omitempty"` - NeverChannels string `json:"never_channels,omitempty"` - LoudChannelsSet string `json:"loud_channels_set,omitempty"` - AtChannelSuppressedChannels string `json:"at_channel_suppressed_channels,omitempty"` - PushAtChannelSuppressedChannels string `json:"push_at_channel_suppressed_channels,omitempty"` - MutedChannels string `json:"muted_channels,omitempty"` - // AllNotificationsPrefs unknownType `json:"all_notifications_prefs,omitempty"` - GrowthMsgLimitApproachingCtaCount int `json:"growth_msg_limit_approaching_cta_count,omitempty"` - GrowthMsgLimitApproachingCtaTs int `json:"growth_msg_limit_approaching_cta_ts,omitempty"` - GrowthMsgLimitReachedCtaCount int `json:"growth_msg_limit_reached_cta_count,omitempty"` - GrowthMsgLimitReachedCtaLastTs int `json:"growth_msg_limit_reached_cta_last_ts,omitempty"` - GrowthMsgLimitLongReachedCtaCount int `json:"growth_msg_limit_long_reached_cta_count,omitempty"` - GrowthMsgLimitLongReachedCtaLastTs int `json:"growth_msg_limit_long_reached_cta_last_ts,omitempty"` - GrowthMsgLimitSixtyDayBannerCtaCount int `json:"growth_msg_limit_sixty_day_banner_cta_count,omitempty"` - GrowthMsgLimitSixtyDayBannerCtaLastTs int `json:"growth_msg_limit_sixty_day_banner_cta_last_ts,omitempty"` - // GrowthAllBannersPrefs unknownType `json:"growth_all_banners_prefs,omitempty"` - AnalyticsUpsellCoachmarkSeen bool `json:"analytics_upsell_coachmark_seen,omitempty"` - SeenAppSpaceCoachmark bool `json:"seen_app_space_coachmark,omitempty"` - SeenAppSpaceTutorial bool `json:"seen_app_space_tutorial,omitempty"` - DismissedAppLauncherWelcome bool `json:"dismissed_app_launcher_welcome,omitempty"` - DismissedAppLauncherLimit bool `json:"dismissed_app_launcher_limit,omitempty"` - Purchaser bool `json:"purchaser,omitempty"` - ShowEntOnboarding bool `json:"show_ent_onboarding,omitempty"` - FoldersEnabled bool `json:"folders_enabled,omitempty"` - // FolderData unknownType `json:"folder_data,omitempty"` - SeenCorporateExportAlert bool `json:"seen_corporate_export_alert,omitempty"` - ShowAutocompleteHelp int `json:"show_autocomplete_help,omitempty"` - DeprecationToastLastSeen int `json:"deprecation_toast_last_seen,omitempty"` - DeprecationModalLastSeen int `json:"deprecation_modal_last_seen,omitempty"` - Iap1Lab int `json:"iap1_lab,omitempty"` - IaTopNavTheme string `json:"ia_top_nav_theme,omitempty"` - IaPlatformActionsLab int `json:"ia_platform_actions_lab,omitempty"` - ActivityView string `json:"activity_view,omitempty"` - FailoverProxyCheckCompleted int `json:"failover_proxy_check_completed,omitempty"` - EdgeUploadProxyCheckCompleted int `json:"edge_upload_proxy_check_completed,omitempty"` - AppSubdomainCheckCompleted int `json:"app_subdomain_check_completed,omitempty"` - AddAppsPromptDismissed bool `json:"add_apps_prompt_dismissed,omitempty"` - AddChannelPromptDismissed bool `json:"add_channel_prompt_dismissed,omitempty"` - ChannelSidebarHideInvite bool `json:"channel_sidebar_hide_invite,omitempty"` - InProdSurveysEnabled bool `json:"in_prod_surveys_enabled,omitempty"` - DismissedInstalledAppDmSuggestions string `json:"dismissed_installed_app_dm_suggestions,omitempty"` - SeenContextualMessageShortcutsModal bool `json:"seen_contextual_message_shortcuts_modal,omitempty"` - SeenMessageNavigationEducationalToast bool `json:"seen_message_navigation_educational_toast,omitempty"` - ContextualMessageShortcutsModalWasSeen bool `json:"contextual_message_shortcuts_modal_was_seen,omitempty"` - MessageNavigationToastWasSeen bool `json:"message_navigation_toast_was_seen,omitempty"` - UpToBrowseKbShortcut bool `json:"up_to_browse_kb_shortcut,omitempty"` - ChannelSections string `json:"channel_sections,omitempty"` - TZ string `json:"tz,omitempty"` -} - -func (api *Client) GetUserPrefs() (*UserPrefsCarrier, error) { - values := url.Values{"token": {api.token}} - response := UserPrefsCarrier{} - - err := api.getMethod(context.Background(), "users.prefs.get", values, &response) - if err != nil { - return nil, err - } - - return &response, response.Err() -} - -func (api *Client) MuteChat(channelID string) (*UserPrefsCarrier, error) { - prefs, err := api.GetUserPrefs() - if err != nil { - return nil, err - } - chnls := strings.Split(prefs.UserPrefs.MutedChannels, ",") - for _, chn := range chnls { - if chn == channelID { - return nil, nil // noop - } - } - newChnls := prefs.UserPrefs.MutedChannels + "," + channelID - values := url.Values{"token": {api.token}, "muted_channels": {newChnls}, "reason": {"update-muted-channels"}} - response := UserPrefsCarrier{} - - err = api.postMethod(context.Background(), "users.prefs.set", values, &response) - if err != nil { - return nil, err - } - - return &response, response.Err() -} - -func (api *Client) UnMuteChat(channelID string) (*UserPrefsCarrier, error) { - prefs, err := api.GetUserPrefs() - if err != nil { - return nil, err - } - chnls := strings.Split(prefs.UserPrefs.MutedChannels, ",") - newChnls := make([]string, len(chnls)-1) - for i, chn := range chnls { - if chn == channelID { - return nil, nil // noop - } - newChnls[i] = chn - } - values := url.Values{"token": {api.token}, "muted_channels": {strings.Join(newChnls, ",")}, "reason": {"update-muted-channels"}} - response := UserPrefsCarrier{} - - err = api.postMethod(context.Background(), "users.prefs.set", values, &response) - if err != nil { - return nil, err - } - - return &response, response.Err() -} - -// UserDetails contains user details coming in the initial response from StartRTM -type UserDetails struct { - ID string `json:"id"` - Name string `json:"name"` - Created JSONTime `json:"created"` - ManualPresence string `json:"manual_presence"` - Prefs UserPrefs `json:"prefs"` -} - -// JSONTime exists so that we can have a String method converting the date -type JSONTime int64 - -// String converts the unix timestamp into a string -func (t JSONTime) String() string { - tm := t.Time() - return fmt.Sprintf("\"%s\"", tm.Format("Mon Jan _2")) -} - -// Time returns a `time.Time` representation of this value. -func (t JSONTime) Time() time.Time { - return time.Unix(int64(t), 0) -} - -// UnmarshalJSON will unmarshal both string and int JSON values -func (t *JSONTime) UnmarshalJSON(buf []byte) error { - s := bytes.Trim(buf, `"`) - - v, err := strconv.Atoi(string(s)) - if err != nil { - return err - } - - *t = JSONTime(int64(v)) - return nil -} - -// Team contains details about a team -type Team struct { - ID string `json:"id"` - Name string `json:"name"` - Domain string `json:"domain"` -} - -// Icons XXX: needs further investigation -type Icons struct { - Image36 string `json:"image_36,omitempty"` - Image48 string `json:"image_48,omitempty"` - Image72 string `json:"image_72,omitempty"` -} - -// Info contains various details about the authenticated user and team. -// It is returned by StartRTM or included in the "ConnectedEvent" RTM event. -type Info struct { - URL string `json:"url,omitempty"` - User *UserDetails `json:"self,omitempty"` - Team *Team `json:"team,omitempty"` -} - -type infoResponseFull struct { - Info - SlackResponse -} - -// GetBotByID is deprecated and returns nil -func (info Info) GetBotByID(botID string) *Bot { - return nil -} - -// GetUserByID is deprecated and returns nil -func (info Info) GetUserByID(userID string) *User { - return nil -} - -// GetChannelByID is deprecated and returns nil -func (info Info) GetChannelByID(channelID string) *Channel { - return nil -} - -// GetGroupByID is deprecated and returns nil -func (info Info) GetGroupByID(groupID string) *Group { - return nil -} - -// GetIMByID is deprecated and returns nil -func (info Info) GetIMByID(imID string) *IM { - return nil -} diff --git a/vendor/github.com/slack-go/slack/interactions.go b/vendor/github.com/slack-go/slack/interactions.go deleted file mode 100644 index 2515e29..0000000 --- a/vendor/github.com/slack-go/slack/interactions.go +++ /dev/null @@ -1,221 +0,0 @@ -package slack - -import ( - "bytes" - "encoding/json" -) - -// InteractionType type of interactions -type InteractionType string - -// ActionType type represents the type of action (attachment, block, etc.) -type actionType string - -// action is an interface that should be implemented by all callback action types -type action interface { - actionType() actionType -} - -// Types of interactions that can be received. -const ( - InteractionTypeDialogCancellation = InteractionType("dialog_cancellation") - InteractionTypeDialogSubmission = InteractionType("dialog_submission") - InteractionTypeDialogSuggestion = InteractionType("dialog_suggestion") - InteractionTypeInteractionMessage = InteractionType("interactive_message") - InteractionTypeMessageAction = InteractionType("message_action") - InteractionTypeBlockActions = InteractionType("block_actions") - InteractionTypeBlockSuggestion = InteractionType("block_suggestion") - InteractionTypeViewSubmission = InteractionType("view_submission") - InteractionTypeViewClosed = InteractionType("view_closed") - InteractionTypeShortcut = InteractionType("shortcut") -) - -// InteractionCallback is sent from slack when a user interactions with a button or dialog. -type InteractionCallback struct { - Type InteractionType `json:"type"` - Token string `json:"token"` - CallbackID string `json:"callback_id"` - ResponseURL string `json:"response_url"` - TriggerID string `json:"trigger_id"` - ActionTs string `json:"action_ts"` - Team Team `json:"team"` - Channel Channel `json:"channel"` - User User `json:"user"` - OriginalMessage Message `json:"original_message"` - Message Message `json:"message"` - Name string `json:"name"` - Value string `json:"value"` - MessageTs string `json:"message_ts"` - AttachmentID string `json:"attachment_id"` - ActionCallback ActionCallbacks `json:"actions"` - View View `json:"view"` - ActionID string `json:"action_id"` - APIAppID string `json:"api_app_id"` - BlockID string `json:"block_id"` - Container Container `json:"container"` - DialogSubmissionCallback - ViewSubmissionCallback - ViewClosedCallback - - // FIXME(kanata2): just workaround for backward-compatibility. - // See also https://github.com/slack-go/slack/issues/816 - RawState json.RawMessage `json:"state,omitempty"` - - // BlockActionState stands for the `state` field in block_actions type. - // NOTE: InteractionCallback.State has a role for the state of dialog_submission type, - // so we cannot use this field for backward-compatibility for now. - BlockActionState *BlockActionStates `json:"-"` -} - -type BlockActionStates struct { - Values map[string]map[string]BlockAction `json:"values"` -} - -func (ic *InteractionCallback) MarshalJSON() ([]byte, error) { - type alias InteractionCallback - tmp := alias(*ic) - if tmp.Type == InteractionTypeBlockActions { - if tmp.BlockActionState == nil { - tmp.RawState = []byte(`{}`) - } else { - state, err := json.Marshal(tmp.BlockActionState.Values) - if err != nil { - return nil, err - } - tmp.RawState = []byte(`{"values":` + string(state) + `}`) - } - } else if ic.Type == InteractionTypeDialogSubmission { - tmp.RawState = []byte(tmp.State) - } - // Use pointer for go1.7 - return json.Marshal(&tmp) -} - -func (ic *InteractionCallback) UnmarshalJSON(b []byte) error { - type alias InteractionCallback - tmp := struct { - Type InteractionType `json:"type"` - *alias - }{ - alias: (*alias)(ic), - } - if err := json.Unmarshal(b, &tmp); err != nil { - return err - } - *ic = InteractionCallback(*tmp.alias) - ic.Type = tmp.Type - if ic.Type == InteractionTypeBlockActions { - if len(ic.RawState) > 0 { - err := json.Unmarshal(ic.RawState, &ic.BlockActionState) - if err != nil { - return err - } - } - } else if ic.Type == InteractionTypeDialogSubmission { - ic.State = string(ic.RawState) - } - return nil -} - -type Container struct { - Type string `json:"type"` - ViewID string `json:"view_id"` - MessageTs string `json:"message_ts"` - AttachmentID json.Number `json:"attachment_id"` - ChannelID string `json:"channel_id"` - IsEphemeral bool `json:"is_ephemeral"` - IsAppUnfurl bool `json:"is_app_unfurl"` -} - -// ActionCallback is a convenience struct defined to allow dynamic unmarshalling of -// the "actions" value in Slack's JSON response, which varies depending on block type -type ActionCallbacks struct { - AttachmentActions []*AttachmentAction - BlockActions []*BlockAction -} - -// MarshalJSON implements the Marshaller interface in order to combine both -// action callback types back into a single array, like how the api responds. -// This makes Marshaling and Unmarshaling an InteractionCallback symmetrical -func (a ActionCallbacks) MarshalJSON() ([]byte, error) { - count := 0 - length := len(a.AttachmentActions) + len(a.BlockActions) - buffer := bytes.NewBufferString("[") - - f := func(obj interface{}) error { - js, err := json.Marshal(obj) - if err != nil { - return err - } - _, err = buffer.Write(js) - if err != nil { - return err - } - - count++ - if count < length { - _, err = buffer.WriteString(",") - return err - } - return nil - } - - for _, act := range a.AttachmentActions { - err := f(act) - if err != nil { - return nil, err - } - } - for _, blk := range a.BlockActions { - err := f(blk) - if err != nil { - return nil, err - } - } - buffer.WriteString("]") - return buffer.Bytes(), nil -} - -// UnmarshalJSON implements the Marshaller interface in order to delegate -// marshalling and allow for proper type assertion when decoding the response -func (a *ActionCallbacks) UnmarshalJSON(data []byte) error { - var raw []json.RawMessage - err := json.Unmarshal(data, &raw) - if err != nil { - return err - } - - for _, r := range raw { - var obj map[string]interface{} - err := json.Unmarshal(r, &obj) - if err != nil { - return err - } - - if _, ok := obj["block_id"].(string); ok { - action, err := unmarshalAction(r, &BlockAction{}) - if err != nil { - return err - } - - a.BlockActions = append(a.BlockActions, action.(*BlockAction)) - continue - } - - action, err := unmarshalAction(r, &AttachmentAction{}) - if err != nil { - return err - } - a.AttachmentActions = append(a.AttachmentActions, action.(*AttachmentAction)) - } - - return nil -} - -func unmarshalAction(r json.RawMessage, callbackAction action) (action, error) { - err := json.Unmarshal(r, callbackAction) - if err != nil { - return nil, err - } - return callbackAction, nil -} diff --git a/vendor/github.com/slack-go/slack/internal/backoff/backoff.go b/vendor/github.com/slack-go/slack/internal/backoff/backoff.go deleted file mode 100644 index df210f8..0000000 --- a/vendor/github.com/slack-go/slack/internal/backoff/backoff.go +++ /dev/null @@ -1,62 +0,0 @@ -package backoff - -import ( - "math/rand" - "time" -) - -// This one was ripped from https://github.com/jpillora/backoff/blob/master/backoff.go - -// Backoff is a time.Duration counter. It starts at Min. After every -// call to Duration() it is multiplied by Factor. It is capped at -// Max. It returns to Min on every call to Reset(). Used in -// conjunction with the time package. -type Backoff struct { - attempts int - // Initial value to scale out - Initial time.Duration - // Jitter value randomizes an additional delay between 0 and Jitter - Jitter time.Duration - // Max maximum values of the backoff - Max time.Duration -} - -// Returns the current value of the counter and then multiplies it -// Factor -func (b *Backoff) Duration() (dur time.Duration) { - // Zero-values are nonsensical, so we use - // them to apply defaults - if b.Max == 0 { - b.Max = 10 * time.Second - } - - if b.Initial == 0 { - b.Initial = 100 * time.Millisecond - } - - // calculate this duration - if dur = time.Duration(1 << uint(b.attempts)); dur > 0 { - dur = dur * b.Initial - } else { - dur = b.Max - } - - if b.Jitter > 0 { - dur = dur + time.Duration(rand.Intn(int(b.Jitter))) - } - - // bump attempts count - b.attempts++ - - return dur -} - -//Resets the current value of the counter back to Min -func (b *Backoff) Reset() { - b.attempts = 0 -} - -// Attempts returns the number of attempts that we had done so far -func (b *Backoff) Attempts() int { - return b.attempts -} diff --git a/vendor/github.com/slack-go/slack/internal/errorsx/errorsx.go b/vendor/github.com/slack-go/slack/internal/errorsx/errorsx.go deleted file mode 100644 index 0182ec6..0000000 --- a/vendor/github.com/slack-go/slack/internal/errorsx/errorsx.go +++ /dev/null @@ -1,17 +0,0 @@ -package errorsx - -// String representing an error, useful for declaring string constants as errors. -type String string - -func (t String) Error() string { - return string(t) -} - -// Is reports whether String matches with the target error -func (t String) Is(target error) bool { - if target == nil { - return false - } - - return t.Error() == target.Error() -} diff --git a/vendor/github.com/slack-go/slack/internal/misc/misc.go b/vendor/github.com/slack-go/slack/internal/misc/misc.go deleted file mode 100644 index eab8cdd..0000000 --- a/vendor/github.com/slack-go/slack/internal/misc/misc.go +++ /dev/null @@ -1,28 +0,0 @@ -package misc - -import ( - "fmt" - "net/http" -) - -// StatusCodeError represents an http response error. -// type httpStatusCode interface { HTTPStatusCode() int } to handle it. -type StatusCodeError struct { - Code int - Status string -} - -func (t StatusCodeError) Error() string { - return fmt.Sprintf("slack server error: %s", t.Status) -} - -func (t StatusCodeError) HTTPStatusCode() int { - return t.Code -} - -func (t StatusCodeError) Retryable() bool { - if t.Code >= 500 || t.Code == http.StatusTooManyRequests { - return true - } - return false -} diff --git a/vendor/github.com/slack-go/slack/internal/timex/timex.go b/vendor/github.com/slack-go/slack/internal/timex/timex.go deleted file mode 100644 index 40063f7..0000000 --- a/vendor/github.com/slack-go/slack/internal/timex/timex.go +++ /dev/null @@ -1,18 +0,0 @@ -package timex - -import "time" - -// Max returns the maximum duration -func Max(values ...time.Duration) time.Duration { - var ( - max time.Duration - ) - - for _, v := range values { - if v > max { - max = v - } - } - - return max -} diff --git a/vendor/github.com/slack-go/slack/item.go b/vendor/github.com/slack-go/slack/item.go deleted file mode 100644 index 89af4eb..0000000 --- a/vendor/github.com/slack-go/slack/item.go +++ /dev/null @@ -1,75 +0,0 @@ -package slack - -const ( - TYPE_MESSAGE = "message" - TYPE_FILE = "file" - TYPE_FILE_COMMENT = "file_comment" - TYPE_CHANNEL = "channel" - TYPE_IM = "im" - TYPE_GROUP = "group" -) - -// Item is any type of slack message - message, file, or file comment. -type Item struct { - Type string `json:"type"` - Channel string `json:"channel,omitempty"` - Message *Message `json:"message,omitempty"` - File *File `json:"file,omitempty"` - Comment *Comment `json:"comment,omitempty"` - Timestamp string `json:"ts,omitempty"` -} - -// NewMessageItem turns a message on a channel into a typed message struct. -func NewMessageItem(ch string, m *Message) Item { - return Item{Type: TYPE_MESSAGE, Channel: ch, Message: m} -} - -// NewFileItem turns a file into a typed file struct. -func NewFileItem(f *File) Item { - return Item{Type: TYPE_FILE, File: f} -} - -// NewFileCommentItem turns a file and comment into a typed file_comment struct. -func NewFileCommentItem(f *File, c *Comment) Item { - return Item{Type: TYPE_FILE_COMMENT, File: f, Comment: c} -} - -// NewChannelItem turns a channel id into a typed channel struct. -func NewChannelItem(ch string) Item { - return Item{Type: TYPE_CHANNEL, Channel: ch} -} - -// NewIMItem turns a channel id into a typed im struct. -func NewIMItem(ch string) Item { - return Item{Type: TYPE_IM, Channel: ch} -} - -// NewGroupItem turns a channel id into a typed group struct. -func NewGroupItem(ch string) Item { - return Item{Type: TYPE_GROUP, Channel: ch} -} - -// ItemRef is a reference to a message of any type. One of FileID, -// CommentId, or the combination of ChannelId and Timestamp must be -// specified. -type ItemRef struct { - Channel string `json:"channel"` - Timestamp string `json:"timestamp"` - File string `json:"file"` - Comment string `json:"file_comment"` -} - -// NewRefToMessage initializes a reference to to a message. -func NewRefToMessage(channel, timestamp string) ItemRef { - return ItemRef{Channel: channel, Timestamp: timestamp} -} - -// NewRefToFile initializes a reference to a file. -func NewRefToFile(file string) ItemRef { - return ItemRef{File: file} -} - -// NewRefToComment initializes a reference to a file comment. -func NewRefToComment(comment string) ItemRef { - return ItemRef{Comment: comment} -} diff --git a/vendor/github.com/slack-go/slack/logger.go b/vendor/github.com/slack-go/slack/logger.go deleted file mode 100644 index 90cb3ca..0000000 --- a/vendor/github.com/slack-go/slack/logger.go +++ /dev/null @@ -1,60 +0,0 @@ -package slack - -import ( - "fmt" -) - -// logger is a logger interface compatible with both stdlib and some -// 3rd party loggers. -type logger interface { - Output(int, string) error -} - -// ilogger represents the internal logging api we use. -type ilogger interface { - logger - Print(...interface{}) - Printf(string, ...interface{}) - Println(...interface{}) -} - -type Debug interface { - Debug() bool - - // Debugf print a formatted debug line. - Debugf(format string, v ...interface{}) - // Debugln print a debug line. - Debugln(v ...interface{}) -} - -// internalLog implements the additional methods used by our internal logging. -type internalLog struct { - logger -} - -// Println replicates the behaviour of the standard logger. -func (t internalLog) Println(v ...interface{}) { - t.Output(2, fmt.Sprintln(v...)) -} - -// Printf replicates the behaviour of the standard logger. -func (t internalLog) Printf(format string, v ...interface{}) { - t.Output(2, fmt.Sprintf(format, v...)) -} - -// Print replicates the behaviour of the standard logger. -func (t internalLog) Print(v ...interface{}) { - t.Output(2, fmt.Sprint(v...)) -} - -type discard struct{} - -func (t discard) Debug() bool { - return false -} - -// Debugf print a formatted debug line. -func (t discard) Debugf(format string, v ...interface{}) {} - -// Debugln print a debug line. -func (t discard) Debugln(v ...interface{}) {} diff --git a/vendor/github.com/slack-go/slack/logo.png b/vendor/github.com/slack-go/slack/logo.png deleted file mode 100644 index 9bd143459bfe55bb6e01e721623c51a367be7190..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52440 zcma%i1yEewwr1n*8l1-6-8Hy2t_?KqPH=a3cWYb&gx~~12yVfGBtY=s8ixPB_uYHn z%&VEH>Z(3_?QeZc_FB76opW}qhT2;UR1#DG0Dz&WAgcucz`S0`dYytox z9`8Wm8YL8gbLzoXAJ=Ot`-*BWswO@Ilg!he1xAGb{8zVJlSG< zF)4pr!L4Nw*z*CDnP%bYlNK_F4zF+h(*Gi|XZG@t9ZxNbr(N6q)A636b0uIOYf=2= z_;LQ5Z*bp>TT?M*6RDAD@YNH=otUUg!qda*w%7F8$@Rli&+6sFQI&OH-_|CPJLPRh z<7M^L{+UO=DP?g}{&i1ElLY&Z;_qSp8-8NJW=&`aFTJNbN79eaHKEzTer4BOpT zMGiu*=OuH-zu6M8h^g8$2)Nfm27BR3E zH@&~UX7Fd&=KH+uhaE+j_bmSS)61s*a`!sVtm(sEpV>j9Ntee$@5%Smr+1*EwK436 zN5t*R%V#m()2H8`e1l7QU-C`9-P}JsI$1vM7mgiaLN0ouQi`M|Z>`pDo@#qppCRH^ z-O~d4&5!bz5~jg{gNMH*7>wvkgbr^6;yc4aU9v=e_TAvECGKB8T}n^eUJ3;djU>X| zo7Mybogbn7yuVzIoNC;^?s*B=7`=@g8Y6$YX@>{IP`ER885Wp1!|8dcRMkh2HBtjrC=78l#aZ;A7ExO%p>;>d8@J%Vki3 zcXmI97lEmIzrOcIujb1`SaH$vrCAe_KDa&j4JV=jS^Uig!PDccuh^eI?;f0gYi5kW z<3MdX`dRr-?*<}2=>7@%C~=l$ynZ|V!AB4}IU2Z+RMGi4a_T)tZ`4v(XnenMjmYNR zc_H`2yQ1;T{z5-af}=;gj~|1#w12H(ufySjBggQ9gfCBTjwYU%6$hbja==j+tQOfp z)_*)MYVa+9Kj6P+*-|(8kG_BO?=4O?l-AS=+%!H#mX4rTD;0=c%!JhU5{AY9+0G1R z4;ZHRoL&>0H>p;B_HDTF&`C5+4oBuI?B(dE%LvMX73&`v)lzT6~+{QN=fVX ziMv6W`XioS6dF@Ccyaqq#uvMBqnb4@P6X3rbF&zW;O2PVh;JsFY=Fst)7d7vQ{pqXv0m9Zl-;~VQbae(h7bd2R!%`yX+y(B~6G5nG{rh zdtXQI3zwcQu!duN2JT1iUcP?+>VtSOD*H)*G})|vDfr_J8))R2-tZ5kZ9BfXAN}GI zt+vhiKfqFBJ}YU+6?UL3{W4=?PD=&JSutk2 z1$qpoW8en5gYV5TZ&iXiNFUET%vO%GX`f5)rzx-gun?IC%|Gee2j&h`Urd?xzg+kD zB|cszx(wbu7NV42e-Z5exY;IA%zmK?E^a#%dVFJo#A-O%B=zkqYivKtdUCx9!qQU2 z)jo0d5Xrhby`g3vM4gD(PtUx-lR75%-q>gCR$9ZKGcF!BXF@L|?J)&@$>=gN7W;?3+ZirrQ z$>_xLd_B&_O%?|h^#`}mK)Y{~D_H;}R5-a2n_nLWHr`CMfbG&DW+XOAAxQZs(LWAJ-D* zCQ_UM6;l)_srN6#lcJ3LA<#xH}xyQcl`<06CP@8|iOcc$nER~PC zZ^zSlp!-IT_30q~WSWQ&#j0XN8$L@BH9a3HZ5lNfkAuuq4<(x6ygD14(vBrX9dB_? zKhM|t4s4(6al66LD!Jpwg*BK%X>r3xQy&i46uA`TKttZ@HNP%$20WgRXJ03Ehse5b ze(E2u^I-%Hws>qrd$D*Y&Yk2|X7AvxcR7k(vDdYU2e^#(Df56ANW3HK-KZVuFev32 z*pDaPWfNxS=hzy4Eci7>tb;eh_Fb_0xVB%XXr|r|DpIQ($UlNg9?pV`utfbdonB?R z#kZRmnOTf&lGVX>s^Kl%>u#Rtk;4g7xC)p2CM*4!ZIhj+K-}7uhQD|XMISQ@&~4K< z4Z^it!f5fF)Ly*HIi58nvuzH?H|@swLOMn-X7gPX@+BO}PHajBo|$JeB4sWkux$>W zXxfu_OxPR?CfqtSr@V~IJTBDEw6>MCb(gRD%#JQ%swM#LzIt%mt?$!RHF{J(12Ui` zuX!<1k2acOH&%C;_gJVl>i3T>?4cK7$`lQ~F+6JdL6C$X7hxd-P;>#43v z?h7}6Yyo>C?jfV=`X-{-$p#1E(cD^~YHxX6aL0N{Y2#-?s%slUTI2T6o4|r7-^04c zRur?bo6a_&no@GL$kTI;5{V^#y@3|Yw7Ff*Clq`oyP^&l3ek));qmvbGn#Ds2v63- zg>ywM_`X`-EE6&6sj{K&Qh>ux(#kF@+h2oVjqCAQU_!1juTJqrrlzcnEYJq>mE#&A zF(@8@u(vUM=xn;iI2Xl_`Zixje052+efMl|G%9uVwg-OzTg=7Twu>a$eb;hcxHLM0 zV1n-ik?}6A7FcgE#Rz!M23FmRkXggjBos6oU0@#D;MzzuuVB6u4tzJXbX;iP<(6gn zl*|fGFQ93~y#Il1z9W`w@!ByirDTC_GmeWz9oGCS>eg>X30E{EWCr8b?H`ZmDzl^D z(2dYYRST;V2uVQ4;7oGim&90(?K(--Y%74^hO^rc=@77n#TE4Uc(zx(d3SQ_29Vq; zs7d2b@(>Lbuns68Oi$0puw`(B5tYoJNwqb{n(A<4+-r=61~!CmM9Z(h9pVN!vy9^& z3mgg)i&qdR*W)(9rR0`g2<+WhSO5I%#as&KUZI+B!l%Obn6psGj&IBV~zYRsp#<0wS?~=WkOK+e)J17d57-h@cSo4uFB>FAK z&K}*Cptn_6GC}(EsvsjgVN@3~9QI=2Q;eXEzzn*Saq|GKwH{10iW$rs{hs;3q6D`c zTm4}598N(o*yc!bk-gutDzF0F#Bmaw3A-r`E!+EEjiF%N#&~9 zx;POXac5OgrZ;Qta2}{@KX->t?JOP02{R87dAkrVyKq5{0%e6n*7efOVG8F&?_<8X z7KF#^uSho5f3xc4;X=r<25=gQE84Nq!==REY$8jeg^y0Qpk;CJXzIiqILjX?l_fB# zJ0i+ON)?K#jmnCqZ@`#W>}qzhyn|E;m^11QtBQe;%$3)ESdtRYuga&WWuH$?+Uq2+ z?`Gc#`f9|;iz&|iWTv#HGyZ5bDOWalerIU4S8AL%26vc3OS1&KgqtKECa1H77X*hC zMambZ%7IZmmHS18xYGvO^2dta{J?#{kC+(ny}4-Sgz$EUzOgtei*AZ3civkkuW18= z@NI!|yt?}bJk=vulz|kK!FSwHT;P#@8`V34obL2dRI%;tG?|+3KNTj)CYa&-P(1i7 z1^b3X1 z6;VTMUN-5-JW<;tO!D`}B6oc>f9saGgk)KJnVhXo<{=ls*JP-kv!4Voa0@<+wq{Z-ZN2-PtMsS6Zn1=9u#o*)` z{j$(I9eQL@H95RhN5J0QhKxz|#b)5X@)i*C1w0BNN)TF>Bbzn1Kp%xa3C~W5qwm~q ztsV~aDZ&9b#qD|APag2Peu5pt8j6&xU|02qd6H!6jorzaAzQ$2_OY68Gg>EfsO6M> z8v+iaglVmMsggZC3n93Si-@VyixSK@G+)|AA~j8TW*^kFeuI~7BcACRZJB_AiHP83 zOVC@bOy3n1F~epQ6G4IwYoW9iAIFp^8Fj&|1?P(vGsYADPIAe}%8n>GtctcvIyCDW z1T&>_+KwQ=O}d>@0qMuE#TFSwVyY;RYiGDr@R%LJf*HMpDmw7zS|XD^Uu_5RRuQI$P~l{t}5Yd}lDB(^cqhy_%&dE)U=bK{1_x;hnl}H0sSi%2 z{F39axG8GfeCT*X$eSv|y~Ci#jj{++vs>APo?&E6$>f5J_emjnjtIn%uiq9n*%2y{>V3Gr-KVPy&os!;C z+$wIhS;RF@y-HbB%29emEM!?Au-SE_SfJj-do*vy69@~7=t$JH|A~Q*Qw@%~qliES zlMImLlyl73BJXR)1%=}q-9dmR(XhdK51WCpRRoVmFNannDH4!iJ@PU|D4pnFzmK`1{lw}r>*eU* z4Bpf^-#+=;cCJy688luT`<_S^bCM*?ho5=WanD;A7*j)Jrs8ME5pzIcz+`~0f({J( z4a0Y*Z^hg^5viZx9!E@le-JaJwz;67cn)e6%T7~?`fYy@{8FXorN zKAW%e=y^xt79yA(BD0iAI{4LG5SXce($~@4-U-CTIRoQI0^kXNRz|t<+DUocqAa^* ztQ3T=w<;XGh3=Xqj2RwrecZ_i&LIrcsCYa{p5M?LI%&HUG*PX)1i2)wl5bU{6KXz( zd^7)m_B7kKG+5>neu82OJt>)hUB=-PU6ucZA%~$q54>tfdDpn4sKPOXtJ#Zf2aR6l zELI_21&q?gPG7cCL5KlXu@|vfa48`?j_^IvH5QY)OGR7>pWi3lFcA2LQf)1T(%Q;p zWiaMpxWhcB#}2jerM9(10}_vL@I#lr#5yj*4pf>OM%y+yQf3L|_$IVkTyX~9aXi6a z$`}uz-1+zc1t?(_C?NO`-&0#yH1#t};1uQg_!K{NfiuD1(m1zHX`4s-ngbVbYPfzI zNYY}{m1b1NdeBthJT#NAlJ+29*O7Bm{%(%c+Ak+&$Utb&XolkROy1u`{iY(Inb0y= zW<~;>NIiw551_%k80;CwAVttu5IxWOe~RPIAP8+v|1fznAu&m&VgV7Rc0XzR(K!71 z5xoaJ+5ET9ytPe?2BNP^q(!UofG#!fIYBHEqZiE_ec7j(s5fDo^0k2yB|-H<@?WmP ze%;|wvzHd|AR@#w!cC&Wqc2Q=`CH~H$=JEy3Z>MdYNd{gCTOL}IY)Yr8TOE(A%!Em zl9!d3_i`kVbi-)woPDFplbQRY;- zot?gP9ue-T$wO!Ngfj-+XjvP0w`3?0^0kt_vD;FWfe@F1vIJ6pIdDX_XeK&o-v>36 z=uu}cYoMS;{1nalV2z~77x;emV}t7i;q zGQS&vogZz|png|o@fM4(SjHt%x*l9ne)&*U8{lLYKkq5zV^N>@@^oZ@k9*BE)? zMR3xZB=x0^&eV{azG;})90naC_oggopCuZltbJHAkd?CrQ!gya(dGsqgk!3Jo@14E zu*1$!%BpV&sc|EJ!l@l^L&tc}WP(yWA_->2fJoVLC+TI7DZfp}ycxxCp-4jsDgX@B zLKB&WiyGzKlMk*t7^Psma3^kU2lO;VaTcp@lrs2g&v6w-RdGCN$+i-u;argUY7hkJ zi@s{XkA8umSt@@nvE!|bUECcSkPj7O+5li9&Q{hOyMtD`a!_DF1}S$mvJ`nh3}_eP zhZ7WW!u?}%-d2HB2RUUoUfmL4z0ZdbWip)m=%_&mo;4ulcYRD&O{@JhoE;WlS>;wG zd@)-qfSUek5gdp;7(>k((?9q^TV=K>^X?@zdc>NQ-seT?pVp)kqEiLo|kI;}B> zmmg7Qad}<9+vHft_Cy4JU?b>o8#^>qf3OR?uPwsKFz2 z=OsYgqQlpA8rO8EL&zkjFNzWkh9g4JW7JTUB<^CxROz&><$FGFLR%z2s4rv`AJU_+<{MA1|=AKZ$du@9c>fHWEaBy7(t@Z*ULo5{gpT2 z;E}u(+c?7C24`Oj8RZ$T)0aj}Y)%RZt+7Sc>de@#``TJyPHc=oEzY@>$iKr~bEA)e z%_Ym;n&#a~X6%IxldKhVZmn1v3ydz`@jVbzPCiQC=PjYQlkxR%lpz84g# z=;f{d2CbH@I!#QASNV6HE))}D3Wi-N&;`tmY2o^2ZUJ(*luP`V*8LCz5SYe#7AqKB z_RemvK#~WvtX@_ropXq-2qMAtD$AoYtrtxJ1lC4=fbdA%cu65v2upN=f~?9}AS*0~ zZ%l6Qe@d}@-meVAE2<=R5RVsLYoCkjV|*ZyLvH&RuqFhSMv=y<`j1Z zhTGTP@1^s;adUZEpY*$MP!W6WO3~_Z@8N03c`^_}!$9Xe2uQ{Q&0B912y$n95bvqW z#+}2Ernuu2nMtHr8+$%3MyW-=F9n-}d_QQ7n;1>kVxM*~s(GxAv=cs{Fvlu0Z)?Up zD~K%N(jpQwBu|;OH3?itd^eXX1&m;`_rjL}vRe>PC&;pSVdmtq2QCx1xid=u>|K@c zo|b#zxYv`w0?Hox&pjnr1L#-DbubuGBD_k@zM2o=@njgCkTf5G(RfJo=v3I{hzx9YNkik!m>u7 zS(}86`1FQ;mFoNsH6$%N^! z=$e^&lTm`Z_Y+K2R)I7HmS5Zaii&fmfm=EORMghollV#viBoJZj&djn1zAK1TJGEH zj>Lh&vfQ1u3@4Ay-aUC{n zz<#AZDU6~|_lYb#c0)*U=~awUN$DuD)tEsXKCK~FC;%;x6A>R*?htqt&zSoKis`+X z^N1{S91$BsrLroSDkF?+Nxk5iE`m1EgOd#EY&bQE)a8$r94#%F^Bduf$4Uio^qhtsjJCY%yGo)z*o_0R0hE1`9nugf9e$6ZiE&WogK=jBx#vZj{Xf4#ww;^A74l`A8%pd;%Es2-)wO zL*yo^#WXXLkFr=Af97&$Oe+nLxnyxNY?B7KBPtZ}u(_zoB20!!=&E-@f%Xx&iEpg5 zDf+0@BeI+KHDw=kJO<|Q0=vbj1!_Fe>4Bt1RZ59M)vles3T2a;81$Mm+~gB9Y->5T z71cBRNQ>o;0OnXgas z*w|$=_O_|ZRS^(Wft^)UiM_GqvU>U*H&!X>xo@l`arIJ=bOKsQ#A>UUF;tZ(7Bjq0 zL;=&&pQdK~N#QL<-Xc(RagGQy#l)$J59#F_>UDfc+E(6Ug4mQOVdGb}#t=3qq>p_~ z2{Uw%slmaoHKTy%2+iWgg09&=dEs0&hRtS9%GCccX4!-LhSWPc&`#czxM3oE<|xiP z6CiW{=w7D_z>7iJmUxr8R?p0;sT7=z2VHM3JO*iGWn7H4xETe&B^UWwxYlF1EtjM0 zBl6W{nN?g%qolR1ry1sG=!Oz$c;kl2Egf;$8HbVE8Je8yvL}_XW~VAk;Dq(4H$0N#G}SreZs%d^j`hPs-3h^B zT|{kZucsKwYfc>q_C}I|T{K<;#)99_LcifY>r@31!2oy~0Ew>uY_4g|OBj?o%dO4eTf zfHev+t~Z4`Zrblz!w#vlCv~O+GAwnRwSFd7#f&4dNb^u=Ye$>cSgccVaBMXiPT3xH zeHyIDV$g=&9&A02r$K3PCmY`vbsMj+AC&~uL2Vn9jXeFBZoh%{gk?~aM?)qO&PA{q zWWDtB96e{P9I+Eyk#m|IevY)>$dDa<8JjSE`;FJyS2)w@IP?r^B{on)WwfF-NuLRO zG-7B@s*k*ijrk^1ICN-Z!4U6R!(DSU-;a;7>gLzr>q}ALMd|5-cJ&YK9$eVEa9_;% zoDUhH&6~9X8Kh85yp)ZfjPcFS@L^dY9$choq8)?gn3BxJ?P~dw(E88_-=9W?%{5V+ zFwNmOpHKMY0!SMx3%UsmStCfx&& z4ihaGHChlmgF&S#V`$-OhAZ~sB*p*&VPYNFeT*w1K%3SNXrQzQrY{9r);7OEz6=cs z1IYixw&+od?alvefTz0{_qIHfa8WdhsFXVQS(H6dQ$?7u&_h6g{g9H!Wpc%|H?)Sd zH||*flBRZnE@{iNxe#Te!`Asz2A$%Ks!8qf+j!A1JE)wMy&)njH7~-{9Js{DxLnHZ z5w|~^sYH;NfI0*c#)4p$>fyVi9mHRj9PCuI&=}`jg8qfYnQO5SGPT8dNJd6`P}@i* zh9%iD$waQ5u^YBMTnQU8kXa$z?3@{zEKX+&DAS*HUFC67I({t25EU#}!Uy3tSdpuv zVk(SNnP*Ps`aIY#$sewe4i;E?Hi|&zbQ|Y%29DEH^4fPPv0q{MDjPnt^9^qKb)_C3bXaKTFavRxein98 zR@FOG*jmcz3A&gQDEx{$yqz)`Bxvu)Q|nKI!w%6_JITGu-69_r(zgS^1CEp6n0fKf z=sL!czPrYp28T?%D^t?dFZcBM89}iM9pzkjAL7+rGvSqG@ELmyiRO$#)3m5N#s`5X zDpIRELzCqT*K!xo3^K~vBh_)8B0-F355)#6jw|IL7t6#lUR9$E zZ+U_8Ws;AdueOYq)P~>iTh-u}{h-j$D)o!eHF|%cg4`cYvt#we-Z0+XDU)DOX#u`2 z0MJQGVYk1Lsu;b!^J|2gHtVL!avOCE=LSQmaNEhs=nL+s#McDmYAUTDGsOH-T9FJ1OhO|i0vh|;e$@94ra3#qbv!l}vpAK|mK zIFy|jMiDZ9Ir5r?>Osq{t5n*_)y&1GHq@~0$dipisL?TM6a&9#Sf@aofzJqFebSNs943d*pKb2t+xs#`azU~x`Z8a(6VPq>mZ-79%Iv9ba zT$;xTe9kEjV;>kAQCQYV^Hv2NbzivNSq$jLn6HKjHx^w>NzfD&amc$2MZOxjtb$J* z#k)X0W56!ZU97A(u9XJdGNrbrBtFjS{Ml`;q0KNdtp5 z^bI56Q5qTdZRbT4o%|vyN4LC=l&;nUW37EyNiQyrUI@beD%2U)SA}|sX1_!gv!2eE zhN7K~6LPCTwz%gS?Av^k*5eJAmx@BWcKt zt{F+eq}>8qT0-2kf`OWB(vu*JFbG9?B6h#U3Zd5r6r2z{{pS3*-=(xAku!4Fl?i)i zZj6LrkEbxWb>5mAdN)hU>_e5@!un_Js}fW^{3n}U6WSIYzA@{iviZ$6zAjc%@%4{P%3=R8n>YLGQug^+eZ7xjOLG8|jGknR*J1{uFlley55 zff(QQK)Z9)RC;T`$jtxqmN#QJof0wy?=*O4Q=huUHVTzZe)Fxr zp~*K`yMJrQUkY2~XY@=Z&g^LYMx#cqz|Q$BT`8_C&b;~}c^&PpRrRy_VhiM?HxYV@ z;uzuvnS97mTP+!muNm?xeTWm&dAylvEM$o27^~9qI^W&<0pV<4es~V1+_rk zZ1N@!Oqy$ zJg#^(lgy$rUix-Qj6d3rC}C1-mXSC@w(zV3eS)8mw-!T3p~ujS7e7$K65B}fPtM{a zuFf8zqHX#PK!HTmfh;I}WYJ`~bON?7+>~KmfM<~6;H{)_=)lUMyxw=KtV#05nxK@j zW4<^6<~IgJ{Vq;zW2G|Odrmyus}VDZ?KdUNT76N%cZ}9Oquj8l6yJ#o#F=fWpnaej z*DhMOA}UKz1jZ%O5X$JpBaUvf1#zF==rqm;z*0H0(AIX2G)QbzlOk6KUZuk2NfN>l zKn>Lc#i<#$NJAvkswiryh9vBD3Z>XpPrSdO>~x^)L-}PtLMh@k`LHZy#XseTjeN|4 zV!qciH)2ro+zgZWjv{56nR!_wcdJ{8$K@dQQ>}A=pj9U2ZSx5FdxUlMz3NQBXkC1X znyTYDZ+Cf@h^`F0dKxK;d1$jsp#^uF_86UuOC}kQFv0au)xvFJ#m{>mq{*QT?jWVf zx`&0{9uq2u4Z+Mk^wf8J=QRfG8_&@V{M1|J?8hWE5>RAsX!pS~*P7ulQ5DI@+CYJ8 z=^ECz{wHFV>@XodAq_@W%wxN761q6%bbGbQayx+w3vzxf-RL+6N*G&0}M(^oQwU0@JvCvLBVK~>ej zT>3wZH5Tmkylb@Rd-Kb~4eM70Xs=3S(fI9k=C`&9!l^M%YdSw$6rx%$BDKM%!K)N{ z`#HlX@^eT8Pas^e+hg6-57Ea&942zbWA&Vi7;*N`BFuD)ro01v^=y}O1KnCJ4wvJz ziHAS>^F4oKQT`ALtb-0a*@sg6SQvtoJj!Ke;*@AlZ)=*p9~U<+Hn2Mk_tSDdT*kspsm*b{OmAkgNIk0& z;f4FN2I)4))$6d@`lQPCd6pwLC)z&pE2oqhc|a*|EsSJX;ppzSnPVy2IU6~GOQ5(4 zEAh!v7Pq5;j{Sk!=`0yG5i$R&45WLQFQHxvEDV>6dvYap^GT zplk;mFX()3uSg3|_Ri4|@0T-kxW#5RT@Wvy6|TlPkia2Bu(UDoq@0ASN;3NC?gK$W zD*b7J5=ocmrPVS$8SR!V6Waiaa-K^`B z;OvvIF(ypv^yG6}P>M>>!0!HG^Ru>YfDWd4O_T(Fp*^ir?Lx|fe%5REPZ|lv6PbP* zU0%^~OG_*)rk)XLOhzJ(2KmE2X4(2k1dr8AZkZX_i75!LkGk}9zoIj!e@%@j_l|Ot z8$sBmP*{Ln^JE-pEGXPaJA99usZbf@KZ|a92Blp?lB>Qd^}cGqhflkfJb^BRHAZQ#4X7|k~0(dr?xnf$e|4Q2vyuu)uu>Ie4{J6x*qp^P5t1?(@g z?$AjmP3BkU(?Nr~o}8VPhB{AFn`L^zMqSBohc+8}aLnY+Ny$%%nA>Wy;pMR@+iA^z z#x!#gBN0|^s-AgiNjGfY1W04g2R@X}BSyU|YKD42>e8IanWlf@cnB8&wuvNv@syd zCajUE0lZf*OmH@|ZjhmDv7PJO>b*mwN|RLHN9Ox^W68RAMkpN-Ek;qDaZ^@drPh27 zIt%cFQXPYLUNGM~FlsQhZO+FlVGEI+8U!jsS0oO?O2awZhgFOnmRIta(=R~W-M_Fc zt;gvzhik`2Yj%mLK_xS)NH8jk1l6$jLlh=7oUy;Dx|SLcV5q1g4?oTQIgen4lA3Se ziuILNATj^w@Oj$bST@qEE!3-EdBOfQ`L^cE%G=w+lFOMy6atGls#B`xf;TWFq!-F-wooOZy}}hBiW82el&3~MU6K~I`M|&WN4p!I5WP|} zkz~aG)@UHItS^9Fp-NU$S|l1@-%Dpdw&usCU3of3F09^McMx)V$)}?dOQVJFWfvlg zBnL4u`~xvb#q|0(myP4T>Rr^F0(InHZNo?qyq2Orke}j>v#gp3YkFlU!V*s}#Bx)y(R~{qcnA!XX`8gmHtak6J7Y5j1s5 zdJMVi+U_GsHVwN6d_{6!)y&th+?i*#y3ouYdJ&I3G z9W=uXGlll*%*^YzXXrg@S9j@B!7oXWaQ0O~c;1T>ycN~QT^`mu$=TnE!k9Gv)qlo- zCIdMxTydRs=_EnaW{sp?*+UNWuBd#ZGMSdEF_Nt{l*-rP1|L1yfAyxrpGAFW%^87_ zh`YGeIl12CjWyC?70Gm0uVm4wUQi244tKtYHx8_CTD*acV9ld*o@B~l{p~^A7&Br~ zExEbjtP6otnpa2NHn%o;ov$+wvb zCpGHHpWt@I}uN97JJUmwiF=e7@pvkT>HsYDudA_>u+m#8feUO(?EgEQc)zbTF#C^OH2yG7`(sEO)I zG9q9LBOY%SHK_T4yp4z~RpXy|GN=g)167|DF+XF(qlXdl`X${CToJwo4JRvk%Az`r zpqZ4y17y|+j>1XgKPjwW&+ka=FtU(<98u)P4;g=2E3s9=SZbeCz1#AlO1tSODEllX z*v;ozh@d~yTZWWUjQZ}_)<{?Aqgo9U6=icFoxQKGo0%6UPB*7>7W!x8n@wT1fFNHx ze%r{`_Z5iB9ckO0-62hLBZ%U59Cl+E8(Q=5Z2%)en~a=e(b-1mTq-qUp?+9-EdV9G zN$sB2Q4CvdQ)ET%Cp6(lOt#D|^vKpsg?nYA{l3a^5O)LPo#7BtDn9b3#lbaaPBCN5 z#K1=p06Ae;a}FqYvYgCS`r2ZS5Xv^or8bVbP@#2`#A+{CJ2$pmkI9TKUzEC^@Cv zi#dD@Wsx*Of{MXKt7+kI54xM>b+*0}JEWUAWDbd?8fj?}y6!=xcg?f*)XMTkFTA-w zR8e1EX;EMNKKGfG*~Sw?n^q}$dDce|6VsbTna>dlUNPlK#KRS% z5IL$YyyIv{66ZV5L;ltE1k4P*qedqfmMQ8QXE3KpNr(M6o|wJZGG<3{u_XVD@?MxY z;apR|)Vj6p4rQmjE8_1ee#!;x^!M}I4lS`{MnTYN)sttjT6?LnP~Y5i>oOs@IgD!B zs~81TI_VjD=m9$OuDh^zFM1t*X_^*LVWt7ZW3Bh>G@4H!A7=bE%SjJpwe_C=U~wx| z_EH$FGW|^UtxjgOH)|ok>pbiOB?-896=t@3*{fETqwW|LSyYjsS5*g7h$Zlya@^LP z5*4m(d<7R!=)W7e@+-PbR^kEi=yAI(~H}+ojGz;+rXj_vznF`Q7uMG zh|b#pxherYliPZk9z>T{r(bet%l^#aO_Dw%x6>8RY#gqY!iD2=kDrX<>ZfCN{k3AM zgkla7L2AOTAJ%G0S4jOl@0yHE5%$$Sab`Q^NEiD+Bhep(_u7Rs)U4k$q2O;Us{rbT zT@LC_CS1`16Z;*95Wz4kD0h1QDxfg#hZ;ln4?-A_6Vhl~SyV1!o2PkC|L14pp0vh* zHbOdWP;$Pf%7mIQPoi71@#0{Az9cmh%AurIIeR43d%3<of(Xg-oaezE9E=1^5|-$uehMvYU+b8usWOG31UfsrVqBV| zbEDJGE;xVmsutFZQBx4GJTZ)w;BEpnqYilgSKleE&k~up|ZcuT3^6)pBAytkfIC7;@gcdI+JZ^+(HHo6KOiTie5> z697$(XpaVVyzLfhFSjoaW!b59s1eTl0PY~x(J7BsDo9Mq)QDY~{ROW-X0RF_!nHkk zxT_c6foZugYj#flxxzpGk}S@?j`{0a`n9&plHgCFlaghdV27gtV_DV3!(RtTtWJi# zPQNC(3jaX=6u%2cAcF}vj$nfbIg8sA1@rWNC^Y@#v6CY#es@j)W;W&0_M$L(tcC$N z3$0JF6Urhv;1`xxrI-wYgE1+5%Vi5RR4MD zO()Ug{dNOiu*9|adWRL`H>v(ZN&wK?K^cme_rlL~X~?D! zkO5vuLAkjqP#v4ZdHt_&1P$9q4!ie46yb!hPS#sCKSv>*DC(8d3 zhEcn2IQ)^1kgJvE$_}S}lO#76q(GQei^;{p)HpNO$&ZfhGxojew0t*oF^r(ySQ&C9 z+}JHb9y08~>}8hOYHvEI#)q%7#&Bs{=DCtG6d z{W}r!VT8a7rK9oQnIs)D8#(qUcvdv*e+whsHUVn0!PVgVqQJ0Y!QRh|Xo?d7ptK;)$f;%Ei8t_FS{C!t z+K}_h^7&r8*o3cwcqh9fR7Fbo8}avKRi(!!17=%m1$Hr>I?EP-+LagVL z&8e!>c+s(=T0~z=CMTklL{-T&L5UZU1z%A2*{19}rdDr%aG(>kXQD6LB?3d~Xj8+G z-*|yEA|n}3NSNs7JSlF^lLi0acU!sZ42-vgkbo4DD4(!`rk7YhRjpTOkR1fJoFsEm zHKVnYbUp_k=b`mgRfH{FoY=uuE*21WUnkes^U?r-sD!U8*wO*wNo4`Cv2zv!o_**CQrTIF z0rmJ)IaOU{Ahvc2@7y8U@6%YVtK&rnXo(^I_eN_!A85eg56)!t4J13i*ubnqHP#l#?)ZNNjSW8y^pA@enF`%ud zr>igrhmVgByAKb$i@Oa6mynPU2PZcNH#gfWg3ZIv*%R!`=IlZ97sWp~WFa1w?sl%8 zb}r6Te{q5>T)aHRfWX&zs(+Hd&RWX(z6$?o;IHxD^d6p89Ez_4-q(0u0UX?%oPune z+-%%J9RI2RI;*PsFKuU!e`fJDpB%nmR}LTOo8)Ie30da&ly*lFY%FOlO@Sb+o|6ZW~7SCTZ|A!;5=KjV1 z-_ZY+ufKiyJFmjBE|y+@8C8@O1ODZ&u$7CYot5z4mpnXR9zL*zH52Z2oB~{eY`kDz zOEw`0Cxng5!U|%=$z^2$;j{b?3Uzn8*G>RC{-;-eQCYoG2|;+Q1^9R^*f_0(_}O?Z zc?8%j1UQA*xCOz25GydhfS{H2-&B9CgRqo_q8N~yo%7!k4M(u2wTrvcYkS!_Te*C}5|Ht!h=)YK`+&z6< z+#S^2)h+BHmY)B2p8pB_FD9+m-Oj_)-B0oV5!C;N6a7cQD!l5txcmKweQk)_KSux9 zk{s>+P8Ai^-`jvN*zzCg_W*lCto~kt*F64X%F-6>Yy)}SZ~xhB|0TEk9}1ZtYz>C+ zT3N91a|v;>@e1+rvRMdP@UU5Na|^sy3z(Oa^B;x$FLnYQ`ytGegEAGLPXu3fX%%f%*v+9&i;vw z^Aj7#hku`Ka)FQk?6Cj&wgUg`LGtpS{;NC${@J5GN&lmWUtJv?ZLQ3{{m*jxPrdoy zwEHjj|A&tLf8G9HoBjLUVh)a;z$&(MQFOQeKX(7WX!!3>kh3x|vv+p*KMnoAHu-n4 z{1-z6jQQVx0}LEsFF*dj2J=6(wD13755S}U)yaQLzW)-}zr^+5lE8nf z@xQd|U*h_2N#MWL_+Q%f|C_iF|A)(MW)I*#cfg@u%QD^roN-uVSt;>E~@IWe3I$zp=x$F zB-|_~o35&T&{+~1{(*r(xt2VyDx72?^uR&F{j{xw@s7nt!lhCZz3_m++P1u;L=&RW z{l||R(`Dvv;j;w(_*B!l(Sps4{o#0e_x0y>uZ?RTMd6q{>_R#TdKu+#m4yH8SIdu- z6s}0i!Nkt889iSNK`}74FzQgpx&snjvm`Rgh@d-#!E=Ncq!h>k2|iQ28f*{LhgCJ* zg5opna1~IEJL|gv*y5GnSKx;00(8+--tt9u?H6_-h`e7;3%sJHyK_o)%?!KuW6eZ# z(j{GNK|&hSn-tn$RQ3@v?pgqu5aKJnLf!OAY7_AfJB4|#!O>7~gf zhCj4Iv5n(ziW=Hx2-kw{dH0e`+rlH>mJoZKK%Ee@hH&3rO%@;%MFfKfx~2gM^s}AN zL+rs_+#YODT|-$~rFwiv6D_OkZFBt@UL`9+dO>%QJgXu;QIXRZ!E&;SG+=8 zqSXqtwZtU~sQNI!K#^=e12bTe^}JN|H*euD?*jRzqj2CE95M{z-wbQP8VF687w8vw z?_CC#vQXY3DG>~CQtHp*h0VSEZ;$p&ezu4mYW}Z!0}|auNjBkk3?Ro*<|Q;u=o^$3 zl$m;^tM>dN{(MF4OQV$+qJSZshZ1Cb;vfPu;l6A{Ip`Avm)7ab0@3r>BjI}~M0y39ga0fTT&w(f!I{-|&8!ps%bz4)WnKBvn z)P(Cz?~P$|CuNgHnk$XD^0Vwn440H-k-03E>(U4E97=d~bkl2v$SO)phJcB{11Cz4 zBbeGQ+^KCyc{}U^@3p5K^F8q7%L>!{g7FHr%eNK?3kxUzB06da&cT-t7oTGuVIUl~ zK(iIA=Fx>aZW8PDSez)`RF_(+<_*QIi6@ZlNoV5qOB`b=QeXMm0>CWc2X!!Gu||Zd zVlM45M`bZ(BN(f&5}& z8tNb*)V`6&PzauM>KlUT*ZcugAd9iST=%G^`cmYEf2NENEIv4kdT*CW$5yC;meO-Lp;fG5?~VVg44^mui}pS7 zY`8{(58bXS+Dc;Glc!c5?e}8N1@7bR)mDp5)nbnAN^RJAyw@1m*?jQun|?jXrG;sE zoiLy-&>+6?8L7ADTDnWTw3=7V*`nb|0>mvvGvhi-=co0m4Pv$pwFu3x2w<~kSZH@a zV;|-KOx63fp50PH2zr^cm}S&`Zy3r+*k9Y9s}|RIKPR5|w)yykKEhx)O!#}W-yY76 zqU9_RAJkF1RC>LIjv{t&<3MKQnW}ifKz5>L5Exo2c5hkU1rK~Yh7!03>@Y0S%v0E> zb_}4N4Sy4`t_#ZXJeS84s#x=4uiG2zUi0$B4FRE>T*Q}!To<^CH;6ZWw72Gh!wu8j zzNz@lP%NVd|Cr3|8lqesTi~|7COZ;iyTV6CgMMd1=#OyjzxKVs4 zSMAhi!3Ts*%r+RuWg==y?&m%CTRPc?*&h%8TD*O!nP)vhr~(Q70?Lz4twgD<0k}M0LB~yz^Zqcb@(>iFB6Cwy zOK_LT5b9R*hHrhx-Lj3RtE=nO`OL;y+1_kKy(5*RAi8xq#``n-@^f|mdsE&L4UBM( z5Xd`Adzt>|;-5Z|{4L;3r&6WkE^bIjHAH`=+*~hQR9g}9^8{-lNAvBaFyk3`JIO06 zPfZ2{K+-pD=F~gyE2vlL4s%QhY^MwR`925?Wmh>5kU;8rHF-y+!EX4WMz4a1G=hE1 z+zSq$Bk}du+TG8uvIM=(<~e`X)v-U{Z}??5yPYmqDW9dIdPB<%l^6h)*HssE5!e%p z|BJh#$%gxV|Wde_{bWh#Ep)$QmkW2V*IoQ!tY`4$BHV-tXo^ zI?&3c^w>484W_V}XbWn{&v@)-y7TU5IG2=P>zqHM-hbPVP=7+PBE5dMA@uI#e3*(? z6dFD(&Q=f=6|LXfaclRHO=el+bKV=R>VCPB6){i&&w!~*3$yYpXJd&E2PkyFC0_0K zHjiJjnclS9&cj~=%bqsg29K+|v(We8&?RD}<7sNWAHPZdyfPUrQd6(uC1`SpbclH( zZ1Iwec~lgBb+Oz1lPH%h)VVZ@X4t&KT%7Su=6pivdDQLob^%T($)CrcQAJizV(QBg zd^}+K4pBSsCoK{KNCVPRXX<`6Ih4t?KP5ouM@zx8zOT7&$g8WX_wMT{DfNWWX8m^G z@EJ;C*6C40N}umB!pdQ54;q3&(?=rfgy^v<&QyPXxt>`0es{9;HF z?gMNf99f_jP=z$}BettJ!se&QqmF~P$hd{i_h}QdTa*ibZhgyNON+DqWV)|QOG-*k z)2x?keB2vLmx}T1X7=aFvVM_z_rZC4#sm$K^5i}}?q^T@9vzii%rMp3o0k2!JAh}v zDZH=2wi*V&x1m@NfX>>CRpIL(OJD?zaiQ$uy1cW~-d9avfV)h81;DtRuL~Y7#3UvT z0F&u)*18{w=KDZK%!YB5hYg|CjabD;0{#^US1ybD(QRjMkH%XefV>8fBj{quB73X5 z8|p>mADsox==#=Eqc4joqp*6=RV{8Wu&uRGR*GQ8Atj04FZ+_gjML}LW~$yDqVk~$!_Ifu3Y0FFsNHB znKbwQSiKh}nBwYc9BG%2iNJw9r$iNwgsM#T|^HHAjjbfX1BhMTJuXfjem^ovQsrjUsYvsfdxKMV;kXFNiDzd87I zb2uZW=c6Gde(m#WbYbS?q|MOLyDj1cRgHgKYO@OaOssJ=Hi%PVAFgowhRH=1$>ep!?a=$)iFI?orVrI7 zJDol}!)cI!qV(uK`?JCPLhrF6B&+G{udc1WkmjY1y83#078cYFd8j*wAD7fJ<_dkk z89i|G)pVSx25dLEH#KC;qoiv!5kbab@7!{N=d<&si>Ir^x;Z?nj!?t1<&?w6w|{Sg z%Usb&1$g_JWc7cDI7JJ#8&05t#@jZlxwzAr>940;Gl7k)-h7M@kach#{wcD&8_0MW zLdN_KA_+MQ!;!^1%&={5Tj(`BYX+L5;Iw8*Z3${ zI=iLn_~q%ide!@SjM(>K>z|LV-|Owm!*(<_HuhvSpkPZ`BuY&)!b54B=U%r*sn~r> z^OZWSZ%@YrypH5z!N|E9)%tR&>_O*U&r!X-tSf&o*n(ToczbU2x!Af^LrJ9jFX$wy zXpt@$s5!_AOwH}X*FKRpTDWhT1pMu$gwnGfQ2o5-A9r+(#`+FyFyjqYGbN=6Y`1_d z839)8kn@D#P-(p4Zf*!EXV+pQN!xAk^3i7P;UNKn#v70AV$U#b_Gp<}d9RQ`jUfaQ zE|cMKT#ehV0Q7<*?OJRPYp{@P{O z#N;S1KUDW_MfF~C-TGQ194n(KZQa3K;8p2ax|rQPlQmMND$3~4njlk%F|VT!(diqU@t-e`f6&=2V!=KCf=% zC^4%*ZEYl`2lITC3&_ag@Y2>Ms@NjBT$yxGv6~(PLZm2w0 zn$?%=Sr^r>)zlHzHZsW9v~VRj@4P2Hp06}ntT95!ZXk!xa31G-dER)BI)@v|z>tBj zTi(oI+`KdX^R_s=+-O7TbIn`?pds_Iv;he`J?wNW64bTbZwS7fFMg*+PgZ-u96}}Y zW-BoAQLkS$d_T>9(*SuOf%8MB6sM{q&Lc32C)c`hkysO*p1ppUZW^J(*(a=s+>=z-h3mPM`I3b*-q z#!^iDVD$cWv@mML>`A zAmMFV7C1?f>q0H#y!gL0DG-K+GB6i5{WPtg*eKIdjsf%Cd+J8J9~|}}*}#`C+xLkc zz(@KQ*8ozC$J6)7W%&I9f|G<^y(NH_ki6Kg(5f#0P#n9_cW~d<<{*)S>EqSzDzNng z^Ir`TY1J5t7W~{?k_>jDc5<%iAMxO;FJ5|WX9bltT4ktC_f}o*WGu}HLH}VzELabU zg#t>hX?qSswT?$(y^Zu(a5#8VOT46@z;|(=&oXsI)aLz0a3Tvri0#}X2ELEf4qcDt z_<=NWRMLNcQ%3Jx^r7w74v~s2xK2+`w`>L=xnUjndiS7 zcd0+5FvD1TiwEcL5qwB`Ns~+;(j-17i*rW6`?9Sc=+KfMe6su$ry-%lDIOh=W8Ic> zWQ2vOiZWbjSf~8koU5mz65xk0L6{QU{MZ`}KlwkNA~`i9RrVIlu2;0Lty4;^0le+ z4o{q_bVXHFO`8J>$0Kx)B^pN_*#FjUXG4w z-M;#5?_L%yO`zQAfogICcK~15lNOKOzz7YRA`9U||588P(r&IK$QoVd?>Xx} z+>>r(LsCx*RxOAAtaS7w00V-Bv9X9)hu)XLz6*p~hwsYdus}`Lb0b)3c5sNwB20Gm z9SFzKLFGHb?{ryE5KAQV`;HMMhy?!F_0a1(DGEmqET+1l3{&in z^x?fBWWK-Yi!%aBnOaa+kp(tH=XIPrNPqRi4wLA~RDArMQ>Dnw_3B(om=eM$OfpB) z{I2$-x~PUQvXIB}Bw6WweeF7TEu^L6^vw9!)9o+I_IYbXP@tvrY`$o6?8^F}Ei^`? zfYgUmpaZ>%pU9g<-|Lji_vw)KwQ)fo>u$~6;D>tF$f=tb>D&GGu|wNgnvz;H1zbr6k=Y=>#@3e zwf4_X9ty9fFxZK_xBF*)HxH$)?JQ1jLBP z_Ua<(WyEB|@DYgi8GJ6uLw##TTz}HGurV_k{pOdHTjColBWB2II3Yhc(rz3#JJe_E9x%iafknm^U|!NIEhe%8ijGy) z)a#7;V6%MgmNY#xlJ1|>Q-|xket$y(GVMN z+7_~AGd9l!v5tR!O?ER@E`vJ|nY8u$Ru$Qm8j_G32=jT*iv4gw=-^Bd4G_S_w527c zXSCXCqVQzF>Gaia4Mq~w@0XQVJ#B|lMjdPbj+qowX--{ToP0X>p#iXKRE3acX4c*{ z&uy`^4-Y7LW9`uN^nLw`K<&`iyU#UWVHx)Q4n}f%cp5je+jP%~`OVH-ReY)7 z9Q%(v;>h7o);rtZt|x@wU-P4d{^)jjKlacy74!S2dIR0*XN-vx5l{-g@@JcL=zDS z2?N^y>gpS}!+HgiPE*Aj;47k3|1piZZYZ&+EM_ud~+TzknePuh8>jl*CNvYKH3Bc!9-0FZ{GH2^F6`*lGvWam&=f z-M(wGa|@QW56)KzuApH(&WCXvnZ1}`X~AXbqTsgVtT}rWQOo%jJ<@bW>$RDB=*m_6 z-JyNQ=kIm-5E4j=MhiJpa;n1OFEm)KhZW@BjI8T|w`Oi&3bEh=G=U4SV=n^jWQO$wqec~z z;PoiSu3EWzD&EZ39y2d~5OVKq`S^?D1v}c~~Z?$&YGU6JOiQbg}ukQb2J$(nNClPxrjRfx6 zz3;b141_i8PTnFj3czZ?UWd zLM_n`@j?ZE1QWHJZ%%f^vOwbk`0jC+?uT;u`UZAfsv1AYk{4juosma;J0w3eBbD9t z+-FN!__7wDYX~B*k$wByOkx=&#{nW1-_Q3rB{YGw`HBaFonA-*wSG%e!HHOfN-B^- zEt}L33K4=#&qiz08-zsp9?9G)&__#$9f_Cr&gkD`vOGjFII3N7&sMn!4 zMHmA4H-OG)OUnMlD?Vj!kX&cxhAKE?p@6&r#9(|HKuww6`w z3PP^LslsHna+K_&k+MbVun-K1KHt#_^Tdn9Oi_OYHVY|&aK%E6XaV+V6dIwY$t_)< zam$HD_b%PH;RPGy*l+Wku@scKem6}I_xZ?;dGln_UP@bpVUT>WLxwU}^= z6th{95}5s2q2_^&G_VMt({4S*=2bK zI{0|7*Hd9$Cmslh``WPL$R>=q9p$xGnS9*68OY4vLC^@?*!N!;o8cXW79`pFl% zZ`XNB%6={CXZNCY+ZQ~v@%3(W9>x=9()HSBT;Je1K_*4Z8PFn>M}q_V zW+HS8ASBE<^%H$}%7PM

G+=^K z=Y27tSqe^XI{G4xrczF1YFbc>JS|HN4Mo%@#xOVws_x>Pd z#B(PX)3052t2W&f{87Uey-T;2LT-UXz=Ks$@D@8?DjFA{n1{F)bg@ntUbgVcA1@;2 zwoLRLD=|v(u|T~AmgOe)(p}{(B^B`?k+1q-A9>vpn>s40aENqSE-o&VPV%Dbp&9?O zuC6Szk)%t&ZK(mmF#rKROc6rd3ovKleOs0%tJ%f{&Ty9Z`beOtR%$WUwhH__N69-k z&PJsQo)q!*PL#1&|Fo>R%cOep-h>gew!0rv_F%!S!I5LOG)agGG(3XVeCSP+@bMdW85 z0J8k?ZpC4##t2HGI3C~v*vv;$3@H{gfrx}B0F=b`o1R4%2)-G616(w*=T0o!&|;k# z(t?4X&#Zafezu>`KV(f%(3FXH5|fsSbrxz-Mrx-rq(_1X8lQ66J?`B{@r7DD?Vp=m zOs4@0cAW1Ap;R(TE)0?M?3m!JRvZ58Eo=D&XL*HR5@ z7re;JaIj}Hrb#(0!{#8+mjd>T$Smu<%m#WQ5x@AiYOWgPfnjiCW23;!Mc-cdZ_!V8 zizc2ATOobSuNV!!uTR#HqOz~o9kug=s=M%v1=+9mn zd_SZvD=+uF9Kaj?V_j3_6D|DK(mHaPEd8Bj@XBs~?VUH0g=H|&{oDizx*doNO1SRj z@3~1h?age_3nD$C1o@!Rvl7J{D{B&5Oi2;$_HN5z%m>vBsW1LIkMzWID5KI;T9{!n z7DK8DgGgr4E0e5;0*qzn{W?+NBg8*ky#oI!CjbtKoiWclt^sN}-9$3@Pw=k!=d_B4 ziHYULsR*Wznlr%)gh3Y?Fm3!bA}(HOvQB%l z=6VY{i)0SXLge8tgmGdrZA05(-$TpFws!w8H|=Fo3aoMEU$17+K;#&Ffr%lU=lebO zLw~#nm8nvzz6j!r_x+mts*}`qX3Ii_7FKQgh47Q5?I_u`qPo8y6Wo2a}fqs_5Pl1%klf|T%6;Dr-VrZ%DEHHLh0NRYS zK?Q-y4GOz^$-Bd#4`0=wgDoh6mj-^?09522?|AWsl5)}K@7Ek z#r%7El@J^2f8q}Kvg&2=w2EhvztxT)&!pQB$}{`lq5Nz8?`3?Wxl=6!rbw&O`v6aFU{=7y*nqY=Zp~ zYbV{q-6+Szs9xuHSET}*KfMk#^$^v7hc~0ZFMsvD6BY_}G$ha%T084|Xy%m9@vj3B zE`UJ-!U}i|rx_l9!<;hxdVe7B5~Et%*rWnh_w`RAY3wrr46_MRR+A0~!#LI_rA22O@rYxGcKAXG^~}T4Y@&4~+cw zhl;i=)cYx}t|aXy2ufYdDrP00F=cDA=C~xs7iKb4#6T5#Fl6fin+!$$wE6J*e2><) z1q`EgCrpNPxiEdu_0!heRDM7;53->xX6s>9NKQ)n_BV|73J67PUO)2QuR5m- z_?es2SY$ZC3co#2V$mwh;xcPvqx*Apy9iXva}T&JzGgm@LqO5B>aA3;m>l<=k>_D^`YWy=c&qvk(3}+P-n9zqsCo(eVhL^fJ$UH@VMLIl zrqL6$NisLSCO(gS#uG4vk`NL%d_ga65^})ba5t`Bdbk`SOXakRyW2~5AdGcC#BF&O z$kz}tNk~R;&$4Mjc(q=8xZF-CzV2J78provtSg|_)v&c%bxta&j{Ck=`N72&Eg)2(pMqJq+%xc5}i(js2eF+3p z-RJXgq*}-!+2qYBKjTbVW>yS42eh3JDROWVinIgbfiYwt`8d0RGx^#Co zXEOl&S574z?#Zm7?@3K58M!&H<6t&hqU;R_IhSwE74>9=wyT`}H@nDYOw8Io0Km;x zTbx#%hDfwc?yp<-v$g>?jooht#vX#yTGre)S|n%ltlE4pw4n|*M^z_mXCf z$t55oZU&~b4tvUOM@REd)ApetRjtP1Xb_|MufqXJ=eX%i$?NIfuFxQ#sq6OUjFlU1 zoRt;p88$rG3yS_J$qI6$Ga<#ztY+_*hB3$*h8C; z>nSNR6tePUEOWUZK50t|T@hIJd{{yTW~yFyJT#?MRZ(8fI8Xc4^E?TeXxDEEgqz!0NU{@9NS8V(V$ zM-pQ=QRlVy!{>lbdW9u>0SR+WMb6V4UOl{eM?t}9?XoPbfw_RFRgDG|NV2lIB1U<9 z=?G#>j?qIm#|CzrOVqjzYt0%hm}q1U=i#cI_7(OEj_*Qz(TDG=CCVU?ifYlaa!IE> zYSM(|1$cPL&y!DsAQ8Ou(zG;!i;=lcvVLF#H%?z>0^F2u_>n}YLGrvRswmhv72mc! z3AIppeX)soFx}J%2gI%QD8l4Hh#8a2M7ds7F|9?acYeuG$P|-EP9I^xeSxFrzeSR@ z9eU=OxC6Id&HBaN1=A>ns5CM?e;2~4L{t%yw}Qy&grE)RywxIlR|ConSL$FnaY~CI z-QO|fFU>4U@~oqdqZ9Y6*`z_tP;arUHCkT*fp$!Xy+)-RrAC90erd1ww)BbAl(1teRG6$OM zV`xM~z2}N6#2N1`Q|t#ZzU_RTE}!zBig`luBV~OOdv>3l|1D9|vg^y3vHa@MpHWGc zl`V@LZRl*CqqAj4Db(F`%O>tG608H2Hp;GEf=uFkNk6F|D=_IHRB13kki;LjJPG%Pklj`lVuK#lNdh{dxmk!U=syey0LRTxo))|ttrXRkv=vD~4Mxv`XpR_{sI_--Jy<`0Z;N7SFbWMs6?h+3*ke9M zbsVD};@JBA>e$*L@OTwsyI7aL9Zfu3xKARc9voPK4A+Tt&3813amP=pS7UXDMD640 z03*j=rNs?~f9}^u0ez;Lp~3E`Z#Sf0GdihD3wPa@6zGKIYT!F0Oj=usxqrbJe7Ph< z)oC1*V-cRxvnYYi3*A&yU_XEB3OH~Tf>!&<33;Z#N<<}b$JQC8hFdX8m5CsIC_9U9 z_W%WqFe}x3DoMb-vSp)2Nn|n?4t21Yu4PpyLu;#vQ42HGW7PlZ1W#tO*=}qV{m0_V zl;o`MVGn}7bsJSs*sHNT^?c`ce%3E%|hYCb@!dTCAtIbg`-G zSDO!1Q=>4!;0U-QV?mIc+$vm4YTjQkQw}n;ajz*DN{`4rWZ87{;5J$DTY4&4PjN}d z%{(45zB|{waI0o%6$%>f^V$CGpsCbtalNvR3`qa80yBjC&kEa_?-Cr%j6mw3O5-mq z6?qsHc?naLPSzFw=7k(dwV?ihgvhuVoYqwkd2LnORt9@LQKJETSIvn;HbC%2E7XjS zt^yQ*!Y1NDZ=9l7eM7G5N%eEHkq&T1@iFvK>`~jebG2WuFd64^&)V~i*VXa4cj3!* z_)LE;lvikabMooqzL*1nzCWATClXLYA#}|M8l7T; z=QS-IFbFWEEJ2o5TFR$TGRavU-%+hq1uYPtzw&7 zDjviE{ril^p>+@Ke=R9>y__8(^L&5Y)VVpB3IteeT>v?idClC(v_1sy_xHVjgWK1C zRLv?ng49p|i;f{tVX1a9&sIlKK(vHM2mlTtk$MSz$3r$YX67i7Y2#VPhUm6qNn8Zoel7iDx?NndvtfzjogLtSszBk%|KtCzY z2o3SUJIW37_DT>ApLGZOnc!Am@LH~5SlZlJ#GY_03%$yMuB@ZEC@BMhU?HpdD8A>( zV(k^co3G9kE8f2VQ8xw2J5}Ce$JD8@^J(1Ny%H}j(8FOdIjH6Mi~a})1a&cpntubn zTg_XtKW8q>aoc31h!)5a1}@I`;w_AbOc>DUY)ZQsjw2#i_xyTVoR&g#CUy-mTrcXT zl+qKMoks)mQ)6en@?V76rD7g|Zx8}4n$JEaR_NY9ZrNbhGohd?5S0ZmexqWxQ0BsM-lbCLlg#RzQf;-{NSVye+<%~)7o^zb zEXbJ^Ko1lynKIk3AQGUhe4?om@d|_Zc zKRF4Gia1+qC)(Vx^Smg?`SIx7{6YXSbP}1x!2YPBheB_?2X*}e=B@JdM>07N1qE!s ziL8kmNO>ma2*oQ@bze-iH~O|HgcD_WSImv8Z_l*8C#F|Snxp9Gn(M_*PcIX5(KHWL z`Sh3iuDwe%mSDJ6Hsi`ML=TX-kMltDV8|f*m3Xa!qz|r)u$03cc6wXO88H48zjo#u zIC~q?sDi^@<9LWcKqQuH%-Hz1Ijo$_2jWRZaPV9p#6QuuzM%NE$tbgOm)NGpxCT45 zMMh(uN1XQ`n4q4ozr1wSNa?4GN~YF?<>V`515n7du&Xi9bEx1!b6Juc4V+S;znE`P z&~Ev}XrNn*Qit^eKqevZATsX@h_>N)Rek+4&x70$WGID=V2YQft4U|f{Cmq0eX(t`jY?m*ZhD&$lVwi>&Kw{LrDZVkvLyXTdr z^HrC!E6Kuh_RYGMvaPKp8=+RJ*UScO=UQ{661fN-*{{;=n)T{g*nl|9M>hfI)BNS( za#~}g>(6eE5bLca#Wbv8DHoo1ETIQkg_^QjtQs&Y2Y!eEz3xrE$USs5lvLB7fj!`% zS;d-vh?gnt0i+?#-s`ZLC{SOhZFY9{;(YbgIAJdvUQE7|l3!#YJ0!G?ov~6Cj_C7+RCO!?GA9sZzPfz!v?SWF<%a1U}Dw8PM>c9Mp{!L&F>9T@p@SCpRI zS(f^Cja}&^3Dymwvk;-gr#;2>Rnl{i>8(8KLd;H$CA2Eod)+==#w&9X&_@(rM)EU+ zaI}@8xl4_^HKZ?9i$7h5Bmv|5VNRV(JMjx5-g~nNV)`j`!ptaFGgv7pKSf;~&sq6l zn#tozjK5ZOpW4}nkFVSIRn*Gv@0*nZx=#Tg3(V=b`A+y(vYs^WV&jBK{t5D# zL~S!>UI#t}c|%KCs5C49V$3we!27Sg&bz%NycsSI|sN^&@h-)U;#GN^hf5&B#8S{3H&EqUG89;p02;RJ6OoLQ_ilhFh?}uaCbuog~}dP0FtM%xNBJP z9|G-YI|NrQS9;Z*u#wgA%mf41!B-455N|SW2sOJr1+aPS zB-5$0Q8~WKS<<}APdg*#e0Lcpwfj#vpO_cHeaGy{pdZMZO| zb5}K)sv`(0rVc5_-7ZX6RdWU%+aYJU2HoZa-FeydzUP%V7~cUq7diYc?XVtP@)16` zQskn1F)!4;;H zk_aiYnT$7$BY{{~y6aO?g$=>hu8k;Mf=G=U@ZuVFJL7gIS#ijDp>}H%wa7M~8}t@# zmIoNP`4FjAwKpT!Ha`@>cwaf-k=Z{L&VI{Ft!8=YiOhmGINE8BtG z&$oZlL%V$Q$yGX|N9A#5@4hwJE!FH*7?jKTh)Pc4r!@LT2a`f~+4YcQ4w7S;-3x$1atD?LTYSEki=S>* zjcYB;lesD-iF%aCmYE;C`rV)H_fN{LRYI~4~La#lLWIRAbH z5$Snx&iI4uwQ#4XpHDHaH3{v&HEGK(R7~O!j5Ej3EC81SgKklJ|94T1C<$w`7>>bw zw6!T;nw}W~R0_q~nd*Hh12Q+sV+kcWmZs{~&wUJNZw`bu6!NoqB2Ym7Yu7fnJ=U~x z(r(jdd?67XVCT-v-7O|L+>l$OrDV%qCNEhZ8fL{`MD+Mxw-Tbe-=}gasnlReH2eOK zkZh$IlpCNypHwvI+sNnPEgvUy?A&N`+^#J&xUOtRz@*Z=7T|4P=q~#KUXy^}pG@gv znWsJRW<%CJf?WEG;x?j|Hu*k^8IS^v zkdxXTesB#qHHJmmdA{15viYWa8~(}C3QS;BU9qVOTu;Mq=8E-DuK}3gZmJX(#Flyz z;QDP3WAhWPbsmd}knmRdkrO&QY1Wokbc*!!_b3^C(twl+$68Nvk>WB}hiZNCJ>uF0 zjjk090tLZokIOLT+B&+8zsKje8gr}qPw+UL>V8$0^F%$;;`qy$;_pS4>NY9{^{jKa zN_qW{jBcq<0WM|FyLsk6mWuB|(!(Ku*^)^@(THYBxNwd-K47<$W!`$H*g^R1Fo85_ z7qv-(mmXS#bln&s4No3B=If(K3_@RqclFZNS*w%qMK8uce~5`o-3AAVRO4n9M>(3T zY2bIg%qyi_)|7q`p&kpsW|+FIBwMTlzlmt%ph-gN;JtrpdZZ?E)*V5ACu@`FPqyMv zg_9O()KRj_+yq}V&cl*kDY-)&z zaoSEq!MGLc>i`v^%*lvRW~|A0QxxF$p$@hl=)`6?xS7A9D=msGl(#rOYL`tG9fVJQ z!Ej+uCEV1BXb2}d3-wn+{ICKZbkSc2VJZJIU{r%d+_ z+Nh{ks4uV_O(J}?IFDToc^ye=st6*T`5Zq<)R$qopd|L}^$^M0VOb|liY(h9fGQ9w z$xxK1(rTc>ra(>r0~W|a)gh>sE(_U4ms@BCOV)^Ao{>@%Bnwja+VQbG`6z^q2Mtt^ zZq|NV8fR^!Y;knAlW+;LwFO+?ogI}QmPo9zwW-V#espPSvQrh$Y-#PJZ~{LtVCkO1kp`yQq^oe; zD!_m$kwQq)TSLsahMrIa)>e)`%#Paje+s-T{G*Z(K$?4{Z=NZTLkbU>HkOsqy5q+6 zM11fGsE>6WA@tVs%GY5EJ^Q{R=m%Yn4^g7!$yN^AC?bq1{tTmT)aVDtA6=UoCN0RE zR%nb3enbbyrN(VI7C{LCgVRCu#%_VHK?s-JOOiQ4%q*D?mekV;vJuRUoErnyKOHlO zL=i|Pkp*A>qB}Ws`()hPh+Rc9Yt%A&uL5EfG2|Gr9yEH0@{%CXxc?}w_~W;ps7IU( zC(Z{Yot_N)3La=Mak<&T{PrZ5mJ$wAdsA>3)ZwSR1(JDh@#e)QiqMJF@xz~DqZ(|G zmJRTM8jBWbb5Z7s@8t(&naGkqK`VoaY&##VBH}jef~{g_F-fV5O&WeySCx-iNcaMXwm#bjCAjgX1OssqT!eR(mMX5#BTe*Zdc-#ADP}bUq7O9ct&Ov zVM#9tl>rBzr$gc6j^e79AK1j)aXA!CvIP3lJ1}m>1!=;uLftXO*1W^E`5q9Nk`%_G zgK=CQrUH8c`%f{tbVdY>2MTXxY@ZO+xEl`MDV4-n5s>*k!hK}(pSb{MG^^-q34+ER zz>vJsKGj&)(iuayO5?jSPeW`~Fyje6{iKnHCvJ9VD@oe5kSQnOc99lQAdt`Vo>S<|ld0QfJ16LGEsa>r-TT!YfmiuryDVMonVa4p8JpHI|pu|5MX7 zhS&9c-5aw>8#`&^q_OR!v28TA&BnGG+g5`cG`6kAw)LLh|9Rf?>3+EP%-oqhd-m+T z)*2m#^6UY;MJith%*#%mAUjN28pwj53_AqLQEu-tA&p#L4;-!5)3mu`;B=zfttmA- z);3&lm#_br=v=FJGfhZp`2f@^mR0vCMj3=Y>8k+!q#15ak?4D)cb%xhEWIqN{cq*A z)`tlS^2{AG+*rOf#N%*mosZp#6E#{xS1yHxjN}DL1zDTM*dIUkgS#MP9ONv0TvWa` zttn%`fb`%dWY)t6B&Qon)o(73*sYEDQ0m4|d2NK1vl1Jzl|XU%qAVXKD{Y$n8@`cD zQ3)tuU9#~HZZ%|C6FD(|SBN0sYicl>;bjN$-_UQ6x^2pM;#C|WgZ#4vA->8BeveT7 zS57M)E&9JVO*7#TMPj(1{Aq218uHrF)zo0@3HbuCfYkT7)VOi(-No@p>0-k^TJ`sL z<6nCy{iR!pAzv69VMx7QIupsq+0fqT`jxXHLR9InLb)j|=;*n>or=jYKu{X}3MZ1i z?M=k&9_%Jfluq@Xmc#{rCLP`v#2E!#&6)>2)WM z1VTchfbZ64)Y3bfjmqgldfnWeDazzQ*x?D_c{9>?N>hQ^fUb6_H?blGF`|%iGl^wI zRy)eg5WOj{fUvM+4xzsHUq-SU__ouR%BhmbMn*VMLX2W#$>1y?qhbq;79mJ9s=Oi9$k}H& z+GXoO3v<&8(1D-h<_yqzf_!#>_t>58_?81XwN6^U@TKyng9e;uZHu9$f4nH-`8lxA zbmxs6!inL>S>qI74l!H^W&)PO4Z7|NjTv9(BN@FP+s2=+ypo*QH)nHD-7}h0W;?VH zz9jTrqSU`cb{Dd9uTM~QqgR;;+Ce!gi}#?2Uhq&_=)0(a>>=e13Xf12{ichgu>pkN z1VE2Y7x3c;ur!`Q#BSpgJxB001%8C!EA02d5sIk%4A7sPi#_`X193Rv`xSO>b&X8h z12UUWmyZaKEEPTVBaChH}VzfijUQ+^6ufGxk04DbW}>k zMMVy0O^c4tMxk>}!25{p%Aj8$kM2<0SLYMnIZ-0JXI@TqNBx2=f2goo92&Tg<6>?HP1~ z?{Y;1X&NVmdtuJH$|c#(tQgd^*GCwoD8=1+1HN0(9sxN2KO@OI6b}H13l6Kff=s55{lR6ae{FLU^jAf{@gCY52P|i znW-B+F7JFr6@Trq0mf@V6x5yCy#yVZS%ecHZ_2$ooUmvl^)0eL+*d>yjIrqgp8=(_ z|GUs4>l0{($uj*6|Iq;8X+;t7aUb`PlamuTjWIcVdIefn(9uEmUp?CgU~m5bzypde z*ngTpq-D#irf?^ro9?8QjIgCpnf7>2+SAEW+ph0&THvI`a4lAmr-r-{jnmNaXr_t+ z^f<>LM1}@p7c<;-%KDzZSjt_mAv1V6r6W0lKBcFEw082la6SGoV0GlvV_N!?z}xL? z8lX9Ga&<9Xj%TFZzCPiys2h5CWxsRQ0(FV%y9EWLrUlX_$`LhG?LC8G3I4^qSkiI3 z)XQZRD$^ac{w;Mn3ZJGpvCLOVlwE{I?D!^^=g!cIiv^ z3*befvUUEjD#+7JkCQ=zqe&AoSRr5D#!vxo{}H{N#R*klDwwj__2m!|W4s&F<3{K2 zqKM$tCRFmJ-e>xc9HOf>OK!U@CpYv1M1qoMa$Y(|F3_Fgz^BGYmK*{5>LHIWKeO3b z$Lj1~CW|E6Q0Wb1t=`_w5I~_IWhlFB-)D<~XsZqzPeVh)wIEaiob0}Dqs;2-?xgyi zH$;)@-lL`%LP&7MTOX0hYw!eEMD;kn@{WKb@ z-&>LeV}Zq@tNObm?C&7tD+Gn^Q0{2fcMs-%SU)`}SAuR()b$!j$DtonmRZ1m+;pdT z)wTfOltcsS)P1NDKYjh*P`DmHR(UQSIm@kL{VuHI)hhm2rg&Yj53moY7%R(!*SQx8 z3Wp&;_6C6h{7GQozxorQLP8ULg(pxJh6^GTG$4S2weDVO-Pzb}u79p>v^jq~1Q zKDp1ym3dm>5OVn~&(D zF#c=H-bg;=9M=C@DYLF)E=5t#l7(Ee#!R8Z1|)?03b6jdEgu$V0nE;zRZZsr;8Om> zd-CVR0*VJL7Bggyj@%RSxLo`uX&=8}Pg?^A1o;Sy)7v#iBY*t~{%K-je>2W;6GZ&# z5AY=t0SZOUx|gb&+Vyw_TcvhO%+t*Q+Cuh3+3bGutq>Sv@#Y|m(BmAc3&d@0& zClO~K1B{$lMPLQU(xc2KN1xBTw6N0CDgiTA7Qw)1t1nk5=nvr5=SKhvO55x8XxqOC z+B7aFQx!ncqE4fAZ;=B!_F-lv?znsOtP;Wa{Xb+Lpnc#3fEg1L5@x>MKving1^(w3 z0piEi2yM+JP)cI-xZd5`tl8DZn)xHrLerbZ?+bjUT>%K5nk38CnZ{=Y$xsvgopd~yB z5XlBeLC;coMA|0y#qHjl6nDHE3TSdQ;ndx_3 zyfi^f%_*svKRA?ffQ5;91(eH}+%LBb?3Ji9aphpmrbA&9BN%Q`I=T@*4n*7LjeK(8 zEaD3jY*eX7t`cnS;tj718Gm^5_r${%*sY&qw5-xXo)3eQQdc(Us4Mh{AvC_5lTSYv z1jm;gTjQy*=5!*_&3RJR))ZDgPbq>lx$O}$6kVybu(L6{rOAKJ!zF^IB7YE@t`$Zi zX%6udkv6usVE&%NoiF++1Nkd35g8V$WwW}e0Tr5ZUNee5YXe-rq^Fo@fIwnO4hH@@ z`cys)#E_&qm#sbelV*G;iKbdj9@U_YW<9%zjVn?=7|V{1p=o`u1zQG+;%R=Ump-Zl zK?AiCnjbPHB}sKr;;KCdGWPKd)AO0h-p-@!jA&~+q26+`uA3M^8qU_z^4Jw*|MGMU zl1=)2{CPvqex}y2uN8n5a(7Gu6y!8ULt&F7HoUg00sJdKSdM_n;jQi;J|tIP??f#P{}a-h}fS?r~c8HD`pzi_%s zw`C9XViTCi9AHqDzA<)D0sTkqzzKMQN`mDDd8_DIHjqQ)`jiW)3mO4r$MtJ}fJNLh z>GRrSZ+GbWPRjuP4UoaUiki4^eoka`+#O=SP*hM5)YQZU9-HjMjEs?-_uG=KD|AQH z7rqz}HzCCSpdzdMuTLatl#Cs*+Dv%)Ucd4QIAF=GdGo6RGNP2Ul#9m36^?RFj0Lk( z13dJe51xm{73$K8-nHVp&%L*P8b|=0b^|*7eSMP{WQ)2Xzjcyx!pG`RJIY@;<+W7$ z3pY*G|Bv*Mi5h`7+^%-2DL+8yC(L1au1fO`nIW_Dzc~V0|`1lWGf`?x6nr z2;lZg<1n~1=U(f;VJg6A>n?tnQ<)YNl1TTbY?ITDhqBE}L`WJjm)dMQ$9b1`?_jdB z*nV)mv(<2O^N(yM#wC(b$nQ zKnaV5j*XnYM(iRpLC4|sROzK$Gpe&6rE7tXC3du>IvjW)mL}cudbEP^R9$kYHM_@Y zN>d#`b#&ZF@(j5{7}Ql2JFP2mE>HUU&dHj z@74x{ff*R?Blyj|AX!e`xKp!fTs$$|W%~Q)osmKy*IVEOThZG)sJr)dSs*Q)-~OBn zmJVq?dUrx#Qv`T)h%J}ve~x8xFt~fu8V_}ciT<0yUGfsPSHcIyQ3V;8M%6r!Xss~u zW2$+Z^_SeACIpIc*-m873EGAnt7CT?95$khlR@ON-Izh{!G295{u!cUZrAZdQB+jK zN#H5+ht7 z)|DrNj$NS-dAXY?|Ie|l71-aYX=oyrKLLPhWBT^f`rKcNGW1|$f?{_2>asF~$o`pi z&}Ye`)2h5~5H<{UD#Q$(4ND@8;f3LFvy?`=?)9*i#)_~AK@!}7d}!hTLdb0ZQxJ49 zXQftw5Hran=6oCegGQn4;-^XYeeNogbI*5aMaOku_gR3 z#022;0|tlBrgKY6L;uOvV5;kUc|9kn_ed%;F_>}42$&t-LiZc)^znLN&d&nnxX1Hz zA}kSFBpyXamH`_*o0g!x1XA{noYnw zPcIBv1une+97XJBjqg|)K87=^CBHH%?xoNiApK9KXdn`c5%2zz7Bg1s$0>bh#mO4og;`(q$P;!r8uD5i%V+WZIgi-Vg0eEz7-x` zsNpCsYE6~)jAx$i?Yo{*8cW3N{#KS3ap9a_@p(x;;D2cycZwbCCB~UVMqHVDf}n9= zPKga1^twMa1Ux)K<|W6bw{qv>zep&kwe!>@6C@Bkr1|foo$pv#U!eBE@a`=3ygxNq zL|%R!u)LWy6+TwmC-#Xf!tZB)8=8zc=byi;eMB0r$$r$4OENkbb+t_qb#X6Mtcz{b+Cb5> zeglmj;%f7Bw#3l3Cy8sy=>0;}gPXVl-iYUJJ)=%uObzXNnTNUT!wvi@7Puy(CH7Sc zK`s>*`omlP`nbfuRsH-DnXl_WJVe^8%lT9LaFd&s}} zv5kz#6(p=eW~*}AdU+K1Z-yy8xJ>tp0A7X^z4}b5*^+$0V&B=K?&RyDz7wB4ui$-1wVwAnwO_Oa&=iKMV~9E}TXst1KMmGx~;jAAky#{trm zD1IF}c^i4axNX_@eb6PnPO=52ppdKfCfZeezci!OVMjX8E)lKrgdVaEM3O^8K7r%l zrO+%xsABO?_2)wHw&T-+Jgm{zfL%@&LQrC2^k;=lBzjGikP_Yhi19o(p}Tnue6lWq zkcTU!Y)x0d+QKJRv0s(t=%?efII6H4x|!hDX2`dOUOBl*DGel%h;#=Fo%lux1x&y7 zxqZ-ikw0{N=Jvf*4-EXh^ogH`(D&o!b4W56b<^6WbE|9Rd)sPGjoYzC>p{c>3piUG z6@%BK!N90gV-7~pK?!DxiY>nW)RsVI$C&6Rhn-@-to5$#Lenagphy`jR%m(3&4XFa z-r}O(XaE$P5qH;5>D24K96cJ|cY?Y2-kC79w0yos$t3*RQ6C5(bW1;!@{c|~pqMAH zz4LR?JS2R*54C>{TdE1^@qtFwNB?s^V`oA;{jqT%yvb+ZM8a`$c)?Ryv-Mulmwiz4 zm$SaU1yWG>Z?38LY5%bFpMOL>{gUMJwZW6MPX5i(@mb;!HH_r$ydO^oZI`b|kH-}? zy%{mC!Fc%i=^t|fX&(FObB_%YvFgliq-HD3-{3x+;Rt1o<&2919U}L$bFTgxGug!X=AMGMeD;G5vSWA%NiunOFiSF3NOw?g9znG@nOmufGB1dbD)mwmsPU1) zr@SPJ#%Wum2$K;t707vlO7epO& zR95#8n^y)N+$4+bST~*C-Ea}=vC&>YO5?Ckb&NdYHHtp9&8%qc8l2U zO@uLq6Zv>;*0ujqBv|%z^FWYby$na}OXsoEaOrgXx{wStUpooL<2VnB2P;r#qm;;_ zMG=9-+TwCZhYm&gHB_^(#5AswcR#TD#q+s~LAgtM4km{0rv}X`-)DO8FCBBh786#J z$;{qA+*40Jxb5&7%w+yf?+&E=>^DcYseNioPttM4vRF{52EV{y)dn%g#JcAYjOh$B znkp`t+Rqe=z%AVxzJ&Cq^hhefG(fwV(~G--Kwa5?41hIC8gLY_vn^H~X1BB^r!nwS zvGu0P9Oi-!*TY3=ZYgYtqM;=0pIaV4Mi_l0@R*^N_qXbl!M7onI`B8<5c!nx+1$4M zH7AZjt_O7#>{$+IP48?Y)QUW(hSFT#JP0_bcfM{w`se7pXQ8wR8C?+(BDyOE1@m4z zk}lTP78e=GTD2q3Mqb5g!(td| z8`r5rbsN6A{NrP)Wi~PV_q|?2m~iuKX)-)f3n+QH``~<%%Dj71&AO)i;cc&!K~ow@ z1e(i!e19YK^TYBE-~z=0E>dcA%lxBN~F5vqfqZcT)F=B$q353uIA2q0^B3lm&8G`||^aTV;b-caFBcU?nl-B4MaeI#}$pHsfey1a9 zSl-*O1A|BNBWkGm%@D!w7hGxM18QU7-LquS+7QWiUHir3pu|7I`}Vq}@@_av#sFU* zLN~)rKeI$uNPv=$4B_L1wDrbus8LvpMh1^Qjg`RHp}Kn+S=A+>uW4#)?)Kr>Q+5$f z7GrX9q1T~dwkHL`Lld&I_TVm>nCAurA`buWj)0za?mA!p>bV_{*{!?1%Ofot&Ye*6 zT!(23$Q;z;EQN!(Id;o)5s3yTkC~^weDV#u@1x`cF}AY8H%LhQ2Uxt_1%QXeUh#KD;r+ zYCjAvN-w_fC_cfakher0aN`Rum$C3vLS#a zEl0#qTlm*ikcffz+0#6F{SHYeLXMuxLgxn>wf=W5hbWSHf=n;<`JO6ysV}UmJ^25* zQ%rb_%J_Z8zj7JlJ!AUmy^xLdD{9b~k=QqYR4wWi;AP{0ZR{f^#_N)gfIOVrcIFv@y zXo?~JSfMH3g6Xh->J${r=j7=4xIF1QFcqMcGZM>{+&{K^fSeb1Zlf~&O<@A@Y@dO$ zeo?0porQ(bR7}Vw{SG_ak!Ab6LKs=|x^{QR&bS3{;Ve$)UhvQ}R*&H@vjpa-wNvX% z=xgpSBzan|_I0hv(QyHO&}@;yeMA79UOWU$3szMoKy#cjw=(!5ojZ)9y=!;-V1kov z(KnUPTsXLsS3G=_+91nUY|!53qUG#GO&uNu6}BLS9_7R^b}hF4_HbGjIBFUk!|>Kn z_)pqn?u&<&+fXex6!}5#??jkTt8G6$C9Vthke*ksGiG7&vQxlI~nM)Y)Q`$8;`~^%p!sgDJbN=QzG?j0If)Nr9v$0?jm_qr2~iHBDYE>WFu6Tc!;#xfv#*(IHW4#4A#=7Z zvxkmM@Wv(O(B#lIO^UbuS!ReOoDuRV&)$P-0PCs(TW4LTNJeu>XS~Cto{k3}}41zkx zxA9K~8R*a)u)q02_Llw?9PN5I) zaaT}Atj`I*MxEsK!oe3DFO=7NN<_eUzUU{t+8FM7)vU?q;CyE&y~Ef|ky z@2F*UwoN8=G%?B*=q@rtY$hBL{p9(9wlG-dH3d!_vje3- zmcXU?DRstwS3ebUgmTdtaxDLLITDThkDkKd(2x%w-0WcvpVz$yhzCt`(ciw+waf~g0 zL=sQHM|gASyFj21A`2@*QxXaArV%rHE9CWqNAcH*=(MMD1;O5jsSKQL(PiqYLRquj z_dygWE$0qbI{2}NK(bvGG6(7c^5RxhFbo&;eJqC$O*d~8GFDhX!uv$;w!b&{_CWY~ zM_f$E;IuO7k4OoN_(7l$g`aLs} zz+Ao%Hp5eh6+KU+ua9-dLk=5#x8w9MtCsSrYLC4K2FhF-mxj%*VAU79gK;9$#y_Yc zQ)s0GKskfMzaALE=s}GCIz%@$qN6Q1>O-uVvy{)VuV)Y$KYj9)9||Ejm6acsop{Rb zT8p*+@&c!iyLxDS&rL8s0GIR35o5}bI+i8Wu-M(}$MAD{rYRst15^$EF(+Ez^Qh9Z zt%cr>l37;CF1|;^ic6l36`ud293T0tiKXRvJ~$^ibwv+S3P?3S5Tk=YV=xm4;qT%y z$4qtTgNZB3g}Mj?60AeGD(Fh%d~hIBLWb6V*3<`nOTS%Dd}^S<;P+H)w%5Iyk1@t{ znKieIoQ{VLbyJmJaeatC?>22Q%9JI-YxV4jatsc7RM^!s96Y|&Xp2E)s*($gN~g?A z6!%N~=@0!XTphVcY2S)G$McDxl)VnT;!nBz!3Ii&a00?}Fg0~W_GSfyf#JI~y1o9^ z(mo~zcQTomL@t(#;)?X6q>0z1xsoySEsvi3S83pGJyAa)CGV;Aad+5 z8L`imLprKmNTxg#4+3xNTdnaCeMhhzhAc5(ZZ9?~({~jrqkykf7-$ zP@o|o$58F&G~loja=#e*?k4Q%>A4<5$WxE?T|>~)vizi1c`Z2L%5EibV8CZPFjg^u z32F_Q+S*q2AFpY9)i>OQl5n7Mr*B(lRD*im?JNL4_QSdTs$j3z>8|~w8>R9+v)V5lGYWx3KCfQQip8jdkQN1dK*cTnF&onJ)Z--L$iQ1b&-3Nul~v^fF1$J&lL z(-T>Ce|$({$BsZ}`PFtXhJuw!&}wE)w978@4_A{%#)`nNpJ0=Wp(%B?zZJIdQA`@e zm&9=KS$u+q=mu0i2G;enDbv{TnonUG!lO%MG18Zhbat<)ygT@_xU+m{2Fo3L;VGvJ z*#|Rz`AdorrbSy=FX2NMhWma_(^OK+ii7W??|T9YECD9+3lKhkE+m@jJp(8Npu1nAL0(2rGm=!oRs zWD)ukrunRFDL9G;V)er?a>PwjkKhct^;G7eo^O6I#F>FjH!8>uWpJ?E$SZgy5=63e zP?A^nux#74Vp+8C1@GZ8z*Y`t8D~0pk&rdt4t)nUWce2Z==|^qWUsd+(j}2s@c6m& z*!-@EPW;&!JHqX|P@-Zz)B31y!^nPAvm0cM?I|0zt~M*3HIa6~qhx+_u{ni@{1EKt z_IoXa_zl1Z{rUVHL%3x+1~QAiF^xL9D9jlz$yw$ZmA0Y0{Qy)Hy&Noso}WW|t?;lBw(&KjFLyzceK03T!c zF@PSZSMI?5!R47+CLN@PmLc5!Oih8S@M*kz6mYYxYISGjUoJUGC~JL8#0+s4@ZVMv zJ8pfT|ItAlesZEdTN^Eh@)s9bR48M5%>#<|iP>`mCM}z`in(PFuro^Dov_g2w>Czi zo5e%|at(@mg^F@J^>+(`R-Ji*xR;w}Z`FV?!caUej&T5>14ZdrT~&y{y}ZiuZk&Rm z6>E3~61)qx;ziLFp{1`eE6MQIsJcb2*dHBL)p4#tH%+RP1UGSHMuXLuYMJ|-JybZh=0=7BkTt!rv> z5ZnF*IlK(fK8~3}VCQKxAn0ndtc7QH4)u<5Xbd+1QIndwf_w$-Z@?^OnIu!rf!5p< zv~Yq$-iPgH)j%oL^p~Ws;>lSJvhEd$|;CJ!2l6n92J zFK`juHV;}YcTv>fLV)M|Vnfsj%it66MW0gH$g0<+@F$;jXORme$UFD$Uxmf#Z;aYI z|K`m0PA!M%d#X4u2J*Q9rk27Di`|=X+>WMinZdO6kB-vZE_`IEMRwH{werpKHL&kR zz}(%ke8@N>xN{xR2yo_QL$n!|`#JDJbQ8dA{)+Dsb8q-&LCwh-t+dIPx(2S}?cg)mjPSv5OF=1#n$mvvachDn80$ zhUT>mcd`VsyN{OCrEPmWxz+5ldh!gZ;8yEb*|I08v%R8uRemkw)Wy``yVC#gobTZ4i1#mNk#`jb zm9mB6vRmEC%t4TktlFOaZ39%FPn+=zV&LqL*ZxNMvpT)tDHK}Jz$YZGqm2|xPpJ-2E_b7oc-i6) zIs+=f)miV>SGA8fHDWktxeo~0@adOZrSJkmQh)V$!?xF~ItU^ZxIg6m_lS0=Q2rCQ zGG3qj{FM^56;$ma&_Kc$v(`z33m8+_gch!YzN8vWbabVrIG^lC4k_etXEDCJQILDL z^$T}4yv+ZX;QuXD;C})Mw*%YSm&PyrZFb8YqC0O3=@^;=+3^?a5rtTN@BVfJFURK5 zXMsLSDj9{=GQAOVHIq!-2svYOY;|}yBv-O`_283_8fPPS7X&S1MW;0IFV$M%48+ubY^S`J1PEvR)=B#Q89$ePRwlGiSaNCg${c}=qOy!JAU2OF{t+IA4XQ-Kvp}x; zPhssq_a=hANthI z>dq7>Y>Ez`tgK77*JfmI8f$?mrXbd%zwX8u2%O)Lvy5=e{xRFHj2*GNP zP-AOTZZ3zG6)M4_dbV2q;A<^7=WrP!QM!+s%N!v!%`&etl8)60vFkN3o08kUhHqAJ zt-(+@VEngW6SV`!-eet)i?OHGUBN>SQn0Qu7d!zKhEJ4bZB}9+91#f>YyWE7L6a57 z9ALu*-Eh_YoBwE?YRZV28K74x>okoi#E1N0NkoH#a}zy29CD!10ZO=|!3CVYZ(I4R(IbcakxM|C zoMChpWhsP^C?XXabSZvGPl4Hz_mFZv>`G0bzNtlr5GT}&6UubV9U`Hmdfa!gV;l4J zdJvkIs0zbiW?W1J!)d8fxq(^9xS@JY?~59GuDsmKBX^^`)0DxHYSWK_^V|>$sO0&t zWlqi?`|Qd2@P-R)fFobL#Ew)67-4NvXE?S_?G2wd73cYMdquVDiTUh~AMm2hdmj zcj%&kD|8D7q7lo7pGPOGIG7f(6m*Z~n3-VMzsSV3A%H?QKXj$ zIshYi>X0}{4yF+lBVM5yxr+(tV5gLG>wDxmYRdfqx>U6vZxlF z?Oj%UI4*GN&5c-&7lce>zP~#y`8$|L-^fdh?eeADAzAS! z`0fP(vfO_>U9a=vobfVKkI{KlaS8Hww`_p1S7&eYTRa1Y#^8_4hjfdmxV-~q7%SIb zj)~XIDl^LMZhW7HkiyqOkC6@U!+(XDK|b&Op&C2qB*|B#3~1{#vRQ-ZmiLo5__CC+ zUqCPRwgJ%{gKVe4jBYPd*ZFTqQHNO(Mkt2n{0{)2l-=6vz5*6qc?sCc+)3Xp=+Fy2qR!&PDXm9pC^w62d10NxPrpo)H#b1TQ{2C>C3x^85D23?-C zfG;oHe;9~_#1>yD?!*RJ(0KI;UGxLXhE~F3xj@agz#Hm_DJ}3M018wtTDfMVI*--m zm#E0>p%IpsMc;$Hsj2a*N)g#LvO61XVK^oLRHKDb+E+KLK5PBW)e}1kCnKK=4V|+4 zkpwMR*J(to)dR`lFa4uy_#p4f8hcPnLWJB zRwe1KT{{)`F!ki$ukCTVoq6r)p)Mi{6o=b1w@UfevXi`MyG%Z*(Z6ME2v8sac<;ak zDixS2*A1c3x+=saI+~N&&gZQA&x|cgdS4@xeGVWqTGl{WEtEZhN;Kgmv;@st`XO}Nk5nE-!&v(NCiH*5Rd;eFFgE$Q9 zD~`07v)OlgB_%aFAf8^#PcF!SuXT(RD^4pkryemY_TVxUB`t@}*=(_893tw!HDnM@ z1#ihIR7XIosBYaO{vL-VpdVLLI$%|pEuC7b6s#`$hrkpk02lR0{LKh4pV5qlSF?Etv+ql#LsI)3U8ZbSDP?kD1MPh zPThYs%Ytr@f@wIjnvS?+URC@uN^zT&ar;NUI2O!OuEj5wsOfX3SgrTu_L6{cnpIw; z_kTlJ1As-O=55fr+XPKPn?6XqcqerLB97r9sM|@37H3u6cRt}BA&j}jpe*CzJt<)V|$lYCJe{$GDGnQ(afHqeRL4H&i@7p z1!>k(jvw$^D=BLo?xMM)wE~IrFAtTS-21=bUeW!`vT>%lw@$xf5k@Sw0>-jzu3LEh zW-Kps!)=m_%QgE(6OBMeQWpEcvn{abuhzsFtnk;!t{T1i*@p9z`Oz(X>ccR==k5!+JN{B9X_ z&xwJXB#*Tmg8gdaCw z{Z&-siV>Am&c^ZHbiKWWD>g5b8oRs$7IfxKhaWRyh+lHWY{E_80>B`7z{+&OeH8&z z67p+l43`c z;^`(JKHeHxHlnZ$-Dkt9!1~+*G1f#IVJs@%@54M`i*&01m@UZH5r!|$7?WVks+7%H z&F|&%^e<%O(4dUu2`GP>UaXr%AVu8YZHKi#Nd!A4YL&=JSS4D2*n3y-4Y+6VX4laZ z@}>n8IO#umoaR*J$4`;V77IV7pO|x%3RO|>IUJKyxPc1Fgd*+`rj1@t*Yacb=0G}E z173P&jx}{1{L~PvUxUA=|0pKt2W~XDhYG@`<1~xaw`)hum#?=|{M|SSq&=wDzdlPq zKu4R?w~!C-{VueH1GcsP6yVpof)S#l@v&GS-i*Jw9Dh%3c8Ji%EuW)5^xGR5{apQ= zJLhy@mkkMfFFA>s-~4x^=+nsvr7>!{_eqo&G73_8GyAqnakGT3sE)#>elE5Z*pn4C zqCAaB(x;MV6f6_yJRBqOWJIBbN&>+# zc32y#Lb9G`*tR>~bbpb$tAb54KLLpS;V+Iq8F?9{Gzi!?7C-`j^=TC#lTDM^()HAK z-5;4(`_v-kCtvlpQr{hSm?+Ec8liGmsI*-mQL-rw{8}5YB^}GifN{`;3UCWx3D70{ zt%a(iV_lEjU+b~wPAG?Fx#`!BcUJAX;E0$ z75P7xJ0W;gtZSAs{T;>xZy2d^n_h|53ggZdFR2oO%4kCScE0QbOUO4Jc!LzA;At8o zOchqv168J(^W8fbhA8Ua+